FMS 2025.01.02-dev
Flexible Modeling System
All Classes Namespaces Files Functions Variables Modules Pages
fms_diag_time_reduction_mod

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.
 

Detailed Description

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.

Author
Miguel Zuniga

Data Type Documentation

◆ fms_diag_time_reduction_mod::fmsdiagtimereduction_type

interface fms_diag_time_reduction_mod::fmsdiagtimereduction_type

Definition at line 63 of file fms_diag_time_reduction.F90.

Collaboration diagram for fmsdiagtimereduction_type:
[legend]

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.
 

Function/Subroutine Documentation

◆ copy() [1/2]

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.

Parameters
[in,out]thisThe fmsDiagTimeReduction_type object
[in]sourceThe fmsDiagTimeReduction_type object

Definition at line 79 of file fms_diag_time_reduction.F90.

◆ copy() [2/2]

subroutine copy ( class (fmsdiagtimereduction_type), intent(inout)  this,
class (fmsdiagtimereduction_type), intent(in)  source 
)

Copy the source time reduction object into the this object.

Parameters
[in,out]thisThe fmsDiagTimeReduction_type object
[in]sourceThe fmsDiagTimeReduction_type object

Definition at line 137 of file fms_diag_time_reduction.F90.

◆ do_time_averaging()

procedure, public do_time_averaging ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff time_averaging is true.

Returns
true iff time_averaging is true.
Parameters
[in]thisThe object this function is bound to.

Definition at line 68 of file fms_diag_time_reduction.F90.

◆ do_time_averaging_imp()

pure logical function do_time_averaging_imp ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff time_averaging is true.

Returns
true iff time_averaging is true.
Parameters
[in]thisThe object this function is bound to.

Definition at line 155 of file fms_diag_time_reduction.F90.

◆ fmsdiagtimereduction_type_constructor()

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.

Returns
An allocated instance of fmsDiagTimeReduction_type, which is nitialized using provided values for arguments dt and out_freqeuncy.
Parameters
[in]dtThe redution type (time_rms, time_power, etc)
[in]out_frequencyThe output frequency.
Returns
The instance of the fmsDiagTimeReduction_type class allocated and returned by this constructor.

Definition at line 93 of file fms_diag_time_reduction.F90.

◆ has_time_ops()

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.

Returns
true if any of time_min, time_max, time_rms or time_average is true.
Parameters
[in]thisThe object this function is bound to.

Definition at line 69 of file fms_diag_time_reduction.F90.

◆ has_time_ops_imp()

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.

Returns
true if any of time_min, time_max, time_rms or time_average is true.
Parameters
[in]thisThe object this function is bound to.

Definition at line 147 of file fms_diag_time_reduction.F90.

◆ initialize() [1/2]

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.

Parameters
[in,out]thisThe fmsDiagTimeReduction_type object
[in]dtThe redution type (time_rms, time_porer, etc)
[in]out_frequencyThe output frequency.

Definition at line 78 of file fms_diag_time_reduction.F90.

◆ initialize() [2/2]

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.

Parameters
[in,out]thisThe fmsDiagTimeReduction_type object
[in]dtThe redution type (time_rms, time_porer, etc)
[in]out_frequencyThe output frequency.

Definition at line 104 of file fms_diag_time_reduction.F90.

◆ is_time_average()

procedure, public is_time_average ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_average.

Returns
true iff the_time_reduction is time_average
Parameters
[in]thisThe object this function is bound to.

Definition at line 71 of file fms_diag_time_reduction.F90.

◆ is_time_average_imp()

pure logical function is_time_average_imp ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_average.

Returns
true iff the_time_reduction is time_average
Parameters
[in]thisThe object this function is bound to.

Definition at line 163 of file fms_diag_time_reduction.F90.

◆ is_time_diurnal()

procedure, public is_time_diurnal ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_diurnal.

Returns
true iff the_time_reduction is time_diurnal
Parameters
[in]thisThe object this function is bound to.

Definition at line 76 of file fms_diag_time_reduction.F90.

◆ is_time_diurnal_imp()

pure logical function is_time_diurnal_imp ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_diurnal.

Returns
true iff the_time_reduction is time_diurnal
Parameters
[in]thisThe object this function is bound to.

Definition at line 211 of file fms_diag_time_reduction.F90.

◆ is_time_max()

procedure, public is_time_max ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_max.

Returns
true iff the_time_reduction is time_max
Parameters
[in]thisThe object this function is bound to.

Definition at line 73 of file fms_diag_time_reduction.F90.

◆ is_time_max_imp()

pure logical function is_time_max_imp ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_max.

Returns
true iff the_time_reduction is time_max
Parameters
[in]thisThe object this function is bound to.

Definition at line 187 of file fms_diag_time_reduction.F90.

◆ is_time_min()

procedure, public is_time_min ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_min.

Returns
true iff the_time_reduction is time_min
Parameters
[in]thisThe object this function is bound to.

Definition at line 74 of file fms_diag_time_reduction.F90.

◆ is_time_min_imp()

pure logical function is_time_min_imp ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_min.

Returns
true iff the_time_reduction is time_min
Parameters
[in]thisThe object this function is bound to.

Definition at line 195 of file fms_diag_time_reduction.F90.

◆ is_time_none()

procedure, public is_time_none ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_none.

Returns
true iff the_time_reduction is time_none
Parameters
[in]thisThe object this function is bound to.

Definition at line 70 of file fms_diag_time_reduction.F90.

◆ is_time_none_imp()

pure logical function is_time_none_imp ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_none.

Returns
true iff the_time_reduction is time_none
Parameters
[in]thisThe object this function is bound to.

Definition at line 171 of file fms_diag_time_reduction.F90.

◆ is_time_power()

procedure, public is_time_power ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_power.

Returns
true iff the_time_reduction is time_power
Parameters
[in]thisThe object this function is bound to.

Definition at line 77 of file fms_diag_time_reduction.F90.

◆ is_time_power_imp()

pure logical function is_time_power_imp ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_power.

Returns
true iff the_time_reduction is time_power
Parameters
[in]thisThe object this function is bound to.

Definition at line 219 of file fms_diag_time_reduction.F90.

◆ is_time_rms()

procedure, public is_time_rms ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_rms.

Returns
true iff the_time_reduction is time_rms
Parameters
[in]thisThe object this function is bound to.

Definition at line 72 of file fms_diag_time_reduction.F90.

◆ is_time_rms_imp()

pure logical function is_time_rms_imp ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_rms.

Returns
true iff the_time_reduction is time_rms
Parameters
[in]thisThe object this function is bound to.

Definition at line 179 of file fms_diag_time_reduction.F90.

◆ is_time_sum()

procedure, public is_time_sum ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_sum.

Returns
true iff the_time_reduction is time_sum
Parameters
[in]thisThe object this function is bound to.

Definition at line 75 of file fms_diag_time_reduction.F90.

◆ is_time_sum_imp()

pure logical function is_time_sum_imp ( class (fmsdiagtimereduction_type), intent(in)  this)

Returns true iff the_time_reduction is time_sum.

Returns
true iff the_time_reduction is time_sum
Parameters
[in]thisThe object this function is bound to.

Definition at line 203 of file fms_diag_time_reduction.F90.

Variable Documentation

◆ the_time_reduction

integer, private the_time_reduction
private

The time reduction type, as an integer defined above.

Definition at line 64 of file fms_diag_time_reduction.F90.

◆ time_average

integer, parameter time_average = 1

The reduction method is average.

Definition at line 45 of file fms_diag_time_reduction.F90.

◆ time_averaging

logical, private time_averaging
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.

◆ time_diurnal

integer, parameter time_diurnal = 6

The reduction method is diurnal.

Definition at line 50 of file fms_diag_time_reduction.F90.

◆ time_max

integer, parameter time_max = 3

The reduction method is max.

Definition at line 47 of file fms_diag_time_reduction.F90.

◆ time_min

integer, parameter time_min = 4

The reduction method is min.

Definition at line 48 of file fms_diag_time_reduction.F90.

◆ time_ops

logical, private time_ops
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.

◆ time_power

integer, parameter time_power = 7

The reduction method is power.

Definition at line 51 of file fms_diag_time_reduction.F90.

◆ time_rms

integer, parameter time_rms = 2

The reduction method is rms.

Definition at line 46 of file fms_diag_time_reduction.F90.

◆ time_sum

integer, parameter time_sum = 5

The reudction method is sum.

Definition at line 49 of file fms_diag_time_reduction.F90.