FMS 2025.01-dev
Flexible Modeling System
Loading...
Searching...
No Matches
fmsdiagobject_type Type Reference
Collaboration diagram for fmsdiagobject_type:
[legend]

Public Member Functions

procedure allocate_diag_field_output_buffers (this, field_data, field_id)
 Allocates the output buffers of the fields corresponding to the registered variable Input arguments are the field and its ID passed to routine fms_diag_accept_data()
 
procedure diag_end (this, time)
 \description Loops through all files and does one final write. Closes all files Deallocates all buffers, fields, and files Uninitializes the fms_diag_object
 
procedure do_buffer_math (this)
 
procedure fms_diag_accept_data (this, diag_field_id, field_data, mask, rmask, time, is_in, js_in, ks_in, ie_in, je_in, ke_in, weight, err_msg)
 Accepts data from the send_data functions. If this is in an openmp region with more than one thread, the data is buffered in the field object and processed later. If only a single thread is being used, then the processing can be done and stored in the buffer object. The hope is that the increase in memory footprint related to buffering can be handled by the shared memory of the multithreaded case.
 
procedure fms_diag_axis_add_attribute (this, axis_id, att_name, att_value)
 Add an attribute to an axis.
 
procedure fms_diag_axis_init (this, axis_name, axis_data, units, cart_name, axis_length, long_name, direction, set_name, edges, domain, domain2, domainu, aux, req, tile_count, domain_position)
 Wrapper for the register_diag_axis subroutine. This is needed to keep the diag_axis_init interface the same.
 
procedure fms_diag_compare_window (this, field, field_id, is_in, ie_in, js_in, je_in, ks_in, ke_in)
 Determines if the window defined by the input bounds is a physics window.
 
procedure fms_diag_do_io (this, end_time)
 Loops through all the files, open the file, writes out axis and variable metadata and data when necessary. TODO: passing in the saved mask from the field obj to diag_reduction_done_wrapper for performance.
 
procedure fms_diag_do_reduction (this, field_data, diag_field_id, oor_mask, weight, bounds, using_blocking, time)
 Computes average, min, max, rms error, etc. based on the specified reduction method for the field.
 
procedure fms_diag_field_add_attribute (this, diag_field_id, att_name, att_value)
 Add a attribute to the diag_obj using the diag_field_id.
 
procedure fms_diag_field_add_cell_measures (this, diag_field_id, area, volume)
 Adds the diag ids of the Area and or Volume of the diag_field_object.
 
procedure fms_diag_send_complete (this, time_step)
 Loops through all the files, open the file, writes out axis and variable metadata and data when necessary.
 
procedure fms_get_axis_length (this, axis_id)
 Gets the length of the axis based on the axis_id.
 
procedure fms_get_axis_name_from_id (this, axis_id)
 Gets the name of the axis based on the axis_id.
 
procedure fms_get_diag_field_id_from_name (this, module_name, field_name)
 Gets the diag field ID from the module name and field name.
 
procedure fms_get_domain2d (this, ids)
 Return the 2D domain for the axis IDs given.
 
procedure fms_get_field_name_from_id (this, field_id)
 Gets the field_name from the diag_field.
 
procedure fms_register_diag_field_array (this, module_name, field_name, axes, init_time, long_name, units, missing_value, var_range, mask_variant, standard_name, verbose, do_not_log, err_msg, interp_method, tile_count, area, volume, realm, multiple_send_data)
 Registers an array field.
 
procedure fms_register_diag_field_scalar (this, module_name, field_name, init_time, long_name, units, missing_value, var_range, standard_name, do_not_log, err_msg, area, volume, realm, multiple_send_data)
 Registers a scalar field.
 
procedure fms_register_static_field (this, module_name, field_name, axes, long_name, units, missing_value, range, mask_variant, standard_name, dynamic, do_not_log, interp_method, tile_count, area, volume, realm)
 Return field index for subsequent call to send_data.
 
procedure get_diag_buffer (this, bufferid)
 returns the buffer object for the given id actual data comes from get_buffer_data() on the returned object
 
procedure init (this, diag_subset_output, time_init)
 Initiliazes the fms_diag_object. Reads the diag_table.yaml and fills in the yaml object Allocates the diag manager object arrays for files, fields, and buffers Initializes variables.
 
procedure register (this, modname, varname, axes, init_time, longname, units, missing_value, varrange, mask_variant, standname, do_not_log, err_msg, interp_method, tile_count, area, volume, realm, static, multiple_send_data)
 Registers a field. @description This to avoid having duplicate code in each of the _scalar, _array and _static register calls.
 
procedure set_time_end (this, time_end_in)
 Set the model_end_time in a diag object.
 

Public Attributes

class(fmsdiagaxiscontainer_type), dimension(:), allocatable diag_axis
 Array of diag_axis.
 
type(fmsdiagfield_type), dimension(:), allocatable fms_diag_fields
 Array of diag fields.
 
type(fmsdiagoutputbuffer_type), dimension(:), allocatable fms_diag_output_buffers
 array of output buffer objects one for each variable in the diag_table.yaml
 
type(time_typemodel_end_time
 The time that the simulation is going to end (set by calling diag_manager_set_time_end)
 

Private Attributes

logical, private axes_initialized =.false.
 True if the fmsDiagObject is initialized.
 
logical, private buffers_initialized =.false.
 True if the fmsDiagObject is initialized.
 
logical, private data_was_send
 True if send_data has been successfully called for at least one variable diag_send_complete does nothing if it is .false.
 
logical, private fields_initialized =.false.
 True if the fmsDiagObject is initialized.
 
logical, private files_initialized =.false.
 True if the fmsDiagObject is initialized.
 
class(fmsdiagfilecontainer_type), dimension(:), allocatable fms_diag_files
 array of diag files
 
logical, private initialized =.false.
 True if the fmsDiagObject is initialized.
 
integer, private registered_axis
 Number of registered axis.
 
integer, private registered_buffers = 0
 number of registered buffers, per dimension
 
integer, private registered_variables
 Number of registered variables.
 

Detailed Description

Definition at line 55 of file fms_diag_object.F90.

Member Function/Subroutine Documentation

◆ allocate_diag_field_output_buffers()

procedure allocate_diag_field_output_buffers ( class(fmsdiagobject_type), intent(inout), target  this,
class(*), dimension(:,:,:,:), intent(in)  field_data,
integer, intent(in)  field_id 
)

Allocates the output buffers of the fields corresponding to the registered variable Input arguments are the field and its ID passed to routine fms_diag_accept_data()

Parameters
[in,out]thisdiag object
[in]field_datafield data
[in]field_idId of the field data

Definition at line 99 of file fms_diag_object.F90.

◆ diag_end()

procedure diag_end ( class(fmsdiagobject_type this,
type(time_type), intent(in)  time 
)

\description Loops through all files and does one final write. Closes all files Deallocates all buffers, fields, and files Uninitializes the fms_diag_object

Definition at line 80 of file fms_diag_object.F90.

◆ do_buffer_math()

procedure do_buffer_math ( class(fmsdiagobject_type), intent(inout), target  this)
Parameters
[in,out]thisThe diag object

Definition at line 95 of file fms_diag_object.F90.

◆ fms_diag_accept_data()

procedure fms_diag_accept_data ( class(fmsdiagobject_type), intent(inout), target  this,
integer, intent(in)  diag_field_id,
class(*), dimension(:,:,:,:), intent(in)  field_data,
logical, dimension(:,:,:,:), intent(in), allocatable  mask,
class(*), dimension(:,:,:,:), intent(in), allocatable  rmask,
type (time_type), intent(in), optional  time,
integer, intent(in), optional  is_in,
integer, intent(in), optional  js_in,
integer, intent(in), optional  ks_in,
integer, intent(in), optional  ie_in,
integer, intent(in), optional  je_in,
integer, intent(in), optional  ke_in,
class(*), intent(in), optional  weight,
character(len=*), intent(out), optional  err_msg 
)

Accepts data from the send_data functions. If this is in an openmp region with more than one thread, the data is buffered in the field object and processed later. If only a single thread is being used, then the processing can be done and stored in the buffer object. The hope is that the increase in memory footprint related to buffering can be handled by the shared memory of the multithreaded case.

Note
If some of the diag manager is offloaded in the future, then it should be treated similarly to the multi-threaded option for processing later
Parameters
[in,out]thisDiaj_obj to fill
[in]diag_field_idThe ID of the diag field
[in]field_dataThe data for the diag_field
[in]maskLogical mask indicating the grid points to mask (null if no mask)
[in]rmaskreal mask indicating the grid points to mask (null if no mask)
[in]weightThe weight used for averaging
[in]timeThe current time
[in]ks_inStarting indices
[in]ke_inEnding indices
[out]err_msgAn error message returned

Definition at line 93 of file fms_diag_object.F90.

◆ fms_diag_axis_add_attribute()

procedure fms_diag_axis_add_attribute ( class(fmsdiagobject_type), intent(inout)  this,
integer, intent(in)  axis_id,
character(len=*), intent(in)  att_name,
class(*), dimension(:), intent(in)  att_value 
)

Add an attribute to an axis.

Parameters
[in,out]thisThe diag object
[in]axis_idId of the axis to add the attribute to
[in]att_nameName of the attribute
[in]att_valueThe attribute value to add

Definition at line 87 of file fms_diag_object.F90.

◆ fms_diag_axis_init()

procedure fms_diag_axis_init ( class(fmsdiagobject_type), intent(inout), target  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,
integer, intent(in)  axis_length,
character(len=*), intent(in), optional  long_name,
integer, intent(in), optional  direction,
character(len=*), intent(in), optional  set_name,
integer, intent(in), optional  edges,
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 
)

Wrapper for the register_diag_axis subroutine. This is needed to keep the diag_axis_init interface the same.

Returns
Axis id
Parameters
[in,out]thisDiaj_obj to fill
[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]axis_lengthThe length of the axis size(axis_data(:))
[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]edgesAxis ID for the previously defined "edges 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"

Definition at line 84 of file fms_diag_object.F90.

◆ fms_diag_compare_window()

procedure fms_diag_compare_window ( class(fmsdiagobject_type), intent(in)  this,
class(*), dimension(:,:,:,:), intent(in)  field,
integer, intent(in)  field_id,
integer, intent(in)  is_in,
integer, intent(in)  ie_in,
integer, intent(in)  js_in,
integer, intent(in)  je_in,
integer, intent(in)  ks_in,
integer, intent(in)  ke_in 
)

Determines if the window defined by the input bounds is a physics window.

Returns
TRUE if the window size is less then the actual field size else FALSE.
Parameters
[in]thisDiag Object
[in]fieldField data
[in]field_idID of the input field
[in]js_inStarting field indices for the first 2 dimensions; pass reconditioned indices fis and fjs which are computed elsewhere.
[in]je_inEnding field indices for the first 2 dimensions; pass reconditioned indices fie and fje which are computed elsewhere.
[in]ke_inStarting and ending indices of the field in 3rd dimension
Returns
Return flag

Definition at line 100 of file fms_diag_object.F90.

◆ fms_diag_do_io()

procedure fms_diag_do_io ( class(fmsdiagobject_type), intent(inout), target  this,
type(time_type), intent(in), optional, target  end_time 
)

Loops through all the files, open the file, writes out axis and variable metadata and data when necessary. TODO: passing in the saved mask from the field obj to diag_reduction_done_wrapper for performance.

Parameters
[in,out]thisThe diag object
[in]end_timethe model end_time

Definition at line 96 of file fms_diag_object.F90.

◆ fms_diag_do_reduction()

procedure fms_diag_do_reduction ( class(fmsdiagobject_type), intent(inout), target  this,
class(*), dimension(:,:,:,:), intent(in)  field_data,
integer, intent(in)  diag_field_id,
logical, dimension(:,:,:,:), intent(in), target  oor_mask,
real(kind=r8_kind), intent(in)  weight,
type(fmsdiagibounds_type), intent(in)  bounds,
logical, intent(in)  using_blocking,
type(time_type), intent(in), optional  time 
)

Computes average, min, max, rms error, etc. based on the specified reduction method for the field.

Returns
Empty string if successful, error message if it fails
Parameters
[in,out]thisDiag Object
[in]field_dataField data
[in]diag_field_idID of the input field
[in]oor_maskmask
[in]weightMust be a updated weight
[in]boundsBounds for the field
[in]using_blocking.True. if field data is passed in blocks
[in]timeCurrent time
Returns
Error message to check

Definition at line 97 of file fms_diag_object.F90.

◆ fms_diag_field_add_attribute()

procedure fms_diag_field_add_attribute ( class(fmsdiagobject_type), intent(inout)  this,
integer, intent(in)  diag_field_id,
character(len=*), intent(in)  att_name,
class(*), dimension(:), intent(in)  att_value 
)

Add a attribute to the diag_obj using the diag_field_id.

Parameters
[in,out]thisThe diag object
[in]diag_field_idId of the axis to add the attribute to
[in]att_nameName of the attribute
[in]att_valueThe attribute value to add

Definition at line 86 of file fms_diag_object.F90.

◆ fms_diag_field_add_cell_measures()

procedure fms_diag_field_add_cell_measures ( class(fmsdiagobject_type), intent(inout)  this,
integer, intent(in)  diag_field_id,
integer, intent(in), optional  area,
integer, intent(in), optional  volume 
)

Adds the diag ids of the Area and or Volume of the diag_field_object.

Parameters
[in,out]thisThe diag object
[in]diag_field_iddiag_field to add the are and volume to
[in]areadiag ids of area
[in]volumediag ids of volume

Definition at line 98 of file fms_diag_object.F90.

◆ fms_diag_send_complete()

procedure fms_diag_send_complete ( class(fmsdiagobject_type), intent(inout), target  this,
type (time_type), intent(in)  time_step 
)

Loops through all the files, open the file, writes out axis and variable metadata and data when necessary.

Parameters
[in,out]thisThe diag object
[in]time_stepThe time_step
[in]time_stepGo away if there is no new data

Definition at line 94 of file fms_diag_object.F90.

◆ fms_get_axis_length()

procedure fms_get_axis_length ( class(fmsdiagobject_type), intent(in)  this,
integer, intent(in)  axis_id 
)

Gets the length of the axis based on the axis_id.

Returns
Axis_length
Parameters
[in]thisThe diag object
[in]axis_idAxis ID of the axis to the length of

Definition at line 89 of file fms_diag_object.F90.

◆ fms_get_axis_name_from_id()

procedure fms_get_axis_name_from_id ( class(fmsdiagobject_type), intent(in)  this,
integer, intent(in)  axis_id 
)

Gets the name of the axis based on the axis_id.

Returns
The axis_name
Parameters
[in]thisThe diag object
[in]axis_idAxis ID of the axis to the length of

Definition at line 92 of file fms_diag_object.F90.

◆ fms_get_diag_field_id_from_name()

procedure fms_get_diag_field_id_from_name ( class(fmsdiagobject_type), intent(in)  this,
character(len=*), intent(in)  module_name,
character(len=*), intent(in)  field_name 
)

Gets the diag field ID from the module name and field name.

Returns
a copy of the ID of the diag field or DIAG_FIELD_NOT_FOUND if the field is not registered
Parameters
[in]thisThe diag object, the caller
[in]module_nameModule name that registered the variable
[in]field_nameVariable name

Definition at line 90 of file fms_diag_object.F90.

◆ fms_get_domain2d()

procedure fms_get_domain2d ( class(fmsdiagobject_type), intent(in)  this,
integer, dimension(:), intent(in)  ids 
)

Return the 2D domain for the axis IDs given.

Returns
2D domain for the axis IDs given
Parameters
[in]thisThe diag object
[in]idsAxis IDs.

Definition at line 88 of file fms_diag_object.F90.

◆ fms_get_field_name_from_id()

procedure fms_get_field_name_from_id ( class(fmsdiagobject_type), intent(in)  this,
integer, intent(in)  field_id 
)

Gets the field_name from the diag_field.

Returns
a copy of the field_name
Parameters
[in]thisThe diag object, the caller
[in]field_idField id to get the name for

Definition at line 91 of file fms_diag_object.F90.

◆ fms_register_diag_field_array()

procedure fms_register_diag_field_array ( class(fmsdiagobject_type), intent(inout), target  this,
character(len=*), intent(in)  module_name,
character(len=*), intent(in)  field_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in), optional  init_time,
character(len=*), intent(in), optional  long_name,
character(len=*), intent(in), optional  units,
class(*), intent(in), optional  missing_value,
class(*), dimension(:), intent(in), optional  var_range,
logical, intent(in), optional  mask_variant,
character(len=*), intent(in), optional  standard_name,
logical, intent(in), optional  verbose,
logical, intent(in), optional  do_not_log,
character(len=*), intent(out), optional  err_msg,
character(len=*), intent(in), optional  interp_method,
integer, intent(in), optional  tile_count,
integer, intent(in), optional  area,
integer, intent(in), optional  volume,
character(len=*), intent(in), optional  realm,
logical, intent(in), optional  multiple_send_data 
)

Registers an array field.

Returns
field index to be used in subsequent calls to send_data or DIAG_FIELD_NOT_FOUND if the field is not in the diag_table.yaml
Parameters
[in,out]thisDiaj_obj to fill
[in]module_nameModule where the field comes from
[in]field_nameName of the field
[in]axesIds corresponding to the variable axis
[in]init_timeTime to start writing data from
[in]long_nameLong_name to add as a variable attribute
[in]unitsUnits to add as a variable_attribute
[in]missing_valueMissing value to add as a variable attribute
[in]var_rangeRange to add a variable attribute
[in]mask_variant.True. if mask changes over time
[in]standard_nameStandard_name to name the variable in the file
[in]verbosePrint more information
[in]do_not_logIf TRUE, field information is not logged
[out]err_msgError_msg from call
[in]interp_methodThe interp method to be used when regridding the field in post-processing. Valid options are "conserve_order1", "conserve_order2", and "none".
[in]tile_countThe current tile number
[in]areaId of the area field
[in]volumeId of the volume field
[in]realmString to set as the modeling_realm attribute
[in]multiple_send_data.True. if send data is called, multiple times for the same time

Definition at line 82 of file fms_diag_object.F90.

◆ fms_register_diag_field_scalar()

procedure fms_register_diag_field_scalar ( class(fmsdiagobject_type), intent(inout), target  this,
character(len=*), intent(in)  module_name,
character(len=*), intent(in)  field_name,
type(time_type), intent(in), optional  init_time,
character(len=*), intent(in), optional  long_name,
character(len=*), intent(in), optional  units,
class(*), intent(in), optional  missing_value,
class(*), dimension(:), intent(in), optional  var_range,
character(len=*), intent(in), optional  standard_name,
logical, intent(in), optional  do_not_log,
character(len=*), intent(out), optional  err_msg,
integer, intent(in), optional  area,
integer, intent(in), optional  volume,
character(len=*), intent(in), optional  realm,
logical, intent(in), optional  multiple_send_data 
)

Registers a scalar field.

Returns
field index to be used in subsequent calls to send_data or DIAG_FIELD_NOT_FOUND if the field is not in the diag_table.yaml
Parameters
[in,out]thisDiaj_obj to fill
[in]module_nameModule where the field comes from
[in]field_nameName of the field
[in]init_timeTime to start writing data from
[in]long_nameLong_name to add as a variable attribute
[in]unitsUnits to add as a variable_attribute
[in]standard_nameStandard_name to name the variable in the file
[in]missing_valueMissing value to add as a variable attribute
[in]var_rangeRange to add a variable attribute
[in]do_not_logIf TRUE, field information is not logged
[out]err_msgError_msg from call
[in]areaId of the area field
[in]volumeId of the volume field
[in]realmString to set as the modeling_realm attribute
[in]multiple_send_data.True. if send data is called, multiple times for the same time

Definition at line 81 of file fms_diag_object.F90.

◆ fms_register_static_field()

procedure fms_register_static_field ( class(fmsdiagobject_type), intent(inout), target  this,
character(len=*), intent(in)  module_name,
character(len=*), intent(in)  field_name,
integer, dimension(:), intent(in)  axes,
character(len=*), intent(in), optional  long_name,
character(len=*), intent(in), optional  units,
class(*), intent(in), optional  missing_value,
class(*), dimension(:), intent(in), optional  range,
logical, intent(in), optional  mask_variant,
character(len=*), intent(in), optional  standard_name,
logical, intent(in), optional  dynamic,
logical, intent(in), optional  do_not_log,
character(len=*), intent(in), optional  interp_method,
integer, intent(in), optional  tile_count,
integer, intent(in), optional  area,
integer, intent(in), optional  volume,
character(len=*), intent(in), optional  realm 
)

Return field index for subsequent call to send_data.

Returns
field index to be used in subsequent calls to send_data or DIAG_FIELD_NOT_FOUND if the field is not in the diag_table.yaml
Parameters
[in,out]thisDiaj_obj to fill
[in]module_nameName of the module, the field is on
[in]field_nameName of the field
[in]axesAxes_id of the field
[in]long_nameLongname to be added as a attribute
[in]unitsUnits to be added as a attribute
[in]standard_nameStandard name to be added as a attribute
[in]missing_valueMissing value to be added as a attribute
[in]rangeRange to be added as a attribute
[in]mask_variant.True. if mask changes over time
[in]dynamicFlag indicating if the field is dynamic
[in]do_not_logif TRUE, field information is not logged
[in]interp_methodThe interp method to be used when regridding the field in post-processing Valid options are "conserve_order1", "conserve_order2", and "none".
[in]areaField ID for the area field associated with this field
[in]volumeField ID for the volume field associated with this field
[in]realmString to set as the value to the modeling_realm attribute

Definition at line 83 of file fms_diag_object.F90.

◆ get_diag_buffer()

procedure get_diag_buffer ( class(fmsdiagobject_type), intent(in)  this,
integer, intent(in)  bufferid 
)

returns the buffer object for the given id actual data comes from get_buffer_data() on the returned object

Definition at line 103 of file fms_diag_object.F90.

◆ init()

procedure init ( class(fmsdiagobject_type this,
integer  diag_subset_output,
integer, dimension(6), intent(in), optional  time_init 
)

Initiliazes the fms_diag_object. Reads the diag_table.yaml and fills in the yaml object Allocates the diag manager object arrays for files, fields, and buffers Initializes variables.

Parameters
thisDiag mediator/controller object
diag_subset_outputSubset of the diag output?
[in]time_initModel time diag_manager initialized

Definition at line 79 of file fms_diag_object.F90.

◆ register()

procedure register ( class(fmsdiagobject_type), intent(inout), target  this,
character(len=*), intent(in)  modname,
character(len=*), intent(in)  varname,
integer, dimension(:), intent(in), optional, target  axes,
type(time_type), intent(in), optional  init_time,
character(len=*), intent(in), optional  longname,
character(len=*), intent(in), optional  units,
class(*), intent(in), optional  missing_value,
class(*), dimension(2), intent(in), optional  varrange,
logical, intent(in), optional  mask_variant,
character(len=*), intent(in), optional  standname,
logical, intent(in), optional  do_not_log,
character(len=*), intent(out), optional  err_msg,
character(len=*), intent(in), optional  interp_method,
integer, intent(in), optional  tile_count,
integer, intent(in), optional  area,
integer, intent(in), optional  volume,
character(len=*), intent(in), optional  realm,
logical, intent(in), optional  static,
logical, intent(in), optional  multiple_send_data 
)

Registers a field. @description This to avoid having duplicate code in each of the _scalar, _array and _static register calls.

Returns
field index to be used in subsequent calls to send_data or DIAG_FIELD_NOT_FOUND if the field is not in the diag_table.yaml
Parameters
[in,out]thisDiaj_obj to fill
[in]modnameThe module name
[in]varnameThe variable name
[in]init_timeInitial time
[in]axesThe axes indicies
[in]longnameTHe variables long name
[in]unitsThe units of the variables
[in]standnameThe variables stanard name
[in]missing_valueMissing value to add as a attribute
[in]varrangeRange to add as a attribute
[in]mask_variant.True. if mask changes over time
[in]do_not_logif TRUE, field info is not logged
[out]err_msgError message to be passed back up
[in]interp_methodThe interp method to be used when regridding the field in post-processing. Valid options are "conserve_order1", "conserve_order2", and "none".
[in]tile_countthe number of tiles
[in]areadiag_field_id of the cell area field
[in]volumediag_field_id of the cell volume field
[in]realmString to set as the value to the modeling_realm attribute
[in]staticTrue if the variable is static
[in]multiple_send_data.True. if send data is called, multiple times for the same time

Definition at line 85 of file fms_diag_object.F90.

◆ set_time_end()

procedure set_time_end ( class(fmsdiagobject_type), intent(inout)  this,
type(time_type), intent(in)  time_end_in 
)

Set the model_end_time in a diag object.

Parameters
[in,out]thisDiag Object
[in]time_end_inTime at the end of the simulation

Definition at line 101 of file fms_diag_object.F90.

Member Data Documentation

◆ axes_initialized

logical, private axes_initialized =.false.
private

True if the fmsDiagObject is initialized.

Definition at line 74 of file fms_diag_object.F90.

◆ buffers_initialized

logical, private buffers_initialized =.false.
private

True if the fmsDiagObject is initialized.

Definition at line 73 of file fms_diag_object.F90.

◆ data_was_send

logical, private data_was_send
private

True if send_data has been successfully called for at least one variable diag_send_complete does nothing if it is .false.

Definition at line 64 of file fms_diag_object.F90.

◆ diag_axis

class(fmsdiagaxiscontainer_type), dimension(:), allocatable diag_axis

Array of diag_axis.

Definition at line 67 of file fms_diag_object.F90.

◆ fields_initialized

logical, private fields_initialized =.false.
private

True if the fmsDiagObject is initialized.

Definition at line 72 of file fms_diag_object.F90.

◆ files_initialized

logical, private files_initialized =.false.
private

True if the fmsDiagObject is initialized.

Definition at line 71 of file fms_diag_object.F90.

◆ fms_diag_fields

type(fmsdiagfield_type), dimension(:), allocatable fms_diag_fields

Array of diag fields.

Definition at line 61 of file fms_diag_object.F90.

◆ fms_diag_files

class(fmsdiagfilecontainer_type), dimension (:), allocatable fms_diag_files
private

array of diag files

Definition at line 60 of file fms_diag_object.F90.

◆ fms_diag_output_buffers

type(fmsdiagoutputbuffer_type), dimension(:), allocatable fms_diag_output_buffers

array of output buffer objects one for each variable in the diag_table.yaml

Definition at line 62 of file fms_diag_object.F90.

◆ initialized

logical, private initialized =.false.
private

True if the fmsDiagObject is initialized.

Definition at line 70 of file fms_diag_object.F90.

◆ model_end_time

type(time_type) model_end_time

The time that the simulation is going to end (set by calling diag_manager_set_time_end)

Definition at line 75 of file fms_diag_object.F90.

◆ registered_axis

integer, private registered_axis
private

Number of registered axis.

Definition at line 69 of file fms_diag_object.F90.

◆ registered_buffers

integer, private registered_buffers = 0
private

number of registered buffers, per dimension

Definition at line 66 of file fms_diag_object.F90.

◆ registered_variables

integer, private registered_variables
private

Number of registered variables.

Definition at line 68 of file fms_diag_object.F90.


The documentation for this type was generated from the following file: