FMS
2024.03
Flexible Modeling System
|
fms_diag_outfield_mod defines data types and utility or auxiliary routines useful in updating the output buffer. More...
Data Types | |
type | fmsdiagoutfield_type |
Class fmsDiagOutfield_type (along with class ms_diag_outfield_index_type ) contain information used in updating the output buffers by the diag_manager send_data routines. In some sense they can be seen as encapsulating related information in a convenient way (e.g. to pass to functions and for do loop controls.) More... | |
type | fmsdiagoutfieldindex_type |
Class fms_diag_outfield_index_type which (along with class fmsDiagOutfield_type) encapsulate related information used in updating the output buffers by the diag_manager send_data routines. This class in particular focuses on do loop index controls or settings. Note that the index names in this class should be indentical to the names used in the diag_manager send_data functions and in the "math" buffer update functions. The purpose of this class is also to allow for a smaller call function signature for the math/buffer update functions. More... | |
Functions/Subroutines | |
procedure | get_f1 |
pure integer function | get_f1 (this) |
Gets f1. More... | |
procedure | get_f2 |
pure integer function | get_f2 (this) |
Gets f2. More... | |
procedure | get_f3 |
pure integer function | get_f3 (this) |
Gets f3. More... | |
procedure | get_f4 |
pure integer function | get_f4 (this) |
Gets f4. More... | |
procedure | get_field_name |
pure character(len=:) function, allocatable | get_field_name (this) |
Gets field_name. More... | |
procedure | get_hi |
pure integer function | get_hi (this) |
Gets hi. More... | |
procedure | get_hj |
pure integer function | get_hj (this) |
Gets hj. More... | |
procedure | get_ie |
pure integer function | get_ie (this) |
Gets ie. More... | |
procedure | get_is |
pure integer function | get_is (this) |
Gets is. More... | |
procedure | get_je |
pure integer function | get_je (this) |
Gets je. More... | |
procedure | get_js |
pure integer function | get_js (this) |
Gets js. More... | |
procedure | get_ke |
pure integer function | get_ke (this) |
Gets ke. More... | |
procedure | get_ks |
pure integer function | get_ks (this) |
Gets ks. More... | |
procedure | get_mask_present |
pure logical function | get_mask_present (this) |
Gets mask_present. More... | |
procedure | get_mask_variant |
pure logical function | get_mask_variant (this) |
Gets mask_variant. More... | |
procedure | get_missvalue_present |
pure logical function | get_missvalue_present (this) |
Gets missvalue_present. More... | |
procedure | get_module_name |
pure character(len=:) function, allocatable | get_module_name (this) |
Gets module_name. More... | |
procedure | get_need_compute |
pure logical function | get_need_compute (this) |
Gets need_compute. More... | |
integer function | get_output_field_time_reduction (ofield) |
Get the time reduction from a legacy output field. More... | |
procedure | get_output_file |
pure character(len=:) function, allocatable | get_output_file (this) |
Gets output_file. More... | |
procedure | get_output_name |
pure character(len=:) function, allocatable | get_output_name (this) |
Gets output_name. More... | |
procedure | get_phys_window |
pure logical function | get_phys_window (this) |
Gets phys_window. More... | |
procedure | get_pow_value |
pure integer function | get_pow_value (this) |
Gets pow_value. More... | |
procedure | get_reduced_k_range |
pure logical function | get_reduced_k_range (this) |
Gets reduced_k_range. More... | |
procedure | get_time_reduction |
type(fmsdiagtimereduction_type) function, allocatable | get_time_reduction (this) |
Gets the time_reduction object. More... | |
procedure, public | initialize => initialize_outfield_imp |
procedure | initialize => initialize_outfield_index_type |
procedure | initialize_for_ut |
subroutine | initialize_for_ut (this, module_name, field_name, output_name, power_val, phys_window, need_compute, mask_variant, reduced_k_range, num_elems, time_reduction_type, output_freq) |
Initialized an fmsDiagOutfield_type as needed for unit tests. More... | |
subroutine | initialize_outfield_imp (this, input_field, output_field, mask_present, freq) |
Update the fmsDiagOutfield_type instance with those fields used in the legacy diag manager. Note that this is initializing from the legacy structures. Note that output_frequency came from file_type;. More... | |
subroutine | initialize_outfield_index_type (this, is, js, ks, ie, je, ke, hi, hj, f1, f2, f3, f4) |
#brief initialize all the members of the class. More... | |
subroutine | reset_time_reduction_ut (this, source) |
Reset the time reduction member field. Intended for use in unit tests only. More... | |
Variables | |
integer | f1 |
integer | f2 |
Indecies used specify 1st dim bounds of field, mask and rmask. | |
integer | f3 |
integer | f4 |
Indecies used specify 2st dim bounds of field, mask and rmask. | |
character(len=:), allocatable | field_name |
Output field name. | |
integer | hi |
halo size in x direction. Same name as in send_data | |
integer | hj |
halo size in y direction. Same | |
integer | ie |
integer | is |
integer | je |
integer | js |
integer | ke |
End indecies in each spatial dim of the field_data; and may be user provided in send_data. | |
integer | ks |
Start indecies in each spatial dim of the field_data; and may be user provided in send_data. | |
logical | mask_present |
True iff mask argument is present in user-facing send function call. Note this field exists since the actual mask argument in the send function call may be downstream replaced by a null pointer which is considered present. | |
logical | mask_variant |
logical | missvalue_present |
character(len=:), allocatable | module_name |
Module name. | |
logical | need_compute |
True iff is local_output and current PE take part in send_data. | |
character(len=:), allocatable | output_file |
File where field should be written. | |
character(len=:), allocatable | output_name |
Output name written to file. | |
logical | phys_window |
TODO: Rename? OMP subsetted data, See output_fields. | |
integer | pow_value |
Power value for rms or pow(x) calculations. | |
logical | reduced_k_range |
If true, the local start and end indecies are used in k (i.e. 3rd) dim. | |
type(fmsdiagtimereduction_type) | time_reduction |
Instance of the fmsDiagTimeTeduction_type. | |
fms_diag_outfield_mod defines data types and utility or auxiliary routines useful in updating the output buffer.
fms_diag_outfield_mod
The output buffer updating routines are passed configuration and control data with types defined in this module; and some utility functions called by the updating routines are defined here.
type fms_diag_outfield_mod::fmsdiagoutfield_type |
Class fmsDiagOutfield_type (along with class ms_diag_outfield_index_type ) contain information used in updating the output buffers by the diag_manager send_data routines. In some sense they can be seen as encapsulating related information in a convenient way (e.g. to pass to functions and for do loop controls.)
Class fmsDiagOutfield_type also contains a significant subset of the fields and routines of of the legacy class output_field_type TODO: (MDM) This class will need further development for the modern_diag effort. For its development, consider the legacy diag_util::init_output_field already in place. Fields added so are used the the field buffer math/dmUpdate functions. TODO (MDM) : Should the MDM have pow_value be type REAL?
Definition at line 64 of file fms_diag_outfield.F90.
Public Member Functions | |
procedure | get_field_name |
procedure | get_mask_present |
procedure | get_mask_variant |
procedure | get_missvalue_present |
procedure | get_module_name |
procedure | get_need_compute |
procedure | get_output_file |
procedure | get_output_name |
procedure | get_phys_window |
procedure | get_pow_value |
procedure | get_reduced_k_range |
procedure | get_time_reduction |
procedure, public | initialize => initialize_outfield_imp |
procedure | initialize_for_ut |
Public Attributes | |
character(len=:), allocatable | field_name |
Output field name. | |
logical | mask_present |
True iff mask argument is present in user-facing send function call. Note this field exists since the actual mask argument in the send function call may be downstream replaced by a null pointer which is considered present. | |
logical | mask_variant |
logical | missvalue_present |
character(len=:), allocatable | module_name |
Module name. | |
logical | need_compute |
True iff is local_output and current PE take part in send_data. | |
character(len=:), allocatable | output_file |
File where field should be written. | |
character(len=:), allocatable | output_name |
Output name written to file. | |
logical | phys_window |
TODO: Rename? OMP subsetted data, See output_fields. | |
integer | pow_value |
Power value for rms or pow(x) calculations. | |
logical | reduced_k_range |
If true, the local start and end indecies are used in k (i.e. 3rd) dim. | |
type(fmsdiagtimereduction_type) | time_reduction |
Instance of the fmsDiagTimeTeduction_type. | |
type fms_diag_outfield_mod::fmsdiagoutfieldindex_type |
Class fms_diag_outfield_index_type which (along with class fmsDiagOutfield_type) encapsulate related information used in updating the output buffers by the diag_manager send_data routines. This class in particular focuses on do loop index controls or settings. Note that the index names in this class should be indentical to the names used in the diag_manager send_data functions and in the "math" buffer update functions. The purpose of this class is also to allow for a smaller call function signature for the math/buffer update functions.
Definition at line 118 of file fms_diag_outfield.F90.
Public Member Functions | |
procedure | get_f1 |
procedure | get_f2 |
procedure | get_f3 |
procedure | get_f4 |
procedure | get_hi |
procedure | get_hj |
procedure | get_ie |
procedure | get_is |
procedure | get_je |
procedure | get_js |
procedure | get_ke |
procedure | get_ks |
procedure | initialize => initialize_outfield_index_type |
Public Attributes | |
integer | f1 |
integer | f2 |
Indecies used specify 1st dim bounds of field, mask and rmask. | |
integer | f3 |
integer | f4 |
Indecies used specify 2st dim bounds of field, mask and rmask. | |
integer | hi |
halo size in x direction. Same name as in send_data | |
integer | hj |
halo size in y direction. Same | |
integer | ie |
integer | is |
integer | je |
integer | js |
integer | ke |
End indecies in each spatial dim of the field_data; and may be user provided in send_data. | |
integer | ks |
Start indecies in each spatial dim of the field_data; and may be user provided in send_data. | |
pure integer function fms_diag_outfield_mod::get_f1 | ( | class (fmsdiagoutfieldindex_type), intent(in) | this | ) |
Gets f1.
[in] | this | The fmsDiagOutfieldIndex_type object |
Definition at line 242 of file fms_diag_outfield.F90.
pure integer function fms_diag_outfield_mod::get_f2 | ( | class (fmsdiagoutfieldindex_type), intent(in) | this | ) |
Gets f2.
[in] | this | The fmsDiagOutfieldIndex_type object |
Definition at line 249 of file fms_diag_outfield.F90.
pure integer function fms_diag_outfield_mod::get_f3 | ( | class (fmsdiagoutfieldindex_type), intent(in) | this | ) |
Gets f3.
[in] | this | The fmsDiagOutfieldIndex_type object |
Definition at line 256 of file fms_diag_outfield.F90.
pure integer function fms_diag_outfield_mod::get_f4 | ( | class (fmsdiagoutfieldindex_type), intent(in) | this | ) |
Gets f4.
[in] | this | The fmsDiagOutfieldIndex_type object |
Definition at line 263 of file fms_diag_outfield.F90.
pure character(len=:) function, allocatable fms_diag_outfield_mod::get_field_name | ( | class (fmsdiagoutfield_type), intent(in) | this | ) |
Gets field_name.
[in] | this | diag object |
Definition at line 157 of file fms_diag_outfield.F90.
pure integer function fms_diag_outfield_mod::get_hi | ( | class (fmsdiagoutfieldindex_type), intent(in) | this | ) |
Gets hi.
[in] | this | The fmsDiagOutfieldIndex_type object |
Definition at line 312 of file fms_diag_outfield.F90.
pure integer function fms_diag_outfield_mod::get_hj | ( | class (fmsdiagoutfieldindex_type), intent(in) | this | ) |
Gets hj.
[in] | this | The fmsDiagOutfieldIndex_type object |
Definition at line 319 of file fms_diag_outfield.F90.
pure integer function fms_diag_outfield_mod::get_ie | ( | class (fmsdiagoutfieldindex_type), intent(in) | this | ) |
Gets ie.
[in] | this | The fmsDiagOutfieldIndex_type object |
Definition at line 291 of file fms_diag_outfield.F90.
pure integer function fms_diag_outfield_mod::get_is | ( | class (fmsdiagoutfieldindex_type), intent(in) | this | ) |
Gets is.
[in] | this | The fmsDiagOutfieldIndex_type object |
Definition at line 270 of file fms_diag_outfield.F90.
pure integer function fms_diag_outfield_mod::get_je | ( | class (fmsdiagoutfieldindex_type), intent(in) | this | ) |
Gets je.
[in] | this | The fmsDiagOutfieldIndex_type object |
Definition at line 298 of file fms_diag_outfield.F90.
pure integer function fms_diag_outfield_mod::get_js | ( | class (fmsdiagoutfieldindex_type), intent(in) | this | ) |
Gets js.
[in] | this | The fmsDiagOutfieldIndex_type object |
Definition at line 277 of file fms_diag_outfield.F90.
pure integer function fms_diag_outfield_mod::get_ke | ( | class (fmsdiagoutfieldindex_type), intent(in) | this | ) |
Gets ke.
[in] | this | The fmsDiagOutfieldIndex_type object |
Definition at line 305 of file fms_diag_outfield.F90.
pure integer function fms_diag_outfield_mod::get_ks | ( | class (fmsdiagoutfieldindex_type), intent(in) | this | ) |
Gets ks.
[in] | this | The fmsDiagOutfieldIndex_type object |
Definition at line 284 of file fms_diag_outfield.F90.
pure logical function fms_diag_outfield_mod::get_mask_present | ( | class (fmsdiagoutfield_type), intent(in) | this | ) |
Gets mask_present.
[in] | this | The fmsDiagOutfield_type object |
Definition at line 226 of file fms_diag_outfield.F90.
pure logical function fms_diag_outfield_mod::get_mask_variant | ( | class (fmsdiagoutfield_type), intent(in) | this | ) |
Gets mask_variant.
[in] | this | The fmsDiagOutfield_type object |
Definition at line 219 of file fms_diag_outfield.F90.
pure logical function fms_diag_outfield_mod::get_missvalue_present | ( | class (fmsdiagoutfield_type), intent(in) | this | ) |
Gets missvalue_present.
[in] | this | The fmsDiagOutfield_type object |
Definition at line 212 of file fms_diag_outfield.F90.
pure character(len=:) function, allocatable fms_diag_outfield_mod::get_module_name | ( | class (fmsdiagoutfield_type), intent(in) | this | ) |
Gets module_name.
[in] | this | diag object |
Definition at line 148 of file fms_diag_outfield.F90.
pure logical function fms_diag_outfield_mod::get_need_compute | ( | class (fmsdiagoutfield_type), intent(in) | this | ) |
Gets need_compute.
[in] | this | The fmsDiagOutfield_type object |
Definition at line 198 of file fms_diag_outfield.F90.
integer function fms_diag_outfield_mod::get_output_field_time_reduction | ( | type(output_field_type), intent(in) | ofield | ) |
Get the time reduction from a legacy output field.
[in] | ofield | An instance of the output_field_type |
Definition at line 423 of file fms_diag_outfield.F90.
pure character(len=:) function, allocatable fms_diag_outfield_mod::get_output_file | ( | class (fmsdiagoutfield_type), intent(in) | this | ) |
Gets output_file.
[in] | this | diag object |
Definition at line 175 of file fms_diag_outfield.F90.
pure character(len=:) function, allocatable fms_diag_outfield_mod::get_output_name | ( | class (fmsdiagoutfield_type), intent(in) | this | ) |
Gets output_name.
[in] | this | diag object |
Definition at line 166 of file fms_diag_outfield.F90.
pure logical function fms_diag_outfield_mod::get_phys_window | ( | class (fmsdiagoutfield_type), intent(in) | this | ) |
Gets phys_window.
[in] | this | The fmsDiagOutfield_type object |
Definition at line 191 of file fms_diag_outfield.F90.
pure integer function fms_diag_outfield_mod::get_pow_value | ( | class (fmsdiagoutfield_type), intent(in) | this | ) |
Gets pow_value.
[in] | this | The fmsDiagOutfield_type object |
Definition at line 184 of file fms_diag_outfield.F90.
pure logical function fms_diag_outfield_mod::get_reduced_k_range | ( | class (fmsdiagoutfield_type), intent(in) | this | ) |
Gets reduced_k_range.
[in] | this | The fmsDiagOutfield_type object |
Definition at line 205 of file fms_diag_outfield.F90.
type(fmsdiagtimereduction_type) function, allocatable fms_diag_outfield_mod::get_time_reduction | ( | class (fmsdiagoutfield_type), intent(in) | this | ) |
Gets the time_reduction object.
[in] | this | diag object |
Definition at line 233 of file fms_diag_outfield.F90.
subroutine fms_diag_outfield_mod::initialize_for_ut | ( | class(fmsdiagoutfield_type), intent(inout) | this, |
character(len=*), intent(in) | module_name, | ||
character(len=*), intent(in) | field_name, | ||
character(len=*), intent(in) | output_name, | ||
integer, intent(in) | power_val, | ||
logical, intent(in) | phys_window, | ||
logical, intent(in) | need_compute, | ||
logical, intent(in) | mask_variant, | ||
logical, intent(in) | reduced_k_range, | ||
integer, intent(in) | num_elems, | ||
integer, intent(in) | time_reduction_type, | ||
integer, intent(in) | output_freq | ||
) |
Initialized an fmsDiagOutfield_type as needed for unit tests.
[in] | module_name | Var with same name in fmsDiagOutfield_type |
[in] | field_name | Var with same name in fmsDiagOutfield_type |
[in] | output_name | Var with same name in fmsDiagOutfield_type |
[in] | power_val | Var with same name in fmsDiagOutfield_type |
[in] | phys_window | Var with same name in fmsDiagOutfield_type |
[in] | need_compute | Var with same name in fmsDiagOutfield_type |
[in] | mask_variant | Var with same name in fmsDiagOutfield_type |
[in] | reduced_k_range | Var with same name in fmsDiagOutfield_type |
[in] | num_elems | Var with same name in fmsDiagOutfield_type |
[in] | time_reduction_type | Var with same name in fmsDiagOutfield_type |
[in] | output_freq | The output_freq need in initaliztion of time_reduction_type |
Definition at line 385 of file fms_diag_outfield.F90.
subroutine fms_diag_outfield_mod::initialize_outfield_imp | ( | class(fmsdiagoutfield_type), intent(inout) | this, |
type(input_field_type), intent(in) | input_field, | ||
type(output_field_type), intent(in) | output_field, | ||
logical, intent(in) | mask_present, | ||
integer, intent(in) | freq | ||
) |
Update the fmsDiagOutfield_type instance with those fields used in the legacy diag manager. Note that this is initializing from the legacy structures. Note that output_frequency came from file_type;.
[in,out] | this | An instance of the fmsDiagOutfield_type |
[in] | input_field | An instance of the input_field_type |
[in] | output_field | An instance of the output_field_type |
[in] | mask_present | Was the mask present in the call to send_data? |
[in] | freq | The output frequency. |
Definition at line 353 of file fms_diag_outfield.F90.
subroutine fms_diag_outfield_mod::initialize_outfield_index_type | ( | class(fmsdiagoutfieldindex_type), intent(inout) | this, |
integer, intent(in) | is, | ||
integer, intent(in) | js, | ||
integer, intent(in) | ks, | ||
integer, intent(in) | ie, | ||
integer, intent(in) | je, | ||
integer, intent(in) | ke, | ||
integer, intent(in) | hi, | ||
integer, intent(in) | hj, | ||
integer, intent(in) | f1, | ||
integer, intent(in) | f2, | ||
integer, intent(in) | f3, | ||
integer, intent(in) | f4 | ||
) |
#brief initialize all the members of the class.
[in] | ks | Variable used to update class member of same names. |
[in] | ke | Variable used to update class member of same names. |
[in] | hj | Variable used to update class member of same names. |
[in] | f4 | Variable used to update class member of same names. |
Definition at line 326 of file fms_diag_outfield.F90.
subroutine fms_diag_outfield_mod::reset_time_reduction_ut | ( | class(fmsdiagoutfield_type), intent(inout) | this, |
type(fmsdiagtimereduction_type) | source | ||
) |
Reset the time reduction member field. Intended for use in unit tests only.
[in,out] | this | An instance of the fmsDiagOutfield_type |
source | The fmsDiagTimeReduction_type to copy from |
Definition at line 413 of file fms_diag_outfield.F90.