| 1 |
function [nit,tt,ke,et,tm,sm,um,vm,wm,cfl,zm,sct] = readnc_MON(rac_nam,list_on,nrec) |
| 2 |
% [nit,tt,ke,et,tm,sm,um,vm,wm,cfl,zm,sct] = readnc_MON(rac_nam,list_on,[nrec]) |
| 3 |
%----------------------------------------------------------------- |
| 4 |
% read MONITOR output var from single NetCDF output files ; |
| 5 |
% read var that are "on" (=1) the list "list_on" (0 => not read) ; |
| 6 |
% NB: time(=tt) not in list_on and Always read ; |
| 7 |
% e.g.: list_on=[1 1 0 0 0 0 0 1] => read tt(time), et, ke & cfl |
| 8 |
%----------------------------------------------------------------- |
| 9 |
|
| 10 |
% $Header: $ |
| 11 |
% $Name: $ |
| 12 |
|
| 13 |
namfil=strcat(rac_nam) ; D=dir(namfil); |
| 14 |
if size(D,1) == 1, |
| 15 |
%fprintf(['read ',namfil]); ncload(namfil,'time_secondsf'); var=time_secondsf; |
| 16 |
fprintf(['read ',namfil]); f = netcdf(namfil,'nowrite'); var=f{'time_secondsf'}(:); |
| 17 |
else fprintf(['file: ',namfil,' not found => EXIT \n']); return; end |
| 18 |
nit=size(var,1); |
| 19 |
if (nargin < 3), nrec=nit ; end |
| 20 |
tt=zeros(nrec,1); tt(1:nit)=var; msgA=' '; |
| 21 |
%----- |
| 22 |
|
| 23 |
ke=zeros(nrec,4); |
| 24 |
et=zeros(nrec,4); |
| 25 |
tm=zeros(nrec,4); |
| 26 |
sm=zeros(nrec,4); |
| 27 |
um=zeros(nrec,4); |
| 28 |
vm=zeros(nrec,4); |
| 29 |
wm=zeros(nrec,4); |
| 30 |
zm=zeros(nrec,4); |
| 31 |
cfl=zeros(nrec,4); |
| 32 |
sct=zeros(nrec,4); |
| 33 |
|
| 34 |
%return |
| 35 |
|
| 36 |
if list_on(1) == 1 |
| 37 |
nam0(1,:)='ke_max '; fprintf(' keX'); |
| 38 |
nam0(2,:)='ke_mean '; fprintf(',A'); |
| 39 |
nam0(3,:)='ke_vol '; fprintf(',V'); |
| 40 |
nam0(4,:)='pe_b_mean'; fprintf(',PE'); |
| 41 |
for i=1:4, |
| 42 |
ke(1:nit,i)=f{strcat(nam0(i,:))}(:) ; |
| 43 |
end |
| 44 |
%ncload(namfil,'ke_max','ke_mean','ke_vol','pe_b_mean'); |
| 45 |
%ke(1:nit,1)=ke_max ; fprintf(' keX'); |
| 46 |
%ke(1:nit,2)=ke_mean ; fprintf(',A'); |
| 47 |
%ke(1:nit,3)=ke_vol ; |
| 48 |
%ke(1:nit,4)=pe_b_mean; fprintf(',PE'); |
| 49 |
end |
| 50 |
%fprintf('\n nrec,nit, %i , %i \n', nrec,nit); |
| 51 |
%fprintf('tt: %i %i \n',size(tt)); |
| 52 |
%fprintf('ke: %i %i \n',size(ke)); |
| 53 |
|
| 54 |
nam1='dynstat_' ; |
| 55 |
namS(1,:)='_min ' ; |
| 56 |
namS(2,:)='_max ' ; |
| 57 |
namS(3,:)='_mean' ; |
| 58 |
namS(4,:)='_sd ' ; |
| 59 |
namS(5,:)='_del2' ; |
| 60 |
|
| 61 |
if list_on(2) == 1, |
| 62 |
nam2='eta'; |
| 63 |
for i=1:4, |
| 64 |
% fprintf([' >',strcat(nam1,nam2,namS(i,:)),'< \n']); |
| 65 |
et(1:nit,i)=f{strcat(nam1,nam2,namS(i,:))}(:) ; |
| 66 |
end |
| 67 |
fprintf([' ',nam2,' ']); |
| 68 |
end |
| 69 |
|
| 70 |
if list_on(3) == 1, |
| 71 |
nam2='theta'; |
| 72 |
for i=1:4, |
| 73 |
tm(1:nit,i)=f{strcat(nam1,nam2,namS(i,:))}(:) ; |
| 74 |
end |
| 75 |
fprintf([' ',nam2,' ']); |
| 76 |
end |
| 77 |
|
| 78 |
if list_on(4) == 1, |
| 79 |
nam2='salt'; |
| 80 |
for i=1:4, |
| 81 |
sm(1:nit,i)=f{strcat(nam1,nam2,namS(i,:))}(:) ; |
| 82 |
end |
| 83 |
fprintf([' ',nam2,' ']); |
| 84 |
end |
| 85 |
|
| 86 |
if list_on(5) == 1, |
| 87 |
nam2='uvel'; |
| 88 |
for i=1:4, |
| 89 |
um(1:nit,i)=f{strcat(nam1,nam2,namS(i,:))}(:) ; |
| 90 |
end |
| 91 |
fprintf([' ',nam2,' ']); |
| 92 |
end |
| 93 |
|
| 94 |
if list_on(6) == 1, |
| 95 |
nam2='vvel'; |
| 96 |
for i=1:4, |
| 97 |
vm(1:nit,i)=f{strcat(nam1,nam2,namS(i,:))}(:) ; |
| 98 |
end |
| 99 |
fprintf([' ',nam2,' ']); |
| 100 |
end |
| 101 |
|
| 102 |
if list_on(7) == 1, |
| 103 |
nam2='wvel'; |
| 104 |
for i=1:4, |
| 105 |
wm(1:nit,i)=f{strcat(nam1,nam2,namS(i,:))}(:) ; |
| 106 |
end |
| 107 |
fprintf([' ',nam2,' ']); |
| 108 |
end |
| 109 |
|
| 110 |
if list_on(8) == 1, |
| 111 |
nam2='advcfl' ; namX='_max'; clear namA ; |
| 112 |
namA(1,:)='uvel'; |
| 113 |
namA(2,:)='vvel'; |
| 114 |
namA(3,:)='wvel'; |
| 115 |
namA(4,:)='W_hf'; |
| 116 |
for i=1:4, |
| 117 |
cfl(1:nit,i)=f{strcat(nam2,'_',namA(i,:),namX)}(:) ; |
| 118 |
end |
| 119 |
fprintf([' ',nam2,' ']); |
| 120 |
end |
| 121 |
|
| 122 |
%-------- |
| 123 |
if list_on(9) == 1, |
| 124 |
nam2='vort' ; namX='_max'; clear namA ; |
| 125 |
namA(1,:)='r_min '; |
| 126 |
namA(2,:)='r_max '; |
| 127 |
%namA(3,:)='a_mean'; |
| 128 |
namA(3,:)='a_sd '; |
| 129 |
namA(4,:)='p_sd '; |
| 130 |
for i=1:4, |
| 131 |
zm(1:nit,i)=f{strcat(nam2,'_',namA(i,:))}(:) ; |
| 132 |
end |
| 133 |
fprintf([' ',nam2,' ']); |
| 134 |
end |
| 135 |
|
| 136 |
%-------- |
| 137 |
if list_on(10) == 1, |
| 138 |
nam2='surfExpan' ; namX='_mean'; clear namA ; |
| 139 |
namA(1,:)='theta'; |
| 140 |
namA(2,:)='salt '; |
| 141 |
for i=1:2, |
| 142 |
fprintf([' >',strcat(nam2,'_',namA(i,:),namX),'< \n']); |
| 143 |
sct(1:nit,i)=f{strcat(nam2,'_',namA(i,:),namX)}(:) ; |
| 144 |
end |
| 145 |
fprintf([' ',nam2,' ']); |
| 146 |
end |
| 147 |
|
| 148 |
close(f); |
| 149 |
|
| 150 |
fprintf(' <= end \n'); |
| 151 |
|
| 152 |
return |