FMS
2025.04
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 62 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 136 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 154 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 92 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 146 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 103 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 162 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 210 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 186 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 194 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 170 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 218 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 178 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 202 of file fms_diag_time_reduction.F90.