1 |
gforget |
1.1 |
|
2 |
|
|
if userStep==1;%diags to be computed |
3 |
|
|
listDiags='fldTzonmean fldSzonmean fldETANzonmean fldETANLEADSzonmean fldSIzonmean fldMLDzonmean'; |
4 |
|
|
listDiags=[listDiags ' IceAreaNorth IceAreaSouth IceVolNorth IceVolSouth SnowVolNorth SnowVolSouth']; |
5 |
|
|
listDiags=[listDiags ' Ueq Teq Tglo Sglo TgloProf SgloProf']; |
6 |
|
|
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 |
|
|
fldETANLEADS=(ETAN+sIceLoad/myparms.rhoconst).*mygrid.mskC(:,:,1); |
16 |
|
|
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 |
|
|
[fldETANLEADSzonmean]=calc_zonmean_T(fldETANLEADS); |
26 |
|
|
[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 |
|
|
msk=mygrid.mskC.*mygrid.hFacC; |
43 |
|
|
msk=msk.*mk3D(mygrid.RAC,msk).*mk3D(mygrid.DRF,msk); |
44 |
|
|
Tglo=nansum(fldT.*msk)./nansum(msk); |
45 |
|
|
Sglo=nansum(fldS.*msk)./nansum(msk); |
46 |
|
|
nr=length(mygrid.RC); |
47 |
|
|
TgloProf=zeros(nr,1); SgloProf=zeros(nr,1); |
48 |
|
|
for kk=1:nr; |
49 |
|
|
rac=mygrid.RAC.*mygrid.mskC(:,:,kk); |
50 |
|
|
TgloProf(kk)=nansum(rac.*fldT(:,:,kk))/nansum(rac); |
51 |
|
|
SgloProf(kk)=nansum(rac.*fldS(:,:,kk))/nansum(rac); |
52 |
|
|
end; |
53 |
|
|
end; |