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

Annotation of /MITgcm_contrib/jmc_script/read_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, 7 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] = read_MON(rac_nam,list_on,nrec)
2     % [nit,tt,ke,et,tm,sm,um,vm,wm,cfl,zm,sct] = read_MON(rac_nam,list_on,[nrec])
3     %-----------------------------------------------------------------
4     % read MONITOR output var from single-var 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=[rac_nam,'.tim']; D=dir(namfil);
14     if size(D,1) == 1,
15     fprintf(['read ',namfil]); var=load(namfil);
16     else fprintf(['file: ',namfil,' not found => EXIT \n']); return; end
17     nit=size(var,1);
18     if (nargin < 3), nrec=nit ; end
19     nit=min(nit,nrec);
20     tt=zeros(nrec,1); tt(1:nit)=var(1:nit); msgA=' ';
21     %-----
22    
23     ke=zeros(nrec,5);
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     if list_on(1) == 1
35     var=load([rac_nam,'.keX']); ke(1:nit,1)=var(1:nit); fprintf(' keX');
36     var=load([rac_nam,'.keA']); ke(1:nit,2)=var(1:nit); fprintf(',A');
37     namfil=[rac_nam,'.amE']; D=dir(namfil); sfx=',amE';
38     if size(D,1) == 0, namfil=[rac_nam,'.keV']; D=dir(namfil); sfx=',V' ; end
39     if size(D,1) == 1, var=load(namfil); ke(1:nit,3)=var(1:nit); fprintf(sfx); end
40     namfil=[rac_nam,'.amU']; D=dir(namfil); sfx=',U';
41     if size(D,1) == 0, namfil=[rac_nam,'.peA']; D=dir(namfil); sfx=',P'; end
42     if size(D,1) == 1, var=load(namfil); ke(1:nit,4)=var(1:nit); fprintf(sfx); end
43     namfil=[rac_nam,'.amT']; D=dir(namfil);
44     if size(D,1) == 1, var=load(namfil); ke(1:nit,5)=var(1:nit); fprintf(',T'); end
45     end
46     %fprintf('\n nrec,nit, %i , %i \n', nrec,nit);
47     %fprintf('tt: %i %i \n',size(tt));
48     %fprintf('ke: %i %i \n',size(ke));
49    
50     if list_on(2) == 1, [et,msg] =read_MON_1v([rac_nam,'.et'],nit,nrec) ;
51     if length(msg) ~= 1, msgA=sprintf([msgA,msg]) ; end ; end
52     if list_on(3) == 1, [tm,msg] =read_MON_1v([rac_nam,'.t_'],nit,nrec) ;
53     if length(msg) ~= 1, msgA=sprintf([msgA,msg]) ; end ; end
54     if list_on(4) == 1, [sm,msg] =read_MON_1v([rac_nam,'.s_'],nit,nrec) ;
55     if length(msg) ~= 1, msgA=sprintf([msgA,msg]) ; end ; end
56     if list_on(5) == 1, [um,msg] =read_MON_1v([rac_nam,'.u_'],nit,nrec) ;
57     if length(msg) ~= 1, msgA=sprintf([msgA,msg]) ; end ; end
58     if list_on(6) == 1, [vm,msg] =read_MON_1v([rac_nam,'.v_'],nit,nrec) ;
59     if length(msg) ~= 1, msgA=sprintf([msgA,msg]) ; end ; end
60     if list_on(7) == 1, [wm,msg] =read_MON_1v([rac_nam,'.w_'],nit,nrec) ;
61     if length(msg) ~= 1, msgA=sprintf([msgA,msg]) ; end ; end
62     if list_on(8) == 1, [cfl,msg]=read_MON_1v([rac_nam,'.cf'],-nit,nrec);
63     if length(msg) ~= 1, msgA=sprintf([msgA,msg]) ; end ; end
64     %--------
65     if list_on(9) == 1, [zm,msg]=read_MON_1v([rac_nam,'.z_'],nit,nrec);
66     namfil=[rac_nam,'.z_D']; D=dir(namfil); if size(D,1) == 1,
67     zm(:,3)=zm(:,4); var=load(namfil); zm(1:nit,4)=var(1:nit); fprintf(',sd'); end
68     if length(msg) ~= 1, msgA=sprintf([msgA,msg]) ; end ; end
69     %--------
70     if list_on(10) == 1, [sct,msg]=read_MON_1v([rac_nam,'.sc'],-nit,nrec);
71     if length(msg) ~= 1, msgA=sprintf([msgA,msg]) ; end ; end
72     fprintf(' <= end \n');
73     if length(msgA) ~= 1, fprintf([' not found:',msgA,'\n']) ; end
74    
75     return
76    
77     function [var,msg] = read_MON_1v(nam,nit,nrec)
78     prt=0; msg=' ';
79     ll=size(nam,2);
80     fprintf([' ',nam(ll-2:ll)]);
81     %sufx='NXAD';
82     sufx='NXAS';
83     if nit < 0,
84     if nam(end-1:end) == 'cf', sufx='uvwW';
85     elseif nam(end-1:end) == 'sc', sufx='TSHE';
86     end
87     nit=-nit;
88     end
89     var=zeros(nrec,4);
90     for n=1:length(sufx),
91     namfil=[nam,sufx(n)]; D=dir(namfil);
92     if size(D,1) == 1, tmp=load(namfil); var(1:nit,n)=tmp(1:nit);
93     else msg=sprintf([msg,namfil,' ']); prt=1 ;
94     end
95     end
96     return

  ViewVC Help
Powered by ViewVC 1.1.22