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 ::
logicalThese 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), pointerA pointer to the ocean model’s clock.% tr_reg ::
type(tracer_registry_type), pointerA pointer to the tracer registry.% tr ::
real, dimension(:,:,:,:), pointerThe array of tracers used in this package [kg kg-1].% tr_aux ::
real, dimension(:,:,:,:), pointerThe masked tracer concentration [kg kg-1].% land_val ::
real, dimension(ntr)The value of tr used where land is masked out [kg kg-1].% csl ::
realThe length of the continental shelf (x direction) [km].% lensponge ::
realthe length of the sponge layer [km]% mask_tracers ::
logicalIf true, tracers are masked out in massless layers.% use_sponge ::
logicalIf true, sponges may be applied somewhere in the domain.% diag ::
type(diag_ctrl), pointerA structure that is used to regulate the timing of diagnostic output.% tr_desc ::
type(vardesc), dimension(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)
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 ::
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_errorntrmom_tracer_registry::register_tracermom_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 ::
restart[in] .true. if the fields have already been read from a restart file.day ::
day[in] Time of the start of the run.h ::
h[in] Layer thickness [H ~> m or kg m-2]diag ::
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_datamom_error_handler::mom_errorntrmom_io::query_vardescmom_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 ::
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 entrainedeb ::
eb[in] an array to which the amount of fluid entrainedfluxes ::
fluxes[in] A structure containing pointers to any possible forcing fields. Unused fields have NULL ptrs.dt ::
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 ::
minimum_forcing_depth[in] The smallest depth over which fluxes can be applied [H ~> m or kg m-2].
- Call to:
mom_tracer_diabatic::applytracerboundaryfluxesinoutntrmom_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: