mom_stochastics module reference

Top-level module for the MOM6 ocean model in coupled mode.

More…

Data Types

stochastic_cs

This control structure holds parameters for the MOM_stochastics module.

Functions/Subroutines

stochastics_init()

update_stochastics()

update_ocean_model uses the forcing in Ice_ocean_boundary to advance the ocean model's state from the input value of Ocean_state (which must be for time time_start_update) for a time interval of Ocean_coupling_time_step, returning the publicly visible ocean surface properties in Ocean_sfc and storing the new ocean properties in Ocean_state.

apply_skeb()

smooth_x9_uv()

Apply a 9-point smoothing filter twice to a pair of velocity components to reduce horizontal two-grid-point noise.

Detailed Description

Top-level module for the MOM6 ocean model in coupled mode.

Type Documentation

type  mom_stochastics/stochastic_cs

This control structure holds parameters for the MOM_stochastics module.

Type fields:
  • % do_sppt :: logical If true, stochastically perturb the diabatic.

  • % do_skeb :: logical If true, stochastically perturb the horizontal velocity.

  • % skeb_use_gm :: logical If true, adds GM work to the amplitude of SKEBS.

  • % skeb_use_frict :: logical If true, adds viscous dissipation rate to the amplitude of SKEBS.

  • % pert_epbl :: logical If true, then randomly perturb the KE dissipation and genration terms.

  • % id_sppt_wts :: integer Diagnostic id for SPPT.

  • % id_skeb_wts :: integer Diagnostic id for SKEB.

  • % id_skebu :: integer Diagnostic id for SKEB.

  • % id_skebv :: integer Diagnostic id for SKEB.

  • % id_diss :: integer Diagnostic id for SKEB.

  • % skeb_npass :: integer number of passes of the 9-point smoother for the dissipation estimate

  • % id_psi :: integer Diagnostic id for SPPT.

  • % id_epbl1_wts :: integer Diagnostic id for epbl generation perturbation.

  • % id_epbl2_wts :: integer Diagnostic id for epbl dissipation perturbation.

  • % id_skeb_taperu :: integer Diagnostic id for u taper of SKEB velocity increment.

  • % id_skeb_taperv :: integer Diagnostic id for v taper of SKEB velocity increment.

  • % skeb_gm_coef :: real If skeb_use_gm is true, then skeb_gm_coef * GM_work is added to the dissipation rate used to set the amplitude of SKEBS [nondim].

  • % skeb_frict_coef :: real If skeb_use_frict is true, then skeb_gm_coef * GM_work is added to the dissipation rate used to set the amplitude of SKEBS [nondim].

  • % skeb_diss :: real, dimension(:,:,:), allocatable Dissipation rate used to set amplitude of SKEBS [L2 T-3 ~> m2 s-3] Index into this at h points.

  • % sppt_wts :: real, dimension(:,:), allocatable Random pattern for ocean SPPT tendencies with a number between 0 and 2 [nondim].

  • % skeb_wts :: real, dimension(:,:), allocatable Random pattern for ocean SKEB [nondim].

  • % epbl1_wts :: real, dimension(:,:), allocatable Random pattern for K.E. generation [nondim].

  • % epbl2_wts :: real, dimension(:,:), allocatable Random pattern for K.E. dissipation [nondim].

  • % time :: type(time_type), pointer Pointer to model time (needed for sponges)

  • % diag :: type(diag_ctrl), pointer A structure that is used to regulate the.

  • % tapercu :: real, dimension(:,:), allocatable Taper applied to u component of stochastic velocity increment range [0,1], [nondim].

  • % tapercv :: real, dimension(:,:), allocatable Taper applied to v component of stochastic velocity increment range [0,1], [nondim].

[source]

Function/Subroutine Documentation

subroutine mom_stochastics/stochastics_init(dt, grid, GV, CS, param_file, diag, Time)
Parameters:
  • dt :: dt [in] time step [T ~> s]

  • grid :: grid [in] horizontal grid information

  • gv :: [in] vertical grid structure

  • cs :: [inout] stochastic control structure

  • param_file :: param_file [in] A structure to parse for run-time parameters

  • diag :: diag [inout] structure to regulate diagnostic output

  • time :: model time

Call to:

mom_error_handler::calltree_enter mom_error_handler::calltree_leave stochastic_physics::init_stochastic_physics_ocn mom_diag_mediator::register_static_field smooth_x9_uv

Called from:

mom::initialize_mom

[source]

subroutine mom_stochastics/update_stochastics(CS)

update_ocean_model uses the forcing in Ice_ocean_boundary to advance the ocean model’s state from the input value of Ocean_state (which must be for time time_start_update) for a time interval of Ocean_coupling_time_step, returning the publicly visible ocean surface properties in Ocean_sfc and storing the new ocean properties in Ocean_state.

Parameters:

cs :: [inout] diabatic control structure

Call to:

mom_error_handler::calltree_enter mom_error_handler::calltree_leave stochastic_physics::run_stochastic_physics_ocn

Called from:

mom::step_mom

[source]

subroutine mom_stochastics/apply_skeb(grid, GV, CS, uc, vc, thickness, tv, dt, Time_end)
Parameters:
  • grid :: grid [in] ocean grid structure

  • gv :: [in] ocean vertical grid

  • cs :: [inout] stochastic control structure

  • uc :: uc [inout] zonal velocity [L T-1 ~> m s-1]

  • vc :: vc [inout] meridional velocity [L T-1 ~> m s-1]

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

  • tv :: tv [in] points to thermodynamic fields

  • dt :: dt [in] time increment [T ~> s]

  • time_end :: [in] Time at the end of the interval

Call to:

mom_error_handler::calltree_enter mom_error_handler::calltree_leave mom_diag_mediator::disable_averaging mom_diag_mediator::enable_averages

Called from:

mom::step_mom_thermo

[source]

subroutine mom_stochastics/smooth_x9_uv(G, field_u, field_v, zero_land)

Apply a 9-point smoothing filter twice to a pair of velocity components to reduce horizontal two-grid-point noise. Note that this subroutine does not conserve angular momentum, so don’t use it in situations where you need conservation. Also note that it assumes that the input fields have valid values in the first two halo points upon entry.

Parameters:
  • g :: [in] Ocean grid

  • field_u :: field_u [inout] u-point field to be smoothed[arbitrary]

  • field_v :: field_v [inout] v-point field to be smoothed [arbitrary]

  • zero_land :: zero_land [in] If present and false, return the average of the surrounding ocean points when smoothing, otherwise use a value of 0 for land points and include them in the averages.

Called from:

stochastics_init

[source]

[source]