ESMF_AttributeSetAttPackStateI4List Subroutine

private subroutine ESMF_AttributeSetAttPackStateI4List(target, name, valueList, attpack, keywordEnforcer, itemcount, attnestflag, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_State), intent(in) :: target
character(len=*), intent(in) :: name
integer(kind=ESMF_KIND_I4), intent(in), dimension(:) :: valueList
type(ESMF_AttPack), intent(in) :: attpack
type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
integer, intent(in), optional :: itemcount
type(ESMF_AttNest_Flag), intent(in), optional :: attnestflag
integer, intent(out), optional :: rc

Calls

proc~~esmf_attributesetattpackstatei4list~~CallsGraph proc~esmf_attributesetattpackstatei4list ESMF_AttributeSetAttPackStateI4List interface~esmf_infoset ESMF_InfoSet proc~esmf_attributesetattpackstatei4list->interface~esmf_infoset proc~attpack_formatkey ESMF_AttPack%attpack_formatKey proc~esmf_attributesetattpackstatei4list->proc~attpack_formatkey proc~attpack_getpayload ESMF_AttPack%attpack_getPayload proc~esmf_attributesetattpackstatei4list->proc~attpack_getpayload proc~esmf_imerr ESMF_IMErr proc~esmf_attributesetattpackstatei4list->proc~esmf_imerr proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_attributesetattpackstatei4list->proc~esmf_logfounderror proc~esmf_stategetinit ESMF_StateGetInit proc~esmf_attributesetattpackstatei4list->proc~esmf_stategetinit proc~esmf_infosetarraych ESMF_InfoSetArrayCH interface~esmf_infoset->proc~esmf_infosetarraych proc~esmf_infosetarrayi4 ESMF_InfoSetArrayI4 interface~esmf_infoset->proc~esmf_infosetarrayi4 proc~esmf_infosetarrayi8 ESMF_InfoSetArrayI8 interface~esmf_infoset->proc~esmf_infosetarrayi8 proc~esmf_infosetarraylg ESMF_InfoSetArrayLG interface~esmf_infoset->proc~esmf_infosetarraylg proc~esmf_infosetarrayr4 ESMF_InfoSetArrayR4 interface~esmf_infoset->proc~esmf_infosetarrayr4 proc~esmf_infosetarrayr8 ESMF_InfoSetArrayR8 interface~esmf_infoset->proc~esmf_infosetarrayr8 proc~esmf_infosetch ESMF_InfoSetCH interface~esmf_infoset->proc~esmf_infosetch proc~esmf_infosethconfig ESMF_InfoSetHConfig interface~esmf_infoset->proc~esmf_infosethconfig proc~esmf_infoseti4 ESMF_InfoSetI4 interface~esmf_infoset->proc~esmf_infoseti4 proc~esmf_infoseti8 ESMF_InfoSetI8 interface~esmf_infoset->proc~esmf_infoseti8 proc~esmf_infosetinfo ESMF_InfoSetINFO interface~esmf_infoset->proc~esmf_infosetinfo proc~esmf_infosetlg ESMF_InfoSetLG interface~esmf_infoset->proc~esmf_infosetlg proc~esmf_infosetr4 ESMF_InfoSetR4 interface~esmf_infoset->proc~esmf_infosetr4 proc~esmf_infosetr8 ESMF_InfoSetR8 interface~esmf_infoset->proc~esmf_infosetr8 proc~attpack_getpayload->proc~esmf_logfounderror proc~esmf_imerr->proc~esmf_logfounderror proc~esmf_initcheckdeep ESMF_InitCheckDeep proc~esmf_imerr->proc~esmf_initcheckdeep esmf_breakpoint esmf_breakpoint proc~esmf_logfounderror->esmf_breakpoint proc~esmf_logrc2msg ESMF_LogRc2Msg proc~esmf_logfounderror->proc~esmf_logrc2msg proc~esmf_logwrite ESMF_LogWrite proc~esmf_logfounderror->proc~esmf_logwrite

Called by

proc~~esmf_attributesetattpackstatei4list~~CalledByGraph proc~esmf_attributesetattpackstatei4list ESMF_AttributeSetAttPackStateI4List interface~esmf_attributeset ESMF_AttributeSet interface~esmf_attributeset->proc~esmf_attributesetattpackstatei4list

Source Code

subroutine ESMF_AttributeSetAttPackStateI4List(target, name, valueList, attpack, keywordEnforcer, itemcount, attnestflag, rc)
  ! 39.11.35/37 - Target is a NOOP only the attpack is used; itemcount is NOOP; attnestflag is NOOP
  type(ESMF_State), intent(in) :: target
  character(len=*), intent(in) :: name
  integer(ESMF_KIND_I4), dimension(:), intent(in) :: valueList
  type(ESMF_AttPack), intent(in) :: attpack
type(ESMF_KeywordEnforcer), optional :: keywordEnforcer ! must use keywords below
  integer, intent(in), optional :: itemcount
  type(ESMF_AttNest_Flag), intent(in), optional :: attnestflag
  integer, intent(out), optional :: rc

  integer :: localrc
  character(:), allocatable :: pkey
  type(ESMF_Info) :: info
  logical :: is_present
  type(ESMF_AttNest_Flag) :: local_attnestflag

  localrc = ESMF_FAILURE
  if (present(rc)) rc = ESMF_RC_NOT_IMPL
  ! Check object initialization
  ESMF_INIT_CHECK_DEEP(ESMF_StateGetInit, target, rc)

  if (present(attnestflag)) then
    local_attnestflag = attnestflag
  else
    local_attnestflag = ESMF_ATTR_DEFAULT_ATTNEST
  end if

  pkey = attpack%formatKey(rc=localrc)
  if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return

  info = attpack%getPayload(rc=localrc)
  if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return

!  is_present = ESMF_InfoIsPresent(info, TRIM(pkey)//"/"//TRIM(name), attnestflag=local_attnestflag, isPointer=.true., rc=localrc)
!  if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return
  is_present = .true.

  if (is_present) then
    call ESMF_InfoSet(info, TRIM(name), valueList, force=ESMF_ATTR_DEFAULT_FORCE, pkey=TRIM(pkey), rc=localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, ESMF_CONTEXT, rcToReturn=rc)) return
  else
    if (ESMF_LogFoundError(ESMF_RC_ATTR_ITEMSOFF, msg="Attribute must be added before it is set", ESMF_CONTEXT, rcToReturn=rc)) return
  endif

  if (present(rc)) rc = ESMF_SUCCESS
end subroutine ESMF_AttributeSetAttPackStateI4List