ESMF_InfoDescribe Derived Type

type, public :: ESMF_InfoDescribe


Components

Type Visibility Attributes Name Initial
logical, public :: addBaseAddress = .false.
logical, public :: addObjectInfo = .false.
logical, public :: createInfo = .true.
logical, public :: curr_base_is_geom = .false.
logical, public :: curr_base_is_valid = .false.
logical, public :: found = .false.
logical, public :: is_initialized = .false.
type(ESMF_Base), public :: curr_base
type(ESMF_Field), public :: foundField
type(ESMF_Info), public :: info
type(ESMF_Info), public, pointer :: searchCriteria
type(ESMF_VMId), public, dimension(:), pointer :: vmIdMap

Type-Bound Procedures

generic, public :: Destroy => ESMF_InfoDescribeDestroy

procedure, private, pass :: ESMF_InfoDescribeDestroy

procedure, private, pass :: ESMF_InfoDescribeGetCurrentBase

procedure, private, pass :: ESMF_InfoDescribeGetCurrentInfo

procedure, private :: ESMF_InfoDescribeInitialize

  • public subroutine ESMF_InfoDescribeInitialize(self, addBaseAddress, addObjectInfo, createInfo, searchCriteria, vmIdMap, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    logical, intent(in), optional :: addBaseAddress
    logical, intent(in), optional :: addObjectInfo
    logical, intent(in), optional :: createInfo
    type(ESMF_Info), intent(in), optional, target :: searchCriteria
    type(ESMF_VMId), intent(in), optional, dimension(:), pointer :: vmIdMap
    integer, intent(inout), optional :: rc

procedure, private, pass :: ESMF_InfoDescribePrint

  • public recursive subroutine fillMembersState(self, state, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_State), intent(in) :: state
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine fillMembersArrayBundle(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_ArrayBundle), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine fillMembersField(self, field, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_Field), intent(in) :: field
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine fillMembersFieldBundle(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_FieldBundle), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

generic, public :: GetCurrentBase => ESMF_InfoDescribeGetCurrentBase

generic, public :: GetCurrentInfo => ESMF_InfoDescribeGetCurrentInfo

generic, public :: Initialize => ESMF_InfoDescribeInitialize

  • public subroutine ESMF_InfoDescribeInitialize(self, addBaseAddress, addObjectInfo, createInfo, searchCriteria, vmIdMap, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    logical, intent(in), optional :: addBaseAddress
    logical, intent(in), optional :: addObjectInfo
    logical, intent(in), optional :: createInfo
    type(ESMF_Info), intent(in), optional, target :: searchCriteria
    type(ESMF_VMId), intent(in), optional, dimension(:), pointer :: vmIdMap
    integer, intent(inout), optional :: rc

generic, public :: Print => ESMF_InfoDescribePrint

  • public recursive subroutine updateWithState(self, state, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_State), intent(in) :: state
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine updateWithArray(self, array, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_Array), intent(in) :: array
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine updateWithArrayBundle(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_ArrayBundle), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine updateWithField(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_Field), intent(in), target :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine updateWithFieldBundle(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_FieldBundle), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine updateWithLocStream(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_LocStream), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine updateWithGrid(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_Grid), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine updateWithXGrid(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_XGrid), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine updateWithMesh(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_Mesh), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine updateWithRouteHandle(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_RouteHandle), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine updateWithDistGrid(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_DistGrid), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine updateWithGridComp(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_GridComp), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine updateWithCplComp(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_CplComp), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc
  • public subroutine updateWithSciComp(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_SciComp), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private :: fillMembersArrayBundle

procedure, private :: fillMembersField

  • public subroutine fillMembersField(self, field, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_Field), intent(in) :: field
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private :: fillMembersFieldBundle

  • public subroutine fillMembersFieldBundle(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_FieldBundle), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private :: fillMembersState

  • public recursive subroutine fillMembersState(self, state, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_State), intent(in) :: state
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private, pass :: getInfoArray

  • public function getInfoArray(self, target, keywordEnforcer, rc) result(info)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(in) :: self
    type(ESMF_Array), intent(in) :: target
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

    Return Value type(ESMF_Info)

procedure, private, pass :: getInfoArrayBundle

procedure, private, pass :: getInfoCplComp

procedure, private, pass :: getInfoDistGrid

procedure, private, pass :: getInfoField

procedure, private, pass :: getInfoFieldBundle

  • public function getInfoFieldBundle(self, target, keywordEnforcer, rc) result(info)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(in) :: self
    type(ESMF_FieldBundle), intent(in) :: target
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

    Return Value type(ESMF_Info)

procedure, private, pass :: getInfoGeom

  • public function getInfoGeom(self, target, keywordEnforcer, rc) result(info)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(in) :: self
    type(ESMF_Geom), intent(in) :: target
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

    Return Value type(ESMF_Info)

procedure, private, pass :: getInfoGrid

  • public function getInfoGrid(self, target, keywordEnforcer, rc) result(info)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(in) :: self
    type(ESMF_Grid), intent(in) :: target
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

    Return Value type(ESMF_Info)

procedure, private, pass :: getInfoGridComp

procedure, private, pass :: getInfoLocStream

procedure, private, pass :: getInfoMesh

  • public function getInfoMesh(self, target, keywordEnforcer, rc) result(info)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(in) :: self
    type(ESMF_Mesh), intent(in) :: target
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

    Return Value type(ESMF_Info)

procedure, private, pass :: getInfoSciComp

procedure, private, pass :: getInfoState

procedure, private :: updateGeneric

  • public subroutine updateGeneric(self, root_key, name, etype, base, keywordEnforcer, base_is_valid, uname, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    character(len=*), intent(in) :: root_key
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: etype
    type(ESMF_Base), intent(in) :: base
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    logical, intent(in), optional :: base_is_valid
    character(len=:), optional, allocatable :: uname
    integer, intent(inout), optional :: rc

procedure, private :: updateWithArray

  • public subroutine updateWithArray(self, array, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_Array), intent(in) :: array
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private :: updateWithArrayBundle

procedure, private :: updateWithCplComp

  • public subroutine updateWithCplComp(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_CplComp), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private :: updateWithDistGrid

  • public subroutine updateWithDistGrid(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_DistGrid), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private :: updateWithField

  • public subroutine updateWithField(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_Field), intent(in), target :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private :: updateWithFieldBundle

  • public subroutine updateWithFieldBundle(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_FieldBundle), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private :: updateWithGrid

  • public subroutine updateWithGrid(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_Grid), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private :: updateWithGridComp

  • public subroutine updateWithGridComp(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_GridComp), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private :: updateWithLocStream

  • public subroutine updateWithLocStream(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_LocStream), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private :: updateWithMesh

  • public subroutine updateWithMesh(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_Mesh), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private :: updateWithRouteHandle

procedure, private :: updateWithSciComp

  • public subroutine updateWithSciComp(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_SciComp), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private :: updateWithState

  • public recursive subroutine updateWithState(self, state, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_State), intent(in) :: state
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

procedure, private :: updateWithXGrid

  • public subroutine updateWithXGrid(self, target, root_key, keywordEnforcer, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(ESMF_InfoDescribe), intent(inout) :: self
    type(ESMF_XGrid), intent(in) :: target
    character(len=*), intent(in) :: root_key
    type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
    integer, intent(inout), optional :: rc

Source Code

type, public :: ESMF_InfoDescribe
  ! TODO:describe_search: Use a pointer to avoid rebuilding the internal storage with a repeat search.
  type(ESMF_Info) :: info
  logical :: addBaseAddress = .false.  ! If true, add the object's base address
  logical :: addObjectInfo = .false.  ! If true, add ESMF_Info map for each object
  logical :: createInfo = .true.  ! If true, also recurse objects with members (i.e. ArrayBundle)
  type(ESMF_VMId), dimension(:), pointer :: vmIdMap  ! Used to also get a unique integer identifier for an object's VM

  logical :: is_initialized = .false.  ! If true, the object is initialized
  type(ESMF_Base) :: curr_base  ! Holds a reference to the current update object's base. Will change when recursively updating
  logical :: curr_base_is_valid = .false.  ! If true, the object's base is valid (i.e. can be reinterpret casted)
  logical :: curr_base_is_geom = .false.  ! If true, the Base is for an ESMF Geometry object

  ! TODO:describe_search: These parameters used by search and should not be used in practice.
  type(ESMF_Info), pointer :: searchCriteria ! If associated use these Info contents to find an object
  logical :: found = .false. ! Used internally when finding objects
  type(ESMF_Field) :: foundField ! Used when finding Fields
contains
  procedure, private :: updateWithState, updateWithArray, updateWithArrayBundle, &
   updateWithField, updateWithFieldBundle, updateWithLocStream, updateWithGrid, &
   updateWithXGrid, updateWithMesh, updateWithRouteHandle, updateWithDistGrid, &
   updateWithGridComp, updateWithCplComp, updateWithSciComp
  generic, public :: Update => updateWithState, updateWithArray, updateWithArrayBundle, &
   updateWithField, updateWithFieldBundle, updateWithLocStream, updateWithGrid, &
   updateWithXGrid, updateWithMesh, updateWithRouteHandle, updateWithDistGrid, &
   updateWithGridComp, updateWithCplComp, updateWithSciComp
  procedure, private :: fillMembersState, fillMembersArrayBundle, fillMembersField, &
   fillMembersFieldBundle
  generic, public :: FillMembers => fillMembersState, fillMembersArrayBundle, fillMembersField, &
   fillMembersFieldBundle
  procedure, private, pass :: ESMF_InfoDescribeDestroy, ESMF_InfoDescribePrint, &
   ESMF_InfoDescribeGetCurrentBase, ESMF_InfoDescribeGetCurrentInfo
  procedure, private :: updateGeneric, ESMF_InfoDescribeInitialize
  procedure, private, pass :: getInfoArray, getInfoArrayBundle, getInfoCplComp, &
   getInfoGridComp, getInfoSciComp, getInfoDistGrid, getInfoField, getInfoFieldBundle, &
   getInfoGrid, getInfoState, getInfoLocStream, getInfoMesh, getInfoGeom
  generic, public :: GetInfo => getInfoArray, getInfoArrayBundle, getInfoCplComp, getInfoGridComp, &
   getInfoSciComp, getInfoDistGrid, getInfoField, getInfoFieldBundle, getInfoGrid, &
   getInfoState, getInfoLocStream, getInfoMesh, getInfoGeom
  generic, public :: Initialize => ESMF_InfoDescribeInitialize
  generic, public :: Destroy => ESMF_InfoDescribeDestroy
  generic, public :: Print => ESMF_InfoDescribePrint
  generic, public :: GetCurrentBase => ESMF_InfoDescribeGetCurrentBase
  generic, public :: GetCurrentInfo => ESMF_InfoDescribeGetCurrentInfo
end type ESMF_InfoDescribe