1 |
|
|
2 |
choiceStruct=1; |
choiceStruct=3; |
3 |
|
|
4 |
%=============== |
%=============== |
5 |
|
|
50 |
fileMat=[budgName '_*.mat']; |
fileMat=[budgName '_*.mat']; |
51 |
structIn.vars=diags_read_from_mat(dirMat,fileMat); |
structIn.vars=diags_read_from_mat(dirMat,fileMat); |
52 |
|
|
53 |
%need vector of time increment |
%vector of time increment |
54 |
[listTimes]=diags_list_times({'release1/diags/BUDG/'},{'budg2d_hflux_set1'}); |
[listTimes]=diags_list_times({'release1/diags/BUDG/'},{'budg2d_hflux_set1'}); |
55 |
structIn.vars.dt=diff(listTimes); |
structIn.vars.dt=diff(listTimes); |
56 |
structIn.vars.dt=3600*structIn.vars.dt(1:end-1)'; |
structIn.vars.dt=3600*structIn.vars.dt(1:end-1)'; |
81 |
|
|
82 |
end; |
end; |
83 |
|
|
84 |
|
%=============== |
85 |
|
|
86 |
|
if choiceStruct==3; |
87 |
|
|
88 |
|
budgName='budgHo'; |
89 |
|
fldName='trU'; |
90 |
|
[budgName ' -- ' fldName] |
91 |
|
|
92 |
|
%directories |
93 |
|
dirIn='r4it11.c65i/'; |
94 |
|
dirMat='mat_budg3d/'; |
95 |
|
dirOut=fullfile(dirIn,'nctiles_budg',filesep); |
96 |
|
if ~isdir(dirOut); mkdir(dirOut); end; |
97 |
|
dirOut=fullfile(dirOut,budgName,filesep); |
98 |
|
if ~isdir(dirOut); mkdir(dirOut); end; |
99 |
|
|
100 |
|
%load variable |
101 |
|
eval(['load ' dirIn dirMat 'diags_grid_parms.mat myparms;']); |
102 |
|
dirMat=[dirIn dirMat 'diags_set_' budgName '/']; |
103 |
|
fileMat=[budgName '_*.mat']; |
104 |
|
tic; structIn.vars=diags_read_from_mat(dirMat,fileMat,fldName); toc; |
105 |
|
|
106 |
|
%time vectors |
107 |
|
[listTimes]=diags_list_times({[dirIn 'diags/BUDG/']},{'budg2d_hflux_set1'}); |
108 |
|
structIn.vars.t0=3600*listTimes(1:end-2); |
109 |
|
structIn.vars.t1=3600*listTimes(2:end-1); |
110 |
|
|
111 |
|
%rename trWtop as trW if adequate |
112 |
|
if strcmp(fldName,'trWtop'); |
113 |
|
structIn.vars=setfield(structIn.vars,'trW',structIn.vars.trWtop); |
114 |
|
structIn.vars=rmfield(structIn.vars,'trWtop'); |
115 |
|
structIn.vars.listDiags={'trW'}; |
116 |
|
fldName='trW'; |
117 |
|
end; |
118 |
|
|
119 |
|
%general description |
120 |
|
tmp1=diags_read_from_mat(dirMat,fileMat,'specs',1); |
121 |
|
specs=tmp1.specs; |
122 |
|
if strcmp(specs.units,'W'); |
123 |
|
structIn.descr={'Heat budget in extensive form (in Watt, on C-Grid)'}; |
124 |
|
elseif strcmp(specs.units,'kg/s'); |
125 |
|
structIn.descr={'Mass budget in extensive form (in kg/s, on C-Grid)'}; |
126 |
|
elseif strcmp(specs.units,'g/s'); |
127 |
|
structIn.descr={'Salt budget in extensive form (in g/s, on C-Grid)'}; |
128 |
|
else; |
129 |
|
error('unknown budget'); |
130 |
|
end; |
131 |
|
|
132 |
|
%variables description |
133 |
|
vars=[]; nv=length(vars)+1; |
134 |
|
vars(nv).fldName=fldName; vars(nv).units=specs.units; |
135 |
|
switch fldName; |
136 |
|
case 'tend'; vars(nv).longName='tendency term'; |
137 |
|
case 'trU'; vars(nv).longName='horizontal transport (U)'; |
138 |
|
case 'trV'; vars(nv).longName='horizontal transport (V)'; |
139 |
|
case 'trW'; vars(nv).longName='vertical transport (W)'; |
140 |
|
end; |
141 |
|
nv=length(vars)+1; |
142 |
|
vars(nv).fldName='t0'; vars(nv).longName='initial time'; vars(nv).units='s'; nv=length(vars)+1; |
143 |
|
vars(nv).fldName='t1'; vars(nv).longName='final time'; vars(nv).units='s'; nv=length(vars)+1; |
144 |
|
% |
145 |
|
structIn.defs=vars; |
146 |
|
|
147 |
|
%create file |
148 |
|
tic; struct2nctiles(dirIn,fldName,structIn,[90 90]); toc; |
149 |
|
eval(['!mv ' pwd filesep dirIn filesep 'tmp_nctiles' filesep fldName ' ' pwd filesep dirOut]); |
150 |
|
|
151 |
|
end; |
152 |
|
|