/[MITgcm]/MITgcm/verification/offline_exf_seaice/input/grph_diag.m
ViewVC logotype

Contents of /MITgcm/verification/offline_exf_seaice/input/grph_diag.m

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


Revision 1.2 - (show annotations) (download)
Mon Jan 14 16:55:13 2013 UTC (11 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64o, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint64n, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint64e, checkpoint64d, checkpoint64c, checkpoint64g, checkpoint64f, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint65, checkpoint64j, checkpoint64m, checkpoint64l, HEAD
Changes since 1.1: +9 -2 lines
take missingValue from meta file (if it's there).

1 % $Header: /u/gcmpack/MITgcm/verification/offline_exf_seaice/input/grph_diag.m,v 1.1 2013/01/10 20:23:52 jmc Exp $
2 % $Name: $
3
4 if size(who('kpr'),1) > 0,
5 fprintf('kpr is defined and = %i \n',kpr);
6 else
7 fprintf('kpr undefined ; set to 1 \n'); kpr=1 ;
8 end
9
10 Nexp=1; %- plot results from 1 (in rDir1) or from 2 experiments (in rDir1 & rDir2)
11 kdif=0; %- if Nexp=2, do diff plot (kdif=1) or plot both exp. field (kdif=0)
12 deltaT=3600;
13 rDir1='./'; iter=[1:5]*24;
14 rDir2=rDir1; ite2=iter;
15 %rDir2='res_n05/'; %ite2=24;
16 gDir=rDir1;
17
18 namF='iceDiag';
19 %namF='snapshot'; iter=iter-1; ite2=iter;
20
21 ii=strfind(rDir1,'/'); if length(ii) > 1, ii=1+ii(end-1); else ii=1; end
22 titexp1=rDir1(ii:end-1); titexp1=strrep(titexp1,'_','\_');
23 ii=strfind(rDir2,'/'); if length(ii) > 1, ii=1+ii(end-1); else ii=1; end
24 titexp2=rDir2(ii:end-1); titexp2=strrep(titexp2,'_','\_');
25
26 G=load_grid(gDir,0);
27 nx=G.dims(1); ny=G.dims(2);
28 xc=[1:nx]; xc=xc-mean(xc); yc=[1:ny]-.5;
29
30 msk1=squeeze(G.hFacC); msk1=ceil(msk1); msk1=min(msk1,1);
31
32 Nit=length(iter);
33 if kpr > 0,
34 clear missingValue ;
35 [v4d1,its,M]=rdmds([rDir1,namF],iter); %v4d1=squeeze(v4d1);
36 eval(M); namV=char(fldList) ; nV=size(namV,1);
37 if Nexp > 1, [v4d2,its,M]=rdmds([rDir2,namF],ite2); end
38 jA=0; [J]=find(strcmp(fldList,'SI_Fract')); if length(J) == 1 & jA == 0, jA=J; end
39 [J]=find(strcmp(fldList,'SIarea ')); if length(J) == 1 & jA == 0, jA=J; end
40 jH=0; [J]=find(strcmp(fldList,'SI_Thick')); if length(J) == 1 & jH == 0, jH=J; end
41 jE=0; [J]=find(strcmp(fldList,'SIheff ')); if length(J) == 1 & jE == 0, jE=J; end
42 if size(who('missingValue'),1) > 0,
43 fprintf('take missingValue from meta file:');
44 if strcmp(dataprec,'float32'), misVal=single(missingValue); else misVal=missingValue; end
45 else
46 fprintf('no missingValue defined ; set'); misVal=-999.;
47 end
48 fprintf(' misVal= %f\n',misVal);
49 end
50
51 % add/replace Effective thickness
52 nVo=nV;
53 %- to disable addition/replacement:
54 %jA=-1;
55 if jE == 0 & jA*jH > 0,
56 jE=12;
57 if jE > nV, jE=nV+1;
58 var=v4d1; v4d1=zeros([dimList jE Nit]); v4d1(:,:,1:nV,:)=var;
59 if Nexp > 1, var=v4d2; v4d2=zeros([dimList jE Nit]); v4d2(:,:,1:nV,:)=var; end
60 nV=jE;
61 end
62 namV(jE,:)='SI_Heff ';
63 v4d1(:,:,jE,:)=v4d1(:,:,jA,:).*v4d1(:,:,jH,:);
64 if Nexp > 1, v4d2(:,:,jE,:)=v4d2(:,:,jA,:).*v4d2(:,:,jH,:); end
65 end
66 if jH == 0 & jA*jE > 0,
67 jH=12;
68 if jH > nV, jH=nV+1;
69 var=v4d1; v4d1=zeros([dimList jE Nit]); v4d1(:,:,1:nV,:)=var;
70 if Nexp > 1, var=v4d2; v4d2=zeros([dimList jE Nit]); v4d2(:,:,1:nV,:)=var; end
71 nV=jH;
72 end
73 namV(jH,:)='SI_thick';
74 var=v4d1(:,:,jA,:); var(find(var==0))=-1; var=1./var; var=max(var,0);
75 v4d1(:,:,jH,:)=v4d1(:,:,jE,:).*var;
76 if Nexp > 1,
77 var=v4d2(:,:,jA,:); var(find(var==0))=-1; var=1./var; var=max(var,0);
78 v4d2(:,:,jH,:)=v4d2(:,:,jE,:).*var;
79 end
80 end
81
82 % nt : select which time index to plot in 2-d
83 % is,js : select which section to plot
84 nf=0; nt=Nit; kplot=ones(1,nV);
85 %kplot(11:nV)=0;
86 is=61; js=41;
87
88 xtxt=xc(1); ytxt=yc(1)-5*(yc(2)-yc(1)); clin='kbcmrgy';
89 xydp=[50 20]; xyp0=[50 20]+nf*xydp; xysp=[500 700]; xydp=[100 40];
90
91 for j=1:nV,
92 facM=1.; ccB=[0 0];
93 if j <= nVo,
94 %- convert Fresh-water flux (from kg/m^2/s & m/s) to [mm/d]:
95 if strcmp(fldList(j),'SIfrw2oc') | strcmp(fldList(j),'SIfrwAtm'), facM=86400.; end
96 if strcmp(fldList(j),'EXFempmr'), facM=1000*86400.; end
97 end
98 if kplot(j) == 1,
99 nf=nf+1;
100 %if kplot(nf) == 1,
101 xyp0=xyp0+xydp;
102 figure(nf); set(nf,'position',[xyp0 xysp]);clf;
103 ns=210;
104 ns=ns+1; subplot(ns);
105 jg=j;
106 titv=namV(jg,:); titv=strrep(titv,'_','\_');
107 titime=sprintf('t= %4.1f d',iter(nt)*deltaT/86400);
108 var=squeeze(v4d1(:,:,jg,nt)); var(find(var==misVal))=NaN;
109 var(find(msk1==0))=NaN;
110 var=facM*var; mnV=min(var(:)); MxV=max(var(:));
111 if MxV > mnV,
112 imagesc(xc,yc,var'); set(gca,'YDir','normal');
113 ccB=[mnV MxV] + [-1 1]*(MxV-mnV)/10; caxis(ccB); change_colmap(-1);
114 if strcmp(namV(jg,:),'SI_thick'), ccB=[-.1 1.1]; end
115 if ccB(2) <= ccB(1), ccB=[mnV MxV] + [-1 1]*(MxV-mnV)/10; end
116 caxis(ccB); change_colmap(-1);
117 %contourf(xc,yc,var',14);
118 BB=colorbar('EastOutside');
119 %[cs,h]=contour(yc,yc,var',cc);clabel(cs); isoline0(h);
120 else fprintf(' %s , uniform = %e\n',namV(jg,:),MxV); end
121 title([titexp1,' ; ',titv,' ; ',titime]);
122 text(xtxt,ytxt,sprintf('min,Max= %9.5g , %9.5g', mnV, MxV))
123 if Nexp > 1, ns=ns+1; subplot(ns);
124 vv2=squeeze(v4d2(:,:,jg,nt)); vv2(find(vv2==misVal))=NaN;
125 var=facM*vv2-kdif*var;
126 var(find(msk1==0))=NaN;
127 mnV=min(var(:)); MxV=max(var(:));
128 if MxV > mnV,
129 imagesc(xc,yc,var'); set(gca,'YDir','normal');
130 %- note: 2nd plot has same color-range (except if diff plot)
131 if (ccB(2)-ccB(1))*(kdif-1) >= 0, ccB=[mnV MxV] + [-1 1]*(MxV-mnV)/10; end
132 caxis(ccB); change_colmap(-1);
133 %contourf(xc,yc,var',12);
134 BB=colorbar('EastOutside');
135 %[cs,h]=contour(yc,yc,var',cc);clabel(cs); isoline0(h);
136 else fprintf(' %s , uniform = %e\n',namV(jg,:),MxV); end
137 if kdif == 1, titplot=['Diff: ',titexp2,' - ',titexp1];
138 else titplot=[titexp2,' ; ',titv]; end ; title(titplot);
139 text(xtxt,ytxt,sprintf('min,Max= %9.5g , %9.5g', mnV, MxV))
140 else
141 subplot(223);
142 var=squeeze(v4d1(is,:,jg,:)); var(find(var==misVal))=NaN;
143 var=facM*var; mnV=min(var(:)); MxV=max(var(:));
144 m1d=squeeze(msk1(is,:)); [J]=find(m1d==0);
145 for n=1:Nit,
146 jt=1+rem(n-1,length(clin));
147 if n > length(clin); ccln=[clin(jt:jt),'--']; else ccln=[clin(jt:jt),'-'];end
148 var(J,n)=NaN;
149 plot(yc,var(:,n),ccln);
150 if n==1, hold on; end
151 end
152 hold off; AA=axis; axis([0 ny AA(3:4)]);
153 grid
154 titplot=[titexp1,' ; ',titv,' ; is=',int2str(is)];
155 title(titplot);
156 subplot(224);
157 var=squeeze(v4d1(:,js,jg,:)); var(find(var==misVal))=NaN;
158 var=facM*var; mnV=min(var(:)); MxV=max(var(:));
159 m1d=squeeze(msk1(:,js)); [J]=find(m1d==0);
160 for n=1:Nit,
161 jt=1+rem(n-1,length(clin));
162 if n > length(clin); ccln=[clin(jt:jt),'--']; else ccln=[clin(jt:jt),'-'];end
163 var(J,n)=NaN;
164 plot(xc,var(:,n),ccln);
165 if n==1, hold on; end
166 end
167 hold off;
168 grid
169 titplot=[titexp1,' ; ',titv,' ; js=',int2str(js)];
170 title(titplot);
171 end
172 put_date;
173 end
174 end
175
176 return

  ViewVC Help
Powered by ViewVC 1.1.22