/[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.14 - (hide annotations) (download)
Mon Oct 5 16:51:44 2015 UTC (9 years, 9 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint65r, checkpoint65p, checkpoint65q
Changes since 1.13: +45 -41 lines
- improved treatment of directory names, switches, and driver.

1 gforget 1.6 function []=diags_driver(dirModel,dirMat,years,setDiags,doInteractive);
2 gforget 1.1 %object: compute the various cost and physics
3     % diagnosits from model output
4 gforget 1.6 %input: dirModel is the directory containing 'diags/' or 'nctiles/'
5     % dirMat is the directory where diagnostics results will be saved
6     % if isempty(dirMat) then [dirModel 'mat/'] is used by default
7     % years (vector) that states years (or sets of 12 records) to compute
8     % if years=[1:4] then the first 4 years are computed
9     %(optional) setDiags further specifies physical diags to be computed
10     % if setDiags='A' then one set of diags ('A') is computed
11 gforget 1.14 % By default three sets of diags (i.e., setDiags={'A','B','C'}) are computed.
12 gforget 1.6 %(optional) doInteractive=1 allows users to specify parameters interactively
13     % doInteractive = 0 (default) uses ECCO v4 parameters
14     % and omits budgets and model-data misfits analyses
15 gforget 1.10 %
16 gforget 1.6 %notes : eventually should also use dirMat, dirTex interactively for years=[];
17 gforget 1.1
18     gcmfaces_global; global myparms;
19    
20     %%%%%%%%%%%%%%%
21     %pre-processing
22     %%%%%%%%%%%%%%%
23    
24 gforget 1.6 if isempty(who('doInteractive')); doInteractive=0; end;
25     myswitch=diags_pre_process(dirModel,dirMat,doInteractive);
26 gforget 1.1
27 gforget 1.9 dirModel=[dirModel '/'];
28     if isempty(dirMat); dirMat=[dirModel 'mat/']; else; dirMat=[dirMat '/']; end;
29    
30 gforget 1.10 %%%%%%%%%%%%%%%%%%%%
31     %set loop parameters
32     %%%%%%%%%%%%%%%%%%%%
33    
34     years=years-myparms.yearFirst+1;
35     if myparms.diagsAreMonthly;
36     years=years(years<=myparms.recInAve(2)/12);
37     lChunk=12;
38     end;
39     if myparms.diagsAreAnnual;
40     years=years(years<=myparms.recInAve(2));
41     lChunk=1;
42 gforget 1.7 end;
43    
44 gforget 1.1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
45     %now do the selected computation chunk:
46     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47    
48 gforget 1.14 if isempty(who('setDiags'));
49     setDiags={'A','B','C'};
50     if myswitch.doBudget; setDiags={setDiags{:},'D'}; end;
51     if myswitch.doProfiles; setDiags={setDiags{:},'profiles'}; end;
52     if myswitch.doCost; setDiags={setDiags{:},'ecco'}; end;
53     if myswitch.doCtrl; setDiags={setDiags{:},'ctrl'}; end;
54     elseif ischar(setDiags);
55     setDiags={setDiags};
56     end;
57    
58     for iDiag=1:length(setDiags);
59    
60     nmDiag=setDiags{iDiag};
61    
62     normalLoop=~strcmp(nmDiag,'B')&~strcmp(nmDiag,'D')&...
63     ~strcmp(nmDiag,'profiles')&~strcmp(nmDiag,'ecco')&~strcmp(nmDiag,'ctrl');
64    
65     if normalLoop;
66     for myYear=years;
67     diags_select(dirModel,dirMat,nmDiag,lChunk,myYear);
68     end;
69    
70     elseif strcmp(nmDiag,'B');
71     recInAve=[myparms.recInAve(1):myparms.recInAve(2)];
72     diags_select(dirModel,dirMat,'B',1,recInAve);
73    
74     elseif strcmp(nmDiag,'D');
75     for kk=myparms.budgetList;
76     for myYear=years;
77     diags_select(dirModel,dirMat,{nmDiag,kk},lChunk,myYear);
78     end;
79     end;
80    
81     elseif strcmp(nmDiag,'profiles');
82     insitu_diags(dirMat,1);
83    
84     elseif strcmp(nmDiag,'ecco');
85     cost_altimeter(dirModel,dirMat);
86     cost_sst(dirModel,dirMat,1);
87     cost_bp(dirModel,dirMat,1);
88     cost_seaicearea(dirModel,dirMat,1);
89 gforget 1.13
90 gforget 1.14 elseif strcmp(nmDiag,'ctrl');
91     cost_xx(dirModel,dirMat,1);
92 gforget 1.10
93 gforget 1.1 end;
94 gforget 1.14
95 gforget 1.1 end;
96    

  ViewVC Help
Powered by ViewVC 1.1.22