FMS 2025.01-dev
Flexible Modeling System
|
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. | |
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. | |
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. | |
subroutine, public | define_diurnal_axis (diag_axis, naxis, n_diurnal_samples, is_edges) |
Defined a new diurnal axis. | |
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. | |
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. | |
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. | |
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 | |
subroutine | diag_yaml_files_obj_init (obj) |
Initializes the non string values of a diagYamlFiles_type to its default values. | |
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. | |
subroutine, public | dump_diag_yaml_obj (filename) |
Prints out values from diag_yaml object for debugging. Only writes on root. | |
subroutine | fill_in_diag_fields (diag_file_id, yaml_fileobj, var_id, field, allow_averages) |
Fills in a diagYamlFilesVar_type with the contents of a variable block in diag_table.yaml. | |
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. | |
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. | |
integer function, dimension(:), allocatable, public | find_diag_field (diag_field_name, module_name) |
Determines if a diag_field is in the diag_yaml_object. | |
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. | |
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. | |
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 | |
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. | |
type(diagyamlfilesvar_type) function, pointer | get_diag_field_from_id (this, yaml_id) |
Get the diag_field yaml corresponding to a yaml_id. | |
integer function, dimension(:), allocatable, public | get_diag_field_ids (indices) |
Gets field indices corresponding to the indices (input argument) in the sorted variable_list. | |
pure type(diagyamlfilesvar_type) function, dimension(:), allocatable | get_diag_fields (this) |
get the diag_fields of a diag_yaml type | |
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. | |
type(diagyamlfiles_type) function, dimension(:), allocatable | get_diag_files (this) |
get the diag_files of a diag_yaml type | |
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) | |
pure character(len=8 *max_freq) function | get_diag_reduction_string (reduction_val) |
private function for getting reduction type string from parameter values | |
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 | |
type(diagyamlobject_type) function, pointer, public | get_diag_yaml_obj () |
gets the diag_yaml module variable | |
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. | |
pure integer function | get_edges_id (this) |
integer function | get_ending_index (this) |
Accesses its member ending_index. | |
pure integer function | get_file_duration (this) |
Inquiry for diag_files_objfile_duration. | |
pure integer function | get_file_duration_units (this) |
Inquiry for diag_files_objfile_duration_units. | |
pure character(len=:) function, allocatable | get_file_fname (this) |
Inquiry for diag_files_objfile_fname. | |
pure integer function | get_file_freq (this) |
Inquiry for diag_files_objfile_freq. | |
pure integer function | get_file_frequnit (this) |
Inquiry for diag_files_objfile_frequnit. | |
pure character(len=max_str_len) function, dimension(:,:), allocatable | get_file_global_meta (this) |
Inquiry for diag_files_objfile_global_meta. | |
pure integer function | get_file_new_file_freq (this) |
Inquiry for diag_files_objfile_new_file_freq. | |
pure integer function | get_file_new_file_freq_units (this) |
Inquiry for diag_files_objfile_new_file_freq_units. | |
pure type(time_type) function | get_file_start_time (this) |
Inquiry for diag_files_objfile_start_time. | |
type(subregion_type) function, pointer | get_file_sub_region (this) |
Inquiry for diag_files_objfile_subregion. | |
pure integer function | get_file_timeunit (this) |
Inquiry for diag_files_objfile_timeunit. | |
pure character(len=:) function, allocatable | get_file_unlimdim (this) |
Inquiry for diag_files_objfile_unlimdim. | |
pure character(:) function, dimension(:), allocatable | get_file_varlist (this) |
Inquiry for diag_files_objfile_varlist. | |
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) | |
subroutine | get_global_io_domain (this, global_io_index) |
Get the starting and ending indices of the global io domain of the axis. | |
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. | |
integer function | get_length (this, cart_axis, domain_position, global_length) |
Get the length of a 2D domain. | |
pure integer function | get_n_diurnal (this) |
Inquiry for diag_yaml_files_var_objn_diurnal. | |
integer function | get_ntiles (this) |
Get the ntiles in a domain. | |
integer function, public | get_num_unique_fields () |
Determine the number of unique diag_fields in the diag_yaml_object. | |
pure integer function | get_parent_axis_id (this) |
pure integer function | get_pow_value (this) |
Inquiry for diag_yaml_files_var_objpow_value. | |
pure character(len=:) function, allocatable | get_set_name (this) |
Get the set name of an axis object. | |
integer function | get_starting_index (this) |
Accesses its member starting_index. | |
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 | |
pure integer function | get_subaxes_id (this) |
pure character(len=:) function, allocatable | get_title (this) |
get the title of a diag_yaml type | |
integer function | get_total_num_vars (diag_yaml_id, diag_file_id) |
gets the total number of variables in the diag_table yaml file | |
pure character(len=max_str_len) function, dimension(:,:), allocatable | get_var_attributes (this) |
Inquiry for diag_yaml_files_var_objvar_attributes. | |
pure character(len=:) function, allocatable | get_var_fname (this) |
Inquiry for diag_yaml_files_var_objvar_fname. | |
pure integer function, allocatable | get_var_kind (this) |
Inquiry for diag_yaml_files_var_objvar_kind. | |
pure character(len=:) function, allocatable | get_var_longname (this) |
Inquiry for diag_yaml_files_var_objvar_longname. | |
pure character(len=:) function, allocatable | get_var_module (this) |
Inquiry for diag_yaml_files_var_objvar_module. | |
pure character(len=:) function, allocatable | get_var_outname (this) |
Inquiry for diag_yaml_files_var_objvar_outname. | |
pure integer function, allocatable | get_var_reduction (this) |
Inquiry for diag_yaml_files_var_objvar_reduction. | |
pure character(len=:) function, allocatable | get_var_units (this) |
Inquiry for diag_yaml_files_var_objvar_units. | |
pure character(len=:) function, allocatable | get_var_varname (this) |
Inquiry for diag_yaml_files_var_objvar_varname. | |
pure real(kind=r4_kind) function, dimension(2) | get_var_zbounds (this) |
Inquiry for diag_yaml_files_var_objvar_zbounds. | |
pure logical function | has_aux (this) |
Determine if an axis object has an auxiliary name. | |
pure logical function | has_diag_basedate (this) |
diag_file_objdiag_basedate is on the stack, so this is always true | |
pure logical function | has_diag_fields (this) |
Checks if diag_file_objdiag_fields is allocated. | |
pure logical function | has_diag_files (this) |
Checks if diag_file_objdiag_files is allocated. | |
pure logical function | has_diag_title (this) |
Checks if diag_file_objdiag_title is allocated. | |
pure logical function | has_file_duration (this) |
diag_file_objfile_duration is allocated on th stack, so this is always true | |
pure logical function | has_file_duration_units (this) |
diag_file_objfile_duration_units is on the stack, so this will retrun true | |
pure logical function | has_file_fname (this) |
Checks if diag_file_objfile_fname is allocated. | |
pure logical function | has_file_freq (this) |
diag_file_objfile_freq is on the stack, so the object always has it | |
pure logical function | has_file_frequnit (this) |
Checks if diag_file_objfile_frequnit is allocated. | |
pure logical function | has_file_global_meta (this) |
Checks if diag_file_objfile_global_meta is allocated. | |
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 | |
pure logical function | has_file_new_file_freq_units (this) |
Checks if diag_file_objfile_new_file_freq_units is allocated. | |
pure logical function | has_file_start_time (this) |
Checks if diag_file_objfile_start_time is allocated. | |
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. | |
pure logical function | has_file_timeunit (this) |
Checks if diag_file_objfile_timeunit is allocated. | |
pure logical function | has_file_unlimdim (this) |
Checks if diag_file_objfile_unlimdim is allocated. | |
pure logical function | has_file_varlist (this) |
Checks if diag_file_objfile_varlist is allocated. | |
pure logical function | has_file_write (this) |
Checks if diag_file_objfile_write is on the stack, so this will always be true. | |
pure logical function | has_n_diurnal (this) |
Checks if diag_file_objn_diurnal is set. | |
pure logical function | has_pow_value (this) |
Checks if diag_file_objpow_value is set. | |
pure logical function | has_set_name (this) |
Determine if an axis object has a set_name. | |
pure logical function | has_var_attributes (this) |
Checks if diag_file_objvar_attributes is allocated. | |
pure logical function | has_var_fname (this) |
Checks if diag_file_objvar_fname is allocated. | |
pure logical function | has_var_kind (this) |
Checks if diag_file_objvar_kind is allocated. | |
pure logical function | has_var_longname (this) |
Checks if diag_file_objvar_longname is allocated. | |
pure logical function | has_var_module (this) |
Checks if diag_file_objvar_module is allocated. | |
pure logical function | has_var_outname (this) |
Checks if diag_file_objvar_outname is allocated. | |
pure logical function | has_var_reduction (this) |
Checks if diag_file_objvar_reduction is allocated. | |
pure logical function | has_var_units (this) |
Checks if diag_file_objvar_units is allocated. | |
pure logical function | has_var_varname (this) |
Checks if diag_file_objvar_varname is allocated. | |
pure logical function | has_var_write (this) |
diag_file_objvar_write is on the stack, so this returns true | |
pure logical function | has_var_zbounds (this) |
Checks if diag_file_objvar_zbounds is allocated. | |
subroutine | increase_new_file_freq_index (this) |
Increate the current_new_file_freq_index by 1. | |
pure logical function | is_file_subregional (this) |
logical function | is_global_meta (this) |
Inquiry for whether file_global_meta is allocated. | |
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) | |
pure logical function | is_unstructured_grid (this) |
logical function | is_var_attributes (this) |
Inquiry for whether var_attributes is allocated. | |
logical function | is_x_or_y_axis (this, x_or_y) |
Determine if an axis object is an x or y axis. | |
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. | |
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. | |
subroutine | set_axis_domain (this, domain, domain2, domainu) |
Set the axis domain. | |
subroutine | set_axis_id (this, axis_id) |
Set the axis_id. | |
subroutine | set_edges (this, edges_name, edges_id) |
Set the name and ids of the edges. | |
subroutine | set_field_kind (field, skind) |
This checks if the kind of a diag field is valid and sets it. | |
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. | |
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. | |
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. | |
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. | |
pure integer function | size_diag_files (this) |
Find the number of files listed in the diag yaml. | |
integer pure function | size_file_varlist (this) |
Finds the number of variables in the file_varlist. | |
subroutine | write_axis_data (this, fms2io_fileobj, parent_axis) |
Write the axis data to an open fms2io_fileobj. | |
subroutine | write_axis_metadata (this, fms2io_fileobj, edges_in_file, parent_axis) |
Write the axis meta data to an open fileobj. | |
subroutine | write_diurnal_metadata (this, fms2io_fileobj) |
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
type fms_diag_yaml_mod::diagyamlobject_type |
Object that holds the information of the diag_yaml.
Definition at line 253 of file fms_diag_yaml.F90.
Public Member Functions | |
procedure | get_basedate (this) |
Returns the basedate array. | |
procedure | get_diag_field_from_id (this, yaml_id) |
Get the diag_field yaml corresponding to a yaml_id. | |
procedure | get_diag_fields (this) |
Returns the diag_field array. | |
procedure | get_diag_files (this) |
Returns the diag_files array. | |
procedure | get_title (this) |
Returns the title. | |
procedure | has_diag_basedate (this) |
diag_file_objdiag_basedate is on the stack, so this is always true | |
procedure | has_diag_fields (this) |
Checks if diag_file_objdiag_fields is allocated. | |
procedure | has_diag_files (this) |
Checks if diag_file_objdiag_files is allocated. | |
procedure | has_diag_title (this) |
Checks if diag_file_objdiag_title is allocated. | |
procedure | size_diag_files (this) |
Find the number of files listed in the diag yaml. | |
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 Attributes | |
integer, dimension(basedate_size), private | diag_basedate |
basedate array | |
character(len=:), allocatable, private | diag_title |
Experiment name. | |
procedure get_basedate | ( | class (diagyamlobject_type), intent(in) | this | ) |
Returns the basedate array.
[in] | this | The diag_yaml |
Definition at line 262 of file fms_diag_yaml.F90.
procedure get_diag_field_from_id | ( | class (diagyamlobject_type), intent(in), target | this, |
integer, intent(in) | yaml_id | ||
) |
Get the diag_field yaml corresponding to a yaml_id.
[in] | this | The diag_yaml |
[in] | yaml_id | Yaml id |
Definition at line 265 of file fms_diag_yaml.F90.
procedure get_diag_fields | ( | class (diagyamlobject_type), intent(in) | this | ) |
Returns the diag_field array.
[in] | this | The diag_yaml |
Definition at line 264 of file fms_diag_yaml.F90.
procedure get_diag_files | ( | class (diagyamlobject_type), intent(in) | this | ) |
Returns the diag_files array.
[in] | this | The diag_yaml |
Definition at line 263 of file fms_diag_yaml.F90.
procedure get_title | ( | class (diagyamlobject_type), intent(in) | this | ) |
Returns the title.
[in] | this | The diag_yaml |
Definition at line 261 of file fms_diag_yaml.F90.
procedure has_diag_basedate | ( | class(diagyamlobject_type), intent(in) | this | ) |
diag_file_objdiag_basedate is on the stack, so this is always true
[in] | this | diagYamlObject_type object to initialize |
Definition at line 268 of file fms_diag_yaml.F90.
procedure has_diag_fields | ( | class(diagyamlobject_type), intent(in) | this | ) |
Checks if diag_file_objdiag_fields is allocated.
[in] | this | diagYamlObject_type object to initialize |
Definition at line 270 of file fms_diag_yaml.F90.
procedure has_diag_files | ( | class(diagyamlobject_type), intent(in) | this | ) |
Checks if diag_file_objdiag_files is allocated.
[in] | this | diagYamlObject_type object to initialize |
Definition at line 269 of file fms_diag_yaml.F90.
procedure has_diag_title | ( | class(diagyamlobject_type), intent(in) | this | ) |
Checks if diag_file_objdiag_title is allocated.
[in] | this | diagYamlObject_type object to inquire |
Definition at line 267 of file fms_diag_yaml.F90.
procedure size_diag_files | ( | class (diagyamlobject_type), intent(in) | this | ) |
Find the number of files listed in the diag yaml.
[in] | this | The diag_yaml |
Definition at line 259 of file fms_diag_yaml.F90.
|
private |
basedate array
Definition at line 255 of file fms_diag_yaml.F90.
type(diagyamlfilesvar_type), dimension (:), allocatable, public diag_fields |
Diag fields info.
Definition at line 257 of file fms_diag_yaml.F90.
type(diagyamlfiles_type), dimension (:), allocatable, public diag_files |
History file info.
Definition at line 256 of file fms_diag_yaml.F90.
|
private |
Experiment name.
Definition at line 254 of file fms_diag_yaml.F90.
|
private |
Add an attribute to an axis.
[in,out] | this | diag_axis obj |
[in] | att_name | Name of the attribute |
[in] | att_value | The attribute value to add |
Definition at line 293 of file fms_diag_axis_object.F90.
|
private |
Definition at line 2048 of file fms_diag_yaml.F90.
|
private |
[in,out] | this | diag_axis obj |
[in] | axis_ids | axis ids to add to the axis object |
Definition at line 544 of file fms_diag_axis_object.F90.
|
private |
Get the axis length of a subaxis.
[in] | this | diag_sub_axis obj |
Definition at line 873 of file fms_diag_axis_object.F90.
|
private |
Check if a cart_name is valid and crashes if it isn't.
Definition at line 1018 of file fms_diag_axis_object.F90.
|
private |
Check if a direction is valid and crashes if it isn't.
Definition at line 1042 of file fms_diag_axis_object.F90.
|
private |
Check if a domain_position is valid and crashes if it isn't.
Definition at line 1030 of file fms_diag_axis_object.F90.
subroutine, public 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.
[in] | zbounds | Bounds of the Z axis |
[in,out] | var_axis_ids | The variable's axis_ids |
[in,out] | diag_axis | Array of diag_axis objects |
[in,out] | naxis | Number of axis that have been registered |
[in,out] | file_axis_id | The file's axis_ids |
[in,out] | nfile_axis | Number of axis that have been defined in file |
[in,out] | nz_subaxis | The number of z subaxis currently defined in the file |
Definition at line 1405 of file fms_diag_axis_object.F90.
subroutine, public 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.
[in,out] | diag_axis | Array of axis containers |
[in,out] | naxis | Number of axis that have been defined |
[in] | n_diurnal_samples | The number of diurnal samples for the curent axis |
[in] | is_edges | Flag indicating if this is an edge axis |
Definition at line 470 of file fms_diag_axis_object.F90.
subroutine, public 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.
[in,out] | diag_axis | Diag_axis object |
[in,out] | parent_axis | The parent axis |
[in,out] | naxis | The number of axis that have been defined |
[in] | parent_id | Id of the parent axis |
[in] | starting_index | PE's Starting index |
[in] | ending_index | PE's Ending index |
[in] | compute_idx | Starting and ending index of the axis's compute domain |
[in] | global_idx | Starting and ending index of the axis's global domain |
[out] | new_axis_id | Axis id of the axis this is creating |
[in] | zbounds | Bounds of the Z axis |
[in] | nz_subaxis | The number of z subaxis that have been defined in the file |
[in] | nz_subaxis | This is the axis id of the new axis! |
[in] | nz_subaxis | Add the axis_id of the new subaxis to the parent axis |
[in] | nz_subaxis | Allocate the new axis as a subaxis and fill it |
Definition at line 1259 of file fms_diag_axis_object.F90.
subroutine, public 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.
[in,out] | diag_axis | Diag_axis object |
[in,out] | parent_axis | axis object of the parent |
[in,out] | naxis | Number of axis registered |
[in] | subregion | SubRegion definition from the yaml |
[in] | is_x_or_y | Flag 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.
subroutine, public 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.
[in,out] | diag_axis | Diag_axis object |
[in] | axis_ids | Array of axes_ids |
[in,out] | naxis | Number of axis registered |
[in] | subregion | SubRegion 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.
|
private |
diag_manager wrapper to get_value_from_key to use for allocatable string variables
[in] | diag_file_id | Id of the file block in the yaml file |
[in] | par_id | Id of the parent block in the yaml file |
[in] | key_name | Key to look for in the parent block |
value_name | Value of the key | |
[in] | is_optional | Flag indicating if the key is optional |
Definition at line 739 of file fms_diag_yaml.F90.
|
private |
Initializes the non string values of a diagYamlFiles_type to its default values.
[out] | obj | diagYamlFiles_type object to initialize |
Definition at line 1269 of file fms_diag_yaml.F90.
subroutine, public diag_yaml_object_end |
Destroys the diag_yaml object.
Definition at line 529 of file fms_diag_yaml.F90.
subroutine, public 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.
[in] | diag_subset_output | DIAG_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 363 of file fms_diag_yaml.F90.
subroutine, public dump_diag_yaml_obj | ( | character(len=*), intent(in), optional | filename | ) |
Prints out values from diag_yaml object for debugging. Only writes on root.
[in] | filename | optional name of logfile to write to, otherwise prints to stdout |
Definition at line 1581 of file fms_diag_yaml.F90.
|
private |
Fills in a diagYamlFilesVar_type with the contents of a variable block in diag_table.yaml.
[in] | diag_file_id | Id of the file block in the yaml file |
[in] | yaml_fileobj | The yaml file obj for the variables |
[in] | var_id | Id of the variable block in the yaml file |
[in,out] | field | diagYamlFilesVar_type obj to read the contents into |
[in] | allow_averages | .True. if averages are allowed for this file |
Set the zbounds if they exist
Definition at line 650 of file fms_diag_yaml.F90.
|
private |
Fills in a diagYamlFiles_type with the contents of a file block in diag_table.yaml.
[in] | diag_yaml_id | Id of the diag_table.yaml |
[in] | diag_file_id | Id of the file block to read |
[in,out] | yaml_fileobj | diagYamlFiles_type obj to read the contents into |
Definition at line 557 of file fms_diag_yaml.F90.
|
private |
Fills in the information needed to define a subaxis.
[in,out] | this | diag_sub_axis obj |
[in] | starting_index | Starting index of the subRegion for the PE |
[in] | ending_index | Ending index of the subRegion for the PE |
[in] | axis_id | Axis id to assign to the subaxis |
[in] | parent_id | The id of the parent axis the subaxis belongs to |
[in] | parent_axis_name | Name of the parent_axis |
[in] | compute_idx | Starting and ending index of the axis's compute domain |
[in] | global_idx | Starting and ending index of the axis's compute domain |
[in] | zbounds | Bounds of the z-axis |
[in] | nz_subaxis | The number of z subaxis that have been defined in the file |
Definition at line 828 of file fms_diag_axis_object.F90.
integer function, dimension(:), allocatable, public 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.
[in] | diag_field_name | diag_field name to search for |
[in] | module_name | Name of the module, the variable is in |
Definition at line 1493 of file fms_diag_yaml.F90.
logical function, public fms_diag_axis_object_end | ( | class(fmsdiagaxiscontainer_type), dimension(:), intent(inout), allocatable | axis_array | ) |
[in,out] | axis_array | Array of diag_axis |
Definition at line 973 of file fms_diag_axis_object.F90.
logical function, public fms_diag_axis_object_init | ( | class(fmsdiagaxiscontainer_type), dimension(:), intent(inout), allocatable | axis_array | ) |
[in,out] | axis_array | Array of diag_axis |
Definition at line 961 of file fms_diag_axis_object.F90.
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.
Definition at line 1648 of file fms_diag_yaml.F90.
|
private |
Get the auxiliary name of an axis object.
[in] | this | diag_axis obj |
Definition at line 680 of file fms_diag_axis_object.F90.
pure integer function, public 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 | ||
) |
[in] | diag_axis | Array of axis object |
[in] | axis_name | Name of the axis |
[in] | naxis | Number of axis that have been registered |
[in] | set_name | Name of the axis set |
Definition at line 1352 of file fms_diag_axis_object.F90.
|
private |
Get the length of the axis.
[in] | this | diag_axis obj |
Definition at line 609 of file fms_diag_axis_object.F90.
|
private |
[in] | this | Axis object |
[in] | is_regional | Flag indicating if the axis is regional |
Definition at line 986 of file fms_diag_axis_object.F90.
|
private |
get the basedate of a diag_yaml type
[in] | this | The diag_yaml |
Definition at line 296 of file fms_diag_yaml.F90.
|
private |
[in] | this | diag_axis obj |
[in,out] | compute_idx | Compute domain of the axis |
[out] | need_to_define_axis | .true. if it needed to define the axis |
[in] | tile_number | The tile number of the axis |
[in] | tile_number | Initialize the output |
[in] | tile_number | If the axis is not domain decomposed, use the whole axis as the compute domain |
[in] | tile_number | If 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_number | Get 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.
|
private |
Accesses its member compute_indices.
[in] | this | diag_sub_axis object |
Definition at line 899 of file fms_diag_axis_object.F90.
|
private |
Get the diag_field yaml corresponding to a yaml_id.
[in] | this | The diag_yaml |
[in] | yaml_id | Yaml id |
Definition at line 337 of file fms_diag_yaml.F90.
integer function, dimension(:), allocatable, public get_diag_field_ids | ( | integer, dimension(:), intent(in) | indices | ) |
Gets field indices corresponding to the indices (input argument) in the sorted variable_list.
[in] | indices | Indices of the fields in the sorted variable_list array |
Definition at line 1527 of file fms_diag_yaml.F90.
|
private |
get the diag_fields of a diag_yaml type
[in] | this | The diag_yaml |
Definition at line 353 of file fms_diag_yaml.F90.
type(diagyamlfilesvar_type) function, dimension (:), allocatable, public get_diag_fields_entries | ( | integer, dimension(:), intent(in) | indices | ) |
Gets the diag_field entries corresponding to the indices of the sorted variable_list.
[in] | indices | Indices of the field in the sorted variable_list array |
Definition at line 1507 of file fms_diag_yaml.F90.
|
private |
get the diag_files of a diag_yaml type
[in] | this | The diag_yaml |
Definition at line 327 of file fms_diag_yaml.F90.
integer function, dimension(:), allocatable, public get_diag_files_id | ( | integer, dimension(:), intent(in) | indices | ) |
Finds the indices of the diag_yamldiag_files(:) corresponding to fields in variable_list(indices)
[in] | indices | Indices of the field in the sorted variable_list |
Definition at line 1543 of file fms_diag_yaml.F90.
|
private |
private function for getting reduction type string from parameter values
[in] | reduction_val | reduction types (eg. time_average) |
Definition at line 2018 of file fms_diag_yaml.F90.
|
private |
private function for getting unit string from diag_data parameter values
[in] | unit_param | diag unit parameter values from diag_data_mod. eg. DIAG_SECONDS, DIAG_MINUTES,DIAG_HOURS, DIAG_DAYS, DIAG_YEARS |
Definition at line 1988 of file fms_diag_yaml.F90.
type (diagyamlobject_type) function, pointer, public get_diag_yaml_obj |
gets the diag_yaml module variable
Definition at line 287 of file fms_diag_yaml.F90.
|
private |
[in] | this | Axis Object |
Definition at line 1379 of file fms_diag_axis_object.F90.
subroutine, public 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.
[in] | diag_axis | Array of diag_axis |
[in] | axis_id | Array of axis ids |
[out] | domain_type | fileobj_type to use |
[in] | var_name | Name of the variable (for error messages) |
Definition at line 1054 of file fms_diag_axis_object.F90.
|
private |
[in] | this | diag_axis obj |
Definition at line 572 of file fms_diag_axis_object.F90.
|
private |
Accesses its member ending_index.
[in] | this | diag_sub_axis object |
Definition at line 891 of file fms_diag_axis_object.F90.
|
private |
Inquiry for diag_files_objfile_duration.
[in] | this | The object being inquiried |
Definition at line 1093 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_files_objfile_duration_units.
[in] | this | The object being inquiried |
Definition at line 1101 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_files_objfile_fname.
[in] | this | The object being inquiried |
Definition at line 1021 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_files_objfile_freq.
[in] | this | The object being inquiried |
Definition at line 1037 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_files_objfile_frequnit.
[in] | this | The object being inquiried |
Definition at line 1029 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_files_objfile_global_meta.
[in] | this | The object being inquiried |
Definition at line 1117 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_files_objfile_new_file_freq.
[in] | this | The object being inquiried |
Definition at line 1069 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_files_objfile_new_file_freq_units.
[in] | this | The object being inquiried |
Definition at line 1077 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_files_objfile_start_time.
[in] | this | The object being inquiried |
Definition at line 1085 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_files_objfile_subregion.
[in] | this | The object being inquiried |
Definition at line 1061 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_files_objfile_timeunit.
[in] | this | The object being inquiried |
Definition at line 1045 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_files_objfile_unlimdim.
[in] | this | The object being inquiried |
Definition at line 1053 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_files_objfile_varlist.
[in] | this | The object being inquiried |
Definition at line 1109 of file fms_diag_yaml.F90.
|
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)
[in] | this | The object being inquiried |
Definition at line 1126 of file fms_diag_yaml.F90.
|
private |
Get the starting and ending indices of the global io domain of the axis.
[in] | this | diag_axis obj |
[out] | global_io_index | Global io domain starting and ending index |
Definition at line 583 of file fms_diag_axis_object.F90.
|
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.
[in] | this | diag_axis obj |
[in] | compute_idx | Current PE's compute domain |
[in] | corners_indices | The indices of the corners of the subRegion |
[out] | starting_index | Starting index of the subRegion for the current PE |
[out] | ending_index | Ending 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.
|
private |
Get the length of a 2D domain.
[in] | this | diag_axis obj |
[in] | cart_axis | cart_axis of the axis |
[in] | domain_position | Domain position (CENTER, NORTH, EAST) |
[in] | global_length | global_length of the axis |
Definition at line 921 of file fms_diag_axis_object.F90.
|
private |
Inquiry for diag_yaml_files_var_objn_diurnal.
[in] | this | The object being inquiried |
Definition at line 1242 of file fms_diag_yaml.F90.
|
private |
Get the ntiles in a domain.
[in] | this | diag_axis obj |
Definition at line 907 of file fms_diag_axis_object.F90.
integer function, public get_num_unique_fields |
Determine the number of unique diag_fields in the diag_yaml_object.
Definition at line 1484 of file fms_diag_yaml.F90.
|
private |
[in] | this | Axis Object |
Definition at line 1299 of file fms_diag_axis_object.F90.
|
private |
Inquiry for diag_yaml_files_var_objpow_value.
[in] | this | The object being inquiried |
Definition at line 1250 of file fms_diag_yaml.F90.
|
private |
Get the set name of an axis object.
[in] | this | diag_axis obj |
Definition at line 670 of file fms_diag_axis_object.F90.
|
private |
Accesses its member starting_index.
[in] | this | diag_sub_axis object |
Definition at line 883 of file fms_diag_axis_object.F90.
|
private |
[in] | this | diag_axis obj |
Definition at line 557 of file fms_diag_axis_object.F90.
|
private |
gets the lat/lon of the sub region to use in a diag_table yaml
[in] | diag_yaml_id | Id of the diag_table yaml file |
[in] | sub_region_id | Id of the region block to read from |
[in,out] | sub_region | Type that stores the sub_region |
[in] | grid_type | The grid_type as it is read from the file |
[in] | fname | filename of the subregion (for error messages) |
Definition at line 756 of file fms_diag_yaml.F90.
|
private |
[in] | this | Axis Object |
Definition at line 1318 of file fms_diag_axis_object.F90.
|
private |
get the title of a diag_yaml type
[in] | this | The diag_yaml |
Definition at line 317 of file fms_diag_yaml.F90.
|
private |
gets the total number of variables in the diag_table yaml file
[in] | diag_yaml_id | Id for the diag_table yaml |
[in] | diag_file_id | Id of the file in the diag_table yaml |
Definition at line 790 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_yaml_files_var_objvar_attributes.
[in] | this | The object being inquiried |
Definition at line 1234 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_yaml_files_var_objvar_fname.
[in] | this | The object being inquiried |
Definition at line 1157 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_yaml_files_var_objvar_kind.
[in] | this | The object being inquiried |
Definition at line 1189 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_yaml_files_var_objvar_longname.
[in] | this | The object being inquiried |
Definition at line 1210 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_yaml_files_var_objvar_module.
[in] | this | The object being inquiried |
Definition at line 1181 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_yaml_files_var_objvar_outname.
[in] | this | The object being inquiried |
Definition at line 1197 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_yaml_files_var_objvar_reduction.
[in] | this | The object being inquiried |
Definition at line 1173 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_yaml_files_var_objvar_units.
[in] | this | The object being inquiried |
Definition at line 1218 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_yaml_files_var_objvar_varname.
[in] | this | The object being inquiried |
Definition at line 1165 of file fms_diag_yaml.F90.
|
private |
Inquiry for diag_yaml_files_var_objvar_zbounds.
[in] | this | The object being inquiried |
Definition at line 1226 of file fms_diag_yaml.F90.
|
private |
Determine if an axis object has an auxiliary name.
[in] | this | diag_axis obj |
Definition at line 626 of file fms_diag_axis_object.F90.
|
private |
diag_file_objdiag_basedate is on the stack, so this is always true
[in] | this | diagYamlObject_type object to initialize |
Definition at line 1465 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objdiag_fields is allocated.
[in] | this | diagYamlObject_type object to initialize |
Definition at line 1477 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objdiag_files is allocated.
[in] | this | diagYamlObject_type object to initialize |
Definition at line 1471 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objdiag_title is allocated.
[in] | this | diagYamlObject_type object to inquire |
Definition at line 1459 of file fms_diag_yaml.F90.
|
private |
diag_file_objfile_duration is allocated on th stack, so this is always true
[in] | this | diagYamlFiles_type object to initialize |
Definition at line 1347 of file fms_diag_yaml.F90.
|
private |
diag_file_objfile_duration_units is on the stack, so this will retrun true
[in] | this | diagYamlFiles_type object to initialize |
Definition at line 1353 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objfile_fname is allocated.
[in] | this | diagYamlFiles_type object to initialize |
Definition at line 1283 of file fms_diag_yaml.F90.
|
private |
diag_file_objfile_freq is on the stack, so the object always has it
[in] | this | diagYamlFiles_type object to initialize |
Definition at line 1295 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objfile_frequnit is allocated.
[in] | this | diagYamlFiles_type object to initialize |
Definition at line 1289 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objfile_global_meta is allocated.
[in] | this | diagYamlFiles_type object to initialize |
Definition at line 1365 of file fms_diag_yaml.F90.
|
private |
diag_file_objfile_new_file_freq is defined on the stack, so this will return true
[in] | this | diagYamlFiles_type object to initialize |
Definition at line 1329 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objfile_new_file_freq_units is allocated.
[in] | this | diagYamlFiles_type object to initialize |
Definition at line 1335 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objfile_start_time is allocated.
[in] | this | diagYamlFiles_type object to initialize |
Definition at line 1341 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objfile_sub_region is being used and has the sub region variables allocated.
[in] | this | diagYamlFiles_type object to initialize |
Definition at line 1319 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objfile_timeunit is allocated.
[in] | this | diagYamlFiles_type object to initialize |
Definition at line 1301 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objfile_unlimdim is allocated.
[in] | this | diagYamlFiles_type object to initialize |
Definition at line 1307 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objfile_varlist is allocated.
[in] | this | diagYamlFiles_type object to initialize |
Definition at line 1359 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objfile_write is on the stack, so this will always be true.
[in] | this | diagYamlFiles_type object to initialize |
Definition at line 1313 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objn_diurnal is set.
[in] | this | diagYamlvar_type object to inquire |
Definition at line 1446 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objpow_value is set.
[in] | this | diagYamlvar_type object to inquire |
Definition at line 1452 of file fms_diag_yaml.F90.
|
private |
Determine if an axis object has a set_name.
[in] | this | diag_axis obj |
Definition at line 637 of file fms_diag_axis_object.F90.
|
private |
Checks if diag_file_objvar_attributes is allocated.
[in] | this | diagYamlvar_type object to initialize |
Definition at line 1440 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objvar_fname is allocated.
[in] | this | diagYamlvar_type object to initialize |
Definition at line 1372 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objvar_kind is allocated.
[in] | this | diagYamlvar_type object to initialize |
Definition at line 1396 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objvar_longname is allocated.
[in] | this | diagYamlvar_type object to initialize |
Definition at line 1422 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objvar_module is allocated.
[in] | this | diagYamlvar_type object to initialize |
Definition at line 1390 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objvar_outname is allocated.
[in] | this | diagYamlvar_type object to initialize |
Definition at line 1408 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objvar_reduction is allocated.
[in] | this | diagYamlvar_type object to initialize |
Definition at line 1384 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objvar_units is allocated.
[in] | this | diagYamlvar_type object to initialize |
Definition at line 1428 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objvar_varname is allocated.
[in] | this | diagYamlvar_type object to initialize |
Definition at line 1378 of file fms_diag_yaml.F90.
|
private |
diag_file_objvar_write is on the stack, so this returns true
[in] | this | diagYamlvar_type object to initialize |
Definition at line 1402 of file fms_diag_yaml.F90.
|
private |
Checks if diag_file_objvar_zbounds is allocated.
[in] | this | diagYamlvar_type object to initialize |
Definition at line 1434 of file fms_diag_yaml.F90.
|
private |
Increate the current_new_file_freq_index by 1.
[in,out] | this | The file object |
Definition at line 1144 of file fms_diag_yaml.F90.
|
private |
Definition at line 2057 of file fms_diag_yaml.F90.
|
private |
Inquiry for whether file_global_meta is allocated.
[in] | this | The object being inquiried |
Definition at line 1134 of file fms_diag_yaml.F90.
logical function, public 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)
[in] | axis_id | Axis id to check |
[in] | parent_axis_id | Axis id of the parent to check |
[in] | diag_axis | Array of diag_axis objects |
Definition at line 1473 of file fms_diag_axis_object.F90.
|
private |
[in] | this | diag_axis obj |
Definition at line 533 of file fms_diag_axis_object.F90.
|
private |
Inquiry for whether var_attributes is allocated.
[in] | this | The object being inquiried |
Definition at line 1258 of file fms_diag_yaml.F90.
|
private |
Determine if an axis object is an x or y axis.
[in] | this | diag_axis obj |
[in,out] | x_or_y | returns 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.
|
private |
[in] | this | Axis object |
Definition at line 1008 of file fms_diag_axis_object.F90.
pure character(len=120) function, dimension(2), public parse_compress_att | ( | class(*), dimension(:), intent(in) | compress_att | ) |
[in] | compress_att | The compress attribute to parse |
Definition at line 1334 of file fms_diag_axis_object.F90.
|
private |
This parses the freq, new_file_freq, or file_duration keys which are read in as a comma list.
[in] | filename | The name of the file (for error messages) |
[in,out] | buffer | Buffer that was read in from the yaml |
[out] | file_freq | buffer to store the freq, new_file_freq, or file_duration after it is parsed |
[out] | file_frequnit | buffer to store the freq units, new_file_freq units, or file_duration units after it is parsed |
[in] | var | Name of the key parsing |
Definition at line 816 of file fms_diag_yaml.F90.
|
private |
Initialize the axis.
[in,out] | this | Diag_axis obj |
[in] | axis_name | Name of the axis |
[in] | axis_data | Array of coordinate values |
[in] | units | Units for the axis |
[in] | cart_name | Cartesian axis ("X", "Y", "Z", "T", "U", "N") |
[in] | long_name | Long name for the axis. |
[in] | set_name | Name of the parent axis, if it is a subaxis |
[in] | direction | Indicates the direction of the axis |
[in] | domain | 1D domain |
[in] | domain2 | 2D domain |
[in] | domainu | Unstructured domain |
[in] | aux | Auxiliary name, can only be geolon_t or geolat_t |
[in] | req | Required field names. |
[in] | tile_count | Number of tiles |
[in] | domain_position | Domain position, "NORTH" or "EAST" |
[in] | axis_length | The length of the axis size(axis_data(:)) |
[in] | axis_length | This is what fms2_io expects in the register_field call |
[in] | axis_length | This is what fms2_io expects in the register_field call |
Definition at line 204 of file fms_diag_axis_object.F90.
|
private |
Set the axis domain.
this | fms_domain obj | |
[in] | domain | 1d domain |
[in] | domain2 | 2d domain |
[in] | domainu | Unstructured domain |
Definition at line 943 of file fms_diag_axis_object.F90.
|
private |
Set the axis_id.
[in,out] | this | diag_axis obj |
Definition at line 689 of file fms_diag_axis_object.F90.
|
private |
Set the name and ids of the edges.
[in,out] | this | diag_axis obj |
[in] | edges_name | Name of the edges |
[in] | edges_id | Axis id of the edges |
[in] | edges_id | Saving 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.
|
private |
This checks if the kind of a diag field is valid and sets it.
[in,out] | field | diagYamlFilesVar_type obj to read the contents into |
[in] | skind | The variable kind as read from diag_yaml |
Definition at line 906 of file fms_diag_yaml.F90.
|
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.
[in,out] | field | diagYamlFilesVar_type obj to read the contents into |
[in] | reduction_method | reduction method as read from the yaml |
Definition at line 929 of file fms_diag_yaml.F90.
|
private |
This checks if the time unit in a diag file is valid and sets the integer equivalent.
[in,out] | yaml_fileobj | diagYamlFiles_type obj to checK |
[in] | file_timeunit | file_timeunit as it is read from the diag_table |
Definition at line 877 of file fms_diag_yaml.F90.
|
private |
This checks if the filename_time in a diag file is correct and sets the integer equivalent.
[in,out] | yaml_fileobj | diagYamlFiles_type obj to check |
[in] | filename_time | filename_time as it is read from the yaml |
[in] | filename_time | This is the default |
Definition at line 885 of file fms_diag_yaml.F90.
|
private |
This checks if a time unit is valid and if it is, it assigns the integer equivalent.
[in] | time_units | The time_units as a string |
[in] | error_msg | Error message to append |
Definition at line 983 of file fms_diag_yaml.F90.
|
private |
Find the number of files listed in the diag yaml.
[in] | this | The diag_yaml |
Definition at line 306 of file fms_diag_yaml.F90.
|
private |
Finds the number of variables in the file_varlist.
[in] | this | The object being inquiried |
Definition at line 1014 of file fms_diag_yaml.F90.
|
private |
Write the axis data to an open fms2io_fileobj.
[in] | this | diag_axis obj |
[in,out] | fms2io_fileobj | Fms2_io fileobj to write the data to |
[in] | parent_axis | The parent axis if this is a subaxis |
Definition at line 441 of file fms_diag_axis_object.F90.
|
private |
Write the axis meta data to an open fileobj.
[in] | this | diag_axis obj |
[in,out] | fms2io_fileobj | Fms2_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_axis | If 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.
|
private |
[in] | this | Diurnal axis Object |
[in,out] | fms2io_fileobj | Fms2_io fileobj to write the data to |
Definition at line 1389 of file fms_diag_axis_object.F90.