|
|
|||
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 UTC8ce97507dd 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: ***
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated from https://github.com/darwinproject/darwin3 by the 2.3.7-MITgcm-0.1 LXR engine. The LXR team |
|