/[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.32 - (hide annotations) (download)
Sat Feb 18 16:12:36 2017 UTC (7 years, 2 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, HEAD
Changes since 1.31: +2 -4 lines
- print 'SYSTEM CALL' message directly to standardMessageUnit (as done with ini_model_io.F)

1 gforget 1.32 C $Header: /u/gcmpack/MITgcm/pkg/autodiff/autodiff_ini_model_io.F,v 1.31 2017/01/11 03:47:24 gforget Exp $
2 heimbach 1.21 C $Name: $
3 heimbach 1.1
4     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
5    
6 jmc 1.6 #include "AUTODIFF_OPTIONS.h"
7 jmc 1.28 #ifdef ALLOW_CTRL
8     # include "CTRL_OPTIONS.h"
9     #endif
10 heimbach 1.14 #ifdef ALLOW_EXF
11     # include "EXF_OPTIONS.h"
12     #endif
13     #ifdef ALLOW_SEAICE
14     # include "SEAICE_OPTIONS.h"
15     #endif
16 gforget 1.18 #include "MDSIO_OPTIONS.h"
17 heimbach 1.1
18     CBOP
19     C !ROUTINE: AUTODIFF_INI_MODEL_IO
20     C !INTERFACE:
21     SUBROUTINE AUTODIFF_INI_MODEL_IO( myThid )
22    
23     C !DESCRIPTION: \bv
24     C autodiff_ini_model_io() is where run-time/experiment specific data are
25     C passed to any I/O packages ready that will be used for I/O of model state
26     C variables.
27     C This is specifically for setting up once only information such as
28     C shape/size of variables, units, etc... and is only for state variables.
29     C \ev
30    
31     IMPLICIT NONE
32     #include "SIZE.h"
33     #include "EEPARAMS.h"
34     #include "PARAMS.h"
35 gforget 1.26 #ifdef ALLOW_EXF
36     # include "EXF_PARAM.h"
37     #endif
38 jmc 1.23 #include "GRID.h"
39 heimbach 1.22 #include "AUTODIFF.h"
40 gforget 1.25 #ifdef ALLOW_WHIO
41     #include "MDSIO_BUFF_WH.h"
42     #endif
43 heimbach 1.1
44     C !INPUT/OUTPUT PARAMETERS:
45 jmc 1.23 C myThid :: my Thread Id number
46 heimbach 1.1 INTEGER myThid
47 gforget 1.19
48     C !FUNCTIONS
49     INTEGER ILNBLNK
50     EXTERNAL ILNBLNK
51    
52     C !LOCAL VARIABLES:
53 gforget 1.30 CHARACTER*(MAX_LEN_MBUF) msgBuf
54 gforget 1.19 CHARACTER*(MAX_LEN_FNAM) namBuf
55     INTEGER iL, pIL, myLev
56 heimbach 1.1 CEOP
57    
58 gforget 1.24 c initialize ad dump record number (used only if dumpAdByRec is true)
59     dumpAdRecMn=0
60     dumpAdRecDy=0
61     dumpAdRecSi=0
62    
63 gforget 1.30 _BEGIN_MASTER( myThid )
64    
65 gforget 1.19 IF ( adTapeDir .NE. ' ' ) THEN
66     iL = ILNBLNK( adTapeDir )
67 gforget 1.30 C append "/", if necessary
68 gforget 1.19 IF ( iL.LT.MAX_LEN_FNAM .AND. adTapeDir(iL:iL).NE.'/' ) THEN
69     namBuf(1:iL) = adTapeDir(1:iL)
70     WRITE(adTapeDir(1:iL+1),'(2A)') namBuf(1:iL),'/'
71     ENDIF
72 gforget 1.31 #ifdef HAVE_SYSTEM
73 gforget 1.19 C create directory
74     iL = ILNBLNK( adTapeDir ) -1
75     WRITE(namBuf,'(2A)') ' mkdir -p ', adTapeDir(1:iL)
76     pIL = 1 + ILNBLNK( namBuf )
77 gforget 1.32 WRITE(standardMessageUnit,'(3A)')
78 jmc 1.28 & '==> SYSTEM CALL (from AUTODIFF_INI_MODEL_IO): >',
79     & namBuf(1:pIL), '<'
80 gforget 1.19 CALL SYSTEM( namBuf(1:pIL) )
81 gforget 1.31 #else
82     WRITE(msgBuf,'(2A)') '** WARNING ** AUTODIFF_INI_MODEL_IO: ',
83     & 'cannot call mkdir -> please create adTapeDir manually'
84     CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
85     & SQUEEZE_RIGHT, myThid )
86     #endif
87 gforget 1.19 ENDIF
88    
89 gforget 1.30 _END_MASTER( myThid )
90    
91 gforget 1.17 #ifdef ALLOW_AUTODIFF_WHTAPEIO
92    
93     tapeFileUnit=0
94     do myLev=1,4
95     tapeFileUnitS(myLev)=0
96     enddo
97    
98     tapeFileCounter=0
99 gforget 1.25 tapeMaxCounter=nWh
100 gforget 1.17
101     tapeConcatIO=.TRUE.
102     tapeSingleCpuIO=useSingleCpuIO
103     tapeBufferIO=.FALSE.
104 gforget 1.18
105     #ifdef EXCLUDE_WHIO_GLOBUFF_2D
106     tapeSingleCpuIO=.FALSE.
107 jmc 1.23 #endif
108 gforget 1.18 #ifdef ALLOW_WHIO_3D
109     #ifndef INCLUDE_WHIO_GLOBUFF_3D
110     tapeSingleCpuIO=.FALSE.
111     #endif
112     #endif
113    
114 gforget 1.17 #endif /* ALLOW_AUTODIFF_WHTAPEIO */
115 heimbach 1.1
116     #if (defined (ALLOW_MNC) && defined (ALLOW_AUTODIFF_MONITOR))
117    
118     IF (useMNC) THEN
119    
120     CALL MNC_CW_ADD_VNAME('adU', 'U_xy_Hn__C__t', 4,5, myThid)
121     CALL MNC_CW_ADD_VATTR_TEXT('adU','units','[cost]/[m/s]', myThid)
122     CALL MNC_CW_ADD_VATTR_TEXT('adU','long_name',
123 heimbach 1.4 & 'adjoint zonal velocity', myThid)
124 heimbach 1.1 CALL MNC_CW_ADD_VATTR_TEXT('adU',
125     & 'coordinates','XU YU RC iter', myThid)
126    
127     CALL MNC_CW_ADD_VNAME('adV', 'V_xy_Hn__C__t', 4,5, myThid)
128     CALL MNC_CW_ADD_VATTR_TEXT('adV','units','[cost]/[m/s]', myThid)
129     CALL MNC_CW_ADD_VATTR_TEXT('adV','long_name',
130 heimbach 1.4 & 'adjoint merid. velocity', myThid)
131 heimbach 1.1 CALL MNC_CW_ADD_VATTR_TEXT('adV',
132     & 'coordinates','XV YV RC iter', myThid)
133    
134     CALL MNC_CW_ADD_VNAME('adT', 'Cen_xy_Hn__C__t', 4,5, myThid)
135     CALL MNC_CW_ADD_VATTR_TEXT('adT','units','[cost]/[degC]', myThid)
136     CALL MNC_CW_ADD_VATTR_TEXT('adT','long_name',
137 heimbach 1.4 & 'adjoint potential_temperature', myThid)
138 heimbach 1.1 CALL MNC_CW_ADD_VATTR_TEXT('adT',
139     & 'coordinates','XC YC RC iter', myThid)
140    
141     CALL MNC_CW_ADD_VNAME('adS', 'Cen_xy_Hn__C__t', 4,5, myThid)
142     CALL MNC_CW_ADD_VATTR_TEXT('adS','units','[cost]/[psu]', myThid)
143     CALL MNC_CW_ADD_VATTR_TEXT('adS','long_name',
144 heimbach 1.4 & 'adjoint salinity', myThid)
145 heimbach 1.1 CALL MNC_CW_ADD_VATTR_TEXT('adS',
146     & 'coordinates','XC YC RC iter', myThid)
147    
148     CALL MNC_CW_ADD_VNAME('adEta', 'Cen_xy_Hn__-__t', 3,4, myThid)
149     CALL MNC_CW_ADD_VATTR_TEXT('adEta','units','[cost]/[m]', myThid)
150     CALL MNC_CW_ADD_VATTR_TEXT('adEta','long_name',
151 heimbach 1.4 & 'adjoint free-surface_r-anomaly', myThid)
152 heimbach 1.1 CALL MNC_CW_ADD_VATTR_TEXT('adEta',
153     & 'coordinates','XC YC RC iter', myThid)
154    
155     CALL MNC_CW_ADD_VNAME('adW', 'Cen_xy_Hn__C__t', 4,5, myThid)
156     CALL MNC_CW_ADD_VATTR_TEXT('adW','units','[cost]/[m/s]', myThid)
157     CALL MNC_CW_ADD_VATTR_TEXT('adW','long_name',
158 heimbach 1.4 & 'adjoint vertical velocity', myThid)
159 heimbach 1.1 CALL MNC_CW_ADD_VATTR_TEXT('adW',
160     & 'coordinates','XC YC RC iter', myThid)
161    
162 heimbach 1.4 CALL MNC_CW_ADD_VNAME('adQnet', 'Cen_xy_Hn__-__t', 3,4, myThid)
163     CALL MNC_CW_ADD_VATTR_TEXT('adQnet',
164     & 'units','[cost]/[W/m^2]', myThid)
165     CALL MNC_CW_ADD_VATTR_TEXT('adQnet','long_name',
166     & 'adjoint net upward heat flux', myThid)
167     CALL MNC_CW_ADD_VATTR_TEXT('adQnet',
168     & 'coordinates','XC YC RC iter', myThid)
169    
170     CALL MNC_CW_ADD_VNAME('adEmpmr', 'Cen_xy_Hn__-__t', 3,4, myThid)
171     CALL MNC_CW_ADD_VATTR_TEXT('adEmpmr',
172     & 'units','[cost]/[m/s]', myThid)
173     CALL MNC_CW_ADD_VATTR_TEXT('adEmpmr','long_name',
174     & 'adjoint net upward freshwater flux', myThid)
175     CALL MNC_CW_ADD_VATTR_TEXT('adEmpmr',
176     & 'coordinates','XC YC RC iter', myThid)
177    
178     CALL MNC_CW_ADD_VNAME( 'adFu', 'Cen_xy_Hn__-__t', 3,4, myThid)
179     CALL MNC_CW_ADD_VATTR_TEXT('adFu',
180     & 'units','[cost]/[N/m^2]', myThid)
181     CALL MNC_CW_ADD_VATTR_TEXT('adFu','long_name',
182     & 'adjoint zonal wind stress', myThid)
183     CALL MNC_CW_ADD_VATTR_TEXT('adFu',
184     & 'coordinates','XC YC RC iter', myThid)
185    
186     CALL MNC_CW_ADD_VNAME( 'adFv', 'Cen_xy_Hn__-__t', 3,4, myThid)
187     CALL MNC_CW_ADD_VATTR_TEXT('adFv',
188     & 'units','[cost]/[N/m^2]', myThid)
189     CALL MNC_CW_ADD_VATTR_TEXT('adFv','long_name',
190     & 'adjoint zonal meridional stress', myThid)
191     CALL MNC_CW_ADD_VATTR_TEXT('adFv',
192     & 'coordinates','XC YC RC iter', myThid)
193    
194     #ifdef ALLOW_SST0_CONTROL
195     CALL MNC_CW_ADD_VNAME( 'adSST', 'Cen_xy_Hn__-__t', 3,4, myThid)
196 heimbach 1.3 CALL MNC_CW_ADD_VATTR_TEXT('adSST',
197     & 'units','[cost]/[degC]', myThid)
198     CALL MNC_CW_ADD_VATTR_TEXT('adSST','long_name',
199 heimbach 1.4 & 'adjoint sea_surface_temperature', myThid)
200 heimbach 1.3 CALL MNC_CW_ADD_VATTR_TEXT('adSST',
201     & 'coordinates','XC YC RC iter', myThid)
202 heimbach 1.4 #endif
203 heimbach 1.3
204 heimbach 1.4 #ifdef ALLOW_SSS0_CONTROL
205     CALL MNC_CW_ADD_VNAME( 'adSSS', 'Cen_xy_Hn__-__t', 3,4, myThid)
206 heimbach 1.3 CALL MNC_CW_ADD_VATTR_TEXT('adSSS',
207 heimbach 1.4 & 'units','[cost]/[psu]', myThid)
208 heimbach 1.3 CALL MNC_CW_ADD_VATTR_TEXT('adSSS','long_name',
209 heimbach 1.4 & 'adjoint sea_surface_salinity', myThid)
210 heimbach 1.3 CALL MNC_CW_ADD_VATTR_TEXT('adSSS',
211     & 'coordinates','XC YC RC iter', myThid)
212 heimbach 1.4 #endif
213 heimbach 1.1
214 mlosch 1.20 #ifdef ALLOW_BOTTOMDRAG_CONTROL
215     CALL MNC_CW_ADD_VNAME('adBottomDrag', 'Cen_xy_Hn__-__t',
216 jmc 1.23 & 3,4, myThid)
217 mlosch 1.20 CALL MNC_CW_ADD_VATTR_TEXT('adBottomDrag',
218     & 'units','[cost]/[N/m^2]', myThid)
219     CALL MNC_CW_ADD_VATTR_TEXT('adBottomDrag','long_name',
220     & 'adjoint bottom drag', myThid)
221     CALL MNC_CW_ADD_VATTR_TEXT('adBottomDrag',
222     & 'coordinates','XC YC RC iter', myThid)
223     #endif
224    
225 heimbach 1.11 #ifdef ALLOW_DIFFKR_CONTROL
226 heimbach 1.12 CALL MNC_CW_ADD_VNAME('adDiffkr', 'Cen_xy_Hn__C__t', 4,5, myThid)
227     CALL MNC_CW_ADD_VATTR_TEXT('adDiffkr',
228     & 'units','[cost]/[m^2/s]', myThid)
229     CALL MNC_CW_ADD_VATTR_TEXT('adDiffkr',
230     & 'long_name','adjoint vertical diffusion', myThid)
231     CALL MNC_CW_ADD_VATTR_TEXT('adDiffkr',
232 heimbach 1.11 & 'coordinates','XC YC RC iter', myThid)
233     #endif
234    
235 heimbach 1.13 #ifdef ALLOW_KAPGM_CONTROL
236     CALL MNC_CW_ADD_VNAME('adkapgm', 'Cen_xy_Hn__C__t', 4,5, myThid)
237     CALL MNC_CW_ADD_VATTR_TEXT('adkapgm',
238     & 'units','[cost]/[m^2/s]', myThid)
239     CALL MNC_CW_ADD_VATTR_TEXT('adkapgm',
240     & 'long_name','adjoint isopycnal diffusion', myThid)
241     CALL MNC_CW_ADD_VATTR_TEXT('adkapgm',
242     & 'coordinates','XC YC RC iter', myThid)
243     #endif
244    
245 gforget 1.15 #ifdef ALLOW_KAPREDI_CONTROL
246     CALL MNC_CW_ADD_VNAME('adkapredi', 'Cen_xy_Hn__C__t', 4,5, myThid)
247     CALL MNC_CW_ADD_VATTR_TEXT('adkapredi',
248     & 'units','[cost]/[m^2/s]', myThid)
249     CALL MNC_CW_ADD_VATTR_TEXT('adkapredi',
250     & 'long_name','adjoint isopycnal diffusion', myThid)
251 jmc 1.23 CALL MNC_CW_ADD_VATTR_TEXT('adkapredi',
252 gforget 1.15 & 'coordinates','XC YC RC iter', myThid)
253     #endif
254    
255 heimbach 1.7 #ifdef ALLOW_EXF
256     c
257     CALL MNC_CW_ADD_VNAME('adustress', 'Cen_xy_Hn__-__t', 3,4, myThid)
258     CALL MNC_CW_ADD_VATTR_TEXT('adustress',
259     & 'units','[cost]/[N/m^2]', myThid)
260     CALL MNC_CW_ADD_VATTR_TEXT('adustress','long_name',
261     & 'adjoint zonal wind stress', myThid)
262     CALL MNC_CW_ADD_VATTR_TEXT('adustress',
263     & 'coordinates','XC YC RC iter', myThid)
264     c
265     CALL MNC_CW_ADD_VNAME('advstress', 'Cen_xy_Hn__-__t', 3,4, myThid)
266     CALL MNC_CW_ADD_VATTR_TEXT('advstress',
267     & 'units','[cost]/[N/m^2]', myThid)
268     CALL MNC_CW_ADD_VATTR_TEXT('advstress','long_name',
269     & 'adjoint meridional wind stress', myThid)
270     CALL MNC_CW_ADD_VATTR_TEXT('advstress',
271     & 'coordinates','XC YC RC iter', myThid)
272     c
273     CALL MNC_CW_ADD_VNAME('adhflux', 'Cen_xy_Hn__-__t', 3,4, myThid)
274     CALL MNC_CW_ADD_VATTR_TEXT('adhflux',
275     & 'units','[cost]/[W/m^2]', myThid)
276     CALL MNC_CW_ADD_VATTR_TEXT('adhflux','long_name',
277     & 'adjoint net upward heat flux', myThid)
278     CALL MNC_CW_ADD_VATTR_TEXT('adhflux',
279     & 'coordinates','XC YC RC iter', myThid)
280     c
281     CALL MNC_CW_ADD_VNAME('adsflux', 'Cen_xy_Hn__-__t', 3,4, myThid)
282     CALL MNC_CW_ADD_VATTR_TEXT('adsflux',
283     & 'units','[cost]/[m/s]', myThid)
284     CALL MNC_CW_ADD_VATTR_TEXT('adsflux','long_name',
285     & 'adjoint net upward freshwater flux', myThid)
286     CALL MNC_CW_ADD_VATTR_TEXT('adsflux',
287     & 'coordinates','XC YC RC iter', myThid)
288     c
289     # ifdef ALLOW_ATM_TEMP
290     CALL MNC_CW_ADD_VNAME('adatemp', 'Cen_xy_Hn__-__t', 3,4, myThid)
291     CALL MNC_CW_ADD_VATTR_TEXT('adatemp',
292     & 'units','[cost]/[degK]', myThid)
293     CALL MNC_CW_ADD_VATTR_TEXT('adatemp','long_name',
294     & 'adjoint surface air temperature', myThid)
295     CALL MNC_CW_ADD_VATTR_TEXT('adatemp',
296     & 'coordinates','XC YC RC iter', myThid)
297     c
298     CALL MNC_CW_ADD_VNAME('adaqh', 'Cen_xy_Hn__-__t', 3,4, myThid)
299     CALL MNC_CW_ADD_VATTR_TEXT('adaqh',
300     & 'units','[cost]/[kg/kg]', myThid)
301     CALL MNC_CW_ADD_VATTR_TEXT('adaqh','long_name',
302     & 'adjoint specific humidity', myThid)
303     CALL MNC_CW_ADD_VATTR_TEXT('adaqh',
304     & 'coordinates','XC YC RC iter', myThid)
305     c
306     CALL MNC_CW_ADD_VNAME('adprecip', 'Cen_xy_Hn__-__t', 3,4, myThid)
307     CALL MNC_CW_ADD_VATTR_TEXT('adprecip',
308     & 'units','[cost]/[m/s]', myThid)
309     CALL MNC_CW_ADD_VATTR_TEXT('adprecip','long_name',
310     & 'adjoint precipitation', myThid)
311     CALL MNC_CW_ADD_VATTR_TEXT('adprecip',
312     & 'coordinates','XC YC RC iter', myThid)
313     # endif
314 atn 1.29 # ifdef ALLOW_RUNOFF
315     CALL MNC_CW_ADD_VNAME('adrunoff', 'Cen_xy_Hn__-__t', 3,4, myThid)
316     CALL MNC_CW_ADD_VATTR_TEXT('adrunoff',
317     & 'units','[cost]/[m/s]', myThid)
318     CALL MNC_CW_ADD_VATTR_TEXT('adrunoff','long_name',
319     & 'adjoint runoff', myThid)
320     CALL MNC_CW_ADD_VATTR_TEXT('adrunoff',
321     & 'coordinates','XC YC RC iter', myThid)
322     # endif
323     # ifdef ALLOW_ATM_WIND
324 gforget 1.26 IF ( useAtmWind ) THEN
325 heimbach 1.7 CALL MNC_CW_ADD_VNAME('aduwind', 'Cen_xy_Hn__-__t', 3,4, myThid)
326     CALL MNC_CW_ADD_VATTR_TEXT('aduwind',
327     & 'units','[cost]/[m/s]', myThid)
328     CALL MNC_CW_ADD_VATTR_TEXT('aduwind','long_name',
329     & 'adjoint zonal wind speed', myThid)
330     CALL MNC_CW_ADD_VATTR_TEXT('aduwind',
331     & 'coordinates','XC YC RC iter', myThid)
332     c
333     CALL MNC_CW_ADD_VNAME('advwind', 'Cen_xy_Hn__-__t', 3,4, myThid)
334     CALL MNC_CW_ADD_VATTR_TEXT('advwind',
335     & 'units','[cost]/[m/s]', myThid)
336     CALL MNC_CW_ADD_VATTR_TEXT('advwind','long_name',
337     & 'adjoint meridional wind speed', myThid)
338     CALL MNC_CW_ADD_VATTR_TEXT('advwind',
339     & 'coordinates','XC YC RC iter', myThid)
340 gforget 1.26 ENDIF
341 atn 1.29 # endif
342 heimbach 1.7 # ifdef ALLOW_DOWNWARD_RADIATION
343     CALL MNC_CW_ADD_VNAME('adswdown', 'Cen_xy_Hn__-__t', 3,4, myThid)
344     CALL MNC_CW_ADD_VATTR_TEXT('adswdown',
345     & 'units','[cost]/[W/m^2]', myThid)
346     CALL MNC_CW_ADD_VATTR_TEXT('adswdown','long_name',
347     & 'adjoint downward shortwave radiation', myThid)
348     CALL MNC_CW_ADD_VATTR_TEXT('adswdown',
349     & 'coordinates','XC YC RC iter', myThid)
350 atn 1.27 CALL MNC_CW_ADD_VNAME('adlwdown', 'Cen_xy_Hn__-__t', 3,4, myThid)
351     CALL MNC_CW_ADD_VATTR_TEXT('adlwdown',
352     & 'units','[cost]/[W/m^2]', myThid)
353     CALL MNC_CW_ADD_VATTR_TEXT('adlwdown','long_name',
354     & 'adjoint downward wave radiation', myThid)
355     CALL MNC_CW_ADD_VATTR_TEXT('adlwdown',
356     & 'coordinates','XC YC RC iter', myThid)
357 heimbach 1.7 # endif
358 heimbach 1.10 # ifdef ALLOW_CLIMSST_RELAXATION
359     CALL MNC_CW_ADD_VNAME('adclimsst', 'Cen_xy_Hn__-__t', 3,4, myThid)
360     CALL MNC_CW_ADD_VATTR_TEXT('adclimsst',
361     & 'units','[cost]/[degC]', myThid)
362     CALL MNC_CW_ADD_VATTR_TEXT('adclimsst','long_name',
363     & 'adjoint sea surface temperature', myThid)
364     CALL MNC_CW_ADD_VATTR_TEXT('adclimsst',
365     & 'coordinates','XC YC RC iter', myThid)
366     # endif
367     # ifdef ALLOW_CLIMSSS_RELAXATION
368     CALL MNC_CW_ADD_VNAME('adclimsss', 'Cen_xy_Hn__-__t', 3,4, myThid)
369     CALL MNC_CW_ADD_VATTR_TEXT('adclimsss',
370     & 'units','[cost]/[ppt]', myThid)
371     CALL MNC_CW_ADD_VATTR_TEXT('adclimsss','long_name',
372     & 'adjoint sea surface salinity', myThid)
373     CALL MNC_CW_ADD_VATTR_TEXT('adclimsss',
374     & 'coordinates','XC YC RC iter', myThid)
375     # endif
376 heimbach 1.7 c
377     #endif
378    
379 heimbach 1.8 #ifdef ALLOW_SEAICE
380     c
381     CALL MNC_CW_ADD_VNAME('adarea', 'Cen_xy_Hn__-__t', 3,4, myThid)
382     CALL MNC_CW_ADD_VATTR_TEXT('adarea',
383     & 'units','[cost]/[m^2/m^2]', myThid)
384     CALL MNC_CW_ADD_VATTR_TEXT('adarea','long_name',
385     & 'adjoint fractional ice-covered area', myThid)
386     CALL MNC_CW_ADD_VATTR_TEXT('adarea',
387     & 'coordinates','XC YC RC iter', myThid)
388     c
389     CALL MNC_CW_ADD_VNAME('adheff', 'Cen_xy_Hn__-__t', 3,4, myThid)
390     CALL MNC_CW_ADD_VATTR_TEXT('adheff',
391     & 'units','[cost]/[m]', myThid)
392     CALL MNC_CW_ADD_VATTR_TEXT('adheff','long_name',
393     & 'adjoint effective ice thickness', myThid)
394     CALL MNC_CW_ADD_VATTR_TEXT('adheff',
395     & 'coordinates','XC YC RC iter', myThid)
396     c
397     CALL MNC_CW_ADD_VNAME('adhsnow', 'Cen_xy_Hn__-__t', 3,4, myThid)
398     CALL MNC_CW_ADD_VATTR_TEXT('adhsnow',
399     & 'units','[cost]/[m]', myThid)
400     CALL MNC_CW_ADD_VATTR_TEXT('adhsnow','long_name',
401     & 'adjoint snow thickness', myThid)
402     CALL MNC_CW_ADD_VATTR_TEXT('adhsnow',
403     & 'coordinates','XC YC RC iter', myThid)
404     c
405 heimbach 1.14 # ifdef SEAICE_ALLOW_DYNAMICS
406 heimbach 1.8 CALL MNC_CW_ADD_VNAME('aduice', 'U_xy_Hn__-__t', 3,4, myThid)
407     CALL MNC_CW_ADD_VATTR_TEXT('aduice',
408     & 'units','[cost]/[m/s]', myThid)
409     CALL MNC_CW_ADD_VATTR_TEXT('aduice','long_name',
410     & 'adjoint zonal ice velocity', myThid)
411     CALL MNC_CW_ADD_VATTR_TEXT('aduice',
412     & 'coordinates','XG YG RC iter', myThid)
413     c
414     CALL MNC_CW_ADD_VNAME('advice', 'V_xy_Hn__-__t', 3,4, myThid)
415     CALL MNC_CW_ADD_VATTR_TEXT('advice',
416     & 'units','[cost]/[m/s]', myThid)
417     CALL MNC_CW_ADD_VATTR_TEXT('advice','long_name',
418     & 'adjoint meridional ice velocity', myThid)
419     CALL MNC_CW_ADD_VATTR_TEXT('advice',
420     & 'coordinates','XG YG RC iter', myThid)
421     # endif
422     c
423     #endif
424 heimbach 1.7
425 mlosch 1.16 CC Write coordinates to "adstate" file
426     C CALL MNC_CW_SET_UDIM('adstate', 0, myThid)
427     C CALL MNC_CW_RS_W('R','adstate',0,0,'XC',xC, myThid)
428     C CALL MNC_CW_RS_W('R','adstate',0,0,'YC',yC, myThid)
429     C CALL MNC_CW_RS_W('R','adstate',0,0,'XU',xG, myThid)
430     C CALL MNC_CW_RS_W('R','adstate',0,0,'YU',yC, myThid)
431     C CALL MNC_CW_RS_W('R','adstate',0,0,'XV',xC, myThid)
432     C CALL MNC_CW_RS_W('R','adstate',0,0,'YV',yG, myThid)
433     C CALL MNC_CW_RS_W('R','adstate',0,0,'XG',xG, myThid)
434     C CALL MNC_CW_RS_W('R','adstate',0,0,'YG',yG, myThid)
435     C CALL MNC_CW_RS_W('R','adstate',0,0,'RC',rC, myThid)
436     C CALL MNC_CW_RS_W('R','adstate',0,0,'RF',rF, myThid)
437     C
438     C#ifdef ALLOW_EXF
439     C CALL MNC_CW_SET_UDIM('adexf', 0, myThid)
440     C CALL MNC_CW_RS_W('R','adexf',0,0,'XC',xC, myThid)
441     C CALL MNC_CW_RS_W('R','adexf',0,0,'YC',yC, myThid)
442     C CALL MNC_CW_RS_W('R','adexf',0,0,'XU',xG, myThid)
443     C CALL MNC_CW_RS_W('R','adexf',0,0,'YU',yC, myThid)
444     C CALL MNC_CW_RS_W('R','adexf',0,0,'XV',xC, myThid)
445     C CALL MNC_CW_RS_W('R','adexf',0,0,'YV',yG, myThid)
446     C CALL MNC_CW_RS_W('R','adexf',0,0,'XG',xG, myThid)
447     C CALL MNC_CW_RS_W('R','adexf',0,0,'YG',yG, myThid)
448     C CALL MNC_CW_RS_W('R','adexf',0,0,'RC',rC, myThid)
449     C CALL MNC_CW_RS_W('R','adexf',0,0,'RF',rF, myThid)
450     C#endif
451     C
452     C#ifdef ALLOW_SEAICE
453     C CALL MNC_CW_SET_UDIM('adseaice', 0, myThid)
454     C CALL MNC_CW_RS_W('R','adseaice',0,0,'XC',xC, myThid)
455     C CALL MNC_CW_RS_W('R','adseaice',0,0,'YC',yC, myThid)
456     C CALL MNC_CW_RS_W('R','adseaice',0,0,'XU',xG, myThid)
457     C CALL MNC_CW_RS_W('R','adseaice',0,0,'YU',yC, myThid)
458     C CALL MNC_CW_RS_W('R','adseaice',0,0,'XV',xC, myThid)
459     C CALL MNC_CW_RS_W('R','adseaice',0,0,'YV',yG, myThid)
460     C CALL MNC_CW_RS_W('R','adseaice',0,0,'XG',xG, myThid)
461     C CALL MNC_CW_RS_W('R','adseaice',0,0,'YG',yG, myThid)
462     C CALL MNC_CW_RS_W('R','adseaice',0,0,'RC',rC, myThid)
463     C CALL MNC_CW_RS_W('R','adseaice',0,0,'RF',rF, myThid)
464     C#endif
465 heimbach 1.9
466 heimbach 1.1 ENDIF
467 jmc 1.23 #endif /* ALLOW_MNC and ALLOW_AUTODIFF_MONITOR */
468 heimbach 1.1
469     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
470    
471     RETURN
472     END

  ViewVC Help
Powered by ViewVC 1.1.22