mom_tracer_flow_control module reference
Orchestrates the registration and calling of tracer packages.
Data Types
The control structure for orchestrating the calling of tracer packages. |
Functions/Subroutines
This subroutine carries out a series of calls to initialize the air-sea tracer fluxes, but it does not record the generated indicies, and it may be called before the ocean model has been initialized and may be called on non-ocean PEs. |
|
This subroutine determines which tracer packages are to be used and does the calls to register their tracers to be advected, diffused, and read from restarts. |
|
This subroutine calls all registered tracer initialization subroutines. |
|
This subroutine calls all registered tracers to register their OBC segments similar to register_temp_salt_segments for T&S. |
|
This subroutine extracts the chlorophyll concentrations from the model state, if possible. |
|
This subroutine calls the individual tracer modules' subroutines to specify or read quantities related to their surface forcing. |
|
This subroutine calls all registered tracer column physics subroutines. |
|
This subroutine calls all registered tracer packages to enable them to add to the surface state returned to the coupler. |
|
This routine stores the stocks and does error handling for call_tracer_stocks. |
|
This subroutine calls all registered tracer packages to enable them to add to the surface state returned to the coupler. |
|
Detailed Description
Orchestrates the registration and calling of tracer packages.
Type Documentation
- type mom_tracer_flow_control/tracer_flow_control_cs
The control structure for orchestrating the calling of tracer packages.
- Type fields:
% user_tracer_example_csp ::
type(user_tracer_example_cs), pointerPointers to the control strucures for the tracer packages.% dome_tracer_csp ::
type(dome_tracer_cs), pointerPointers to the control strucures for the tracer packages.% isomip_tracer_csp ::
type(isomip_tracer_cs), pointerPointers to the control strucures for the tracer packages.% rgc_tracer_csp ::
type(rgc_tracer_cs), pointerPointers to the control strucures for the tracer packages.% ideal_age_tracer_csp ::
type(ideal_age_tracer_cs), pointerPointers to the control strucures for the tracer packages.% marbl_tracers_csp ::
type(marbl_tracers_cs), pointerPointers to the control strucures for the tracer packages.% dye_tracer_csp ::
type(dye_tracer_cs), pointerPointers to the control strucures for the tracer packages.% oil_tracer_csp ::
type(oil_tracer_cs), pointerPointers to the control strucures for the tracer packages.% advection_test_tracer_csp ::
type(advection_test_tracer_cs), pointerPointers to the control strucures for the tracer packages.% ocmip2_cfc_csp ::
type(ocmip2_cfc_cs), pointerPointers to the control strucures for the tracer packages.% cfc_cap_csp ::
type(cfc_cap_cs), pointerPointers to the control strucures for the tracer packages.% mom_generic_tracer_csp ::
type(mom_generic_tracer_cs), pointerPointers to the control strucures for the tracer packages.% pseudo_salt_tracer_csp ::
type(pseudo_salt_tracer_cs), pointerPointers to the control strucures for the tracer packages.% boundary_impulse_tracer_csp ::
type(boundary_impulse_tracer_cs), pointerPointers to the control strucures for the tracer packages.% dyed_obc_tracer_csp ::
type(dyed_obc_tracer_cs), pointerPointers to the control strucures for the tracer packages.% nw2_tracers_csp ::
type(nw2_tracers_cs), pointerPointers to the control strucures for the tracer packages.% use_user_tracer_example ::
logicalIf true, use the USER_tracer_example package.% use_dome_tracer ::
logicalIf true, use the DOME_tracer package.% use_isomip_tracer ::
logicalIf true, use the ISOMPE_tracer package.% use_rgc_tracer ::
logicalIf true, use the RGC_tracer package.% use_ideal_age ::
logicalIf true, use the ideal age tracer package.% use_marbl_tracers ::
logicalIf true, use the MARBL tracer package.% use_regional_dyes ::
logicalIf true, use the regional dyes tracer package.% use_oil ::
logicalIf true, use the oil tracer package.% use_advection_test_tracer ::
logicalIf true, use the% use_ocmip2_cfc ::
logicalIf true, use the OCMIP2_CFC tracer package.% use_cfc_cap ::
logicalIf true, use the CFC_cap tracer package.% use_mom_generic_tracer ::
logicalIf true, use the MOM_generic_tracer packages.% use_pseudo_salt_tracer ::
logicalIf true, use the psuedo_salt tracer package.% use_boundary_impulse_tracer ::
logicalIf true, use the boundary impulse tracer package.% use_dyed_obc_tracer ::
logicalIf true, use the dyed OBC tracer package.% use_nw2_tracers ::
logicalIf true, use the NW2 tracer package.% get_chl_from_marbl ::
logicalIf true, use the MARBL-provided Chl for shortwave penetration.
Function/Subroutine Documentation
- subroutine mom_tracer_flow_control/call_tracer_flux_init(verbosity)
This subroutine carries out a series of calls to initialize the air-sea tracer fluxes, but it does not record the generated indicies, and it may be called before the ocean model has been initialized and may be called on non-ocean PEs. It is not necessary to call this routine for ocean-only runs, because the same calls are made again inside of the routines called by call_tracer_register.
- Parameters:
verbosity ::
verbosity[in] A 0-9 integer indicating a level of verbosity.- Call to:
mom_file_parser::close_param_filemom_get_input::get_mom_input- Called from:
- subroutine mom_tracer_flow_control/call_tracer_register(G, GV, US, param_file, CS, tr_Reg, restart_CS)
This subroutine determines which tracer packages are to be used and does the calls to register their tracers to be advected, diffused, and read from restarts.
- Parameters:
g :: [in] The ocean’s grid structure.
gv :: [in] The ocean’s vertical grid structure.
us :: [in] A dimensional unit scaling type
param_file ::
param_file[in] A structure to parse for run-time parameters.cs :: A pointer that is set to point to the control structure for this module.
tr_reg :: A pointer that is set to point to the control structure for the tracer advection and diffusion module.
restart_cs :: [inout] A pointer to the restart control structure.
- Call to:
- subroutine mom_tracer_flow_control/tracer_flow_control_init(restart, day, G, GV, US, h, param_file, diag, OBC, CS, sponge_CSp, ALE_sponge_CSp, tv)
This subroutine calls all registered tracer initialization subroutines.
- Parameters:
restart ::
restart[in] 1 if the fields have already been read from a restart file.day ::
day[in] Time of the start of the run.g :: [inout] The ocean’s grid structure.
gv :: [in] The ocean’s vertical grid structure.
us :: [in] A dimensional unit scaling type
h ::
h[in] Layer thicknesses [H ~> m or kg m-2]param_file ::
param_file[in] A structure to parse for run-time parametersdiag ::
diag[in] A structure that is used to regulate diagnostic output.obc :: This open boundary condition type specifies whether, where, and what open boundary conditions are used.
cs :: The control structure returned by a previous call to call_tracer_register.
sponge_csp :: A pointer to the control structure for the sponges, if they are in use. Otherwise this may be unassociated.
ale_sponge_csp :: A pointer to the control structure for the ALE sponges, if they are in use. Otherwise this may be unassociated.
tv ::
tv[in] A structure pointing to various thermodynamic variables
- Call to:
nw2_tracers::initialize_nw2_tracersmom_error_handler::mom_error
- subroutine mom_tracer_flow_control/call_tracer_register_obc_segments(GV, param_file, CS, tr_Reg, OBC)
This subroutine calls all registered tracers to register their OBC segments similar to register_temp_salt_segments for T&S.
- Parameters:
gv :: [in] The ocean’s vertical grid structure.
param_file ::
param_file[in] A structure to parse for run-time parameters.cs :: A pointer that is set to point to the control structure for this module.
tr_reg :: A pointer that is set to point to the control structure for the tracer advection and diffusion module.
obc :: This open boundary condition type specifies whether, where, and what open boundary conditions are used.
- Call to:
- Called from:
- subroutine mom_tracer_flow_control/get_chl_from_model(Chl_array, G, GV, CS)
This subroutine extracts the chlorophyll concentrations from the model state, if possible.
- Parameters:
g :: [in] The ocean’s grid structure.
gv :: [in] The ocean’s vertical grid structure.
chl_array :: [out] The array in which to store the model’s
cs :: The control structure returned by a previous call to call_tracer_register.
- Call to:
- Called from:
- subroutine mom_tracer_flow_control/call_tracer_set_forcing(sfc_state, fluxes, day_start, day_interval, G, US, Rho0, CS)
This subroutine calls the individual tracer modules’ subroutines to specify or read quantities related to their surface forcing.
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.fluxes ::
fluxes[inout] A structure containing pointers to any possible forcing fields. Unused fields have NULL ptrs.day_start ::
day_start[in] Start time of the fluxes.day_interval ::
day_interval[in] Length of time over which these fluxes will be applied.g :: [in] The ocean’s grid structure.
us :: [in] A dimensional unit scaling type
rho0 :: [in] The mean ocean density [R ~> kg m-3]
cs :: The control structure returned by a previous call to call_tracer_register.
- Call to:
- Called from:
- subroutine mom_tracer_flow_control/call_tracer_column_fns(h_old, h_new, ea, eb, fluxes, mld, dt, G, GV, US, tv, optics, CS, debug, KPP_CSp, nonLocalTrans, evap_CFL_limit, minimum_forcing_depth, h_BL)
This subroutine calls all registered tracer column physics subroutines.
- Parameters:
g :: [in] The ocean’s grid structure.
gv :: [in] The ocean’s vertical grid structure.
h_old ::
h_old[in] Layer thickness before entrainment [H ~> m or kg m-2].h_new ::
h_new[in] Layer thickness after entrainment [H ~> m or kg m-2].ea ::
ea[in] an array to which the amount of fluid entrained from the layer above during this call will be added [H ~> m or kg m-2].eb ::
eb[in] an array to which the amount of fluid entrained from the layer below during this call will be added [H ~> m or kg m-2].fluxes ::
fluxes[in] A structure containing pointers to any possible forcing fields. Unused fields have NULL ptrs.mld ::
mld[in] Mixed layer depth [Z ~> m]dt ::
dt[in] The amount of time covered by this call [T ~> s]us :: [in] A dimensional unit scaling type
tv ::
tv[in] A structure pointing to various thermodynamic variables.optics ::
opticsThe structure containing optical properties.cs :: The control structure returned by a previous call to call_tracer_register.
debug ::
debug[in] If true calculate checksumskpp_csp :: KPP control structure
nonlocaltrans :: [in] Non-local transport [nondim]
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 ::
minimum_forcing_depth[in] The smallest depth over which fluxes can be applied [H ~> m or kg m-2]h_bl :: Thickness of active mixing layer [H ~> m or kg m-2]
- Call to:
mom_interface_heights::convert_mld_to_ml_thicknessmom_error_handler::mom_error- Called from:
mom_diabatic_driver::adiabaticmom_diabatic_driver::diabatic_alemom_diabatic_driver::diabatic_ale_legacymom_diabatic_driver::layered_diabaticmom_offline_main::offline_advection_layermom_offline_main::offline_diabatic_ale
- subroutine mom_tracer_flow_control/call_tracer_stocks(h, stock_values, G, GV, US, CS, stock_names, stock_units, num_stocks, stock_index, got_min_max, global_min, global_max, xgmin, ygmin, zgmin, xgmax, ygmax, zgmax)
This subroutine calls all registered tracer packages to enable them to add to the surface state returned to the coupler. These routines are optional.
- Parameters:
g :: [in] The ocean’s grid structure.
gv :: [in] The ocean’s vertical grid structure.
h ::
h[in] Layer thicknesses [H ~> m or kg m-2]stock_values ::
stock_values[out] The globally mass-integrated amount of a tracer [kg conc].us :: [in] A dimensional unit scaling type
cs :: The control structure returned by a previous call to call_tracer_register.
stock_names ::
stock_names[out] Diagnostic names to use for each stock.stock_units ::
stock_units[out] Units to use in the metadata for each stock.num_stocks ::
num_stocks[out] The number of tracer stocks being returned.stock_index ::
stock_index[in] The integer stock index from stocks_constants_mod of the stock to be returned. If this is present and greater than 0, only a single stock can be returned.got_min_max ::
got_min_max[inout] Indicates whether the global min andglobal_min ::
global_min[out] The global minimum of each tracer [conc]global_max ::
global_max[out] The global maximum of each tracer [conc]xgmin ::
xgmin[out] The x-position of the global minimum in the units of GgeoLonT, often [degrees_E] or [km]ygmin ::
ygmin[out] The y-position of the global minimum in the units of GgeoLatT, often [degrees_N] or [km]zgmin ::
zgmin[out] The z-position of the global minimum [layer]xgmax ::
xgmax[out] The x-position of the global maximum in the units of GgeoLonT, often [degrees_E] or [km]ygmax ::
ygmax[out] The y-position of the global maximum in the units of GgeoLatT, often [degrees_N] or [km]zgmax ::
zgmax[out] The z-position of the global maximum [layer]
- Call to:
advection_test_tracer::advection_test_stockmom_cfc_cap::cfc_cap_stockregional_dyes::dye_stockmom_coms::efp_to_realideal_age_example::ideal_age_stockmarbl_tracers::marbl_tracers_stockmom_error_handler::mom_errormom_ocmip2_cfc::ocmip2_cfc_stockoil_tracer::oil_stockpseudo_salt_tracer::pseudo_salt_stockstore_stocks- Called from:
- subroutine mom_tracer_flow_control/store_stocks(pkg_name, ns, names, units, values, index, stock_values, set_pkg_name, max_ns, ns_tot, stock_names, stock_units)
This routine stores the stocks and does error handling for call_tracer_stocks.
- Parameters:
pkg_name ::
pkg_name[in] The tracer package namens ::
ns[in] The number of stocks associated with this tracer packagenames ::
names[in] Diagnostic names to use for each stock.units ::
units[in] Units to use in the metadata for each stock.values ::
values[in] The values of the tracer stocks [conc kg]index ::
index[in] The integer stock index from stocks_constants_mod of the stock to be returned. If this is present and greater than 0, only a single stock can be returned.stock_values ::
stock_values[inout] The master list of stock values [conc kg]set_pkg_name ::
set_pkg_name[inout] The name of the last tracer package whose stocks were stored for a specific index. This is used to trigger an error if there are redundant stocks.max_ns ::
max_ns[in] The maximum size of the master stock listns_tot ::
ns_tot[inout] The total number of stocks in the master liststock_names ::
stock_names[inout] Diagnostic names to use for each stock in the master liststock_units ::
stock_units[inout] Units to use in the metadata for each stock in the master list
- Call to:
- Called from:
- subroutine mom_tracer_flow_control/call_tracer_surface_state(sfc_state, h, G, GV, US, CS)
This subroutine calls all registered tracer packages to enable them to add to the surface state returned to the coupler. These routines are optional.
- Parameters:
sfc_state ::
sfc_state[inout] A structure containing fields that describe the surface state of the ocean.g :: [in] The ocean’s grid structure.
gv :: [in] The ocean’s vertical grid structure.
h ::
h[in] Layer thicknesses [H ~> m or kg m-2]us :: [in] A dimensional unit scaling type
cs :: The control structure returned by a previous call to call_tracer_register.
- Call to:
- subroutine mom_tracer_flow_control/tracer_flow_control_end(CS)
- Parameters:
cs :: The control structure returned by a previous call to call_tracer_register.
- Call to:
advection_test_tracer::advection_test_tracer_endmom_cfc_cap::cfc_cap_enddome_tracer::dome_tracer_enddyed_obc_tracer::dyed_obc_tracer_endideal_age_example::ideal_age_example_endisomip_tracer::isomip_tracer_endmarbl_tracers::marbl_tracers_endnw2_tracers::nw2_tracers_endmom_ocmip2_cfc::ocmip2_cfc_endoil_tracer::oil_tracer_endpseudo_salt_tracer::pseudo_salt_tracer_endregional_dyes::regional_dyes_endrgc_tracer::rgc_tracer_enduser_tracer_example::user_tracer_example_end- Called from: