mom_is_diag_mediator module reference
The subroutines here provide convenient wrappers to the FMS diag_manager interfaces with additional diagnostic capabilities.
Data Types
A group of 1D axes that comprise a 1D/2D/3D mesh. |
|
This type is used to represent a diagnostic at the diag_mediator level. |
|
The |
Functions/Subroutines
Set up the grid and axis information for use by the ice shelf model. |
|
Attaches the id of cell areas to axes groups for use with cell_measures. |
|
Define a group of "axes" from a list of handles and associate a mask with it. |
|
Set up the array extents for doing diagnostics. |
|
Make a real ice shelf scalar diagnostic available for averaging or output. |
|
Make a real 2-d array diagnostic available for averaging or output. |
|
Make a real 2-d array diagnostic available for averaging or output using a |
|
Enable the accumulation of time averages over the specified time interval. |
|
Enable the accumulation of time averages over the specified time interval in time units. |
|
Call this subroutine to avoid averaging any offered fields. |
|
Indicate whether averaging diagnostics is currently enabled. |
|
This subroutine initializes the diag_manager via the MOM6 infrastructure. |
|
This function returns the valid end time for use with diagnostics that are handled outside of the MOM6 diagnostics infrastructure. |
|
Returns the "diag_mediator" handle for a group (native, CMOR, ...) of diagnostics derived from one field. |
|
Returns True if either the native or CMOR version of the diagnostic were registered. |
|
Returns an FMS id from register_diag_field_fms (the diag_manager routine) after expanding axes (axes-group) into handles and conditionally adding an FMS area_id for cell_measures. |
|
Create a diagnostic type and attached to list. |
|
Attaches "cell_methods" attribute to a variable based on defaults for |
|
Registers a non-array scalar diagnostic, returning an integer handle. |
|
Registers a non-array scalar diagnostic, returning an integer handle. |
|
Registers a static diagnostic, returning an integer handle. |
|
Add a description of an option to the documentation file. |
|
Initialize the MOM_IS diag_mediator and opens the available diagnostics file, if appropriate. |
|
Sets up the 2d masks for native diagnostics. |
|
Prevent the registration of additional diagnostics, so that the creation of files can occur. |
|
Deallocate memory associated with the MOM_IS diag mediator. |
|
Returns a new diagnostic id, it may be necessary to expand the diagnostics array. |
|
Initializes a |
|
Make a new diagnostic. |
|
Log a diagnostic to the available diagnostics file. |
|
Log the diagnostic chksum to the chksum diag file. |
|
Fakes a register of a diagnostic to find out if an obsolete parameter appears in the diag_table. |
|
Finishes the diag manager reduction methods as needed for the time_step. |
Detailed Description
The subroutines here provide convenient wrappers to the FMS diag_manager interfaces with additional diagnostic capabilities.
Type Documentation
- type mom_is_diag_mediator/axes_grp
A group of 1D axes that comprise a 1D/2D/3D mesh.
- Type fields:
% id ::
character(len=15)The id string for this particular combination of handles.% rank ::
integerNumber of dimensions in the list of axes.% handles ::
integer, dimension(:), allocatableHandles to 1D axes.% diag_cs ::
type(diag_ctrl), pointerCircular link back to the main diagnostics control structure (Used to avoid passing said structure into every possible call).% x_cell_method ::
character(len=9)Default nature of data representation, if axes group includes x-direction.% y_cell_method ::
character(len=9)Default nature of data representation, if axes group includes y-direction.% is_h_point ::
logicalIf true, indicates that this axes group is for an h-point located field.% is_q_point ::
logicalIf true, indicates that this axes group is for a q-point located field.% is_u_point ::
logicalIf true, indicates that this axes group is for a u-point located field.% is_v_point ::
logicalIf true, indicates that this axes group is for a v-point located field.% id_area ::
integerThe diag_manager id for area to be used for cell_measure of variables with this% mask2d ::
real, dimension(:,:), pointerMask for 2d (x-y) axes [nondim].% mask2d_comp ::
real, dimension(:,:), pointerMask for 2-d axes on the computational domain for this diagnostic [nondim].
- type mom_is_diag_mediator/diag_type
This type is used to represent a diagnostic at the diag_mediator level.
- Type fields:
% in_use ::
logical, privateTrue if this entry is being used.% fms_diag_id ::
integer, privateUnderlying FMS diag_manager id.% debug_str ::
character(len=64), privateThe diagnostic name and module for FATAL errors and debugging.% axes ::
type(axes_grp), pointer, privateThe axis group for this diagnostic.% next ::
type(diag_type), pointer, privatePointer to the next diagnostic.% conversion_factor ::
real, privateIf non-zero, a factor to multiply data by before posting to FMS, often including factors to undo internal scaling in units of [a A-1 ~> 1].
- type mom_is_diag_mediator/diag_ctrl
The
diag_ctrl()data type contains times to regulate diagnostics along with masks and axes to use with diagnostics, and a list of structures with data about each diagnostic. data type contains times to regulate diagnostics along with masks and axes to use with diagnostics, and a list of structures with data about each diagnostic.- Type fields:
% axesb1 ::
type(axes_grp)The following are 3D and 2D axis groups defined for output. The names indicate the horizontal locations (B, T, Cu, or Cv) and vertical locations (here just 1).% axest1 ::
type(axes_grp)The following are 3D and 2D axis groups defined for output. The names indicate the horizontal locations (B, T, Cu, or Cv) and vertical locations (here just 1).% axescu1 ::
type(axes_grp)The following are 3D and 2D axis groups defined for output. The names indicate the horizontal locations (B, T, Cu, or Cv) and vertical locations (here just 1).% axescv1 ::
type(axes_grp)The following are 3D and 2D axis groups defined for output. The names indicate the horizontal locations (B, T, Cu, or Cv) and vertical locations (here just 1).% available_diag_doc_unit ::
integerThe unit number of a diagnostic documentation file. This file is open if available_diag_doc_unit is > 0.% chksum_iounit ::
integerThe unit number of a diagnostic documentation file. This file is open if available_diag_doc_unit is > 0.% diag_as_chksum ::
logicalIf true, log chksums in a text file instead of posting diagnostics.% show_call_tree ::
logicalDisplay the call tree while running. Set by VERBOSITY level.% index_space_axes ::
logicalIf true, diagnostic horizontal coordinates axes are in index space.% is ::
integerThe start i-index of cell centers within the computational domain.% ie ::
integerThe end i-index of cell centers within the computational domain.% js ::
integerThe start j-index of cell centers within the computational domain.% je ::
integerThe end j-index of cell centers within the computational domain.% isd ::
integerThe start i-index of cell centers within the data domain.% ied ::
integerThe end i-index of cell centers within the data domain.% jsd ::
integerThe start j-index of cell centers within the data domain.% jed ::
integerThe end j-index of cell centers within the data domain.% time_int ::
realThe time interval for any fields that are offered for averaging [s].% time_end ::
type(time_type)The end time of the valid interval for any offered field.% ave_enabled ::
logicalTrue if averaging is enabled.% axesnull ::
type(axes_grp)An axis group for scalars.% mask2dt ::
real, dimension(:,:), pointer2D mask array for cell-center points [nondim]% mask2dbu ::
real, dimension(:,:), pointer2D mask array for cell-corner points [nondim]% mask2dcu ::
real, dimension(:,:), pointer2D mask array for east-face points [nondim]% mask2dcv ::
real, dimension(:,:), pointer2D mask array for north-face points [nondim]% mask2dt_comp ::
real, dimension(:,:), pointer2D cell-center mask on the computational domain [nondim]% diags ::
type(diag_type), dimension(:), allocatableThe list of diagnostics.% next_free_diag_id ::
integerThe next unused diagnostic ID.% missing_value ::
realdefault missing value to be sent to ALL diagnostics registrations [various]% g ::
type(ocean_grid_type), pointerThe ocean grid type.% us ::
type(unit_scale_type), pointerA dimensional unit scaling type.% num_chksum_diags ::
integerNumber of checksum-only diagnostics.
Function/Subroutine Documentation
- subroutine mom_is_diag_mediator/set_is_axes_info(G, diag_cs, axes_set_name)
Set up the grid and axis information for use by the ice shelf model.
- Parameters:
g :: [in] The horizontal grid type
diag_cs ::
diag_cs[inout] A structure that is used to regulate diagnostic outputaxes_set_name ::
axes_set_name[in] A name to use for this set of axes. The default is “ice”.
- Call to:
- subroutine mom_is_diag_mediator/diag_register_area_ids(diag_cs, id_area_t, id_area_q)
Attaches the id of cell areas to axes groups for use with cell_measures.
- Parameters:
diag_cs ::
diag_cs[inout] Diagnostics control structureid_area_t ::
id_area_t[in] Diag_mediator id for area of h-cellsid_area_q ::
id_area_q[in] Diag_mediator id for area of q-cells
- subroutine mom_is_diag_mediator/define_axes_group(diag_cs, handles, axes, x_cell_method, y_cell_method, is_h_point, is_q_point, is_u_point, is_v_point)
Define a group of “axes” from a list of handles and associate a mask with it.
- Parameters:
diag_cs ::
diag_cs[in] Structure used to regulate diagnostic outputhandles ::
handles[in] A list of 1D axis handles that define the axis groupaxes ::
axes[out] The group of axes that is set up herex_cell_method ::
x_cell_method[in] A x-direction cell method used to construct the “cell_methods” attribute in CF conventiony_cell_method ::
y_cell_method[in] A y-direction cell method used to construct the “cell_methods” attribute in CF conventionis_h_point ::
is_h_point[in] If true, indicates this axes group for h-point located fieldsis_q_point ::
is_q_point[in] If true, indicates this axes group for q-point located fieldsis_u_point ::
is_u_point[in] If true, indicates this axes group for u-point located fieldsis_v_point ::
is_v_point[in] If true, indicates this axes group for v-point located fields
- Call to:
- Called from:
- subroutine mom_is_diag_mediator/set_is_diag_mediator_grid(G, diag_cs)
Set up the array extents for doing diagnostics.
- Parameters:
g :: [inout] The horizontal grid type
diag_cs ::
diag_cs[inout] Structure used to regulate diagnostic output
- subroutine mom_is_diag_mediator/post_is_data_0d(diag_field_id, field, diag_cs, is_static)
Make a real ice shelf scalar diagnostic available for averaging or output.
- Parameters:
diag_field_id ::
diag_field_id[in] The id for an output variable returned by a previous call to register_MOM_IS_diag_field.field ::
field[in] real value being offered for output or averaging in internally scaled arbitrary units [A ~> a]diag_cs ::
diag_cs[in] Structure used to regulate diagnostic outputis_static ::
is_static[in] If true, this is a static field that is always offered.
- subroutine mom_is_diag_mediator/post_is_data_2d(diag_field_id, field, diag_cs, is_static, mask)
Make a real 2-d array diagnostic available for averaging or output.
- Parameters:
diag_field_id ::
diag_field_id[in] The id for an output variable returned by a previous call to register_MOM_IS_diag_field.field ::
field[in] 2-d array being offered for output or averaging in internally scaled arbitrary units [A ~> a]diag_cs ::
diag_cs[in] Structure used to regulate diagnostic outputis_static ::
is_static[in] If true, this is a static field that is always offered.mask ::
mask[in] If present, use this real array as the data mask [nondim]
- subroutine mom_is_diag_mediator/post_data_2d_low(diag, field, diag_cs, is_static, mask)
Make a real 2-d array diagnostic available for averaging or output using a
diag_type()instead of an integer id. instead of an integer id.- Parameters:
diag ::
diag[in] A structure describing the diagnostic to postfield ::
field[in] 2-d array being offered for output or averaging in internally scaled arbitrary units [A ~> a]diag_cs ::
diag_cs[in] Structure used to regulate diagnostic outputis_static ::
is_static[in] If true, this is a static field that is always offered.mask ::
mask[in] If present, use this real array as the data mask [nondim]
- Called from:
- subroutine mom_is_diag_mediator/enable_averaging(time_int_in, time_end_in, diag_cs)
Enable the accumulation of time averages over the specified time interval.
- Parameters:
time_int_in ::
time_int_in[in] The time interval [s] over which any values that are offered are valid.time_end_in ::
time_end_in[in] The end time of the valid intervaldiag_cs ::
diag_cs[inout] Structure used to regulate diagnostic output
- subroutine mom_is_diag_mediator/enable_averages(time_int, time_end, diag_CS, T_to_s)
Enable the accumulation of time averages over the specified time interval in time units.
- Parameters:
time_int ::
time_int[in] The time interval over which any values that are offered are valid [T ~> s].time_end ::
time_end[in] The end time of the valid interval.diag_cs :: [inout] A structure that is used to regulate diagnostic output
t_to_s :: [in] A conversion factor for time_int to seconds [s T-1 ~> 1].
- Called from:
- subroutine mom_is_diag_mediator/disable_averaging(diag_cs)
Call this subroutine to avoid averaging any offered fields.
- Parameters:
diag_cs ::
diag_cs[inout] Structure used to regulate diagnostic output- Called from:
- function mom_is_diag_mediator/query_averaging_enabled(diag_cs, time_int, time_end)
Indicate whether averaging diagnostics is currently enabled.
- Parameters:
diag_cs ::
diag_cs[in] Structure used to regulate diagnostic outputtime_int ::
time_int[out] Current setting of diag_cstime_int [s]time_end ::
time_end[out] Current setting of diag_cstime_end
- subroutine mom_is_diag_mediator/mom_is_diag_mediator_infrastructure_init(err_msg)
This subroutine initializes the diag_manager via the MOM6 infrastructure.
- Parameters:
err_msg ::
err_msg[out] An error message
- function mom_is_diag_mediator/get_diag_time_end(diag_cs)
This function returns the valid end time for use with diagnostics that are handled outside of the MOM6 diagnostics infrastructure.
- Parameters:
diag_cs ::
diag_cs[in] Structure used to regulate diagnostic output
- function mom_is_diag_mediator/register_mom_is_diag_field(module_name, field_name, axes_in, 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, conversion)
Returns the “diag_mediator” handle for a group (native, CMOR, …) of diagnostics derived from one field.
- Return:
undefined :: The returned diagnostic handle
- Parameters:
module_name ::
module_name[in] Name of this module, usually “ice_model”field_name ::
field_name[in] Name of the diagnostic fieldaxes_in ::
axes_in[in] Container with up to 3 integer handles that indicates axes for this fieldinit_time ::
init_time[in] Time at which a field is first available?long_name ::
long_name[in] Long name of a field.units ::
units[in] Units of a field.standard_name ::
standard_name[in] Standardized name associated with a fieldmissing_value ::
missing_value[in] A value that indicates missing values in output files, in unscaled arbitrary units [a]range ::
range[in] Valid range of a variable (not used in MOM?) in arbitrary units [a]mask_variant ::
mask_variant[in] If true a logical mask must be provided with post_IS_data calls (not used in MOM?)verbose ::
verbose[in] If true, FMS is verbose (not used in MOM?)do_not_log ::
do_not_log[in] If true, do not log something (not used in MOM?)err_msg ::
err_msg[out] String into which an error message might be placed (not used in MOM?)interp_method ::
interp_method[in] If ‘none’ indicates the field should not be interpolated as a scalartile_count ::
tile_count[in] no clue (not used in MOM?)cmor_field_name ::
cmor_field_name[in] CMOR name of a fieldcmor_long_name ::
cmor_long_name[in] CMOR long name of a fieldcmor_units ::
cmor_units[in] CMOR units of a fieldcmor_standard_name ::
cmor_standard_name[in] CMOR standardized name associated with a fieldcell_methods ::
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 ::
x_cell_method[in] Specifies the cell method for the x-direction. Use ‘’ have no method.y_cell_method ::
y_cell_method[in] Specifies the cell method for the y-direction. Use ‘’ have no method.conversion ::
conversion[in] A value to multiply data by before writing to files, often including factors to undo internal scaling and in units of [a A-1 ~> 1]
- Call to:
attach_cell_methodslog_available_diagregister_diag_field_expand_cmormom_string_functions::trim_trailing_commas
- function mom_is_diag_mediator/register_diag_field_expand_cmor(dm_id, 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, conversion)
Returns True if either the native or CMOR version of the diagnostic were registered. Updates ‘dm_id’ after calling
register_diag_field_expand_axes()for both native and CMOR variants of the field. for both native and CMOR variants of the field.- Parameters:
dm_id ::
dm_id[inout] The diag_mediator ID for this diagnostic groupmodule_name ::
module_name[in] Name of this module, usually “ice_model” or “ice_model_fast”field_name ::
field_name[in] Name of the diagnostic fieldaxes ::
axes[in] Container with up to 3 integer handles that indicates axes for this fieldinit_time ::
init_time[in] Time at which a field is first available?long_name ::
long_name[in] Long name of a field.units ::
units[in] Units of a field.standard_name ::
standard_name[in] Standardized name associated with a fieldmissing_value ::
missing_value[in] A value that indicates missing values in output files, in unscaled arbitrary units [a]range ::
range[in] Valid range of a variable (not used in MOM?) in arbitrary units [a]mask_variant ::
mask_variant[in] If true a logical mask must be provided with post_data calls (not used in MOM?)verbose ::
verbose[in] If true, FMS is verbose (not used in MOM?)do_not_log ::
do_not_log[in] If true, do not log something (not used in MOM?)err_msg ::
err_msg[out] String into which an error message might be placed (not used in MOM?)interp_method ::
interp_method[in] If ‘none’ indicates the field should not be interpolated as a scalartile_count ::
tile_count[in] no clue (not used in MOM?)cmor_field_name ::
cmor_field_name[in] CMOR name of a fieldcmor_long_name ::
cmor_long_name[in] CMOR long name of a fieldcmor_units ::
cmor_units[in] CMOR units of a fieldcmor_standard_name ::
cmor_standard_name[in] CMOR standardized name associated with a fieldcell_methods ::
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 ::
x_cell_method[in] Specifies the cell method for the x-direction. Use ‘’ have no method.y_cell_method ::
y_cell_method[in] Specifies the cell method for the y-direction. Use ‘’ have no method.conversion ::
conversion[in] A value to multiply data by before writing to files, often including factors to undo internal scaling and in units of [a A-1 ~> 1]
- Call to:
add_diag_to_listattach_cell_methodsregister_diag_field_expand_axes- Called from:
- function mom_is_diag_mediator/register_diag_field_expand_axes(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)
Returns an FMS id from register_diag_field_fms (the diag_manager routine) after expanding axes (axes-group) into handles and conditionally adding an FMS area_id for cell_measures.
- Parameters:
module_name ::
module_name[in] Name of this module, usually “ocean_model” or “ice_shelf_model”field_name ::
field_name[in] Name of the diagnostic fieldaxes ::
axes[in] Container with up to 3 integer handles that indicates axes for this fieldinit_time ::
init_time[in] Time at which a field is first available?long_name ::
long_name[in] Long name of a field.units ::
units[in] Units of a field.standard_name ::
standard_name[in] Standardized name associated with a fieldmissing_value ::
missing_value[in] A value that indicates missing values in output files, in unscaled arbitrary units [a]range ::
range[in] Valid range of a variable (not used in MOM?) in arbitrary units [a]mask_variant ::
mask_variant[in] If true a logical mask must be provided with post_data calls (not used in MOM?)verbose ::
verbose[in] If true, FMS is verbose (not used in MOM?)do_not_log ::
do_not_log[in] If true, do not log something (not used in MOM?)err_msg ::
err_msg[out] String into which an error message might be placed (not used in MOM?)interp_method ::
interp_method[in] If ‘none’ indicates the field should not be interpolated as a scalartile_count ::
tile_count[in] no clue (not used in MOM?)
- Called from:
- subroutine mom_is_diag_mediator/add_diag_to_list(diag_cs, dm_id, fms_id, this_diag, axes, module_name, field_name)
Create a diagnostic type and attached to list.
- Parameters:
diag_cs ::
diag_csDiagnostics mediator control structuredm_id ::
dm_id[inout] The diag_mediator ID for this diagnostic groupfms_id ::
fms_id[in] The FMS diag_manager ID for this diagnosticthis_diag ::
this_diagThis diagnosticaxes ::
axes[in] Container with up to 3 integer handles that indicates axes for this fieldmodule_name ::
module_name[in] Name of this module, usually “ocean_model” or “ice_shelf_model”field_name ::
field_name[in] Name of diagnostic
- Call to:
- Called from:
- subroutine mom_is_diag_mediator/attach_cell_methods(id, axes, ostring, cell_methods, x_cell_method, y_cell_method)
Attaches “cell_methods” attribute to a variable based on defaults for
axes_grp()or optional arguments. or optional arguments.- Parameters:
id ::
id[in] Handle to diagnosticaxes ::
axes[in] Container with up to 3 integer handles that indicates axes for this fieldostring ::
ostring[out] The cell_methods strings that would appear in the filecell_methods ::
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 ::
x_cell_method[in] Specifies the cell method for the x-direction. Use ‘’ have no method.y_cell_method ::
y_cell_method[in] Specifies the cell method for the y-direction. Use ‘’ have no method.
- Called from:
- function mom_is_diag_mediator/register_scalar_field_axes(module_name, field_name, axes, init_time, long_name, units, missing_value, range, standard_name, do_not_log, err_msg, interp_method, cmor_field_name, cmor_long_name, cmor_units, cmor_standard_name, conversion)
Registers a non-array scalar diagnostic, returning an integer handle.
- Return:
undefined :: An integer handle for a diagnostic array.
- Parameters:
module_name ::
module_name[in] Name of this module, usually “ocean_model” or “ice_shelf_model”field_name ::
field_name[in] Name of the diagnostic fieldaxes ::
axes[in] Container with up to 3 integer handles that indicates axes for this fieldinit_time ::
init_time[in] Time at which a field is first available?long_name ::
long_name[in] Long name of a field.units ::
units[in] Units of a field.standard_name ::
standard_name[in] Standardized name associated with a fieldmissing_value ::
missing_value[in] A value that indicates missing values in output files, in unscaled arbitrary units [a]range ::
range[in] Valid range of a variable (not used in MOM?) in arbitrary units [a]do_not_log ::
do_not_log[in] If true, do not log something (not used in MOM?)err_msg ::
err_msg[out] String into which an error message might be placed (not used in MOM?)interp_method ::
interp_method[in] If ‘none’ indicates the field should not be interpolated as a scalarcmor_field_name ::
cmor_field_name[in] CMOR name of a fieldcmor_long_name ::
cmor_long_name[in] CMOR long name of a fieldcmor_units ::
cmor_units[in] CMOR units of a fieldcmor_standard_name ::
cmor_standard_name[in] CMOR standardized name associated with a fieldconversion ::
conversion[in] A value to multiply data by before writing to files, often including factors to undo internal scaling and in units of [a A-1 ~> 1]
- function mom_is_diag_mediator/register_scalar_field_cs(module_name, field_name, init_time, diag_cs, long_name, units, missing_value, range, standard_name, do_not_log, err_msg, interp_method, cmor_field_name, cmor_long_name, cmor_units, cmor_standard_name, conversion)
Registers a non-array scalar diagnostic, returning an integer handle.
- Return:
undefined :: An integer handle for a diagnostic array.
- Parameters:
module_name ::
module_name[in] Name of this module, usually “ocean_model” or “ice_shelf_model”field_name ::
field_name[in] Name of the diagnostic fieldinit_time ::
init_time[in] Time at which a field is first available?diag_cs ::
diag_cs[inout] Structure used to regulate diagnostic outputlong_name ::
long_name[in] Long name of a field.units ::
units[in] Units of a field.standard_name ::
standard_name[in] Standardized name associated with a fieldmissing_value ::
missing_value[in] A value that indicates missing values in output files, in unscaled arbitrary units [a]range ::
range[in] Valid range of a variable (not used in MOM?) in arbitrary units [a]do_not_log ::
do_not_log[in] If true, do not log something (not used in MOM?)err_msg ::
err_msg[out] String into which an error message might be placed (not used in MOM?)interp_method ::
interp_method[in] If ‘none’ indicates the field should not be interpolated as a scalarcmor_field_name ::
cmor_field_name[in] CMOR name of a fieldcmor_long_name ::
cmor_long_name[in] CMOR long name of a fieldcmor_units ::
cmor_units[in] CMOR units of a fieldcmor_standard_name ::
cmor_standard_name[in] CMOR standardized name associated with a fieldconversion ::
conversion[in] A value to multiply data by before writing to files, often including factors to undo internal scaling and in units of [a A-1 ~> 1]
- Called from:
mom_is_diag_mediator::register_mom_is_scalar_field::register_scalar_field_axes
- function mom_is_diag_mediator/register_mom_is_static_field(module_name, field_name, axes, long_name, units, missing_value, range, mask_variant, standard_name, do_not_log, interp_method, tile_count, cmor_field_name, cmor_long_name, cmor_units, cmor_standard_name, area, x_cell_method, y_cell_method, area_cell_method, conversion)
Registers a static diagnostic, returning an integer handle.
- Return:
undefined :: An integer handle for a diagnostic array.
- Parameters:
module_name ::
module_name[in] Name of this module, usually “ocean_model” or “ice_shelf_model”field_name ::
field_name[in] Name of the diagnostic fieldaxes ::
axes[in] Container with up to 3 integer handles that indicates axes for this fieldlong_name ::
long_name[in] Long name of a field.units ::
units[in] Units of a field.standard_name ::
standard_name[in] Standardized name associated with a fieldmissing_value ::
missing_value[in] A value that indicates missing values in output files, in unscaled arbitrary units [a]range ::
range[in] Valid range of a variable in arbitrary units [a]mask_variant ::
mask_variant[in] If true a logical mask must be provided with post_IS_data calls (not used in MOM?)do_not_log ::
do_not_log[in] If true, do not log something (not used in MOM?)interp_method ::
interp_method[in] If ‘none’ indicates the field should not be interpolated as a scalartile_count ::
tile_count[in] no clue (not used in MOM?)cmor_field_name ::
cmor_field_name[in] CMOR name of a fieldcmor_long_name ::
cmor_long_name[in] CMOR long name of a fieldcmor_units ::
cmor_units[in] CMOR units of a fieldcmor_standard_name ::
cmor_standard_name[in] CMOR standardized name associated with a fieldarea ::
area[in] fms_id for area_tx_cell_method ::
x_cell_method[in] Specifies the cell method for the x-direction.y_cell_method ::
y_cell_method[in] Specifies the cell method for the y-direction.area_cell_method ::
area_cell_method[in] Specifies the cell method for areaconversion ::
conversion[in] A value to multiply data by before writing to files, often including factors to undo internal scaling and in units of [a A-1 ~> 1]
- Call to:
alloc_diag_with_idget_new_diag_idlog_available_diagmom_string_functions::trim_trailing_commas
- subroutine mom_is_diag_mediator/describe_option(opt_name, value, diag_CS)
Add a description of an option to the documentation file.
- Parameters:
opt_name ::
opt_name[in] The name of the optionvalue ::
value[in] The value of the optiondiag_cs :: [in] Structure used to regulate diagnostic output
- Called from:
- subroutine mom_is_diag_mediator/mom_is_diag_mediator_init(G, US, param_file, diag_cs, component, err_msg, doc_file_dir)
Initialize the MOM_IS diag_mediator and opens the available diagnostics file, if appropriate.
- Parameters:
g :: [inout] The horizontal grid type
us :: [in] A dimensional unit scaling type
param_file ::
param_file[in] A structure to parse for run-time parametersdiag_cs ::
diag_cs[inout] A structure that is used to regulate diagnostic outputcomponent ::
component[in] An optional component nameerr_msg ::
err_msg[out] A string for a returned error messagedoc_file_dir ::
doc_file_dir[in] A directory in which to create the file
- Call to:
diag_masks_setmom_io::get_filename_appendixid_clock_diag_mediatorinitialize_diag_typemom_string_functions::slashermom_string_functions::uppercase
- subroutine mom_is_diag_mediator/diag_masks_set(G, missing_value, diag_cs)
Sets up the 2d masks for native diagnostics.
- Parameters:
g :: [in] The horizontal grid type
missing_value ::
missing_value[in] A fill value for missing pointsdiag_cs ::
diag_cs[inout] Structure used to regulate diagnostic output
- Called from:
- subroutine mom_is_diag_mediator/mom_is_diag_mediator_close_registration(diag_CS)
Prevent the registration of additional diagnostics, so that the creation of files can occur.
- Parameters:
diag_cs :: [inout] Structure used to regulate diagnostic output
- Called from:
- subroutine mom_is_diag_mediator/mom_is_diag_mediator_end(diag_CS)
Deallocate memory associated with the MOM_IS diag mediator.
- Parameters:
diag_cs :: [inout] Structure used to regulate diagnostic output
- function mom_is_diag_mediator/get_new_diag_id(diag_cs)
Returns a new diagnostic id, it may be necessary to expand the diagnostics array.
- Parameters:
diag_cs ::
diag_cs[inout] Diagnostics control structure- Call to:
- Called from:
add_diag_to_listregister_mom_is_static_fieldmom_is_diag_mediator::register_mom_is_scalar_field::register_scalar_field_cs
- subroutine mom_is_diag_mediator/initialize_diag_type(diag)
Initializes a
diag_type()(used after allocating new memory) (used after allocating new memory)- Parameters:
diag ::
diag[inout]diag_type()to be initialized to be initialized- Called from:
- subroutine mom_is_diag_mediator/alloc_diag_with_id(diag_id, diag_cs, diag)
Make a new diagnostic. Either use memory which is in the array of ‘primary’ diagnostics, or if that is in use, insert it to the list of secondary diags.
- Parameters:
diag_id ::
diag_id[in] id for the diagnosticdiag_cs ::
diag_cs[inout] structure used to regulate diagnostic outputdiag ::
diagstructure representing a diagnostic (inout)
- Called from:
add_diag_to_listregister_mom_is_static_fieldmom_is_diag_mediator::register_mom_is_scalar_field::register_scalar_field_cs
- subroutine mom_is_diag_mediator/log_available_diag(used, module_name, field_name, cell_methods_string, comment, diag_CS, long_name, units, standard_name, variants, dimensions)
Log a diagnostic to the available diagnostics file.
- Parameters:
used ::
used[in] Whether this diagnostic was in the diag_table or notmodule_name ::
module_name[in] Name of the diagnostic modulefield_name ::
field_name[in] Name of this diagnostic fieldcell_methods_string ::
cell_methods_string[in] The spatial component of the CF cell_methods attributecomment ::
comment[in] A comment to append after [Used|Unused]diag_cs :: [in] The diagnotics control structure
dimensions ::
dimensions[in] Descriptor of the horizontal and vertical dimensionslong_name ::
long_name[in] CF long name of diagnosticunits ::
units[in] Units for diagnosticstandard_name ::
standard_name[in] CF standardized name of diagnosticvariants ::
variants[in] Alternate modules and variable names for this diagnostic and derived diagnostics
- Call to:
- Called from:
register_mom_is_diag_fieldregister_mom_is_static_fieldmom_is_diag_mediator::register_mom_is_scalar_field::register_scalar_field_cs
- subroutine mom_is_diag_mediator/log_chksum_diag(docunit, description, chksum)
Log the diagnostic chksum to the chksum diag file.
- Parameters:
docunit ::
docunit[in] Handle of the log filedescription ::
description[in] Name of the diagnostic modulechksum ::
chksum[in] chksum of the diagnostic
- function mom_is_diag_mediator/found_in_diagtable(diag, varName)
Fakes a register of a diagnostic to find out if an obsolete parameter appears in the diag_table.
- Parameters:
diag ::
diag[in] A structure used to control diagnostics.varname :: [in] The obsolete diagnostic name
- subroutine mom_is_diag_mediator/mom_is_diag_send_complete()
Finishes the diag manager reduction methods as needed for the time_step.