7.1.3. g_tracer_utils module reference¶
<undocumented>
7.1.3.1. Data Types¶
<undocumented> |
|
<undocumented> |
|
<undocumented> |
|
<undocumented> |
7.1.3.2. Functions/Subroutines¶
Returns tracer arrays (nominally T and S) with massless layers filled with sensible values, by diffusing vertically with a small but constant diffusivity. |
|
Solves a tridiagonal system of equations using the algorithm from Press et al. |
|
This returns .true. |
7.1.3.3. Detailed Description¶
<undocumented>
7.1.3.4. Type Documentation¶
-
type
g_tracer_utils/g_tracer_type¶ - Type fields
%next[type( g_tracer_type ),pointer, private]%index[integer,private]%name[character(len=fm_string_len),private]%longname[character(len=fm_string_len),private]%alias[character(len=fm_string_len),private]%package_name[character(len=fm_string_len),private]%diag_name[character(len=fm_string_len),private]%standard_name[character(len=fm_string_len),private]%diag_field_units[character(len=fm_string_len),private]%diag_field_scaling_factor[real,private]%flux_gas_molwt[real,private]%flux_gas_name[character(len=fm_string_len),private]%flux_gas_type[character(len=fm_string_len),private]%flux_runoff_name[character(len=fm_string_len),private]%flux_wetdep_name[character(len=fm_string_len),private]%flux_drydep_name[character(len=fm_string_len),private]%implementation[character(len=fm_string_len),private]%_allocatable[real,private]%dimension[real(:,:,:),private]%flux_param[real,private]%flux_gas_param[real,private]%ice_restart_file[character(len=fm_string_len),private]%ocean_restart_file[character(len=fm_string_len),private]%flux_gas_restart_file[character(len=fm_string_len),private]%units[character(len=fm_string_len),private]%flux_units[character(len=fm_string_len),private]%field[real, dimension (:,:,:,:), pointer, private]%field4d_ptr[real, dimension (:,:,:,:), pointer, private]%field3d_ptr[real, dimension (:,:,:), pointer, private]%field_3d[real, dimension (:,:,:), pointer, private]%stf[real,private]%_null[real,private]%stf_gas[real,private]%deltap[real,private]%kw[real,private]%btf[real,private]%btm_reservoir[real,private]%trunoff[real,private]%runoff_tracer_flux[real,private]%wetdep[real,private]%drydep[real,private]%csurf[real,private]%alpha[real,private]%sc_no[real,private]%vmove[real,private]%vdiff[real,private]%vdiffuse_impl[real,private]%vdiffusec_impl[real,private]%boundary_forcing_tend[real,private]%tendency[real, dimension (:,:,:), pointer, private]%diag_id_field[integer,private]%diag_id_stf[integer,private]%diag_id_stf_gas[integer,private]%diag_id_deltap[integer,private]%diag_id_kw[integer,private]%diag_id_trunoff[integer,private]%diag_id_stf_gas_aux[integer,private]%diag_id_alpha[integer,private]%diag_id_csurf[integer,private]%diag_id_sc_no[integer,private]%diag_id_aux[integer,private]%diag_id_btf[integer,private]%diag_id_btm[integer,private]%diag_id_vmove[integer,private]%diag_id_vdiff[integer,private]%diag_id_vdiffuse_impl[integer,private]%diag_id_vdiffusec_impl[integer,private]%diag_id_boundary_forcing_tend[integer,private]%const_init_value[real,private]%initial_value[real,private]%sink_rate[real,private]%prog[logical,private]%move_vertical[logical,private]%diff_vertical[logical,private]%flux_gas[logical,private]%flux_runoff[logical,private]%flux_wetdep[logical,private]%flux_drydep[logical,private]%flux_bottom[logical,private]%has_btm_reservoir[logical,private]%runoff_added_to_stf[logical,private]%flux_gas_ind[integer,private]%flux_runoff_ind[integer,private]%flux_wetdep_ind[integer,private]%flux_drydep_ind[integer,private]%requires_restart[logical,private]%src_file[character(len=fm_string_len),private]%src_var_name[character(len=fm_string_len),private]%src_var_unit[character(len=fm_string_len),private]%src_var_gridspec[character(len=fm_string_len),private]%obc_src_file_name[character(len=fm_string_len),private]%obc_src_field_name[character(len=fm_string_len),private]%obc_lfac_in[real,private]%obc_lfac_out[real,private]%obc_has[logical,private]%src_var_record[integer,private]%requires_src_info[logical,private]%src_var_unit_conversion[real,private]%src_var_valid_min[real,private]%src_var_valid_max[real,private]
-
type
g_tracer_utils/g_diag_type¶ - Type fields
%next[type( g_diag_type ),pointer, private]%diag_id[integer,private]%name[character(len=fm_string_len),private]%longname[character(len=fm_string_len),private]%package_name[character(len=fm_string_len),private]%units[character(len=fm_string_len),private]%axes[integer(3),private]%init_time[type(time_type),private]%missing_value[real,private]%z_diag[integer,private]%field_ptr[real(:,:,:),pointer, private]
-
type
g_tracer_utils/g_diag_ctrl¶ - Type fields
%handle[integer,private]
-
type
g_tracer_utils/g_tracer_common¶ - Type fields
%diag_cs[type( g_diag_ctrl ),private]%isc[integer,private]%iec[integer,private]%jsc[integer,private]%jec[integer,private]%isd[integer,private]%ied[integer,private]%jsd[integer,private]%jed[integer,private]%nk[integer,private]%ntau[integer,private]%axes[integer, dimension (3), private]%init_time[type(time_type),private]%_allocatable[integer,private]%dimension[integer(:,:),private]%grid_tmask[real,private]%_null[integer,private]%_allocatable%dimension%grid_kmt[integer,private]%_null%grid_mask_coast[integer,private]%ice_restart_file[character(len=fm_string_len),private]%ocean_restart_file[character(len=fm_string_len),private]
7.1.3.5. Function/Subroutine Documentation¶
-
subroutine
g_tracer_utils/g_tracer_start_param_list(package_name)¶
-
subroutine
g_tracer_utils/g_tracer_end_param_list(package_name)¶
-
subroutine
g_tracer_utils/g_tracer_add_param_real(name, var, value, do_not_log)¶ - Parameters
do_not_log :: [in] If present and true, no stdout for parameter
-
subroutine
g_tracer_utils/g_tracer_add_param_logical(name, var, value, do_not_log)¶ - Parameters
do_not_log :: [in] If present and true, no stdout for parameter
-
subroutine
g_tracer_utils/g_tracer_add_param_integer(name, var, value, do_not_log)¶ - Parameters
do_not_log :: [in] If present and true, no stdout for parameter
-
subroutine
g_tracer_utils/g_tracer_add_param_string(name, var, value, do_not_log)¶ - Parameters
do_not_log :: [in] If present and true, no stdout for parameter
-
subroutine
g_tracer_utils/g_tracer_add(node_ptr, package, name, longname, units, prog, const_init_value, init_value, flux_gas, flux_gas_name, flux_runoff, flux_wetdep, flux_drydep, flux_gas_molwt, flux_gas_param, flux_param, flux_bottom, btm_reservoir, move_vertical, diff_vertical, sink_rate, flux_gas_restart_file, flux_gas_type, requires_src_info, standard_name, diag_name, diag_field_units, diag_field_scaling_factor, implementation)¶ - Call to
g_tracer_com
-
function
g_tracer_utils/remap_bounds(ilb, jlb, klb, array) [real]¶ - Called from
-
subroutine
g_tracer_utils/g_tracer_init(g_tracer)¶ - Call to
-
subroutine
g_tracer_utils/g_tracer_flux_init(g_tracer, verbosity)¶ - Parameters
verbosity :: [in] A 0-9 integer indicating a level of verbosity.
-
subroutine
g_tracer_utils/g_tracer_register_diag(g_tracer)¶ - Call to
g_register_diag_fieldg_tracer_com
-
subroutine
g_tracer_utils/g_tracer_coupler_set(g_tracer_list, IOB_struc, value)¶ - Call to
g_tracer_comfms_coupler_util::set_coupler_values
-
subroutine
g_tracer_utils/g_tracer_coupler_get(g_tracer_list, IOB_struc, weight, model_time)¶ - Call to
fms_coupler_util::extract_coupler_valuesg_tracer_com- Called from
-
subroutine
g_tracer_utils/g_tracer_coupler_accumulate(g_tracer_list, IOB_struc, weight, model_time)¶ - Call to
- Called from
-
subroutine
g_tracer_utils/g_tracer_set_csdiag(diag_CS)¶ - Call to
g_tracer_com
-
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)¶ - Call to
g_tracer_com
-
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)¶ - Call to
g_tracer_com- Called from
-
subroutine
g_tracer_utils/g_tracer_get_diagcs(diag_CS)¶
-
subroutine
g_tracer_utils/g_tracer_set_files(ice_restart_file, ocean_restart_file)¶ - Call to
g_tracer_com
-
subroutine
g_tracer_utils/g_tracer_get_4d(g_tracer_list, name, member, array_ptr)¶
-
subroutine
g_tracer_utils/g_tracer_get_3d(g_tracer_list, name, member, array_ptr)¶
-
subroutine
g_tracer_utils/g_tracer_get_2d(g_tracer_list, name, member, array_ptr)¶
-
subroutine
g_tracer_utils/g_tracer_get_4d_val(g_tracer_list, name, member, array, isd, jsd)¶
-
subroutine
g_tracer_utils/g_tracer_get_3d_val(g_tracer_list, name, member, array, isd, jsd, ntau, positive)¶
-
subroutine
g_tracer_utils/g_tracer_get_2d_val(g_tracer_list, name, member, array, isd, jsd)¶
-
subroutine
g_tracer_utils/g_tracer_get_real(g_tracer_list, name, member, value)¶
-
subroutine
g_tracer_utils/g_tracer_get_string(g_tracer_list, name, member, string)¶
-
subroutine
g_tracer_utils/g_tracer_set_2d(g_tracer_list, name, member, array, isd, jsd, weight)¶
-
subroutine
g_tracer_utils/g_tracer_set_3d(g_tracer_list, name, member, array, isd, jsd, ntau)¶
-
subroutine
g_tracer_utils/g_tracer_set_4d(g_tracer_list, name, member, array, isd, jsd)¶
-
subroutine
g_tracer_utils/g_tracer_set_real(g_tracer_list, name, member, value)¶
-
subroutine
g_tracer_utils/g_tracer_set_pointer_4d(g_tracer_list, name, member, array, ilb, jlb)¶
-
subroutine
g_tracer_utils/g_tracer_set_pointer_3d(g_tracer_list, name, member, array, ilb, jlb)¶
-
subroutine
g_tracer_utils/g_tracer_find(g_tracer, name)¶ - Called from
g_tracer_utils::g_tracer_get_pointer::g_tracer_get_2dg_tracer_utils::g_tracer_get_values::g_tracer_get_2d_valg_tracer_utils::g_tracer_get_pointer::g_tracer_get_3dg_tracer_utils::g_tracer_get_values::g_tracer_get_3d_valg_tracer_utils::g_tracer_get_pointer::g_tracer_get_4dg_tracer_utils::g_tracer_get_values::g_tracer_get_4d_valg_tracer_get_obc_segment_propsg_tracer_utils::g_tracer_get_values::g_tracer_get_realg_tracer_get_src_infog_tracer_utils::g_tracer_get_values::g_tracer_get_stringg_tracer_utils::g_tracer_set_values::g_tracer_set_2dg_tracer_utils::g_tracer_set_values::g_tracer_set_3dg_tracer_utils::g_tracer_set_values::g_tracer_set_4dg_tracer_utils::g_tracer_set_pointer::g_tracer_set_pointer_3dg_tracer_utils::g_tracer_set_pointer::g_tracer_set_pointer_4dg_tracer_utils::g_tracer_set_values::g_tracer_set_real
-
subroutine
g_tracer_utils/g_tracer_column_int(depth, ilb, jlb, var, dzt, rho_dzt, rd, k_level, integral, caller)¶ - Call to
g_tracer_get_commonmod_name
-
subroutine
g_tracer_utils/g_tracer_flux_at_depth(depth, ilb, jlb, var, dzt, k_level, frac, initialized, flux, caller)¶ - Call to
g_tracer_get_commonmod_name
-
subroutine
g_tracer_utils/g_tracer_send_diag(g_tracer_list, model_time, tau)¶ - Call to
g_tracer_comg_tracer_is_prog
-
subroutine
g_tracer_utils/g_tracer_traverse(g_tracer_list)¶
-
subroutine
g_tracer_utils/g_tracer_get_name(g_tracer, string)¶
-
subroutine
g_tracer_utils/g_tracer_get_alias(g_tracer, string)¶
-
function
g_tracer_utils/g_tracer_is_prog(g_tracer) [logical]¶
-
subroutine
g_tracer_utils/g_tracer_get_next(g_tracer, g_tracer_next)¶
-
subroutine
g_tracer_utils/g_tracer_vertfill(g_tracer, h, kappa_dt, tau, larger_h_denom)¶ Returns tracer arrays (nominally T and S) with massless layers filled with sensible values, by diffusing vertically with a small but constant diffusivity.
- Parameters
larger_h_denom :: [in] Present and true, add a large enough minimal thickness in the denominator of the flux calculations so that the fluxes are never so large as eliminate the transmission of information across groups of massless layers.
- Call to
g_tracer_com- Called from
g_tracer_vertdiff_ggeneric_cobalt::generic_cobalt_update_from_source
-
subroutine
g_tracer_utils/g_tracer_vertdiff_g(g_tracer, h_old, ea, eb, dt, kg_m2_to_H, m_to_H, tau, use_PressAlgorithm, do_vertfill_post)¶ - Call to
g_tracer_comg_tracer_vertfilltridiag_solver_press_et_al
-
subroutine
g_tracer_utils/tridiag_solver_press_et_al(a, b, c, r, u, n)¶ Solves a tridiagonal system of equations using the algorithm from Press et al.
@reference Numerical Recipes in Fortran77: The Art of Scientific Computing, 2nd Edition, by Press, Teukolsky, Vetterling, and Flannery, Cambridge University Press, Section 2.4 Tridiagonal and Diagonal Systems of Equations.
This subroutine solves a tridiagonal linear system of the form: a(i) * u(i-1) + b(i) * u(i) + c(i) * u(i+1) = r(i) for i = 1, …, n, where a, b, c are the sub-diagonal, diagonal, and super-diagonal elements, r is the right-hand side, and u is the solution vector.
- Parameters
a :: [in] Sub-diagonal coefficients (a(1) unused)
b :: [in] Diagonal coefficients
c :: [in] Super-diagonal coefficients (c(n) unused)
r :: [in] Right-hand side vector
u :: [inout] Solution vector (input ignored, output overwritten)
n :: [in] Number of equations
- Called from
-
subroutine
g_tracer_utils/g_diag_field_add(node_ptr, diag_id, package_name, name, axes, init_time, longname, units, missing_value, Z_diag, field_ptr, Zname, Zlongname, Zunits)¶ - Call to
-
subroutine
g_tracer_utils/g_tracer_print_info(g_tracer_list, verbosity)¶
-
subroutine
g_tracer_utils/g_tracer_get_src_info(g_tracer_list, name, src_file, src_var_name, src_var_unit, src_var_gridspec, src_var_record, src_var_valid_min, src_var_valid_max)¶ - Call to
-
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)¶ - Parameters
obc_has :: [out] .true. if This tracer has OBC
src_var_name :: [out] OBC source file and variable in file
lfac_out :: [out] OBC reservoir inverse lengthscale factor
- Call to
-
function
g_tracer_utils/g_register_diag_field(module_name, field_name, axes, init_time, long_name, units, missing_value, range, mask_variant, standard_name, verbose, do_not_log, err_msg, interp_method, tile_count, cmor_field_name, cmor_long_name, cmor_units, cmor_standard_name, cell_methods, x_cell_method, y_cell_method, v_cell_method, diag_CS) [integer]¶ - Return
undefined :: An integer handle for a diagnostic array.
- Parameters
module_name :: [in] Name of this module, usually “ocean_model” or “ice_shelf_model”
field_name :: [in] Name of the diagnostic field
init_time :: [in] Time at which a field is first available?
long_name :: [in] Long name of a field.
units :: [in] Units of a field.
standard_name :: [in] Standardized name associated with a field
missing_value :: [in] A value that indicates missing values.
range :: [in] Valid range of a variable (not used in MOM?)
mask_variant :: [in] If true a logical mask must be provided with post_data calls (not used in MOM?)
verbose :: [in] If true, FMS is verbose (not used in MOM?)
do_not_log :: [in] If true, do not log something (not used in MOM?)
err_msg :: [out] String into which an error message might be placed (not used in MOM?)
interp_method :: [in] no clue (not used in MOM?)
tile_count :: [in] no clue (not used in MOM?)
cmor_field_name :: [in] CMOR name of a field
cmor_long_name :: [in] CMOR long name of a field
cmor_units :: [in] CMOR units of a field
cmor_standard_name :: [in] CMOR standardized name associated with a field
cell_methods :: [in] String to append as cell_methods attribute. Use ‘’ to have no attribute. If present, this overrides the default constructed from the default for each individual axis direction.
x_cell_method :: [in] Specifies the cell method for the x-direction. Use ‘’ have no method.
y_cell_method :: [in] Specifies the cell method for the y-direction. Use ‘’ have no method.
v_cell_method :: [in] Specifies the cell method for the vertical direction. Use ‘’ have no method.
- Call to
- Called from
-
function
g_tracer_utils/g_send_data_0d(diag_field_id, field, time, err_msg, diag_CS) [logical]¶ - Called from
-
function
g_tracer_utils/g_send_data_1d(diag_field_id, field, time, is_in, mask, rmask, ie_in, weight, err_msg, diag_CS) [logical]¶ - Called from
-
function
g_tracer_utils/g_send_data_2d(diag_field_id, field, time, is_in, js_in, mask, rmask, ie_in, je_in, weight, err_msg, diag_CS) [logical]¶ - Called from
-
function
g_tracer_utils/g_send_data_3d(diag_field_id, field, time, is_in, js_in, ks_in, mask, rmask, ie_in, je_in, ke_in, weight, err_msg, diag_CS) [logical]¶ - Called from
-
function
g_tracer_utils/is_root_pe() [logical]¶ This returns .true. if the current PE is the root PE.