31 MODULE fms_diag_time_reduction_mod
33 USE diag_data_mod,
only: every_time
44 INTEGER,
PARAMETER :: time_none = 0
64 integer ,
private :: the_time_reduction
65 logical ,
private :: time_averaging
66 logical ,
private :: time_ops
79 procedure,
public ::
copy
94 integer,
intent(in) :: dt
95 integer,
intent(in) :: out_frequency
99 call time_redux%initialize(dt, out_frequency)
106 integer,
intent(in) :: dt
107 integer,
intent(in) :: out_frequency
109 this%the_time_reduction = dt
115 this%time_averaging = .true.
117 this%time_averaging= .false.
119 & .AND. (dt .NE. time_none))
THEN
120 CALL error_mesg(
'fmsDiagTimeReduction_type: initialize', &
121 &
'time_averaging=.false. but reduction type not compatible', fatal)
130 this%time_ops = .true.
132 this%time_ops = .false.
140 this%the_time_reduction = source%the_time_reduction
141 this%time_averaging = source%time_averaging
142 this%time_ops = source%time_ops
225 end module fms_diag_time_reduction_mod
pure logical function is_time_none_imp(this)
Returns true iff the_time_reduction is time_none.
pure logical function is_time_sum_imp(this)
Returns true iff the_time_reduction is time_sum.
pure logical function do_time_averaging_imp(this)
Returns true iff time_averaging is true.
pure logical function is_time_min_imp(this)
Returns true iff the_time_reduction is time_min.
class(fmsdiagtimereduction_type) function, allocatable fmsdiagtimereduction_type_constructor(dt, out_frequency)
The class contructors. Just allocates the class and calls an initializer.
pure logical function is_time_rms_imp(this)
Returns true iff the_time_reduction is time_rms.
pure logical function is_time_max_imp(this)
Returns true iff the_time_reduction is time_max.
subroutine copy(this, source)
Copy the source time reduction object into the this object.
integer, parameter time_min
The reduction method is min.
integer, parameter time_diurnal
The reduction method is diurnal.
integer, parameter time_power
The reduction method is power.
pure logical function is_time_power_imp(this)
Returns true iff the_time_reduction is time_power.
pure logical function is_time_diurnal_imp(this)
Returns true iff the_time_reduction is time_diurnal.
integer, parameter time_average
The reduction method is average.
integer, parameter time_sum
The reudction method is sum.
integer, parameter time_rms
The reduction method is rms.
subroutine initialize(this, dt, out_frequency)
Initialize the object. As an alternative to the constructor, one can allocate an fmsDiagTimeReduction...
pure logical function is_time_average_imp(this)
Returns true iff the_time_reduction is time_average.
integer, parameter time_max
The reduction method is max.
pure logical function has_time_ops_imp(this)
Returns true if any of time_min, time_max, time_rms or time_average is true.
subroutine, public error_mesg(routine, message, level)
Print notes, warnings and error messages; terminates program for warning and error messages....