dome_tracer module reference¶
A tracer package that is used as a diagnostic in the DOME experiments.
Data Types¶
The DOME_tracer control structure. |
Functions/Subroutines¶
Register tracer fields and subroutines to be used with MOM. |
|
Initializes the NTR tracer fields in tr(:,:,:,:) and sets up the tracer output. |
|
This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. |
|
This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. |
|
Clean up memory allocations, if any. |
Detailed Description¶
By Robert Hallberg, 2002.
This file contains an example of the code that is needed to set up and use a set (in this case eleven) of dynamically passive tracers. These tracers dye the inflowing water or water initially within a range of latitudes or water initially in a range of depths.
A single subroutine is called from within each file to register each of the tracers for reinitialization and advection and to register the subroutine that initializes the tracers and set up their output and the subroutine that does any tracer physics or chemistry along with diapycnal mixing (included here because some tracers may float or swim vertically or dye diapycnal processes).
Type Documentation¶
-
type
dome_tracer/
dome_tracer_cs
¶ The DOME_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, perhaps in [g kg-1].%
land_val
[real( ntr )] :: The value of tr used where land is masked out, perhaps in [g kg-1].%
use_sponge
[logical] :: If true, sponges may be applied somewhere in the domain.%
stripe_width
[real] :: The meridional width of the vertical stripes in the initial condition for some of the DOME tracers, in [km] or [degrees_N] or [m].%
stripe_s_lat
[real] :: The southern latitude of the first vertical stripe in the initial condition for some of the DOME tracers, in [km] or [degrees_N] or [m].%
sheet_spacing
[real] :: The vertical spacing between successive horizontal sheets of tracer in the initial conditions for some of the DOME tracers [Z ~> m], and twice the thickness of these horizontal tracer sheets.%
ind_tr
[integer( ntr )] :: Indices returned by atmos_ocn_coupler_flux if it is used and the surface tracer concentrations are to be provided to the coupler.%
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
dome_tracer/
register_dome_tracer
(G, GV, US, param_file, CS, tr_Reg, restart_CS) [logical]¶ Register tracer fields and subroutines to be used with MOM.
- 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 :: [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 to the tracer registry.
restart_cs :: [inout] MOM restart control struct
- Call to:
mom_error_handler::mom_error
ntr
mom_tracer_registry::register_tracer
mom_io::var_desc
-
subroutine
dome_tracer/
initialize_dome_tracer
(restart, day, G, GV, US, h, diag, OBC, CS, sponge_CSp, tv)¶ Initializes the NTR tracer fields in tr(:,:,:,:) and sets up the tracer output.
- Parameters:
g :: [in] The ocean’s grid structure
gv :: [in] The ocean’s vertical grid structure
us :: [in] A dimensional unit scaling type
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 thicknesses [H ~> m or kg m-2]
diag :: [in] Structure used to regulate diagnostic output.
obc :: Structure specifying open boundary options.
cs :: The control structure returned by a previous call to DOME_register_tracer.
sponge_csp :: A pointer to the control structure for the sponges, if they are in use.
tv :: [in] A structure pointing to various thermodynamic variables
- Call to:
mom_error_handler::mom_error
ntr
mom_io::query_vardesc
mom_sponge::set_up_sponge_field
-
subroutine
dome_tracer/
dome_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.
The arguments to this subroutine are redundant in that h_new(k) = h_old(k) + ea(k) - eb(k-1) + eb(k) - ea(k+1)
- 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 thermodynamic and tracer 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 to DOME_register_tracer.
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
dome_tracer/
dome_tracer_surface_state
(sfc_state, h, G, GV, CS)¶ This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler.
- Parameters:
g :: [in] The ocean’s grid structure.
gv :: [in] The ocean’s vertical grid structure
sfc_state :: [inout] A structure containing fields that describe the surface state of the ocean.
h :: [in] Layer thickness [H ~> m or kg m-2].
cs :: The control structure returned by a previous call to DOME_register_tracer.
- Call to:
-
subroutine
dome_tracer/
dome_tracer_end
(CS)¶ Clean up memory allocations, if any.
- Parameters:
cs :: The control structure returned by a previous call to DOME_register_tracer.
- Called from: