/[MITgcm]/MITgcm_contrib/gael/matlab_class/gcmfaces_IO/prep2nctiles.m
ViewVC logotype

Contents of /MITgcm_contrib/gael/matlab_class/gcmfaces_IO/prep2nctiles.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (show annotations) (download)
Tue Feb 3 14:02:01 2015 UTC (10 years, 5 months ago) by gforget
Branch: MAIN
Changes since 1.2: +5 -5 lines
- bug fix

1
2 choiceStruct=3;
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 %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
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

  ViewVC Help
Powered by ViewVC 1.1.22