Skip to content

Commit

Permalink
+Add runtime parameter KPP_LT_MLD_GUESS_MIN
Browse files Browse the repository at this point in the history
  Added the new runtime parameter KPP_LT_MLD_GUESS_MIN to specify a previously
hard-coded lower limit on the estimate of the boundary layer depth used to
calculate the Langmuir number for some options with KPP.  By default all answers
are bitwise identical, but there is a new entry in the MOM_parameter_doc.all
files for some configurations with a KPP and Langmuir enhanced turbulence.
  • Loading branch information
Hallberg-NOAA committed Dec 29, 2022
1 parent 46b9c0d commit 92351e0
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions src/parameterizations/vertical/MOM_CVMix_KPP.F90
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,9 @@ module MOM_CVMix_KPP
logical :: LT_Vt2_Enhancement !< Flags if enhancing Vt2 due to LT
integer :: LT_VT2_METHOD !< Integer for Vt2 LT method
real :: KPP_VT2_ENH_FAC !< Factor to multiply by VT2 if Method is CONSTANT [nondim]
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]
logical :: STOKES_MIXING !< Flag if model is mixing down Stokes gradient
!! This is relevant for which current to use in RiB

Expand Down Expand Up @@ -460,6 +463,13 @@ logical function KPP_init(paramFile, G, GV, US, diag, Time, CS, passive)
endif
endif

if (CS%LT_K_ENHANCEMENT .or. CS%LT_VT2_ENHANCEMENT) then
call get_param(paramFile, mdl, "KPP_LT_MLD_GUESS_MIN", CS%MLD_guess_min, &
"The minimum estimate of the mixed layer depth used to calculate "//&
"the Langmuir number for Langmuir turbulence enhancement with KPP.", &
units="m", default=1.0, scale=US%m_to_Z)
endif

call closeParameterBlock(paramFile)

call get_param(paramFile, mdl, 'DEBUG', CS%debug, default=.False., do_not_log=.True.)
Expand Down Expand Up @@ -1120,10 +1130,10 @@ subroutine KPP_compute_BLD(CS, G, GV, US, h, Temp, Salt, u, v, tv, uStar, buoyFl
enddo ! k-loop finishes

if ( (CS%LT_K_ENHANCEMENT .or. CS%LT_VT2_ENHANCEMENT) .and. .not. present(lamult)) then
MLD_guess = max( 1.*US%m_to_Z, abs(CS%OBLdepthprev(i,j) ) )
MLD_guess = max( CS%MLD_guess_min, abs(CS%OBLdepthprev(i,j) ) )
call get_Langmuir_Number(LA, G, GV, US, MLD_guess, uStar(i,j), i, j, &
H=H(i,j,:), U_H=U_H, V_H=V_H, WAVES=WAVES)
CS%La_SL(i,j)=LA
CS%La_SL(i,j) = LA
endif


Expand Down

0 comments on commit 92351e0

Please sign in to comment.