ESMF_HConfigCreateLogicalSeq Function

private function ESMF_HConfigCreateLogicalSeq(content, keywordEnforcer, rc)

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: content(:)
type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
integer, intent(out), optional :: rc

Return Value type(ESMF_HConfig)


Source Code

  function ESMF_HConfigCreateLogicalSeq(content, keywordEnforcer, rc)

    type(ESMF_HConfig) :: ESMF_HConfigCreateLogicalSeq

    logical,            intent(in)            :: content(:)
type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below
    integer,            intent(out), optional :: rc

    integer                       :: localrc        ! local return code
    character(len=:), allocatable :: sContent
    integer                       :: count, i

    ! initialize return code; assume routine not implemented
    localrc = ESMF_RC_NOT_IMPL
    if (present(rc)) rc = ESMF_RC_NOT_IMPL

    ! start with empty hconfig
    ESMF_HConfigCreateLogicalSeq = ESMF_HConfigCreate(rc=localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
      ESMF_CONTEXT, rcToReturn=rc)) return

    count = size(content)
    do i=1, count
      ! add this element of the sequence
      sContent = "False"
      if (content(i)) sContent = "True"
      call ESMF_HConfigAdd(ESMF_HConfigCreateLogicalSeq, sContent, rc=localrc)
      if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
        ESMF_CONTEXT, rcToReturn=rc)) return
    enddo

    ! return successfully
    if (present(rc)) rc = ESMF_SUCCESS

  end function ESMF_HConfigCreateLogicalSeq