Back to home page

MITgcm

 
 

    


File indexing completed on 2024-10-18 05:11:22 UTC

view on githubraw file Latest commit 5bb179dd on 2024-10-17 18:00:27 UTC
7e4f7741f6 Patr*0001 #include "SEAICE_OPTIONS.h"
                0002 
8e7e785cad Jean*0003 C--  File seaice_diagnostics_init.F: Routines initialize SEAICE diagnostics
                0004 C--   Contents
                0005 C--   o SEAICE_DIAGNOSTICS_INIT
                0006 C--   o SEAICE_DIAG_SUFX
                0007 
                0008 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7e4f7741f6 Patr*0009 CBOP
                0010 C     !ROUTINE: SEAICE_DIAGNOSTICS_INIT
                0011 C     !INTERFACE:
                0012       SUBROUTINE SEAICE_DIAGNOSTICS_INIT( myThid )
                0013 
                0014 C     !DESCRIPTION: \bv
                0015 C     *==========================================================*
                0016 C     | SUBROUTINE SEAICE_DIAGNOSTICS_INIT
                0017 C     | o Routine to initialize list of all available diagnostics
                0018 C     |   for SEAICE package
                0019 C     *==========================================================*
                0020 C     \ev
                0021 C     !USES:
                0022       IMPLICIT NONE
                0023 
                0024 C     === Global variables ===
                0025 #include "EEPARAMS.h"
ccaa3c61f4 Patr*0026 #include "SIZE.h"
                0027 #include "SEAICE_SIZE.h"
37de51ebf5 Mart*0028 #include "SEAICE_PARAMS.h"
ccaa3c61f4 Patr*0029 #include "SEAICE_TRACER.h"
7e4f7741f6 Patr*0030 
                0031 C     !INPUT/OUTPUT PARAMETERS:
                0032 C     === Routine arguments ===
                0033 C     myThid ::  my Thread Id number
                0034       INTEGER myThid
                0035 CEOP
                0036 
                0037 #ifdef ALLOW_DIAGNOSTICS
                0038 C     !LOCAL VARIABLES:
                0039 C     === Local variables ===
                0040 C     diagNum   :: diagnostics number in the (long) list of available diag.
8e7e785cad Jean*0041 C     diagMate  :: diag. mate number in the (long) list of available diag.
7e4f7741f6 Patr*0042 C     diagName  :: local short name (8c) of a diagnostics
                0043 C     diagCode  :: local parser field with characteristics of the diagnostics
86b84a92fc Patr*0044 C                   see head of S/R DIAGNOSTICS_INIT_EARLY or DIAGNOSTICS_MAIN_INIT
                0045 C                   for a list of options
7e4f7741f6 Patr*0046 C     diagUnits :: local string (16c): physical units of a diagnostic field
                0047 C     diagTitle :: local string (80c): description of field in diagnostic
                0048       INTEGER       diagNum
8e7e785cad Jean*0049       INTEGER       diagMate
7e4f7741f6 Patr*0050       CHARACTER*8   diagName
                0051       CHARACTER*16  diagCode
                0052       CHARACTER*16  diagUnits
                0053       CHARACTER*(80) diagTitle
                0054 
3721cfe5e4 Gael*0055 #ifdef ALLOW_SITRACER
                0056       INTEGER       iTr, ilnb, numMateTr, numMateTrPreTh
                0057       CHARACTER*8   locUnitTr
                0058       CHARACTER*30  locNameTr
                0059 #endif
                0060       INTEGER       numArea,numAreaPreTh,numHeff,numHeffPreTh
9f7235a46d Jean*0061       CHARACTER*9   flxUnits
37de51ebf5 Mart*0062       CHARACTER*15  locName
                0063       CHARACTER*4 SEAICE_DIAG_SUFX, diagSufx
238ffd2f6f Patr*0064       EXTERNAL    SEAICE_DIAG_SUFX
3721cfe5e4 Gael*0065 C     Functions ::
                0066       INTEGER     ILNBLNK
                0067       EXTERNAL    ILNBLNK
37de51ebf5 Mart*0068 
7e4f7741f6 Patr*0069 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0070 
4213eb5769 Gael*0071 C=============== state variables ============
                0072 
7e4f7741f6 Patr*0073       diagName  = 'SIarea  '
                0074       diagTitle = 'SEAICE fractional ice-covered area [0 to 1]'
                0075       diagUnits = 'm^2/m^2         '
6c537b062f Patr*0076       diagCode  = 'SM      M1      '
8e7e785cad Jean*0077       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0078      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
055494711b Mart*0079       numArea  = diagNum
6e2b105d4f Jean*0080 
3721cfe5e4 Gael*0081       diagName  = 'SIareaPR'
4213eb5769 Gael*0082       diagTitle = 'SIarea preceeding ridging process'
                0083       diagUnits = 'm^2/m^2         '
                0084       diagCode  = 'SM      M1      '
                0085       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0086      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0087 
3721cfe5e4 Gael*0088       diagName  = 'SIareaPT'
4213eb5769 Gael*0089       diagTitle = 'SIarea preceeding thermodynamic growth/melt'
                0090       diagUnits = 'm^2/m^2         '
                0091       diagCode  = 'SM      M1      '
                0092       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0093      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
3721cfe5e4 Gael*0094       numAreaPreTh  = diagNum
4213eb5769 Gael*0095 
7e4f7741f6 Patr*0096       diagName  = 'SIheff  '
                0097       diagTitle = 'SEAICE effective ice thickness'
                0098       diagUnits = 'm               '
6c537b062f Patr*0099       diagCode  = 'SM      M1      '
8e7e785cad Jean*0100       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0101      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
3721cfe5e4 Gael*0102       numHeff  = diagNum
7e4f7741f6 Patr*0103 
3721cfe5e4 Gael*0104       diagName  = 'SIheffPT'
4213eb5769 Gael*0105       diagTitle = 'SIheff preceeeding thermodynamic growth/melt'
                0106       diagUnits = 'm               '
                0107       diagCode  = 'SM      M1      '
8e7e785cad Jean*0108       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
4213eb5769 Gael*0109      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
3721cfe5e4 Gael*0110       numHeffPreTh  = diagNum
6e2b105d4f Jean*0111 
4213eb5769 Gael*0112       diagName  = 'SIhsnow '
                0113       diagTitle = 'SEAICE effective snow thickness'
                0114       diagUnits = 'm               '
                0115       diagCode  = 'SM      M1      '
8e7e785cad Jean*0116       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
4213eb5769 Gael*0117      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
7e4f7741f6 Patr*0118 
3721cfe5e4 Gael*0119       diagName  = 'SIhsnoPT'
4213eb5769 Gael*0120       diagTitle = 'SIhsnow preceeeding thermodynamic growth/melt'
7e4f7741f6 Patr*0121       diagUnits = 'm               '
                0122       diagCode  = 'SM      M1      '
8e7e785cad Jean*0123       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0124      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
7e4f7741f6 Patr*0125 
fdfa8e151f Dimi*0126       diagName  = 'SIhsalt '
                0127       diagTitle = 'SEAICE effective salinity'
046dda3ecc Dimi*0128       diagUnits = 'g/m^2           '
fdfa8e151f Dimi*0129       diagCode  = 'SM      M1      '
8e7e785cad Jean*0130       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0131      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
fdfa8e151f Dimi*0132 
5fe78992ba Mart*0133       diagName  = 'SIenpa  '
                0134       diagTitle = 'SEAICE power input by surface wind stresses'
                0135       diagUnits = 'W/m^2           '
                0136       diagCode  = 'SM      M1      '
                0137       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0138      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0139 
                0140       diagName  = 'SIenpw  '
                0141       diagTitle = 'SEAICE work done by ocean drag'
                0142       diagUnits = 'W/m^2           '
                0143       diagCode  = 'SM      M1      '
                0144       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0145      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0146 
                0147       diagName  = 'SIenph  '
                0148       diagTitle = 'SEAICE power due to change in inertia'
                0149       diagUnits = 'W/m^2           '
                0150       diagCode  = 'SM      M1      '
                0151       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0152      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0153 
                0154       diagName  = 'SIenpg  '
                0155       diagTitle = 'SEAICE work generated by gravity'
                0156       diagUnits = 'W/m^2           '
                0157       diagCode  = 'SM      M1      '
                0158       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0159      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0160 
                0161       diagName  = 'SIenpi  '
                0162       diagTitle = 'SEAICE work done by internal stress'
                0163       diagUnits = 'W/m^2           '
                0164       diagCode  = 'SM      M1      '
                0165       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0166      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0167 
                0168       diagName  = 'SIenpot '
                0169       diagTitle = 'SEAICE work done to change potential energy'
                0170       diagUnits = 'W/m^2           '
                0171       diagCode  = 'SM      M1      '
                0172       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0173      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0174 
                0175       diagName  = 'SIpRfric'
                0176       diagTitle = 'SEAICE dissipation in ridging by internal stresses'
                0177       diagUnits = 'W/m^2           '
                0178       diagCode  = 'SM      M1      '
                0179       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0180      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0181 
                0182       diagName  = 'SIpSfric'
                0183       diagTitle = 'SEAICE dissipation in shearing by internal stresses'
                0184       diagUnits = 'W/m^2           '
                0185       diagCode  = 'SM      M1      '
                0186       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0187      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0188 
3721cfe5e4 Gael*0189 #ifdef ALLOW_SITRACER
be02c52974 Gael*0190       DO iTr = 1, SItrNumInUse
3721cfe5e4 Gael*0191 
                0192 C--    Set default name & tracer Units:
                0193        WRITE(locNameTr,'(A,I4.4,A)') 'sea ice tracer no. ',iTr
                0194        if (SItrMate(iTr).EQ.'HEFF') then
                0195          locUnitTr  = '(kg/kg) '
                0196          numMateTr  = numHeff
                0197          numMateTrPreTh = numHeffPreTh
                0198        else
                0199          locUnitTr  = '(kg/m^2)'
                0200          numMateTr  = numArea
                0201          numMateTrPreTh = numAreaPreTh
                0202        endif
                0203 C-     use name & units from data.seaice :
                0204        ilnb = ILNBLNK(SItrUnit(iTr))
                0205        IF ( ilnb.GE.1 ) THEN
                0206          ilnb = LEN(locUnitTr)
                0207          locUnitTr = SItrUnit(iTr)(1:ilnb)
                0208        ENDIF
                0209        ilnb = ILNBLNK(SItrNameLong(iTr))
                0210        IF ( ilnb.GE.1 ) THEN
                0211          ilnb = MIN(LEN(locNameTr),ilnb)
                0212          WRITE(locNameTr,'(A)') SItrNameLong(iTr)(1:ilnb)
                0213        ELSE
                0214          ilnb = ILNBLNK(SItrName(iTr))
                0215          IF ( ilnb.GE.1 ) THEN
                0216            ilnb = MIN(LEN(locNameTr),ilnb)
                0217            WRITE(locNameTr,'(2A)') SItrName(iTr)(1:ilnb),' tracer'
                0218          ENDIF
                0219        ENDIF
                0220        ilnb = MAX(ILNBLNK(locNameTr),1)
                0221 
                0222        WRITE(diagName,'(A4,I2.2,A2)') 'SItr',iTr,'  '
1d220297dd Jean*0223        WRITE(diagTitle,'(4A)') locNameTr(1:ilnb),
3721cfe5e4 Gael*0224      &       ' (associated with ',SItrMate(iTr),')'
1d220297dd Jean*0225        diagUnits = locUnitTr//'        '
3721cfe5e4 Gael*0226        diagCode  = 'SM  C   M1      '
                0227        CALL DIAGNOSTICS_ADDTOLIST( diagNum, diagName,
                0228      I      diagCode, diagUnits, diagTitle, numMateTr, myThid )
                0229 
                0230        WRITE(diagName,'(A4,I2.2,A2)') 'SItr',iTr,'PT'
                0231        WRITE(diagTitle,'(A4,I2.2,2A)') 'SItr',iTr,
                0232      &     ' preceeeding thermodynamic growth/melt'
1d220297dd Jean*0233        diagUnits = locUnitTr//'        '
3721cfe5e4 Gael*0234        diagCode  = 'SM  C   M1      '
                0235        CALL DIAGNOSTICS_ADDTOLIST( diagNum, diagName,
                0236      I      diagCode, diagUnits, diagTitle, numMateTrPreTh, myThid )
                0237 
                0238       ENDDO
ccaa3c61f4 Patr*0239 #endif
f681b7f5d4 Dimi*0240 
055494711b Mart*0241       diagName  = 'SItices '
                0242       diagTitle = 'Surface Temperature over Sea-Ice (area weighted)'
6ebd198b54 Mart*0243       diagUnits = 'K               '
055494711b Mart*0244       diagCode  = 'SM  C   M1      '
                0245       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
8e7e785cad Jean*0246      I     diagName, diagCode, diagUnits, diagTitle, numArea, myThid )
055494711b Mart*0247 
4213eb5769 Gael*0248       diagName  = 'SIuice  '
                0249       diagTitle = 'SEAICE zonal ice velocity, >0 from West to East'
                0250       diagUnits = 'm/s             '
                0251 #ifdef SEAICE_CGRID
                0252       diagCode  = 'UU      M1      '
                0253 #else
                0254       diagCode  = 'UZ      M1      '
                0255 #endif
                0256       diagMate  = diagNum + 2
                0257       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0258      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0259 
                0260       diagName  = 'SIvice  '
                0261       diagTitle = 'SEAICE merid. ice velocity, >0 from South to North'
                0262       diagUnits = 'm/s             '
                0263 #ifdef SEAICE_CGRID
                0264       diagCode  = 'VV      M1      '
                0265 #else
                0266       diagCode  = 'VZ      M1      '
                0267 #endif
                0268       diagMate  = diagNum
                0269       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0270      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0271 
                0272 C=============== momentum, heat and fresh water forcing ============
                0273 
                0274 C     pkg/diagnostics SIfu and oceTAUX, dumpfreq FU, and tavefreq FUtave
                0275 C     are identical but they differ from pkg/diagnostics EXFtaux, which
                0276 C     is stress before impact of ice.  Also when using exf bulk
                0277 C     formulae, EXFtaux is defined on tracer rather than uvel points.
34b25f19cc Jean*0278 c     diagName  = 'SIfu    '
                0279 c     diagTitle = 'SEAICE zonal surface wind stress, >0 increases uVel '
                0280 c     diagUnits = 'N/m^2           '
                0281 c     diagCode  = 'UU      U1      '
                0282 c     diagMate  = diagNum + 2
                0283 c     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0284 c    I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0285 
                0286 C     pkg/diagnostics SIfv and oceTAUY, dumpfreq FV, and tavefreq FVtave
                0287 C     are identical but they differ from pkg/diagnostics EXFtauy, which
                0288 C     is stress before impact of ice.  Also when using exf bulk
                0289 C     formulae, EXFtauy is defined on tracer rather than vvel points.
                0290 c     diagName  = 'SIfv    '
                0291 c     diagTitle = 'SEAICE merid. surface wind stress, >0 increases vVel'
                0292 c     diagUnits = 'N/m^2           '
                0293 c     diagCode  = 'VV      U1      '
                0294 c     diagMate  = diagNum
                0295 c     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0296 c    I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0297 
                0298       diagName  = 'SItaux  '
                0299       diagTitle = 'SEAICE zonal surface wind stress, >0 increases uIce'
4213eb5769 Gael*0300       diagUnits = 'N/m^2           '
                0301       diagCode  = 'UU      U1      '
                0302       diagMate  = diagNum + 2
                0303       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0304      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0305 
34b25f19cc Jean*0306       diagName  = 'SItauy  '
828b68940d Jean*0307       diagTitle = 'SEAICE merid surface wind stress, >0 increases vIce'
4213eb5769 Gael*0308       diagUnits = 'N/m^2           '
                0309       diagCode  = 'VV      U1      '
                0310       diagMate  = diagNum
                0311       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0312      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0313 
34b25f19cc Jean*0314       diagName  = 'SIatmTx '
                0315       diagTitle = 'Zonal surface wind stress over Ocean+SeaIce'
                0316       diagUnits = 'N/m^2           '
                0317       diagCode  = 'UU      U1      '
4213eb5769 Gael*0318       diagMate  = diagNum + 2
                0319       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0320      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0321 
34b25f19cc Jean*0322       diagName  = 'SIatmTy '
828b68940d Jean*0323       diagTitle = 'Merid surface wind stress over Ocean+SeaIce'
34b25f19cc Jean*0324       diagUnits = 'N/m^2           '
                0325       diagCode  = 'VV      U1      '
4213eb5769 Gael*0326       diagMate  = diagNum
                0327       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0328      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0329 
34b25f19cc Jean*0330 c     diagName  = 'SIuwind '
                0331 c     diagTitle = 'SEAICE zonal 10-m wind speed, >0 increases uVel'
                0332 c     diagUnits = 'm/s             '
                0333 c     diagCode  = 'UM      U1      '
                0334 c     diagMate  = diagNum + 2
                0335 c     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0336 c    I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0337 
                0338 c     diagName  = 'SIvwind '
                0339 c     diagTitle = 'SEAICE meridional 10-m wind speed, >0 increases uVel'
                0340 c     diagUnits = 'm/s             '
                0341 c     diagCode  = 'VM      U1      '
                0342 c     diagMate  = diagNum
                0343 c     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0344 c    I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0345 
5bb179ddc2 Mart*0346 # ifdef SEAICE_ALLOW_SIDEDRAG
                0347       diagName  = 'SIlatDgU'
                0348       diagTitle = 'SEAICE lateral coastal drag on U momentum'
                0349       diagUnits = 'N/m^2           '
                0350       diagCode  = 'UU      M1      '
                0351       diagMate  = diagNum + 2
                0352       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0353      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0354 
                0355       diagName  = 'SIlatDgV'
                0356       diagTitle = 'SEAICE lateral coastal drag on V momentum'
                0357       diagUnits = 'N/m^2           '
                0358       diagCode  = 'VV      M1      '
                0359       diagMate  = diagNum
                0360       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0361      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0362 #endif
                0363 
14ff2fe9e4 Dimi*0364 C     SIqnet, Qnet, and QNETtave are identical.
                0365 C     With #undef NONLIN_FRSURF SIqnet is identical to -(TFLUX-TRELAX).
                0366 C     Except over land and under sea ice, SIqnet is also identical to
                0367 C     EXFlwnet+EXFswnet-EXFhl-EXFhs.
                0368       diagName  = 'SIqnet  '
                0369       diagTitle = 'Ocean surface heatflux, turb+rad, >0 decreases theta'
                0370       diagUnits = 'W/m^2           '
                0371       diagCode  = 'SM      U1      '
8e7e785cad Jean*0372       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0373      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
14ff2fe9e4 Dimi*0374 
                0375 C     SIqsw, Qsw, and QSWtave are identical.
                0376 C     Except under sea ice, SIqsw is also identical to EXFswnet.
                0377       diagName  = 'SIqsw   '
                0378       diagTitle = 'Ocean surface shortwave radiat., >0 decreases theta'
                0379       diagUnits = 'W/m^2           '
                0380       diagCode  = 'SM      U1      '
8e7e785cad Jean*0381       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0382      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
14ff2fe9e4 Dimi*0383 
                0384       diagName  = 'SIatmQnt'
                0385       diagTitle = 'Net atmospheric heat flux, >0 decreases theta'
                0386       diagUnits = 'W/m^2           '
                0387       diagCode  = 'SM      U1      '
8e7e785cad Jean*0388       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0389      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
14ff2fe9e4 Dimi*0390 
381adf77df Gael*0391       diagName  = 'SItflux '
                0392       diagTitle = 'Same as TFLUX but incl seaice (>0 incr T decr H)'
                0393       diagUnits = 'W/m^2           '
                0394       diagCode  = 'SM      U1      '
                0395       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0396      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
a4e168e012 antn*0397 #ifdef SEAICE_USE_GROWTH_ADX
                0398       diagName  = 'SIeprflx'
                0399       diagTitle = 'heat flux adjustment associated with EmPmR'
                0400       diagUnits = 'W/m^2           '
                0401       diagCode  = 'SM      U1      '
                0402       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0403      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0404 #else
381adf77df Gael*0405 #ifndef SEAICE_DISABLE_HEATCONSFIX
                0406       diagName  = 'SIaaflux'
                0407       diagTitle = 'conservative ocn<->seaice adv. heat flux adjust.'
                0408       diagUnits = 'W/m^2           '
                0409       diagCode  = 'SM      U1      '
                0410       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0411      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0412 #endif
a4e168e012 antn*0413 #endif
381adf77df Gael*0414 
e770811cc5 Gael*0415       diagName  = 'SIhl    '
                0416       diagTitle = 'Latent heat flux into ocean, >0 increases theta'
                0417       diagUnits = 'W/m^2           '
                0418       diagCode  = 'SM      U1      '
                0419       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0420      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0421 
14ff2fe9e4 Dimi*0422       diagName  = 'SIqneto '
4213eb5769 Gael*0423       diagTitle = 'Open Ocean Part of SIqnet, turb+rad, >0 decr theta'
14ff2fe9e4 Dimi*0424       diagUnits = 'W/m^2           '
                0425       diagCode  = 'SM      U1      '
8e7e785cad Jean*0426       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0427      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
14ff2fe9e4 Dimi*0428 
                0429       diagName  = 'SIqneti '
4213eb5769 Gael*0430       diagTitle = 'Ice Covered Part of SIqnet, turb+rad, >0 decr theta'
14ff2fe9e4 Dimi*0431       diagUnits = 'W/m^2           '
                0432       diagCode  = 'SM      U1      '
8e7e785cad Jean*0433       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0434      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
14ff2fe9e4 Dimi*0435 
                0436 C     pkg/diagnostics SIempmr, dumpfreq EmPmR, and tavefreq EmPmRtave
                0437 C     are identical but they differ from pkg/diagnostics EXFempmr, which
                0438 C     is EmPmR before impact of ice.
                0439       diagName  = 'SIempmr '
                0440       diagTitle = 'Ocean surface freshwater flux, > 0 increases salt'
                0441       diagUnits = 'kg/m^2/s        '
                0442       diagCode  = 'SM      U1      '
8e7e785cad Jean*0443       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0444      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
14ff2fe9e4 Dimi*0445 
6e2b105d4f Jean*0446       diagName  = 'SIatmFW '
3fbc8b49ea Dimi*0447       diagTitle = 'Net freshwater flux from atmosphere & land (+=down)'
b1d49686c6 Mart*0448       diagUnits = 'kg/m^2/s        '
14ff2fe9e4 Dimi*0449       diagCode  = 'SM      U1      '
8e7e785cad Jean*0450       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0451      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
14ff2fe9e4 Dimi*0452 
2af3cfcff3 Mart*0453       diagName  = 'SIsnPrcp'
                0454       diagTitle = 'Snow precip. (+=dw) over Sea-Ice (area weighted)'
                0455       diagUnits = 'kg/m^2/s        '
                0456       diagCode  = 'SM      U1      '
                0457       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0458      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0459 
4213eb5769 Gael*0460       diagName  = 'SIfwSubl'
e770811cc5 Gael*0461       diagTitle ='Potential sublimation freshwater flux, >0 decr. ice'
                0462       diagUnits = 'kg/m^2/s        '
                0463       diagCode  = 'SM      U1      '
                0464       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0465      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0466 
                0467       diagName  = 'SIacSubl'
                0468       diagTitle = 'Actual sublimation freshwater flux, >0 decr. ice'
4213eb5769 Gael*0469       diagUnits = 'kg/m^2/s        '
                0470       diagCode  = 'SM      U1      '
8e7e785cad Jean*0471       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0472      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
7e4f7741f6 Patr*0473 
52ff14d141 Ian *0474       diagName  = 'SIrsSubl'
                0475       diagTitle = 'Residual subl. freshwater flux, >0 taken from ocn'
                0476       diagUnits = 'kg/m^2/s        '
                0477       diagCode  = 'SM      U1      '
                0478       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0479      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0480 
                0481       diagName  = 'SIactLHF'
                0482       diagTitle = 'Actual latent heat flux over ice'
                0483       diagUnits = 'W/m^2           '
                0484       diagCode  = 'SM      U1      '
                0485       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0486      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0487 
                0488       diagName  = 'SImaxLHF'
                0489       diagTitle = 'Maximum latent heat flux over ice'
                0490       diagUnits = 'W/m^2           '
                0491       diagCode  = 'SM      U1      '
                0492       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0493      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0494 
3721cfe5e4 Gael*0495 #ifdef ALLOW_SITRACER
be02c52974 Gael*0496       DO iTr = 1, SItrNumInUse
3721cfe5e4 Gael*0497        IF (SItrMate(iTr).EQ.'HEFF') then
                0498 C--    Set default name & tracer Units:
                0499        WRITE(diagUnits,'(A)') 'kg/m^2/s'
                0500 C--     use units from data.seaice :
                0501        ilnb = ILNBLNK(SItrUnit(iTr))
                0502        IF ( ilnb.GE.1 ) THEN
                0503          WRITE(diagUnits,'(2A)') SItrUnit(iTr)(1:ilnb),'.kg/m^2/s'
                0504        ENDIF
1d220297dd Jean*0505 C--
3721cfe5e4 Gael*0506        WRITE(diagName,'(A4,I2.2,A2)') 'SItr',iTr,'Fx'
                0507        WRITE(diagTitle,'(A4,I2.2,A)') 'SItr',iTr,
                0508      I      ' flux out of ice pack (that may enter ocean)'
                0509        diagCode  = 'SM      M1      '
                0510        CALL DIAGNOSTICS_ADDTOLIST( diagNum, diagName,
                0511      I      diagCode, diagUnits, diagTitle, 0, myThid )
                0512 
                0513       ENDIF
                0514       ENDDO
                0515 #endif
                0516 
4213eb5769 Gael*0517 C============== ice growth/melt ==============
                0518 
                0519       diagName  = 'SIaQbOCN'
82e7b1b526 Gael*0520       diagTitle = 'Potential HEFF rate of change by ocean ice flux'
                0521       diagUnits = 'm/s             '
14ff2fe9e4 Dimi*0522       diagCode  = 'SM      M1      '
8e7e785cad Jean*0523       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0524      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
14ff2fe9e4 Dimi*0525 
4213eb5769 Gael*0526       diagName  = 'SIaQbATC'
82e7b1b526 Gael*0527       diagTitle = 'Potential HEFF rate of change by atm flux over ice'
                0528       diagUnits = 'm/s             '
4213eb5769 Gael*0529       diagCode  = 'SM      M1      '
8e7e785cad Jean*0530       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
4213eb5769 Gael*0531      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
7e4f7741f6 Patr*0532 
4213eb5769 Gael*0533       diagName  = 'SIaQbATO'
82e7b1b526 Gael*0534       diagTitle = 'Potential HEFF rate of change by open ocn atm flux'
                0535       diagUnits = 'm/s             '
4213eb5769 Gael*0536       diagCode  = 'SM      M1      '
8e7e785cad Jean*0537       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
4213eb5769 Gael*0538      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
7e4f7741f6 Patr*0539 
4213eb5769 Gael*0540       diagName  = 'SIdHbOCN'
82e7b1b526 Gael*0541       diagTitle = 'HEFF rate of change by ocean ice flux'
                0542       diagUnits = 'm/s             '
4213eb5769 Gael*0543       diagCode  = 'SM      M1      '
8e7e785cad Jean*0544       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
4213eb5769 Gael*0545      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
7e4f7741f6 Patr*0546 
4213eb5769 Gael*0547       diagName  = 'SIdSbATC'
82e7b1b526 Gael*0548       diagTitle = 'HSNOW rate of change by atm flux over sea ice'
                0549       diagUnits = 'm/s             '
124076cb69 Mart*0550       diagCode  = 'SM      M1      '
8e7e785cad Jean*0551       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
4213eb5769 Gael*0552      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
124076cb69 Mart*0553 
4213eb5769 Gael*0554       diagName  = 'SIdSbOCN'
82e7b1b526 Gael*0555       diagTitle = 'HSNOW rate of change by ocean ice flux'
                0556       diagUnits = 'm/s             '
124076cb69 Mart*0557       diagCode  = 'SM      M1      '
8e7e785cad Jean*0558       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
4213eb5769 Gael*0559      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
124076cb69 Mart*0560 
4213eb5769 Gael*0561       diagName  = 'SIdHbATC'
82e7b1b526 Gael*0562       diagTitle = 'HEFF rate of change by atm flux over sea ice'
                0563       diagUnits = 'm/s             '
124076cb69 Mart*0564       diagCode  = 'SM      M1      '
8e7e785cad Jean*0565       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0566      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
124076cb69 Mart*0567 
4213eb5769 Gael*0568       diagName  = 'SIdHbATO'
82e7b1b526 Gael*0569       diagTitle = 'HEFF rate of change by open ocn atm flux'
                0570       diagUnits = 'm/s             '
2d37c25bc5 Mart*0571       diagCode  = 'SM      M1      '
8e7e785cad Jean*0572       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0573      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
2d37c25bc5 Mart*0574 
4213eb5769 Gael*0575       diagName  = 'SIdHbFLO'
82e7b1b526 Gael*0576       diagTitle = 'HEFF rate of change by flooding snow'
                0577       diagUnits = 'm/s             '
2d37c25bc5 Mart*0578       diagCode  = 'SM      M1      '
8e7e785cad Jean*0579       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0580      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
f61838dfc1 Torg*0581 #ifdef SEAICE_GREASE
                0582 
                0583       diagName  = 'SIgrsLT '
                0584       diagTitle = 'actual grease ice layer thickness'
                0585       diagUnits = 'm               '
                0586       diagCode  = 'SM      M1      '
                0587       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0588      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0589 #endif
2d37c25bc5 Mart*0590 
4213eb5769 Gael*0591 C=============== expansion/contraction ============
37de51ebf5 Mart*0592 
4213eb5769 Gael*0593       diagName  = 'SIdAbATO'
82e7b1b526 Gael*0594       diagTitle = 'Potential AREA rate of change by open ocn atm flux'
                0595       diagUnits = 'm^2/m^2/s       '
37de51ebf5 Mart*0596       diagCode  = 'SM      M1      '
8e7e785cad Jean*0597       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0598      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
37de51ebf5 Mart*0599 
4213eb5769 Gael*0600       diagName  = 'SIdAbATC'
82e7b1b526 Gael*0601       diagTitle = 'Potential AREA rate of change by atm flux over ice'
                0602       diagUnits = 'm^2/m^2/s       '
37de51ebf5 Mart*0603       diagCode  = 'SM      M1      '
8e7e785cad Jean*0604       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0605      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
37de51ebf5 Mart*0606 
4213eb5769 Gael*0607       diagName  = 'SIdAbOCN'
82e7b1b526 Gael*0608       diagTitle = 'Potential AREA rate of change by ocean ice flux'
                0609       diagUnits = 'm^2/m^2/s       '
4213eb5769 Gael*0610       diagCode  = 'SM      M1      '
8e7e785cad Jean*0611       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
4213eb5769 Gael*0612      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
37de51ebf5 Mart*0613 
4213eb5769 Gael*0614       diagName  = 'SIdA'
82e7b1b526 Gael*0615       diagTitle = 'AREA rate of change (net)'
                0616       diagUnits = 'm^2/m^2/s       '
4213eb5769 Gael*0617       diagCode  = 'SM      M1      '
8e7e785cad Jean*0618       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
4213eb5769 Gael*0619      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0620 
                0621 C============== advection/diffusion ============
37de51ebf5 Mart*0622 
                0623 C     effective thickness
9f7235a46d Jean*0624       flxUnits = '.m^2/s   '
37de51ebf5 Mart*0625       locName = 'eff ice thickn '
                0626       WRITE(diagUnits,'(2A)') 'm',flxUnits
                0627       diagSufx = SEAICE_DIAG_SUFX( GAD_HEFF, myThid )
8e7e785cad Jean*0628 
37de51ebf5 Mart*0629 C--   advective flux
                0630       diagName  = 'ADVx'//diagSufx
                0631       diagTitle = 'Zonal      Advective Flux of '//locName
8e7e785cad Jean*0632       diagCode  = 'UU      M1      '
                0633       diagMate  = diagNum + 2
                0634       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0635      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0636 
37de51ebf5 Mart*0637       diagName  = 'ADVy'//diagSufx
                0638       diagTitle = 'Meridional Advective Flux of '//locName
8e7e785cad Jean*0639       diagCode  = 'VV      M1      '
                0640       diagMate  = diagNum
                0641       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0642      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0643 
37de51ebf5 Mart*0644 C--   Diffusive flux:
                0645       diagName  = 'DFxE'//diagSufx
                0646       diagTitle = 'Zonal      Diffusive Flux of '//locName
8e7e785cad Jean*0647       diagCode  = 'UU      M1      '
                0648       diagMate  = diagNum + 2
                0649       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0650      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0651 
37de51ebf5 Mart*0652       diagName  = 'DFyE'//diagSufx
                0653       diagTitle = 'Meridional Diffusive Flux of '//locName
8e7e785cad Jean*0654       diagCode  = 'VV      M1      '
                0655       diagMate  = diagNum
                0656       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0657      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0658 
37de51ebf5 Mart*0659 C     fractional ice covered area (ice concentration)
                0660       locName = 'fract area     '
                0661       WRITE(diagUnits,'(2A)') 'm^2/m^2',flxUnits
                0662       diagSufx = SEAICE_DIAG_SUFX( GAD_AREA, myThid )
8e7e785cad Jean*0663 
37de51ebf5 Mart*0664 C--   advective flux
                0665       diagName  = 'ADVx'//diagSufx
                0666       diagTitle = 'Zonal      Advective Flux of '//locName
8e7e785cad Jean*0667       diagCode  = 'UU      M1      '
                0668       diagMate  = diagNum + 2
                0669       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0670      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0671 
37de51ebf5 Mart*0672       diagName  = 'ADVy'//diagSufx
                0673       diagTitle = 'Meridional Advective Flux of '//locName
8e7e785cad Jean*0674       diagCode  = 'VV      M1      '
                0675       diagMate  = diagNum
                0676       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0677      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0678 
37de51ebf5 Mart*0679 C--   Diffusive flux:
                0680       diagName  = 'DFxE'//diagSufx
                0681       diagTitle = 'Zonal      Diffusive Flux of '//locName
8e7e785cad Jean*0682       diagCode  = 'UU      M1      '
                0683       diagMate  = diagNum + 2
                0684       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0685      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0686 
37de51ebf5 Mart*0687       diagName  = 'DFyE'//diagSufx
                0688       diagTitle = 'Meridional Diffusive Flux of '//locName
8e7e785cad Jean*0689       diagCode  = 'VV      M1      '
                0690       diagMate  = diagNum
                0691       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0692      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0693 
37de51ebf5 Mart*0694 C     effective snow thickness
                0695       locName = 'eff snow thickn'
                0696       WRITE(diagUnits,'(2A)') 'm',flxUnits
                0697       diagSufx = SEAICE_DIAG_SUFX( GAD_SNOW, myThid )
8e7e785cad Jean*0698 
37de51ebf5 Mart*0699 C--   advective flux
                0700       diagName  = 'ADVx'//diagSufx
                0701       diagTitle = 'Zonal      Advective Flux of '//locName
8e7e785cad Jean*0702       diagCode  = 'UU      M1      '
                0703       diagMate  = diagNum + 2
                0704       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0705      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0706 
37de51ebf5 Mart*0707       diagName  = 'ADVy'//diagSufx
                0708       diagTitle = 'Meridional Advective Flux of '//locName
8e7e785cad Jean*0709       diagCode  = 'VV      M1      '
                0710       diagMate  = diagNum
                0711       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0712      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0713 
37de51ebf5 Mart*0714 C--   Diffusive flux:
                0715       diagName  = 'DFxE'//diagSufx
                0716       diagTitle = 'Zonal      Diffusive Flux of '//locName
8e7e785cad Jean*0717       diagCode  = 'UU      M1      '
                0718       diagMate  = diagNum + 2
                0719       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0720      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0721 
37de51ebf5 Mart*0722       diagName  = 'DFyE'//diagSufx
                0723       diagTitle = 'Meridional Diffusive Flux of '//locName
8e7e785cad Jean*0724       diagCode  = 'VV      M1      '
                0725       diagMate  = diagNum
                0726       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0727      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0728 
37de51ebf5 Mart*0729 C     sea ice salinity
                0730       locName = 'seaice salinity'
ba0b047096 Mart*0731       WRITE(diagUnits,'(2A)') 'g/kg',flxUnits
37de51ebf5 Mart*0732       diagSufx = SEAICE_DIAG_SUFX( GAD_SALT, myThid )
8e7e785cad Jean*0733 
37de51ebf5 Mart*0734 C--   advective flux
                0735       diagName  = 'ADVx'//diagSufx
                0736       diagTitle = 'Zonal      Advective Flux of '//locName
8e7e785cad Jean*0737       diagCode  = 'UU      M1      '
                0738       diagMate  = diagNum + 2
                0739       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0740      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0741 
37de51ebf5 Mart*0742       diagName  = 'ADVy'//diagSufx
                0743       diagTitle = 'Meridional Advective Flux of '//locName
8e7e785cad Jean*0744       diagCode  = 'VV      M1      '
                0745       diagMate  = diagNum
                0746       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0747      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0748 
37de51ebf5 Mart*0749 C--   Diffusive flux:
                0750       diagName  = 'DFxE'//diagSufx
                0751       diagTitle = 'Zonal      Diffusive Flux of '//locName
8e7e785cad Jean*0752       diagCode  = 'UU      M1      '
                0753       diagMate  = diagNum + 2
                0754       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0755      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0756 
37de51ebf5 Mart*0757       diagName  = 'DFyE'//diagSufx
                0758       diagTitle = 'Meridional Diffusive Flux of '//locName
8e7e785cad Jean*0759       diagCode  = 'VV      M1      '
                0760       diagMate  = diagNum
                0761       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0762      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0763 
988306cd1a Jean*0764 C--   effective thickness transport (centered in space, 1 time-step lag)
                0765       diagName  = 'SIuheff '
                0766       diagTitle = 'Zonal      Transport of eff ice thickn (centered)'
                0767       diagUnits = 'm^2/s           '
                0768       diagCode  = 'UU      M1      '
                0769       diagMate  = diagNum + 2
                0770       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0771      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0772 
                0773       diagName  = 'SIvheff '
                0774       diagTitle = 'Meridional Transport of eff ice thickn (centered)'
                0775       diagUnits = 'm^2/s           '
                0776       diagCode  = 'VV      M1      '
                0777       diagMate  = diagNum
                0778       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0779      I     diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0780 
4213eb5769 Gael*0781 C=============== dynamics ============
2afe30fba0 Dimi*0782 
1d220297dd Jean*0783       diagName  = 'SIpress '
4213eb5769 Gael*0784       diagTitle = 'SEAICE strength (with upper and lower limit)'
b8665dacca Mart*0785       diagUnits = 'N/m             '
2afe30fba0 Dimi*0786       diagCode  = 'SM      M1      '
                0787       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
4213eb5769 Gael*0788      I    diagName, diagCode, diagUnits, diagTitle, 0, myThid )
edfdf5fa1d Jean*0789 
1d220297dd Jean*0790       diagName  = 'SIzeta  '
4213eb5769 Gael*0791       diagTitle = 'SEAICE nonlinear bulk viscosity'
b8665dacca Mart*0792       diagUnits = 'kg/s            '
2afe30fba0 Dimi*0793       diagCode  = 'SM      M1      '
                0794       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
4213eb5769 Gael*0795      I    diagName, diagCode, diagUnits, diagTitle, 0, myThid )
edfdf5fa1d Jean*0796 
1d220297dd Jean*0797       diagName  = 'SIeta   '
4213eb5769 Gael*0798       diagTitle = 'SEAICE nonlinear shear viscosity'
b8665dacca Mart*0799       diagUnits = 'kg/s            '
2afe30fba0 Dimi*0800       diagCode  = 'SM      M1      '
                0801       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0802      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0803 
45e43a459d Mart*0804       diagName  = 'SIsig1  '
4213eb5769 Gael*0805       diagTitle = 'SEAICE normalized principle stress, component one'
                0806       diagUnits = 'no units        '
2afe30fba0 Dimi*0807       diagCode  = 'SM      M1      '
                0808       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0809      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0810 
45e43a459d Mart*0811       diagName  = 'SIsig2  '
4213eb5769 Gael*0812       diagTitle = 'SEAICE normalized principle stress, component two'
                0813       diagUnits = 'no units        '
2afe30fba0 Dimi*0814       diagCode  = 'SM      M1      '
                0815       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0816      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0817 
411fdb8ebc Mart*0818       diagName  = 'SIshear '
b8665dacca Mart*0819       diagTitle = 'SEAICE shear deformation rate'
                0820       diagUnits = '1/s             '
411fdb8ebc Mart*0821       diagCode  = 'SM      M1      '
                0822       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0823      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0824 
48a7676020 Mart*0825       diagName  = 'SIdelta '
b8665dacca Mart*0826       diagTitle = 'SEAICE Delta deformation rate'
                0827       diagUnits = '1/s             '
48a7676020 Mart*0828       diagCode  = 'SM      M1      '
                0829       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0830      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0831 
e25705eca1 Mart*0832       diagName  = 'SItensil'
                0833       diagTitle = 'SEAICE maximal tensile strength'
b8665dacca Mart*0834       diagUnits = 'N/m             '
e25705eca1 Mart*0835       diagCode  = 'SM      M1      '
                0836       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0837      I    diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0838 
143d9ce879 Dami*0839 C=============== numerics ============
                0840 
                0841       diagName  = 'SIlsrRe '
                0842       diagTitle = 'SEAICE LSR residual norm'
                0843       diagUnits = 'N/m             '
                0844       diagCode  = 'SM      M1      '
                0845       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0846      I    diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0847 
86b84a92fc Patr*0848 #ifdef SEAICE_ITD
                0849 C=============== ice thickness categories ============
                0850 
                0851       diagName  = 'SIheffN '
                0852       diagTitle = 'SEAICE effective ice thickness per category'
                0853       diagUnits = 'm               '
                0854       diagCode  = 'SM      MX      '
                0855       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0856      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0857       CALL DIAGNOSTICS_SETKLEV( diagName, nITD, myThid )
                0858 
                0859       diagName  = 'SIareaN '
1d220297dd Jean*0860       diagTitle =
86b84a92fc Patr*0861      I 'SEAICE fractional ice-covered area per category [0 to 1]'
                0862       diagUnits = 'm^2/m^2         '
                0863       diagCode  = 'SM      MX      '
                0864       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0865      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0866       CALL DIAGNOSTICS_SETKLEV( diagName, nITD, myThid )
4f7814a019 Mart*0867 
                0868       diagName  = 'SIhsnowN'
                0869       diagTitle = 'SEAICE effective snow thickness per category'
                0870       diagUnits = 'm               '
                0871       diagCode  = 'SM      MX      '
                0872       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0873      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0874       CALL DIAGNOSTICS_SETKLEV( diagName, nITD, myThid )
86b84a92fc Patr*0875 #endif
2afe30fba0 Dimi*0876 
a10c595eb6 Timo*0877 #ifdef ALLOW_AUTODIFF
                0878 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0879 C     Adjoint state variables
                0880       diagName  = 'ADJarea '
                0881       diagTitle = 'dJ/darea: Sensitivity to seaice fractional ice-cover'
                0882       diagUnits = 'dJ/(m^2/m^2)    '
                0883       diagCode  = 'SM A    M1      '
                0884       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0885      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0886 
                0887       diagName  = 'ADJheff '
                0888       diagTitle = 'dJ/dheff: Sensitvity to seaice ice thickness'
                0889       diagUnits = 'dJ/dm           '
                0890       diagCode  = 'SM A    M1      '
                0891       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0892      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0893 
                0894       diagName  = 'ADJhsnow'
                0895       diagTitle = 'dJ/dhsnow: Sensitivity to seaice snow thickness'
                0896       diagUnits = 'dJ/dm           '
                0897       diagCode  = 'SM A    M1      '
                0898       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0899      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0900 
                0901       diagName  = 'ADJuice '
                0902       diagTitle = 'dJ/duice: sensitivity to zonal ice velocity'
                0903       diagUnits = 'dJ/(m/s)        '
                0904 #ifdef SEAICE_CGRID
                0905       diagCode  = 'UU A    M1      '
                0906 #else
                0907       diagCode  = 'UZ A    M1      '
                0908 #endif
                0909       diagMate  = diagNum + 2
                0910       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0911      I   diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0912 
                0913       diagName  = 'ADJvice '
                0914       diagTitle = 'dJ/dvice: sensitivity to meridional ice velocity'
                0915       diagUnits = 'dJ/(m/s)        '
                0916 #ifdef SEAICE_CGRID
                0917       diagCode  = 'VV A    M1      '
                0918 #else
                0919       diagCode  = 'VZ A    M1      '
                0920 #endif
                0921       diagMate  = diagNum
                0922       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0923      I   diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0924 #endif /* ALLOW_AUTODIFF */
7e4f7741f6 Patr*0925 #endif /* ALLOW_DIAGNOSTICS */
                0926 
                0927       RETURN
                0928       END
37de51ebf5 Mart*0929 
8e7e785cad Jean*0930 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
37de51ebf5 Mart*0931 CBOP 0
                0932 C     !ROUTINE: SEAICE_DIAG_SUFX
                0933 
                0934 C     !INTERFACE:
                0935       CHARACTER*4 FUNCTION SEAICE_DIAG_SUFX( tracerId, myThid )
                0936 
                0937 C     !DESCRIPTION:
                0938 C     *==========================================================*
                0939 C     | FUNCTION SEAICE_DIAG_SUFX
                0940 C     | o Return diagnostic suffix (4 character long) for the
                0941 C     |   "tracerId" tracer (used to build diagnostic names).
                0942 C     *==========================================================*
                0943 
                0944 C     !USES:
                0945       IMPLICIT NONE
                0946 #include "EEPARAMS.h"
86b84a92fc Patr*0947 #include "SEAICE_SIZE.h"
37de51ebf5 Mart*0948 #include "SEAICE_PARAMS.h"
                0949 
                0950 C     !INPUT PARAMETERS:
                0951 C     tracerId   ::  tracer identifier
                0952 C     myThid     ::  my thread Id number
                0953       INTEGER      tracerId
                0954       INTEGER      myThid
                0955 CEOP
                0956 
                0957 C     !LOCAL VARIABLES:
                0958 
                0959 C--   Set diagnostic suffix (4 character long) for the "tracerId" tracer
                0960       IF ( tracerId.EQ.GAD_HEFF ) THEN
                0961         SEAICE_DIAG_SUFX = 'HEFF'
                0962       ELSEIF( tracerId.EQ.GAD_AREA ) THEN
                0963         SEAICE_DIAG_SUFX = 'AREA'
                0964       ELSEIF( tracerId.EQ.GAD_SNOW ) THEN
8e7e785cad Jean*0965         SEAICE_DIAG_SUFX = 'SNOW'
37de51ebf5 Mart*0966       ELSEIF( tracerId.EQ.GAD_SALT ) THEN
8e7e785cad Jean*0967         SEAICE_DIAG_SUFX = 'SSLT'
37de51ebf5 Mart*0968       ELSE
                0969         SEAICE_DIAG_SUFX = 'aaaa'
                0970       ENDIF
                0971 
                0972       RETURN
                0973       END