.. _vertical-mixing-and-convection-parameterizations: Vertical mixing and convection parameterizations ================================================= Vertical mixing options are set by the namelist **vertical\_mix\_nml** .. todo:: add link for **vertical\_mix\_nml** **Vertical Mixing Namelist** Several vertical mixing parameterizations are available and are described in much more detail in the Reference Manual. The value of ``vmix_choice`` determines whether a simple constant mixing, a Richardson-number dependent mixing or the KPP mixing parameterization is used. Additional mixing parameters for each of these schemes are set in individual namelists shown below; only the namelist associated with the mixing choice is actually read. The treatment of convection is also specified in the vertical mixing namelist through the ``convection_type`` variable. Convection can be treated using either convective adjustment or by specifying large diffusion coefficients in convectively unstable regions. The KPP vertical mixing parameterization *must* use the diffusion option. If convective adjustment is chosen, the number of passes through the vertical column to adjust is determined by the parameter ``nconvad``. The treatment of convection by diffusion is governed by the input diffusion coefficients ``convect_diff`` and ``convect_visc``. Note that for constant vertical mixing, you can apply diffusion to tracers only by setting ``convect_visc`` to zero; this is *not* true for Richardson number mixing or KPP. Some vertical and horizontal mixing parameterizations (e.g. KPP and Gent-McWilliams to be discussed later) create large vertical mixing coefficients. In addition, when diffusion is used as the method for treating convection, the diffusion coefficients are large. In such cases, implicit vertical mixing must be enabled (``implicit_vertical_mix = .true.``) to avoid severe restrictions on the model time step. If implicit vertical mixing is chosen, the parameter ``aidif`` governs the time-centering of the implicit scheme. The ``bottom_drag`` coefficient is used to compute bottom drag. To simulate geothermal heating at the bottom of the ocean, a constant heat flux can be applied below a fixed depth in the ocean. A heat flux of zero turns off this option. Constant coefficients ---------------------- Constant vertical mixing options are set by the namelist **vmix\_const\_nml** .. todo:: add link for **vmix\_const\_nml** **Constant vertical Mixing Namelist** Constant vertical mixing simply uses a constant diffusion coefficient for mixing everywhere in the domain. Richardson-number mixing ------------------------- Richardson-number vertical mixing options are set by the namelist **vmix\_rich\_nml** .. todo:: add link for **vmix\_rich\_nml** Richardson-number vertical mixing namelist The Pacanowski and Philander [PacanowskiPhilander] mixing scheme was developed primarily for use in tropical ocean and, although it is often used elsewhere in the global ocean, the user should be aware of the possible need to adjust its parameters ([Peters et al],[Gent]). KPP mixing ----------- KPP mixing options are set by the namelist **vmix\_kpp\_nml** .. todo:: add link for **vmix\_kpp\_nml** KPP namelist 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 :math:`\chi` and viscosity :math:`nu`. The form of this dependence is .. math:: :label: kpp-depth-dependent-background \chi & = \chi _1 + \chi _2 * \arctan ({(z - D)/L}) \nu & = ({PR}) \chi where :math:`z` is the model depth, :math:`d` is the depth at which :math:`\chi` reaches :math:`\chi_1`, :math:`L` is a length scale over which the transition between :math:`\chi_1` and :math:`\chi_2` takes place and :math:`{Pr}` is the Prandtl number. If a constant diffusivity and viscosity are required, simply set vdc2 to zero and vdc1 to the appropriate diffusivity. Tidal mixing ------------- The tidally driven mixing parameterization is described in Jayne (2009). See the `POP Reference Manual <http://www.cesm.ucar.edu/models/cesm1.0/pop/doc/sci/POPRefManual.pdf>`__ for details. .. todo:: add link for **tidal\_nml** Tidal mixing namelist