FMS 2025.01.02-dev
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 (this, source) |
Copy the source time reduction object into the this object. | |
subroutine | copy (this, source) |
Copy the source time reduction object into the this object. | |
procedure, public | do_time_averaging (this) |
Returns true iff time_averaging is true. | |
pure logical function | do_time_averaging_imp (this) |
Returns true iff time_averaging is true. | |
class(fmsdiagtimereduction_type) function, allocatable | fmsdiagtimereduction_type_constructor (dt, out_frequency) |
The class contructors. Just allocates the class and calls an initializer. | |
procedure, public | has_time_ops (this) |
Returns true if any of time_min, time_max, time_rms or time_average is true. | |
pure logical function | has_time_ops_imp (this) |
Returns true if any of time_min, time_max, time_rms or time_average is true. | |
procedure, public | 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. | |
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. | |
procedure, public | is_time_average (this) |
Returns true iff the_time_reduction is time_average. | |
pure logical function | is_time_average_imp (this) |
Returns true iff the_time_reduction is time_average. | |
procedure, public | is_time_diurnal (this) |
Returns true iff the_time_reduction is time_diurnal. | |
pure logical function | is_time_diurnal_imp (this) |
Returns true iff the_time_reduction is time_diurnal. | |
procedure, public | is_time_max (this) |
Returns true iff the_time_reduction is time_max. | |
pure logical function | is_time_max_imp (this) |
Returns true iff the_time_reduction is time_max. | |
procedure, public | is_time_min (this) |
Returns true iff the_time_reduction is time_min. | |
pure logical function | is_time_min_imp (this) |
Returns true iff the_time_reduction is time_min. | |
procedure, public | is_time_none (this) |
Returns true iff the_time_reduction is time_none. | |
pure logical function | is_time_none_imp (this) |
Returns true iff the_time_reduction is time_none. | |
procedure, public | is_time_power (this) |
Returns true iff the_time_reduction is time_power. | |
pure logical function | is_time_power_imp (this) |
Returns true iff the_time_reduction is time_power. | |
procedure, public | is_time_rms (this) |
Returns true iff the_time_reduction is time_rms. | |
pure logical function | is_time_rms_imp (this) |
Returns true iff the_time_reduction is time_rms. | |
procedure, public | is_time_sum (this) |
Returns true iff the_time_reduction is time_sum. | |
pure logical function | is_time_sum_imp (this) |
Returns true iff the_time_reduction is time_sum. | |
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 (this, source) |
Copy the source time reduction object into the this object. | |
procedure, public | do_time_averaging (this) |
Returns true iff time_averaging is true. | |
procedure, public | has_time_ops (this) |
Returns true if any of time_min, time_max, time_rms or time_average is true. | |
procedure, public | 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. | |
procedure, public | is_time_average (this) |
Returns true iff the_time_reduction is time_average. | |
procedure, public | is_time_diurnal (this) |
Returns true iff the_time_reduction is time_diurnal. | |
procedure, public | is_time_max (this) |
Returns true iff the_time_reduction is time_max. | |
procedure, public | is_time_min (this) |
Returns true iff the_time_reduction is time_min. | |
procedure, public | is_time_none (this) |
Returns true iff the_time_reduction is time_none. | |
procedure, public | is_time_power (this) |
Returns true iff the_time_reduction is time_power. | |
procedure, public | is_time_rms (this) |
Returns true iff the_time_reduction is time_rms. | |
procedure, public | is_time_sum (this) |
Returns true iff the_time_reduction is time_sum. | |
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. | |
procedure, public 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 79 of file fms_diag_time_reduction.F90.
subroutine 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.
procedure, public do_time_averaging | ( | 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 68 of file fms_diag_time_reduction.F90.
pure logical function 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 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.
procedure, public has_time_ops | ( | 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 69 of file fms_diag_time_reduction.F90.
pure logical function 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.
procedure, public 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 78 of file fms_diag_time_reduction.F90.
subroutine 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.
procedure, public is_time_average | ( | 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 71 of file fms_diag_time_reduction.F90.
pure logical function 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.
procedure, public is_time_diurnal | ( | 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 76 of file fms_diag_time_reduction.F90.
pure logical function 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.
procedure, public is_time_max | ( | 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 73 of file fms_diag_time_reduction.F90.
pure logical function 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.
procedure, public is_time_min | ( | 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 74 of file fms_diag_time_reduction.F90.
pure logical function 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.
procedure, public is_time_none | ( | 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 70 of file fms_diag_time_reduction.F90.
pure logical function 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.
procedure, public is_time_power | ( | 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 77 of file fms_diag_time_reduction.F90.
pure logical function 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.
procedure, public is_time_rms | ( | 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 72 of file fms_diag_time_reduction.F90.
pure logical function 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.
procedure, public is_time_sum | ( | 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 75 of file fms_diag_time_reduction.F90.
pure logical function 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.
|
private |
The time reduction type, as an integer defined above.
Definition at line 64 of file fms_diag_time_reduction.F90.
integer, parameter time_average = 1 |
The reduction method is average.
Definition at line 45 of file fms_diag_time_reduction.F90.
|
private |
Set true iff time_average, time_rms, time_power or time_diurnal is true.
Definition at line 65 of file fms_diag_time_reduction.F90.
integer, parameter time_diurnal = 6 |
The reduction method is diurnal.
Definition at line 50 of file fms_diag_time_reduction.F90.
integer, parameter time_max = 3 |
The reduction method is max.
Definition at line 47 of file fms_diag_time_reduction.F90.
integer, parameter time_min = 4 |
The reduction method is min.
Definition at line 48 of file fms_diag_time_reduction.F90.
|
private |
Set true iff time_min, time_max, time_rms or time_average is true.
Definition at line 66 of file fms_diag_time_reduction.F90.
integer, parameter time_power = 7 |
The reduction method is power.
Definition at line 51 of file fms_diag_time_reduction.F90.
integer, parameter time_rms = 2 |
The reduction method is rms.
Definition at line 46 of file fms_diag_time_reduction.F90.
integer, parameter time_sum = 5 |
The reudction method is sum.
Definition at line 49 of file fms_diag_time_reduction.F90.