FMS  2024.03
Flexible Modeling System
fms_diag_output_buffer_mod Module Reference

Contains buffer types and routines for the diag manager. More...

Data Types

type  fmsdiagoutputbuffer_type
 holds an allocated buffer0-5d object More...
 

Functions/Subroutines

subroutine add_axis_ids (this, axis_ids)
 Adds the axis ids to the buffer object. More...
 
subroutine allocate_buffer (this, buff_type, ndim, buff_sizes, mask_variant, field_name, diurnal_samples)
 Allocates a 5D buffer to given buff_type. More...
 
character(len=51) function diag_reduction_done_wrapper (this, reduction_method, missing_value, has_mask, mask_variant)
 Finishes calculations for any reductions that use an average (avg, rms, pow) TODO add mask and any other needed args for adjustment, and pass in the adjusted mask to time_update_done. More...
 
character(len=50) function do_time_max_wrapper (this, field_data, mask, is_masked, bounds_in, bounds_out, missing_value)
 Does the time_min reduction method on the buffer object. More...
 
character(len=50) function do_time_min_wrapper (this, field_data, mask, is_masked, bounds_in, bounds_out, missing_value)
 Does the time_min reduction method on the buffer object. More...
 
character(len=50) function do_time_none_wrapper (this, field_data, mask, is_masked, bounds_in, bounds_out, missing_value)
 Does the time_none reduction method on the buffer object. More...
 
character(len=150) function do_time_sum_wrapper (this, field_data, mask, is_masked, mask_variant, bounds_in, bounds_out, missing_value, has_missing_value, pow_value, weight)
 Does the time_sum reduction method on the buffer object. More...
 
subroutine flush_buffer (this)
 Deallocates data fields from a buffer object. More...
 
logical function, public fms_diag_output_buffer_init (buffobjs, buff_list_size)
 Initializes a list of diag buffers. More...
 
subroutine get_axis_ids (this, res)
 Get the axis_ids for the buffer. More...
 
subroutine get_buffer (this, buff_out, field_name)
 Get routine for 5D buffers. Sets the buff_out argument to the integer or real array currently stored in the buffer. More...
 
pure integer function, dimension(4) get_buffer_dims (this)
 this leaves out the diurnal index cause its only used for tmp mask allocation More...
 
character(len=:) function, allocatable get_buffer_name (this)
 Get the name of the field for the output buffer. More...
 
type(time_type) function get_buffer_time (this)
 Get the buffer_time from a output buffer object. More...
 
pure integer function get_diurnal_sample_size (this)
 Get diurnal sample size (amount of diurnal sections) More...
 
integer function get_field_id (this)
 Get the field id of the buffer. More...
 
subroutine get_remapped_diurnal_data (this, res)
 Remaps the output buffer array when using the diurnal reduction moves the diurnal index to the left-most unused dimension for the io. More...
 
integer function get_unlim_dim (this)
 Get the unlim dimension index of the buffer object. More...
 
integer function get_yaml_id (this)
 Get the yaml id of the buffer. More...
 
subroutine increase_unlim_dim (this)
 Increase the unlim dimension index of the buffer object. More...
 
subroutine init_buffer_time (this, time)
 inits the buffer time for the buffer More...
 
subroutine init_buffer_unlim_dim (this)
 Init the unlim dimension index of the buffer object to 0. More...
 
subroutine initialize_buffer (this, reduction_method, field_name)
 Initializes a buffer based on the reduction method. More...
 
logical function is_done_with_math (this)
 Determine if finished with math. More...
 
logical function is_there_data_to_write (this)
 Determine if there is any data to write (i.e send_data has been called) More...
 
logical function is_time_to_finish_reduction (this, end_time)
 Determine if it is time to finish the reduction method. More...
 
subroutine set_buffer_id (this, id)
 Setter for buffer_id for any buffer objects. More...
 
subroutine set_diurnal_sample_size (this, sample_size)
 Set diurnal sample size (amount of diurnal sections) More...
 
subroutine set_diurnal_section_index (this, time)
 Set diurnal section index based off the current time and previously set diurnal_samplesize Calculates which diurnal section of daily data the current time is in. More...
 
subroutine set_done_with_math (this)
 Set done_with_math to .true. More...
 
subroutine set_field_id (this, field_id)
 set the field id of the buffer More...
 
subroutine set_next_output (this, next_output, next_next_output, is_static)
 Sets the next output. More...
 
subroutine set_send_data_called (this)
 Sets send_data_called to .true. More...
 
subroutine set_yaml_id (this, yaml_id)
 set the field id of the buffer More...
 
subroutine update_buffer_time (this, time)
 Update the buffer time if it is a new time. More...
 
subroutine write_buffer (this, fms2io_fileobj, unlim_dim_level, is_diurnal)
 Write the buffer to the file. More...
 
subroutine write_buffer_wrapper_domain (this, fms2io_fileobj, unlim_dim_level, is_diurnal)
 Write the buffer to the FmsNetcdfDomainFile_t fms2io_fileobj. More...
 
subroutine write_buffer_wrapper_netcdf (this, fms2io_fileobj, unlim_dim_level, is_diurnal)
 Write the buffer to the FmsNetcdfFile_t fms2io_fileobj. More...
 
subroutine write_buffer_wrapper_u (this, fms2io_fileobj, unlim_dim_level, is_diurnal)
 Write the buffer to the FmsNetcdfUnstructuredDomainFile_t fms2io_fileobj. More...
 

Detailed Description

Contains buffer types and routines for the diag manager.

Author
Ryan Mulhall @email ryan..nosp@m.mulh.nosp@m.all@n.nosp@m.oaa..nosp@m.gov

@description Holds buffered data for fmsDiagVars_type objects buffer0-5d types extend fmsDiagBuffer_class, and upon allocation are added to the module's buffer_lists depending on it's dimension

Function/Subroutine Documentation

◆ add_axis_ids()

subroutine fms_diag_output_buffer_mod::add_axis_ids ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
integer, dimension(:), intent(in)  axis_ids 
)
private

Adds the axis ids to the buffer object.

Parameters
[in,out]thisBuffer object
[in]axis_idsAxis ids to add

Definition at line 318 of file fms_diag_output_buffer.F90.

◆ allocate_buffer()

subroutine fms_diag_output_buffer_mod::allocate_buffer ( class(fmsdiagoutputbuffer_type), intent(inout), target  this,
class(*), intent(in)  buff_type,
integer, intent(in)  ndim,
integer, dimension(4), intent(in)  buff_sizes,
logical, intent(in)  mask_variant,
character(len=*), intent(in)  field_name,
integer, intent(in)  diurnal_samples 
)
private

Allocates a 5D buffer to given buff_type.

Parameters
[in,out]this5D buffer object
[in]buff_typeallocates to the type of buff_type
[in]ndimNumber of dimension
[in]buff_sizesdimension buff_sizes
[in]mask_variantMask changes over time
[in]field_namefield name for error output
[in]diurnal_samplesnumber of diurnal samples

Definition at line 159 of file fms_diag_output_buffer.F90.

◆ diag_reduction_done_wrapper()

character(len=51) function fms_diag_output_buffer_mod::diag_reduction_done_wrapper ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
integer, intent(in)  reduction_method,
real(kind=r8_kind), intent(in)  missing_value,
logical, intent(in)  has_mask,
logical, intent(in)  mask_variant 
)
private

Finishes calculations for any reductions that use an average (avg, rms, pow) TODO add mask and any other needed args for adjustment, and pass in the adjusted mask to time_update_done.

Parameters
[in,out]thisUpdated buffer object
[in]reduction_methodenumerated reduction type from diag_data
[in]missing_valuemissing_value for masked data points
[in]has_maskindicates if there was a mask used during buffer updates
[in]mask_variantIndicates if the mask changes over time
Returns
error message to return, blank if sucessful

Definition at line 774 of file fms_diag_output_buffer.F90.

◆ do_time_max_wrapper()

character(len=50) function fms_diag_output_buffer_mod::do_time_max_wrapper ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
class(*), dimension(:,:,:,:), intent(in)  field_data,
logical, dimension(:,:,:,:), intent(in)  mask,
logical, intent(in)  is_masked,
type(fmsdiagibounds_type), intent(in)  bounds_in,
type(fmsdiagibounds_type), intent(in)  bounds_out,
real(kind=r8_kind), intent(in)  missing_value 
)
private

Does the time_min reduction method on the buffer object.

Returns
Error message if the math was not successful
Parameters
[in,out]thisbuffer object to write
[in]field_dataBuffer data for current time
[in]bounds_inIndicies for the buffer passed in
[in]bounds_outIndicies for the output buffer
[in]maskMask for the field
[in]is_masked.True. if the field has a mask
[in]missing_valueMissing_value for data points that are masked

Definition at line 684 of file fms_diag_output_buffer.F90.

◆ do_time_min_wrapper()

character(len=50) function fms_diag_output_buffer_mod::do_time_min_wrapper ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
class(*), dimension(:,:,:,:), intent(in)  field_data,
logical, dimension(:,:,:,:), intent(in)  mask,
logical, intent(in)  is_masked,
type(fmsdiagibounds_type), intent(in)  bounds_in,
type(fmsdiagibounds_type), intent(in)  bounds_out,
real(kind=r8_kind), intent(in)  missing_value 
)
private

Does the time_min reduction method on the buffer object.

Returns
Error message if the math was not successful
Parameters
[in,out]thisbuffer object to write
[in]field_dataBuffer data for current time
[in]bounds_inIndicies for the buffer passed in
[in]bounds_outIndicies for the output buffer
[in]maskMask for the field
[in]is_masked.True. if the field has a mask
[in]missing_valueMissing_value for data points that are masked

Definition at line 650 of file fms_diag_output_buffer.F90.

◆ do_time_none_wrapper()

character(len=50) function fms_diag_output_buffer_mod::do_time_none_wrapper ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
class(*), dimension(:,:,:,:), intent(in)  field_data,
logical, dimension(:,:,:,:), intent(in)  mask,
logical, intent(in)  is_masked,
type(fmsdiagibounds_type), intent(in)  bounds_in,
type(fmsdiagibounds_type), intent(in)  bounds_out,
real(kind=r8_kind), intent(in)  missing_value 
)
private

Does the time_none reduction method on the buffer object.

Returns
Error message if the math was not successful
Parameters
[in,out]thisbuffer object to write
[in]field_dataBuffer data for current time
[in]bounds_inIndicies for the buffer passed in
[in]bounds_outIndicies for the output buffer
[in]maskMask for the field
[in]is_masked.True. if the field has a mask
[in]missing_valueMissing_value for data points that are masked

Definition at line 616 of file fms_diag_output_buffer.F90.

◆ do_time_sum_wrapper()

character(len=150) function fms_diag_output_buffer_mod::do_time_sum_wrapper ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
class(*), dimension(:,:,:,:), intent(in)  field_data,
logical, dimension(:,:,:,:), intent(in)  mask,
logical, intent(in)  is_masked,
logical, intent(in)  mask_variant,
type(fmsdiagibounds_type), intent(in)  bounds_in,
type(fmsdiagibounds_type), intent(in)  bounds_out,
real(kind=r8_kind), intent(in)  missing_value,
logical, intent(in)  has_missing_value,
integer, intent(in), optional  pow_value,
real(kind=r8_kind), intent(in), optional  weight 
)
private

Does the time_sum reduction method on the buffer object.

Returns
Error message if the math was not successful
Parameters
[in,out]thisbuffer object to write
[in]field_dataBuffer data for current time
[in]bounds_inIndicies for the buffer passed in
[in]bounds_outIndicies for the output buffer
[in]maskMask for the field
[in]is_masked.True. if the field has a mask
[in]mask_variant.True. if the mask changes over time
[in]missing_valueMissing_value for data points that are masked
[in]has_missing_value.True. if the field was registered with a missing value
[in]pow_valuepower value, will calculate field_data^pow before adding to buffer should only be present if using pow reduction method
[in]weightThe weight to use when suming

Definition at line 718 of file fms_diag_output_buffer.F90.

◆ flush_buffer()

subroutine fms_diag_output_buffer_mod::flush_buffer ( class(fmsdiagoutputbuffer_type), intent(inout)  this)
private

Deallocates data fields from a buffer object.

Parameters
[in,out]thisany buffer object

Definition at line 143 of file fms_diag_output_buffer.F90.

◆ fms_diag_output_buffer_init()

logical function, public fms_diag_output_buffer_mod::fms_diag_output_buffer_init ( type(fmsdiagoutputbuffer_type), dimension(:), intent(out), allocatable  buffobjs,
integer, intent(in)  buff_list_size 
)

Initializes a list of diag buffers.

Returns
true if allocation is successfull
Parameters
[out]buffobjsan array of buffer container types to allocate
[in]buff_list_sizesize of buffer array to allocate

Definition at line 122 of file fms_diag_output_buffer.F90.

◆ get_axis_ids()

subroutine fms_diag_output_buffer_mod::get_axis_ids ( class(fmsdiagoutputbuffer_type), intent(inout), target  this,
integer, dimension(:), intent(out), pointer  res 
)
private

Get the axis_ids for the buffer.

Returns
Axis_ids, if the buffer doesn't have axis ids it returns diag_null
Parameters
[in,out]thisBuffer object

Definition at line 327 of file fms_diag_output_buffer.F90.

◆ get_buffer()

subroutine fms_diag_output_buffer_mod::get_buffer ( class(fmsdiagoutputbuffer_type), intent(in)  this,
class(*), dimension(:,:,:,:,:), intent(out), allocatable  buff_out,
character(len=*), intent(in)  field_name 
)
private

Get routine for 5D buffers. Sets the buff_out argument to the integer or real array currently stored in the buffer.

Parameters
[in]this5d allocated buffer object
[out]buff_outoutput of copied buffer data must be the same size as the allocated buffer
[in]field_namefield name for error output

Definition at line 219 of file fms_diag_output_buffer.F90.

◆ get_buffer_dims()

pure integer function, dimension(4) fms_diag_output_buffer_mod::get_buffer_dims ( class(fmsdiagoutputbuffer_type), intent(in)  this)
private

this leaves out the diurnal index cause its only used for tmp mask allocation

Parameters
[in]thisbuffer object to get from

Definition at line 799 of file fms_diag_output_buffer.F90.

◆ get_buffer_name()

character(len=:) function, allocatable fms_diag_output_buffer_mod::get_buffer_name ( class(fmsdiagoutputbuffer_type), intent(in)  this)
private

Get the name of the field for the output buffer.

Returns
Name of the field for the output buffer
Parameters
[in]thisBuffer object

Definition at line 308 of file fms_diag_output_buffer.F90.

◆ get_buffer_time()

type(time_type) function fms_diag_output_buffer_mod::get_buffer_time ( class(fmsdiagoutputbuffer_type), intent(in)  this)
private

Get the buffer_time from a output buffer object.

Returns
The buffer time
Parameters
[in]thisBuffer object

Definition at line 418 of file fms_diag_output_buffer.F90.

◆ get_diurnal_sample_size()

pure integer function fms_diag_output_buffer_mod::get_diurnal_sample_size ( class(fmsdiagoutputbuffer_type), intent(in)  this)
private

Get diurnal sample size (amount of diurnal sections)

Parameters
[in]thisbuffer object to get from

Definition at line 806 of file fms_diag_output_buffer.F90.

◆ get_field_id()

integer function fms_diag_output_buffer_mod::get_field_id ( class(fmsdiagoutputbuffer_type), intent(in)  this)
private

Get the field id of the buffer.

Returns
the field id of the buffer
Parameters
[in]thisBuffer object

Definition at line 341 of file fms_diag_output_buffer.F90.

◆ get_remapped_diurnal_data()

subroutine fms_diag_output_buffer_mod::get_remapped_diurnal_data ( class(fmsdiagoutputbuffer_type), intent(in)  this,
class(*), dimension(:,:,:,:,:), intent(out), allocatable  res 
)
private

Remaps the output buffer array when using the diurnal reduction moves the diurnal index to the left-most unused dimension for the io.

Parameters
[in]thisoutput buffer object
[out]resresulting remapped data

Definition at line 837 of file fms_diag_output_buffer.F90.

◆ get_unlim_dim()

integer function fms_diag_output_buffer_mod::get_unlim_dim ( class(fmsdiagoutputbuffer_type), intent(in)  this)
private

Get the unlim dimension index of the buffer object.

Returns
The unlim dimension index of the buffer object
Parameters
[in]thisbuffer object to write

Definition at line 457 of file fms_diag_output_buffer.F90.

◆ get_yaml_id()

integer function fms_diag_output_buffer_mod::get_yaml_id ( class(fmsdiagoutputbuffer_type), intent(in)  this)
private

Get the yaml id of the buffer.

Returns
the yaml id of the buffer
Parameters
[in]thisBuffer object

Definition at line 446 of file fms_diag_output_buffer.F90.

◆ increase_unlim_dim()

subroutine fms_diag_output_buffer_mod::increase_unlim_dim ( class(fmsdiagoutputbuffer_type), intent(inout)  this)
private

Increase the unlim dimension index of the buffer object.

Parameters
[in,out]thisbuffer object to write

Definition at line 466 of file fms_diag_output_buffer.F90.

◆ init_buffer_time()

subroutine fms_diag_output_buffer_mod::init_buffer_time ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
type(time_type), intent(in), optional  time 
)
private

inits the buffer time for the buffer

Parameters
[in,out]thisBuffer object
[in]timetime to add to the buffer

Definition at line 366 of file fms_diag_output_buffer.F90.

◆ init_buffer_unlim_dim()

subroutine fms_diag_output_buffer_mod::init_buffer_unlim_dim ( class(fmsdiagoutputbuffer_type), intent(inout)  this)
private

Init the unlim dimension index of the buffer object to 0.

Parameters
[in,out]thisbuffer object to write

Definition at line 473 of file fms_diag_output_buffer.F90.

◆ initialize_buffer()

subroutine fms_diag_output_buffer_mod::initialize_buffer ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
integer, intent(in)  reduction_method,
character(len=*), intent(in)  field_name 
)
private

Initializes a buffer based on the reduction method.

Parameters
[in,out]thisallocated 5D buffer object
[in]reduction_methodThe reduction method for the field
[in]field_namefield name for error output

Definition at line 255 of file fms_diag_output_buffer.F90.

◆ is_done_with_math()

logical function fms_diag_output_buffer_mod::is_done_with_math ( class(fmsdiagoutputbuffer_type), intent(in)  this)
private

Determine if finished with math.

Returns
thisdone_with_math
Parameters
[in]thisBuffer object

Definition at line 428 of file fms_diag_output_buffer.F90.

◆ is_there_data_to_write()

logical function fms_diag_output_buffer_mod::is_there_data_to_write ( class(fmsdiagoutputbuffer_type), intent(in)  this)
private

Determine if there is any data to write (i.e send_data has been called)

Returns
.true. if there is data to write
Parameters
[in]thisBuffer object

Definition at line 894 of file fms_diag_output_buffer.F90.

◆ is_time_to_finish_reduction()

logical function fms_diag_output_buffer_mod::is_time_to_finish_reduction ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
type(time_type), intent(in), optional  end_time 
)
private

Determine if it is time to finish the reduction method.

Returns
.true. if it is time to finish the reduction method
Parameters
[in,out]thisBuffer object
[in]end_timeThe time at the end of the run

Definition at line 909 of file fms_diag_output_buffer.F90.

◆ set_buffer_id()

subroutine fms_diag_output_buffer_mod::set_buffer_id ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
integer, intent(in)  id 
)
private

Setter for buffer_id for any buffer objects.

Parameters
[in,out]thisbuffer object to set id for
[in]idpositive integer id to set

Definition at line 135 of file fms_diag_output_buffer.F90.

◆ set_diurnal_sample_size()

subroutine fms_diag_output_buffer_mod::set_diurnal_sample_size ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
integer, intent(in)  sample_size 
)
private

Set diurnal sample size (amount of diurnal sections)

Parameters
[in,out]thisbuffer object to set sample size for
[in]sample_sizesample size to used to split daily data into given amount of sections

Definition at line 812 of file fms_diag_output_buffer.F90.

◆ set_diurnal_section_index()

subroutine fms_diag_output_buffer_mod::set_diurnal_section_index ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
type(time_type), intent(in)  time 
)
private

Set diurnal section index based off the current time and previously set diurnal_samplesize Calculates which diurnal section of daily data the current time is in.

Parameters
[in,out]thisbuffer object to set diurnal index for
[in]timecurrent model time

Definition at line 821 of file fms_diag_output_buffer.F90.

◆ set_done_with_math()

subroutine fms_diag_output_buffer_mod::set_done_with_math ( class(fmsdiagoutputbuffer_type), intent(inout)  this)
private

Set done_with_math to .true.

Parameters
[in,out]thisBuffer object

Definition at line 437 of file fms_diag_output_buffer.F90.

◆ set_field_id()

subroutine fms_diag_output_buffer_mod::set_field_id ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
integer, intent(in)  field_id 
)
private

set the field id of the buffer

Parameters
[in,out]thisBuffer object
[in]field_idfield id of the buffer

Definition at line 350 of file fms_diag_output_buffer.F90.

◆ set_next_output()

subroutine fms_diag_output_buffer_mod::set_next_output ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
type(time_type), intent(in)  next_output,
type(time_type), intent(in)  next_next_output,
logical, intent(in), optional  is_static 
)
private

Sets the next output.

Parameters
[in,out]thisBuffer object
[in]next_outputThe current next_output in the file obj
[in]next_next_outputThe current next_next_output in the file obj
[in]is_static.True. if the field is static
[in]is_staticIf the field is static set the next_output to be equal to time this should only be used in the init, so next_output will be equal to the the init time
[in]is_staticIf the file's next_output is greater than the buffer's next output set the buffer's next output to the file's next_ouput, otherwise use the file's next_next_output This is needed for when file have fields that get data send data sent at different frequencies

Definition at line 380 of file fms_diag_output_buffer.F90.

◆ set_send_data_called()

subroutine fms_diag_output_buffer_mod::set_send_data_called ( class(fmsdiagoutputbuffer_type), intent(inout)  this)
private

Sets send_data_called to .true.

Parameters
[in,out]thisBuffer object

Definition at line 925 of file fms_diag_output_buffer.F90.

◆ set_yaml_id()

subroutine fms_diag_output_buffer_mod::set_yaml_id ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
integer, intent(in)  yaml_id 
)
private

set the field id of the buffer

Parameters
[in,out]thisBuffer object
[in]yaml_idyaml id of the buffer

Definition at line 358 of file fms_diag_output_buffer.F90.

◆ update_buffer_time()

subroutine fms_diag_output_buffer_mod::update_buffer_time ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
type(time_type), intent(in)  time 
)
private

Update the buffer time if it is a new time.

Parameters
[in,out]thisBuffer object
[in]timeCurrent model time

Definition at line 407 of file fms_diag_output_buffer.F90.

◆ write_buffer()

subroutine fms_diag_output_buffer_mod::write_buffer ( class(fmsdiagoutputbuffer_type), intent(inout)  this,
class(fmsnetcdffile_t), intent(in)  fms2io_fileobj,
integer, intent(in), optional  unlim_dim_level,
logical, intent(in), optional  is_diurnal 
)
private

Write the buffer to the file.

Parameters
[in,out]thisbuffer object to write
[in]fms2io_fileobjfileobj to write to
[in]unlim_dim_levelunlimited dimension
[in]is_diurnalshould be set if using diurnal reductions so buffer data can be remapped

Definition at line 480 of file fms_diag_output_buffer.F90.

◆ write_buffer_wrapper_domain()

subroutine fms_diag_output_buffer_mod::write_buffer_wrapper_domain ( class(fmsdiagoutputbuffer_type), intent(in)  this,
type(fmsnetcdfdomainfile_t), intent(in)  fms2io_fileobj,
integer, intent(in), optional  unlim_dim_level,
logical, intent(in), optional  is_diurnal 
)
private

Write the buffer to the FmsNetcdfDomainFile_t fms2io_fileobj.

Parameters
[in]thisbuffer object to write
[in]fms2io_fileobjfileobj to write to
[in]unlim_dim_levelunlimited dimension
[in]is_diurnalshould be set if using diurnal reductions so buffer data can be remapped

Definition at line 541 of file fms_diag_output_buffer.F90.

◆ write_buffer_wrapper_netcdf()

subroutine fms_diag_output_buffer_mod::write_buffer_wrapper_netcdf ( class(fmsdiagoutputbuffer_type), intent(in)  this,
type(fmsnetcdffile_t), intent(in)  fms2io_fileobj,
integer, intent(in), optional  unlim_dim_level,
logical, intent(in), optional  is_diurnal 
)
private

Write the buffer to the FmsNetcdfFile_t fms2io_fileobj.

Parameters
[in]thisbuffer object to write
[in]fms2io_fileobjfileobj to write to
[in]unlim_dim_levelunlimited dimension
[in]is_diurnalshould be set if using diurnal reductions so buffer data can be remapped

Definition at line 505 of file fms_diag_output_buffer.F90.

◆ write_buffer_wrapper_u()

subroutine fms_diag_output_buffer_mod::write_buffer_wrapper_u ( class(fmsdiagoutputbuffer_type), intent(in)  this,
type(fmsnetcdfunstructureddomainfile_t), intent(in)  fms2io_fileobj,
integer, intent(in), optional  unlim_dim_level,
logical, intent(in), optional  is_diurnal 
)
private

Write the buffer to the FmsNetcdfUnstructuredDomainFile_t fms2io_fileobj.

Parameters
[in]thisbuffer object to write
[in]fms2io_fileobjfileobj to write to
[in]unlim_dim_levelunlimited dimension
[in]is_diurnalshould be set if using diurnal reductions so buffer data can be remapped

Definition at line 578 of file fms_diag_output_buffer.F90.