/[MITgcm]/MITgcm_contrib/gael/matlab_class/ecco_v4/cost_xx.m
ViewVC logotype

Annotation of /MITgcm_contrib/gael/matlab_class/ecco_v4/cost_xx.m

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


Revision 1.11 - (hide annotations) (download)
Mon Oct 5 21:55:46 2015 UTC (9 years, 9 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint65r, checkpoint65p, checkpoint65q
Changes since 1.10: +3 -3 lines
- improved treatment of directory names.

1 gforget 1.5 function []=cost_xx(dirModel,dirMat,doComp,dirTex,nameTex);
2 gforget 1.1 %object: compute cost function term for atmospheric controls
3     %inputs: dirModel is the model directory
4 gforget 1.3 % dirMat is the directory where diagnozed .mat files will be saved
5     % -> set it to '' to use the default [dirModel 'mat/']
6 gforget 1.1 % doComp is a switch (1->compute; 0->display)
7 gforget 1.3 %optional: dirTex is the directory where tex and figures files are created
8     % (if not specified then display all results to screen instead)
9 gforget 1.5 % nameTex is the tex file name (default : 'myPlots')
10 gforget 1.1
11 gforget 1.11 if isempty(dirMat); dirMat=[dirModel 'mat' filesep]; else; dirMat=[dirMat filesep]; end;
12 gforget 1.9 if isempty(dir(dirMat)); mkdir([dirMat]); end;
13 gforget 1.3
14     %determine if and where to create tex and figures files
15 gforget 1.11 dirMat=[dirMat filesep];
16 gforget 1.3 if isempty(who('dirTex'));
17     addToTex=0;
18     else;
19     if ~ischar(dirTex); error('mis-specified dirTex'); end;
20 gforget 1.5 addToTex=1;
21     if isempty(who('nameTex')); nameTex='myPlots'; end;
22 gforget 1.11 fileTex=[dirTex filesep nameTex '.tex'];
23 gforget 1.3 end;
24 gforget 1.1
25     for ii=1:6;
26     switch ii;
27     case 1; xxName='atemp'; sigName='cap_sigma_tmp2m_degC_eccollc.bin'; cc=2; uni='K';
28     case 2; xxName='aqh'; sigName='cap_sigma_spfh2m_eccollc.bin'; cc=2; uni='g/kg';
29     case 3; xxName='tauu'; sigName='cap_sigma_ustr_eccollc.bin'; cc=0.04; uni='N/m2';
30     case 4; xxName='tauv'; sigName='cap_sigma_vstr_eccollc.bin'; cc=0.04; uni='N/m2';
31     case 5; xxName='lwdown'; sigName='cap_sigma_dlw_eccollc.bin'; cc=20; uni='W/m2';
32     case 6; xxName='swdown'; sigName='cap_sigma_dsw_eccollc.bin'; cc=40; uni='W/m2';
33     end;
34    
35     if doComp;
36    
37     %load grid
38 gforget 1.2 gcmfaces_global;
39     if ~isfield(mygrid,'XC'); grid_load('./GRID/',5,'compact'); end;
40     if ~isfield(mygrid,'LATS_MASKS'); gcmfaces_lines_zonal; end;
41    
42 gforget 1.10 if ~isempty(dir([dirModel sigName]));
43     dirSig=dirModel;
44     else;
45     dirSig='/net/nares/raid11/ecco-shared/ecco-version-4/input/input_all_from_pleiades/';
46     end;
47    
48     if ~isempty(dir([dirModel 'xx_' xxName '.effective.*data']));
49     dirXX=dirModel;
50     else;
51     dirXX=[dirModel 'ADXXfiles' filesep];
52     end;
53 gforget 1.1
54     %read model cost output
55 gforget 1.10 tmp1=dir([dirXX 'xx_' xxName '.effective.*data']);
56 gforget 1.4 tmp2=size(convert2gcmfaces(mygrid.XC));
57 gforget 1.10 fld_xx=read2memory([dirXX tmp1.name],[tmp2 tmp1.bytes/tmp2(1)/tmp2(2)/4]);
58 gforget 1.4 fld_xx=convert2gcmfaces(fld_xx);
59 gforget 1.10 %does not work when adjoint overwrites xx*effective*meta fld_xx=rdmds2gcmfaces([dirXX 'xx_' xxName '.effective.*']);
60 gforget 1.4
61 gforget 1.8 fld_sig=read_bin([dirSig sigName],1,0);
62 gforget 1.1 if strcmp(xxName,'aqh'); fld_xx=fld_xx*1000; fld_sig=fld_sig*1000; end;
63    
64     %compute xx stats
65     fld_rms=sqrt(mean(fld_xx.^2,3));
66     fld_mean=mean(fld_xx,3);
67     fld_std=std(fld_xx,[],3);
68    
69     %mask
70     fld_rms=fld_rms.*mygrid.mskC(:,:,1);
71     fld_sig=fld_sig.*mygrid.mskC(:,:,1);
72     fld_mean=fld_mean.*mygrid.mskC(:,:,1);
73     fld_std=fld_std.*mygrid.mskC(:,:,1);
74    
75     clear fld_xx;
76    
77 gforget 1.7 if ~isdir([dirMat 'cost/']); mkdir([dirMat 'cost/']); end;
78     eval(['save ' dirMat '/cost/cost_xx_' xxName '.mat fld_* cc uni;']);
79 gforget 1.1
80     else;%display previously computed results
81    
82     global mygrid;
83    
84 gforget 1.7 if ~isdir([dirMat 'cost/']); dirMat=[dirMat 'cost/']; end;
85    
86 gforget 1.3 eval(['load ' dirMat '/cost_xx_' xxName '.mat;']);
87 gforget 1.1
88     figure;
89     m_map_gcmfaces(fld_sig,0,{'myCaxis',[0:0.05:0.5 0.6:0.1:1 1.25]*cc});
90     myCaption={['prior uncertainty -- ' xxName ' (' uni ')']};
91 gforget 1.3 if addToTex; write2tex(fileTex,2,myCaption,gcf); end;
92 gforget 1.1
93     figure;
94     m_map_gcmfaces(fld_rms,0,{'myCaxis',[0:0.05:0.5 0.6:0.1:1 1.25]*cc});
95     myCaption={['rms adjustment -- ' xxName ' (' uni ')']};
96 gforget 1.3 if addToTex; write2tex(fileTex,2,myCaption,gcf); end;
97 gforget 1.1
98     figure;
99     m_map_gcmfaces(fld_std,0,{'myCaxis',[0:0.05:0.5 0.6:0.1:1 1.25]*cc});
100     myCaption={['std adjustment -- ' xxName ' (' uni ')']};
101 gforget 1.3 if addToTex; write2tex(fileTex,2,myCaption,gcf); end;
102 gforget 1.1
103     figure;
104     m_map_gcmfaces(fld_mean,0,{'myCaxis',[-0.5:0.05:0.5]*cc});
105     myCaption={['mean adjustment -- ' xxName ' (' uni ')']};
106 gforget 1.3 if addToTex; write2tex(fileTex,2,myCaption,gcf); end;
107 gforget 1.1
108     end;
109    
110     end;%for ii=1:6;
111    

  ViewVC Help
Powered by ViewVC 1.1.22