FMS
2024.03
Flexible Modeling System
|
fms_diag_time_reduction_mod defines classes encapsulating the diag_manager time redution types. More...
Data Types | |
interface | fmsdiagtimereduction_type |
Functions/Subroutines | |
procedure, public | copy |
subroutine | copy (this, source) |
Copy the source time reduction object into the this object. More... | |
procedure, public | do_time_averaging => do_time_averaging_imp |
pure logical function | do_time_averaging_imp (this) |
Returns true iff time_averaging is true. More... | |
class(fmsdiagtimereduction_type) function, allocatable | fmsdiagtimereduction_type_constructor (dt, out_frequency) |
The class contructors. Just allocates the class and calls an initializer. More... | |
procedure, public | has_time_ops => has_time_ops_imp |
pure logical function | has_time_ops_imp (this) |
Returns true if any of time_min, time_max, time_rms or time_average is true. More... | |
procedure, public | initialize |
subroutine | initialize (this, dt, out_frequency) |
Initialize the object. As an alternative to the constructor, one can allocate an fmsDiagTimeReduction_type instance, then call its initialize function. More... | |
procedure, public | is_time_average => is_time_average_imp |
pure logical function | is_time_average_imp (this) |
Returns true iff the_time_reduction is time_average. More... | |
procedure, public | is_time_diurnal => is_time_diurnal_imp |
pure logical function | is_time_diurnal_imp (this) |
Returns true iff the_time_reduction is time_diurnal. More... | |
procedure, public | is_time_max => is_time_max_imp |
pure logical function | is_time_max_imp (this) |
Returns true iff the_time_reduction is time_max. More... | |
procedure, public | is_time_min => is_time_min_imp |
pure logical function | is_time_min_imp (this) |
Returns true iff the_time_reduction is time_min. More... | |
procedure, public | is_time_none => is_time_none_imp |
pure logical function | is_time_none_imp (this) |
Returns true iff the_time_reduction is time_none. More... | |
procedure, public | is_time_power => is_time_power_imp |
pure logical function | is_time_power_imp (this) |
Returns true iff the_time_reduction is time_power. More... | |
procedure, public | is_time_rms => is_time_rms_imp |
pure logical function | is_time_rms_imp (this) |
Returns true iff the_time_reduction is time_rms. More... | |
procedure, public | is_time_sum => is_time_sum_imp |
pure logical function | is_time_sum_imp (this) |
Returns true iff the_time_reduction is time_sum. More... | |
Variables | |
integer, private | the_time_reduction |
The time reduction type, as an integer defined above. | |
integer, parameter | time_average = 1 |
The reduction method is average. | |
logical, private | time_averaging |
Set true iff time_average, time_rms, time_power or time_diurnal is true. | |
integer, parameter | time_diurnal = 6 |
The reduction method is diurnal. | |
integer, parameter | time_max = 3 |
The reduction method is max. | |
integer, parameter | time_min = 4 |
The reduction method is min. | |
logical, private | time_ops |
Set true iff time_min, time_max, time_rms or time_average is true. | |
integer, parameter | time_power = 7 |
The reduction method is power. | |
integer, parameter | time_rms = 2 |
The reduction method is rms. | |
integer, parameter | time_sum = 5 |
The reudction method is sum. | |
fms_diag_time_reduction_mod defines classes encapsulating the diag_manager time redution types.
This interface is for the class constructor.
Class fmsDiagTimeReduction_type has an encapsulation of the "Fortran enum" time reduction integer parameters, plus an encapsulation of the groupings of the time reduction types. It is intended to provide some of the functionality that was coded in the legacy function diag_data.F90:init_output_fields. The functionality in the end is used by send_data in (EFFICIENT) do loops calling the weighting or math functions to update buffers. The integer parameters above are the legal time reduction types, but they are not necessarily mutually exclusive in some contexts.
interface fms_diag_time_reduction_mod::fmsdiagtimereduction_type |
Definition at line 63 of file fms_diag_time_reduction.F90.
Public Member Functions | |
procedure, public | copy |
procedure, public | do_time_averaging => do_time_averaging_imp |
procedure, public | has_time_ops => has_time_ops_imp |
procedure, public | initialize |
procedure, public | is_time_average => is_time_average_imp |
procedure, public | is_time_diurnal => is_time_diurnal_imp |
procedure, public | is_time_max => is_time_max_imp |
procedure, public | is_time_min => is_time_min_imp |
procedure, public | is_time_none => is_time_none_imp |
procedure, public | is_time_power => is_time_power_imp |
procedure, public | is_time_rms => is_time_rms_imp |
procedure, public | is_time_sum => is_time_sum_imp |
Private Attributes | |
integer, private | the_time_reduction |
The time reduction type, as an integer defined above. | |
logical, private | time_averaging |
Set true iff time_average, time_rms, time_power or time_diurnal is true. | |
logical, private | time_ops |
Set true iff time_min, time_max, time_rms or time_average is true. | |
subroutine fms_diag_time_reduction_mod::copy | ( | class (fmsdiagtimereduction_type), intent(inout) | this, |
class (fmsdiagtimereduction_type), intent(in) | source | ||
) |
Copy the source time reduction object into the this object.
[in,out] | this | The fmsDiagTimeReduction_type object |
[in] | source | The fmsDiagTimeReduction_type object |
Definition at line 137 of file fms_diag_time_reduction.F90.
pure logical function fms_diag_time_reduction_mod::do_time_averaging_imp | ( | class (fmsdiagtimereduction_type), intent(in) | this | ) |
Returns true iff time_averaging is true.
[in] | this | The object this function is bound to. |
Definition at line 155 of file fms_diag_time_reduction.F90.
class (fmsdiagtimereduction_type) function, allocatable fms_diag_time_reduction_mod::fmsdiagtimereduction_type_constructor | ( | integer, intent(in) | dt, |
integer, intent(in) | out_frequency | ||
) |
The class contructors. Just allocates the class and calls an initializer.
[in] | dt | The redution type (time_rms, time_power, etc) |
[in] | out_frequency | The output frequency. |
Definition at line 93 of file fms_diag_time_reduction.F90.
pure logical function fms_diag_time_reduction_mod::has_time_ops_imp | ( | class (fmsdiagtimereduction_type), intent(in) | this | ) |
Returns true if any of time_min, time_max, time_rms or time_average is true.
[in] | this | The object this function is bound to. |
Definition at line 147 of file fms_diag_time_reduction.F90.
subroutine fms_diag_time_reduction_mod::initialize | ( | class (fmsdiagtimereduction_type), intent(inout) | this, |
integer, intent(in) | dt, | ||
integer, intent(in) | out_frequency | ||
) |
Initialize the object. As an alternative to the constructor, one can allocate an fmsDiagTimeReduction_type instance, then call its initialize function.
[in,out] | this | The fmsDiagTimeReduction_type object |
[in] | dt | The redution type (time_rms, time_porer, etc) |
[in] | out_frequency | The output frequency. |
Definition at line 104 of file fms_diag_time_reduction.F90.
pure logical function fms_diag_time_reduction_mod::is_time_average_imp | ( | class (fmsdiagtimereduction_type), intent(in) | this | ) |
Returns true iff the_time_reduction is time_average.
[in] | this | The object this function is bound to. |
Definition at line 163 of file fms_diag_time_reduction.F90.
pure logical function fms_diag_time_reduction_mod::is_time_diurnal_imp | ( | class (fmsdiagtimereduction_type), intent(in) | this | ) |
Returns true iff the_time_reduction is time_diurnal.
[in] | this | The object this function is bound to. |
Definition at line 211 of file fms_diag_time_reduction.F90.
pure logical function fms_diag_time_reduction_mod::is_time_max_imp | ( | class (fmsdiagtimereduction_type), intent(in) | this | ) |
Returns true iff the_time_reduction is time_max.
[in] | this | The object this function is bound to. |
Definition at line 187 of file fms_diag_time_reduction.F90.
pure logical function fms_diag_time_reduction_mod::is_time_min_imp | ( | class (fmsdiagtimereduction_type), intent(in) | this | ) |
Returns true iff the_time_reduction is time_min.
[in] | this | The object this function is bound to. |
Definition at line 195 of file fms_diag_time_reduction.F90.
pure logical function fms_diag_time_reduction_mod::is_time_none_imp | ( | class (fmsdiagtimereduction_type), intent(in) | this | ) |
Returns true iff the_time_reduction is time_none.
[in] | this | The object this function is bound to. |
Definition at line 171 of file fms_diag_time_reduction.F90.
pure logical function fms_diag_time_reduction_mod::is_time_power_imp | ( | class (fmsdiagtimereduction_type), intent(in) | this | ) |
Returns true iff the_time_reduction is time_power.
[in] | this | The object this function is bound to. |
Definition at line 219 of file fms_diag_time_reduction.F90.
pure logical function fms_diag_time_reduction_mod::is_time_rms_imp | ( | class (fmsdiagtimereduction_type), intent(in) | this | ) |
Returns true iff the_time_reduction is time_rms.
[in] | this | The object this function is bound to. |
Definition at line 179 of file fms_diag_time_reduction.F90.
pure logical function fms_diag_time_reduction_mod::is_time_sum_imp | ( | class (fmsdiagtimereduction_type), intent(in) | this | ) |
Returns true iff the_time_reduction is time_sum.
[in] | this | The object this function is bound to. |
Definition at line 203 of file fms_diag_time_reduction.F90.