KPP mixing
The k-profile parameterization (KPP) [13] is relatively complex and only the parameters that are routinely changed are shown here in the namelist. It is possible to change other parameters by editing the KPP module, but this should not be necessary and is discouraged. As described previously, KPP utilizes enhanced diffusion for convection so implicit vertical mixing must be enabled and diffusion must be specified as the convection method. Note that the constants convect_diff, convect_visc are used for convection within KPP.
A recent change to the KPP implementation is to allow a depth dependent background diffusivity κ and viscosity ν. The form of this dependence is
κ = κ_1 + κ_2 arctan((z - d)/L) (3.1)
| &vmix_kpp_nml | LANL default |
CESM1 default |
Valid values |
KPP mixing |
|---|---|---|---|---|
| bckgrnd_vdc1 | 0.1 | 0.1 | base background vertical diffusivity (cm2/s) | |
| bckgrnd_vdc2 | 0.0 | 0.0 | variation in background vertical diffusivity (cm2/s) | |
| bckgrnd_vdc_eq (CESM1 only) | N/A | resolution- and option-dependent value determined by CESM1 scripts | equatorial diffusivity (Gregg) | |
| bckgrnd_vdc_psim (CESM1 only) | N/A | resolution- and option-dependent value determined by CESM1 scripts | maximum PSI induced diffusivity (MacKinnon) | |
| bckgrnd_vdc_ban (CESM1 only) | N/A | resolution- and option-dependent value determined by CESM1 scripts | Banda Sea diffusivity (Gordon) | |
| bckgrnd_vdc_dpth | 250000.0 | 250000.0 | depth (cm) at which background vertical diffusivity is vdc1 | |
| bckgrnd_vdc_linv | 0.000045 | 0.000045 | inverse of the length scale (1/L in cm-1) over which diffusivity transition takes place | |
| Prandtl | 10.0 | 10.0 | (unitless) ratio of background vertical viscosity and diffusivity | |
| rich_mix | 50.0 | 50.0 | Coefficient for Richardson-number function | |
| lrich | .true. | .true. | .true., .false. | use Richardson-number for interior mixing |
| ldbl_diff | .false. | .false. | .true., .false. | add double-diffusive parameterization |
| lshort_wave | .false. | .false. | .true., .false. | use penetrative shortwave forcing |
| lcheckekmo | .false. | .false. | .true., .false. | check whether boundary layer exceeds Ekman or Monin-Obukhov limit |
| num_v_smooth_Ri | 1 | 1 | Number of passes to smooth Richardson number | |
| lhoriz_varying_bckgrnd (CESM1 only) | N/A | .true. | .true., .false. | |
| llangmuir (CESM1 only) | N/A | .false. | .true., .false. | flag to activate Langmuir parameterization |
| linertial (CESM1 only) | N/A | .false. | .true., .false. | flag to activate inertial mixing parameterization |
| / |
ν = (PR)κ (3.2)
where z is the model depth, d is the depth at which κ reaches κ_1, L is a length scale over which the transition between κ_1 and κ_2 takes place and Pr is the Prandtl number. If a constant diffusivity and viscosity are required, simply set vdc2 to zero and vdc1 to the appropriate diffusivity.