/[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.11 - (show annotations) (download)
Fri Apr 7 10:10:25 2006 UTC (18 years, 1 month ago) by heimbach
Branch: MAIN
Changes since 1.10: +10 -1 lines
Adding adjoint mnc output.

1 C $Header: /u/gcmpack/MITgcm/pkg/autodiff/autodiff_ini_model_io.F,v 1.10 2005/09/02 23:21:22 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','units','[cost]/[m^2/s]', myThid)
137 CALL MNC_CW_ADD_VATTR_TEXT('adDIFFKR','long_name',
138 & 'adjoint vertical diffusion', myThid)
139 CALL MNC_CW_ADD_VATTR_TEXT('adDIFFKR',
140 & 'coordinates','XC YC RC iter', myThid)
141 #endif
142
143 #ifdef ALLOW_EXF
144 c
145 CALL MNC_CW_ADD_VNAME('adustress', 'Cen_xy_Hn__-__t', 3,4, myThid)
146 CALL MNC_CW_ADD_VATTR_TEXT('adustress',
147 & 'units','[cost]/[N/m^2]', myThid)
148 CALL MNC_CW_ADD_VATTR_TEXT('adustress','long_name',
149 & 'adjoint zonal wind stress', myThid)
150 CALL MNC_CW_ADD_VATTR_TEXT('adustress',
151 & 'coordinates','XC YC RC iter', myThid)
152 c
153 CALL MNC_CW_ADD_VNAME('advstress', 'Cen_xy_Hn__-__t', 3,4, myThid)
154 CALL MNC_CW_ADD_VATTR_TEXT('advstress',
155 & 'units','[cost]/[N/m^2]', myThid)
156 CALL MNC_CW_ADD_VATTR_TEXT('advstress','long_name',
157 & 'adjoint meridional wind stress', myThid)
158 CALL MNC_CW_ADD_VATTR_TEXT('advstress',
159 & 'coordinates','XC YC RC iter', myThid)
160 c
161 CALL MNC_CW_ADD_VNAME('adhflux', 'Cen_xy_Hn__-__t', 3,4, myThid)
162 CALL MNC_CW_ADD_VATTR_TEXT('adhflux',
163 & 'units','[cost]/[W/m^2]', myThid)
164 CALL MNC_CW_ADD_VATTR_TEXT('adhflux','long_name',
165 & 'adjoint net upward heat flux', myThid)
166 CALL MNC_CW_ADD_VATTR_TEXT('adhflux',
167 & 'coordinates','XC YC RC iter', myThid)
168 c
169 CALL MNC_CW_ADD_VNAME('adsflux', 'Cen_xy_Hn__-__t', 3,4, myThid)
170 CALL MNC_CW_ADD_VATTR_TEXT('adsflux',
171 & 'units','[cost]/[m/s]', myThid)
172 CALL MNC_CW_ADD_VATTR_TEXT('adsflux','long_name',
173 & 'adjoint net upward freshwater flux', myThid)
174 CALL MNC_CW_ADD_VATTR_TEXT('adsflux',
175 & 'coordinates','XC YC RC iter', myThid)
176 c
177 # ifdef ALLOW_ATM_TEMP
178 CALL MNC_CW_ADD_VNAME('adatemp', 'Cen_xy_Hn__-__t', 3,4, myThid)
179 CALL MNC_CW_ADD_VATTR_TEXT('adatemp',
180 & 'units','[cost]/[degK]', myThid)
181 CALL MNC_CW_ADD_VATTR_TEXT('adatemp','long_name',
182 & 'adjoint surface air temperature', myThid)
183 CALL MNC_CW_ADD_VATTR_TEXT('adatemp',
184 & 'coordinates','XC YC RC iter', myThid)
185 c
186 CALL MNC_CW_ADD_VNAME('adaqh', 'Cen_xy_Hn__-__t', 3,4, myThid)
187 CALL MNC_CW_ADD_VATTR_TEXT('adaqh',
188 & 'units','[cost]/[kg/kg]', myThid)
189 CALL MNC_CW_ADD_VATTR_TEXT('adaqh','long_name',
190 & 'adjoint specific humidity', myThid)
191 CALL MNC_CW_ADD_VATTR_TEXT('adaqh',
192 & 'coordinates','XC YC RC iter', myThid)
193 c
194 CALL MNC_CW_ADD_VNAME('adprecip', 'Cen_xy_Hn__-__t', 3,4, myThid)
195 CALL MNC_CW_ADD_VATTR_TEXT('adprecip',
196 & 'units','[cost]/[m/s]', myThid)
197 CALL MNC_CW_ADD_VATTR_TEXT('adprecip','long_name',
198 & 'adjoint precipitation', myThid)
199 CALL MNC_CW_ADD_VATTR_TEXT('adprecip',
200 & 'coordinates','XC YC RC iter', myThid)
201 # endif
202
203 # ifdef ALLOW_ATM_WIND
204 CALL MNC_CW_ADD_VNAME('aduwind', 'Cen_xy_Hn__-__t', 3,4, myThid)
205 CALL MNC_CW_ADD_VATTR_TEXT('aduwind',
206 & 'units','[cost]/[m/s]', myThid)
207 CALL MNC_CW_ADD_VATTR_TEXT('aduwind','long_name',
208 & 'adjoint zonal wind speed', myThid)
209 CALL MNC_CW_ADD_VATTR_TEXT('aduwind',
210 & 'coordinates','XC YC RC iter', myThid)
211 c
212 CALL MNC_CW_ADD_VNAME('advwind', 'Cen_xy_Hn__-__t', 3,4, myThid)
213 CALL MNC_CW_ADD_VATTR_TEXT('advwind',
214 & 'units','[cost]/[m/s]', myThid)
215 CALL MNC_CW_ADD_VATTR_TEXT('advwind','long_name',
216 & 'adjoint meridional wind speed', myThid)
217 CALL MNC_CW_ADD_VATTR_TEXT('advwind',
218 & 'coordinates','XC YC RC iter', myThid)
219 # endif
220 # ifdef ALLOW_DOWNWARD_RADIATION
221 CALL MNC_CW_ADD_VNAME('adswdown', 'Cen_xy_Hn__-__t', 3,4, myThid)
222 CALL MNC_CW_ADD_VATTR_TEXT('adswdown',
223 & 'units','[cost]/[W/m^2]', myThid)
224 CALL MNC_CW_ADD_VATTR_TEXT('adswdown','long_name',
225 & 'adjoint downward shortwave radiation', myThid)
226 CALL MNC_CW_ADD_VATTR_TEXT('adswdown',
227 & 'coordinates','XC YC RC iter', myThid)
228 # endif
229 # ifdef ALLOW_CLIMSST_RELAXATION
230 CALL MNC_CW_ADD_VNAME('adclimsst', 'Cen_xy_Hn__-__t', 3,4, myThid)
231 CALL MNC_CW_ADD_VATTR_TEXT('adclimsst',
232 & 'units','[cost]/[degC]', myThid)
233 CALL MNC_CW_ADD_VATTR_TEXT('adclimsst','long_name',
234 & 'adjoint sea surface temperature', myThid)
235 CALL MNC_CW_ADD_VATTR_TEXT('adclimsst',
236 & 'coordinates','XC YC RC iter', myThid)
237 # endif
238 # ifdef ALLOW_CLIMSSS_RELAXATION
239 CALL MNC_CW_ADD_VNAME('adclimsss', 'Cen_xy_Hn__-__t', 3,4, myThid)
240 CALL MNC_CW_ADD_VATTR_TEXT('adclimsss',
241 & 'units','[cost]/[ppt]', myThid)
242 CALL MNC_CW_ADD_VATTR_TEXT('adclimsss','long_name',
243 & 'adjoint sea surface salinity', myThid)
244 CALL MNC_CW_ADD_VATTR_TEXT('adclimsss',
245 & 'coordinates','XC YC RC iter', myThid)
246 # endif
247 c
248 #endif
249
250 #ifdef ALLOW_SEAICE
251 c
252 CALL MNC_CW_ADD_VNAME('adarea', 'Cen_xy_Hn__-__t', 3,4, myThid)
253 CALL MNC_CW_ADD_VATTR_TEXT('adarea',
254 & 'units','[cost]/[m^2/m^2]', myThid)
255 CALL MNC_CW_ADD_VATTR_TEXT('adarea','long_name',
256 & 'adjoint fractional ice-covered area', myThid)
257 CALL MNC_CW_ADD_VATTR_TEXT('adarea',
258 & 'coordinates','XC YC RC iter', myThid)
259 c
260 CALL MNC_CW_ADD_VNAME('adheff', 'Cen_xy_Hn__-__t', 3,4, myThid)
261 CALL MNC_CW_ADD_VATTR_TEXT('adheff',
262 & 'units','[cost]/[m]', myThid)
263 CALL MNC_CW_ADD_VATTR_TEXT('adheff','long_name',
264 & 'adjoint effective ice thickness', myThid)
265 CALL MNC_CW_ADD_VATTR_TEXT('adheff',
266 & 'coordinates','XC YC RC iter', myThid)
267 c
268 CALL MNC_CW_ADD_VNAME('adhsnow', 'Cen_xy_Hn__-__t', 3,4, myThid)
269 CALL MNC_CW_ADD_VATTR_TEXT('adhsnow',
270 & 'units','[cost]/[m]', myThid)
271 CALL MNC_CW_ADD_VATTR_TEXT('adhsnow','long_name',
272 & 'adjoint snow thickness', myThid)
273 CALL MNC_CW_ADD_VATTR_TEXT('adhsnow',
274 & 'coordinates','XC YC RC iter', myThid)
275 c
276 # ifdef ALLOW_DYNAMICS
277 CALL MNC_CW_ADD_VNAME('aduice', 'U_xy_Hn__-__t', 3,4, myThid)
278 CALL MNC_CW_ADD_VATTR_TEXT('aduice',
279 & 'units','[cost]/[m/s]', myThid)
280 CALL MNC_CW_ADD_VATTR_TEXT('aduice','long_name',
281 & 'adjoint zonal ice velocity', myThid)
282 CALL MNC_CW_ADD_VATTR_TEXT('aduice',
283 & 'coordinates','XG YG RC iter', myThid)
284 c
285 CALL MNC_CW_ADD_VNAME('advice', 'V_xy_Hn__-__t', 3,4, myThid)
286 CALL MNC_CW_ADD_VATTR_TEXT('advice',
287 & 'units','[cost]/[m/s]', myThid)
288 CALL MNC_CW_ADD_VATTR_TEXT('advice','long_name',
289 & 'adjoint meridional ice velocity', myThid)
290 CALL MNC_CW_ADD_VATTR_TEXT('advice',
291 & 'coordinates','XG YG RC iter', myThid)
292 # endif
293 c
294 #endif
295
296 C Write coordinates to "adstate" file
297 CALL MNC_CW_SET_UDIM('adstate', 0, myThid)
298 CALL MNC_CW_RS_W('R','adstate',0,0,'XC',xC, myThid)
299 CALL MNC_CW_RS_W('R','adstate',0,0,'YC',yC, myThid)
300 CALL MNC_CW_RS_W('R','adstate',0,0,'XU',xG, myThid)
301 CALL MNC_CW_RS_W('R','adstate',0,0,'YU',yC, myThid)
302 CALL MNC_CW_RS_W('R','adstate',0,0,'XV',xC, myThid)
303 CALL MNC_CW_RS_W('R','adstate',0,0,'YV',yG, myThid)
304 CALL MNC_CW_RS_W('R','adstate',0,0,'XG',xG, myThid)
305 CALL MNC_CW_RS_W('R','adstate',0,0,'YG',yG, myThid)
306 CALL MNC_CW_RS_W('R','adstate',0,0,'RC',rC, myThid)
307 CALL MNC_CW_RS_W('R','adstate',0,0,'RF',rF, myThid)
308
309 #ifdef ALLOW_EXF
310 CALL MNC_CW_SET_UDIM('adexf', 0, myThid)
311 CALL MNC_CW_RS_W('R','adexf',0,0,'XC',xC, myThid)
312 CALL MNC_CW_RS_W('R','adexf',0,0,'YC',yC, myThid)
313 CALL MNC_CW_RS_W('R','adexf',0,0,'XU',xG, myThid)
314 CALL MNC_CW_RS_W('R','adexf',0,0,'YU',yC, myThid)
315 CALL MNC_CW_RS_W('R','adexf',0,0,'XV',xC, myThid)
316 CALL MNC_CW_RS_W('R','adexf',0,0,'YV',yG, myThid)
317 CALL MNC_CW_RS_W('R','adexf',0,0,'XG',xG, myThid)
318 CALL MNC_CW_RS_W('R','adexf',0,0,'YG',yG, myThid)
319 CALL MNC_CW_RS_W('R','adexf',0,0,'RC',rC, myThid)
320 CALL MNC_CW_RS_W('R','adexf',0,0,'RF',rF, myThid)
321 #endif
322
323 #ifdef ALLOW_SEAICE
324 CALL MNC_CW_SET_UDIM('adseaice', 0, myThid)
325 CALL MNC_CW_RS_W('R','adseaice',0,0,'XC',xC, myThid)
326 CALL MNC_CW_RS_W('R','adseaice',0,0,'YC',yC, myThid)
327 CALL MNC_CW_RS_W('R','adseaice',0,0,'XU',xG, myThid)
328 CALL MNC_CW_RS_W('R','adseaice',0,0,'YU',yC, myThid)
329 CALL MNC_CW_RS_W('R','adseaice',0,0,'XV',xC, myThid)
330 CALL MNC_CW_RS_W('R','adseaice',0,0,'YV',yG, myThid)
331 CALL MNC_CW_RS_W('R','adseaice',0,0,'XG',xG, myThid)
332 CALL MNC_CW_RS_W('R','adseaice',0,0,'YG',yG, myThid)
333 CALL MNC_CW_RS_W('R','adseaice',0,0,'RC',rC, myThid)
334 CALL MNC_CW_RS_W('R','adseaice',0,0,'RF',rF, myThid)
335 #endif
336
337 ENDIF
338 #endif
339
340 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
341
342 RETURN
343 END

  ViewVC Help
Powered by ViewVC 1.1.22