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.
Functions/Subroutines¶
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. |
|
This subroutine solves a tridiagonal equation for the final tracer concentrations after Eulerian mixing, and possibly sinking or surface and bottom sources, are applied. |
|
This routine is modeled after applyBoundaryFluxesInOut in |
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:
- Called from:
advection_test_tracer::advection_test_tracer_column_physicsboundary_impulse_tracer::boundary_impulse_tracer_column_physicsmom_cfc_cap::cfc_cap_column_physicsdome_tracer::dome_tracer_column_physicsregional_dyes::dye_tracer_column_physicsdyed_obc_tracer::dyed_obc_tracer_column_physicsideal_age_example::ideal_age_tracer_column_physicsisomip_tracer::isomip_tracer_column_physicsmom_diabatic_driver::layered_diabaticmarbl_tracers::marbl_tracers_column_physicsnw2_tracers::nw2_tracer_column_physicsmom_ocmip2_cfc::ocmip2_cfc_column_physicsoil_tracer::oil_tracer_column_physicspseudo_salt_tracer::pseudo_salt_tracer_column_physicsrgc_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:
- Called from:
mom_diabatic_driver::diabatic_alemom_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.F90NOTE: 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:
- Called from:
advection_test_tracer::advection_test_tracer_column_physicsboundary_impulse_tracer::boundary_impulse_tracer_column_physicsmom_cfc_cap::cfc_cap_column_physicsdome_tracer::dome_tracer_column_physicsregional_dyes::dye_tracer_column_physicsdyed_obc_tracer::dyed_obc_tracer_column_physicsideal_age_example::ideal_age_tracer_column_physicsisomip_tracer::isomip_tracer_column_physicsmarbl_tracers::marbl_tracers_column_physicsnw2_tracers::nw2_tracer_column_physicsmom_ocmip2_cfc::ocmip2_cfc_column_physicsmom_offline_main::offline_fw_fluxes_into_oceanmom_offline_main::offline_fw_fluxes_out_oceanoil_tracer::oil_tracer_column_physicspseudo_salt_tracer::pseudo_salt_tracer_column_physicsrgc_tracer::rgc_tracer_column_physics