ESMF_FieldSMMStoreR8 Subroutine

private subroutine ESMF_FieldSMMStoreR8(srcField, dstField, routehandle, factorList, factorIndexList, keywordEnforcer, ignoreUnmatchedIndices, srcTermProcessing, pipeLineDepth, 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_R8), intent(in) :: factorList(:)
integer, intent(in) :: factorIndexList(:,:)
type(ESMF_KeywordEnforcer), optional :: keywordEnforcer
logical, intent(in), optional :: ignoreUnmatchedIndices
integer, intent(inout), optional :: srcTermProcessing
integer, intent(inout), optional :: pipeLineDepth
integer, intent(out), optional :: rc

Calls

proc~~esmf_fieldsmmstorer8~~CallsGraph proc~esmf_fieldsmmstorer8 ESMF_FieldSMMStoreR8 esmf_fieldget esmf_fieldget proc~esmf_fieldsmmstorer8->esmf_fieldget interface~esmf_arraysmmstore ESMF_ArraySMMStore proc~esmf_fieldsmmstorer8->interface~esmf_arraysmmstore proc~esmf_fieldgetinit ESMF_FieldGetInit proc~esmf_fieldsmmstorer8->proc~esmf_fieldgetinit proc~esmf_imerr ESMF_IMErr proc~esmf_fieldsmmstorer8->proc~esmf_imerr proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_fieldsmmstorer8->proc~esmf_logfounderror proc~esmf_arraysmmstorefromfile ESMF_ArraySMMStoreFromFile interface~esmf_arraysmmstore->proc~esmf_arraysmmstorefromfile proc~esmf_arraysmmstorefromfiletp ESMF_ArraySMMStoreFromFileTP interface~esmf_arraysmmstore->proc~esmf_arraysmmstorefromfiletp proc~esmf_arraysmmstoreind4i4 ESMF_ArraySMMStoreInd4I4 interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind4i4 proc~esmf_arraysmmstoreind4i4tp ESMF_ArraySMMStoreInd4I4TP interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind4i4tp proc~esmf_arraysmmstoreind4i8 ESMF_ArraySMMStoreInd4I8 interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind4i8 proc~esmf_arraysmmstoreind4i8tp ESMF_ArraySMMStoreInd4I8TP interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind4i8tp proc~esmf_arraysmmstoreind4r4 ESMF_ArraySMMStoreInd4R4 interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind4r4 proc~esmf_arraysmmstoreind4r4tp ESMF_ArraySMMStoreInd4R4TP interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind4r4tp proc~esmf_arraysmmstoreind4r8 ESMF_ArraySMMStoreInd4R8 interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind4r8 proc~esmf_arraysmmstoreind4r8tp ESMF_ArraySMMStoreInd4R8TP interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind4r8tp proc~esmf_arraysmmstoreind8i4 ESMF_ArraySMMStoreInd8I4 interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind8i4 proc~esmf_arraysmmstoreind8i4tp ESMF_ArraySMMStoreInd8I4TP interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind8i4tp proc~esmf_arraysmmstoreind8i8 ESMF_ArraySMMStoreInd8I8 interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind8i8 proc~esmf_arraysmmstoreind8i8tp ESMF_ArraySMMStoreInd8I8TP interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind8i8tp proc~esmf_arraysmmstoreind8r4 ESMF_ArraySMMStoreInd8R4 interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind8r4 proc~esmf_arraysmmstoreind8r4tp ESMF_ArraySMMStoreInd8R4TP interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind8r4tp proc~esmf_arraysmmstoreind8r8 ESMF_ArraySMMStoreInd8R8 interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind8r8 proc~esmf_arraysmmstoreind8r8tp ESMF_ArraySMMStoreInd8R8TP interface~esmf_arraysmmstore->proc~esmf_arraysmmstoreind8r8tp proc~esmf_arraysmmstorenf ESMF_ArraySMMStoreNF interface~esmf_arraysmmstore->proc~esmf_arraysmmstorenf proc~esmf_arraysmmstorenftp ESMF_ArraySMMStoreNFTP interface~esmf_arraysmmstore->proc~esmf_arraysmmstorenftp 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_fieldsmmstorer8~~CalledByGraph proc~esmf_fieldsmmstorer8 ESMF_FieldSMMStoreR8 interface~esmf_fieldsmmstore ESMF_FieldSMMStore interface~esmf_fieldsmmstore->proc~esmf_fieldsmmstorer8 proc~esmf_fieldsmmstorefromfile ESMF_FieldSMMStoreFromFile interface~esmf_fieldsmmstore->proc~esmf_fieldsmmstorefromfile proc~esmf_fieldsmmstorefromfiletr ESMF_FieldSMMStoreFromFileTR interface~esmf_fieldsmmstore->proc~esmf_fieldsmmstorefromfiletr proc~esmf_fieldregridstorex ESMF_FieldRegridStoreX proc~esmf_fieldregridstorex->interface~esmf_fieldsmmstore proc~esmf_fieldsmmstorefromfile->interface~esmf_fieldsmmstore proc~esmf_fieldsmmstorefromfiletr->interface~esmf_fieldsmmstore proc~f_esmf_smmstore f_esmf_smmstore proc~f_esmf_smmstore->interface~esmf_fieldsmmstore proc~test_regrid_store_from_file test_regrid_store_from_file proc~test_regrid_store_from_file->interface~esmf_fieldsmmstore proc~test_regridmatrix test_regridMatrix proc~test_regridmatrix->interface~esmf_fieldsmmstore proc~test_regridmatrixfactor test_regridMatrixFactor proc~test_regridmatrixfactor->interface~esmf_fieldsmmstore proc~test_regridsmmarbgrid test_regridSMMArbGrid proc~test_regridsmmarbgrid->interface~esmf_fieldsmmstore proc~user_init~28 user_init proc~user_init~28->interface~esmf_fieldsmmstore proc~user_init~84 user_init proc~user_init~84->interface~esmf_fieldsmmstore program~fieldsmmex FieldSMMEx program~fieldsmmex->interface~esmf_fieldsmmstore interface~esmf_fieldregridstore ESMF_FieldRegridStore interface~esmf_fieldregridstore->proc~esmf_fieldregridstorex program~esmf_fieldsmmfromfileutest ESMF_FieldSMMFromFileUTest program~esmf_fieldsmmfromfileutest->proc~test_regrid_store_from_file

Source Code

    subroutine ESMF_FieldSMMStoreR8(srcField, dstField, & 
        routehandle, factorList, factorIndexList, keywordEnforcer, &
        ignoreUnmatchedIndices, srcTermProcessing, &
        pipeLineDepth, rc)

        ! input arguments 
        type(ESMF_Field),       intent(in)              :: srcField  
        type(ESMF_Field),       intent(inout)           :: dstField  
        type(ESMF_RouteHandle), intent(inout)           :: routehandle
        real(ESMF_KIND_R8),     intent(in)              :: factorList(:)
        integer,                intent(in)              :: factorIndexList(:,:) 
type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below
        logical,                intent(in),    optional :: ignoreUnmatchedIndices
        integer,                intent(inout), optional :: srcTermProcessing
        integer,                intent(inout), optional :: pipeLineDepth
        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 ArraySMM 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 sparse matrix multiplication through array 
        ! For performance consideration: 
        ! Rely on ArraySMM to perform sanity checking of the other parameters 
        call ESMF_ArraySMMStore(srcArray=srcArray, dstArray=dstArray, &
          routehandle=routehandle, factorList=factorList, & 
          factorIndexList=factorIndexList, &
          ignoreUnmatchedIndices=ignoreUnmatchedIndices, &
          srcTermProcessing=srcTermProcessing, pipelineDepth=pipelineDepth, &
          rc=localrc)
        if (ESMF_LogFoundError(localrc, & 
            ESMF_ERR_PASSTHRU, & 
            ESMF_CONTEXT, rcToReturn=rc)) return 

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