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.

More…

Data Types

g_diag_type

Unknown.

g_tracer_common

The following type fields are common to ALL generic tracers and hence has to be instantiated only once.

g_tracer_type

Each generic tracer node is an instant of a FORTRAN type with the following member variables.

Functions/Subroutines

g_tracer_flux_init()

Unknown.

g_tracer_set_csdiag()

Unknown.

g_tracer_set_common()

g_tracer_get_common()

g_tracer_get_4d()

Unknown.

g_tracer_get_3d()

Unknown.

g_tracer_get_2d()

Unknown.

g_tracer_get_4d_val()

Unknown.

g_tracer_get_3d_val()

Unknown.

g_tracer_get_2d_val()

Unknown.

g_tracer_get_real()

Unknown.

g_tracer_get_string()

Unknown.

g_tracer_set_2d()

Unknown.

g_tracer_set_3d()

Unknown.

g_tracer_set_4d()

Unknown.

g_tracer_set_real()

Unknown.

g_tracer_send_diag()

g_tracer_get_name()

Unknown.

g_tracer_get_alias()

Unknown.

g_tracer_is_prog()

Is the tracer prognostic?

g_tracer_get_next()

get the next tracer in the list

g_tracer_vertdiff_g()

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_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.

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.

  • % src_var_record [integer,private] :: Unknown.

  • % 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.

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

Called from

mom_generic_tracer::initialize_mom_generic_tracer mom_generic_tracer::mom_generic_tracer_column_physics

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

Called from

mom_generic_tracer::initialize_mom_generic_tracer mom_generic_tracer::mom_generic_tracer_column_physics mom_generic_tracer::mom_generic_tracer_min_max mom_generic_tracer::mom_generic_tracer_stock mom_generic_tracer::register_mom_generic_tracer

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_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