/[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.13 - (show annotations) (download)
Wed Feb 7 00:00:32 2007 UTC (17 years, 4 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint58v_post
Changes since 1.12: +11 -1 lines
Updating for case ALLOW_KAPGM_CONTROL

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

  ViewVC Help
Powered by ViewVC 1.1.22