Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion docs/discrete_space.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ algorithm.
:maxdepth: 2

api/generated/pages/Discrete_Grids
api/generated/pages/Finite_Difference_Operators
api/generated/pages/PPM
api/generated/pages/Discrete_Coriolis
api/generated/pages/Discrete_PG
Expand Down
2 changes: 2 additions & 0 deletions docs/parameterizations_vertical.rst
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ Kappa-shear
Internal-tide driven mixing
The schemes of :cite:`st_laurent2002`, :cite:`polzin2009`, and :cite:`melet2012`, are all implemented through MOM_set_diffusivity and MOM_diabatic_driver.

:ref:`Internal_Tidal_Mixing`

Vertical friction
-----------------

Expand Down
1 change: 1 addition & 0 deletions docs/tracers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ Tracers in MOM6
api/generated/pages/Horizontal_Diffusion.rst
api/generated/pages/Vertical_Diffusion.rst
api/generated/pages/Passive_Tracers
api/generated/pages/Frazil_Ice

29 changes: 29 additions & 0 deletions docs/zotero.bib
Original file line number Diff line number Diff line change
Expand Up @@ -847,6 +847,16 @@ @article{melet2012
pages = {602--615}
}

@article{simmons2004,
title = {Tidally driven mixing in a numerical model of the ocean general circulation},
volume = {6},
author = {Simmons, H. L. and S. R. Jayne and L. C. St. Laurent and A. J. Weaver},
year = {2004},
journal = {Ocean Modell.},
pages = {245--263},
doi = {10.1016/S1463-5003(03)00011-8}
}

@article{polzin2009,
title = {An abyssal recipe},
volume = {30},
Expand All @@ -863,6 +873,15 @@ @article{polzin2009
pages = {298--309}
}

@article{polzin2004,
title = {Idealized solutions for the energy balance of the finescale internal wave field},
volume = {34},
journal = {J. Phys. Oceanogr.},
author = {Polzin, Kurt L.},
year = {2004},
pages = {231--246}
}

@article{white2009,
title = {High-order regridding-remapping schemes for continuous isopycnal and generalized coordinates in ocean models},
volume = {228},
Expand Down Expand Up @@ -2524,3 +2543,13 @@ @article{hallberg2005
volume = {8},
doi = {10.1016/j.ocemod.2004.01.001}
}

@article{bell1975,
author = {T. H. Bell},
year = {1975},
title = {Lee wavews in stratified flows with simple harmonic time dependence"},
journal = {J. Fluid Mech.},
volume = {67},
pages = {705--722}
}

5 changes: 0 additions & 5 deletions src/core/_Finite_difference.dox

This file was deleted.

8 changes: 7 additions & 1 deletion src/core/_Sea_ice.dox
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
/*! \page Sea_Ice Sea Ice Considerations

\section Frazil Ice Formation
\section section_seaice Sea Ice Considerations

For realistic domains, it is assumed that MOM6 will be run in a coupled mode, such that either the
sea-ice model or the coupler will be computing atmospheric bulk fluxes and passing them to the ocean.
Likewise, MOM6 can compute the frazil ice formation as described in \ref section_frazil, which it
then passes to the sea-ice model, expecting to get back the rejected brine or melted fresh water in
return.

*/
2 changes: 1 addition & 1 deletion src/equation_of_state/_Equation_of_State.dox
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Compute the required quantities using the equation of state from \cite jackett19
Compute the required quantities using the equation of state from
[TEOS-10](http://www.teos-10.org/).

\section TFREEZE Freezing Temperature of Sea Water
\section section_TFREEZE Freezing Temperature of Sea Water

There are three choices for computing the freezing point of sea water:

Expand Down
2 changes: 1 addition & 1 deletion src/parameterizations/lateral/MOM_internal_tides.F90
Original file line number Diff line number Diff line change
Expand Up @@ -2313,7 +2313,7 @@ subroutine internal_tides_init(Time, G, GV, US, param_file, diag, CS)
"The default is 2pi/10 km, as in St.Laurent et al. 2002.", &
units="m-1", default=8.e-4*atan(1.0), scale=US%L_to_m)
call get_param(param_file, mdl, "KAPPA_H2_FACTOR", kappa_h2_factor, &
"A scaling factor for the roughness amplitude with n"//&
"A scaling factor for the roughness amplitude with "//&
"INT_TIDE_DISSIPATION.", units="nondim", default=1.0)

! Allocate various arrays needed for loss rates
Expand Down
2 changes: 1 addition & 1 deletion src/parameterizations/vertical/MOM_diabatic_aux.F90
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ module MOM_diabatic_aux
real :: rivermix_depth = 0.0 !< The depth to which rivers are mixed if do_rivermix = T [Z ~> m].
logical :: reclaim_frazil !< If true, try to use any frazil heat deficit to
!! to cool the topmost layer down to the freezing
!! point. The default is false.
!! point. The default is true.
logical :: pressure_dependent_frazil !< If true, use a pressure dependent
!! freezing temperature when making frazil. The
!! default is false, which will be faster but is
Expand Down
33 changes: 33 additions & 0 deletions src/parameterizations/vertical/_Frazil.dox
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/*! \page Frazil_Ice Frazil Ice Formation

\section section_frazil Frazil Ice Formation

Frazil ice forms in the model when the in situ temperature drops below
the local freezing point, taking into account the in situ salinity and
pressure. Starting at the bottom and working up through the water column,
if the water is below freezing, set it to freezing and add the heat
required to the heat deficit. If the water above is warmer than freezing,
use that heat to take away the heat deficit and to cool the water. If
you get all the way to the surface with a heat deficit, that quantity
is passed to the ice model as a heat flux it will need to provide to
the ocean.

The local freezing point code is provided by the equation of state being
used by MOM6. See \ref section_TFREEZE for the MOM6 options.

The salinity is adjusted only at the surface when frazil ice is
formed. This happens when the ice model creates ice with the heat deficit,
taking salt out of the surface waters. We inherit this behavior from
older versions of MOM, but the effect of not adjusting the in situ
salinity is thought to be small.

Note that versions simply whisking all the heat deficit to the surface
without checking for warm water above tended to produce rapidly-melting
ice floes in warm waters. This was deemed unphysical and was corrected.

A similar process that we are also omitting is the formation of salt
crystals when the salinity becomes too high. The salt crystals should
form and sink, leaving a layer on the bed that will be diluted when the
salinity drops again. This process can be seen in a lake in Death Valley.

*/
216 changes: 216 additions & 0 deletions src/parameterizations/vertical/_Internal_tides.dox
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
/*! \page Internal_Tidal_Mixing Internal Tidal Mixing

Two parameterizations of vertical mixing due to internal tides are
available with the option INT_TIDE_DISSIPATION. The first is that of
\cite st_laurent2002 while the second is that of \cite polzin2009. Choose
between them with the INT_TIDE_PROFILE option. There are other relevant
paramters which can be seen in MOM_parameter_doc.all once the main tidal
dissipation switch is turned on.

\section section_st_laurent St Laurent et al.

The estimated turbulent dissipation rate of
internal tide energy \f$\epsilon\f$ is:

\f[
\epsilon = \frac{q E(x,y)}{\rho} F(z).
\f]

where \f$\rho\f$ is the reference density of seawater, \f$E(x,y)\f$ is
the energy flux per unit area transferred from barotropic to baroclinic
tides, \f$q\f$ is the fraction of the internal-tide energy dissipated
locally, and \f$F(z)\f$ is the vertical structure of the dissipation.
This \f$q\f$ is estimated to be roughly 0.3 based on observations. The
term \f$E(x,y)\f$ is given by \cite st_laurent2002 as:

\f[
E(x,y) \simeq \frac{1}{2} \rho N_b \kappa h^2 \langle U^2 \rangle
\f]

where \f$\rho\f$ is the reference density of seawater, \f$N_b\f$ is
the buoyancy frequency along the seafloor, and \f$(\kappa, h)\f$ are
the wavenumber and amplitude scales for the topographic roughness, and
\f$\langle U^2 \rangle\f$ is the barotropic tide variance. It is assumed
that the model will read in topographic roughness squared \f$h^2\f$
from a file (the variable must be named "h2").

To convert from energy dissipation to vertical diffusion \f$K_d\f$,
the simple estimate is:

\f[
K_d \approx \frac{\Gamma q E(x,y) F(z)}{\rho N^2}
\f]

where \f$\Gamma\f$ is the mixing efficiency, generally set to 0.2
and \f$F(z)\f$ is a vertical structure function with exponential decay
from the bottom:

\f[
F(z) = \frac{e^{-(H+z)/\zeta}}{\zeta (1 - e^{H/\zeta}}.
\f]

Here, \f$\zeta\f$ is a vertical decay scale with a default of 500 meters.
One change in MOM6 from the St. Laurent scheme is to use this form of \f$\Gamma\f$:

\f[
\Gamma = 0.2 \frac{N^2}{N^2 + \Omega^2}
\f]

instead of \f$\Gamma = 0.2\f$, where \f$\Omega\f$ is the angular velocity
of the Earth. This allows the buoyancy fluxes to tend to zero in regions
of very weak stratification, allowing a no-flux bottom boundary condition
to be satisfied.

This \f$K_d\f$ gets added to the diffusivity due to the background and
other contributions unless you set BBL_MIXING_AS_MAX to True, in which
case the maximum of all the contributions is used.

\section section_polzin Polzin

The vertical diffusion profile of \cite polzin2009 is a WKB-stretched
algebraic decay profile. It is based on a radiation balance equation,
which links the dissipation profile associtated with internal breaking to
the finescale internal wave shear producing that dissipation. The vertical
profile of internal-tide driven energy dissipation can then vary in time
and space, and evolve in a changing climate (\cite melet2012). \cite melet2012
describes how the Polzin scheme is implemented in MOM6,
copied here.

The parameterization of \cite polzin2009 links the energy dissipation
profile to the finescale internal wave shear producing that
dissipation, using an idealized vertical wavenumber energy spectrum
to identify analytic solutions to a radiation balance equation
(\cite polzin2004). These solutions yield a dissipation profile
\f$\epsilon(z)\f$:

\f[
\epsilon = \frac{\epsilon_0}{[1 + (z/z_p)]^2},
\f]

where the magnitude \f$\epsilon_0\f$ and scale height \f$z_p\f$ can be expressed in terms of the
spectral amplitude and bandwidth of the idealized vertical wavenumber energy spectrum in uniform
stratification (\cite polzin2009).

To take into account the nonuniform stratification, \cite polzin2009 applied a buoyancy scaling
using the Wentzel-Kramers-Brillouin (WKB) approximation. As a result, the vertical wavenumber of a
wave packet varies in proportion to the buoyancy frequency \f$N\f$, which in turn implies an
additional transport of energy to smaller scales, and thus a possible enhanced mixing in regions of
strong stratification. Such effects can be described by buoyancy scaling the vertical coordinate
\f$z\f$ as

\f[
z^{\ast}(z) = \int_{0}^{z} \left[ \frac{N^2 (z^\prime )}{N_b^2} \right] dz^{\prime} ,
\f]

with \f$z^\prime\f$ being positive upward relative to the bottom of the ocean. The turbulent
dissipation rate then becomes

\f[
\epsilon = \frac{\epsilon_0}{[1 + (z^{\ast} /z_p)]^2} \frac{N^2(z)}{N_b^2} .
\f]

The spectral amplitude and bandwidth of the idealized vertical wavenumber
energy spectrum are identified after WKB scaling using a quasi-linear
spectral model of internal-tide generation that incorporates horizontal
advection of the barotropic tide into the momentum equation (\cite bell1975).
As a result, Polzin's formulation leads to an expression for
the spatially and temporally varying dissipation of internal tide energy
at the bottom \f$\epsilon_0\f$, and the vertical scale of decay for the
dissipation of internal tide energy \f$z_p\f$.

\subsection subsection_energy_conserving Energy-conserving form

To satisfy energy conservation (the integral of the vertical structure for the turbulent dissipation
over depth should be unity), the dissipation is rewritten as

\f[
\epsilon = \frac{\epsilon_0 z_p}{1 + (z^\ast/z_p)]^2} \frac{N^2(z)}{N^2_b} \left[
\frac{1}{z^{\ast(z=H)}} + \frac{1}{z_p} \right] .
\f]

In the MOM6 implementation, we use the \cite st_laurent2002 template for the vertical flux of energy
at the ocean floor, so that in both formulations:

\f[
\int_{0}^{H} \epsilon (z) dz = \frac{qE}{\rho} .
\f]

Whereas \cite polzin2009 assumed tthat the total dissipation was locally in balance with the
barotropic to baroclinic energy conversion rate \f$(q=1)\f$, here we use the \cite simmons2004 value
of \f$q=1/3\f$ to retain as much consistency as passible between both parameterizations.

\subsection subsection_vertical_decay_scale Vertical decay-scale reformulation

We follow the \cite polzin2009 prescription for the vertical scale of
decay for the dissipation of internal-tide energy. However, we assume
that the topographic power law, denoted as \f$\nu\f$ in \cite polzin2009,
is equal to 1 (instead of 0.9) and we reformulated the expression of
\f$z_p\f$ to put it in a more readable form:

\f[
z_p = \frac{z_p^\mbox{ref} (\kappa^\mbox{ref})^2 (h^\mbox{ref})^2 (N_b^\mbox{ref})^3} {U^\mbox{ref}}
\frac{U}{h^2 \kappa^2 N_b^3} .
\f]

The superscript ref refers to reference values of the various parameters, as given by
observations from the Brazil basin. Therefore, the above can be rewritten as

\f[
z_p = \mu (N_b^\mbox{ref} )^2
\frac{U}{h^2 \kappa^2 N_b^3} .
\f]

where \f$\mu\f$ is a nondimensional constant \f$(\mu = 0.06970)\f$ and \f$N_b^\mbox{ref} = 9.6 \times
10^{-4} s^{-1}\f$. Finally, a minimum decay scale of \f$z_p = 100 m\f$ is imposed in our
implementation.

\subsection subsection_reformulation_WKB Reformulation of the WKB scaling

Since the dissipation is expressed as a function of the ratio \f$z^\ast / z_p\f$, a different WKB
scaling can be used so long as we modify \f$z_p\f$ accordingly. In the implemented parameterization,
we define the scaled height coordinate \f$z^\ast\f$ by

\f[
z^\ast (z) = \frac{1}{\overline{N^2 (z)}^z} \int_{0}^{z} N^2(z^\prime ) dz ^\prime ,
\f]

with \f$z^\prime\f$ defined to be the height above the ocean bottom. By normalizing \f$N^2\f$ by its
vertical mean \f$\overline{N^2}^z\f$, \f$z^\ast\f$ ranges from \f$0\f$ to \f$H\f$, the depth of the
ocean.

The WKB-scaled vertical decay scale for the Polzin formulation becomes

\f[
z^\ast_p = \mu(N_b^\mbox{ref})^2 \frac{U}{h^2 \kappa^2 N_b \overline{N^2}^z} .
\f]

Unlike the \cite st_laurent2002 parameterization, the vertical decay scale now depends on physical
variables and can evolve with a changing climate.

Finally, the Polzin vertical profile of dissipation implemented in the model is given by

\f[
\epsilon = \frac{qE(x,y)}{\rho [1 + (z^\ast/z_p^\ast)]^2} \frac{N^2(z)}{\overline{N^2}^z}
\left( \frac{1}{H} + \frac{1}{z_p^\ast} \right) .
\f]

In both parameterizations, turbulent diapycnal diffusivities are inferred from the dissipation
\f$\epsilon\f$ by:

\f[
K_d = \frac{\Gamma \epsilon}{N^2}
\f]

and using this form of \f$\Gamma\f$:

\f[
\Gamma = 0.2 \frac{N^2}{N^2 + \Omega^2}
\f]

instead of \f$\Gamma = 0.2\f$, where \f$\Omega\f$ is the angular velocity
of the Earth. This allows the buoyancy fluxes to tend to zero in regions
of very weak stratification, allowing a no-flux bottom boundary condition
to be satisfied.

*/