mom_diagnose_mld module reference

Provides functions for some diabatic processes such as fraxil, brine rejection, tendency due to surface flux divergence.

More…

Functions/Subroutines

diagnosemldbydensitydifference()

Diagnose a mixed layer depth (MLD) determined by a given density difference with the surface.

diagnosemldbyenergy()

Diagnose a mixed layer depth (MLD) determined by the depth a given energy value would mix.

Detailed Description

This module contains subroutines that apply various diabatic processes. Usually these subroutines are called from the MOM_diabatic module. All of these routines use appropriate limiters or logic to work properly with arbitrary layer thicknesses (including massless layers) and an arbitrarily large timestep.

The subroutine diagnoseMLDbyDensityDifference diagnoses a mixed layer depth based on a density difference criterion, and may also estimate the stratification of the water below this diagnosed mixed layer.

The subroutine diagnoseMLDbyEnergy diagnoses a mixed layer depth based on a mixing-energy criterion, as described by Reichl et al., 2022, JGR: Oceans, doi:10.1029/2021JC018140.

Function/Subroutine Documentation

subroutine mom_diagnose_mld/diagnosemldbydensitydifference(id_MLD, h, tv, densityDiff, G, GV, US, diagPtr, ref_h_mld, id_ref_z, id_ref_rho, id_N2subML, id_MLDsq, dz_subML, MLD_out)

Diagnose a mixed layer depth (MLD) determined by a given density difference with the surface. This routine is appropriate in MOM_diabatic_aux due to its position within the time stepping.

Parameters:
  • g :: [in] Grid type

  • gv :: [in] ocean vertical grid structure

  • us :: [in] A dimensional unit scaling type

  • id_mld :: [in] Handle (ID) of MLD diagnostic

  • h :: [in] Layer thickness [H ~> m or kg m-2]

  • tv :: [in] Structure containing pointers to any available thermodynamic fields.

  • densitydiff :: [in] Density difference to determine MLD [R ~> kg m-3]

  • diagptr :: Diagnostics structure

  • ref_h_mld :: [in] Depth of the calculated “surface” densisty [Z ~> m]

  • id_ref_z :: [in] Handle (ID) of reference depth diagnostic

  • id_ref_rho :: [in] Handle (ID) of reference density diagnostic

  • id_n2subml :: [in] Optional handle (ID) of subML stratification

  • id_mldsq :: [in] Optional handle (ID) of squared MLD

  • dz_subml :: [in] The distance over which to calculate N2subML or 50 m if missing [Z ~> m]

  • mld_out :: [out] Send MLD to other routines [Z ~> m]

Call to:

mom_error_handler::mom_error

Called from:

mom_diabatic_driver::diabatic

subroutine mom_diagnose_mld/diagnosemldbyenergy(id_MLD, h, tv, G, GV, US, Mixing_Energy, k_bounds, diagPtr, OM4_iteration, MLD_out)

Diagnose a mixed layer depth (MLD) determined by the depth a given energy value would mix. This routine is appropriate in MOM_diabatic_aux due to its position within the time stepping.

Parameters:
  • id_mld :: [in] Energy output diagnostic IDs

  • g :: [in] Grid type

  • gv :: [in] ocean vertical grid structure

  • us :: [in] A dimensional unit scaling type

  • mixing_energy :: [in] Energy values for up to 3 MLDs [R Z3 T-2 ~> J m-2]

  • h :: [in] Layer thickness [H ~> m or kg m-2]

  • tv :: [in] Structure containing pointers to any available thermodynamic fields.

  • diagptr :: Diagnostics structure

  • k_bounds :: [in] vertical interface bounds to apply calculations

  • om4_iteration :: [in] Uses a legacy version of the MLD iteration it is kept to reproduce OM4 output

  • mld_out :: [out] Send MLD to other routines [Z ~> m]

Called from:

mom_diabatic_driver::diabatic