ESMF_ArrayRedistStoreI8 Subroutine

private subroutine ESMF_ArrayRedistStoreI8(srcArray, dstArray, routehandle, factor, keywordEnforcer, srcToDstTransposeMap, ignoreUnmatchedIndices, pipelineDepth, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Array), intent(in) :: srcArray
type(ESMF_Array), intent(inout) :: dstArray
type(ESMF_RouteHandle), intent(inout) :: routehandle
integer(kind=ESMF_KIND_I8), intent(in) :: factor
type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
integer, intent(in), optional :: srcToDstTransposeMap(:)
logical, intent(in), optional :: ignoreUnmatchedIndices
integer, intent(inout), optional :: pipelineDepth
integer, intent(out), optional :: rc

Calls

proc~~esmf_arrayrediststorei8~~CallsGraph proc~esmf_arrayrediststorei8 ESMF_ArrayRedistStoreI8 esmf_arraygetinit esmf_arraygetinit proc~esmf_arrayrediststorei8->esmf_arraygetinit interface~c_esmc_arrayrediststore c_ESMC_ArrayRedistStore proc~esmf_arrayrediststorei8->interface~c_esmc_arrayrediststore interface~esmf_interarraycreate ESMF_InterArrayCreate proc~esmf_arrayrediststorei8->interface~esmf_interarraycreate proc~esmf_imerr ESMF_IMErr proc~esmf_arrayrediststorei8->proc~esmf_imerr proc~esmf_interarraydestroy ESMF_InterArrayDestroy proc~esmf_arrayrediststorei8->proc~esmf_interarraydestroy proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_arrayrediststorei8->proc~esmf_logfounderror proc~esmf_routehandlesetinitcreated ESMF_RouteHandleSetInitCreated proc~esmf_arrayrediststorei8->proc~esmf_routehandlesetinitcreated proc~esmf_interarraycreateptr ESMF_InterArrayCreatePtr interface~esmf_interarraycreate->proc~esmf_interarraycreateptr proc~esmf_interarraycreatetrg ESMF_InterArrayCreateTrg interface~esmf_interarraycreate->proc~esmf_interarraycreatetrg proc~esmf_imerr->proc~esmf_logfounderror proc~esmf_initcheckdeep ESMF_InitCheckDeep proc~esmf_imerr->proc~esmf_initcheckdeep proc~esmf_logfounddeallocerror ESMF_LogFoundDeallocError proc~esmf_interarraydestroy->proc~esmf_logfounddeallocerror 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_arrayrediststorei8~~CalledByGraph proc~esmf_arrayrediststorei8 ESMF_ArrayRedistStoreI8 interface~esmf_arrayrediststore ESMF_ArrayRedistStore interface~esmf_arrayrediststore->proc~esmf_arrayrediststorei8 proc~array_redist_test array_redist_test proc~array_redist_test->interface~esmf_arrayrediststore proc~compinit1 compInit1 proc~compinit1->interface~esmf_arrayrediststore proc~compinit2 compInit2 proc~compinit2->interface~esmf_arrayrediststore proc~compinit~2 compInit proc~compinit~2->interface~esmf_arrayrediststore proc~computeredistareamesh computeRedistAreaMesh proc~computeredistareamesh->interface~esmf_arrayrediststore proc~esmf_fieldrediststorei4 ESMF_FieldRedistStoreI4 proc~esmf_fieldrediststorei4->interface~esmf_arrayrediststore proc~esmf_fieldrediststorei8 ESMF_FieldRedistStoreI8 proc~esmf_fieldrediststorei8->interface~esmf_arrayrediststore proc~esmf_fieldrediststorenf ESMF_FieldRedistStoreNF proc~esmf_fieldrediststorenf->interface~esmf_arrayrediststore proc~esmf_fieldrediststorer4 ESMF_FieldRedistStoreR4 proc~esmf_fieldrediststorer4->interface~esmf_arrayrediststore proc~esmf_fieldrediststorer8 ESMF_FieldRedistStoreR8 proc~esmf_fieldrediststorer8->interface~esmf_arrayrediststore proc~esmf_gridcreatecopyfromnewdg ESMF_GridCreateCopyFromNewDG proc~esmf_gridcreatecopyfromnewdg->interface~esmf_arrayrediststore proc~gatherredistfracfieldmesh gatherRedistFracFieldMesh proc~gatherredistfracfieldmesh->interface~esmf_arrayrediststore proc~user_init~12 user_init proc~user_init~12->interface~esmf_arrayrediststore proc~user_init~19 user_init proc~user_init~19->interface~esmf_arrayrediststore proc~user_init~22 user_init proc~user_init~22->interface~esmf_arrayrediststore proc~user_init~37 user_init proc~user_init~37->interface~esmf_arrayrediststore proc~user_init~40 user_init proc~user_init~40->interface~esmf_arrayrediststore proc~user_init~42 user_init proc~user_init~42->interface~esmf_arrayrediststore proc~user_init~48 user_init proc~user_init~48->interface~esmf_arrayrediststore proc~user_init~57 user_init proc~user_init~57->interface~esmf_arrayrediststore proc~user_init~58 user_init proc~user_init~58->interface~esmf_arrayrediststore proc~user_init~78 user_init proc~user_init~78->interface~esmf_arrayrediststore program~esmf_arraycommnbex ESMF_ArrayCommNBEx program~esmf_arraycommnbex->interface~esmf_arrayrediststore program~esmf_arrayredistex ESMF_ArrayRedistEx program~esmf_arrayredistex->interface~esmf_arrayrediststore program~esmf_arrayredistutest ESMF_ArrayRedistUTest program~esmf_arrayredistutest->interface~esmf_arrayrediststore program~esmf_arrayscattergatherarbex ESMF_ArrayScatterGatherArbEx program~esmf_arrayscattergatherarbex->interface~esmf_arrayrediststore program~esmf_rhandlevmepochex ESMF_RHandleVMEpochEx program~esmf_rhandlevmepochex->interface~esmf_arrayrediststore

Source Code

  subroutine ESMF_ArrayRedistStoreI8(srcArray, dstArray, routehandle, &
    factor, keywordEnforcer, srcToDstTransposeMap, ignoreUnmatchedIndices, &
    pipelineDepth, rc)
!
! !ARGUMENTS:
    type(ESMF_Array),           intent(in)              :: srcArray
    type(ESMF_Array),           intent(inout)           :: dstArray
    type(ESMF_RouteHandle),     intent(inout)           :: routehandle
    integer(ESMF_KIND_I8),      intent(in)              :: factor
type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below
    integer,                    intent(in),    optional :: srcToDstTransposeMap(:)
    logical,                    intent(in),    optional :: ignoreUnmatchedIndices
    integer,                    intent(inout), optional :: pipelineDepth
    integer,                    intent(out),   optional :: rc
!
!EOPI
!------------------------------------------------------------------------------
    integer               :: localrc                  ! local return code
    type(ESMF_InterArray) :: srcToDstTransposeMapArg  ! index helper
    type(ESMF_Logical)    :: opt_ignoreUnmatched      ! helper variable
    integer, allocatable  :: dstToSrcTransposeMap(:)  ! helper variable
    integer               :: i

    ! initialize return code; assume routine not implemented
    localrc = ESMF_RC_NOT_IMPL
    if (present(rc)) rc = ESMF_RC_NOT_IMPL
    
    ! Check init status of arguments
    ESMF_INIT_CHECK_DEEP(ESMF_ArrayGetInit, srcArray, rc)
    ESMF_INIT_CHECK_DEEP(ESMF_ArrayGetInit, dstArray, rc)
    
    ! Deal with (optional) array arguments
    srcToDstTransposeMapArg = ESMF_InterArrayCreate(srcToDstTransposeMap, &
      rc=localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
      ESMF_CONTEXT, rcToReturn=rc)) return

    ! Set default flags
    opt_ignoreUnmatched = ESMF_FALSE
    if (present(ignoreUnmatchedIndices)) opt_ignoreUnmatched = ignoreUnmatchedIndices

    ! Call into the C++ interface, which will sort out optional arguments
    call c_ESMC_ArrayRedistStore(srcArray, dstArray, routehandle, &
      srcToDstTransposeMapArg, ESMF_TYPEKIND_I8, factor, opt_ignoreUnmatched, &
      pipelineDepth, localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
      ESMF_CONTEXT, rcToReturn=rc)) return
    
    ! Mark routehandle object as being created
    call ESMF_RouteHandleSetInitCreated(routehandle, rc=localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
      ESMF_CONTEXT, rcToReturn=rc)) return
    
    ! garbage collection
    call ESMF_InterArrayDestroy(srcToDstTransposeMapArg, rc=localrc)
    if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, &
      ESMF_CONTEXT, rcToReturn=rc)) return

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

  end subroutine ESMF_ArrayRedistStoreI8