1 |
|
2 |
choiceStruct=1; |
3 |
|
4 |
%=============== |
5 |
|
6 |
if choiceStruct==1; |
7 |
structIn=[]; |
8 |
% |
9 |
structIn.vars=mygrid; |
10 |
structIn.vars.RF=structIn.vars.RF(1:50); |
11 |
% |
12 |
structIn.descr={'C-grid parameters (see MITgcm documentation for details).'}; |
13 |
% |
14 |
vars=[]; nv=length(vars)+1; |
15 |
vars(nv).fldName='XC'; vars(nv).longName='longitude'; vars(nv).units='degrees_east'; nv=length(vars)+1; |
16 |
vars(nv).fldName='YC'; vars(nv).longName='latitude'; vars(nv).units='degrees_north'; nv=length(vars)+1; |
17 |
vars(nv).fldName='XG'; vars(nv).longName='longitude'; vars(nv).units='degrees_east'; nv=length(vars)+1; |
18 |
vars(nv).fldName='YG'; vars(nv).longName='latitude'; vars(nv).units='degrees_north'; nv=length(vars)+1; |
19 |
vars(nv).fldName='RAC'; vars(nv).longName='grid cell area'; vars(nv).units='m^2'; nv=length(vars)+1; |
20 |
vars(nv).fldName='RAZ'; vars(nv).longName='grid cell area'; vars(nv).units='m^2'; nv=length(vars)+1; |
21 |
vars(nv).fldName='DXC'; vars(nv).longName='grid spacing'; vars(nv).units='m'; nv=length(vars)+1; |
22 |
vars(nv).fldName='DYC'; vars(nv).longName='grid spacing'; vars(nv).units='m'; nv=length(vars)+1; |
23 |
vars(nv).fldName='DXG'; vars(nv).longName='grid spacing'; vars(nv).units='m'; nv=length(vars)+1; |
24 |
vars(nv).fldName='DYG'; vars(nv).longName='grid spacing'; vars(nv).units='m'; nv=length(vars)+1; |
25 |
vars(nv).fldName='hFacC'; vars(nv).longName='fractional thickness'; vars(nv).units='1'; nv=length(vars)+1; |
26 |
vars(nv).fldName='hFacW'; vars(nv).longName='fractional thickness'; vars(nv).units='1'; nv=length(vars)+1; |
27 |
vars(nv).fldName='hFacS'; vars(nv).longName='fractional thickness'; vars(nv).units='1'; nv=length(vars)+1; |
28 |
vars(nv).fldName='Depth'; vars(nv).longName='sea floor depth'; vars(nv).units='m'; nv=length(vars)+1; |
29 |
vars(nv).fldName='AngleCS'; vars(nv).longName='grid orientation (cosine)'; vars(nv).units='m'; nv=length(vars)+1; |
30 |
vars(nv).fldName='AngleSN'; vars(nv).longName='grid orientation (sine)'; vars(nv).units='m'; nv=length(vars)+1; |
31 |
vars(nv).fldName='RC'; vars(nv).longName='vertical coordinate'; vars(nv).units='m'; nv=length(vars)+1; |
32 |
vars(nv).fldName='RF'; vars(nv).longName='vertical coordinate'; vars(nv).units='m'; nv=length(vars)+1; |
33 |
vars(nv).fldName='DRC'; vars(nv).longName='grid spacing'; vars(nv).units='m'; nv=length(vars)+1; |
34 |
vars(nv).fldName='DRF'; vars(nv).longName='grid spacing'; vars(nv).units='m'; nv=length(vars)+1; |
35 |
% |
36 |
structIn.defs=vars; |
37 |
% |
38 |
struct2nctiles('release1/','GRID',structIn,[90 90]); |
39 |
end; |
40 |
|
41 |
%=============== |
42 |
|
43 |
if choiceStruct==2; |
44 |
budgName='budgHo' |
45 |
|
46 |
structIn=[]; |
47 |
% |
48 |
load release1/mat/diags_grid_parms.mat myparms; |
49 |
dirMat=['release1/mat/diags_set_' budgName '/']; |
50 |
fileMat=[budgName '_*.mat']; |
51 |
structIn.vars=diags_read_from_mat(dirMat,fileMat); |
52 |
|
53 |
%need vector of time increment |
54 |
[listTimes]=diags_list_times({'release1/diags/BUDG/'},{'budg2d_hflux_set1'}); |
55 |
structIn.vars.dt=diff(listTimes); |
56 |
structIn.vars.dt=3600*structIn.vars.dt(1:end-1)'; |
57 |
% |
58 |
specs=structIn.vars.specs(1); |
59 |
if strcmp(specs.units,'W'); |
60 |
structIn.descr={'Heat budget in extensive form (in Watt, on C-Grid)'}; |
61 |
elseif strcmp(specs.units,'kg/s'); |
62 |
structIn.descr={'Mass budget in extensive form (in kg/s, on C-Grid)'}; |
63 |
elseif strcmp(specs.units,'g/s'); |
64 |
structIn.descr={'Salt budget in extensive form (in g/s, on C-Grid)'}; |
65 |
else; |
66 |
error('unknown budget'); |
67 |
end; |
68 |
structIn.descr={structIn.descr{:},'between',specs.top,'(top) and',specs.bottom,'(bottom)'}; |
69 |
% |
70 |
vars=[]; nv=length(vars)+1; |
71 |
vars(nv).fldName='tend'; vars(nv).longName='tendency term'; vars(nv).units=specs.units; nv=length(vars)+1; |
72 |
vars(nv).fldName='trU'; vars(nv).longName='horizontal transport'; vars(nv).units=specs.units; nv=length(vars)+1; |
73 |
vars(nv).fldName='trV'; vars(nv).longName='horizontal transport'; vars(nv).units=specs.units; nv=length(vars)+1; |
74 |
vars(nv).fldName='trWtop'; vars(nv).longName='vertical transport'; vars(nv).units=specs.units; nv=length(vars)+1; |
75 |
vars(nv).fldName='trWbot'; vars(nv).longName='vertical transport'; vars(nv).units=specs.units; nv=length(vars)+1; |
76 |
vars(nv).fldName='dt'; vars(nv).longName='time increment'; vars(nv).units='s'; nv=length(vars)+1; |
77 |
% |
78 |
structIn.defs=vars; |
79 |
% |
80 |
struct2nctiles('release1/',budgName,structIn,[90 90]); |
81 |
|
82 |
end; |
83 |
|