AccumulatorAction Derived Type

type, public, extends(ExtensionAction) :: AccumulatorAction


Inherits

type~~accumulatoraction~~InheritsGraph type~accumulatoraction AccumulatorAction ESMF_Field ESMF_Field type~accumulatoraction->ESMF_Field accumulation_field, result_field ESMF_TypeKind_Flag ESMF_TypeKind_Flag type~accumulatoraction->ESMF_TypeKind_Flag typekind type~extensionaction ExtensionAction type~accumulatoraction->type~extensionaction

Inherited by

type~~accumulatoraction~~InheritedByGraph type~accumulatoraction AccumulatorAction type~maxaction MaxAction type~maxaction->type~accumulatoraction type~meanaction MeanAction type~meanaction->type~accumulatoraction type~minaction MinAction type~minaction->type~accumulatoraction

Components

Type Visibility Attributes Name Initial
logical, public :: update_calculated = .FALSE.
real(kind=ESMF_KIND_R4), public :: CLEAR_VALUE_R4 = 0.0_ESMF_KIND_R4
type(ESMF_Field), public :: accumulation_field
type(ESMF_Field), public :: result_field
type(ESMF_TypeKind_Flag), public :: typekind = ESMF_TYPEKIND_R4

Type-Bound Procedures

procedure, public :: accumulate

  • private subroutine accumulate(this, update_field, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AccumulatorAction), intent(inout) :: this
    type(ESMF_Field), intent(inout) :: update_field
    integer, intent(out), optional :: rc

procedure, public :: accumulate_R4

  • private subroutine accumulate_R4(this, update_field, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AccumulatorAction), intent(inout) :: this
    type(ESMF_Field), intent(inout) :: update_field
    integer, intent(out), optional :: rc

procedure, public :: clear

  • private subroutine clear(this, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AccumulatorAction), intent(inout) :: this
    integer, intent(out), optional :: rc

procedure, public :: create_fields

  • private subroutine create_fields(this, import_field, export_field, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AccumulatorAction), intent(inout) :: this
    type(ESMF_Field), intent(inout) :: import_field
    type(ESMF_Field), intent(inout) :: export_field
    integer, intent(out), optional :: rc

procedure, public :: initialize

  • private subroutine initialize(this, importState, exportState, clock, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AccumulatorAction), intent(inout) :: this
    type(ESMF_State) :: importState
    type(ESMF_State) :: exportState
    type(ESMF_Clock) :: clock
    integer, intent(out), optional :: rc

procedure, public :: initialized

  • private function initialized(this) result(lval)

    Arguments

    Type IntentOptional Attributes Name
    class(AccumulatorAction), intent(in) :: this

    Return Value logical

procedure, public :: invalidate

  • private subroutine invalidate(this, importState, exportState, clock, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AccumulatorAction), intent(inout) :: this
    type(ESMF_State) :: importState
    type(ESMF_State) :: exportState
    type(ESMF_Clock) :: clock
    integer, intent(out), optional :: rc

procedure, public :: update

  • private subroutine update(this, importState, exportState, clock, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AccumulatorAction), intent(inout) :: this
    type(ESMF_State) :: importState
    type(ESMF_State) :: exportState
    type(ESMF_Clock) :: clock
    integer, intent(out), optional :: rc

procedure, public :: update_result

  • private subroutine update_result(this, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(AccumulatorAction), intent(inout) :: this
    integer, intent(out), optional :: rc

Source Code

   type, extends(ExtensionAction) :: AccumulatorAction
      type(ESMF_Field) :: accumulation_field
      type(ESMF_Field) :: result_field
      real(kind=ESMF_KIND_R4) :: CLEAR_VALUE_R4 = 0.0_ESMF_KIND_R4
      logical :: update_calculated = .FALSE.
      type(ESMF_TypeKind_Flag) :: typekind = ESMF_TYPEKIND_R4
   contains
      ! Implementations of deferred procedures
      procedure :: invalidate
      procedure :: initialize
      procedure :: update
      ! Helpers
      procedure :: initialized
      procedure :: accumulate
      procedure :: accumulate_R4
      procedure :: clear
      procedure :: create_fields
      procedure :: update_result
   end type AccumulatorAction