rgc_tracer module reference¶
This module contains the routines used to set up a dynamically passive tracer. Set up and use passive tracers requires the following: (1) register_RGC_tracer (2) apply diffusion, physics/chemistry and advect the tracer.
Data Types¶
tracer control structure |
Functions/Subroutines¶
This subroutine is used to register tracer fields. |
|
Initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output. |
|
This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. |
|
Detailed Description¶
This module contains the routines used to set up a dynamically passive tracer. Set up and use passive tracers requires the following: (1) register_RGC_tracer (2) apply diffusion, physics/chemistry and advect the tracer.
Type Documentation¶
-
type
rgc_tracer/
rgc_tracer_cs
¶ tracer control structure
- Type fields:
%
coupled_tracers
[logical] :: These tracers are not offered to the coupler.%
tracer_ic_file
[character (len=200)] :: The full path to the IC file, or ” ” to initialize internally.%
time
[type(time_type),pointer] :: A pointer to the ocean model’s clock.%
tr_reg
[type( tracer_registry_type ),pointer] :: A pointer to the tracer registry.%
tr
[real(:,:,:,:),pointer] :: The array of tracers used in this package [kg kg-1].%
tr_aux
[real(:,:,:,:),pointer] :: The masked tracer concentration [kg kg-1].%
land_val
[real( ntr )] :: The value of tr used where land is masked out [kg kg-1].%
csl
[real] :: The length of the continental shelf (x direction) [km].%
lensponge
[real] :: the length of the sponge layer [km]%
mask_tracers
[logical] :: If true, tracers are masked out in massless layers.%
use_sponge
[logical] :: If true, sponges may be applied somewhere in the domain.%
diag
[type( diag_ctrl ),pointer] :: A structure that is used to regulate the timing of diagnostic output.%
tr_desc
[type( vardesc )( ntr )] :: Descriptions and metadata for the tracers.
Function/Subroutine Documentation¶
-
function
rgc_tracer/
register_rgc_tracer
(G, GV, param_file, CS, tr_Reg, restart_CS) [logical]¶ This subroutine is used to register tracer fields.
- Parameters:
g :: [in] The ocean’s grid structure
gv :: [in] The ocean’s vertical grid structure.
param_file :: [in] A structure indicating the open file to parse for model parameter values.
cs :: A pointer that is set to point to the control structure for this module (in/out).
tr_reg :: A pointer to the tracer registry.
restart_cs :: [inout] MOM restart control structure
- Call to:
mom_error_handler::mom_error
ntr
mom_tracer_registry::register_tracer
mom_io::var_desc
-
subroutine
rgc_tracer/
initialize_rgc_tracer
(restart, day, G, GV, h, diag, OBC, CS, layer_CSp, sponge_CSp)¶ Initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output.
- Parameters:
g :: [in] Grid structure.
gv :: [in] The ocean’s vertical grid structure.
restart :: [in] .true. if the fields have already been read from a restart file.
day :: [in] Time of the start of the run.
h :: [in] Layer thickness [H ~> m or kg m-2]
diag :: [in] Structure used to regulate diagnostic output.
obc :: This open boundary condition type specifies whether, where, and what open boundary conditions are used. This is not being used for now.
cs :: The control structure returned by a previous call to RGC_register_tracer.
layer_csp :: A pointer to the control structure
sponge_csp :: A pointer to the control structure for the sponges, if they are in use. Otherwise this may be unassociated.
- Call to:
mom_ale_sponge::get_ale_sponge_nz_data
mom_error_handler::mom_error
ntr
mom_io::query_vardesc
mom_sponge::set_up_sponge_field
-
subroutine
rgc_tracer/
rgc_tracer_column_physics
(h_old, h_new, ea, eb, fluxes, dt, G, GV, US, CS, evap_CFL_limit, minimum_forcing_depth)¶ This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers.
- Parameters:
g :: [in] The ocean’s grid structure.
gv :: [in] The ocean’s vertical grid structure.
h_old :: [in] Layer thickness before entrainment [H ~> m or kg m-2].
h_new :: [in] Layer thickness after entrainment [H ~> m or kg m-2].
ea :: [in] an array to which the amount of fluid entrained
eb :: [in] an array to which the amount of fluid entrained
fluxes :: [in] A structure containing pointers to any possible forcing fields. Unused fields have NULL ptrs.
dt :: [in] The amount of time covered by this call [T ~> s].
us :: [in] A dimensional unit scaling type
cs :: The control structure returned by a previous call.
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].
- Call to:
mom_tracer_diabatic::applytracerboundaryfluxesinout
ntr
mom_tracer_diabatic::tracer_vertdiff
-
subroutine
rgc_tracer/
rgc_tracer_end
(CS)¶ - Parameters:
cs :: The control structure returned by a previous call to RGC_register_tracer.
- Called from: