FMS 2025.01-dev
Flexible Modeling System
|
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_type) | model_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. | |
Definition at line 55 of file fms_diag_object.F90.
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()
[in,out] | this | diag object |
[in] | field_data | field data |
[in] | field_id | Id of the field data |
Definition at line 99 of file fms_diag_object.F90.
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.
procedure do_buffer_math | ( | class(fmsdiagobject_type), intent(inout), target | this | ) |
[in,out] | this | The diag object |
Definition at line 95 of file fms_diag_object.F90.
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.
[in,out] | this | Diaj_obj to fill |
[in] | diag_field_id | The ID of the diag field |
[in] | field_data | The data for the diag_field |
[in] | mask | Logical mask indicating the grid points to mask (null if no mask) |
[in] | rmask | real mask indicating the grid points to mask (null if no mask) |
[in] | weight | The weight used for averaging |
[in] | time | The current time |
[in] | ks_in | Starting indices |
[in] | ke_in | Ending indices |
[out] | err_msg | An error message returned |
Definition at line 93 of file fms_diag_object.F90.
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.
[in,out] | this | The diag object |
[in] | axis_id | Id of the axis to add the attribute to |
[in] | att_name | Name of the attribute |
[in] | att_value | The attribute value to add |
Definition at line 87 of file fms_diag_object.F90.
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.
[in,out] | this | Diaj_obj to fill |
[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] | axis_length | The length of the axis size(axis_data(:)) |
[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] | edges | Axis ID for the previously defined "edges 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" |
Definition at line 84 of file fms_diag_object.F90.
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.
[in] | this | Diag Object |
[in] | field | Field data |
[in] | field_id | ID of the input field |
[in] | js_in | Starting field indices for the first 2 dimensions; pass reconditioned indices fis and fjs which are computed elsewhere. |
[in] | je_in | Ending field indices for the first 2 dimensions; pass reconditioned indices fie and fje which are computed elsewhere. |
[in] | ke_in | Starting and ending indices of the field in 3rd dimension |
Definition at line 100 of file fms_diag_object.F90.
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.
[in,out] | this | The diag object |
[in] | end_time | the model end_time |
Definition at line 96 of file fms_diag_object.F90.
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.
[in,out] | this | Diag Object |
[in] | field_data | Field data |
[in] | diag_field_id | ID of the input field |
[in] | oor_mask | mask |
[in] | weight | Must be a updated weight |
[in] | bounds | Bounds for the field |
[in] | using_blocking | .True. if field data is passed in blocks |
[in] | time | Current time |
Definition at line 97 of file fms_diag_object.F90.
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.
[in,out] | this | The diag object |
[in] | diag_field_id | Id of the axis to add the attribute to |
[in] | att_name | Name of the attribute |
[in] | att_value | The attribute value to add |
Definition at line 86 of file fms_diag_object.F90.
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.
[in,out] | this | The diag object |
[in] | diag_field_id | diag_field to add the are and volume to |
[in] | area | diag ids of area |
[in] | volume | diag ids of volume |
Definition at line 98 of file fms_diag_object.F90.
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.
[in,out] | this | The diag object |
[in] | time_step | The time_step |
[in] | time_step | Go away if there is no new data |
Definition at line 94 of file fms_diag_object.F90.
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.
[in] | this | The diag object |
[in] | axis_id | Axis ID of the axis to the length of |
Definition at line 89 of file fms_diag_object.F90.
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.
[in] | this | The diag object |
[in] | axis_id | Axis ID of the axis to the length of |
Definition at line 92 of file fms_diag_object.F90.
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.
[in] | this | The diag object, the caller |
[in] | module_name | Module name that registered the variable |
[in] | field_name | Variable name |
Definition at line 90 of file fms_diag_object.F90.
procedure fms_get_domain2d | ( | class(fmsdiagobject_type), intent(in) | this, |
integer, dimension(:), intent(in) | ids | ||
) |
Return the 2D domain for the axis IDs given.
[in] | this | The diag object |
[in] | ids | Axis IDs. |
Definition at line 88 of file fms_diag_object.F90.
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.
[in] | this | The diag object, the caller |
[in] | field_id | Field id to get the name for |
Definition at line 91 of file fms_diag_object.F90.
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.
[in,out] | this | Diaj_obj to fill |
[in] | module_name | Module where the field comes from |
[in] | field_name | Name of the field |
[in] | axes | Ids corresponding to the variable axis |
[in] | init_time | Time to start writing data from |
[in] | long_name | Long_name to add as a variable attribute |
[in] | units | Units to add as a variable_attribute |
[in] | missing_value | Missing value to add as a variable attribute |
[in] | var_range | Range to add a variable attribute |
[in] | mask_variant | .True. if mask changes over time |
[in] | standard_name | Standard_name to name the variable in the file |
[in] | verbose | Print more information |
[in] | do_not_log | If TRUE, field information is not logged |
[out] | err_msg | Error_msg from call |
[in] | interp_method | The interp method to be used when regridding the field in post-processing. Valid options are "conserve_order1", "conserve_order2", and "none". |
[in] | tile_count | The current tile number |
[in] | area | Id of the area field |
[in] | volume | Id of the volume field |
[in] | realm | String 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.
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.
[in,out] | this | Diaj_obj to fill |
[in] | module_name | Module where the field comes from |
[in] | field_name | Name of the field |
[in] | init_time | Time to start writing data from |
[in] | long_name | Long_name to add as a variable attribute |
[in] | units | Units to add as a variable_attribute |
[in] | standard_name | Standard_name to name the variable in the file |
[in] | missing_value | Missing value to add as a variable attribute |
[in] | var_range | Range to add a variable attribute |
[in] | do_not_log | If TRUE, field information is not logged |
[out] | err_msg | Error_msg from call |
[in] | area | Id of the area field |
[in] | volume | Id of the volume field |
[in] | realm | String 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.
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.
[in,out] | this | Diaj_obj to fill |
[in] | module_name | Name of the module, the field is on |
[in] | field_name | Name of the field |
[in] | axes | Axes_id of the field |
[in] | long_name | Longname to be added as a attribute |
[in] | units | Units to be added as a attribute |
[in] | standard_name | Standard name to be added as a attribute |
[in] | missing_value | Missing value to be added as a attribute |
[in] | range | Range to be added as a attribute |
[in] | mask_variant | .True. if mask changes over time |
[in] | dynamic | Flag indicating if the field is dynamic |
[in] | do_not_log | if TRUE, field information is not logged |
[in] | interp_method | The interp method to be used when regridding the field in post-processing Valid options are "conserve_order1", "conserve_order2", and "none". |
[in] | area | Field ID for the area field associated with this field |
[in] | volume | Field ID for the volume field associated with this field |
[in] | realm | String to set as the value to the modeling_realm attribute |
Definition at line 83 of file fms_diag_object.F90.
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.
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.
this | Diag mediator/controller object | |
diag_subset_output | Subset of the diag output? | |
[in] | time_init | Model time diag_manager initialized |
Definition at line 79 of file fms_diag_object.F90.
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.
[in,out] | this | Diaj_obj to fill |
[in] | modname | The module name |
[in] | varname | The variable name |
[in] | init_time | Initial time |
[in] | axes | The axes indicies |
[in] | longname | THe variables long name |
[in] | units | The units of the variables |
[in] | standname | The variables stanard name |
[in] | missing_value | Missing value to add as a attribute |
[in] | varrange | Range to add as a attribute |
[in] | mask_variant | .True. if mask changes over time |
[in] | do_not_log | if TRUE, field info is not logged |
[out] | err_msg | Error message to be passed back up |
[in] | interp_method | The interp method to be used when regridding the field in post-processing. Valid options are "conserve_order1", "conserve_order2", and "none". |
[in] | tile_count | the number of tiles |
[in] | area | diag_field_id of the cell area field |
[in] | volume | diag_field_id of the cell volume field |
[in] | realm | String to set as the value to the modeling_realm attribute |
[in] | static | True 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.
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.
[in,out] | this | Diag Object |
[in] | time_end_in | Time at the end of the simulation |
Definition at line 101 of file fms_diag_object.F90.
|
private |
True if the fmsDiagObject is initialized.
Definition at line 74 of file fms_diag_object.F90.
|
private |
True if the fmsDiagObject is initialized.
Definition at line 73 of file fms_diag_object.F90.
|
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.
class(fmsdiagaxiscontainer_type), dimension(:), allocatable diag_axis |
Array of diag_axis.
Definition at line 67 of file fms_diag_object.F90.
|
private |
True if the fmsDiagObject is initialized.
Definition at line 72 of file fms_diag_object.F90.
|
private |
True if the fmsDiagObject is initialized.
Definition at line 71 of file fms_diag_object.F90.
type(fmsdiagfield_type), dimension(:), allocatable fms_diag_fields |
Array of diag fields.
Definition at line 61 of file fms_diag_object.F90.
|
private |
array of diag files
Definition at line 60 of file fms_diag_object.F90.
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.
|
private |
True if the fmsDiagObject is initialized.
Definition at line 70 of file fms_diag_object.F90.
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.
|
private |
Number of registered axis.
Definition at line 69 of file fms_diag_object.F90.
|
private |
number of registered buffers, per dimension
Definition at line 66 of file fms_diag_object.F90.
|
private |
Number of registered variables.
Definition at line 68 of file fms_diag_object.F90.