/[MITgcm]/MITgcm_contrib/gael/matlab_class/gcmfaces_diags/diags_driver.m
ViewVC logotype

Annotation of /MITgcm_contrib/gael/matlab_class/gcmfaces_diags/diags_driver.m

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


Revision 1.18 - (hide annotations) (download)
Tue May 10 21:55:43 2016 UTC (9 years, 2 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint65x, checkpoint65w, checkpoint66a
Changes since 1.17: +9 -5 lines
- diags_driver.m: comment out cost_altimeter and issue print statement (to avoid
  overloading user's memory).
- diags_driver_tex.m: test whether cost_altimeter has generated output; remove
  call to cost_bp that remains a work in progress.
- diags_grid_parms.m: add dirModel to input argument list; search also for
  files in e.g. release2/nctiles_grid.
- diags_pre_process.m: pass dirModel as input to diags_grid_parms; also
  look for intput files in nctiles_remotesensing etc.

1 gforget 1.6 function []=diags_driver(dirModel,dirMat,years,setDiags,doInteractive);
2 gforget 1.17 % DIAGS_DRIVER(dirModel,dirMat,years,setDiags,doInteractive);
3 gforget 1.10 %
4 gforget 1.17 % computes estimation and physical diagnostics (setDiags) that
5     % can be included in the standard analysis from the data (for
6     % selected years) located in dirModel and stores the results
7     % in dirMat.
8     %
9     %notes: dirModel is the directory containing 'diags/' or 'nctiles/'
10     % dirMat is [dirModel 'mat/'] by default
11     % years may be set to a vector (e.g. [1992:2011]) or to
12     % 'climatology' when using a climatological year
13     % setDiags is by default set to {'A','B','C','MLD'}
14     % doInteractive=1 allows users to specify parameters interactively
15     % whereas doInteractive = 0 (default) uses ECCO v4 parameters
16 gforget 1.1
17     gcmfaces_global; global myparms;
18    
19     %%%%%%%%%%%%%%%
20     %pre-processing
21     %%%%%%%%%%%%%%%
22    
23 gforget 1.6 if isempty(who('doInteractive')); doInteractive=0; end;
24     myswitch=diags_pre_process(dirModel,dirMat,doInteractive);
25 gforget 1.1
26 gforget 1.9 dirModel=[dirModel '/'];
27     if isempty(dirMat); dirMat=[dirModel 'mat/']; else; dirMat=[dirMat '/']; end;
28    
29 gforget 1.10 %%%%%%%%%%%%%%%%%%%%
30     %set loop parameters
31     %%%%%%%%%%%%%%%%%%%%
32    
33 gforget 1.16 if ischar(years);
34     if strcmp(years,'climatology');
35     years=myparms.yearFirst;
36     else;
37     error('unknown specification of years');
38     end;
39     end;
40    
41 gforget 1.10 years=years-myparms.yearFirst+1;
42     if myparms.diagsAreMonthly;
43     years=years(years<=myparms.recInAve(2)/12);
44     lChunk=12;
45     end;
46     if myparms.diagsAreAnnual;
47     years=years(years<=myparms.recInAve(2));
48     lChunk=1;
49 gforget 1.7 end;
50    
51 gforget 1.1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52     %now do the selected computation chunk:
53     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54    
55 gforget 1.14 if isempty(who('setDiags'));
56 gforget 1.15 setDiags={'A','B','C','MLD'};
57 gforget 1.14 if myswitch.doBudget; setDiags={setDiags{:},'D'}; end;
58     if myswitch.doProfiles; setDiags={setDiags{:},'profiles'}; end;
59     if myswitch.doCost; setDiags={setDiags{:},'ecco'}; end;
60     if myswitch.doCtrl; setDiags={setDiags{:},'ctrl'}; end;
61     elseif ischar(setDiags);
62     setDiags={setDiags};
63     end;
64    
65     for iDiag=1:length(setDiags);
66    
67     nmDiag=setDiags{iDiag};
68    
69     normalLoop=~strcmp(nmDiag,'B')&~strcmp(nmDiag,'D')&...
70     ~strcmp(nmDiag,'profiles')&~strcmp(nmDiag,'ecco')&~strcmp(nmDiag,'ctrl');
71    
72     if normalLoop;
73     for myYear=years;
74     diags_select(dirModel,dirMat,nmDiag,lChunk,myYear);
75     end;
76    
77     elseif strcmp(nmDiag,'B');
78     recInAve=[myparms.recInAve(1):myparms.recInAve(2)];
79     diags_select(dirModel,dirMat,'B',1,recInAve);
80    
81     elseif strcmp(nmDiag,'D');
82     for kk=myparms.budgetList;
83     for myYear=years;
84     diags_select(dirModel,dirMat,{nmDiag,kk},lChunk,myYear);
85     end;
86     end;
87    
88 gforget 1.18 elseif strcmp(nmDiag,'profiles')&myswitch.doProfiles;
89     fprintf('> starting insitu_diags\n');
90 gforget 1.14 insitu_diags(dirMat,1);
91    
92 gforget 1.18 elseif strcmp(nmDiag,'ecco')&myswitch.doCost;
93     fprintf('!cost_altimeter is commented out because it requires >32G and >30min\n');
94     fprintf('! User may uncomment the following line if enough memory is available\n\n');
95     %cost_altimeter(dirModel,dirMat);
96     fprintf('> starting cost_sst\n');
97 gforget 1.14 cost_sst(dirModel,dirMat,1);
98 gforget 1.18 fprintf('> starting cost_seaice\n');
99 gforget 1.14 cost_seaicearea(dirModel,dirMat,1);
100 gforget 1.13
101 gforget 1.18 elseif strcmp(nmDiag,'ctrl')&myswitch.doCtrl;
102 gforget 1.14 cost_xx(dirModel,dirMat,1);
103 gforget 1.10
104 gforget 1.1 end;
105 gforget 1.14
106 gforget 1.1 end;
107    

  ViewVC Help
Powered by ViewVC 1.1.22