g_tracer_utils module reference¶
g_tracer_utils()
module consists of core utility subroutines to be used by all generic tracer modules. These include the lowest level functions for adding, allocating memory, and record keeping of individual generic tracers irrespective of their physical/chemical nature. module consists of core utility subroutines to be used by all generic tracer modules. These include the lowest level functions for adding, allocating memory, and record keeping of individual generic tracers irrespective of their physical/chemical nature.
Data Types¶
Each generic tracer node is an instant of a FORTRAN type with the following member variables. |
|
Unknown. |
|
The following type fields are common to ALL generic tracers and hence has to be instantiated only once. |
Functions/Subroutines¶
Unknown. |
|
Unknown. |
|
Unknown. |
|
Unknown. |
|
Unknown. |
|
Unknown. |
|
Unknown. |
|
Unknown. |
|
Unknown. |
|
Unknown. |
|
Unknown. |
|
Unknown. |
|
Unknown. |
|
Unknown. |
|
Unknown. |
|
Unknown. |
|
Is the tracer prognostic? |
|
get the next tracer in the list |
|
get obc segment properties for each tracer |
|
Vertical Diffusion of a tracer node. |
Detailed Description¶
g_tracer_utils()
module consists of core utility subroutines to be used by all generic tracer modules. These include the lowest level functions for adding, allocating memory, and record keeping of individual generic tracers irrespective of their physical/chemical nature. module consists of core utility subroutines to be used by all generic tracer modules. These include the lowest level functions for adding, allocating memory, and record keeping of individual generic tracers irrespective of their physical/chemical nature.
Type Documentation¶
-
type
g_tracer_utils/
g_tracer_type
¶ Each generic tracer node is an instant of a FORTRAN type with the following member variables. These member fields are supposed to uniquely define an individual tracer. One such type shall be instantiated for EACH individual tracer.
- Type fields:
%
field
[real(:,:,:,:),pointer, private] :: Tracer concentration field in space (and time) MOM keeps the prognostic tracer fields at 3 time levels, hence 4D.%
trunoff
[real(:,:),allocatable, private] :: Tracer concentration in river runoff.%
requires_restart
[logical,private] :: Unknown.%
src_file
[character (len=fm_string_len),private] :: Tracer source filename.%
src_var_name
[character (len=fm_string_len),private] :: Tracer source variable name.%
src_var_unit
[character (len=fm_string_len),private] :: Tracer source variable units.%
src_var_gridspec
[character (len=fm_string_len),private] :: Tracer source grid file name.%
obc_src_file_name
[character (len=fm_string_len),private] :: Boundary condition tracer source filename.%
obc_src_field_name
[character (len=fm_string_len),private] :: Boundary condition tracer source fieldname.%
src_var_record
[integer,private] :: Unknown.%
runoff_added_to_stf
[logical,private] :: Has flux in from runoff been added to stf?%
requires_src_info
[logical,private] :: Unknown.%
src_var_unit_conversion
[real,private] :: This factor depends on the tracer. Ask Jasmin.%
src_var_valid_min
[real,private] :: Unknown.
-
type
g_tracer_utils/
g_diag_type
¶ Unknown.
- Type fields:
%
dummy
[integer,private] :: A dummy member, not part of the API.
-
type
g_tracer_utils/
g_tracer_common
¶ The following type fields are common to ALL generic tracers and hence has to be instantiated only once.
- Type fields:
%
isd
[integer,private] :: Domain extents.%
jsd
[integer,private] :: Start index of the data domain in the j-direction.
Function/Subroutine Documentation¶
-
subroutine
g_tracer_utils/
g_tracer_flux_init
(g_tracer)¶ Unknown.
- Parameters:
g_tracer :: Pointer to this tracer node
-
subroutine
g_tracer_utils/
g_tracer_set_csdiag
(diag_CS)¶ Unknown.
- Parameters:
diag_cs :: [in] Unknown
-
subroutine
g_tracer_utils/
g_tracer_set_common
(isc, iec, jsc, jec, isd, ied, jsd, jed, nk, ntau, axes, grid_tmask, grid_kmt, init_time)¶ - Parameters:
isc :: [in] Computation start index in i direction
iec :: [in] Computation end index in i direction
jsc :: [in] Computation start index in j direction
jec :: [in] Computation end index in j direction
isd :: [in] Data start index in i direction
ied :: [in] Data end index in i direction
jsd :: [in] Data start index in j direction
jed :: [in] Data end index in j direction
nk :: [in] Number of levels in k direction
ntau :: [in] Unknown
axes :: [in] Domain axes?
grid_tmask :: [in] Unknown
grid_kmt :: [in] Unknown
init_time :: [in] Unknown
-
subroutine
g_tracer_utils/
g_tracer_get_common
(isc, iec, jsc, jec, isd, ied, jsd, jed, nk, ntau, axes, grid_tmask, grid_mask_coast, grid_kmt, init_time, diag_CS)¶ - Parameters:
isc :: [out] Computation start index in i direction
iec :: [out] Computation end index in i direction
jsc :: [out] Computation start index in j direction
jec :: [out] Computation end index in j direction
isd :: [out] Data start index in i direction
ied :: [out] Data end index in i direction
jsd :: [out] Data start index in j direction
jed :: [out] Data end index in j direction
nk :: [out] Number of levels in k direction
ntau :: [out] Unknown
axes :: [out] Unknown
init_time :: [out] Unknown
grid_tmask :: Unknown
grid_mask_coast :: Unknown
grid_kmt :: Unknown
diag_cs :: Unknown
-
subroutine
g_tracer_utils/
g_tracer_get_4d
(g_tracer_list, name, member, array_ptr)¶ Unknown.
- Parameters:
name :: [in] Unknown
member :: [in] Unknown
g_tracer_list :: Unknown
array_ptr :: Unknown
-
subroutine
g_tracer_utils/
g_tracer_get_3d
(g_tracer_list, name, member, array_ptr)¶ Unknown.
- Parameters:
name :: [in] Unknown
member :: [in] Unknown
g_tracer_list :: Unknown
array_ptr :: Unknown
-
subroutine
g_tracer_utils/
g_tracer_get_2d
(g_tracer_list, name, member, array_ptr)¶ Unknown.
- Parameters:
name :: [in] Unknown
member :: [in] Unknown
g_tracer_list :: Unknown
array_ptr :: Unknown
-
subroutine
g_tracer_utils/
g_tracer_get_4d_val
(g_tracer_list, name, member, array, isd, jsd)¶ Unknown.
- Parameters:
name :: [in] Unknown
member :: [in] Unknown
g_tracer_list :: Unknown
isd :: [in] Unknown
jsd :: [in] Unknown
array :: [out] Unknown
-
subroutine
g_tracer_utils/
g_tracer_get_3d_val
(g_tracer_list, name, member, array, isd, jsd, ntau, positive)¶ Unknown.
- Parameters:
name :: [in] Unknown
member :: [in] Unknown
g_tracer_list :: Unknown
isd :: [in] Unknown
jsd :: [in] Unknown
ntau :: [in] Unknown
positive :: [in] Unknown
array :: [out] Unknown
-
subroutine
g_tracer_utils/
g_tracer_get_2d_val
(g_tracer_list, name, member, array, isd, jsd)¶ Unknown.
- Parameters:
name :: [in] Unknown
member :: [in] Unknown
g_tracer_list :: Unknown
isd :: [in] Unknown
jsd :: [in] Unknown
array :: [out] Unknown
-
subroutine
g_tracer_utils/
g_tracer_get_real
(g_tracer_list, name, member, value)¶ Unknown.
- Parameters:
name :: [in] Unknown
member :: [in] Unknown
g_tracer_list :: Unknown
value :: [out] Unknown
-
subroutine
g_tracer_utils/
g_tracer_get_string
(g_tracer_list, name, member, string)¶ Unknown.
- Parameters:
name :: [in] Unknown
member :: [in] Unknown
g_tracer_list :: Unknown
string :: [out] Unknown
-
subroutine
g_tracer_utils/
g_tracer_set_2d
(g_tracer_list, name, member, array, isd, jsd, weight)¶ Unknown.
- Parameters:
name :: [in] Unknown
member :: [in] Unknown
g_tracer_list :: Unknown
isd :: [in] Unknown
jsd :: [in] Unknown
array :: [in] Unknown
weight :: [in] Unknown
-
subroutine
g_tracer_utils/
g_tracer_set_3d
(g_tracer_list, name, member, array, isd, jsd, ntau)¶ Unknown.
- Parameters:
name :: [in] Unknown
member :: [in] Unknown
g_tracer_list :: Unknown
isd :: [in] Unknown
jsd :: [in] Unknown
ntau :: [in] Unknown
array :: [in] Unknown
-
subroutine
g_tracer_utils/
g_tracer_set_4d
(g_tracer_list, name, member, array, isd, jsd)¶ Unknown.
- Parameters:
name :: [in] Unknown
member :: [in] Unknown
g_tracer_list :: Unknown
isd :: [in] Unknown
jsd :: [in] Unknown
array :: [in] Unknown
-
subroutine
g_tracer_utils/
g_tracer_set_real
(g_tracer_list, name, member, value)¶ Unknown.
- Parameters:
name :: [in] Unknown
member :: [in] Unknown
g_tracer_list :: Unknown
value :: [in] Unknown
-
subroutine
g_tracer_utils/
g_tracer_send_diag
(g_tracer_list, model_time, tau)¶ - Parameters:
g_tracer_list :: pointer to the head of the generic tracer list
model_time :: [in] Time
tau :: [in] The time step for the field 4D field to be reported
-
subroutine
g_tracer_utils/
g_tracer_get_name
(g_tracer, string)¶ Unknown.
- Parameters:
g_tracer :: Unknown
string :: [out] Unknown
-
subroutine
g_tracer_utils/
g_tracer_get_alias
(g_tracer, string)¶ Unknown.
- Parameters:
g_tracer :: Unknown
string :: [out] Unknown
-
function
g_tracer_utils/
g_tracer_is_prog
(g_tracer) [logical]¶ Is the tracer prognostic?
- Parameters:
g_tracer :: Pointer to tracer node
-
subroutine
g_tracer_utils/
g_tracer_get_next
(g_tracer, g_tracer_next)¶ get the next tracer in the list
- Parameters:
g_tracer :: Pointer to tracer node
g_tracer_next :: Pointer to the next tracer node in the list
-
subroutine
g_tracer_utils/
g_tracer_get_obc_segment_props
(g_tracer_list, name, obc_has, src_file, src_var_name, lfac_in, lfac_out)¶ get obc segment properties for each tracer
- Parameters:
g_tracer_list :: pointer to the head of the generic tracer list
name :: [in] tracer name
obc_has :: [out] .true. if This tracer has OBC
lfac_in :: [out] OBC reservoir inverse lengthscale factor
lfac_out :: [out] OBC reservoir inverse lengthscale factor
src_file :: [out] OBC source file
src_var_name :: [out] OBC source variable in file
- Called from:
mom_generic_tracer::initialize_mom_generic_tracer
mom_generic_tracer::register_mom_generic_tracer_segments
-
subroutine
g_tracer_utils/
g_tracer_vertdiff_g
(g_tracer, h_old, ea, eb, dt, kg_m2_to_H, m_to_H, tau, mom)¶ Vertical Diffusion of a tracer node.
This subroutine solves a tridiagonal equation to find and set values of vertically diffused field for a tracer node.This is ported from GOLD (vertdiff) and simplified Since the surface flux from the atmosphere (stf) has the units of mol/m^2/sec the resulting tracer concentration has units of mol/Kg
- Parameters:
g_tracer :: Unknown
h_old :: [in] Layer thickness before entrainment, in m or kg m-2.
ea :: [in] The amount of fluid entrained from the layer above, in H.
eb :: [in] The amount of fluid entrained from the layer below, in H.
dt :: [in] The amount of time covered by this call, in s.
kg_m2_to_h :: [in] A conversion factor that translates kg m-2 into the units of h_old (H)
m_to_h :: [in] A conversion factor that translates m into the units of h_old (H).
tau :: [in] Unknown
mom :: [in] Unknown