Back to home page

MITgcm

 
 

    


File indexing completed on 2023-08-04 05:10:07 UTC

view on githubraw file Latest commit 45315406 on 2023-08-03 16:50:12 UTC
6bd3b6b067 Patr*0001 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0002 
50f1081522 Jean*0003 #include "AUTODIFF_OPTIONS.h"
bead363026 Jean*0004 #ifdef ALLOW_CTRL
                0005 # include "CTRL_OPTIONS.h"
                0006 #endif
b7e4130855 Patr*0007 #ifdef ALLOW_EXF
                0008 # include "EXF_OPTIONS.h"
                0009 #endif
                0010 #ifdef ALLOW_SEAICE
                0011 # include "SEAICE_OPTIONS.h"
                0012 #endif
ab63ca39fb Gael*0013 #include "MDSIO_OPTIONS.h"
6bd3b6b067 Patr*0014 
                0015 CBOP
                0016 C     !ROUTINE: AUTODIFF_INI_MODEL_IO
                0017 C     !INTERFACE:
                0018       SUBROUTINE AUTODIFF_INI_MODEL_IO( myThid )
                0019 
                0020 C     !DESCRIPTION: \bv
                0021 C     autodiff_ini_model_io() is where run-time/experiment specific data are
                0022 C     passed to any I/O packages ready that will be used for I/O of model state
                0023 C     variables.
                0024 C     This is specifically for setting up once only information such as
                0025 C     shape/size of variables, units, etc... and is only for state variables.
                0026 C     \ev
                0027 
                0028       IMPLICIT NONE
                0029 #include "SIZE.h"
                0030 #include "EEPARAMS.h"
                0031 #include "PARAMS.h"
358649780a Gael*0032 #ifdef ALLOW_EXF
                0033 # include "EXF_PARAM.h"
                0034 #endif
47a1ba5f79 Jean*0035 #include "GRID.h"
2f58e54336 Gael*0036 #include "AUTODIFF.h"
be937cd223 Gael*0037 #ifdef ALLOW_WHIO
                0038 #include "MDSIO_BUFF_WH.h"
                0039 #endif
6bd3b6b067 Patr*0040 
                0041 C     !INPUT/OUTPUT PARAMETERS:
47a1ba5f79 Jean*0042 C     myThid  :: my Thread Id number
6bd3b6b067 Patr*0043       INTEGER myThid
59e0adf4a5 Gael*0044 
                0045 C     !FUNCTIONS
                0046       INTEGER  ILNBLNK
                0047       EXTERNAL ILNBLNK
                0048 
                0049 C     !LOCAL VARIABLES:
7c50f07931 Mart*0050 #ifndef HAVE_SYSTEM
df6f5d811d Gael*0051       CHARACTER*(MAX_LEN_MBUF) msgBuf
7c50f07931 Mart*0052 #endif
59e0adf4a5 Gael*0053       CHARACTER*(MAX_LEN_FNAM) namBuf
7c50f07931 Mart*0054       INTEGER iL, pIL
                0055 #ifdef ALLOW_AUTODIFF_WHTAPEIO
                0056       INTEGER myLev
                0057 #endif
6bd3b6b067 Patr*0058 CEOP
                0059 
816e6857b6 Gael*0060 c     initialize ad dump record number (used only if dumpAdByRec is true)
                0061       dumpAdRecMn=0
                0062       dumpAdRecDy=0
                0063       dumpAdRecSi=0
52dd931a85 Timo*0064       dumpAdRecEt=0
816e6857b6 Gael*0065 
df6f5d811d Gael*0066       _BEGIN_MASTER( myThid )
                0067 
59e0adf4a5 Gael*0068       IF ( adTapeDir .NE. ' ' ) THEN
                0069        iL = ILNBLNK( adTapeDir )
df6f5d811d Gael*0070 C      append "/", if necessary
59e0adf4a5 Gael*0071        IF ( iL.LT.MAX_LEN_FNAM .AND. adTapeDir(iL:iL).NE.'/' ) THEN
                0072         namBuf(1:iL) = adTapeDir(1:iL)
                0073         WRITE(adTapeDir(1:iL+1),'(2A)') namBuf(1:iL),'/'
                0074        ENDIF
70dd91cc56 Gael*0075 #ifdef HAVE_SYSTEM
59e0adf4a5 Gael*0076 C      create directory
                0077        iL = ILNBLNK( adTapeDir ) -1
                0078        WRITE(namBuf,'(2A)') ' mkdir -p ', adTapeDir(1:iL)
                0079        pIL = 1 + ILNBLNK( namBuf )
e1c0ea844d Gael*0080        WRITE(standardMessageUnit,'(3A)')
bead363026 Jean*0081      &  '==> SYSTEM CALL (from AUTODIFF_INI_MODEL_IO): >',
                0082      &                                 namBuf(1:pIL), '<'
59e0adf4a5 Gael*0083        CALL SYSTEM( namBuf(1:pIL) )
70dd91cc56 Gael*0084 #else
                0085        WRITE(msgBuf,'(2A)') '** WARNING ** AUTODIFF_INI_MODEL_IO: ',
                0086      &       'cannot call mkdir -> please create adTapeDir manually'
                0087        CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
                0088      &                     SQUEEZE_RIGHT, myThid )
                0089 #endif
59e0adf4a5 Gael*0090       ENDIF
                0091 
df6f5d811d Gael*0092       _END_MASTER( myThid )
                0093 
2f58e54336 Gael*0094 #ifdef ALLOW_AUTODIFF_WHTAPEIO
                0095 
                0096       tapeFileUnit=0
                0097       do myLev=1,4
                0098         tapeFileUnitS(myLev)=0
                0099       enddo
                0100 
                0101       tapeFileCounter=0
be937cd223 Gael*0102       tapeMaxCounter=nWh
2f58e54336 Gael*0103 
                0104       tapeConcatIO=.TRUE.
                0105       tapeSingleCpuIO=useSingleCpuIO
                0106       tapeBufferIO=.FALSE.
ab63ca39fb Gael*0107 
                0108 #ifdef EXCLUDE_WHIO_GLOBUFF_2D
                0109       tapeSingleCpuIO=.FALSE.
47a1ba5f79 Jean*0110 #endif
ab63ca39fb Gael*0111 #ifdef ALLOW_WHIO_3D
                0112 #ifndef INCLUDE_WHIO_GLOBUFF_3D
                0113       tapeSingleCpuIO=.FALSE.
                0114 #endif
                0115 #endif
                0116 
2f58e54336 Gael*0117 #endif /* ALLOW_AUTODIFF_WHTAPEIO */
6bd3b6b067 Patr*0118 
                0119 #if (defined (ALLOW_MNC) && defined (ALLOW_AUTODIFF_MONITOR))
                0120 
                0121       IF (useMNC) THEN
                0122 
                0123       CALL MNC_CW_ADD_VNAME('adU', 'U_xy_Hn__C__t', 4,5, myThid)
                0124       CALL MNC_CW_ADD_VATTR_TEXT('adU','units','[cost]/[m/s]', myThid)
                0125       CALL MNC_CW_ADD_VATTR_TEXT('adU','long_name',
77c6107d5a Patr*0126      &     'adjoint zonal velocity', myThid)
6bd3b6b067 Patr*0127       CALL MNC_CW_ADD_VATTR_TEXT('adU',
                0128      &     'coordinates','XU YU RC iter', myThid)
                0129 
                0130       CALL MNC_CW_ADD_VNAME('adV', 'V_xy_Hn__C__t', 4,5, myThid)
                0131       CALL MNC_CW_ADD_VATTR_TEXT('adV','units','[cost]/[m/s]', myThid)
                0132       CALL MNC_CW_ADD_VATTR_TEXT('adV','long_name',
77c6107d5a Patr*0133      &     'adjoint merid. velocity', myThid)
6bd3b6b067 Patr*0134       CALL MNC_CW_ADD_VATTR_TEXT('adV',
                0135      &     'coordinates','XV YV RC iter', myThid)
                0136 
                0137       CALL MNC_CW_ADD_VNAME('adT', 'Cen_xy_Hn__C__t', 4,5, myThid)
                0138       CALL MNC_CW_ADD_VATTR_TEXT('adT','units','[cost]/[degC]', myThid)
                0139       CALL MNC_CW_ADD_VATTR_TEXT('adT','long_name',
77c6107d5a Patr*0140      &     'adjoint potential_temperature', myThid)
6bd3b6b067 Patr*0141       CALL MNC_CW_ADD_VATTR_TEXT('adT',
                0142      &     'coordinates','XC YC RC iter', myThid)
                0143 
                0144       CALL MNC_CW_ADD_VNAME('adS', 'Cen_xy_Hn__C__t', 4,5, myThid)
ba0b047096 Mart*0145       CALL MNC_CW_ADD_VATTR_TEXT('adS','units','[cost]/[g/kg]', myThid)
6bd3b6b067 Patr*0146       CALL MNC_CW_ADD_VATTR_TEXT('adS','long_name',
77c6107d5a Patr*0147      &     'adjoint salinity', myThid)
6bd3b6b067 Patr*0148       CALL MNC_CW_ADD_VATTR_TEXT('adS',
                0149      &     'coordinates','XC YC RC iter', myThid)
                0150 
                0151       CALL MNC_CW_ADD_VNAME('adEta', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0152       CALL MNC_CW_ADD_VATTR_TEXT('adEta','units','[cost]/[m]', myThid)
                0153       CALL MNC_CW_ADD_VATTR_TEXT('adEta','long_name',
77c6107d5a Patr*0154      &     'adjoint free-surface_r-anomaly', myThid)
6bd3b6b067 Patr*0155       CALL MNC_CW_ADD_VATTR_TEXT('adEta',
                0156      &     'coordinates','XC YC RC iter', myThid)
                0157 
                0158       CALL MNC_CW_ADD_VNAME('adW', 'Cen_xy_Hn__C__t', 4,5, myThid)
                0159       CALL MNC_CW_ADD_VATTR_TEXT('adW','units','[cost]/[m/s]', myThid)
                0160       CALL MNC_CW_ADD_VATTR_TEXT('adW','long_name',
77c6107d5a Patr*0161      &     'adjoint vertical velocity', myThid)
6bd3b6b067 Patr*0162       CALL MNC_CW_ADD_VATTR_TEXT('adW',
                0163      &     'coordinates','XC YC RC iter', myThid)
                0164 
77c6107d5a Patr*0165       CALL MNC_CW_ADD_VNAME('adQnet', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0166       CALL MNC_CW_ADD_VATTR_TEXT('adQnet',
                0167      &     'units','[cost]/[W/m^2]', myThid)
                0168       CALL MNC_CW_ADD_VATTR_TEXT('adQnet','long_name',
                0169      &     'adjoint net upward heat flux', myThid)
                0170       CALL MNC_CW_ADD_VATTR_TEXT('adQnet',
                0171      &     'coordinates','XC YC RC iter', myThid)
                0172 
                0173       CALL MNC_CW_ADD_VNAME('adEmpmr', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0174       CALL MNC_CW_ADD_VATTR_TEXT('adEmpmr',
                0175      &     'units','[cost]/[m/s]', myThid)
                0176       CALL MNC_CW_ADD_VATTR_TEXT('adEmpmr','long_name',
                0177      &     'adjoint net upward freshwater flux', myThid)
                0178       CALL MNC_CW_ADD_VATTR_TEXT('adEmpmr',
                0179      &     'coordinates','XC YC RC iter', myThid)
                0180 
                0181       CALL MNC_CW_ADD_VNAME(    'adFu', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0182       CALL MNC_CW_ADD_VATTR_TEXT('adFu',
                0183      &     'units','[cost]/[N/m^2]', myThid)
                0184       CALL MNC_CW_ADD_VATTR_TEXT('adFu','long_name',
                0185      &     'adjoint zonal wind stress', myThid)
                0186       CALL MNC_CW_ADD_VATTR_TEXT('adFu',
                0187      &     'coordinates','XC YC RC iter', myThid)
                0188 
                0189       CALL MNC_CW_ADD_VNAME(    'adFv', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0190       CALL MNC_CW_ADD_VATTR_TEXT('adFv',
                0191      &     'units','[cost]/[N/m^2]', myThid)
                0192       CALL MNC_CW_ADD_VATTR_TEXT('adFv','long_name',
                0193      &     'adjoint zonal meridional stress', myThid)
                0194       CALL MNC_CW_ADD_VATTR_TEXT('adFv',
                0195      &     'coordinates','XC YC RC iter', myThid)
                0196 
98e4a16c0b Mart*0197 #ifdef ALLOW_BOTTOMDRAG_CONTROL
                0198       CALL MNC_CW_ADD_VNAME('adBottomDrag', 'Cen_xy_Hn__-__t',
47a1ba5f79 Jean*0199      &                       3,4, myThid)
98e4a16c0b Mart*0200       CALL MNC_CW_ADD_VATTR_TEXT('adBottomDrag',
                0201      &     'units','[cost]/[N/m^2]', myThid)
                0202       CALL MNC_CW_ADD_VATTR_TEXT('adBottomDrag','long_name',
                0203      &     'adjoint bottom drag', myThid)
                0204       CALL MNC_CW_ADD_VATTR_TEXT('adBottomDrag',
                0205      &     'coordinates','XC YC RC iter', myThid)
                0206 #endif
                0207 
dd9d2cc2bf Patr*0208 #ifdef ALLOW_DIFFKR_CONTROL
f90ba9b8a2 Patr*0209       CALL MNC_CW_ADD_VNAME('adDiffkr', 'Cen_xy_Hn__C__t', 4,5, myThid)
                0210       CALL MNC_CW_ADD_VATTR_TEXT('adDiffkr',
                0211      & 'units','[cost]/[m^2/s]', myThid)
                0212       CALL MNC_CW_ADD_VATTR_TEXT('adDiffkr',
                0213      & 'long_name','adjoint vertical diffusion', myThid)
                0214       CALL MNC_CW_ADD_VATTR_TEXT('adDiffkr',
dd9d2cc2bf Patr*0215      &     'coordinates','XC YC RC iter', myThid)
                0216 #endif
                0217 
5116830959 Patr*0218 #ifdef ALLOW_KAPGM_CONTROL
                0219       CALL MNC_CW_ADD_VNAME('adkapgm', 'Cen_xy_Hn__C__t', 4,5, myThid)
                0220       CALL MNC_CW_ADD_VATTR_TEXT('adkapgm',
                0221      & 'units','[cost]/[m^2/s]', myThid)
                0222       CALL MNC_CW_ADD_VATTR_TEXT('adkapgm',
                0223      & 'long_name','adjoint isopycnal diffusion', myThid)
                0224       CALL MNC_CW_ADD_VATTR_TEXT('adkapgm',
                0225      &     'coordinates','XC YC RC iter', myThid)
                0226 #endif
                0227 
7e2482cabc Gael*0228 #ifdef ALLOW_KAPREDI_CONTROL
                0229       CALL MNC_CW_ADD_VNAME('adkapredi', 'Cen_xy_Hn__C__t', 4,5, myThid)
                0230       CALL MNC_CW_ADD_VATTR_TEXT('adkapredi',
                0231      & 'units','[cost]/[m^2/s]', myThid)
                0232       CALL MNC_CW_ADD_VATTR_TEXT('adkapredi',
                0233      & 'long_name','adjoint isopycnal diffusion', myThid)
47a1ba5f79 Jean*0234       CALL MNC_CW_ADD_VATTR_TEXT('adkapredi',
7e2482cabc Gael*0235      &     'coordinates','XC YC RC iter', myThid)
                0236 #endif
                0237 
34a7c76e08 Patr*0238 #ifdef ALLOW_EXF
                0239 c
                0240       CALL MNC_CW_ADD_VNAME('adustress', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0241       CALL MNC_CW_ADD_VATTR_TEXT('adustress',
                0242      &     'units','[cost]/[N/m^2]', myThid)
                0243       CALL MNC_CW_ADD_VATTR_TEXT('adustress','long_name',
                0244      &     'adjoint zonal wind stress', myThid)
                0245       CALL MNC_CW_ADD_VATTR_TEXT('adustress',
                0246      &     'coordinates','XC YC RC iter', myThid)
                0247 c
                0248       CALL MNC_CW_ADD_VNAME('advstress', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0249       CALL MNC_CW_ADD_VATTR_TEXT('advstress',
                0250      &     'units','[cost]/[N/m^2]', myThid)
                0251       CALL MNC_CW_ADD_VATTR_TEXT('advstress','long_name',
                0252      &     'adjoint meridional wind stress', myThid)
                0253       CALL MNC_CW_ADD_VATTR_TEXT('advstress',
                0254      &     'coordinates','XC YC RC iter', myThid)
                0255 c
                0256       CALL MNC_CW_ADD_VNAME('adhflux', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0257       CALL MNC_CW_ADD_VATTR_TEXT('adhflux',
                0258      &     'units','[cost]/[W/m^2]', myThid)
                0259       CALL MNC_CW_ADD_VATTR_TEXT('adhflux','long_name',
                0260      &     'adjoint net upward heat flux', myThid)
                0261       CALL MNC_CW_ADD_VATTR_TEXT('adhflux',
                0262      &     'coordinates','XC YC RC iter', myThid)
                0263 c
                0264       CALL MNC_CW_ADD_VNAME('adsflux', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0265       CALL MNC_CW_ADD_VATTR_TEXT('adsflux',
                0266      &     'units','[cost]/[m/s]', myThid)
                0267       CALL MNC_CW_ADD_VATTR_TEXT('adsflux','long_name',
                0268      &     'adjoint net upward freshwater flux', myThid)
                0269       CALL MNC_CW_ADD_VATTR_TEXT('adsflux',
                0270      &     'coordinates','XC YC RC iter', myThid)
                0271 c
                0272 # ifdef ALLOW_ATM_TEMP
                0273       CALL MNC_CW_ADD_VNAME('adatemp', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0274       CALL MNC_CW_ADD_VATTR_TEXT('adatemp',
                0275      &     'units','[cost]/[degK]', myThid)
                0276       CALL MNC_CW_ADD_VATTR_TEXT('adatemp','long_name',
                0277      &     'adjoint surface air temperature', myThid)
                0278       CALL MNC_CW_ADD_VATTR_TEXT('adatemp',
                0279      &     'coordinates','XC YC RC iter', myThid)
                0280 c
                0281       CALL MNC_CW_ADD_VNAME('adaqh', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0282       CALL MNC_CW_ADD_VATTR_TEXT('adaqh',
                0283      &     'units','[cost]/[kg/kg]', myThid)
                0284       CALL MNC_CW_ADD_VATTR_TEXT('adaqh','long_name',
                0285      &     'adjoint specific humidity', myThid)
                0286       CALL MNC_CW_ADD_VATTR_TEXT('adaqh',
                0287      &     'coordinates','XC YC RC iter', myThid)
                0288 c
                0289       CALL MNC_CW_ADD_VNAME('adprecip', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0290       CALL MNC_CW_ADD_VATTR_TEXT('adprecip',
                0291      &     'units','[cost]/[m/s]', myThid)
                0292       CALL MNC_CW_ADD_VATTR_TEXT('adprecip','long_name',
                0293      &     'adjoint precipitation', myThid)
                0294       CALL MNC_CW_ADD_VATTR_TEXT('adprecip',
                0295      &     'coordinates','XC YC RC iter', myThid)
                0296 # endif
e01fb501bf An T*0297 # ifdef ALLOW_RUNOFF
                0298       CALL MNC_CW_ADD_VNAME('adrunoff', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0299       CALL MNC_CW_ADD_VATTR_TEXT('adrunoff',
                0300      &     'units','[cost]/[m/s]', myThid)
                0301       CALL MNC_CW_ADD_VATTR_TEXT('adrunoff','long_name',
                0302      &     'adjoint runoff', myThid)
                0303       CALL MNC_CW_ADD_VATTR_TEXT('adrunoff',
                0304      &     'coordinates','XC YC RC iter', myThid)
                0305 # endif
                0306 # ifdef ALLOW_ATM_WIND
358649780a Gael*0307       IF ( useAtmWind ) THEN
34a7c76e08 Patr*0308       CALL MNC_CW_ADD_VNAME('aduwind', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0309       CALL MNC_CW_ADD_VATTR_TEXT('aduwind',
                0310      &     'units','[cost]/[m/s]', myThid)
                0311       CALL MNC_CW_ADD_VATTR_TEXT('aduwind','long_name',
                0312      &     'adjoint zonal wind speed', myThid)
                0313       CALL MNC_CW_ADD_VATTR_TEXT('aduwind',
                0314      &     'coordinates','XC YC RC iter', myThid)
                0315 c
                0316       CALL MNC_CW_ADD_VNAME('advwind', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0317       CALL MNC_CW_ADD_VATTR_TEXT('advwind',
                0318      &     'units','[cost]/[m/s]', myThid)
                0319       CALL MNC_CW_ADD_VATTR_TEXT('advwind','long_name',
                0320      &     'adjoint meridional wind speed', myThid)
                0321       CALL MNC_CW_ADD_VATTR_TEXT('advwind',
                0322      &     'coordinates','XC YC RC iter', myThid)
358649780a Gael*0323       ENDIF
e01fb501bf An T*0324 # endif
34a7c76e08 Patr*0325 # ifdef ALLOW_DOWNWARD_RADIATION
                0326       CALL MNC_CW_ADD_VNAME('adswdown', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0327       CALL MNC_CW_ADD_VATTR_TEXT('adswdown',
                0328      &     'units','[cost]/[W/m^2]', myThid)
                0329       CALL MNC_CW_ADD_VATTR_TEXT('adswdown','long_name',
                0330      &     'adjoint downward shortwave radiation', myThid)
                0331       CALL MNC_CW_ADD_VATTR_TEXT('adswdown',
                0332      &     'coordinates','XC YC RC iter', myThid)
49219fc174 An T*0333       CALL MNC_CW_ADD_VNAME('adlwdown', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0334       CALL MNC_CW_ADD_VATTR_TEXT('adlwdown',
                0335      &     'units','[cost]/[W/m^2]', myThid)
                0336       CALL MNC_CW_ADD_VATTR_TEXT('adlwdown','long_name',
                0337      &     'adjoint downward wave radiation', myThid)
                0338       CALL MNC_CW_ADD_VATTR_TEXT('adlwdown',
                0339      &     'coordinates','XC YC RC iter', myThid)
34a7c76e08 Patr*0340 # endif
b56b667948 Patr*0341 # ifdef ALLOW_CLIMSST_RELAXATION
                0342       CALL MNC_CW_ADD_VNAME('adclimsst', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0343       CALL MNC_CW_ADD_VATTR_TEXT('adclimsst',
                0344      &     'units','[cost]/[degC]', myThid)
                0345       CALL MNC_CW_ADD_VATTR_TEXT('adclimsst','long_name',
                0346      &     'adjoint sea surface temperature', myThid)
                0347       CALL MNC_CW_ADD_VATTR_TEXT('adclimsst',
                0348      &     'coordinates','XC YC RC iter', myThid)
                0349 # endif
                0350 # ifdef ALLOW_CLIMSSS_RELAXATION
                0351       CALL MNC_CW_ADD_VNAME('adclimsss', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0352       CALL MNC_CW_ADD_VATTR_TEXT('adclimsss',
ba0b047096 Mart*0353      &     'units','[cost]/[g/kg]', myThid)
b56b667948 Patr*0354       CALL MNC_CW_ADD_VATTR_TEXT('adclimsss','long_name',
                0355      &     'adjoint sea surface salinity', myThid)
                0356       CALL MNC_CW_ADD_VATTR_TEXT('adclimsss',
                0357      &     'coordinates','XC YC RC iter', myThid)
                0358 # endif
34a7c76e08 Patr*0359 c
                0360 #endif
                0361 
f2ec7cf2fc Patr*0362 #ifdef ALLOW_SEAICE
                0363 c
                0364       CALL MNC_CW_ADD_VNAME('adarea', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0365       CALL MNC_CW_ADD_VATTR_TEXT('adarea',
                0366      &     'units','[cost]/[m^2/m^2]', myThid)
                0367       CALL MNC_CW_ADD_VATTR_TEXT('adarea','long_name',
                0368      &     'adjoint fractional ice-covered area', myThid)
                0369       CALL MNC_CW_ADD_VATTR_TEXT('adarea',
                0370      &     'coordinates','XC YC RC iter', myThid)
                0371 c
                0372       CALL MNC_CW_ADD_VNAME('adheff', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0373       CALL MNC_CW_ADD_VATTR_TEXT('adheff',
                0374      &     'units','[cost]/[m]', myThid)
                0375       CALL MNC_CW_ADD_VATTR_TEXT('adheff','long_name',
                0376      &     'adjoint effective ice thickness', myThid)
                0377       CALL MNC_CW_ADD_VATTR_TEXT('adheff',
                0378      &     'coordinates','XC YC RC iter', myThid)
                0379 c
                0380       CALL MNC_CW_ADD_VNAME('adhsnow', 'Cen_xy_Hn__-__t', 3,4, myThid)
                0381       CALL MNC_CW_ADD_VATTR_TEXT('adhsnow',
                0382      &     'units','[cost]/[m]', myThid)
                0383       CALL MNC_CW_ADD_VATTR_TEXT('adhsnow','long_name',
                0384      &     'adjoint snow thickness', myThid)
                0385       CALL MNC_CW_ADD_VATTR_TEXT('adhsnow',
                0386      &     'coordinates','XC YC RC iter', myThid)
                0387 c
45315406aa Mart*0388 # ifdef SEAICE_CGRID
f2ec7cf2fc Patr*0389       CALL MNC_CW_ADD_VNAME('aduice', 'U_xy_Hn__-__t', 3,4, myThid)
                0390       CALL MNC_CW_ADD_VATTR_TEXT('aduice',
                0391      &     'units','[cost]/[m/s]', myThid)
                0392       CALL MNC_CW_ADD_VATTR_TEXT('aduice','long_name',
                0393      &     'adjoint zonal ice velocity', myThid)
                0394       CALL MNC_CW_ADD_VATTR_TEXT('aduice',
                0395      &     'coordinates','XG YG RC iter', myThid)
                0396 c
                0397       CALL MNC_CW_ADD_VNAME('advice', 'V_xy_Hn__-__t', 3,4, myThid)
                0398       CALL MNC_CW_ADD_VATTR_TEXT('advice',
                0399      &     'units','[cost]/[m/s]', myThid)
                0400       CALL MNC_CW_ADD_VATTR_TEXT('advice','long_name',
                0401      &     'adjoint meridional ice velocity', myThid)
                0402       CALL MNC_CW_ADD_VATTR_TEXT('advice',
                0403      &     'coordinates','XG YG RC iter', myThid)
                0404 # endif
                0405 c
                0406 #endif
34a7c76e08 Patr*0407 
56d9c78b68 Mart*0408 CC     Write coordinates to "adstate" file
                0409 C      CALL MNC_CW_SET_UDIM('adstate', 0, myThid)
                0410 C      CALL MNC_CW_RS_W('R','adstate',0,0,'XC',xC, myThid)
                0411 C      CALL MNC_CW_RS_W('R','adstate',0,0,'YC',yC, myThid)
                0412 C      CALL MNC_CW_RS_W('R','adstate',0,0,'XU',xG, myThid)
                0413 C      CALL MNC_CW_RS_W('R','adstate',0,0,'YU',yC, myThid)
                0414 C      CALL MNC_CW_RS_W('R','adstate',0,0,'XV',xC, myThid)
                0415 C      CALL MNC_CW_RS_W('R','adstate',0,0,'YV',yG, myThid)
                0416 C      CALL MNC_CW_RS_W('R','adstate',0,0,'XG',xG, myThid)
                0417 C      CALL MNC_CW_RS_W('R','adstate',0,0,'YG',yG, myThid)
                0418 C      CALL MNC_CW_RS_W('R','adstate',0,0,'RC',rC, myThid)
                0419 C      CALL MNC_CW_RS_W('R','adstate',0,0,'RF',rF, myThid)
                0420 C
                0421 C#ifdef ALLOW_EXF
                0422 C      CALL MNC_CW_SET_UDIM('adexf', 0, myThid)
                0423 C      CALL MNC_CW_RS_W('R','adexf',0,0,'XC',xC, myThid)
                0424 C      CALL MNC_CW_RS_W('R','adexf',0,0,'YC',yC, myThid)
                0425 C      CALL MNC_CW_RS_W('R','adexf',0,0,'XU',xG, myThid)
                0426 C      CALL MNC_CW_RS_W('R','adexf',0,0,'YU',yC, myThid)
                0427 C      CALL MNC_CW_RS_W('R','adexf',0,0,'XV',xC, myThid)
                0428 C      CALL MNC_CW_RS_W('R','adexf',0,0,'YV',yG, myThid)
                0429 C      CALL MNC_CW_RS_W('R','adexf',0,0,'XG',xG, myThid)
                0430 C      CALL MNC_CW_RS_W('R','adexf',0,0,'YG',yG, myThid)
                0431 C      CALL MNC_CW_RS_W('R','adexf',0,0,'RC',rC, myThid)
                0432 C      CALL MNC_CW_RS_W('R','adexf',0,0,'RF',rF, myThid)
                0433 C#endif
                0434 C
                0435 C#ifdef ALLOW_SEAICE
                0436 C      CALL MNC_CW_SET_UDIM('adseaice', 0, myThid)
                0437 C      CALL MNC_CW_RS_W('R','adseaice',0,0,'XC',xC, myThid)
                0438 C      CALL MNC_CW_RS_W('R','adseaice',0,0,'YC',yC, myThid)
                0439 C      CALL MNC_CW_RS_W('R','adseaice',0,0,'XU',xG, myThid)
                0440 C      CALL MNC_CW_RS_W('R','adseaice',0,0,'YU',yC, myThid)
                0441 C      CALL MNC_CW_RS_W('R','adseaice',0,0,'XV',xC, myThid)
                0442 C      CALL MNC_CW_RS_W('R','adseaice',0,0,'YV',yG, myThid)
                0443 C      CALL MNC_CW_RS_W('R','adseaice',0,0,'XG',xG, myThid)
                0444 C      CALL MNC_CW_RS_W('R','adseaice',0,0,'YG',yG, myThid)
                0445 C      CALL MNC_CW_RS_W('R','adseaice',0,0,'RC',rC, myThid)
                0446 C      CALL MNC_CW_RS_W('R','adseaice',0,0,'RF',rF, myThid)
                0447 C#endif
e36dc880d2 Patr*0448 
6bd3b6b067 Patr*0449       ENDIF
47a1ba5f79 Jean*0450 #endif /* ALLOW_MNC and ALLOW_AUTODIFF_MONITOR */
6bd3b6b067 Patr*0451 
                0452 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0453 
                0454       RETURN
                0455       END