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

Annotation 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 - (hide 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 heimbach 1.14 C $Header: /u/gcmpack/MITgcm/pkg/autodiff/autodiff_ini_model_io.F,v 1.13 2007/02/07 00:00:32 heimbach Exp $
2 heimbach 1.1 C $Name: $
3    
4     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
5    
6 jmc 1.6 #include "AUTODIFF_OPTIONS.h"
7 heimbach 1.14 #ifdef ALLOW_EXF
8     # include "EXF_OPTIONS.h"
9     #endif
10     #ifdef ALLOW_SEAICE
11     # include "SEAICE_OPTIONS.h"
12     #endif
13 heimbach 1.1
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 heimbach 1.4 & 'adjoint zonal velocity', myThid)
50 heimbach 1.1 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 heimbach 1.4 & 'adjoint merid. velocity', myThid)
57 heimbach 1.1 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 heimbach 1.4 & 'adjoint potential_temperature', myThid)
64 heimbach 1.1 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 heimbach 1.4 & 'adjoint salinity', myThid)
71 heimbach 1.1 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 heimbach 1.4 & 'adjoint free-surface_r-anomaly', myThid)
78 heimbach 1.1 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 heimbach 1.4 & 'adjoint vertical velocity', myThid)
85 heimbach 1.1 CALL MNC_CW_ADD_VATTR_TEXT('adW',
86     & 'coordinates','XC YC RC iter', myThid)
87    
88 heimbach 1.4 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 heimbach 1.3 CALL MNC_CW_ADD_VATTR_TEXT('adSST',
123     & 'units','[cost]/[degC]', myThid)
124     CALL MNC_CW_ADD_VATTR_TEXT('adSST','long_name',
125 heimbach 1.4 & 'adjoint sea_surface_temperature', myThid)
126 heimbach 1.3 CALL MNC_CW_ADD_VATTR_TEXT('adSST',
127     & 'coordinates','XC YC RC iter', myThid)
128 heimbach 1.4 #endif
129 heimbach 1.3
130 heimbach 1.4 #ifdef ALLOW_SSS0_CONTROL
131     CALL MNC_CW_ADD_VNAME( 'adSSS', 'Cen_xy_Hn__-__t', 3,4, myThid)
132 heimbach 1.3 CALL MNC_CW_ADD_VATTR_TEXT('adSSS',
133 heimbach 1.4 & 'units','[cost]/[psu]', myThid)
134 heimbach 1.3 CALL MNC_CW_ADD_VATTR_TEXT('adSSS','long_name',
135 heimbach 1.4 & 'adjoint sea_surface_salinity', myThid)
136 heimbach 1.3 CALL MNC_CW_ADD_VATTR_TEXT('adSSS',
137     & 'coordinates','XC YC RC iter', myThid)
138 heimbach 1.4 #endif
139 heimbach 1.1
140 heimbach 1.11 #ifdef ALLOW_DIFFKR_CONTROL
141 heimbach 1.12 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 heimbach 1.11 & 'coordinates','XC YC RC iter', myThid)
148     #endif
149    
150 heimbach 1.13 #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 heimbach 1.7 #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 heimbach 1.10 # 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 heimbach 1.7 c
265     #endif
266    
267 heimbach 1.8 #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 heimbach 1.14 # ifdef SEAICE_ALLOW_DYNAMICS
294 heimbach 1.8 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 heimbach 1.7
313 heimbach 1.1 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 heimbach 1.9 #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 heimbach 1.1 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