FMS
2024.03
Flexible Modeling System
|
Data Types | |
type | fmsdiaginputbuffer_t |
Type to hold the information needed for the input buffer This is used when set_math_needs_to_be_done = .true. (i.e calling send_data from an openmp region with multiple threads) More... | |
interface | sum_data_buffer |
Sums the data in the input_data_buffer. More... | |
Functions/Subroutines | |
procedure | allocate_input_buffer_object |
character(len=128) function | allocate_input_buffer_object (this, input_data, axis_ids, diag_axis) |
Initiliazes an input data buffer. More... | |
append_data_buffer_r4 | |
append_data_buffer_r8 | |
character(len=128) function | append_data_buffer_wrapper (mask_out, mask_in, data_out, data_in) |
Appends the input_data_buffer and the mask (only when the mask is set to .True.) More... | |
procedure | get_buffer |
class(*) function, dimension(:,:,:,:), pointer | get_buffer (this) |
Get the buffer from the input buffer object. More... | |
procedure | get_send_data_time |
type(time_type) function | get_send_data_time (this) |
Get the time send data was called last. More... | |
procedure | get_weight |
real(kind=r8_kind) function, pointer | get_weight (this) |
Get the weight from the input buffer object. More... | |
procedure | init_input_buffer_object |
subroutine | init_input_buffer_object (this) |
Initiliazes an input data buffer and the counter. More... | |
procedure | is_initialized |
pure logical function | is_initialized (this) |
Determine if an input buffer is initialized. More... | |
procedure | prepare_input_buffer_object |
subroutine | prepare_input_buffer_object (this, field_info) |
Prepare the input data buffer to do the reduction methods (i.e divide by the number of times send data has been called) More... | |
procedure | set_input_buffer_object |
character(len=128) function | set_input_buffer_object (this, input_data, weight, is, js, ks, ie, je, ke) |
Sets the members of the input buffer object. More... | |
procedure | set_send_data_time |
subroutine | set_send_data_time (this, time) |
Sets the time send data was called last. More... | |
sum_data_buffer_r4 | |
sum_data_buffer_r8 | |
character(len=128) function | sum_data_buffer_wrapper (mask, data_out, data_in, counter, var_is_masked) |
Sums the data in the input_data_buffer. More... | |
procedure | update_input_buffer_object |
character(len=128) function | update_input_buffer_object (this, input_data, is, js, ks, ie, je, ke, mask_in, mask_out, mask_variant, var_is_masked) |
Updates the input data buffer object for the current send_data call. More... | |
Variables | |
class(*), dimension(:,:,:,:), allocatable | buffer |
Input data passed in send_data. | |
integer, dimension(:,:,:,:), allocatable | counter |
Number of send_data calls for each point. | |
logical | initialized |
.True. if the input buffer has been initialized | |
type(time_type) | send_data_time |
The time send data was called last. | |
real(kind=r8_kind) | weight |
Weight passed in send_data. | |
type fms_diag_input_buffer_mod::fmsdiaginputbuffer_t |
Type to hold the information needed for the input buffer This is used when set_math_needs_to_be_done = .true. (i.e calling send_data from an openmp region with multiple threads)
Definition at line 46 of file fms_diag_input_buffer.F90.
Private Member Functions | |
procedure | allocate_input_buffer_object |
procedure | get_buffer |
procedure | get_send_data_time |
procedure | get_weight |
procedure | init_input_buffer_object |
procedure | is_initialized |
procedure | prepare_input_buffer_object |
procedure | set_input_buffer_object |
procedure | set_send_data_time |
procedure | update_input_buffer_object |
Private Attributes | |
class(*), dimension(:,:,:,:), allocatable | buffer |
Input data passed in send_data. | |
integer, dimension(:,:,:,:), allocatable | counter |
Number of send_data calls for each point. | |
logical | initialized |
.True. if the input buffer has been initialized | |
type(time_type) | send_data_time |
The time send data was called last. | |
real(kind=r8_kind) | weight |
Weight passed in send_data. | |
interface fms_diag_input_buffer_mod::sum_data_buffer |
Sums the data in the input_data_buffer.
Definition at line 39 of file fms_diag_input_buffer.F90.
Private Member Functions | |
sum_data_buffer_r4 | |
sum_data_buffer_r8 | |
|
private |
Initiliazes an input data buffer.
[out] | this | input buffer object |
[in] | input_data | input data |
[in] | axis_ids | axis ids for the field |
[in] | diag_axis | Array of diag_axis |
Initialize the axis lengths to 1. Any dimension that does not have an axis will have a length of 1.
Definition at line 93 of file fms_diag_input_buffer.F90.
|
private |
Appends the input_data_buffer and the mask (only when the mask is set to .True.)
[in,out] | mask_out | Mask currently in the input_data_buffer |
[in] | mask_in | Mask passed in to send_data |
[in,out] | data_out | Data currently in the input_data_buffer |
[in] | data_in | Data passed in to send_data |
Definition at line 255 of file fms_diag_input_buffer.F90.
|
private |
Get the buffer from the input buffer object.
[in] | this | input buffer object |
Definition at line 72 of file fms_diag_input_buffer.F90.
|
private |
Get the time send data was called last.
[in] | this | input buffer object |
Definition at line 169 of file fms_diag_input_buffer.F90.
|
private |
Get the weight from the input buffer object.
[in] | this | input buffer object |
Definition at line 83 of file fms_diag_input_buffer.F90.
|
private |
Initiliazes an input data buffer and the counter.
[in,out] | this | input buffer object |
Definition at line 147 of file fms_diag_input_buffer.F90.
|
private |
Determine if an input buffer is initialized.
[in] | this | input buffer object |
Definition at line 340 of file fms_diag_input_buffer.F90.
|
private |
Prepare the input data buffer to do the reduction methods (i.e divide by the number of times send data has been called)
[in,out] | this | input buffer object |
[in] | field_info | Field info to append to error message |
Definition at line 208 of file fms_diag_input_buffer.F90.
|
private |
Sets the members of the input buffer object.
[in,out] | this | input buffer object |
[in] | input_data | Field data |
[in] | weight | Weight for the field |
[in] | ks | Starting index for each of the dimension |
[in] | ke | Ending index for each of the dimensions |
Definition at line 283 of file fms_diag_input_buffer.F90.
|
private |
Sets the time send data was called last.
[in,out] | this | input buffer object |
[in] | time | The time send data was called |
Definition at line 160 of file fms_diag_input_buffer.F90.
|
private |
Sums the data in the input_data_buffer.
[in] | mask | Mask passed into send_data |
[in,out] | data_out | Data currently saved in the input_data_buffer |
[in] | data_in | Data passed into send_data |
[in,out] | counter | Number of times data has been summed |
[in] | var_is_masked | .True. if the variable is masked |
Definition at line 225 of file fms_diag_input_buffer.F90.
|
private |
Updates the input data buffer object for the current send_data call.
[in,out] | this | input buffer object |
[in] | input_data | Field data |
[in] | ks | Starting index for each of the dimension |
[in] | ke | Ending index for each of the dimensions |
Definition at line 179 of file fms_diag_input_buffer.F90.