f_esmf_smmstore Subroutine

subroutine f_esmf_smmstore(srcField, dstField, filename, routehandle, ignoreUnmatchedIndices, srcTermProcessing, pipeLineDepth, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Field) :: srcField
type(ESMF_Field) :: dstField
character(len=*) :: filename
type(ESMF_RouteHandle) :: routehandle
logical, optional :: ignoreUnmatchedIndices
integer, optional :: srcTermProcessing
integer, optional :: pipeLineDepth
integer, optional :: rc

Source Code

  subroutine f_esmf_smmstore(srcField, dstField, &
                             filename, routehandle, &
                             ignoreUnmatchedIndices, &
                             srcTermProcessing, &
                             pipeLineDepth, &
                             rc)

    use ESMF_UtilTypesMod
    use ESMF_BaseMod
    use ESMF_LogErrMod
    use ESMF_RHandleMod
    use ESMF_FieldSMMMod
    use ESMF_FieldMod

    use ESMF_FieldGetMod

    implicit none

    type(ESMF_Field)                                :: srcField
    type(ESMF_Field)                                :: dstField
    character(len=*)                                :: filename
    type(ESMF_RouteHandle)                          :: routehandle
    logical,                               optional :: ignoreUnmatchedIndices
    integer,                               optional :: srcTermProcessing
    integer,                               optional :: pipeLineDepth
    integer,                               optional :: rc

    integer :: localrc
    type(ESMF_RouteHandle) :: l_routehandle

    ! initialize return code; assume routine not implemented
    rc = ESMF_RC_NOT_IMPL
    localrc = ESMF_RC_NOT_IMPL
    
    call ESMF_FieldSMMStore(srcField, dstField, &
                            filename, l_routehandle, &
                            ignoreUnmatchedIndices=ignoreUnmatchedIndices, &
                            srcTermProcessing=srcTermProcessing, &
                            pipeLineDepth=pipeLineDepth, &
                            rc=localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
      ESMF_CONTEXT, rcToReturn=rc)) return

    ! because ESMF_RouteHandle.this is private, it cannot be accessed directly
    ! we use the public interface to do the ptr copy;
    ! the RouteHandle object returned to the C interface must consist only of
    ! the 'this' pointer. It must not contain the isInit member.
    call ESMF_RoutehandleCopyThis(l_routehandle, routehandle, localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
      ESMF_CONTEXT, rcToReturn=rc)) return

    rc = ESMF_SUCCESS

  end subroutine f_esmf_smmstore