ESMF_FieldRedistStoreR4 Subroutine

private subroutine ESMF_FieldRedistStoreR4(srcField, dstField, routehandle, factor, keywordEnforcer, srcToDstTransposeMap, ignoreUnmatchedIndices, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_Field), intent(in) :: srcField
type(ESMF_Field), intent(inout) :: dstField
type(ESMF_RouteHandle), intent(inout) :: routehandle
real(kind=ESMF_KIND_R4), intent(in) :: factor
type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
integer, intent(in), optional :: srcToDstTransposeMap(:)
logical, intent(in), optional :: ignoreUnmatchedIndices
integer, intent(out), optional :: rc

Calls

proc~~esmf_fieldrediststorer4~~CallsGraph proc~esmf_fieldrediststorer4 ESMF_FieldRedistStoreR4 esmf_fieldget esmf_fieldget proc~esmf_fieldrediststorer4->esmf_fieldget interface~esmf_arrayrediststore ESMF_ArrayRedistStore proc~esmf_fieldrediststorer4->interface~esmf_arrayrediststore proc~esmf_fieldgetinit ESMF_FieldGetInit proc~esmf_fieldrediststorer4->proc~esmf_fieldgetinit proc~esmf_imerr ESMF_IMErr proc~esmf_fieldrediststorer4->proc~esmf_imerr proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_fieldrediststorer4->proc~esmf_logfounderror proc~esmf_arrayrediststorei4 ESMF_ArrayRedistStoreI4 interface~esmf_arrayrediststore->proc~esmf_arrayrediststorei4 proc~esmf_arrayrediststorei4tp ESMF_ArrayRedistStoreI4TP interface~esmf_arrayrediststore->proc~esmf_arrayrediststorei4tp proc~esmf_arrayrediststorei8 ESMF_ArrayRedistStoreI8 interface~esmf_arrayrediststore->proc~esmf_arrayrediststorei8 proc~esmf_arrayrediststorei8tp ESMF_ArrayRedistStoreI8TP interface~esmf_arrayrediststore->proc~esmf_arrayrediststorei8tp proc~esmf_arrayrediststorenf ESMF_ArrayRedistStoreNF interface~esmf_arrayrediststore->proc~esmf_arrayrediststorenf proc~esmf_arrayrediststorenftp ESMF_ArrayRedistStoreNFTP interface~esmf_arrayrediststore->proc~esmf_arrayrediststorenftp proc~esmf_arrayrediststorer4 ESMF_ArrayRedistStoreR4 interface~esmf_arrayrediststore->proc~esmf_arrayrediststorer4 proc~esmf_arrayrediststorer4tp ESMF_ArrayRedistStoreR4TP interface~esmf_arrayrediststore->proc~esmf_arrayrediststorer4tp proc~esmf_arrayrediststorer8 ESMF_ArrayRedistStoreR8 interface~esmf_arrayrediststore->proc~esmf_arrayrediststorer8 proc~esmf_arrayrediststorer8tp ESMF_ArrayRedistStoreR8TP interface~esmf_arrayrediststore->proc~esmf_arrayrediststorer8tp proc~esmf_imerr->proc~esmf_logfounderror proc~esmf_initcheckdeep ESMF_InitCheckDeep proc~esmf_imerr->proc~esmf_initcheckdeep 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_fieldrediststorer4~~CalledByGraph proc~esmf_fieldrediststorer4 ESMF_FieldRedistStoreR4 interface~esmf_fieldrediststore ESMF_FieldRedistStore interface~esmf_fieldrediststore->proc~esmf_fieldrediststorer4 proc~field_redist_test field_redist_test proc~field_redist_test->interface~esmf_fieldrediststore proc~user_initp3~2 user_initP3 proc~user_initp3~2->interface~esmf_fieldrediststore proc~user_initp3~4 user_initP3 proc~user_initp3~4->interface~esmf_fieldrediststore proc~user_init~21 user_init proc~user_init~21->interface~esmf_fieldrediststore proc~user_init~70 user_init proc~user_init~70->interface~esmf_fieldrediststore proc~user_init~83 user_init proc~user_init~83->interface~esmf_fieldrediststore program~arb2arbfldredist Arb2ArbFldReDist program~arb2arbfldredist->interface~esmf_fieldrediststore program~blk2arbfldredist Blk2ArbFldRedist program~blk2arbfldredist->interface~esmf_fieldrediststore program~blk2blkfldredist Blk2BlkFldRedist program~blk2blkfldredist->interface~esmf_fieldrediststore program~esmf_fieldredistarbutest ESMF_FieldRedistArbUTest program~esmf_fieldredistarbutest->interface~esmf_fieldrediststore program~esmf_rhandlefromfileex ESMF_RHandleFromFileEx program~esmf_rhandlefromfileex->interface~esmf_fieldrediststore program~esmf_rhandlefromrhandleex ESMF_RHandleFromRHandleEx program~esmf_rhandlefromrhandleex->interface~esmf_fieldrediststore program~esmf_routehandleadvancedutest ESMF_RouteHandleAdvancedUTest program~esmf_routehandleadvancedutest->interface~esmf_fieldrediststore program~esmf_routehandleutest ESMF_RouteHandleUTest program~esmf_routehandleutest->interface~esmf_fieldrediststore program~fieldredist FieldRedist program~fieldredist->interface~esmf_fieldrediststore program~fieldredistex FieldRedistEx program~fieldredistex->interface~esmf_fieldrediststore proc~runtests RunTests proc~runtests->proc~field_redist_test program~esmf_test_harness esmf_test_harness program~esmf_test_harness->proc~runtests

Source Code

    subroutine ESMF_FieldRedistStoreR4(srcField, dstField, & 
        routehandle, factor, keywordEnforcer, srcToDstTransposeMap, &
        ignoreUnmatchedIndices, rc) 

        ! input arguments 
        type(ESMF_Field),       intent(in)            :: srcField  
        type(ESMF_Field),       intent(inout)         :: dstField  
        type(ESMF_RouteHandle), intent(inout)         :: routehandle
        real(ESMF_KIND_R4),     intent(in)            :: factor
type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below
        integer,                intent(in), optional  :: srcToDstTransposeMap(:) 
        logical,                intent(in), optional  :: ignoreUnmatchedIndices
        integer,                intent(out), optional :: rc 

!EOPI
        ! local variables as temporary input/output arguments 

        ! internal local variables 
        integer                                     :: localrc 
        type(ESMF_Array)                            :: srcArray, dstArray   

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

        ! check variable: focus on field and farray 
        ! rely on ArrayRedist to check the sanity of other variables 
  ESMF_INIT_CHECK_DEEP(ESMF_FieldGetInit, srcField, rc) 
  ESMF_INIT_CHECK_DEEP(ESMF_FieldGetInit, dstField, rc) 

        ! Retrieve source and destination arrays. 
        call ESMF_FieldGet(srcField, array=srcArray, rc=localrc) 
        if (ESMF_LogFoundError(localrc, & 
            ESMF_ERR_PASSTHRU, & 
            ESMF_CONTEXT, rcToReturn=rc)) return 
        call ESMF_FieldGet(dstField, array=dstArray, rc=localrc) 
        if (ESMF_LogFoundError(localrc, & 
            ESMF_ERR_PASSTHRU, & 
            ESMF_CONTEXT, rcToReturn=rc)) return 

        ! perform redist through array 
        ! For performance consideration: 
        ! Rely on ArrayRedist to perform sanity checking of the other parameters 
        call ESMF_ArrayRedistStore(srcArray, dstArray, routehandle, factor, & 
            srcToDstTransposeMap=srcToDstTransposeMap, &
            ignoreUnmatchedIndices=ignoreUnmatchedIndices, rc=localrc) 
        if (ESMF_LogFoundError(localrc, & 
            ESMF_ERR_PASSTHRU, & 
            ESMF_CONTEXT, rcToReturn=rc)) return 

        if (present(rc)) rc = ESMF_SUCCESS 
    end subroutine ESMF_FieldRedistStoreR4