/[MITgcm]/MITgcm/pkg/autodiff/autodiff_ini_model_io.F
ViewVC logotype

Contents of /MITgcm/pkg/autodiff/autodiff_ini_model_io.F

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


Revision 1.14 - (show annotations) (download)
Thu Feb 22 17:17:06 2007 UTC (17 years, 3 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint58w_post, checkpoint58x_post, checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59a, checkpoint59c, checkpoint59b, checkpoint59m, checkpoint59l, checkpoint59i, checkpoint59h, checkpoint59k, checkpoint59j, checkpoint59, checkpoint58y_post
Changes since 1.13: +8 -2 lines
o Correct CPP option
o Add EXF and SEAICE options for adcommon
(spotted by I. Fenty)

1 C $Header: /u/gcmpack/MITgcm/pkg/autodiff/autodiff_ini_model_io.F,v 1.13 2007/02/07 00:00:32 heimbach Exp $
2 C $Name: $
3
4 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
5
6 #include "AUTODIFF_OPTIONS.h"
7 #ifdef ALLOW_EXF
8 # include "EXF_OPTIONS.h"
9 #endif
10 #ifdef ALLOW_SEAICE
11 # include "SEAICE_OPTIONS.h"
12 #endif
13
14 CBOP
15 C !ROUTINE: AUTODIFF_INI_MODEL_IO
16 C !INTERFACE:
17 SUBROUTINE AUTODIFF_INI_MODEL_IO( myThid )
18
19 C !DESCRIPTION: \bv
20 C autodiff_ini_model_io() is where run-time/experiment specific data are
21 C passed to any I/O packages ready that will be used for I/O of model state
22 C variables.
23 C This is specifically for setting up once only information such as
24 C shape/size of variables, units, etc... and is only for state variables.
25 C \ev
26
27 IMPLICIT NONE
28 #include "SIZE.h"
29 #include "GRID.h"
30 #include "EEPARAMS.h"
31 #include "PARAMS.h"
32 #ifdef ALLOW_AUTODIFF_MONITOR
33 #include "adcommon.h"
34 #endif
35
36 C !INPUT/OUTPUT PARAMETERS:
37 C myThid - Number of this instances
38 INTEGER myThid
39 CEOP
40
41
42 #if (defined (ALLOW_MNC) && defined (ALLOW_AUTODIFF_MONITOR))
43
44 IF (useMNC) THEN
45
46 CALL MNC_CW_ADD_VNAME('adU', 'U_xy_Hn__C__t', 4,5, myThid)
47 CALL MNC_CW_ADD_VATTR_TEXT('adU','units','[cost]/[m/s]', myThid)
48 CALL MNC_CW_ADD_VATTR_TEXT('adU','long_name',
49 & 'adjoint zonal velocity', myThid)
50 CALL MNC_CW_ADD_VATTR_TEXT('adU',
51 & 'coordinates','XU YU RC iter', myThid)
52
53 CALL MNC_CW_ADD_VNAME('adV', 'V_xy_Hn__C__t', 4,5, myThid)
54 CALL MNC_CW_ADD_VATTR_TEXT('adV','units','[cost]/[m/s]', myThid)
55 CALL MNC_CW_ADD_VATTR_TEXT('adV','long_name',
56 & 'adjoint merid. velocity', myThid)
57 CALL MNC_CW_ADD_VATTR_TEXT('adV',
58 & 'coordinates','XV YV RC iter', myThid)
59
60 CALL MNC_CW_ADD_VNAME('adT', 'Cen_xy_Hn__C__t', 4,5, myThid)
61 CALL MNC_CW_ADD_VATTR_TEXT('adT','units','[cost]/[degC]', myThid)
62 CALL MNC_CW_ADD_VATTR_TEXT('adT','long_name',
63 & 'adjoint potential_temperature', myThid)
64 CALL MNC_CW_ADD_VATTR_TEXT('adT',
65 & 'coordinates','XC YC RC iter', myThid)
66
67 CALL MNC_CW_ADD_VNAME('adS', 'Cen_xy_Hn__C__t', 4,5, myThid)
68 CALL MNC_CW_ADD_VATTR_TEXT('adS','units','[cost]/[psu]', myThid)
69 CALL MNC_CW_ADD_VATTR_TEXT('adS','long_name',
70 & 'adjoint salinity', myThid)
71 CALL MNC_CW_ADD_VATTR_TEXT('adS',
72 & 'coordinates','XC YC RC iter', myThid)
73
74 CALL MNC_CW_ADD_VNAME('adEta', 'Cen_xy_Hn__-__t', 3,4, myThid)
75 CALL MNC_CW_ADD_VATTR_TEXT('adEta','units','[cost]/[m]', myThid)
76 CALL MNC_CW_ADD_VATTR_TEXT('adEta','long_name',
77 & 'adjoint free-surface_r-anomaly', myThid)
78 CALL MNC_CW_ADD_VATTR_TEXT('adEta',
79 & 'coordinates','XC YC RC iter', myThid)
80
81 CALL MNC_CW_ADD_VNAME('adW', 'Cen_xy_Hn__C__t', 4,5, myThid)
82 CALL MNC_CW_ADD_VATTR_TEXT('adW','units','[cost]/[m/s]', myThid)
83 CALL MNC_CW_ADD_VATTR_TEXT('adW','long_name',
84 & 'adjoint vertical velocity', myThid)
85 CALL MNC_CW_ADD_VATTR_TEXT('adW',
86 & 'coordinates','XC YC RC iter', myThid)
87
88 CALL MNC_CW_ADD_VNAME('adQnet', 'Cen_xy_Hn__-__t', 3,4, myThid)
89 CALL MNC_CW_ADD_VATTR_TEXT('adQnet',
90 & 'units','[cost]/[W/m^2]', myThid)
91 CALL MNC_CW_ADD_VATTR_TEXT('adQnet','long_name',
92 & 'adjoint net upward heat flux', myThid)
93 CALL MNC_CW_ADD_VATTR_TEXT('adQnet',
94 & 'coordinates','XC YC RC iter', myThid)
95
96 CALL MNC_CW_ADD_VNAME('adEmpmr', 'Cen_xy_Hn__-__t', 3,4, myThid)
97 CALL MNC_CW_ADD_VATTR_TEXT('adEmpmr',
98 & 'units','[cost]/[m/s]', myThid)
99 CALL MNC_CW_ADD_VATTR_TEXT('adEmpmr','long_name',
100 & 'adjoint net upward freshwater flux', myThid)
101 CALL MNC_CW_ADD_VATTR_TEXT('adEmpmr',
102 & 'coordinates','XC YC RC iter', myThid)
103
104 CALL MNC_CW_ADD_VNAME( 'adFu', 'Cen_xy_Hn__-__t', 3,4, myThid)
105 CALL MNC_CW_ADD_VATTR_TEXT('adFu',
106 & 'units','[cost]/[N/m^2]', myThid)
107 CALL MNC_CW_ADD_VATTR_TEXT('adFu','long_name',
108 & 'adjoint zonal wind stress', myThid)
109 CALL MNC_CW_ADD_VATTR_TEXT('adFu',
110 & 'coordinates','XC YC RC iter', myThid)
111
112 CALL MNC_CW_ADD_VNAME( 'adFv', 'Cen_xy_Hn__-__t', 3,4, myThid)
113 CALL MNC_CW_ADD_VATTR_TEXT('adFv',
114 & 'units','[cost]/[N/m^2]', myThid)
115 CALL MNC_CW_ADD_VATTR_TEXT('adFv','long_name',
116 & 'adjoint zonal meridional stress', myThid)
117 CALL MNC_CW_ADD_VATTR_TEXT('adFv',
118 & 'coordinates','XC YC RC iter', myThid)
119
120 #ifdef ALLOW_SST0_CONTROL
121 CALL MNC_CW_ADD_VNAME( 'adSST', 'Cen_xy_Hn__-__t', 3,4, myThid)
122 CALL MNC_CW_ADD_VATTR_TEXT('adSST',
123 & 'units','[cost]/[degC]', myThid)
124 CALL MNC_CW_ADD_VATTR_TEXT('adSST','long_name',
125 & 'adjoint sea_surface_temperature', myThid)
126 CALL MNC_CW_ADD_VATTR_TEXT('adSST',
127 & 'coordinates','XC YC RC iter', myThid)
128 #endif
129
130 #ifdef ALLOW_SSS0_CONTROL
131 CALL MNC_CW_ADD_VNAME( 'adSSS', 'Cen_xy_Hn__-__t', 3,4, myThid)
132 CALL MNC_CW_ADD_VATTR_TEXT('adSSS',
133 & 'units','[cost]/[psu]', myThid)
134 CALL MNC_CW_ADD_VATTR_TEXT('adSSS','long_name',
135 & 'adjoint sea_surface_salinity', myThid)
136 CALL MNC_CW_ADD_VATTR_TEXT('adSSS',
137 & 'coordinates','XC YC RC iter', myThid)
138 #endif
139
140 #ifdef ALLOW_DIFFKR_CONTROL
141 CALL MNC_CW_ADD_VNAME('adDiffkr', 'Cen_xy_Hn__C__t', 4,5, myThid)
142 CALL MNC_CW_ADD_VATTR_TEXT('adDiffkr',
143 & 'units','[cost]/[m^2/s]', myThid)
144 CALL MNC_CW_ADD_VATTR_TEXT('adDiffkr',
145 & 'long_name','adjoint vertical diffusion', myThid)
146 CALL MNC_CW_ADD_VATTR_TEXT('adDiffkr',
147 & 'coordinates','XC YC RC iter', myThid)
148 #endif
149
150 #ifdef ALLOW_KAPGM_CONTROL
151 CALL MNC_CW_ADD_VNAME('adkapgm', 'Cen_xy_Hn__C__t', 4,5, myThid)
152 CALL MNC_CW_ADD_VATTR_TEXT('adkapgm',
153 & 'units','[cost]/[m^2/s]', myThid)
154 CALL MNC_CW_ADD_VATTR_TEXT('adkapgm',
155 & 'long_name','adjoint isopycnal diffusion', myThid)
156 CALL MNC_CW_ADD_VATTR_TEXT('adkapgm',
157 & 'coordinates','XC YC RC iter', myThid)
158 #endif
159
160 #ifdef ALLOW_EXF
161 c
162 CALL MNC_CW_ADD_VNAME('adustress', 'Cen_xy_Hn__-__t', 3,4, myThid)
163 CALL MNC_CW_ADD_VATTR_TEXT('adustress',
164 & 'units','[cost]/[N/m^2]', myThid)
165 CALL MNC_CW_ADD_VATTR_TEXT('adustress','long_name',
166 & 'adjoint zonal wind stress', myThid)
167 CALL MNC_CW_ADD_VATTR_TEXT('adustress',
168 & 'coordinates','XC YC RC iter', myThid)
169 c
170 CALL MNC_CW_ADD_VNAME('advstress', 'Cen_xy_Hn__-__t', 3,4, myThid)
171 CALL MNC_CW_ADD_VATTR_TEXT('advstress',
172 & 'units','[cost]/[N/m^2]', myThid)
173 CALL MNC_CW_ADD_VATTR_TEXT('advstress','long_name',
174 & 'adjoint meridional wind stress', myThid)
175 CALL MNC_CW_ADD_VATTR_TEXT('advstress',
176 & 'coordinates','XC YC RC iter', myThid)
177 c
178 CALL MNC_CW_ADD_VNAME('adhflux', 'Cen_xy_Hn__-__t', 3,4, myThid)
179 CALL MNC_CW_ADD_VATTR_TEXT('adhflux',
180 & 'units','[cost]/[W/m^2]', myThid)
181 CALL MNC_CW_ADD_VATTR_TEXT('adhflux','long_name',
182 & 'adjoint net upward heat flux', myThid)
183 CALL MNC_CW_ADD_VATTR_TEXT('adhflux',
184 & 'coordinates','XC YC RC iter', myThid)
185 c
186 CALL MNC_CW_ADD_VNAME('adsflux', 'Cen_xy_Hn__-__t', 3,4, myThid)
187 CALL MNC_CW_ADD_VATTR_TEXT('adsflux',
188 & 'units','[cost]/[m/s]', myThid)
189 CALL MNC_CW_ADD_VATTR_TEXT('adsflux','long_name',
190 & 'adjoint net upward freshwater flux', myThid)
191 CALL MNC_CW_ADD_VATTR_TEXT('adsflux',
192 & 'coordinates','XC YC RC iter', myThid)
193 c
194 # ifdef ALLOW_ATM_TEMP
195 CALL MNC_CW_ADD_VNAME('adatemp', 'Cen_xy_Hn__-__t', 3,4, myThid)
196 CALL MNC_CW_ADD_VATTR_TEXT('adatemp',
197 & 'units','[cost]/[degK]', myThid)
198 CALL MNC_CW_ADD_VATTR_TEXT('adatemp','long_name',
199 & 'adjoint surface air temperature', myThid)
200 CALL MNC_CW_ADD_VATTR_TEXT('adatemp',
201 & 'coordinates','XC YC RC iter', myThid)
202 c
203 CALL MNC_CW_ADD_VNAME('adaqh', 'Cen_xy_Hn__-__t', 3,4, myThid)
204 CALL MNC_CW_ADD_VATTR_TEXT('adaqh',
205 & 'units','[cost]/[kg/kg]', myThid)
206 CALL MNC_CW_ADD_VATTR_TEXT('adaqh','long_name',
207 & 'adjoint specific humidity', myThid)
208 CALL MNC_CW_ADD_VATTR_TEXT('adaqh',
209 & 'coordinates','XC YC RC iter', myThid)
210 c
211 CALL MNC_CW_ADD_VNAME('adprecip', 'Cen_xy_Hn__-__t', 3,4, myThid)
212 CALL MNC_CW_ADD_VATTR_TEXT('adprecip',
213 & 'units','[cost]/[m/s]', myThid)
214 CALL MNC_CW_ADD_VATTR_TEXT('adprecip','long_name',
215 & 'adjoint precipitation', myThid)
216 CALL MNC_CW_ADD_VATTR_TEXT('adprecip',
217 & 'coordinates','XC YC RC iter', myThid)
218 # endif
219
220 # ifdef ALLOW_ATM_WIND
221 CALL MNC_CW_ADD_VNAME('aduwind', 'Cen_xy_Hn__-__t', 3,4, myThid)
222 CALL MNC_CW_ADD_VATTR_TEXT('aduwind',
223 & 'units','[cost]/[m/s]', myThid)
224 CALL MNC_CW_ADD_VATTR_TEXT('aduwind','long_name',
225 & 'adjoint zonal wind speed', myThid)
226 CALL MNC_CW_ADD_VATTR_TEXT('aduwind',
227 & 'coordinates','XC YC RC iter', myThid)
228 c
229 CALL MNC_CW_ADD_VNAME('advwind', 'Cen_xy_Hn__-__t', 3,4, myThid)
230 CALL MNC_CW_ADD_VATTR_TEXT('advwind',
231 & 'units','[cost]/[m/s]', myThid)
232 CALL MNC_CW_ADD_VATTR_TEXT('advwind','long_name',
233 & 'adjoint meridional wind speed', myThid)
234 CALL MNC_CW_ADD_VATTR_TEXT('advwind',
235 & 'coordinates','XC YC RC iter', myThid)
236 # endif
237 # ifdef ALLOW_DOWNWARD_RADIATION
238 CALL MNC_CW_ADD_VNAME('adswdown', 'Cen_xy_Hn__-__t', 3,4, myThid)
239 CALL MNC_CW_ADD_VATTR_TEXT('adswdown',
240 & 'units','[cost]/[W/m^2]', myThid)
241 CALL MNC_CW_ADD_VATTR_TEXT('adswdown','long_name',
242 & 'adjoint downward shortwave radiation', myThid)
243 CALL MNC_CW_ADD_VATTR_TEXT('adswdown',
244 & 'coordinates','XC YC RC iter', myThid)
245 # endif
246 # ifdef ALLOW_CLIMSST_RELAXATION
247 CALL MNC_CW_ADD_VNAME('adclimsst', 'Cen_xy_Hn__-__t', 3,4, myThid)
248 CALL MNC_CW_ADD_VATTR_TEXT('adclimsst',
249 & 'units','[cost]/[degC]', myThid)
250 CALL MNC_CW_ADD_VATTR_TEXT('adclimsst','long_name',
251 & 'adjoint sea surface temperature', myThid)
252 CALL MNC_CW_ADD_VATTR_TEXT('adclimsst',
253 & 'coordinates','XC YC RC iter', myThid)
254 # endif
255 # ifdef ALLOW_CLIMSSS_RELAXATION
256 CALL MNC_CW_ADD_VNAME('adclimsss', 'Cen_xy_Hn__-__t', 3,4, myThid)
257 CALL MNC_CW_ADD_VATTR_TEXT('adclimsss',
258 & 'units','[cost]/[ppt]', myThid)
259 CALL MNC_CW_ADD_VATTR_TEXT('adclimsss','long_name',
260 & 'adjoint sea surface salinity', myThid)
261 CALL MNC_CW_ADD_VATTR_TEXT('adclimsss',
262 & 'coordinates','XC YC RC iter', myThid)
263 # endif
264 c
265 #endif
266
267 #ifdef ALLOW_SEAICE
268 c
269 CALL MNC_CW_ADD_VNAME('adarea', 'Cen_xy_Hn__-__t', 3,4, myThid)
270 CALL MNC_CW_ADD_VATTR_TEXT('adarea',
271 & 'units','[cost]/[m^2/m^2]', myThid)
272 CALL MNC_CW_ADD_VATTR_TEXT('adarea','long_name',
273 & 'adjoint fractional ice-covered area', myThid)
274 CALL MNC_CW_ADD_VATTR_TEXT('adarea',
275 & 'coordinates','XC YC RC iter', myThid)
276 c
277 CALL MNC_CW_ADD_VNAME('adheff', 'Cen_xy_Hn__-__t', 3,4, myThid)
278 CALL MNC_CW_ADD_VATTR_TEXT('adheff',
279 & 'units','[cost]/[m]', myThid)
280 CALL MNC_CW_ADD_VATTR_TEXT('adheff','long_name',
281 & 'adjoint effective ice thickness', myThid)
282 CALL MNC_CW_ADD_VATTR_TEXT('adheff',
283 & 'coordinates','XC YC RC iter', myThid)
284 c
285 CALL MNC_CW_ADD_VNAME('adhsnow', 'Cen_xy_Hn__-__t', 3,4, myThid)
286 CALL MNC_CW_ADD_VATTR_TEXT('adhsnow',
287 & 'units','[cost]/[m]', myThid)
288 CALL MNC_CW_ADD_VATTR_TEXT('adhsnow','long_name',
289 & 'adjoint snow thickness', myThid)
290 CALL MNC_CW_ADD_VATTR_TEXT('adhsnow',
291 & 'coordinates','XC YC RC iter', myThid)
292 c
293 # ifdef SEAICE_ALLOW_DYNAMICS
294 CALL MNC_CW_ADD_VNAME('aduice', 'U_xy_Hn__-__t', 3,4, myThid)
295 CALL MNC_CW_ADD_VATTR_TEXT('aduice',
296 & 'units','[cost]/[m/s]', myThid)
297 CALL MNC_CW_ADD_VATTR_TEXT('aduice','long_name',
298 & 'adjoint zonal ice velocity', myThid)
299 CALL MNC_CW_ADD_VATTR_TEXT('aduice',
300 & 'coordinates','XG YG RC iter', myThid)
301 c
302 CALL MNC_CW_ADD_VNAME('advice', 'V_xy_Hn__-__t', 3,4, myThid)
303 CALL MNC_CW_ADD_VATTR_TEXT('advice',
304 & 'units','[cost]/[m/s]', myThid)
305 CALL MNC_CW_ADD_VATTR_TEXT('advice','long_name',
306 & 'adjoint meridional ice velocity', myThid)
307 CALL MNC_CW_ADD_VATTR_TEXT('advice',
308 & 'coordinates','XG YG RC iter', myThid)
309 # endif
310 c
311 #endif
312
313 C Write coordinates to "adstate" file
314 CALL MNC_CW_SET_UDIM('adstate', 0, myThid)
315 CALL MNC_CW_RS_W('R','adstate',0,0,'XC',xC, myThid)
316 CALL MNC_CW_RS_W('R','adstate',0,0,'YC',yC, myThid)
317 CALL MNC_CW_RS_W('R','adstate',0,0,'XU',xG, myThid)
318 CALL MNC_CW_RS_W('R','adstate',0,0,'YU',yC, myThid)
319 CALL MNC_CW_RS_W('R','adstate',0,0,'XV',xC, myThid)
320 CALL MNC_CW_RS_W('R','adstate',0,0,'YV',yG, myThid)
321 CALL MNC_CW_RS_W('R','adstate',0,0,'XG',xG, myThid)
322 CALL MNC_CW_RS_W('R','adstate',0,0,'YG',yG, myThid)
323 CALL MNC_CW_RS_W('R','adstate',0,0,'RC',rC, myThid)
324 CALL MNC_CW_RS_W('R','adstate',0,0,'RF',rF, myThid)
325
326 #ifdef ALLOW_EXF
327 CALL MNC_CW_SET_UDIM('adexf', 0, myThid)
328 CALL MNC_CW_RS_W('R','adexf',0,0,'XC',xC, myThid)
329 CALL MNC_CW_RS_W('R','adexf',0,0,'YC',yC, myThid)
330 CALL MNC_CW_RS_W('R','adexf',0,0,'XU',xG, myThid)
331 CALL MNC_CW_RS_W('R','adexf',0,0,'YU',yC, myThid)
332 CALL MNC_CW_RS_W('R','adexf',0,0,'XV',xC, myThid)
333 CALL MNC_CW_RS_W('R','adexf',0,0,'YV',yG, myThid)
334 CALL MNC_CW_RS_W('R','adexf',0,0,'XG',xG, myThid)
335 CALL MNC_CW_RS_W('R','adexf',0,0,'YG',yG, myThid)
336 CALL MNC_CW_RS_W('R','adexf',0,0,'RC',rC, myThid)
337 CALL MNC_CW_RS_W('R','adexf',0,0,'RF',rF, myThid)
338 #endif
339
340 #ifdef ALLOW_SEAICE
341 CALL MNC_CW_SET_UDIM('adseaice', 0, myThid)
342 CALL MNC_CW_RS_W('R','adseaice',0,0,'XC',xC, myThid)
343 CALL MNC_CW_RS_W('R','adseaice',0,0,'YC',yC, myThid)
344 CALL MNC_CW_RS_W('R','adseaice',0,0,'XU',xG, myThid)
345 CALL MNC_CW_RS_W('R','adseaice',0,0,'YU',yC, myThid)
346 CALL MNC_CW_RS_W('R','adseaice',0,0,'XV',xC, myThid)
347 CALL MNC_CW_RS_W('R','adseaice',0,0,'YV',yG, myThid)
348 CALL MNC_CW_RS_W('R','adseaice',0,0,'XG',xG, myThid)
349 CALL MNC_CW_RS_W('R','adseaice',0,0,'YG',yG, myThid)
350 CALL MNC_CW_RS_W('R','adseaice',0,0,'RC',rC, myThid)
351 CALL MNC_CW_RS_W('R','adseaice',0,0,'RF',rF, myThid)
352 #endif
353
354 ENDIF
355 #endif
356
357 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
358
359 RETURN
360 END

  ViewVC Help
Powered by ViewVC 1.1.22