pseudo_salt_tracer module reference¶
A tracer package that mimics salinity.
Data Types¶
The control structure for the pseudo-salt tracer. |
Functions/Subroutines¶
Register the pseudo-salt tracer with MOM6, and return .true. |
|
Initialize the pseudo-salt tracer. |
|
Apply sources, sinks and diapycnal diffusion to the tracers in this package. |
|
Calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. |
|
This subroutine extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. |
|
Deallocate memory associated with this tracer package. |
Detailed Description¶
By Andrew Shao, 2016.
This file contains the routines necessary to model a passive tracer that uses the same boundary fluxes as salinity. At the beginning of the run, salt is set to the same as tvS. Any deviations between this salt-like tracer and tvS signifies a difference between how active and passive tracers are treated.
Type Documentation¶
-
type
pseudo_salt_tracer/
pseudo_salt_tracer_cs
¶ The control structure for the pseudo-salt tracer.
- Type fields:
%
tr_ptr
[type( tracer_type ),pointer] :: pointer to tracer inside Tr_reg%
time
[type(time_type),pointer] :: A pointer to the ocean model’s clock.%
tr_reg
[type( tracer_registry_type ),pointer] :: A pointer to the MOM tracer registry.%
ps
[real(:,:,:),pointer] :: The array of pseudo-salt tracer used in this subroutine [ppt].%
diff
[real(:,:,:),allocatable] :: The difference between the pseudo-salt tracer and the real salt [ppt].%
pseudo_salt_may_reinit
[logical] :: Hard coding since this should not matter.%
id_psd
[integer] :: A diagnostic ID.%
diag
[type( diag_ctrl ),pointer] :: A structure that is used to regulate the timing of diagnostic output.%
restart_csp
[type( mom_restart_cs ),pointer] :: A pointer to the restart control structure.%
tr_desc
[type( vardesc )] :: A description and metadata for the pseudo-salt tracer.
Function/Subroutine Documentation¶
-
function
pseudo_salt_tracer/
register_pseudo_salt_tracer
(HI, GV, param_file, CS, tr_Reg, restart_CS) [logical]¶ Register the pseudo-salt tracer with MOM6, and return .true. if the tracer is to be used.
- Parameters:
hi :: [in] A horizontal index type structure
gv :: [in] The ocean’s vertical grid structure
param_file :: [in] A structure to parse for run-time parameters
cs :: The control structure returned by a previous call to register_pseudo_salt_tracer.
tr_reg :: A pointer that is set to point to the control structure for the tracer advection and diffusion module
restart_cs :: [inout] MOM restart control structure
- Call to:
mom_error_handler::mom_error
mom_io::query_vardesc
mom_tracer_registry::register_tracer
mom_io::var_desc
-
subroutine
pseudo_salt_tracer/
initialize_pseudo_salt_tracer
(restart, day, G, GV, US, h, diag, OBC, CS, sponge_CSp, tv)¶ Initialize the pseudo-salt tracer.
- Parameters:
restart :: [in] .true. if the fields have already been read from a restart file.
day :: [in] Time of the start of the run
g :: [in] The ocean’s grid structure
gv :: [in] The ocean’s vertical grid structure
us :: [in] A dimensional unit scaling type
h :: [in] Layer thicknesses [H ~> m or kg m-2]
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 register_pseudo_salt_tracer
sponge_csp :: Pointer to the control structure for the sponges
tv :: [in] A structure containing various thermodynamic variables
- Call to:
-
subroutine
pseudo_salt_tracer/
pseudo_salt_tracer_column_physics
(h_old, h_new, ea, eb, fluxes, dt, G, GV, US, CS, tv, debug, KPP_CSp, nonLocalTrans, evap_CFL_limit, minimum_forcing_depth)¶ Apply sources, sinks and diapycnal diffusion to the tracers in this package.
- 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] The amount of fluid entrained from the layer above
eb :: [in] The amount of fluid entrained from the layer below
fluxes :: [in] A structure containing thermodynamic and tracer forcing fields
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 register_pseudo_salt_tracer
tv :: [in] A structure pointing to various thermodynamic variables
debug :: [in] If true calculate checksums
kpp_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 :: [in] The smallest depth over which fluxes can be applied [H ~> m or kg m-2]
- Call to:
mom_tracer_diabatic::applytracerboundaryfluxesinout
mom_cvmix_kpp::kpp_nonlocaltransport
mom_tracer_diabatic::tracer_vertdiff
-
function
pseudo_salt_tracer/
pseudo_salt_stock
(h, stocks, G, GV, CS, names, units, stock_index) [integer]¶ Calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned.
- Parameters:
g :: [in] The ocean’s grid structure
gv :: [in] The ocean’s vertical grid structure
h :: [in] Layer thicknesses [H ~> m or kg m-2]
stocks :: [out] The mass-weighted integrated amount of each tracer, in kg times concentration units [kg conc]
cs :: The control structure returned by a previous call to register_pseudo_salt_tracer
names :: [out] The names of the stocks calculated
units :: [out] The units of the stocks calculated
stock_index :: [in] The coded index of a specific stock being sought
- Return:
undefined :: Return value: the number of stocks calculated here
- Call to:
mom_spatial_means::global_mass_int_efp
mom_io::query_vardesc
- Called from:
-
subroutine
pseudo_salt_tracer/
pseudo_salt_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 register_pseudo_salt_tracer
-
subroutine
pseudo_salt_tracer/
pseudo_salt_tracer_end
(CS)¶ Deallocate memory associated with this tracer package.
- Parameters:
cs :: The control structure returned by a previous call to register_pseudo_salt_tracer
- Called from: