1 |
gforget |
1.1 |
|
2 |
|
|
if userStep==1;%diags to be computed |
3 |
gforget |
1.4 |
listDiags='fldTzonmean fldSzonmean fldETANzonmean fldSSHzonmean fldSIzonmean fldMLDzonmean'; |
4 |
gforget |
1.1 |
listDiags=[listDiags ' IceAreaNorth IceAreaSouth IceVolNorth IceVolSouth SnowVolNorth SnowVolSouth']; |
5 |
gforget |
1.4 |
listDiags=[listDiags ' Ueq Teq SSHglo Tglo Sglo TgloProf SgloProf']; |
6 |
gforget |
1.1 |
elseif userStep==2;%input files and variables |
7 |
|
|
listFlds={ 'THETA','SALT','ETAN','SIarea','SIheff','SIhsnow','sIceLoad','MXLDEPTH','UVELMASS','VVELMASS'}; |
8 |
|
|
listFldsNames=deblank(listFlds); |
9 |
|
|
listFiles={'state_2d_set1','other_2d_set1','state_3d_set1','trsp_3d_set1'}; |
10 |
|
|
listSubdirs={[dirModel 'diags/OTHER/' ],[dirModel 'diags/STATE/' ],[dirModel 'diags/TRSP/']}; |
11 |
|
|
elseif userStep==3;%computational part; |
12 |
|
|
%mask and re-arrange fields: |
13 |
|
|
fldT=THETA.*mygrid.mskC; fldS=SALT.*mygrid.mskC; |
14 |
|
|
fldETAN=ETAN.*mygrid.mskC(:,:,1); |
15 |
gforget |
1.4 |
fldSSH=(ETAN+sIceLoad/myparms.rhoconst).*mygrid.mskC(:,:,1); |
16 |
gforget |
1.1 |
fldSI=SIarea.*mygrid.mskC(:,:,1); |
17 |
|
|
fldMLD=MXLDEPTH.*mygrid.mskC(:,:,1); |
18 |
|
|
ux=UVELMASS.*mygrid.mskW; vy=VVELMASS.*mygrid.mskS; |
19 |
|
|
[ue,un]=calc_UEVNfromUXVY(ux,vy); |
20 |
|
|
|
21 |
|
|
%compute zonal means: |
22 |
|
|
[fldTzonmean]=calc_zonmean_T(fldT); |
23 |
|
|
[fldSzonmean]=calc_zonmean_T(fldS); |
24 |
|
|
[fldETANzonmean]=calc_zonmean_T(fldETAN); |
25 |
gforget |
1.4 |
[fldSSHzonmean]=calc_zonmean_T(fldSSH); |
26 |
gforget |
1.1 |
[fldSIzonmean]=calc_zonmean_T(fldSI); |
27 |
|
|
[fldMLDzonmean]=calc_zonmean_T(fldMLD); |
28 |
|
|
|
29 |
|
|
%compute hemispheric ice sums: |
30 |
|
|
fld=SIarea.*mygrid.RAC.*(mygrid.YC>0); IceAreaNorth=sum(fld); |
31 |
|
|
fld=SIarea.*mygrid.RAC.*(mygrid.YC<0); IceAreaSouth=sum(fld); |
32 |
|
|
fld=SIheff.*mygrid.RAC.*(mygrid.YC>0); IceVolNorth=sum(fld); |
33 |
|
|
fld=SIheff.*mygrid.RAC.*(mygrid.YC<0); IceVolSouth=sum(fld); |
34 |
|
|
fld=SIhsnow.*mygrid.RAC.*(mygrid.YC>0); SnowVolNorth=sum(fld); |
35 |
|
|
fld=SIhsnow.*mygrid.RAC.*(mygrid.YC<0); SnowVolSouth=sum(fld); |
36 |
|
|
|
37 |
|
|
%equatorial sections of T and U: |
38 |
|
|
[secX,secY,Teq]=gcmfaces_section([],0,fldT,1); |
39 |
|
|
[secX,secY,Ueq]=gcmfaces_section([],0,ue,1); |
40 |
|
|
|
41 |
|
|
%global means and profiles: |
42 |
gforget |
1.4 |
msk=mygrid.RAC.*mygrid.mskC(:,:,1); |
43 |
|
|
SSHglo=nansum(fldSSH.*msk)./nansum(msk); |
44 |
|
|
% |
45 |
gforget |
1.1 |
msk=mygrid.mskC.*mygrid.hFacC; |
46 |
|
|
msk=msk.*mk3D(mygrid.RAC,msk).*mk3D(mygrid.DRF,msk); |
47 |
|
|
Tglo=nansum(fldT.*msk)./nansum(msk); |
48 |
|
|
Sglo=nansum(fldS.*msk)./nansum(msk); |
49 |
|
|
nr=length(mygrid.RC); |
50 |
|
|
TgloProf=zeros(nr,1); SgloProf=zeros(nr,1); |
51 |
|
|
for kk=1:nr; |
52 |
|
|
rac=mygrid.RAC.*mygrid.mskC(:,:,kk); |
53 |
|
|
TgloProf(kk)=nansum(rac.*fldT(:,:,kk))/nansum(rac); |
54 |
|
|
SgloProf(kk)=nansum(rac.*fldS(:,:,kk))/nansum(rac); |
55 |
|
|
end; |
56 |
gforget |
1.2 |
|
57 |
|
|
|
58 |
|
|
%===================== COMPUTATIONAL SEQUENCE ENDS =========================% |
59 |
|
|
%===================== PLOTTING SEQUENCE BEGINS =========================% |
60 |
|
|
|
61 |
|
|
elseif userStep==-1;%plotting |
62 |
|
|
|
63 |
|
|
if isempty(setDiagsParams); |
64 |
|
|
choicePlot={'all'}; |
65 |
|
|
else; |
66 |
|
|
choicePlot=setDiagsParams; |
67 |
|
|
end; |
68 |
|
|
|
69 |
gforget |
1.4 |
%ensure backward compatibility |
70 |
|
|
if ~isfield(alldiag,'fldSSHzonmean'); alldiag.fldSSHzonmean=alldiag.fldETANLEADSzonmean; end; |
71 |
|
|
if ~isfield(alldiag,'SSHglo'); alldiag.SSHglo=NaN*alldiag.Tglo; end; |
72 |
|
|
|
73 |
gforget |
1.2 |
if multiTimes&(sum(strcmp(choicePlot,'all'))|sum(strcmp(choicePlot,'zmtend'))); |
74 |
|
|
|
75 |
gforget |
1.4 |
if addToTex; write2tex(fileTex,1,'zonal mean tendencies',2); end; |
76 |
|
|
|
77 |
gforget |
1.2 |
figureL; set(gcf,'Renderer','zbuffer'); |
78 |
|
|
%cc=[-2:0.25:2]; |
79 |
|
|
cc=1/100*[[-200:50:-100] [-75 -50] [-35:10:35] [50 75] [100:50:200]] |
80 |
|
|
if doAnomalies; cc=scaleAnom/10*cc; end; |
81 |
|
|
X=mygrid.LATS*ones(1,length(mygrid.RC)); Y=ones(length(mygrid.LATS),1)*(mygrid.RC'); |
82 |
|
|
%T |
83 |
|
|
subplot(2,1,1); |
84 |
|
|
fld=annualmean(alldiag.listTimes,alldiag.fldTzonmean,'last')-annualmean(alldiag.listTimes,alldiag.fldTzonmean,'first'); |
85 |
|
|
depthStretchPlot('pcolor',{X,Y,fld}); shading interp; |
86 |
|
|
cbar=gcmfaces_cmap_cbar(cc); title('zonal mean T anomaly'); |
87 |
|
|
%S |
88 |
|
|
subplot(2,1,2); |
89 |
|
|
fld=annualmean(alldiag.listTimes,alldiag.fldSzonmean,'last')-annualmean(alldiag.listTimes,alldiag.fldSzonmean,'first'); |
90 |
|
|
depthStretchPlot('pcolor',{X,Y,fld}); shading interp; |
91 |
|
|
cbar=gcmfaces_cmap_cbar(cc/4); title('zonal mean S anomaly'); |
92 |
|
|
% |
93 |
|
|
myCaption={myYmeanTxt,', last year minus first year -- zonal mean temperature (degC; top) and salinity (psu; bottom)'}; |
94 |
|
|
if addToTex; write2tex(fileTex,2,myCaption,gcf); end; |
95 |
|
|
|
96 |
|
|
end; |
97 |
|
|
|
98 |
|
|
if sum(strcmp(choicePlot,'all'))|sum(strcmp(choicePlot,'eq')); |
99 |
|
|
|
100 |
gforget |
1.4 |
if addToTex; write2tex(fileTex,1,'equatorial sections',2); end; |
101 |
|
|
|
102 |
gforget |
1.2 |
%time mean equator sections : |
103 |
|
|
figureL; set(gcf,'Renderer','zbuffer'); cc0=[-2:0.25:2]; |
104 |
|
|
[secX,secY,LONeq]=gcmfaces_section([],0,mygrid.XC,1); |
105 |
|
|
X=LONeq*ones(1,length(mygrid.RC)); Y=ones(length(LONeq),1)*mygrid.RC'; |
106 |
|
|
X=circshift(X,[-180 0]); X(X<0)=X(X<0)+360; |
107 |
|
|
%T |
108 |
|
|
subplot(2,1,1); |
109 |
|
|
fld=annualmean(alldiag.listTimes,alldiag.Teq,'all'); fld=circshift(fld,[-180 0]); |
110 |
|
|
depthStretchPlot('pcolor',{X,Y,fld},[0:50:350],[0 350 350]); shading interp; |
111 |
|
|
if ~doAnomalies; cc=18+6*cc0; else; cc=scaleAnom/10*cc0*2; end; |
112 |
|
|
cbar=gcmfaces_cmap_cbar(cc); title('equator T (degC)'); |
113 |
|
|
%U |
114 |
|
|
subplot(2,1,2); |
115 |
|
|
fld=annualmean(alldiag.listTimes,alldiag.Ueq,'all'); fld=circshift(fld,[-180 0]); |
116 |
|
|
depthStretchPlot('pcolor',{X,Y,fld},[0:50:350],[0 350 350]); shading interp; |
117 |
|
|
if ~doAnomalies; cc=cc0/5*2; else; cc=scaleAnom/10*cc0/5; end; |
118 |
|
|
cbar=gcmfaces_cmap_cbar(cc); title('equator zonal velocity (m/s)'); |
119 |
|
|
% |
120 |
|
|
myCaption={myYmeanTxt,' mean -- equator temperature (degC;top) and zonal velocity (m/s;bottom)'}; |
121 |
|
|
if addToTex; write2tex(fileTex,2,myCaption,gcf); end; |
122 |
|
|
|
123 |
|
|
end; |
124 |
|
|
|
125 |
|
|
if multiTimes&(sum(strcmp(choicePlot,'all'))|sum(strcmp(choicePlot,'gmtime'))); |
126 |
|
|
|
127 |
gforget |
1.4 |
if addToTex; write2tex(fileTex,1,'global mean properties',2); end; |
128 |
|
|
|
129 |
gforget |
1.2 |
%global mean T/S: |
130 |
|
|
figureL; |
131 |
gforget |
1.4 |
subplot(3,1,1); vec=alldiag.SSHglo; |
132 |
|
|
plot(TT,vec,'LineWidth',2); hold on; plot(TT,runmean(vec,myNmean,2),'r','LineWidth',2); |
133 |
|
|
aa=axis; axis([min(TT) max(TT) aa(3:4)]); grid on; |
134 |
gforget |
1.5 |
legend('monthly','annual mean'); title('Global Mean Sea level (m'); |
135 |
|
|
subplot(3,1,2); vec=alldiag.Tglo; |
136 |
gforget |
1.2 |
plot(TT,vec,'LineWidth',2); hold on; plot(TT,runmean(vec,myNmean,2),'r','LineWidth',2); |
137 |
|
|
aa=axis; axis([min(TT) max(TT) aa(3:4)]); grid on; |
138 |
|
|
legend('monthly','annual mean'); title('Global Mean Temperature (degC)'); |
139 |
gforget |
1.5 |
subplot(3,1,3); vec=alldiag.Sglo; |
140 |
gforget |
1.2 |
plot(TT,vec,'LineWidth',2); hold on; plot(TT,runmean(vec,myNmean,2),'r','LineWidth',2); |
141 |
|
|
aa=axis; axis([min(TT) max(TT) aa(3:4)]); grid on; |
142 |
|
|
legend('monthly','annual mean'); title('Global Mean Salinity (psu)'); |
143 |
|
|
myCaption={'global mean T (degC; top) and S (psu; bottom)'}; |
144 |
|
|
if addToTex; write2tex(fileTex,2,myCaption,gcf); end; |
145 |
|
|
|
146 |
|
|
%global mean T/S profiles: |
147 |
|
|
figureL; set(gcf,'Renderer','zbuffer'); cc0=[-2:0.25:2]; |
148 |
|
|
X=TT*ones(1,length(mygrid.RC)); Y=ones(length(TT),1)*(mygrid.RC'); X=X'; Y=Y'; |
149 |
|
|
%T |
150 |
|
|
subplot(2,1,1); |
151 |
|
|
[tmp1,fld]=annualmean(alldiag.listTimes,squeeze(alldiag.TgloProf),'first'); |
152 |
|
|
depthStretchPlot('pcolor',{X,Y,fld}); shading interp; |
153 |
|
|
if ~doAnomalies; cc=cc0/5; else; cc=scaleAnom/10*cc0/10; end; |
154 |
|
|
cbar=gcmfaces_cmap_cbar(cc); title('global mean T minus first year (K)'); |
155 |
|
|
%S |
156 |
|
|
subplot(2,1,2); |
157 |
|
|
[tmp1,fld]=annualmean(alldiag.listTimes,squeeze(alldiag.SgloProf),'first'); |
158 |
|
|
depthStretchPlot('pcolor',{X,Y,fld}); shading interp; |
159 |
|
|
if ~doAnomalies; cc=cc0/50; else; cc=scaleAnom/10*cc0/50; end; |
160 |
|
|
cbar=gcmfaces_cmap_cbar(cc); title('global mean S minus first year (psu)'); |
161 |
|
|
% |
162 |
|
|
myCaption={'global mean temperature (K; top) and salinity (psu; bottom) minus first year'}; |
163 |
|
|
if addToTex; write2tex(fileTex,2,myCaption,gcf); end; |
164 |
|
|
|
165 |
|
|
end; |
166 |
|
|
|
167 |
|
|
|
168 |
|
|
if multiTimes&(sum(strcmp(choicePlot,'all'))|sum(strcmp(choicePlot,'lzmtime'))); |
169 |
|
|
|
170 |
gforget |
1.4 |
if addToTex; write2tex(fileTex,1,'zonal mean properties',2); end; |
171 |
|
|
|
172 |
|
|
listLatPlot=[-75 -65 -45 -25 0 25 45 65 75] |
173 |
gforget |
1.2 |
%zonal mean temperature profile at selected latitude: |
174 |
|
|
for iLatPlot=1:length(listLatPlot); |
175 |
|
|
tmp1=abs(mygrid.LATS-listLatPlot(iLatPlot)); |
176 |
|
|
iLat=find(tmp1==min(tmp1)); iLat=iLat(1); |
177 |
|
|
figureL; set(gcf,'Renderer','zbuffer'); cc=[-2:0.25:2]; |
178 |
|
|
if doAnomalies; cc=scaleAnom/10*cc; end; |
179 |
|
|
%T |
180 |
|
|
subplot(2,1,1); |
181 |
|
|
[tmp1,fld]=annualmean(alldiag.listTimes,squeeze(alldiag.fldTzonmean(iLat,:,:)),'first'); |
182 |
|
|
X=TT*ones(1,length(mygrid.RC)); Y=ones(length(TT),1)*(mygrid.RC'); X=X'; Y=Y'; |
183 |
|
|
title0=['mean T minus first year (K) at lat ~ ' num2str(listLatPlot(iLatPlot))]; |
184 |
|
|
depthStretchPlot('pcolor',{X,Y,fld}); shading interp; cbar=gcmfaces_cmap_cbar(cc/5); title(title0); |
185 |
|
|
%S |
186 |
|
|
subplot(2,1,2); |
187 |
|
|
[tmp1,fld]=annualmean(alldiag.listTimes,squeeze(alldiag.fldSzonmean(iLat,:,:)),'first'); |
188 |
|
|
X=TT*ones(1,length(mygrid.RC)); Y=ones(length(TT),1)*(mygrid.RC'); X=X'; Y=Y'; |
189 |
|
|
title0=['mean S minus first year (psu) at lat ~ ' num2str(listLatPlot(iLatPlot))]; |
190 |
|
|
depthStretchPlot('pcolor',{X,Y,fld}); shading interp; cbar=gcmfaces_cmap_cbar(cc/25); title(title0); |
191 |
|
|
|
192 |
|
|
myCaption={'mean temperature (top; K) and salinity (bottom; psu) minus first year ',... |
193 |
|
|
['at lat $\\approx$ ' num2str(listLatPlot(iLatPlot))]}; |
194 |
|
|
if addToTex; write2tex(fileTex,2,myCaption,gcf); end; |
195 |
|
|
end; |
196 |
|
|
|
197 |
|
|
end; |
198 |
|
|
|
199 |
|
|
|
200 |
|
|
if multiTimes&(sum(strcmp(choicePlot,'all'))|sum(strcmp(choicePlot,'szmtime'))); |
201 |
|
|
|
202 |
gforget |
1.4 |
if addToTex; write2tex(fileTex,1,'zonal mean properties (surface)',2); end; |
203 |
|
|
|
204 |
gforget |
1.2 |
%zonal mean SST/SSS: |
205 |
|
|
figureL; set(gcf,'Renderer','zbuffer'); cc0=[-2:0.25:2]; kk=1; |
206 |
|
|
x=TT*ones(1,length(mygrid.LATS)); y=ones(nt,1)*mygrid.LATS'; x=x'; y=y'; |
207 |
|
|
%T |
208 |
|
|
subplot(2,1,1); |
209 |
|
|
fld=squeeze(alldiag.fldTzonmean(:,kk,:)); [tmp1,fld]=annualmean(alldiag.listTimes,fld,'first'); |
210 |
|
|
if ~doAnomalies; cc=cc0*3; else; cc=scaleAnom/10*cc0; end; |
211 |
|
|
pcolor(x,y,fld); shading interp; axis([TT(1) TT(end) -90 90]); cbar=gcmfaces_cmap_cbar(cc); |
212 |
|
|
title('zonal mean SST minus first year (degC)'); |
213 |
|
|
%S |
214 |
|
|
subplot(2,1,2); |
215 |
|
|
fld=squeeze(alldiag.fldSzonmean(:,kk,:)); [tmp1,fld]=annualmean(alldiag.listTimes,fld,'first'); |
216 |
|
|
if ~doAnomalies; cc=cc0*2/5; else; cc=scaleAnom/10*cc0/2; end; |
217 |
|
|
pcolor(x,y,fld); shading interp; axis([TT(1) TT(end) -90 90]); cbar=gcmfaces_cmap_cbar(cc); |
218 |
|
|
title('zonal mean SSS minus first year (psu)'); |
219 |
|
|
% |
220 |
|
|
myCaption={'zonal mean temperature (degC; top) and salinity ',... |
221 |
|
|
'(psu; bottom) minus first year (psu)',[' at ' num2str(-mygrid.RC(kk)) 'm depth']}; |
222 |
|
|
if addToTex; write2tex(fileTex,2,myCaption,gcf); end; |
223 |
|
|
|
224 |
|
|
figureL; set(gcf,'Renderer','zbuffer'); cc=[-2:0.25:2]; kk=1; |
225 |
|
|
if doAnomalies; cc=scaleAnom/10*cc/2; end; |
226 |
|
|
x=TT*ones(1,length(mygrid.LATS)); y=ones(nt,1)*mygrid.LATS'; x=x'; y=y'; |
227 |
|
|
%SSH |
228 |
|
|
subplot(2,1,1); |
229 |
gforget |
1.4 |
[tmp1,fld]=annualmean(alldiag.listTimes,alldiag.fldSSHzonmean,'first'); |
230 |
gforget |
1.2 |
pcolor(x,y,fld); shading interp; axis([TT(1) TT(end) -90 90]); |
231 |
|
|
cbar=gcmfaces_cmap_cbar(2*cc/25); title(['zonal mean SSH minus first year (INCLUDING ice, in m)']); |
232 |
|
|
%ETAN |
233 |
|
|
subplot(2,1,2); |
234 |
|
|
[tmp1,fld]=annualmean(alldiag.listTimes,alldiag.fldETANzonmean,'first'); |
235 |
|
|
pcolor(x,y,fld); shading interp; axis([TT(1) TT(end) -90 90]); |
236 |
|
|
cbar=gcmfaces_cmap_cbar(4*cc/5); title(['zonal mean SSH minus first year (EXCLUDING ice, in m)']); |
237 |
|
|
% |
238 |
|
|
myCaption={'zonal mean SSH (m) minus first year, including ice (top) and below ice (bottom) '}; |
239 |
|
|
if addToTex; write2tex(fileTex,2,myCaption,gcf); end; |
240 |
|
|
|
241 |
|
|
figureL; set(gcf,'Renderer','zbuffer'); cc=[-2:0.25:2]; kk=1; |
242 |
|
|
if doAnomalies; cc=scaleAnom/10*cc; end; |
243 |
|
|
x=TT*ones(1,length(mygrid.LATS)); y=ones(nt,1)*mygrid.LATS'; x=x'; y=y'; |
244 |
|
|
%SSH |
245 |
|
|
subplot(2,1,1); |
246 |
|
|
fld=squeeze(alldiag.fldSIzonmean(:,tt)); |
247 |
|
|
pcolor(x,y,fld); shading interp; axis([TT(1) TT(end) -90 90]); |
248 |
gforget |
1.3 |
if doAnomalies; cc2=scaleAnom/50*cc; else; cc2=0.5+cc/4; end; |
249 |
|
|
cbar=gcmfaces_cmap_cbar(cc2); title(['zonal mean Ice conc. -- in m ']); |
250 |
gforget |
1.2 |
%MLD |
251 |
|
|
subplot(2,1,2); |
252 |
|
|
fld=squeeze(alldiag.fldMLDzonmean(:,tt)); |
253 |
|
|
pcolor(x,y,fld); shading interp; axis([TT(1) TT(end) -90 90]); |
254 |
gforget |
1.3 |
if doAnomalies; cc2=scaleAnom*40*cc; else; cc2=200+500*cc/5; end; |
255 |
|
|
cbar=gcmfaces_cmap_cbar(cc2); title(['zonal mean MLD -- in m ']); |
256 |
gforget |
1.2 |
% |
257 |
|
|
myCaption={'zonal mean ice concentration (no units) and mixed layer depth (m)'}; |
258 |
|
|
if addToTex; write2tex(fileTex,2,myCaption,gcf); end; |
259 |
|
|
|
260 |
|
|
end; |
261 |
|
|
|
262 |
|
|
|
263 |
|
|
if multiTimes&(sum(strcmp(choicePlot,'all'))|sum(strcmp(choicePlot,'icetime'))); |
264 |
|
|
|
265 |
gforget |
1.4 |
if addToTex; write2tex(fileTex,1,'seaice time series',2); end; |
266 |
|
|
|
267 |
gforget |
1.2 |
%sea ice area |
268 |
|
|
figureL; |
269 |
|
|
subplot(2,1,1); vec=alldiag.IceAreaNorth/1e12; |
270 |
|
|
plot(TT,vec,'LineWidth',2); hold on; plot(TT,runmean(vec,myNmean,2),'r','LineWidth',2); axis([min(TT) max(TT) 0 20]); |
271 |
|
|
if doAnomalies; aa(3:4)=scaleAnom*[-1 1]; axis(aa); end; |
272 |
|
|
grid on; if myNmean>0; legend('monthly','annual mean'); end; title('Northern Hemisphere ice cover (in 10^12m^2)'); |
273 |
|
|
subplot(2,1,2); vec=alldiag.IceAreaSouth/1e12; |
274 |
|
|
plot(TT,vec,'LineWidth',2); hold on; plot(TT,runmean(vec,myNmean,2),'r','LineWidth',2); axis([min(TT) max(TT) 0 25]); |
275 |
|
|
grid on; if myNmean>0; legend('monthly','annual mean'); end; title('Southern Hemisphere ice cover (in 10^12m^2)'); |
276 |
|
|
if doAnomalies; aa(3:4)=scaleAnom*[-1 1]; axis(aa); end; |
277 |
|
|
myCaption={'sea ice cover (in $10^12m^2$) in northern (top) and southern (bottom) hemisphere'}; |
278 |
|
|
if addToTex; write2tex(fileTex,2,myCaption,gcf); end; |
279 |
|
|
|
280 |
|
|
%sea ice volume |
281 |
|
|
figureL; |
282 |
|
|
subplot(2,1,1); vec=alldiag.IceVolNorth/1e12; |
283 |
|
|
plot(TT,vec,'LineWidth',2); hold on; plot(TT,runmean(vec,myNmean,2),'r','LineWidth',2); axis([min(TT) max(TT) 0 50]); |
284 |
|
|
grid on; if myNmean>0; legend('monthly','annual mean'); end; title('Northern Hemisphere ice volume (in 10^12m^3)'); |
285 |
|
|
if doAnomalies; aa(3:4)=scaleAnom*[-1 1]*2; axis(aa); end; |
286 |
|
|
subplot(2,1,2); vec=alldiag.IceVolSouth/1e12; |
287 |
|
|
plot(TT,vec,'LineWidth',2); hold on; plot(TT,runmean(vec,myNmean,2),'r','LineWidth',2); axis([min(TT) max(TT) 0 15]); |
288 |
|
|
grid on; if myNmean>0; legend('monthly','annual mean'); end; title('Southern Hemisphere ice volume (in 10^12m^3)'); |
289 |
|
|
if doAnomalies; aa(3:4)=scaleAnom*[-1 1]*2; axis(aa); end; |
290 |
|
|
myCaption={'sea ice volume (in $10^12m^3$) in northern (top) and southern (bottom) hemisphere'}; |
291 |
|
|
if addToTex; write2tex(fileTex,2,myCaption,gcf); end; |
292 |
|
|
|
293 |
|
|
%snow volume |
294 |
|
|
figureL; |
295 |
|
|
subplot(2,1,1); vec=alldiag.SnowVolNorth/1e12; |
296 |
|
|
plot(TT,vec,'LineWidth',2); hold on; plot(TT,runmean(vec,myNmean,2),'r','LineWidth',2); axis([min(TT) max(TT) 0 5]); |
297 |
|
|
grid on; if myNmean>0; legend('monthly','annual mean'); end; title('Northern Hemisphere snow volume (in 10^12m^3)'); |
298 |
|
|
if doAnomalies; aa(3:4)=scaleAnom*[-1 1]; axis(aa); end; |
299 |
|
|
subplot(2,1,2); vec=alldiag.SnowVolSouth/1e12; |
300 |
|
|
plot(TT,vec,'LineWidth',2); hold on; plot(TT,runmean(vec,myNmean,2),'r','LineWidth',2); axis([min(TT) max(TT) 0 4]); |
301 |
|
|
grid on; if myNmean>0; legend('monthly','annual mean'); end; title('Southern Hemisphere snow volume (in 10^12m^3)'); |
302 |
|
|
if doAnomalies; aa(3:4)=scaleAnom*[-1 1]; axis(aa); end; |
303 |
|
|
myCaption={'snow volume (in $10^12m^3$) in northern (top) and southern (bottom) hemisphere'}; |
304 |
|
|
if addToTex; write2tex(fileTex,2,myCaption,gcf); end; |
305 |
|
|
|
306 |
|
|
if ~doAnomalies; %does not work for anomalies -> need to compute ratio in basic_diags_ecco |
307 |
|
|
%sea ice thickness |
308 |
|
|
figureL; |
309 |
|
|
subplot(2,1,1); vec=alldiag.IceVolNorth./alldiag.IceAreaNorth; |
310 |
|
|
plot(TT,vec,'LineWidth',2); hold on; plot(TT,runmean(vec,myNmean,2),'r','LineWidth',2); axis([min(TT) max(TT) 0 5]); |
311 |
|
|
grid on; if myNmean>0; legend('monthly','annual mean'); end; title('Northern Hemisphere ice thickness (in m)'); |
312 |
|
|
if doAnomalies; aa(3:4)=scaleAnom*[-1 1]; axis(aa); end; |
313 |
|
|
subplot(2,1,2); vec=alldiag.IceVolSouth./alldiag.IceAreaSouth; |
314 |
|
|
plot(TT,vec,'LineWidth',2); hold on; plot(TT,runmean(vec,myNmean,2),'r','LineWidth',2); axis([min(TT) max(TT) 0 2]); |
315 |
|
|
grid on; if myNmean>0; legend('monthly','annual mean'); end; title('Southern Hemisphere ice thickness (in m)'); |
316 |
|
|
if doAnomalies; aa(3:4)=scaleAnom*[-1 1]; axis(aa); end; |
317 |
|
|
myCaption={'sea ice thickness (in m) in northern (top) and southern (bottom) hemisphere'}; |
318 |
|
|
if addToTex; write2tex(fileTex,2,myCaption,gcf); end; |
319 |
|
|
|
320 |
|
|
%sea ice thickness |
321 |
|
|
figureL; |
322 |
|
|
subplot(2,1,1); vec=alldiag.SnowVolNorth./alldiag.IceAreaNorth; |
323 |
|
|
plot(TT,vec,'LineWidth',2); hold on; plot(TT,runmean(vec,myNmean,2),'r','LineWidth',2); axis([min(TT) max(TT) 0 0.4]); |
324 |
|
|
grid on; if myNmean>0; legend('monthly','annual mean'); end; title('Northern Hemisphere snow thickness (in m)'); |
325 |
|
|
if doAnomalies; aa(3:4)=scaleAnom*[-1 1]; axis(aa); end; |
326 |
|
|
subplot(2,1,2); vec=alldiag.SnowVolSouth./alldiag.IceAreaSouth; |
327 |
|
|
plot(TT,vec,'LineWidth',2); hold on; plot(TT,runmean(vec,myNmean,2),'r','LineWidth',2); axis([min(TT) max(TT) 0 0.25]); |
328 |
|
|
grid on; if myNmean>0; legend('monthly','annual mean'); end; title('Southern Hemisphere snow thickness (in m)'); |
329 |
|
|
if doAnomalies; aa(3:4)=scaleAnom*[-1 1]; axis(aa); end; |
330 |
|
|
myCaption={'snow thickness (in m) in northern (top) and southern (bottom) hemisphere'}; |
331 |
|
|
if addToTex; write2tex(fileTex,2,myCaption,gcf); end; |
332 |
|
|
end; |
333 |
|
|
|
334 |
|
|
end; |
335 |
|
|
|
336 |
gforget |
1.1 |
end; |