Back to home page

MITgcm

 
 

    


File indexing completed on 2022-01-14 06:11:04 UTC

view on githubraw file Latest commit 56d13a40 on 2022-01-13 18:04:11 UTC
23753a76a9 Dimi*0001 #include "EXF_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C     !ROUTINE: EXF_DIAGNOSTICS_INIT
                0005 C     !INTERFACE:
                0006       SUBROUTINE EXF_DIAGNOSTICS_INIT( myThid )
                0007 
                0008 C     !DESCRIPTION: \bv
                0009 C     *==========================================================*
                0010 C     | SUBROUTINE EXF_DIAGNOSTICS_INIT
                0011 C     | o Routine to initialize list of all available diagnostics
                0012 C     |   for EXF package
                0013 C     *==========================================================*
                0014 C     \ev
                0015 C     !USES:
                0016       IMPLICIT NONE
                0017 
                0018 C     === Global variables ===
                0019 #include "EEPARAMS.h"
984a30506f Jean*0020 #include "EXF_PARAM.h"
23753a76a9 Dimi*0021 
                0022 C     !INPUT/OUTPUT PARAMETERS:
                0023 C     === Routine arguments ===
                0024 C     myThid ::  my Thread Id number
                0025       INTEGER myThid
                0026 CEOP
                0027 
                0028 #ifdef ALLOW_DIAGNOSTICS
                0029 C     !LOCAL VARIABLES:
                0030 C     === Local variables ===
                0031 C     diagNum   :: diagnostics number in the (long) list of available diag.
                0032 C     diagName  :: local short name (8c) of a diagnostics
                0033 C     diagCode  :: local parser field with characteristics of the diagnostics
                0034 C              cf head of S/R DIAGNOSTICS_INIT_EARLY or DIAGNOSTICS_MAIN_INIT
                0035 C     diagUnits :: local string (16c): physical units of a diagnostic field
                0036 C     diagTitle :: local string (80c): description of field in diagnostic
                0037       INTEGER       diagNum
56d13a40ed Mart*0038 #ifdef ALLOW_AUTODIFF
a10c595eb6 Timo*0039       INTEGER       diagMate
56d13a40ed Mart*0040 #endif
23753a76a9 Dimi*0041       CHARACTER*8   diagName
                0042       CHARACTER*16  diagCode
                0043       CHARACTER*16  diagUnits
                0044       CHARACTER*(80) diagTitle
                0045 
                0046 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0047 
b1e3781773 Patr*0048       diagName  = 'EXFhs   '
                0049       diagTitle = 'Sensible heat flux into ocean, >0 increases theta'
                0050       diagUnits = 'W/m^2           '
                0051       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0052       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0053      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
b1e3781773 Patr*0054 
                0055       diagName  = 'EXFhl   '
                0056       diagTitle = 'Latent heat flux into ocean, >0 increases theta'
                0057       diagUnits = 'W/m^2           '
                0058       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0059       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0060      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
b1e3781773 Patr*0061 
                0062       diagName  = 'EXFlwnet'
                0063       diagTitle = 'Net upward longwave radiation, >0 decreases theta'
                0064       diagUnits = 'W/m^2           '
                0065       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0066       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0067      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
984a30506f Jean*0068 
b1e3781773 Patr*0069       diagName  = 'EXFswnet'
                0070       diagTitle = 'Net upward shortwave radiation, >0 decreases theta'
                0071       diagUnits = 'W/m^2           '
                0072       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0073       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0074      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
984a30506f Jean*0075 
b1e3781773 Patr*0076       diagName  = 'EXFlwdn '
                0077       diagTitle = 'Downward longwave radiation, >0 increases theta'
                0078       diagUnits = 'W/m^2           '
                0079       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0080       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0081      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
984a30506f Jean*0082 
b1e3781773 Patr*0083       diagName  = 'EXFswdn '
                0084       diagTitle = 'Downward shortwave radiation, >0 increases theta'
                0085       diagUnits = 'W/m^2           '
                0086       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0087       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0088      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
b1e3781773 Patr*0089 
                0090       diagName  = 'EXFqnet '
                0091       diagTitle = 'Net upward heat flux (turb+rad), >0 decreases theta'
                0092       diagUnits = 'W/m^2           '
                0093       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0094       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0095      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
984a30506f Jean*0096 
b1e3781773 Patr*0097 C--   surface fluxes:
                0098       diagName  = 'EXFtaux '
                0099       diagTitle = 'zonal surface wind stress, >0 increases uVel    '
                0100       diagUnits = 'N/m^2           '
984a30506f Jean*0101       IF ( stressIsOnCgrid ) THEN
                0102        diagCode = 'UU      U1      '
                0103       ELSE
                0104        diagCode = 'UM      U1      '
                0105       ENDIF
03a64b15f0 Jean*0106       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0107      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
b1e3781773 Patr*0108 
                0109       diagName  = 'EXFtauy '
                0110       diagTitle = 'meridional surface wind stress, >0 increases vVel'
                0111       diagUnits = 'N/m^2           '
984a30506f Jean*0112       IF ( stressIsOnCgrid ) THEN
                0113        diagCode = 'VV      U1      '
                0114       ELSE
                0115        diagCode = 'VM      U1      '
                0116       ENDIF
03a64b15f0 Jean*0117       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0118      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
b1e3781773 Patr*0119 
                0120       diagName  = 'EXFuwind'
555f9be4d1 Jean*0121       diagTitle = 'zonal 10-m wind speed, >0 eastward'
b1e3781773 Patr*0122       diagUnits = 'm/s             '
984a30506f Jean*0123       diagCode  = 'UM      U1      '
03a64b15f0 Jean*0124       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0125      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
b1e3781773 Patr*0126 
                0127       diagName  = 'EXFvwind'
555f9be4d1 Jean*0128       diagTitle = 'meridional 10-m wind speed, >0 northward'
b1e3781773 Patr*0129       diagUnits = 'm/s             '
984a30506f Jean*0130       diagCode  = 'VM      U1      '
03a64b15f0 Jean*0131       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0132      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
56d13a40ed Mart*0133 
                0134       diagName  = 'EXFurelw'
                0135       diagTitle = 'zonal relative 10-m wind speed, >0 eastward'
                0136       diagUnits = 'm/s             '
                0137       diagCode  = 'UM      U1      '
                0138       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0139      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0140 
                0141       diagName  = 'EXFvrelw'
                0142       diagTitle = 'meridional relative 10-m wind speed, >0 northward'
                0143       diagUnits = 'm/s             '
                0144       diagCode  = 'VM      U1      '
                0145       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0146      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
23753a76a9 Dimi*0147 
3752238fd8 Patr*0148       diagName  = 'EXFwspee'
                0149       diagTitle = '10-m wind speed modulus ( >= 0 )'
                0150       diagUnits = 'm/s             '
                0151       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0152       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0153      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
3752238fd8 Patr*0154 
b1e3781773 Patr*0155       diagName  = 'EXFatemp'
                0156       diagTitle = 'surface (2-m) air temperature'
                0157       diagUnits = 'degK            '
                0158       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0159       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0160      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
23753a76a9 Dimi*0161 
b1e3781773 Patr*0162       diagName  = 'EXFaqh  '
                0163       diagTitle = 'surface (2-m) specific humidity'
                0164       diagUnits = 'kg/kg           '
                0165       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0166       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0167      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
23753a76a9 Dimi*0168 
b1e3781773 Patr*0169       diagName  = 'EXFevap '
                0170       diagTitle = 'evaporation, > 0 increases salinity'
                0171       diagUnits = 'm/s             '
                0172       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0173       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0174      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
23753a76a9 Dimi*0175 
b1e3781773 Patr*0176       diagName  = 'EXFpreci'
8939da7417 Mart*0177       diagTitle = 'precipitation, > 0 decreases salinity'
b1e3781773 Patr*0178       diagUnits = 'm/s             '
                0179       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0180       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0181      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
b1e3781773 Patr*0182 
3752238fd8 Patr*0183       diagName  = 'EXFsnow '
                0184       diagTitle = 'snow precipitation, > 0 decreases salinity'
                0185       diagUnits = 'm/s             '
                0186       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0187       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0188      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
3752238fd8 Patr*0189 
b1e3781773 Patr*0190       diagName  = 'EXFempmr'
                0191       diagTitle = 'net upward freshwater flux, > 0 increases salinity'
                0192       diagUnits = 'm/s             '
                0193       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0194       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0195      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
b1e3781773 Patr*0196 
                0197       diagName  = 'EXFpress'
                0198       diagTitle = 'atmospheric pressure field'
                0199       diagUnits = 'N/m^2           '
                0200       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0201       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0202      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
b1e3781773 Patr*0203 
7c8c625e4b Mart*0204       diagName  = 'EXFroff '
                0205       diagTitle = 'river runoff, > 0 decreases salinity'
                0206       diagUnits = 'm/s             '
                0207       diagCode  = 'SM      U1      '
03a64b15f0 Jean*0208       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0209      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
b1e3781773 Patr*0210 
e603dbf008 Dimi*0211       diagName  = 'EXFroft '
                0212       diagTitle = 'river runoff temperature'
                0213       diagUnits = 'deg C           '
                0214       diagCode  = 'SM      U1      '
                0215       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0216      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0217 
a66aad0124 Gael*0218       diagName  = 'EXFsalfx'
                0219       diagTitle = 'upward salt flux, > 0 decreases salinity'
ba0b047096 Mart*0220       diagUnits = 'g/m^2/s         '
a66aad0124 Gael*0221       diagCode  = 'SM      U1      '
                0222       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0223      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0224 
a10c595eb6 Timo*0225 #ifdef ALLOW_AUTODIFF
                0226 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0227 C     Adjoint state variables
                0228       diagName  = 'ADJustrs'
                0229       diagTitle = 'dJ/dustress: Senstivity to zonal surface wind stress'
                0230       diagUnits = 'dJ/(N/m^2)      '
                0231       IF ( stressIsOnCgrid ) THEN
                0232        diagCode = 'UU A    U1      '
                0233       ELSE
                0234        diagCode = 'UM A    U1      '
                0235       ENDIF
                0236       diagMate  = diagNum + 2
                0237       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0238      I   diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0239 
                0240       diagName  = 'ADJvstrs'
                0241       diagTitle = 'dJ/dvstrs: Sensitivity to merid. surface wind stress'
                0242       diagUnits = 'dJ/(N/m^2)      '
                0243       IF ( stressIsOnCgrid ) THEN
                0244        diagCode = 'VV A    U1      '
                0245       ELSE
                0246        diagCode = 'VM A    U1      '
                0247       ENDIF
                0248       diagMate  = diagNum
                0249       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0250      I   diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
                0251 
                0252       diagName  = 'ADJhflux'
                0253       diagTitle = 'dJ/dhflux: Sensitivity to upward heat flux'
                0254       diagUnits = 'dJ/(W/m^2)      '
                0255       diagCode  = 'SM A    U1      '
                0256       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0257      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0258 
                0259       diagName  = 'ADJsflux'
                0260       diagTitle = 'dJ/dhflux: Sensitivity to upward fresh water flux'
                0261       diagUnits = 'dJ/(m/s)        '
                0262       diagCode  = 'SM A    U1      '
                0263       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0264      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0265 
                0266       diagName  = 'ADJatemp'
                0267       diagTitle = 'dJ/datemp: Sensitivity to atmos. surface temperature'
                0268       diagUnits = 'dJ/K            '
                0269       diagCode  = 'SM A    U1      '
                0270       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0271      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0272 
                0273       diagName  = 'ADJpreci'
                0274       diagTitle = 'dJ/daqh: Sensitivity to precipitation'
                0275       diagUnits = 'dJ/(m/s)        '
                0276       diagCode  = 'SM A    U1      '
                0277       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0278      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0279 
                0280       diagName  = 'ADJroff '
                0281       diagTitle = 'dJ/daqh: Sensitivity to river runoff'
                0282       diagUnits = 'dJ/(m/s)        '
                0283       diagCode  = 'SM A    U1      '
                0284       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0285      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0286 
                0287       diagName  = 'ADJswdn '
                0288       diagTitle = 'dJ/dswdown: Sensitivity to downward SW radiation'
                0289       diagUnits = 'dJ/(W/m^2)      '
                0290       diagCode  = 'SM A    U1      '
                0291       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0292      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0293 
                0294       diagName  = 'ADJlwdn '
                0295       diagTitle = 'dJ/dlwdown: Sensitivity to downward LW radiation'
                0296       diagUnits = 'dJ/(W/m^2)      '
                0297       diagCode  = 'SM A    U1      '
                0298       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0299      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0300 
                0301       diagName  = 'ADJuwind'
                0302       diagTitle = 'dJ/duwind: Senstivity to zonal 10-m wind speed'
                0303       diagUnits = 'dJ/d(m/s)       '
                0304       diagCode  = 'UM A    U1      '
                0305       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0306      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0307 
                0308       diagName  = 'ADJvwind'
                0309       diagTitle = 'dJ/dvwind: Senstivity to meridional 10-m wind speed'
                0310       diagUnits = 'dJ/d(m/s)       '
                0311       diagCode  = 'VM A    U1      '
                0312       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0313      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0314 
                0315       diagName  = 'ADJclsst'
                0316       diagTitle = 'dJ/dclimsst: Sensitivity to restoring SST'
                0317       diagUnits = 'dJ/K            '
                0318       diagCode  = 'SM A    U1      '
                0319       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0320      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0321 
                0322       diagName  = 'ADJclsss'
                0323       diagTitle = 'dJ/dclimsss: Sensitivity to restoring SSS'
                0324       diagUnits = 'dJ/(g/kg)       '
                0325       diagCode  = 'SM A    U1      '
                0326       CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0327      I     diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0328 
                0329 #endif /* ALLOW_AUTODIFF */
23753a76a9 Dimi*0330 #endif /* ALLOW_DIAGNOSTICS */
                0331 
                0332       RETURN
                0333       END