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

Annotation of /MITgcm_contrib/jmc_script/readnc_MON.m

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


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

1 jmc 1.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