diff --git a/pkg/CVMix-src b/pkg/CVMix-src index d20b9898f4..9187de96a4 160000 --- a/pkg/CVMix-src +++ b/pkg/CVMix-src @@ -1 +1 @@ -Subproject commit d20b9898f46d0ec3f5df2eab7f38eb4aac567254 +Subproject commit 9187de96a40ca55ec7b43524a2bf0ace10bcae67 diff --git a/src/parameterizations/vertical/MOM_CVMix_KPP.F90 b/src/parameterizations/vertical/MOM_CVMix_KPP.F90 index a7c1b4e610..1eb83c3db8 100644 --- a/src/parameterizations/vertical/MOM_CVMix_KPP.F90 +++ b/src/parameterizations/vertical/MOM_CVMix_KPP.F90 @@ -125,6 +125,9 @@ module MOM_CVMix_KPP real :: MLD_guess_min !< The minimum estimate of the mixed layer depth used to !! calculate the Langmuir number for Langmuir turbulence !! enhancement with KPP [Z ~> m] + real :: KPP_ER_Cb !< Entrainment Rule TKE buoyancy production weight [nondim] + real :: KPP_ER_Cs !< Entrainment Rule TKE Stokes production weight [nondim] + real :: KPP_ER_Cu !< Entrainment Rule TKE shear production weight [nondim] logical :: STOKES_MIXING !< Flag if model is mixing down Stokes gradient !! This is relevant for which current to use in RiB integer :: answer_date !< The vintage of the order of arithmetic in the CVMix KPP @@ -532,6 +535,16 @@ logical function KPP_init(paramFile, G, GV, US, diag, Time, CS, passive) 'Parameter for Stokes MOST convection entrainment (unresolved shear)', & units="nondim", default=1.6) + call get_param(paramFile, mdl, "KPP_ER_Cb", CS%KPP_ER_Cb, & + 'Entrainment Rule TKE buoyancy production weight', & + units="nondim", default=0.96) + call get_param(paramFile, mdl, "KPP_ER_Cs", CS%KPP_ER_Cs, & + 'Entrainment Rule TKE Stokes production weight', & + units="nondim", default=0.038) + call get_param(paramFile, mdl, "KPP_ER_Cu", CS%KPP_ER_Cu, & + 'Entrainment Rule TKE shear production weight', & + units="nondim", default=0.023) + call get_param(paramFile, mdl, "ANSWER_DATE", CS%answer_date, & "The vintage of the order of arithmetic in the CVMix KPP calculations. Values "//& "below 20240501 recover the answers from early in 2024, while higher values "//& @@ -548,6 +561,9 @@ logical function KPP_init(paramFile, G, GV, US, diag, Time, CS, passive) vonKarman=CS%vonKarman, & surf_layer_ext=CS%surf_layer_ext, & CVt2=CS%KPP_CVt2, & + ER_Cb=CS%KPP_ER_Cb, & + ER_Cs=CS%KPP_ER_Cs, & + ER_Cu=CS%KPP_ER_Cu, & interp_type=CS%interpType, & interp_type2=CS%interpType2, & lEkman=CS%computeEkman, &