1 |
gforget |
1.1 |
function []=process2UEVN(ff); |
2 |
|
|
% PROCESS2UEVN(ff) computes eastward/northward vector components |
3 |
|
|
% and output result to 'diags_post_tmp/' |
4 |
|
|
|
5 |
|
|
gcmfaces_global; |
6 |
|
|
|
7 |
|
|
%ff=1; |
8 |
|
|
dir0=[pwd filesep]; |
9 |
|
|
dirIn=[dir0 'diags/']; |
10 |
|
|
dirOut=[dir0 'diags_post_tmp/']; |
11 |
|
|
if ~isdir(dirOut); mkdir(dirOut); end; |
12 |
|
|
|
13 |
|
|
if ff==1; |
14 |
|
|
dirIn = [dirIn 'TRSP/']; |
15 |
|
|
dirOut = [dirOut 'TRSP/']; |
16 |
|
|
fil = 'trsp_3d_set1'; |
17 |
|
|
pairsIn={{'UVELMASS','VVELMASS'}}; |
18 |
|
|
pairsOut={{'EVELMASS','NVELMASS'}}; |
19 |
|
|
elseif ff==2; |
20 |
|
|
dirIn = [dirIn 'TRSP/']; |
21 |
|
|
dirOut = [dirOut 'TRSP/']; |
22 |
|
|
fil = 'trsp_3d_set2'; |
23 |
|
|
pairsIn={{'DFxE_TH ','DFyE_TH '},{'DFxE_SLT','DFyE_SLT'}}; |
24 |
|
|
pairsOut={{'DFeE_TH ','DFnE_TH '},{'DFeE_SLT','DFnE_SLT'}}; |
25 |
|
|
pairsIn={pairsIn{:},{'ADVx_TH ','ADVy_TH '},{'ADVx_SLT','ADVy_SLT'}}; |
26 |
|
|
pairsOut={pairsOut{:},{'ADVe_TH ','ADVn_TH '},{'ADVe_SLT','ADVn_SLT'}}; |
27 |
|
|
elseif ff==3; |
28 |
|
|
dirIn = [dirIn 'STATE/']; |
29 |
|
|
dirOut = [dirOut 'STATE/']; |
30 |
|
|
fil= 'state_2d_set1'; |
31 |
|
|
pairsIn={{'DFxEHEFF','DFyEHEFF'},{'DFxESNOW','DFyESNOW'}}; |
32 |
|
|
pairsOut={{'DFeEHEFF','DFnEHEFF'},{'DFeESNOW','DFnESNOW'}}; |
33 |
|
|
pairsIn={pairsIn{:},{'ADVxHEFF','ADVyHEFF'},{'ADVxSNOW','ADVySNOW'}}; |
34 |
|
|
pairsOut={pairsOut{:},{'ADVeHEFF','ADVnHEFF'},{'ADVeSNOW','ADVnSNOW'}}; |
35 |
|
|
pairsIn={pairsIn{:},{'oceTAUX ','oceTAUY '},{'SIuice ','SIvice '}}; |
36 |
|
|
pairsOut={pairsOut{:},{'oceTAUE ','oceTAUN '},{'EVELice ','NVELice '}}; |
37 |
|
|
end; |
38 |
|
|
|
39 |
|
|
listIn=dir([dirIn fil '*meta']); |
40 |
|
|
for tt=1:length(listIn); |
41 |
|
|
disp([tt length(listIn)]); |
42 |
|
|
fldsOut=gcmfaces; |
43 |
|
|
listOut={}; |
44 |
|
|
for pp=1:length(pairsIn); |
45 |
|
|
pIn=pairsIn{pp}; pOut=pairsOut{pp}; |
46 |
|
|
filIn=listIn(tt).name(1:end-5); |
47 |
|
|
metaIn=rdmds_meta([dirIn filIn]); |
48 |
|
|
i1=find(strcmp(metaIn.fldList,pIn{1})); |
49 |
|
|
i2=find(strcmp(metaIn.fldList,pIn{2})); |
50 |
|
|
%[i1 i2] |
51 |
|
|
% |
52 |
|
|
UX=rdmds2gcmfaces([dirIn filIn],'rec',i1); |
53 |
|
|
VY=rdmds2gcmfaces([dirIn filIn],'rec',i2); |
54 |
|
|
[UE,VN]=calc_UEVNfromUXVY(UX,VY); |
55 |
|
|
%store binary |
56 |
|
|
fldsOut=cat(3,fldsOut,UE); |
57 |
|
|
fldsOut=cat(3,fldsOut,VN); |
58 |
|
|
listOut={listOut{:},pOut{:}}; |
59 |
|
|
end; |
60 |
|
|
%output binary file |
61 |
|
|
filOut=['post_' filIn]; |
62 |
|
|
tmp1=convert2gcmfaces(fldsOut); |
63 |
|
|
tmp1(isnan(tmp1))=0; |
64 |
|
|
if ~isdir(dirOut); mkdir(dirOut); end; |
65 |
|
|
write2file([dirOut filOut '.data'],tmp1,32); |
66 |
|
|
%create meta file |
67 |
|
|
tmp2=size(tmp1); tmp2(end)=tmp2(end)/length(pairsIn)/2; |
68 |
|
|
if tmp2(end)==1; tmp2=tmp2(1:2); end; |
69 |
|
|
write2meta([dirOut filOut '.data'],tmp2,32,listOut); |
70 |
|
|
end; |
71 |
|
|
|
72 |
|
|
|