/[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.16 - (hide annotations) (download)
Thu Jan 14 13:51:20 2016 UTC (9 years, 6 months ago) by gforget
Branch: MAIN
Changes since 1.15: +10 -2 lines
- option to specify years as 'climatology' (instead of
  e.g. [1992:2011]) when using a climatological average

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 gforget 1.16 % years (vector) specify a time window such as [1992:2011]
8     % (char) specify 'climatology' when using a climatological year
9 gforget 1.6 %(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 gforget 1.16 if ischar(years);
35     if strcmp(years,'climatology');
36     years=myparms.yearFirst;
37     else;
38     error('unknown specification of years');
39     end;
40     end;
41    
42 gforget 1.10 years=years-myparms.yearFirst+1;
43     if myparms.diagsAreMonthly;
44     years=years(years<=myparms.recInAve(2)/12);
45     lChunk=12;
46     end;
47     if myparms.diagsAreAnnual;
48     years=years(years<=myparms.recInAve(2));
49     lChunk=1;
50 gforget 1.7 end;
51    
52 gforget 1.1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53     %now do the selected computation chunk:
54     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
55    
56 gforget 1.14 if isempty(who('setDiags'));
57 gforget 1.15 setDiags={'A','B','C','MLD'};
58 gforget 1.14 if myswitch.doBudget; setDiags={setDiags{:},'D'}; end;
59     if myswitch.doProfiles; setDiags={setDiags{:},'profiles'}; end;
60     if myswitch.doCost; setDiags={setDiags{:},'ecco'}; end;
61     if myswitch.doCtrl; setDiags={setDiags{:},'ctrl'}; end;
62     elseif ischar(setDiags);
63     setDiags={setDiags};
64     end;
65    
66     for iDiag=1:length(setDiags);
67    
68     nmDiag=setDiags{iDiag};
69    
70     normalLoop=~strcmp(nmDiag,'B')&~strcmp(nmDiag,'D')&...
71     ~strcmp(nmDiag,'profiles')&~strcmp(nmDiag,'ecco')&~strcmp(nmDiag,'ctrl');
72    
73     if normalLoop;
74     for myYear=years;
75     diags_select(dirModel,dirMat,nmDiag,lChunk,myYear);
76     end;
77    
78     elseif strcmp(nmDiag,'B');
79     recInAve=[myparms.recInAve(1):myparms.recInAve(2)];
80     diags_select(dirModel,dirMat,'B',1,recInAve);
81    
82     elseif strcmp(nmDiag,'D');
83     for kk=myparms.budgetList;
84     for myYear=years;
85     diags_select(dirModel,dirMat,{nmDiag,kk},lChunk,myYear);
86     end;
87     end;
88    
89     elseif strcmp(nmDiag,'profiles');
90     insitu_diags(dirMat,1);
91    
92     elseif strcmp(nmDiag,'ecco');
93     cost_altimeter(dirModel,dirMat);
94     cost_sst(dirModel,dirMat,1);
95     cost_bp(dirModel,dirMat,1);
96     cost_seaicearea(dirModel,dirMat,1);
97 gforget 1.13
98 gforget 1.14 elseif strcmp(nmDiag,'ctrl');
99     cost_xx(dirModel,dirMat,1);
100 gforget 1.10
101 gforget 1.1 end;
102 gforget 1.14
103 gforget 1.1 end;
104    

  ViewVC Help
Powered by ViewVC 1.1.22