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