mom_tracer_diabatic module reference

This module contains routines that implement physical fluxes of tracers (e.g. due to surface fluxes or mixing). These are intended to be called from call_tracer_column_fns in the MOM_tracer_flow_control() module. module.

More…

Functions/Subroutines

tracer_vertdiff()

This subroutine solves a tridiagonal equation for the final tracer concentrations after the dual-entrainments, and possibly sinking or surface and bottom sources, are applied.

tracer_vertdiff_eulerian()

This subroutine solves a tridiagonal equation for the final tracer concentrations after Eulerian mixing, and possibly sinking or surface and bottom sources, are applied.

applytracerboundaryfluxesinout()

This routine is modeled after applyBoundaryFluxesInOut in MOM_diabatic_aux.F90 NOTE: Please note that in this routine sfc_flux gets set to zero to ensure that the surface flux of the tracer does not get applied again during a subsequent call to tracer_vertdif.

Detailed Description

This module contains routines that implement physical fluxes of tracers (e.g. due to surface fluxes or mixing). These are intended to be called from call_tracer_column_fns in the MOM_tracer_flow_control() module. module.

Function/Subroutine Documentation

subroutine mom_tracer_diabatic/tracer_vertdiff(h_old, ea, eb, dt, tr, G, GV, sfc_flux, btm_flux, btm_reservoir, sink_rate, convert_flux_in)

This subroutine solves a tridiagonal equation for the final tracer concentrations after the dual-entrainments, and possibly sinking or surface and bottom sources, are applied. The sinking is implemented with an fully implicit upwind advection scheme. Alternate time units can be used for the timestep, surface and bottom fluxes and sink_rate provided they are all consistent.

Parameters:
  • g :: [in] ocean grid structure

  • gv :: [in] ocean vertical grid structure

  • h_old :: [in] layer thickness before entrainment [H ~> m or kg m-2]

  • ea :: [in] amount of fluid entrained from the layer above [H ~> m or kg m-2]

  • eb :: [in] amount of fluid entrained from the layer below [H ~> m or kg m-2]

  • tr :: [inout] tracer concentration in concentration units [CU]

  • dt :: [in] amount of time covered by this call [T ~> s]

  • sfc_flux :: [in] surface flux of the tracer in units of [CU R Z T-1 ~> CU kg m-2 s-1] or [CU H ~> CU m or CU kg m-2] if convert_flux_in is .false.

  • btm_flux :: [in] The (negative upward) bottom flux of the tracer in [CU R Z T-1 ~> CU kg m-2 s-1] or [CU H ~> CU m or CU kg m-2] if convert_flux_in is .false.

  • btm_reservoir :: [inout] amount of tracer in a bottom reservoir [CU R Z ~> CU kg m-2]

  • sink_rate :: [in] rate at which the tracer sinks [Z T-1 ~> m s-1]

  • convert_flux_in :: [in] True if the specified sfc_flux needs to be integrated in time

Call to:

mom_error_handler::mom_error

Called from:

advection_test_tracer::advection_test_tracer_column_physics boundary_impulse_tracer::boundary_impulse_tracer_column_physics mom_cfc_cap::cfc_cap_column_physics dome_tracer::dome_tracer_column_physics regional_dyes::dye_tracer_column_physics dyed_obc_tracer::dyed_obc_tracer_column_physics ideal_age_example::ideal_age_tracer_column_physics isomip_tracer::isomip_tracer_column_physics mom_diabatic_driver::layered_diabatic nw2_tracers::nw2_tracer_column_physics mom_ocmip2_cfc::ocmip2_cfc_column_physics oil_tracer::oil_tracer_column_physics pseudo_salt_tracer::pseudo_salt_tracer_column_physics rgc_tracer::rgc_tracer_column_physics

subroutine mom_tracer_diabatic/tracer_vertdiff_eulerian(h_old, ent, dt, tr, G, GV, sfc_flux, btm_flux, btm_reservoir, sink_rate, convert_flux_in)

This subroutine solves a tridiagonal equation for the final tracer concentrations after Eulerian mixing, and possibly sinking or surface and bottom sources, are applied. The sinking is implemented with an fully implicit upwind advection scheme. Alternate time units can be used for the timestep, surface and bottom fluxes and sink_rate provided they are all consistent.

Parameters:
  • g :: [in] ocean grid structure

  • gv :: [in] ocean vertical grid structure

  • h_old :: [in] layer thickness before entrainment [H ~> m or kg m-2]

  • ent :: [in] Amount of fluid mixed across interfaces [H ~> m or kg m-2]

  • tr :: [inout] tracer concentration in concentration units [CU]

  • dt :: [in] amount of time covered by this call [T ~> s]

  • sfc_flux :: [in] surface flux of the tracer in units of [CU R Z T-1 ~> CU kg m-2 s-1] or [CU H ~> CU m or CU kg m-2] if convert_flux_in is .false.

  • btm_flux :: [in] The (negative upward) bottom flux of the tracer in [CU kg m-2 T-1 ~> CU kg m-2 s-1] or [CU H ~> CU m or CU kg m-2] if convert_flux_in is .false.

  • btm_reservoir :: [inout] amount of tracer in a bottom reservoir [CU R Z ~> CU kg m-2]

  • sink_rate :: [in] rate at which the tracer sinks [Z T-1 ~> m s-1]

  • convert_flux_in :: [in] True if the specified sfc_flux needs to be integrated in time

Call to:

mom_error_handler::mom_error

Called from:

mom_diabatic_driver::diabatic_ale mom_diabatic_driver::diabatic_ale_legacy

subroutine mom_tracer_diabatic/applytracerboundaryfluxesinout(G, GV, Tr, dt, fluxes, h, evap_CFL_limit, minimum_forcing_depth, in_flux_optional, out_flux_optional, update_h_opt)

This routine is modeled after applyBoundaryFluxesInOut in MOM_diabatic_aux.F90 NOTE: Please note that in this routine sfc_flux gets set to zero to ensure that the surface flux of the tracer does not get applied again during a subsequent call to tracer_vertdif.

Parameters:
  • g :: [in] Grid structure

  • gv :: [in] ocean vertical grid structure

  • tr :: [inout] Tracer concentration on T-cell [conc]

  • dt :: [in] Time-step over which forcing is applied [T ~> s]

  • fluxes :: [in] Surface fluxes container

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

  • evap_cfl_limit :: [in] Limit on the fraction of the water that can be fluxed out of the top layer in a timestep [nondim]

  • minimum_forcing_depth :: [in] The smallest depth over which fluxes can be applied [H ~> m or kg m-2]

  • in_flux_optional :: [in] The total time-integrated amount of tracer that enters with freshwater [conc H ~> conc m or conc kg m-2]

  • out_flux_optional :: [in] The total time-integrated amount of tracer that leaves with freshwater [conc H ~> conc m or conc kg m-2]

  • update_h_opt :: [in] Optional flag to determine whether h should be updated

Call to:

mom_error_handler::mom_error

Called from:

advection_test_tracer::advection_test_tracer_column_physics boundary_impulse_tracer::boundary_impulse_tracer_column_physics mom_cfc_cap::cfc_cap_column_physics dome_tracer::dome_tracer_column_physics regional_dyes::dye_tracer_column_physics dyed_obc_tracer::dyed_obc_tracer_column_physics ideal_age_example::ideal_age_tracer_column_physics isomip_tracer::isomip_tracer_column_physics mom_generic_tracer::mom_generic_tracer_column_physics nw2_tracers::nw2_tracer_column_physics mom_ocmip2_cfc::ocmip2_cfc_column_physics mom_offline_main::offline_fw_fluxes_into_ocean mom_offline_main::offline_fw_fluxes_out_ocean oil_tracer::oil_tracer_column_physics pseudo_salt_tracer::pseudo_salt_tracer_column_physics rgc_tracer::rgc_tracer_column_physics