4 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
5 |
|
|
6 |
#include "AUTODIFF_OPTIONS.h" |
#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 |
|
#include "MDSIO_OPTIONS.h" |
14 |
|
|
15 |
CBOP |
CBOP |
16 |
C !ROUTINE: AUTODIFF_INI_MODEL_IO |
C !ROUTINE: AUTODIFF_INI_MODEL_IO |
33 |
#ifdef ALLOW_AUTODIFF_MONITOR |
#ifdef ALLOW_AUTODIFF_MONITOR |
34 |
#include "adcommon.h" |
#include "adcommon.h" |
35 |
#endif |
#endif |
36 |
|
#include "AUTODIFF.h" |
37 |
|
|
38 |
C !INPUT/OUTPUT PARAMETERS: |
C !INPUT/OUTPUT PARAMETERS: |
39 |
C myThid - Number of this instances |
C myThid - Number of this instances |
40 |
INTEGER myThid |
INTEGER myThid |
41 |
CEOP |
CEOP |
42 |
|
|
43 |
|
#ifdef ALLOW_AUTODIFF_WHTAPEIO |
44 |
|
integer myLev |
45 |
|
|
46 |
|
tapeFileUnit=0 |
47 |
|
do myLev=1,4 |
48 |
|
tapeFileUnitS(myLev)=0 |
49 |
|
enddo |
50 |
|
|
51 |
|
tapeFileCounter=0 |
52 |
|
tapeMaxCounter=30*nR |
53 |
|
|
54 |
|
tapeConcatIO=.TRUE. |
55 |
|
tapeSingleCpuIO=useSingleCpuIO |
56 |
|
tapeBufferIO=.FALSE. |
57 |
|
|
58 |
|
#ifdef EXCLUDE_WHIO_GLOBUFF_2D |
59 |
|
tapeSingleCpuIO=.FALSE. |
60 |
|
#endif |
61 |
|
#ifdef ALLOW_WHIO_3D |
62 |
|
#ifndef INCLUDE_WHIO_GLOBUFF_3D |
63 |
|
tapeSingleCpuIO=.FALSE. |
64 |
|
#endif |
65 |
|
#endif |
66 |
|
|
67 |
|
#endif /* ALLOW_AUTODIFF_WHTAPEIO */ |
68 |
|
|
69 |
#if (defined (ALLOW_MNC) && defined (ALLOW_AUTODIFF_MONITOR)) |
#if (defined (ALLOW_MNC) && defined (ALLOW_AUTODIFF_MONITOR)) |
70 |
|
|
165 |
#endif |
#endif |
166 |
|
|
167 |
#ifdef ALLOW_DIFFKR_CONTROL |
#ifdef ALLOW_DIFFKR_CONTROL |
168 |
CALL MNC_CW_ADD_VNAME('adDIFFKR', 'Cen_xy_Hn__C__t', 4,5, myThid) |
CALL MNC_CW_ADD_VNAME('adDiffkr', 'Cen_xy_Hn__C__t', 4,5, myThid) |
169 |
CALL MNC_CW_ADD_VATTR_TEXT('adDIFFKR','units','[cost]/[m^2/s]', myThid) |
CALL MNC_CW_ADD_VATTR_TEXT('adDiffkr', |
170 |
CALL MNC_CW_ADD_VATTR_TEXT('adDIFFKR','long_name', |
& 'units','[cost]/[m^2/s]', myThid) |
171 |
& 'adjoint vertical diffusion', myThid) |
CALL MNC_CW_ADD_VATTR_TEXT('adDiffkr', |
172 |
CALL MNC_CW_ADD_VATTR_TEXT('adDIFFKR', |
& 'long_name','adjoint vertical diffusion', myThid) |
173 |
|
CALL MNC_CW_ADD_VATTR_TEXT('adDiffkr', |
174 |
|
& 'coordinates','XC YC RC iter', myThid) |
175 |
|
#endif |
176 |
|
|
177 |
|
#ifdef ALLOW_KAPGM_CONTROL |
178 |
|
CALL MNC_CW_ADD_VNAME('adkapgm', 'Cen_xy_Hn__C__t', 4,5, myThid) |
179 |
|
CALL MNC_CW_ADD_VATTR_TEXT('adkapgm', |
180 |
|
& 'units','[cost]/[m^2/s]', myThid) |
181 |
|
CALL MNC_CW_ADD_VATTR_TEXT('adkapgm', |
182 |
|
& 'long_name','adjoint isopycnal diffusion', myThid) |
183 |
|
CALL MNC_CW_ADD_VATTR_TEXT('adkapgm', |
184 |
|
& 'coordinates','XC YC RC iter', myThid) |
185 |
|
#endif |
186 |
|
|
187 |
|
#ifdef ALLOW_KAPREDI_CONTROL |
188 |
|
CALL MNC_CW_ADD_VNAME('adkapredi', 'Cen_xy_Hn__C__t', 4,5, myThid) |
189 |
|
CALL MNC_CW_ADD_VATTR_TEXT('adkapredi', |
190 |
|
& 'units','[cost]/[m^2/s]', myThid) |
191 |
|
CALL MNC_CW_ADD_VATTR_TEXT('adkapredi', |
192 |
|
& 'long_name','adjoint isopycnal diffusion', myThid) |
193 |
|
CALL MNC_CW_ADD_VATTR_TEXT('adkapredi', |
194 |
& 'coordinates','XC YC RC iter', myThid) |
& 'coordinates','XC YC RC iter', myThid) |
195 |
#endif |
#endif |
196 |
|
|
327 |
CALL MNC_CW_ADD_VATTR_TEXT('adhsnow', |
CALL MNC_CW_ADD_VATTR_TEXT('adhsnow', |
328 |
& 'coordinates','XC YC RC iter', myThid) |
& 'coordinates','XC YC RC iter', myThid) |
329 |
c |
c |
330 |
# ifdef ALLOW_DYNAMICS |
# ifdef SEAICE_ALLOW_DYNAMICS |
331 |
CALL MNC_CW_ADD_VNAME('aduice', 'U_xy_Hn__-__t', 3,4, myThid) |
CALL MNC_CW_ADD_VNAME('aduice', 'U_xy_Hn__-__t', 3,4, myThid) |
332 |
CALL MNC_CW_ADD_VATTR_TEXT('aduice', |
CALL MNC_CW_ADD_VATTR_TEXT('aduice', |
333 |
& 'units','[cost]/[m/s]', myThid) |
& 'units','[cost]/[m/s]', myThid) |
347 |
c |
c |
348 |
#endif |
#endif |
349 |
|
|
350 |
C Write coordinates to "adstate" file |
CC Write coordinates to "adstate" file |
351 |
CALL MNC_CW_SET_UDIM('adstate', 0, myThid) |
C CALL MNC_CW_SET_UDIM('adstate', 0, myThid) |
352 |
CALL MNC_CW_RS_W('R','adstate',0,0,'XC',xC, myThid) |
C CALL MNC_CW_RS_W('R','adstate',0,0,'XC',xC, myThid) |
353 |
CALL MNC_CW_RS_W('R','adstate',0,0,'YC',yC, myThid) |
C CALL MNC_CW_RS_W('R','adstate',0,0,'YC',yC, myThid) |
354 |
CALL MNC_CW_RS_W('R','adstate',0,0,'XU',xG, myThid) |
C CALL MNC_CW_RS_W('R','adstate',0,0,'XU',xG, myThid) |
355 |
CALL MNC_CW_RS_W('R','adstate',0,0,'YU',yC, myThid) |
C CALL MNC_CW_RS_W('R','adstate',0,0,'YU',yC, myThid) |
356 |
CALL MNC_CW_RS_W('R','adstate',0,0,'XV',xC, myThid) |
C CALL MNC_CW_RS_W('R','adstate',0,0,'XV',xC, myThid) |
357 |
CALL MNC_CW_RS_W('R','adstate',0,0,'YV',yG, myThid) |
C CALL MNC_CW_RS_W('R','adstate',0,0,'YV',yG, myThid) |
358 |
CALL MNC_CW_RS_W('R','adstate',0,0,'XG',xG, myThid) |
C CALL MNC_CW_RS_W('R','adstate',0,0,'XG',xG, myThid) |
359 |
CALL MNC_CW_RS_W('R','adstate',0,0,'YG',yG, myThid) |
C CALL MNC_CW_RS_W('R','adstate',0,0,'YG',yG, myThid) |
360 |
CALL MNC_CW_RS_W('R','adstate',0,0,'RC',rC, myThid) |
C CALL MNC_CW_RS_W('R','adstate',0,0,'RC',rC, myThid) |
361 |
CALL MNC_CW_RS_W('R','adstate',0,0,'RF',rF, myThid) |
C CALL MNC_CW_RS_W('R','adstate',0,0,'RF',rF, myThid) |
362 |
|
C |
363 |
#ifdef ALLOW_EXF |
C#ifdef ALLOW_EXF |
364 |
CALL MNC_CW_SET_UDIM('adexf', 0, myThid) |
C CALL MNC_CW_SET_UDIM('adexf', 0, myThid) |
365 |
CALL MNC_CW_RS_W('R','adexf',0,0,'XC',xC, myThid) |
C CALL MNC_CW_RS_W('R','adexf',0,0,'XC',xC, myThid) |
366 |
CALL MNC_CW_RS_W('R','adexf',0,0,'YC',yC, myThid) |
C CALL MNC_CW_RS_W('R','adexf',0,0,'YC',yC, myThid) |
367 |
CALL MNC_CW_RS_W('R','adexf',0,0,'XU',xG, myThid) |
C CALL MNC_CW_RS_W('R','adexf',0,0,'XU',xG, myThid) |
368 |
CALL MNC_CW_RS_W('R','adexf',0,0,'YU',yC, myThid) |
C CALL MNC_CW_RS_W('R','adexf',0,0,'YU',yC, myThid) |
369 |
CALL MNC_CW_RS_W('R','adexf',0,0,'XV',xC, myThid) |
C CALL MNC_CW_RS_W('R','adexf',0,0,'XV',xC, myThid) |
370 |
CALL MNC_CW_RS_W('R','adexf',0,0,'YV',yG, myThid) |
C CALL MNC_CW_RS_W('R','adexf',0,0,'YV',yG, myThid) |
371 |
CALL MNC_CW_RS_W('R','adexf',0,0,'XG',xG, myThid) |
C CALL MNC_CW_RS_W('R','adexf',0,0,'XG',xG, myThid) |
372 |
CALL MNC_CW_RS_W('R','adexf',0,0,'YG',yG, myThid) |
C CALL MNC_CW_RS_W('R','adexf',0,0,'YG',yG, myThid) |
373 |
CALL MNC_CW_RS_W('R','adexf',0,0,'RC',rC, myThid) |
C CALL MNC_CW_RS_W('R','adexf',0,0,'RC',rC, myThid) |
374 |
CALL MNC_CW_RS_W('R','adexf',0,0,'RF',rF, myThid) |
C CALL MNC_CW_RS_W('R','adexf',0,0,'RF',rF, myThid) |
375 |
#endif |
C#endif |
376 |
|
C |
377 |
#ifdef ALLOW_SEAICE |
C#ifdef ALLOW_SEAICE |
378 |
CALL MNC_CW_SET_UDIM('adseaice', 0, myThid) |
C CALL MNC_CW_SET_UDIM('adseaice', 0, myThid) |
379 |
CALL MNC_CW_RS_W('R','adseaice',0,0,'XC',xC, myThid) |
C CALL MNC_CW_RS_W('R','adseaice',0,0,'XC',xC, myThid) |
380 |
CALL MNC_CW_RS_W('R','adseaice',0,0,'YC',yC, myThid) |
C CALL MNC_CW_RS_W('R','adseaice',0,0,'YC',yC, myThid) |
381 |
CALL MNC_CW_RS_W('R','adseaice',0,0,'XU',xG, myThid) |
C CALL MNC_CW_RS_W('R','adseaice',0,0,'XU',xG, myThid) |
382 |
CALL MNC_CW_RS_W('R','adseaice',0,0,'YU',yC, myThid) |
C CALL MNC_CW_RS_W('R','adseaice',0,0,'YU',yC, myThid) |
383 |
CALL MNC_CW_RS_W('R','adseaice',0,0,'XV',xC, myThid) |
C CALL MNC_CW_RS_W('R','adseaice',0,0,'XV',xC, myThid) |
384 |
CALL MNC_CW_RS_W('R','adseaice',0,0,'YV',yG, myThid) |
C CALL MNC_CW_RS_W('R','adseaice',0,0,'YV',yG, myThid) |
385 |
CALL MNC_CW_RS_W('R','adseaice',0,0,'XG',xG, myThid) |
C CALL MNC_CW_RS_W('R','adseaice',0,0,'XG',xG, myThid) |
386 |
CALL MNC_CW_RS_W('R','adseaice',0,0,'YG',yG, myThid) |
C CALL MNC_CW_RS_W('R','adseaice',0,0,'YG',yG, myThid) |
387 |
CALL MNC_CW_RS_W('R','adseaice',0,0,'RC',rC, myThid) |
C CALL MNC_CW_RS_W('R','adseaice',0,0,'RC',rC, myThid) |
388 |
CALL MNC_CW_RS_W('R','adseaice',0,0,'RF',rF, myThid) |
C CALL MNC_CW_RS_W('R','adseaice',0,0,'RF',rF, myThid) |
389 |
#endif |
C#endif |
390 |
|
|
391 |
ENDIF |
ENDIF |
392 |
#endif |
#endif |