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 |