FMS  2024.01.00
Flexible Modeling System
fms_diag_yaml_mod

fms_diag_yaml_mod is an integral part of diag_manager_mod. Its function is to read the diag_table.yaml to fill in the diag_yaml_object More...

Data Types

type  diagyamlobject_type
 Object that holds the information of the diag_yaml. More...
 

Functions/Subroutines

subroutine add_axis_attribute (this, att_name, att_value)
 Add an attribute to an axis. More...
 
subroutine add_axis_name (this, axis_name)
 
subroutine add_structured_axis_ids (this, axis_ids)
 
integer function axis_length (this)
 Get the axis length of a subaxis. More...
 
subroutine check_if_valid_cart_name (cart_name)
 Check if a cart_name is valid and crashes if it isn't.
 
subroutine check_if_valid_direction (direction)
 Check if a direction is valid and crashes if it isn't.
 
subroutine check_if_valid_domain_position (domain_position)
 Check if a domain_position is valid and crashes if it isn't.
 
subroutine, public create_new_z_subaxis (zbounds, var_axis_ids, diag_axis, naxis, file_axis_id, nfile_axis, nz_subaxis)
 Creates a new z subaxis to use. More...
 
subroutine, public define_diurnal_axis (diag_axis, naxis, n_diurnal_samples, is_edges)
 Defined a new diurnal axis. More...
 
subroutine, public define_new_axis (diag_axis, parent_axis, naxis, parent_id, starting_index, ending_index, compute_idx, global_idx, new_axis_id, zbounds, nz_subaxis)
 Creates a new subaxis and fills it will all the information it needs. More...
 
subroutine, public define_new_subaxis_index (parent_axis, subRegion, diag_axis, naxis, is_x_or_y, write_on_this_pe)
 Fill in the subaxis object for a subRegion defined by index. More...
 
subroutine, public define_new_subaxis_latlon (diag_axis, axis_ids, naxis, subRegion, is_cube_sphere, write_on_this_pe)
 Fill in the subaxis object for a subRegion defined by lat lon. More...
 
subroutine diag_get_value_from_key (diag_file_id, par_id, key_name, value_name, is_optional)
 diag_manager wrapper to get_value_from_key to use for allocatable string variables More...
 
subroutine diag_yaml_files_obj_init (obj)
 Initializes the non string values of a diagYamlFiles_type to its default values. More...
 
subroutine, public diag_yaml_object_end ()
 Destroys the diag_yaml object.
 
subroutine, public diag_yaml_object_init (diag_subset_output)
 Uses the yaml_parser_mod to read in the diag_table and fill in the diag_yaml object. More...
 
subroutine, public dump_diag_yaml_obj (filename)
 Prints out values from diag_yaml object for debugging. Only writes on root. More...
 
subroutine fill_in_diag_fields (diag_file_id, var_id, field)
 Fills in a diagYamlFilesVar_type with the contents of a variable block in diag_table.yaml. More...
 
subroutine fill_in_diag_files (diag_yaml_id, diag_file_id, yaml_fileobj)
 Fills in a diagYamlFiles_type with the contents of a file block in diag_table.yaml. More...
 
subroutine fill_subaxis (this, starting_index, ending_index, axis_id, parent_id, parent_axis_name, compute_idx, global_idx, zbounds, nz_subaxis)
 Fills in the information needed to define a subaxis. More...
 
integer function, dimension(:), allocatable, public find_diag_field (diag_field_name, module_name)
 Determines if a diag_field is in the diag_yaml_object. More...
 
logical function, public fms_diag_axis_object_end (axis_array)
 
logical function, public fms_diag_axis_object_init (axis_array)
 
subroutine, public fms_diag_yaml_out ()
 Writes an output yaml with all available information on the written files. Will only write with root pe. Global attributes are limited to 16 per file.
 
pure character(len=:) function, allocatable get_aux (this)
 Get the auxiliary name of an axis object. More...
 
pure integer function, public get_axis_id_from_name (axis_name, diag_axis, naxis, set_name)
 
integer function get_axis_length (this)
 Get the length of the axis. More...
 
pure character(len=:) function, allocatable get_axis_name (this, is_regional)
 
pure integer function, dimension(basedate_size) get_basedate (this)
 get the basedate of a diag_yaml type More...
 
subroutine get_compute_domain (this, compute_idx, need_to_define_axis, tile_number)
 
integer function, dimension(2) get_compute_indices (this)
 Accesses its member compute_indices. More...
 
type(diagyamlfilesvar_type) function, pointer get_diag_field_from_id (this, yaml_id)
 Get the diag_field yaml corresponding to a yaml_id. More...
 
integer function, dimension(:), allocatable, public get_diag_field_ids (indices)
 Gets field indices corresponding to the indices (input argument) in the sorted variable_list. More...
 
pure type(diagyamlfilesvar_type) function, dimension(:), allocatable get_diag_fields (this)
 get the diag_fields of a diag_yaml type More...
 
type(diagyamlfilesvar_type) function, dimension(:), allocatable, public get_diag_fields_entries (indices)
 Gets the diag_field entries corresponding to the indices of the sorted variable_list. More...
 
type(diagyamlfiles_type) function, dimension(:), allocatable get_diag_files (this)
 get the diag_files of a diag_yaml type More...
 
integer function, dimension(:), allocatable, public get_diag_files_id (indices)
 Finds the indices of the diag_yamldiag_files(:) corresponding to fields in variable_list(indices) More...
 
pure character(len=8 *max_freq) function get_diag_reduction_string (reduction_val)
 private function for getting reduction type string from parameter values More...
 
pure character(len=8 *size(unit_param)) function get_diag_unit_string (unit_param)
 private function for getting unit string from diag_data parameter values More...
 
type(diagyamlobject_type) function, pointer, public get_diag_yaml_obj ()
 gets the diag_yaml module variable More...
 
pure integer function get_diurnal_axis_samples (this)
 
subroutine, public get_domain_and_domain_type (diag_axis, axis_id, domain_type, domain, var_name)
 Loop through a variable's axis_id to determine and return the domain type and domain to use. More...
 
pure integer function get_edges_id (this)
 
integer function get_ending_index (this)
 Accesses its member ending_index. More...
 
pure integer function get_file_duration (this)
 Inquiry for diag_files_objfile_duration. More...
 
pure integer function get_file_duration_units (this)
 Inquiry for diag_files_objfile_duration_units. More...
 
pure character(len=:) function, allocatable get_file_fname (this)
 Inquiry for diag_files_objfile_fname. More...
 
pure integer function get_file_freq (this)
 Inquiry for diag_files_objfile_freq. More...
 
pure integer function get_file_frequnit (this)
 Inquiry for diag_files_objfile_frequnit. More...
 
pure character(len=max_str_len) function, dimension(:,:), allocatable get_file_global_meta (this)
 Inquiry for diag_files_objfile_global_meta. More...
 
pure integer function get_file_new_file_freq (this)
 Inquiry for diag_files_objfile_new_file_freq. More...
 
pure integer function get_file_new_file_freq_units (this)
 Inquiry for diag_files_objfile_new_file_freq_units. More...
 
pure character(len=:) function, allocatable get_file_start_time (this)
 Inquiry for diag_files_objfile_start_time. More...
 
type(subregion_type) function, pointer get_file_sub_region (this)
 Inquiry for diag_files_objfile_subregion. More...
 
pure integer function get_file_timeunit (this)
 Inquiry for diag_files_objfile_timeunit. More...
 
pure character(len=:) function, allocatable get_file_unlimdim (this)
 Inquiry for diag_files_objfile_unlimdim. More...
 
pure character(:) function, dimension(:), allocatable get_file_varlist (this)
 Inquiry for diag_files_objfile_varlist. More...
 
pure integer function get_filename_time (this)
 Get the integer equivalent of the time to use to determine the filename, if using a wildcard file name (i.e ocn%4yr%2mo%2dy%2hr) More...
 
subroutine get_global_io_domain (this, global_io_index)
 Get the starting and ending indices of the global io domain of the axis. More...
 
subroutine get_indices (this, compute_idx, corners_indices, starting_index, ending_index, need_to_define_axis)
 Determine if the subRegion is in the current PE. If it is, determine the starting and ending indices of the current PE that belong to the subRegion. More...
 
integer function get_length (this, cart_axis, domain_position, global_length)
 Get the length of a 2D domain. More...
 
pure integer function get_n_diurnal (this)
 Inquiry for diag_yaml_files_var_objn_diurnal. More...
 
integer function get_ntiles (this)
 Get the ntiles in a domain. More...
 
integer function, public get_num_unique_fields ()
 Determine the number of unique diag_fields in the diag_yaml_object. More...
 
pure integer function get_parent_axis_id (this)
 
pure integer function get_pow_value (this)
 Inquiry for diag_yaml_files_var_objpow_value. More...
 
pure character(len=:) function, allocatable get_set_name (this)
 Get the set name of an axis object. More...
 
integer function get_starting_index (this)
 Accesses its member starting_index. More...
 
pure integer function, dimension(2) get_structured_axis (this)
 
subroutine get_sub_region (diag_yaml_id, sub_region_id, sub_region, grid_type, fname)
 gets the lat/lon of the sub region to use in a diag_table yaml More...
 
pure integer function get_subaxes_id (this)
 
pure character(len=:) function, allocatable get_title (this)
 get the title of a diag_yaml type More...
 
integer function get_total_num_vars (diag_yaml_id, diag_file_id)
 gets the total number of variables in the diag_table yaml file More...
 
pure character(len=max_str_len) function, dimension(:,:), allocatable get_var_attributes (this)
 Inquiry for diag_yaml_files_var_objvar_attributes. More...
 
pure character(len=:) function, allocatable get_var_fname (this)
 Inquiry for diag_yaml_files_var_objvar_fname. More...
 
pure integer function, allocatable get_var_kind (this)
 Inquiry for diag_yaml_files_var_objvar_kind. More...
 
pure character(len=:) function, allocatable get_var_longname (this)
 Inquiry for diag_yaml_files_var_objvar_longname. More...
 
pure character(len=:) function, allocatable get_var_module (this)
 Inquiry for diag_yaml_files_var_objvar_module. More...
 
pure character(len=:) function, allocatable get_var_outname (this)
 Inquiry for diag_yaml_files_var_objvar_outname. More...
 
pure integer function, allocatable get_var_reduction (this)
 Inquiry for diag_yaml_files_var_objvar_reduction. More...
 
pure character(len=:) function, allocatable get_var_units (this)
 Inquiry for diag_yaml_files_var_objvar_units. More...
 
pure character(len=:) function, allocatable get_var_varname (this)
 Inquiry for diag_yaml_files_var_objvar_varname. More...
 
pure real(kind=r4_kind) function, dimension(2) get_var_zbounds (this)
 Inquiry for diag_yaml_files_var_objvar_zbounds. More...
 
pure logical function has_aux (this)
 Determine if an axis object has an auxiliary name. More...
 
pure logical function has_diag_basedate (this)
 diag_file_objdiag_basedate is on the stack, so this is always true More...
 
pure logical function has_diag_fields (this)
 Checks if diag_file_objdiag_fields is allocated. More...
 
pure logical function has_diag_files (this)
 Checks if diag_file_objdiag_files is allocated. More...
 
pure logical function has_diag_title (this)
 Checks if diag_file_objdiag_title is allocated. More...
 
pure logical function has_file_duration (this)
 diag_file_objfile_duration is allocated on th stack, so this is always true More...
 
pure logical function has_file_duration_units (this)
 diag_file_objfile_duration_units is on the stack, so this will retrun true More...
 
pure logical function has_file_fname (this)
 Checks if diag_file_objfile_fname is allocated. More...
 
pure logical function has_file_freq (this)
 diag_file_objfile_freq is on the stack, so the object always has it More...
 
pure logical function has_file_frequnit (this)
 Checks if diag_file_objfile_frequnit is allocated. More...
 
pure logical function has_file_global_meta (this)
 Checks if diag_file_objfile_global_meta is allocated. More...
 
pure logical function has_file_new_file_freq (this)
 diag_file_objfile_new_file_freq is defined on the stack, so this will return true More...
 
pure logical function has_file_new_file_freq_units (this)
 Checks if diag_file_objfile_new_file_freq_units is allocated. More...
 
pure logical function has_file_start_time (this)
 Checks if diag_file_objfile_start_time is allocated. More...
 
pure logical function has_file_sub_region (this)
 Checks if diag_file_objfile_sub_region is being used and has the sub region variables allocated. More...
 
pure logical function has_file_timeunit (this)
 Checks if diag_file_objfile_timeunit is allocated. More...
 
pure logical function has_file_unlimdim (this)
 Checks if diag_file_objfile_unlimdim is allocated. More...
 
pure logical function has_file_varlist (this)
 Checks if diag_file_objfile_varlist is allocated. More...
 
pure logical function has_file_write (this)
 Checks if diag_file_objfile_write is on the stack, so this will always be true. More...
 
pure logical function has_n_diurnal (this)
 Checks if diag_file_objn_diurnal is set. More...
 
pure logical function has_pow_value (this)
 Checks if diag_file_objpow_value is set. More...
 
pure logical function has_set_name (this)
 Determine if an axis object has a set_name. More...
 
pure logical function has_var_attributes (this)
 Checks if diag_file_objvar_attributes is allocated. More...
 
pure logical function has_var_fname (this)
 Checks if diag_file_objvar_fname is allocated. More...
 
pure logical function has_var_kind (this)
 Checks if diag_file_objvar_kind is allocated. More...
 
pure logical function has_var_longname (this)
 Checks if diag_file_objvar_longname is allocated. More...
 
pure logical function has_var_module (this)
 Checks if diag_file_objvar_module is allocated. More...
 
pure logical function has_var_outname (this)
 Checks if diag_file_objvar_outname is allocated. More...
 
pure logical function has_var_reduction (this)
 Checks if diag_file_objvar_reduction is allocated. More...
 
pure logical function has_var_units (this)
 Checks if diag_file_objvar_units is allocated. More...
 
pure logical function has_var_varname (this)
 Checks if diag_file_objvar_varname is allocated. More...
 
pure logical function has_var_write (this)
 diag_file_objvar_write is on the stack, so this returns true More...
 
pure logical function has_var_zbounds (this)
 Checks if diag_file_objvar_zbounds is allocated. More...
 
subroutine increase_new_file_freq_index (this)
 Increate the current_new_file_freq_index by 1. More...
 
pure logical function is_file_subregional (this)
 
logical function is_global_meta (this)
 Inquiry for whether file_global_meta is allocated. More...
 
logical function, public is_parent_axis (axis_id, parent_axis_id, diag_axis)
 Determine if the diag_axis(parent_axis_id) is the parent of diag_axis(axis_id) More...
 
pure logical function is_unstructured_grid (this)
 
logical function is_var_attributes (this)
 Inquiry for whether var_attributes is allocated. More...
 
logical function is_x_or_y_axis (this, x_or_y)
 Determine if an axis object is an x or y axis. More...
 
pure logical function is_z_axis (this)
 
pure character(len=120) function, dimension(2), public parse_compress_att (compress_att)
 
subroutine parse_key (filename, buffer, file_freq, file_frequnit, var)
 This parses the freq, new_file_freq, or file_duration keys which are read in as a comma list. More...
 
subroutine register_diag_axis_obj (this, axis_name, axis_data, units, cart_name, long_name, direction, set_name, Domain, Domain2, DomainU, aux, req, tile_count, domain_position, axis_length)
 Initialize the axis. More...
 
subroutine set_axis_domain (this, Domain, Domain2, DomainU)
 Set the axis domain. More...
 
subroutine set_axis_id (this, axis_id)
 Set the axis_id. More...
 
subroutine set_edges (this, edges_name, edges_id)
 Set the name and ids of the edges. More...
 
subroutine set_field_kind (field, skind)
 This checks if the kind of a diag field is valid and sets it. More...
 
subroutine set_field_reduction (field, reduction_method)
 This checks if the reduction of a diag field is valid and sets it If the reduction method is diurnalXX or powXX, it gets the number of diurnal sample and the power value. More...
 
subroutine set_file_time_units (yaml_fileobj, file_timeunit)
 This checks if the time unit in a diag file is valid and sets the integer equivalent. More...
 
subroutine set_filename_time (yaml_fileobj, filename_time)
 This checks if the filename_time in a diag file is correct and sets the integer equivalent. More...
 
integer function set_valid_time_units (time_units, error_msg)
 This checks if a time unit is valid and if it is, it assigns the integer equivalent. More...
 
pure integer function size_diag_files (this)
 Find the number of files listed in the diag yaml. More...
 
integer pure function size_file_varlist (this)
 Finds the number of variables in the file_varlist. More...
 
subroutine write_axis_data (this, fms2io_fileobj, parent_axis)
 Write the axis data to an open fms2io_fileobj. More...
 
subroutine write_axis_metadata (this, fms2io_fileobj, edges_in_file, parent_axis)
 Write the axis meta data to an open fileobj. More...
 
subroutine write_diurnal_metadata (this, fms2io_fileobj)
 

Detailed Description

fms_diag_yaml_mod is an integral part of diag_manager_mod. Its function is to read the diag_table.yaml to fill in the diag_yaml_object


Data Type Documentation

◆ fms_diag_yaml_mod::diagyamlobject_type

type fms_diag_yaml_mod::diagyamlobject_type

Object that holds the information of the diag_yaml.

Definition at line 240 of file fms_diag_yaml.F90.

Collaboration diagram for diagyamlobject_type:
[legend]

Public Attributes

type(diagyamlfilesvar_type), dimension(:), allocatable, public diag_fields
 Diag fields info.
 
type(diagyamlfiles_type), dimension(:), allocatable, public diag_files
 History file info.
 

Private Member Functions

procedure get_basedate
 Returns the basedate array.
 
procedure get_diag_field_from_id
 
procedure get_diag_fields
 Returns the diag_field array.
 
procedure get_diag_files
 Returns the diag_files array.
 
procedure get_title
 Returns the title.
 
procedure has_diag_basedate
 
procedure has_diag_fields
 
procedure has_diag_files
 
procedure has_diag_title
 
procedure size_diag_files
 

Private Attributes

integer, dimension(basedate_size), private diag_basedate
 basedate array
 
character(len=:), allocatable, private diag_title
 Experiment name.
 

Function/Subroutine Documentation

◆ add_axis_attribute()

subroutine fms_diag_axis_object_mod::add_axis_attribute ( class(fmsdiagfullaxis_type), intent(inout)  this,
character(len=*), intent(in)  att_name,
class(*), dimension(:), intent(in)  att_value 
)
private

Add an attribute to an axis.

Parameters
[in,out]thisdiag_axis obj
[in]att_nameName of the attribute
[in]att_valueThe attribute value to add

Definition at line 293 of file fms_diag_axis_object.F90.

◆ add_structured_axis_ids()

subroutine fms_diag_axis_object_mod::add_structured_axis_ids ( class(fmsdiagaxis_type), intent(inout), target  this,
integer, dimension(2), intent(in)  axis_ids 
)
private
Parameters
[in,out]thisdiag_axis obj
[in]axis_idsaxis ids to add to the axis object

Definition at line 544 of file fms_diag_axis_object.F90.

◆ axis_length()

integer function fms_diag_axis_object_mod::axis_length ( class(fmsdiagsubaxis_type), intent(in)  this)
private

Get the axis length of a subaxis.

Returns
the axis length
Parameters
[in]thisdiag_sub_axis obj

Definition at line 873 of file fms_diag_axis_object.F90.

◆ create_new_z_subaxis()

subroutine, public fms_diag_axis_object_mod::create_new_z_subaxis ( real(kind=r4_kind), dimension(2), intent(in)  zbounds,
integer, dimension(:), intent(inout)  var_axis_ids,
class(fmsdiagaxiscontainer_type), dimension(:), intent(inout), target  diag_axis,
integer, intent(inout)  naxis,
integer, dimension(:), intent(inout)  file_axis_id,
integer, intent(inout)  nfile_axis,
integer, intent(inout)  nz_subaxis 
)

Creates a new z subaxis to use.

Parameters
[in]zboundsBounds of the Z axis
[in,out]var_axis_idsThe variable's axis_ids
[in,out]diag_axisArray of diag_axis objects
[in,out]naxisNumber of axis that have been registered
[in,out]file_axis_idThe file's axis_ids
[in,out]nfile_axisNumber of axis that have been defined in file
[in,out]nz_subaxisThe number of z subaxis currently defined in the file

Definition at line 1405 of file fms_diag_axis_object.F90.

◆ define_diurnal_axis()

subroutine, public fms_diag_axis_object_mod::define_diurnal_axis ( class(fmsdiagaxiscontainer_type), dimension(:), intent(inout), target  diag_axis,
integer, intent(inout)  naxis,
integer, intent(in)  n_diurnal_samples,
logical, intent(in)  is_edges 
)

Defined a new diurnal axis.

Parameters
[in,out]diag_axisArray of axis containers
[in,out]naxisNumber of axis that have been defined
[in]n_diurnal_samplesThe number of diurnal samples for the curent axis
[in]is_edgesFlag indicating if this is an edge axis

Definition at line 470 of file fms_diag_axis_object.F90.

◆ define_new_axis()

subroutine, public fms_diag_axis_object_mod::define_new_axis ( class(fmsdiagaxiscontainer_type), dimension(:), intent(inout), target  diag_axis,
class(fmsdiagfullaxis_type), intent(inout)  parent_axis,
integer, intent(inout)  naxis,
integer, intent(in)  parent_id,
integer, intent(in)  starting_index,
integer, intent(in)  ending_index,
integer, dimension(2), intent(in)  compute_idx,
integer, dimension(2), intent(in), optional  global_idx,
integer, intent(out), optional  new_axis_id,
real(kind=r4_kind), dimension(2), intent(in), optional  zbounds,
integer, intent(in), optional  nz_subaxis 
)

Creates a new subaxis and fills it will all the information it needs.

Parameters
[in,out]diag_axisDiag_axis object
[in,out]parent_axisThe parent axis
[in,out]naxisThe number of axis that have been defined
[in]parent_idId of the parent axis
[in]starting_indexPE's Starting index
[in]ending_indexPE's Ending index
[in]compute_idxStarting and ending index of the axis's compute domain
[in]global_idxStarting and ending index of the axis's global domain
[out]new_axis_idAxis id of the axis this is creating
[in]zboundsBounds of the Z axis
[in]nz_subaxisThe number of z subaxis that have been defined in the file
[in]nz_subaxisThis is the axis id of the new axis!
[in]nz_subaxisAdd the axis_id of the new subaxis to the parent axis
[in]nz_subaxisAllocate the new axis as a subaxis and fill it

Definition at line 1259 of file fms_diag_axis_object.F90.

◆ define_new_subaxis_index()

subroutine, public fms_diag_axis_object_mod::define_new_subaxis_index ( type(fmsdiagfullaxis_type), intent(inout)  parent_axis,
type(subregion_type), intent(in)  subRegion,
class(fmsdiagaxiscontainer_type), dimension(:), intent(inout), target  diag_axis,
integer, intent(inout)  naxis,
integer, intent(in)  is_x_or_y,
logical, intent(out)  write_on_this_pe 
)

Fill in the subaxis object for a subRegion defined by index.

Parameters
[in,out]diag_axisDiag_axis object
[in,out]parent_axisaxis object of the parent
[in,out]naxisNumber of axis registered
[in]subregionSubRegion definition from the yaml
[in]is_x_or_yFlag indicating if it is a x or y axis
[out]write_on_this_pe.true. if the subregion is on this PE

Definition at line 1091 of file fms_diag_axis_object.F90.

◆ define_new_subaxis_latlon()

subroutine, public fms_diag_axis_object_mod::define_new_subaxis_latlon ( class(fmsdiagaxiscontainer_type), dimension(:), intent(inout), target  diag_axis,
integer, dimension(:), intent(in)  axis_ids,
integer, intent(inout)  naxis,
type(subregion_type), intent(in)  subRegion,
logical, intent(in)  is_cube_sphere,
logical, intent(out)  write_on_this_pe 
)

Fill in the subaxis object for a subRegion defined by lat lon.

Parameters
[in,out]diag_axisDiag_axis object
[in]axis_idsArray of axes_ids
[in,out]naxisNumber of axis registered
[in]subregionSubRegion definition from the yaml
[in]is_cube_sphere.true. if this is a cubesphere
[out]write_on_this_pe.true. if the subregion is on this PE

Definition at line 1128 of file fms_diag_axis_object.F90.

◆ diag_get_value_from_key()

subroutine fms_diag_yaml_mod::diag_get_value_from_key ( integer, intent(in)  diag_file_id,
integer, intent(in)  par_id,
character(len=*), intent(in)  key_name,
character(len=:), allocatable  value_name,
logical, intent(in), optional  is_optional 
)
private

diag_manager wrapper to get_value_from_key to use for allocatable string variables

Parameters
[in]diag_file_idId of the file block in the yaml file
[in]par_idId of the parent block in the yaml file
[in]key_nameKey to look for in the parent block
value_nameValue of the key
[in]is_optionalFlag indicating if the key is optional

Definition at line 658 of file fms_diag_yaml.F90.

◆ diag_yaml_files_obj_init()

subroutine fms_diag_yaml_mod::diag_yaml_files_obj_init ( type(diagyamlfiles_type), intent(out)  obj)
private

Initializes the non string values of a diagYamlFiles_type to its default values.

Parameters
[out]objdiagYamlFiles_type object to initialize

Definition at line 1188 of file fms_diag_yaml.F90.

◆ diag_yaml_object_init()

subroutine, public fms_diag_yaml_mod::diag_yaml_object_init ( integer, intent(in)  diag_subset_output)

Uses the yaml_parser_mod to read in the diag_table and fill in the diag_yaml object.

Parameters
[in]diag_subset_outputDIAG_ALL - Current PE is in the one and only pelist DIAG_OTHER - Current PE is not in the ocean pelist and there are multiple pelists DIAG_OCEAN - Current PE is in the ocean pelist and there are multiple pelists

Loop through the number of nfiles and fill in the diag_yaml obj

Save the file name in the file_list

Save the filename in the diag_field type

initialize axes string

Save the variable name in the diag_file type

Save the variable name and the module name in the variable_list

Sort the file list in alphabetical order

Definition at line 350 of file fms_diag_yaml.F90.

◆ dump_diag_yaml_obj()

subroutine, public fms_diag_yaml_mod::dump_diag_yaml_obj ( character(len=*), intent(in), optional  filename)

Prints out values from diag_yaml object for debugging. Only writes on root.

Parameters
[in]filenameoptional name of logfile to write to, otherwise prints to stdout

Definition at line 1500 of file fms_diag_yaml.F90.

◆ fill_in_diag_fields()

subroutine fms_diag_yaml_mod::fill_in_diag_fields ( integer, intent(in)  diag_file_id,
integer, intent(in)  var_id,
type(diagyamlfilesvar_type), intent(inout)  field 
)
private

Fills in a diagYamlFilesVar_type with the contents of a variable block in diag_table.yaml.

Parameters
[in]diag_file_idId of the file block in the yaml file
[in]var_idId of the variable block in the yaml file
[in,out]fielddiagYamlFilesVar_type obj to read the contents into

Set the zbounds if they exist

Definition at line 605 of file fms_diag_yaml.F90.

◆ fill_in_diag_files()

subroutine fms_diag_yaml_mod::fill_in_diag_files ( integer, intent(in)  diag_yaml_id,
integer, intent(in)  diag_file_id,
type(diagyamlfiles_type), intent(inout)  yaml_fileobj 
)
private

Fills in a diagYamlFiles_type with the contents of a file block in diag_table.yaml.

Parameters
[in]diag_yaml_idId of the diag_table.yaml
[in]diag_file_idId of the file block to read
[in,out]yaml_fileobjdiagYamlFiles_type obj to read the contents into

Definition at line 525 of file fms_diag_yaml.F90.

◆ fill_subaxis()

subroutine fms_diag_axis_object_mod::fill_subaxis ( class(fmsdiagsubaxis_type), intent(inout)  this,
integer, intent(in)  starting_index,
integer, intent(in)  ending_index,
integer, intent(in)  axis_id,
integer, intent(in)  parent_id,
character(len=*), intent(in)  parent_axis_name,
integer, dimension(2), intent(in)  compute_idx,
integer, dimension(2), intent(in), optional  global_idx,
real(kind=r4_kind), dimension(2), intent(in), optional  zbounds,
integer, intent(in), optional  nz_subaxis 
)
private

Fills in the information needed to define a subaxis.

Parameters
[in,out]thisdiag_sub_axis obj
[in]starting_indexStarting index of the subRegion for the PE
[in]ending_indexEnding index of the subRegion for the PE
[in]axis_idAxis id to assign to the subaxis
[in]parent_idThe id of the parent axis the subaxis belongs to
[in]parent_axis_nameName of the parent_axis
[in]compute_idxStarting and ending index of the axis's compute domain
[in]global_idxStarting and ending index of the axis's compute domain
[in]zboundsBounds of the z-axis
[in]nz_subaxisThe number of z subaxis that have been defined in the file

Definition at line 828 of file fms_diag_axis_object.F90.

◆ find_diag_field()

integer function, dimension(:), allocatable, public fms_diag_yaml_mod::find_diag_field ( character(len=*), intent(in)  diag_field_name,
character(len=*), intent(in)  module_name 
)

Determines if a diag_field is in the diag_yaml_object.

Returns
Indices of the locations where the field was found
Parameters
[in]diag_field_namediag_field name to search for
[in]module_nameName of the module, the variable is in

Definition at line 1412 of file fms_diag_yaml.F90.

◆ fms_diag_axis_object_end()

logical function, public fms_diag_axis_object_mod::fms_diag_axis_object_end ( class(fmsdiagaxiscontainer_type), dimension(:), intent(inout), allocatable  axis_array)
Parameters
[in,out]axis_arrayArray of diag_axis

Definition at line 973 of file fms_diag_axis_object.F90.

◆ fms_diag_axis_object_init()

logical function, public fms_diag_axis_object_mod::fms_diag_axis_object_init ( class(fmsdiagaxiscontainer_type), dimension(:), intent(inout), allocatable  axis_array)
Parameters
[in,out]axis_arrayArray of diag_axis

Definition at line 961 of file fms_diag_axis_object.F90.

◆ get_aux()

pure character(len=:) function, allocatable fms_diag_axis_object_mod::get_aux ( class(fmsdiagfullaxis_type), intent(in)  this)
private

Get the auxiliary name of an axis object.

Returns
the auxiliary name of an axis object
Parameters
[in]thisdiag_axis obj

Definition at line 680 of file fms_diag_axis_object.F90.

◆ get_axis_id_from_name()

pure integer function, public fms_diag_axis_object_mod::get_axis_id_from_name ( character(len=*), intent(in)  axis_name,
class(fmsdiagaxiscontainer_type), dimension(:), intent(in)  diag_axis,
integer, intent(in)  naxis,
character(len=*), intent(in)  set_name 
)
Parameters
[in]diag_axisArray of axis object
[in]axis_nameName of the axis
[in]naxisNumber of axis that have been registered
[in]set_nameName of the axis set

Definition at line 1352 of file fms_diag_axis_object.F90.

◆ get_axis_length()

integer function fms_diag_axis_object_mod::get_axis_length ( class(fmsdiagfullaxis_type), intent(in)  this)
private

Get the length of the axis.

Returns
axis length
Parameters
[in]thisdiag_axis obj
Returns
If the axis is domain decomposed axis_length will be set to the length for the current PE:

Definition at line 609 of file fms_diag_axis_object.F90.

◆ get_axis_name()

pure character(len=:) function, allocatable fms_diag_axis_object_mod::get_axis_name ( class(fmsdiagaxis_type), intent(in)  this,
logical, intent(in), optional  is_regional 
)
private
Parameters
[in]thisAxis object
[in]is_regionalFlag indicating if the axis is regional

Definition at line 986 of file fms_diag_axis_object.F90.

◆ get_basedate()

pure integer function, dimension (basedate_size) fms_diag_yaml_mod::get_basedate ( class (diagyamlobject_type), intent(in)  this)
private

get the basedate of a diag_yaml type

Returns
the basedate as an integer array
Parameters
[in]thisThe diag_yaml
Returns
Basedate array result to return

Definition at line 283 of file fms_diag_yaml.F90.

◆ get_compute_domain()

subroutine fms_diag_axis_object_mod::get_compute_domain ( class(fmsdiagfullaxis_type), intent(in)  this,
integer, dimension(:), intent(inout)  compute_idx,
logical, intent(out)  need_to_define_axis,
integer, intent(in), optional  tile_number 
)
private
Parameters
[in]thisdiag_axis obj
[in,out]compute_idxCompute domain of the axis
[out]need_to_define_axis.true. if it needed to define the axis
[in]tile_numberThe tile number of the axis
[in]tile_numberInitialize the output
[in]tile_numberIf the axis is not domain decomposed, use the whole axis as the compute domain
[in]tile_numberIf the the tile number is present and the current PE is not on the tile, then there is no need to define the axis
[in]tile_numberGet the compute domain for the current PE if it is an "X" or "Y" axis

Definition at line 780 of file fms_diag_axis_object.F90.

◆ get_compute_indices()

integer function, dimension(2) fms_diag_axis_object_mod::get_compute_indices ( class(fmsdiagsubaxis_type), intent(in)  this)
private

Accesses its member compute_indices.

Returns
a copy of the ending_index
Parameters
[in]thisdiag_sub_axis object
Returns
Result to return

Definition at line 899 of file fms_diag_axis_object.F90.

◆ get_diag_field_from_id()

type(diagyamlfilesvar_type) function, pointer fms_diag_yaml_mod::get_diag_field_from_id ( class (diagyamlobject_type), intent(in), target  this,
integer, intent(in)  yaml_id 
)
private

Get the diag_field yaml corresponding to a yaml_id.

Returns
Pointer to the diag_field yaml entry
Parameters
[in]thisThe diag_yaml
[in]yaml_idYaml id
Returns
Diag fields info

Definition at line 324 of file fms_diag_yaml.F90.

◆ get_diag_field_ids()

integer function, dimension(:), allocatable, public fms_diag_yaml_mod::get_diag_field_ids ( integer, dimension(:), intent(in)  indices)

Gets field indices corresponding to the indices (input argument) in the sorted variable_list.

Returns
Copy of array of field indices
Parameters
[in]indicesIndices of the fields in the sorted variable_list array

Definition at line 1446 of file fms_diag_yaml.F90.

◆ get_diag_fields()

pure type(diagyamlfilesvar_type) function, dimension (:), allocatable fms_diag_yaml_mod::get_diag_fields ( class (diagyamlobject_type), intent(in)  this)
private

get the diag_fields of a diag_yaml type

Returns
the diag_fields
Parameters
[in]thisThe diag_yaml
Returns
Diag fields info

Definition at line 340 of file fms_diag_yaml.F90.

◆ get_diag_fields_entries()

type(diagyamlfilesvar_type) function, dimension (:), allocatable, public fms_diag_yaml_mod::get_diag_fields_entries ( integer, dimension(:), intent(in)  indices)

Gets the diag_field entries corresponding to the indices of the sorted variable_list.

Returns
Array of diag_fields
Parameters
[in]indicesIndices of the field in the sorted variable_list array

Definition at line 1426 of file fms_diag_yaml.F90.

◆ get_diag_files()

type(diagyamlfiles_type) function, dimension (:), allocatable fms_diag_yaml_mod::get_diag_files ( class (diagyamlobject_type), intent(in)  this)
private

get the diag_files of a diag_yaml type

Returns
the diag_files
Parameters
[in]thisThe diag_yaml
Returns
History file info

Definition at line 314 of file fms_diag_yaml.F90.

◆ get_diag_files_id()

integer function, dimension(:), allocatable, public fms_diag_yaml_mod::get_diag_files_id ( integer, dimension(:), intent(in)  indices)

Finds the indices of the diag_yamldiag_files(:) corresponding to fields in variable_list(indices)

Returns
indices of the diag_yamldiag_files(:)
Parameters
[in]indicesIndices of the field in the sorted variable_list

Definition at line 1462 of file fms_diag_yaml.F90.

◆ get_diag_reduction_string()

pure character(len=8 * max_freq) function fms_diag_yaml_mod::get_diag_reduction_string ( integer, dimension(:), intent(in)  reduction_val)
private

private function for getting reduction type string from parameter values

Parameters
[in]reduction_valreduction types (eg. time_average)

Definition at line 1933 of file fms_diag_yaml.F90.

◆ get_diag_unit_string()

pure character(len=8 * size(unit_param)) function fms_diag_yaml_mod::get_diag_unit_string ( integer, dimension(:), intent(in)  unit_param)
private

private function for getting unit string from diag_data parameter values

Parameters
[in]unit_paramdiag unit parameter values from diag_data_mod.
eg. DIAG_SECONDS, DIAG_MINUTES,DIAG_HOURS, DIAG_DAYS, DIAG_YEARS

Definition at line 1903 of file fms_diag_yaml.F90.

◆ get_diag_yaml_obj()

type (diagyamlobject_type) function, pointer, public fms_diag_yaml_mod::get_diag_yaml_obj

gets the diag_yaml module variable

Returns
a copy of the diag_yaml module variable

Definition at line 274 of file fms_diag_yaml.F90.

◆ get_diurnal_axis_samples()

pure integer function fms_diag_axis_object_mod::get_diurnal_axis_samples ( class(fmsdiagdiurnalaxis_type), intent(in)  this)
private
Parameters
[in]thisAxis Object

Definition at line 1379 of file fms_diag_axis_object.F90.

◆ get_domain_and_domain_type()

subroutine, public fms_diag_axis_object_mod::get_domain_and_domain_type ( class(fmsdiagaxiscontainer_type), dimension(:), intent(in), target  diag_axis,
integer, dimension(:), intent(in)  axis_id,
integer, intent(out)  domain_type,
class(diagdomain_t), intent(out), pointer  domain,
character(len=*), intent(in)  var_name 
)

Loop through a variable's axis_id to determine and return the domain type and domain to use.

Parameters
[in]diag_axisArray of diag_axis
[in]axis_idArray of axis ids
[out]domain_typefileobj_type to use
[in]var_nameName of the variable (for error messages)

Definition at line 1054 of file fms_diag_axis_object.F90.

◆ get_edges_id()

pure integer function fms_diag_axis_object_mod::get_edges_id ( class(fmsdiagaxis_type), intent(in)  this)
private
Parameters
[in]thisdiag_axis obj

Definition at line 572 of file fms_diag_axis_object.F90.

◆ get_ending_index()

integer function fms_diag_axis_object_mod::get_ending_index ( class(fmsdiagsubaxis_type), intent(in)  this)
private

Accesses its member ending_index.

Returns
a copy of the ending_index
Parameters
[in]thisdiag_sub_axis object
Returns
Result to return

Definition at line 891 of file fms_diag_axis_object.F90.

◆ get_file_duration()

pure integer function fms_diag_yaml_mod::get_file_duration ( class (diagyamlfiles_type), intent(in)  this)
private

Inquiry for diag_files_objfile_duration.

Returns
file_duration of a diag_yaml_file_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1012 of file fms_diag_yaml.F90.

◆ get_file_duration_units()

pure integer function fms_diag_yaml_mod::get_file_duration_units ( class (diagyamlfiles_type), intent(in)  this)
private

Inquiry for diag_files_objfile_duration_units.

Returns
file_duration_units of a diag_yaml_file_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1020 of file fms_diag_yaml.F90.

◆ get_file_fname()

pure character (len=:) function, allocatable fms_diag_yaml_mod::get_file_fname ( class (diagyamlfiles_type), intent(in)  this)
private

Inquiry for diag_files_objfile_fname.

Returns
file_fname of a diag_yaml_file obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 940 of file fms_diag_yaml.F90.

◆ get_file_freq()

pure integer function fms_diag_yaml_mod::get_file_freq ( class (diagyamlfiles_type), intent(in)  this)
private

Inquiry for diag_files_objfile_freq.

Returns
file_freq of a diag_yaml_file_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 956 of file fms_diag_yaml.F90.

◆ get_file_frequnit()

pure integer function fms_diag_yaml_mod::get_file_frequnit ( class (diagyamlfiles_type), intent(in)  this)
private

Inquiry for diag_files_objfile_frequnit.

Returns
file_frequnit of a diag_yaml_file_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 948 of file fms_diag_yaml.F90.

◆ get_file_global_meta()

pure character (len=max_str_len) function, dimension(:,:), allocatable fms_diag_yaml_mod::get_file_global_meta ( class (diagyamlfiles_type), intent(in)  this)
private

Inquiry for diag_files_objfile_global_meta.

Returns
file_global_meta of a diag_yaml_file_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1036 of file fms_diag_yaml.F90.

◆ get_file_new_file_freq()

pure integer function fms_diag_yaml_mod::get_file_new_file_freq ( class (diagyamlfiles_type), intent(in)  this)
private

Inquiry for diag_files_objfile_new_file_freq.

Returns
file_new_file_freq of a diag_yaml_file_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 988 of file fms_diag_yaml.F90.

◆ get_file_new_file_freq_units()

pure integer function fms_diag_yaml_mod::get_file_new_file_freq_units ( class (diagyamlfiles_type), intent(in)  this)
private

Inquiry for diag_files_objfile_new_file_freq_units.

Returns
file_new_file_freq_units of a diag_yaml_file_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 996 of file fms_diag_yaml.F90.

◆ get_file_start_time()

pure character (len=:) function, allocatable fms_diag_yaml_mod::get_file_start_time ( class (diagyamlfiles_type), intent(in)  this)
private

Inquiry for diag_files_objfile_start_time.

Returns
file_start_time of a diag_yaml_file_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1004 of file fms_diag_yaml.F90.

◆ get_file_sub_region()

type(subregion_type) function, pointer fms_diag_yaml_mod::get_file_sub_region ( class (diagyamlfiles_type), intent(in), target  this)
private

Inquiry for diag_files_objfile_subregion.

Returns
file_sub_region of a diag_yaml_file_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 980 of file fms_diag_yaml.F90.

◆ get_file_timeunit()

pure integer function fms_diag_yaml_mod::get_file_timeunit ( class (diagyamlfiles_type), intent(in)  this)
private

Inquiry for diag_files_objfile_timeunit.

Returns
file_timeunit of a diag_yaml_file_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 964 of file fms_diag_yaml.F90.

◆ get_file_unlimdim()

pure character (len=:) function, allocatable fms_diag_yaml_mod::get_file_unlimdim ( class (diagyamlfiles_type), intent(in)  this)
private

Inquiry for diag_files_objfile_unlimdim.

Returns
file_unlimdim of a diag_yaml_file_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 972 of file fms_diag_yaml.F90.

◆ get_file_varlist()

pure character (:) function, dimension(:), allocatable fms_diag_yaml_mod::get_file_varlist ( class (diagyamlfiles_type), intent(in)  this)
private

Inquiry for diag_files_objfile_varlist.

Returns
file_varlist of a diag_yaml_file_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1028 of file fms_diag_yaml.F90.

◆ get_filename_time()

pure integer function fms_diag_yaml_mod::get_filename_time ( class (diagyamlfiles_type), intent(in)  this)
private

Get the integer equivalent of the time to use to determine the filename, if using a wildcard file name (i.e ocn%4yr%2mo%2dy%2hr)

Returns
the integer equivalent of the time to use to determine the filename
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1045 of file fms_diag_yaml.F90.

◆ get_global_io_domain()

subroutine fms_diag_axis_object_mod::get_global_io_domain ( class(fmsdiagfullaxis_type), intent(in)  this,
integer, dimension(2), intent(out)  global_io_index 
)
private

Get the starting and ending indices of the global io domain of the axis.

Parameters
[in]thisdiag_axis obj
[out]global_io_indexGlobal io domain starting and ending index

Definition at line 583 of file fms_diag_axis_object.F90.

◆ get_indices()

subroutine fms_diag_axis_object_mod::get_indices ( class(fmsdiagfullaxis_type), intent(in)  this,
integer, dimension(:), intent(in)  compute_idx,
class(*), dimension(:), intent(in)  corners_indices,
integer, intent(out)  starting_index,
integer, intent(out)  ending_index,
logical, intent(out)  need_to_define_axis 
)
private

Determine if the subRegion is in the current PE. If it is, determine the starting and ending indices of the current PE that belong to the subRegion.

Parameters
[in]thisdiag_axis obj
[in]compute_idxCurrent PE's compute domain
[in]corners_indicesThe indices of the corners of the subRegion
[out]starting_indexStarting index of the subRegion for the current PE
[out]ending_indexEnding index of the subRegion for the current PE
[out]need_to_define_axis.true. if it is needed to define an axis

Definition at line 713 of file fms_diag_axis_object.F90.

◆ get_length()

integer function fms_diag_axis_object_mod::get_length ( class(diagdomain_t), intent(in)  this,
character(len=*), intent(in)  cart_axis,
integer, intent(in)  domain_position,
integer, intent(in)  global_length 
)
private

Get the length of a 2D domain.

Returns
Length of the 2D domain
Parameters
[in]thisdiag_axis obj
[in]cart_axiscart_axis of the axis
[in]domain_positionDomain position (CENTER, NORTH, EAST)
[in]global_lengthglobal_length of the axis
Returns
If domain is 1D or UG, just set it to the global length

Definition at line 921 of file fms_diag_axis_object.F90.

◆ get_n_diurnal()

pure integer function fms_diag_yaml_mod::get_n_diurnal ( class (diagyamlfilesvar_type), intent(in)  this)
private

Inquiry for diag_yaml_files_var_objn_diurnal.

Returns
the number of diurnal samples of a diag_yaml_files_var_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1161 of file fms_diag_yaml.F90.

◆ get_ntiles()

integer function fms_diag_axis_object_mod::get_ntiles ( class(diagdomain_t), intent(in)  this)
private

Get the ntiles in a domain.

Returns
the number of tiles in a domain
Parameters
[in]thisdiag_axis obj

Definition at line 907 of file fms_diag_axis_object.F90.

◆ get_num_unique_fields()

integer function, public fms_diag_yaml_mod::get_num_unique_fields

Determine the number of unique diag_fields in the diag_yaml_object.

Returns
The number of unique diag_fields

Definition at line 1403 of file fms_diag_yaml.F90.

◆ get_parent_axis_id()

pure integer function fms_diag_axis_object_mod::get_parent_axis_id ( class(fmsdiagaxis_type), intent(in)  this)
private
Parameters
[in]thisAxis Object

Definition at line 1299 of file fms_diag_axis_object.F90.

◆ get_pow_value()

pure integer function fms_diag_yaml_mod::get_pow_value ( class (diagyamlfilesvar_type), intent(in)  this)
private

Inquiry for diag_yaml_files_var_objpow_value.

Returns
the pow_value of a diag_yaml_files_var_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1169 of file fms_diag_yaml.F90.

◆ get_set_name()

pure character(len=:) function, allocatable fms_diag_axis_object_mod::get_set_name ( class(fmsdiagfullaxis_type), intent(in)  this)
private

Get the set name of an axis object.

Returns
the set name of an axis object
Parameters
[in]thisdiag_axis obj

Definition at line 670 of file fms_diag_axis_object.F90.

◆ get_starting_index()

integer function fms_diag_axis_object_mod::get_starting_index ( class(fmsdiagsubaxis_type), intent(in)  this)
private

Accesses its member starting_index.

Returns
a copy of the starting_index
Parameters
[in]thisdiag_sub_axis object
Returns
Result to return

Definition at line 883 of file fms_diag_axis_object.F90.

◆ get_structured_axis()

pure integer function, dimension(2) fms_diag_axis_object_mod::get_structured_axis ( class(fmsdiagaxis_type), intent(in), target  this)
private
Parameters
[in]thisdiag_axis obj

Definition at line 557 of file fms_diag_axis_object.F90.

◆ get_sub_region()

subroutine fms_diag_yaml_mod::get_sub_region ( integer, intent(in)  diag_yaml_id,
integer, intent(in)  sub_region_id,
type(subregion_type), intent(inout)  sub_region,
character(len=*), intent(in)  grid_type,
character(len=*), intent(in)  fname 
)
private

gets the lat/lon of the sub region to use in a diag_table yaml

Parameters
[in]diag_yaml_idId of the diag_table yaml file
[in]sub_region_idId of the region block to read from
[in,out]sub_regionType that stores the sub_region
[in]grid_typeThe grid_type as it is read from the file
[in]fnamefilename of the subregion (for error messages)

Definition at line 675 of file fms_diag_yaml.F90.

◆ get_subaxes_id()

pure integer function fms_diag_axis_object_mod::get_subaxes_id ( class(fmsdiagaxis_type), intent(in)  this)
private
Parameters
[in]thisAxis Object

Definition at line 1318 of file fms_diag_axis_object.F90.

◆ get_title()

pure character(len=:) function, allocatable fms_diag_yaml_mod::get_title ( class (diagyamlobject_type), intent(in)  this)
private

get the title of a diag_yaml type

Returns
the title of the diag table as an allocated string
Parameters
[in]thisThe diag_yaml
Returns
Basedate array result to return

Definition at line 304 of file fms_diag_yaml.F90.

◆ get_total_num_vars()

integer function fms_diag_yaml_mod::get_total_num_vars ( integer, intent(in)  diag_yaml_id,
integer, intent(in)  diag_file_id 
)
private

gets the total number of variables in the diag_table yaml file

Returns
total number of variables
Parameters
[in]diag_yaml_idId for the diag_table yaml
[in]diag_file_idId of the file in the diag_table yaml

Definition at line 709 of file fms_diag_yaml.F90.

◆ get_var_attributes()

pure character (len=max_str_len) function, dimension (:,:), allocatable fms_diag_yaml_mod::get_var_attributes ( class (diagyamlfilesvar_type), intent(in)  this)
private

Inquiry for diag_yaml_files_var_objvar_attributes.

Returns
var_attributes of a diag_yaml_files_var_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1153 of file fms_diag_yaml.F90.

◆ get_var_fname()

pure character (len=:) function, allocatable fms_diag_yaml_mod::get_var_fname ( class (diagyamlfilesvar_type), intent(in)  this)
private

Inquiry for diag_yaml_files_var_objvar_fname.

Returns
var_fname of a diag_yaml_files_var_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1076 of file fms_diag_yaml.F90.

◆ get_var_kind()

pure integer function, allocatable fms_diag_yaml_mod::get_var_kind ( class (diagyamlfilesvar_type), intent(in)  this)
private

Inquiry for diag_yaml_files_var_objvar_kind.

Returns
var_kind of a diag_yaml_files_var_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1108 of file fms_diag_yaml.F90.

◆ get_var_longname()

pure character (len=:) function, allocatable fms_diag_yaml_mod::get_var_longname ( class (diagyamlfilesvar_type), intent(in)  this)
private

Inquiry for diag_yaml_files_var_objvar_longname.

Returns
var_longname of a diag_yaml_files_var_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1129 of file fms_diag_yaml.F90.

◆ get_var_module()

pure character (len=:) function, allocatable fms_diag_yaml_mod::get_var_module ( class (diagyamlfilesvar_type), intent(in)  this)
private

Inquiry for diag_yaml_files_var_objvar_module.

Returns
var_module of a diag_yaml_files_var_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1100 of file fms_diag_yaml.F90.

◆ get_var_outname()

pure character (len=:) function, allocatable fms_diag_yaml_mod::get_var_outname ( class (diagyamlfilesvar_type), intent(in)  this)
private

Inquiry for diag_yaml_files_var_objvar_outname.

Returns
var_outname of a diag_yaml_files_var_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned
If outname is not set, the variable name will be used

Definition at line 1116 of file fms_diag_yaml.F90.

◆ get_var_reduction()

pure integer function, allocatable fms_diag_yaml_mod::get_var_reduction ( class (diagyamlfilesvar_type), intent(in)  this)
private

Inquiry for diag_yaml_files_var_objvar_reduction.

Returns
var_reduction of a diag_yaml_files_var_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1092 of file fms_diag_yaml.F90.

◆ get_var_units()

pure character (len=:) function, allocatable fms_diag_yaml_mod::get_var_units ( class (diagyamlfilesvar_type), intent(in)  this)
private

Inquiry for diag_yaml_files_var_objvar_units.

Returns
var_units of a diag_yaml_files_var_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1137 of file fms_diag_yaml.F90.

◆ get_var_varname()

pure character (len=:) function, allocatable fms_diag_yaml_mod::get_var_varname ( class (diagyamlfilesvar_type), intent(in)  this)
private

Inquiry for diag_yaml_files_var_objvar_varname.

Returns
var_varname of a diag_yaml_files_var_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1084 of file fms_diag_yaml.F90.

◆ get_var_zbounds()

pure real(kind=r4_kind) function, dimension(2) fms_diag_yaml_mod::get_var_zbounds ( class (diagyamlfilesvar_type), intent(in)  this)
private

Inquiry for diag_yaml_files_var_objvar_zbounds.

Returns
var_zbounds of a diag_yaml_files_var_obj
Parameters
[in]thisThe object being inquiried
Returns
What is returned

Definition at line 1145 of file fms_diag_yaml.F90.

◆ has_aux()

pure logical function fms_diag_axis_object_mod::has_aux ( class(fmsdiagfullaxis_type), intent(in)  this)
private

Determine if an axis object has an auxiliary name.

Returns
.true. if an axis object has an auxiliary name
Parameters
[in]thisdiag_axis obj

Definition at line 626 of file fms_diag_axis_object.F90.

◆ has_diag_basedate()

pure logical function fms_diag_yaml_mod::has_diag_basedate ( class(diagyamlobject_type), intent(in)  this)
private

diag_file_objdiag_basedate is on the stack, so this is always true

Returns
true
Parameters
[in]thisdiagYamlObject_type object to initialize

Definition at line 1384 of file fms_diag_yaml.F90.

◆ has_diag_fields()

pure logical function fms_diag_yaml_mod::has_diag_fields ( class(diagyamlobject_type), intent(in)  this)
private

Checks if diag_file_objdiag_fields is allocated.

Returns
true if diag_file_objdiag_fields is allocated
Parameters
[in]thisdiagYamlObject_type object to initialize

Definition at line 1396 of file fms_diag_yaml.F90.

◆ has_diag_files()

pure logical function fms_diag_yaml_mod::has_diag_files ( class(diagyamlobject_type), intent(in)  this)
private

Checks if diag_file_objdiag_files is allocated.

Returns
true if diag_file_objdiag_files is allocated
Parameters
[in]thisdiagYamlObject_type object to initialize

Definition at line 1390 of file fms_diag_yaml.F90.

◆ has_diag_title()

pure logical function fms_diag_yaml_mod::has_diag_title ( class(diagyamlobject_type), intent(in)  this)
private

Checks if diag_file_objdiag_title is allocated.

Returns
true if diag_file_objdiag_title is allocated
Parameters
[in]thisdiagYamlObject_type object to inquire

Definition at line 1378 of file fms_diag_yaml.F90.

◆ has_file_duration()

pure logical function fms_diag_yaml_mod::has_file_duration ( class(diagyamlfiles_type), intent(in)  this)
private

diag_file_objfile_duration is allocated on th stack, so this is always true

Returns
true
Parameters
[in]thisdiagYamlFiles_type object to initialize

Definition at line 1266 of file fms_diag_yaml.F90.

◆ has_file_duration_units()

pure logical function fms_diag_yaml_mod::has_file_duration_units ( class(diagyamlfiles_type), intent(in)  this)
private

diag_file_objfile_duration_units is on the stack, so this will retrun true

Returns
true
Parameters
[in]thisdiagYamlFiles_type object to initialize

Definition at line 1272 of file fms_diag_yaml.F90.

◆ has_file_fname()

pure logical function fms_diag_yaml_mod::has_file_fname ( class(diagyamlfiles_type), intent(in)  this)
private

Checks if diag_file_objfile_fname is allocated.

Returns
true if diag_file_objfile_fname is allocated
Parameters
[in]thisdiagYamlFiles_type object to initialize

Definition at line 1202 of file fms_diag_yaml.F90.

◆ has_file_freq()

pure logical function fms_diag_yaml_mod::has_file_freq ( class(diagyamlfiles_type), intent(in)  this)
private

diag_file_objfile_freq is on the stack, so the object always has it

Returns
true if diag_file_objfile_freq is allocated
Parameters
[in]thisdiagYamlFiles_type object to initialize

Definition at line 1214 of file fms_diag_yaml.F90.

◆ has_file_frequnit()

pure logical function fms_diag_yaml_mod::has_file_frequnit ( class(diagyamlfiles_type), intent(in)  this)
private

Checks if diag_file_objfile_frequnit is allocated.

Returns
true if diag_file_objfile_frequnit is allocated
Parameters
[in]thisdiagYamlFiles_type object to initialize

Definition at line 1208 of file fms_diag_yaml.F90.

◆ has_file_global_meta()

pure logical function fms_diag_yaml_mod::has_file_global_meta ( class(diagyamlfiles_type), intent(in)  this)
private

Checks if diag_file_objfile_global_meta is allocated.

Returns
true if diag_file_objfile_global_meta is allocated
Parameters
[in]thisdiagYamlFiles_type object to initialize

Definition at line 1284 of file fms_diag_yaml.F90.

◆ has_file_new_file_freq()

pure logical function fms_diag_yaml_mod::has_file_new_file_freq ( class(diagyamlfiles_type), intent(in)  this)
private

diag_file_objfile_new_file_freq is defined on the stack, so this will return true

Returns
true
Parameters
[in]thisdiagYamlFiles_type object to initialize

Definition at line 1248 of file fms_diag_yaml.F90.

◆ has_file_new_file_freq_units()

pure logical function fms_diag_yaml_mod::has_file_new_file_freq_units ( class(diagyamlfiles_type), intent(in)  this)
private

Checks if diag_file_objfile_new_file_freq_units is allocated.

Returns
true if diag_file_objfile_new_file_freq_units is allocated
Parameters
[in]thisdiagYamlFiles_type object to initialize

Definition at line 1254 of file fms_diag_yaml.F90.

◆ has_file_start_time()

pure logical function fms_diag_yaml_mod::has_file_start_time ( class(diagyamlfiles_type), intent(in)  this)
private

Checks if diag_file_objfile_start_time is allocated.

Returns
true if diag_file_objfile_start_time is allocated
Parameters
[in]thisdiagYamlFiles_type object to initialize

Definition at line 1260 of file fms_diag_yaml.F90.

◆ has_file_sub_region()

pure logical function fms_diag_yaml_mod::has_file_sub_region ( class(diagyamlfiles_type), intent(in)  this)
private

Checks if diag_file_objfile_sub_region is being used and has the sub region variables allocated.

Returns
true if diag_file_objfile_sub_region sub region variables are allocated
Parameters
[in]thisdiagYamlFiles_type object to initialize

Definition at line 1238 of file fms_diag_yaml.F90.

◆ has_file_timeunit()

pure logical function fms_diag_yaml_mod::has_file_timeunit ( class(diagyamlfiles_type), intent(in)  this)
private

Checks if diag_file_objfile_timeunit is allocated.

Returns
true if diag_file_objfile_timeunit is allocated
Parameters
[in]thisdiagYamlFiles_type object to initialize

Definition at line 1220 of file fms_diag_yaml.F90.

◆ has_file_unlimdim()

pure logical function fms_diag_yaml_mod::has_file_unlimdim ( class(diagyamlfiles_type), intent(in)  this)
private

Checks if diag_file_objfile_unlimdim is allocated.

Returns
true if diag_file_objfile_unlimdim is allocated
Parameters
[in]thisdiagYamlFiles_type object to initialize

Definition at line 1226 of file fms_diag_yaml.F90.

◆ has_file_varlist()

pure logical function fms_diag_yaml_mod::has_file_varlist ( class(diagyamlfiles_type), intent(in)  this)
private

Checks if diag_file_objfile_varlist is allocated.

Returns
true if diag_file_objfile_varlist is allocated
Parameters
[in]thisdiagYamlFiles_type object to initialize

Definition at line 1278 of file fms_diag_yaml.F90.

◆ has_file_write()

pure logical function fms_diag_yaml_mod::has_file_write ( class(diagyamlfiles_type), intent(in)  this)
private

Checks if diag_file_objfile_write is on the stack, so this will always be true.

Returns
true
Parameters
[in]thisdiagYamlFiles_type object to initialize

Definition at line 1232 of file fms_diag_yaml.F90.

◆ has_n_diurnal()

pure logical function fms_diag_yaml_mod::has_n_diurnal ( class(diagyamlfilesvar_type), intent(in)  this)
private

Checks if diag_file_objn_diurnal is set.

Returns
true if diag_file_objn_diurnal is set
Parameters
[in]thisdiagYamlvar_type object to inquire

Definition at line 1365 of file fms_diag_yaml.F90.

◆ has_pow_value()

pure logical function fms_diag_yaml_mod::has_pow_value ( class(diagyamlfilesvar_type), intent(in)  this)
private

Checks if diag_file_objpow_value is set.

Returns
true if diag_file_objpow_value is set
Parameters
[in]thisdiagYamlvar_type object to inquire

Definition at line 1371 of file fms_diag_yaml.F90.

◆ has_set_name()

pure logical function fms_diag_axis_object_mod::has_set_name ( class(fmsdiagfullaxis_type), intent(in)  this)
private

Determine if an axis object has a set_name.

Returns
.true. if an axis object has a set_name
Parameters
[in]thisdiag_axis obj

Definition at line 637 of file fms_diag_axis_object.F90.

◆ has_var_attributes()

pure logical function fms_diag_yaml_mod::has_var_attributes ( class(diagyamlfilesvar_type), intent(in)  this)
private

Checks if diag_file_objvar_attributes is allocated.

Returns
true if diag_file_objvar_attributes is allocated
Parameters
[in]thisdiagYamlvar_type object to initialize

Definition at line 1359 of file fms_diag_yaml.F90.

◆ has_var_fname()

pure logical function fms_diag_yaml_mod::has_var_fname ( class(diagyamlfilesvar_type), intent(in)  this)
private

Checks if diag_file_objvar_fname is allocated.

Returns
true if diag_file_objvar_fname is allocated
Parameters
[in]thisdiagYamlvar_type object to initialize

Definition at line 1291 of file fms_diag_yaml.F90.

◆ has_var_kind()

pure logical function fms_diag_yaml_mod::has_var_kind ( class(diagyamlfilesvar_type), intent(in)  this)
private

Checks if diag_file_objvar_kind is allocated.

Returns
true if diag_file_objvar_kind is allocated
Parameters
[in]thisdiagYamlvar_type object to initialize

Definition at line 1315 of file fms_diag_yaml.F90.

◆ has_var_longname()

pure logical function fms_diag_yaml_mod::has_var_longname ( class(diagyamlfilesvar_type), intent(in)  this)
private

Checks if diag_file_objvar_longname is allocated.

Returns
true if diag_file_objvar_longname is allocated
Parameters
[in]thisdiagYamlvar_type object to initialize

Definition at line 1341 of file fms_diag_yaml.F90.

◆ has_var_module()

pure logical function fms_diag_yaml_mod::has_var_module ( class(diagyamlfilesvar_type), intent(in)  this)
private

Checks if diag_file_objvar_module is allocated.

Returns
true if diag_file_objvar_module is allocated
Parameters
[in]thisdiagYamlvar_type object to initialize

Definition at line 1309 of file fms_diag_yaml.F90.

◆ has_var_outname()

pure logical function fms_diag_yaml_mod::has_var_outname ( class(diagyamlfilesvar_type), intent(in)  this)
private

Checks if diag_file_objvar_outname is allocated.

Returns
true if diag_file_objvar_outname is allocated
Parameters
[in]thisdiagYamlvar_type object to initialize

Definition at line 1327 of file fms_diag_yaml.F90.

◆ has_var_reduction()

pure logical function fms_diag_yaml_mod::has_var_reduction ( class(diagyamlfilesvar_type), intent(in)  this)
private

Checks if diag_file_objvar_reduction is allocated.

Returns
true if diag_file_objvar_reduction is allocated
Parameters
[in]thisdiagYamlvar_type object to initialize

Definition at line 1303 of file fms_diag_yaml.F90.

◆ has_var_units()

pure logical function fms_diag_yaml_mod::has_var_units ( class(diagyamlfilesvar_type), intent(in)  this)
private

Checks if diag_file_objvar_units is allocated.

Returns
true if diag_file_objvar_units is allocated
Parameters
[in]thisdiagYamlvar_type object to initialize

Definition at line 1347 of file fms_diag_yaml.F90.

◆ has_var_varname()

pure logical function fms_diag_yaml_mod::has_var_varname ( class(diagyamlfilesvar_type), intent(in)  this)
private

Checks if diag_file_objvar_varname is allocated.

Returns
true if diag_file_objvar_varname is allocated
Parameters
[in]thisdiagYamlvar_type object to initialize

Definition at line 1297 of file fms_diag_yaml.F90.

◆ has_var_write()

pure logical function fms_diag_yaml_mod::has_var_write ( class(diagyamlfilesvar_type), intent(in)  this)
private

diag_file_objvar_write is on the stack, so this returns true

Returns
true
Parameters
[in]thisdiagYamlvar_type object to initialize

Definition at line 1321 of file fms_diag_yaml.F90.

◆ has_var_zbounds()

pure logical function fms_diag_yaml_mod::has_var_zbounds ( class(diagyamlfilesvar_type), intent(in)  this)
private

Checks if diag_file_objvar_zbounds is allocated.

Returns
true if diag_file_objvar_zbounds is allocated
Parameters
[in]thisdiagYamlvar_type object to initialize

Definition at line 1353 of file fms_diag_yaml.F90.

◆ increase_new_file_freq_index()

subroutine fms_diag_yaml_mod::increase_new_file_freq_index ( class(diagyamlfiles_type), intent(inout)  this)
private

Increate the current_new_file_freq_index by 1.

Parameters
[in,out]thisThe file object

Definition at line 1063 of file fms_diag_yaml.F90.

◆ is_global_meta()

logical function fms_diag_yaml_mod::is_global_meta ( class (diagyamlfiles_type), intent(in)  this)
private

Inquiry for whether file_global_meta is allocated.

Returns
Flag indicating if file_global_meta is allocated
Parameters
[in]thisThe object being inquiried

Definition at line 1053 of file fms_diag_yaml.F90.

◆ is_parent_axis()

logical function, public fms_diag_axis_object_mod::is_parent_axis ( integer, intent(in)  axis_id,
integer, intent(in)  parent_axis_id,
class(fmsdiagaxiscontainer_type), dimension(:), intent(in), target  diag_axis 
)

Determine if the diag_axis(parent_axis_id) is the parent of diag_axis(axis_id)

Returns
.True. if diag_axis(parent_axis_id) is the parent of diag_axis(axis_id)
Parameters
[in]axis_idAxis id to check
[in]parent_axis_idAxis id of the parent to check
[in]diag_axisArray of diag_axis objects

Definition at line 1473 of file fms_diag_axis_object.F90.

◆ is_unstructured_grid()

pure logical function fms_diag_axis_object_mod::is_unstructured_grid ( class(fmsdiagaxis_type), intent(in), target  this)
private
Parameters
[in]thisdiag_axis obj

Definition at line 533 of file fms_diag_axis_object.F90.

◆ is_var_attributes()

logical function fms_diag_yaml_mod::is_var_attributes ( class (diagyamlfilesvar_type), intent(in)  this)
private

Inquiry for whether var_attributes is allocated.

Returns
Flag indicating if var_attributes is allocated
Parameters
[in]thisThe object being inquiried

Definition at line 1177 of file fms_diag_yaml.F90.

◆ is_x_or_y_axis()

logical function fms_diag_axis_object_mod::is_x_or_y_axis ( class(fmsdiagfullaxis_type), intent(in)  this,
integer, intent(inout), optional  x_or_y 
)
private

Determine if an axis object is an x or y axis.

Returns
.true. if an axis object is an x or y axis, optionally return a flag indicating which it is
Parameters
[in]thisdiag_axis obj
[in,out]x_or_yreturns is_x_axis if it is a x axis is_y_axis if it is a y axis

Definition at line 648 of file fms_diag_axis_object.F90.

◆ is_z_axis()

pure logical function fms_diag_axis_object_mod::is_z_axis ( class(fmsdiagaxis_type), intent(in)  this)
private
Parameters
[in]thisAxis object

Definition at line 1008 of file fms_diag_axis_object.F90.

◆ parse_compress_att()

pure character(len=120) function, dimension(2), public fms_diag_axis_object_mod::parse_compress_att ( class(*), dimension(:), intent(in)  compress_att)
Parameters
[in]compress_attThe compress attribute to parse

Definition at line 1334 of file fms_diag_axis_object.F90.

◆ parse_key()

subroutine fms_diag_yaml_mod::parse_key ( character(len=*), intent(in)  filename,
character(len=*), intent(inout)  buffer,
integer, dimension(:), intent(out)  file_freq,
integer, dimension(:), intent(out)  file_frequnit,
character(len=*), intent(in)  var 
)
private

This parses the freq, new_file_freq, or file_duration keys which are read in as a comma list.

Parameters
[in]filenameThe name of the file (for error messages)
[in,out]bufferBuffer that was read in from the yaml
[out]file_freqbuffer to store the freq, new_file_freq, or file_duration after it is parsed
[out]file_frequnitbuffer to store the freq units, new_file_freq units, or file_duration units after it is parsed
[in]varName of the key parsing

Definition at line 735 of file fms_diag_yaml.F90.

◆ register_diag_axis_obj()

subroutine fms_diag_axis_object_mod::register_diag_axis_obj ( class(fmsdiagfullaxis_type), intent(inout)  this,
character(len=*), intent(in)  axis_name,
class(*), dimension(:), intent(in)  axis_data,
character(len=*), intent(in)  units,
character(len=1), intent(in)  cart_name,
character(len=*), intent(in), optional  long_name,
integer, intent(in), optional  direction,
character(len=*), intent(in), optional  set_name,
type(domain1d), intent(in), optional  Domain,
type(domain2d), intent(in), optional  Domain2,
type(domainug), intent(in), optional  DomainU,
character(len=*), intent(in), optional  aux,
character(len=*), intent(in), optional  req,
integer, intent(in), optional  tile_count,
integer, intent(in), optional  domain_position,
integer, intent(in), optional  axis_length 
)
private

Initialize the axis.

Parameters
[in,out]thisDiag_axis obj
[in]axis_nameName of the axis
[in]axis_dataArray of coordinate values
[in]unitsUnits for the axis
[in]cart_nameCartesian axis ("X", "Y", "Z", "T", "U", "N")
[in]long_nameLong name for the axis.
[in]set_nameName of the parent axis, if it is a subaxis
[in]directionIndicates the direction of the axis
[in]domain1D domain
[in]domain22D domain
[in]domainuUnstructured domain
[in]auxAuxiliary name, can only be geolon_t or geolat_t
[in]reqRequired field names.
[in]tile_countNumber of tiles
[in]domain_positionDomain position, "NORTH" or "EAST"
[in]axis_lengthThe length of the axis size(axis_data(:))
[in]axis_lengthThis is what fms2_io expects in the register_field call
[in]axis_lengthThis is what fms2_io expects in the register_field call

Definition at line 204 of file fms_diag_axis_object.F90.

◆ set_axis_domain()

subroutine fms_diag_axis_object_mod::set_axis_domain ( class(diagdomain_t this,
type(domain1d), intent(in), optional  Domain,
type(domain2d), intent(in), optional  Domain2,
type(domainug), intent(in), optional  DomainU 
)
private

Set the axis domain.

Parameters
thisfms_domain obj
[in]domain1d domain
[in]domain22d domain
[in]domainuUnstructured domain

Definition at line 943 of file fms_diag_axis_object.F90.

◆ set_axis_id()

subroutine fms_diag_axis_object_mod::set_axis_id ( class(fmsdiagfullaxis_type), intent(inout)  this,
integer, intent(in)  axis_id 
)
private

Set the axis_id.

Parameters
[in,out]thisdiag_axis obj

Definition at line 689 of file fms_diag_axis_object.F90.

◆ set_edges()

subroutine fms_diag_axis_object_mod::set_edges ( class(fmsdiagfullaxis_type), intent(inout)  this,
character(len=*), intent(in)  edges_name,
integer, intent(in)  edges_id 
)
private

Set the name and ids of the edges.

Parameters
[in,out]thisdiag_axis obj
[in]edges_nameName of the edges
[in]edges_idAxis id of the edges
[in]edges_idSaving the name and the id of the edges axis because it will make it easier to use downstream (i.e you need the edges name to write the attribute to the current axis, and you need the edges id to add to the diag file object so that you can write the edges to the file)

Definition at line 698 of file fms_diag_axis_object.F90.

◆ set_field_kind()

subroutine fms_diag_yaml_mod::set_field_kind ( type(diagyamlfilesvar_type), intent(inout)  field,
character(len=*), intent(in)  skind 
)
private

This checks if the kind of a diag field is valid and sets it.

Parameters
[in,out]fielddiagYamlFilesVar_type obj to read the contents into
[in]skindThe variable kind as read from diag_yaml

Definition at line 825 of file fms_diag_yaml.F90.

◆ set_field_reduction()

subroutine fms_diag_yaml_mod::set_field_reduction ( type(diagyamlfilesvar_type), intent(inout)  field,
character(len=*), intent(in)  reduction_method 
)
private

This checks if the reduction of a diag field is valid and sets it If the reduction method is diurnalXX or powXX, it gets the number of diurnal sample and the power value.

Parameters
[in,out]fielddiagYamlFilesVar_type obj to read the contents into
[in]reduction_methodreduction method as read from the yaml

Definition at line 848 of file fms_diag_yaml.F90.

◆ set_file_time_units()

subroutine fms_diag_yaml_mod::set_file_time_units ( type(diagyamlfiles_type), intent(inout)  yaml_fileobj,
character(len=*), intent(in)  file_timeunit 
)
private

This checks if the time unit in a diag file is valid and sets the integer equivalent.

Parameters
[in,out]yaml_fileobjdiagYamlFiles_type obj to checK
[in]file_timeunitfile_timeunit as it is read from the diag_table

Definition at line 796 of file fms_diag_yaml.F90.

◆ set_filename_time()

subroutine fms_diag_yaml_mod::set_filename_time ( type(diagyamlfiles_type), intent(inout)  yaml_fileobj,
character(len=*), intent(in)  filename_time 
)
private

This checks if the filename_time in a diag file is correct and sets the integer equivalent.

Parameters
[in,out]yaml_fileobjdiagYamlFiles_type obj to check
[in]filename_timefilename_time as it is read from the yaml
[in]filename_timeThis is the default

Definition at line 804 of file fms_diag_yaml.F90.

◆ set_valid_time_units()

integer function fms_diag_yaml_mod::set_valid_time_units ( character(len=*), intent(in)  time_units,
character(len=*), intent(in)  error_msg 
)
private

This checks if a time unit is valid and if it is, it assigns the integer equivalent.

Returns
The integer equivalent to the time units
Parameters
[in]time_unitsThe time_units as a string
[in]error_msgError message to append
Returns
The integer equivalent of the time_units

Definition at line 902 of file fms_diag_yaml.F90.

◆ size_diag_files()

pure integer function fms_diag_yaml_mod::size_diag_files ( class (diagyamlobject_type), intent(in)  this)
private

Find the number of files listed in the diag yaml.

Returns
the number of files in the diag yaml
Parameters
[in]thisThe diag_yaml

Definition at line 293 of file fms_diag_yaml.F90.

◆ size_file_varlist()

integer pure function fms_diag_yaml_mod::size_file_varlist ( class (diagyamlfiles_type), intent(in)  this)
private

Finds the number of variables in the file_varlist.

Returns
the size of the diag_files_objfile_varlist array
Parameters
[in]thisThe object being inquiried

Definition at line 933 of file fms_diag_yaml.F90.

◆ write_axis_data()

subroutine fms_diag_axis_object_mod::write_axis_data ( class(fmsdiagaxis_type), intent(in), target  this,
class(fmsnetcdffile_t), intent(inout)  fms2io_fileobj,
class(fmsdiagaxis_type), intent(in), optional, target  parent_axis 
)
private

Write the axis data to an open fms2io_fileobj.

Parameters
[in]thisdiag_axis obj
[in,out]fms2io_fileobjFms2_io fileobj to write the data to
[in]parent_axisThe parent axis if this is a subaxis

Definition at line 441 of file fms_diag_axis_object.F90.

◆ write_axis_metadata()

subroutine fms_diag_axis_object_mod::write_axis_metadata ( class(fmsdiagaxis_type), intent(in), target  this,
class(fmsnetcdffile_t), intent(inout)  fms2io_fileobj,
logical, intent(in)  edges_in_file,
class(fmsdiagaxis_type), intent(in), optional, target  parent_axis 
)
private

Write the axis meta data to an open fileobj.

Parameters
[in]thisdiag_axis obj
[in,out]fms2io_fileobjFms2_io fileobj to write the data to
[in]edges_in_file.True. if the edges to this axis are already in the file
[in]parent_axisIf the axis is a subaxis, axis object for the parent axis (this will be used to get some of the metadata info)

Definition at line 310 of file fms_diag_axis_object.F90.

◆ write_diurnal_metadata()

subroutine fms_diag_axis_object_mod::write_diurnal_metadata ( class(fmsdiagdiurnalaxis_type), intent(in)  this,
class(fmsnetcdffile_t), intent(inout)  fms2io_fileobj 
)
private
Parameters
[in]thisDiurnal axis Object
[in,out]fms2io_fileobjFms2_io fileobj to write the data to

Definition at line 1389 of file fms_diag_axis_object.F90.