attpack_initialize Subroutine

private subroutine attpack_initialize(self, info, convention, purpose, rootKey, rc)

Type Bound

ESMF_AttPack

Arguments

Type IntentOptional Attributes Name
class(ESMF_AttPack), intent(out) :: self
type(ESMF_Info), intent(in) :: info
character(len=*), intent(in), optional :: convention
character(len=*), intent(in), optional :: purpose
character(len=*), intent(in), optional :: rootKey
integer, intent(out), optional :: rc

Source Code

subroutine attpack_initialize(self, info, convention, purpose, rootKey, rc)
  class(ESMF_AttPack), intent(out) :: self
  type(ESMF_Info), intent(in) :: info
  character(*), intent(in), optional :: convention
  character(*), intent(in), optional :: purpose
  character(*), intent(in), optional :: rootKey
  integer, intent(out), optional :: rc

  integer :: localrc
  character(:), allocatable :: local_convention, local_purpose

  if (present(rc)) rc = ESMF_RC_NOT_IMPL
  localrc = ESMF_FAILURE
  if (.not. present(rootKey)) then
    if (present(convention)) then
      local_convention = TRIM(convention)
    else
      local_convention = TRIM(ESMF_ATTR_DEFAULT_CONVENTION)
    end if
    if (present(purpose)) then
      local_purpose = TRIM(purpose)
    else
      local_purpose = TRIM(ESMF_ATTR_DEFAULT_PURPOSE)
    end if
    self%root_key = "/"//local_convention//"/"//local_purpose
  else
    self%root_key = rootKey
  end if
  self%info = info%ptr
  if (present(rc)) rc = ESMF_SUCCESS
end subroutine attpack_initialize