Back to home page

darwin3

 
 

    


File indexing completed on 2025-11-15 13:24:05 UTC

view on githubraw file Latest commit b7411f1a on 2025-11-06 19:05:26 UTC
8ce97507dd Jean*0001 C     *==========================================================*
                0002 C     | KPP_PARAMS.h
                0003 C     | o Basic parameter header for KPP vertical mixing
                0004 C     |   parameterization.  These parameters are initialized by
                0005 C     |   and/or read in from data.kpp file.
                0006 C     *==========================================================*
2fa42a6013 Alis*0007 
                0008 C Parameters used in kpp routine arguments (needed for compilation
8ce97507dd Jean*0009 C  of kpp routines even if ALLOW_KPP is not defined)
                0010 C     mdiff                 :: number of diffusivities for local arrays
                0011 C     Nrm1, Nrp1, Nrp2      :: number of vertical levels
                0012 C     imt                   :: array dimension for local arrays
956c0a5824 Patr*0013 
                0014       integer    mdiff, Nrm1, Nrp1, Nrp2
4fa51dc730 Dimi*0015       integer    imt
956c0a5824 Patr*0016       parameter( mdiff = 3    )
                0017       parameter( Nrm1  = Nr-1 )
                0018       parameter( Nrp1  = Nr+1 )
                0019       parameter( Nrp2  = Nr+2 )
                0020       parameter( imt=(sNx+2*OLx)*(sNy+2*OLy) )
2fa42a6013 Alis*0021 
                0022 #ifdef ALLOW_KPP
                0023 
                0024 C Time invariant parameters initialized by subroutine kmixinit
8ce97507dd Jean*0025 C     nzmax (nx,ny)  :: Maximum number of wet levels in each column
                0026 C     pMask          :: Mask relating to Pressure/Tracer point grid.
2fa42a6013 Alis*0027 C                       0. if P point is on land.
                0028 C                       1. if P point is in water.
11b9c75340 Jean*0029 C                 Note: use now maskC since pMask is identical to maskC
8ce97507dd Jean*0030 C     zgrid (0:Nr+1) :: vertical levels of tracers (<=0)                (m)
                0031 C     hwide (0:Nr+1) :: layer thicknesses          (>=0)                (m)
                0032 C     kpp_freq       :: Re-computation frequency for KPP parameters     (s)
                0033 C     kpp_dumpFreq   :: KPP dump frequency.                             (s)
2fa42a6013 Alis*0034 
956c0a5824 Patr*0035       INTEGER nzmax ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy,     nSx, nSy )
fe66051ebd Dimi*0036 c     _RL pMask     ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, Nr, nSx, nSy )
                0037       _RL zgrid     ( 0:Nr+1 )
                0038       _RL hwide     ( 0:Nr+1 )
2fa42a6013 Alis*0039       _RL kpp_freq
a046cc1ad0 Alis*0040       _RL kpp_dumpFreq
2fa42a6013 Alis*0041 
956c0a5824 Patr*0042       COMMON /kpp_i/  nzmax
2fa42a6013 Alis*0043 
11b9c75340 Jean*0044       COMMON /kpp_r1/ zgrid, hwide
2fa42a6013 Alis*0045 
b7411f1a84 Jean*0046       COMMON /kpp_r2/ kpp_freq, kpp_dumpFreq
2fa42a6013 Alis*0047 
                0048 C-----------------------------------------------------------------------
                0049 C
                0050 C     KPP flags and min/max permitted values for mixing parameters
8ce97507dd Jean*0051 C
                0052 C     KPPwriteState    :: if true, write KPP state to file
                0053 C     minKPPhbl        :: KPPhbl minimum value               (m)
                0054 C     KPP_ghatUseTotalDiffus ::
                0055 C                       if T : Compute the non-local term using
                0056 C                            the total vertical diffusivity ;
                0057 C                       if F (=default): use KPP vertical diffusivity
08300bd1e7 Jean*0058 C     Note: prior to checkpoint55h_post, was using the total Kz
8ce97507dd Jean*0059 C     KPPuseDoubleDiff :: if TRUE, include double diffusive
e750a5e49e Mart*0060 C                         contributions
8ce97507dd Jean*0061 C     LimitHblStable   :: if TRUE (the default), limits the depth of the
35936beffd Davi*0062 C                         hbl under stable conditions.
2fa42a6013 Alis*0063 C
                0064 C-----------------------------------------------------------------------
                0065 
8ce97507dd Jean*0066       LOGICAL KPPwriteState, KPP_ghatUseTotalDiffus
e750a5e49e Mart*0067       LOGICAL KPPuseDoubleDiff
35936beffd Davi*0068       LOGICAL LimitHblStable
00c7090dc0 Mart*0069       LOGICAL KPPuseSWfrac3D
2fa42a6013 Alis*0070       COMMON /KPP_PARM_L/
8ce97507dd Jean*0071      &        KPPwriteState, KPP_ghatUseTotalDiffus,
00c7090dc0 Mart*0072      &        KPPuseDoubleDiff, LimitHblStable, KPPuseSWfrac3D
2fa42a6013 Alis*0073 
fe66051ebd Dimi*0074       _RL                 minKPPhbl
                0075       COMMON /KPP_PARM_R/ minKPPhbl
2fa42a6013 Alis*0076 
8ce97507dd Jean*0077 C======================  file "kmixcom.h" =======================
                0078 C-----------------------------------------------------------------------
                0079 C     Define various parameters and common blocks for KPP vertical-
                0080 C     mixing scheme; used in "kppmix.F" subroutines.
                0081 C     Constants are set in subroutine KPP_READPARMS.
                0082 C-----------------------------------------------------------------------
                0083 C
                0084 C-----------------------------------------------------------------------
                0085 C     parameters for several subroutines
                0086 C
                0087 C     epsln   = 1.0e-20
                0088 C     phepsi  = 1.0e-10
                0089 C     epsilon = nondimensional extent of the surface layer = 0.1
                0090 C     vonk    = von Karmans constant                       = 0.4
                0091 C     dB_dz   = maximum dB/dz in mixed layer hMix          = 5.2e-5 s^-2
                0092 C     conc1,conam,concm,conc2,zetam,conas,concs,conc3,zetas
                0093 C             = scalar coefficients
                0094 C-----------------------------------------------------------------------
2fa42a6013 Alis*0095 
fe66051ebd Dimi*0096       _RL              epsln,phepsi,epsilon,vonk,dB_dz,
8ce97507dd Jean*0097      &                 conc1,
                0098      &                 conam,concm,conc2,zetam,
                0099      &                 conas,concs,conc3,zetas
2fa42a6013 Alis*0100 
                0101       common /kmixcom/ epsln,phepsi,epsilon,vonk,dB_dz,
8ce97507dd Jean*0102      &                 conc1,
                0103      &                 conam,concm,conc2,zetam,
                0104      &                 conas,concs,conc3,zetas
                0105 
                0106 C-----------------------------------------------------------------------
                0107 C     parameters for subroutine "bldepth"
                0108 C
                0109 C     to compute depth of boundary layer:
                0110 C
                0111 C     Ricr    = critical bulk Richardson Number            = 0.3
                0112 C     cekman  = coefficient for ekman depth                = 0.7
                0113 C     cmonob  = coefficient for Monin-Obukhov depth        = 1.0
                0114 C     concv   = ratio of interior buoyancy frequency to
                0115 C               buoyancy frequency at entrainment depth    = 1.8
                0116 C     hbf     = fraction of bounadry layer depth to
                0117 C               which absorbed solar radiation
                0118 C               contributes to surface buoyancy forcing    = 1.0
                0119 C     Vtc     = non-dimensional coefficient for velocity
                0120 C               scale of turbulant velocity shear
                0121 C               (=function of concv,concs,epsilon,vonk,Ricr)
                0122 C-----------------------------------------------------------------------
2fa42a6013 Alis*0123 
fe66051ebd Dimi*0124       _RL                   Ricr,cekman,cmonob,concv,Vtc
956c0a5824 Patr*0125       _RL                   hbf
2fa42a6013 Alis*0126 
956c0a5824 Patr*0127       common /kpp_bldepth1/ Ricr,cekman,cmonob,concv,Vtc
                0128       common /kpp_bldepth2/ hbf
2fa42a6013 Alis*0129 
8ce97507dd Jean*0130 C-----------------------------------------------------------------------
                0131 C     parameters and common arrays for subroutines "kmixinit"
                0132 C     and "wscale"
                0133 C
                0134 C     to compute turbulent velocity scales:
                0135 C
                0136 C     nni     = number of values for zehat in the look up table
                0137 C     nnj     = number of values for ustar in the look up table
                0138 C
                0139 C     wmt     = lookup table for wm, the turbulent velocity scale
                0140 C               for momentum
                0141 C     wst     = lookup table for ws, the turbulent velocity scale
                0142 C               for scalars
                0143 C     deltaz  = delta zehat in table
                0144 C     deltau  = delta ustar in table
                0145 C     zmin    = minimum limit for zehat in table (m3/s3)
                0146 C     zmax    = maximum limit for zehat in table
                0147 C     umin    = minimum limit for ustar in table (m/s)
                0148 C     umax    = maximum limit for ustar in table
                0149 C-----------------------------------------------------------------------
2fa42a6013 Alis*0150 
                0151       integer    nni      , nnj
                0152       parameter (nni = 890, nnj = 480)
                0153 
fe66051ebd Dimi*0154       _RL              wmt(0:nni+1,0:nnj+1), wst(0:nni+1,0:nnj+1)
                0155       _RL              deltaz,deltau,zmin,zmax,umin,umax
8ce97507dd Jean*0156       common /kmixcws/ wmt, wst,
                0157      &                 deltaz,deltau,zmin,zmax,umin,umax
                0158 
                0159 C-----------------------------------------------------------------------
                0160 C     parameters for subroutine "ri_iwmix"
                0161 C
                0162 C     to compute vertical mixing coefficients below boundary layer:
                0163 C
                0164 C     num_v_smooth_Ri = number of times Ri is vertically smoothed
                0165 C     Riinfty = local Richardson Number limit for shear instability = 0.7
                0166 C     BVSQcon = Brunt-Vaisala squared                               (1/s^2)
                0167 C     difm0   = viscosity max due to shear instability              (m^2/s)
                0168 C     difs0   = tracer diffusivity ..                               (m^2/s)
                0169 C     dift0   = heat diffusivity ..                                 (m^2/s)
                0170 C     difmcon = viscosity due to convective instability             (m^2/s)
                0171 C     difscon = tracer diffusivity ..                               (m^2/s)
                0172 C     diftcon = heat diffusivity ..                                 (m^2/s)
                0173 C-----------------------------------------------------------------------
                0174 
                0175       INTEGER            num_v_smooth_Ri
                0176       COMMON /kmixcri_i/ num_v_smooth_Ri
2fa42a6013 Alis*0177 
fe66051ebd Dimi*0178       _RL                Riinfty, BVSQcon
                0179       _RL                difm0  , difs0  , dift0
                0180       _RL                difmcon, difscon, diftcon
8ce97507dd Jean*0181       COMMON /kmixcri_r/ Riinfty, BVSQcon,
                0182      &                   difm0, difs0, dift0,
                0183      &                   difmcon, difscon, diftcon
                0184 
                0185 C-----------------------------------------------------------------------
                0186 C     parameters for subroutine "ddmix"
                0187 C
                0188 C     to compute additional diffusivity due to double diffusion:
                0189 C
                0190 C     Rrho0   = limit for double diffusive density ratio
                0191 C     dsfmax  = maximum diffusivity in case of salt fingering (m2/s)
                0192 C-----------------------------------------------------------------------
                0193 
                0194       _RL              Rrho0, dsfmax
2fa42a6013 Alis*0195       common /kmixcdd/ Rrho0, dsfmax
                0196 
8ce97507dd Jean*0197 C-----------------------------------------------------------------------
                0198 C     parameters for subroutine "blmix"
                0199 C
                0200 C     to compute mixing within boundary layer:
                0201 C
                0202 C     cstar   = proportionality coefficient for nonlocal transport
                0203 C     cg      = non-dimensional coefficient for counter-gradient term
                0204 C-----------------------------------------------------------------------
2fa42a6013 Alis*0205 
fe66051ebd Dimi*0206       _RL              cstar, cg
2fa42a6013 Alis*0207       common /kmixcbm/ cstar, cg
                0208 
                0209 #endif /* ALLOW_KPP */
c9c3d7103f Ed H*0210 
                0211 CEH3 ;;; Local Variables: ***
                0212 CEH3 ;;; mode:fortran ***
                0213 CEH3 ;;; End: ***