/[MITgcm]/MITgcm_contrib/jmc_script/readnc_MON.m
ViewVC logotype

Contents of /MITgcm_contrib/jmc_script/readnc_MON.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Mon Nov 9 17:36:04 2020 UTC (4 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: HEAD
Error occurred while calculating annotation data.
Add shell & matlab scripts to process MONITOR output from STDOUT files
 and make simple time-serie plots

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

  ViewVC Help
Powered by ViewVC 1.1.22