Back to home page

MITgcm

 
 

    


File indexing completed on 2021-06-09 05:11:57 UTC

view on githubraw file Latest commit 2b4c90c1 on 2021-06-08 16:01:04 UTC
7e819019d5 Dimi*0001 #include "KPP_OPTIONS.h"
1f89baba18 Patr*0002 #ifdef ALLOW_SALT_PLUME
                0003 #include "SALT_PLUME_OPTIONS.h"
                0004 #endif
7e819019d5 Dimi*0005 
                0006 CBOP
                0007 C     !ROUTINE: KPP_DIAGNOSTICS_INIT
                0008 C     !INTERFACE:
                0009       SUBROUTINE KPP_DIAGNOSTICS_INIT( myThid )
                0010 
                0011 C     !DESCRIPTION: \bv
                0012 C     *==========================================================*
                0013 C     | SUBROUTINE KPP_DIAGNOSTICS_INIT
                0014 C     | o Routine to initialize list of all available diagnostics
                0015 C     |   for KPP package
                0016 C     *==========================================================*
                0017 C     \ev
                0018 C     !USES:
                0019       IMPLICIT NONE
                0020 
                0021 C     === Global variables ===
                0022 #include "EEPARAMS.h"
3b6725a42f Jean*0023 #include "SIZE.h"
                0024 #ifdef ALLOW_GENERIC_ADVDIFF
                0025 # include "GAD.h"
                0026 #endif
7e819019d5 Dimi*0027 
                0028 C     !INPUT/OUTPUT PARAMETERS:
                0029 C     === Routine arguments ===
                0030 C     myThid ::  my Thread Id number
                0031       INTEGER myThid
                0032 CEOP
                0033 
                0034 #ifdef ALLOW_DIAGNOSTICS
                0035 C     !LOCAL VARIABLES:
                0036 C     === Local variables ===
                0037 C     diagNum   :: diagnostics number in the (long) list of available diag.
3b6725a42f Jean*0038 C     diagMate  :: diag. mate number in the (long) list of available diag.
7e819019d5 Dimi*0039 C     diagName  :: local short name (8c) of a diagnostics
                0040 C     diagCode  :: local parser field with characteristics of the diagnostics
                0041 C              cf head of S/R DIAGNOSTICS_INIT_EARLY or DIAGNOSTICS_MAIN_INIT
                0042 C     diagUnits :: local string (16c): physical units of a diagnostic field
                0043 C     diagTitle :: local string (80c): description of field in diagnostic
                0044       INTEGER       diagNum
3b6725a42f Jean*0045 c     INTEGER       diagMate
                0046       CHARACTER*4   diagSufx
7e819019d5 Dimi*0047       CHARACTER*8   diagName
                0048       CHARACTER*16  diagCode
                0049       CHARACTER*16  diagUnits
                0050       CHARACTER*(80) diagTitle
3b6725a42f Jean*0051 #ifdef ALLOW_GENERIC_ADVDIFF
                0052       CHARACTER*4 GAD_DIAG_SUFX
                0053       EXTERNAL    GAD_DIAG_SUFX
                0054 #endif
                0055 
7e819019d5 Dimi*0056 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0057 
                0058         diagName  = 'KPPviscA'
                0059         diagTitle = 'KPP vertical eddy viscosity coefficient'
                0060         diagUnits = 'm^2/s           '
8e7e785cad Jean*0061         diagCode  = 'SM P    LR      '
                0062         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0063      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
7e819019d5 Dimi*0064 
                0065         diagName  = 'KPPdiffS'
                0066         diagTitle = 'Vertical diffusion coefficient for salt & tracers'
                0067         diagUnits = 'm^2/s           '
8e7e785cad Jean*0068         diagCode  = 'SM P    LR      '
                0069         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0070      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
7e819019d5 Dimi*0071 
                0072         diagName  = 'KPPdiffT'
                0073         diagTitle = 'Vertical diffusion coefficient for heat'
                0074         diagUnits = 'm^2/s           '
8e7e785cad Jean*0075         diagCode  = 'SM P    LR      '
                0076         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0077      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
7e819019d5 Dimi*0078 
141e734c73 Jean*0079         diagName  = 'KPPghatK'
                0080         diagTitle = 'ratio of KPP non-local (salt) flux'
                0081      &            //' relative to surface-flux'
                0082         diagUnits = '0-1             '
7e819019d5 Dimi*0083         diagCode  = 'SM P    LR      '
8e7e785cad Jean*0084         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0085      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
7e819019d5 Dimi*0086 
                0087         diagName  = 'KPPhbl  '
b8912f4f10 Dimi*0088         diagTitle = 'KPP boundary layer depth, bulk Ri criterion'
7e819019d5 Dimi*0089         diagUnits = 'm               '
                0090         diagCode  = 'SM P     1      '
8e7e785cad Jean*0091         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0092      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
7e819019d5 Dimi*0093 
                0094         diagName  = 'KPPfrac '
                0095         diagTitle = 'Short-wave flux fraction penetrating mixing layer'
                0096         diagUnits = '                '
                0097         diagCode  = 'SM P     1      '
8e7e785cad Jean*0098         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0099      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
7e819019d5 Dimi*0100 
30c6f5b1cd An T*0101         diagName  = 'KPPdbsfc'
                0102         diagTitle = 'Buoyancy difference with respect to surface'
                0103         diagUnits = 'm/s^2           '
                0104         diagCode  = 'SM P    UR      '
8e7e785cad Jean*0105         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0106      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
30c6f5b1cd An T*0107 
                0108         diagName  = 'KPPbfsfc'
                0109         diagTitle = 'Bo+radiation absorbed to d=hbf*hbl + plume'
                0110         diagUnits = 'm^2/s^3         '
                0111         diagCode  = 'SM P    UR      '
8e7e785cad Jean*0112         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0113      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
30c6f5b1cd An T*0114 
b5ecce171d Davi*0115         diagName  = 'KPPRi   '
                0116         diagTitle = 'Bulk Richardson number'
                0117         diagUnits = 'non-dimensional '
                0118         diagCode  = 'SM P    UR      '
8e7e785cad Jean*0119         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0120      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
b5ecce171d Davi*0121 
30c6f5b1cd An T*0122         diagName  = 'KPPbo   '
                0123         diagTitle = 'Surface turbulent buoyancy forcing'
                0124         diagUnits = 'm^2/s^3         '
                0125         diagCode  = 'SM P     1      '
8e7e785cad Jean*0126         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0127      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
30c6f5b1cd An T*0128 
                0129         diagName  = 'KPPbosol'
                0130         diagTitle = 'surface radiative buoyancy forcing'
                0131         diagUnits = 'm^2/s^3         '
                0132         diagCode  = 'SM P     1      '
8e7e785cad Jean*0133         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0134      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
30c6f5b1cd An T*0135 
                0136         diagName  = 'KPPdbloc'
                0137         diagTitle = 'Local delta buoyancy across interfaces'
                0138         diagUnits = 'm/s^2           '
                0139         diagCode  = 'SM P    UR      '
8e7e785cad Jean*0140         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0141      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
30c6f5b1cd An T*0142 
2b4c90c108 Mart*0143         diagName  = 'KPPshsq '
                0144         diagTitle = 'Local shear (V(k-1)-V(k))^2'
                0145         diagUnits = 'm^2/s^2         '
                0146         diagCode  = 'SM P    UR      '
                0147         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0148      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0149 
                0150         diagName  = 'KPPdVsq '
                0151         diagTitle = 'Shear relative to surface (V(ksrf)-V(k))**2'
                0152         diagUnits = 'm^2/s^2         '
                0153         diagCode  = 'SM P    UR      '
                0154         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0155      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0156 
e750a5e49e Mart*0157 #ifndef EXCLUDE_KPP_DOUBLEDIFF
                0158         diagName  = 'KPPnuddt'
                0159         diagTitle = 'Vertical double diffusion coefficient for heat'
                0160         diagUnits = 'm^2/s           '
                0161         diagCode  = 'SM P    UR      '
8e7e785cad Jean*0162         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0163      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
e750a5e49e Mart*0164 
                0165         diagName  = 'KPPnudds'
                0166         diagTitle = 'Vertical double diffusion coefficient for salt'
                0167         diagUnits = 'm^2/s           '
                0168         diagCode  = 'SM P    UR      '
8e7e785cad Jean*0169         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0170      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
e750a5e49e Mart*0171 #endif /* ndef EXCLUDE_KPP_DOUBLEDIFF */
                0172 
3b6725a42f Jean*0173         diagSufx  = 'aaaa'
                0174 #ifdef ALLOW_GENERIC_ADVDIFF
                0175         diagSufx  = GAD_DIAG_SUFX( GAD_TEMPERATURE, myThid )
                0176 #endif
                0177         diagName  = 'KPPg'//diagSufx
                0178         diagTitle = 'KPP non-local Flux of Pot.Temperature'
                0179         diagUnits = 'degC.m^3/s      '
                0180         diagCode  = 'WM      LR      '
                0181         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0182      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0183 
                0184 #ifdef ALLOW_GENERIC_ADVDIFF
                0185         diagSufx  = GAD_DIAG_SUFX( GAD_SALINITY, myThid )
                0186 #endif
                0187         diagName  = 'KPPg'//diagSufx
                0188         diagTitle = 'KPP non-local Flux of Salinity'
ba0b047096 Mart*0189         diagUnits = 'g/kg.m^3/s      '
3b6725a42f Jean*0190         diagCode  = 'WM      LR      '
                0191         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0192      I          diagName, diagCode, diagUnits, diagTitle, 0, myThid )
                0193 
30c6f5b1cd An T*0194 #ifdef ALLOW_SALT_PLUME
                0195         diagName  = 'KPPpfrac'
                0196         diagTitle = 'Salt plume flux fraction penetrating mixing layer'
                0197         diagUnits = '                '
                0198         diagCode  = 'SM P     1      '
8e7e785cad Jean*0199         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0200      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
30c6f5b1cd An T*0201 
                0202         diagName  = 'KPPboplm'
                0203         diagTitle = 'Surface haline buoyancy forcing'
                0204         diagUnits = 'm^2/s^3         '
1f89baba18 Patr*0205 #ifdef SALT_PLUME_VOLUME
                0206         diagCode  = 'SM P    UR      '
                0207 #else /* SALT_PLUME_VOLUME */
30c6f5b1cd An T*0208         diagCode  = 'SM P     1      '
1f89baba18 Patr*0209 #endif /* SALT_PLUME_VOLUME */
8e7e785cad Jean*0210         CALL DIAGNOSTICS_ADDTOLIST( diagNum,
                0211      I       diagName, diagCode, diagUnits, diagTitle, 0, myThid )
30c6f5b1cd An T*0212 #endif /* ALLOW_SALT_PLUME */
                0213 
7e819019d5 Dimi*0214 #endif /* ALLOW_DIAGNOSTICS */
                0215 
                0216       RETURN
                0217       END