From e25151c444611da380afd95dc1fbbb9b52e9c028 Mon Sep 17 00:00:00 2001 From: Gerhard Theurich Date: Wed, 25 Sep 2024 12:20:47 -0600 Subject: [PATCH] Ensure the returned 'vm' object has init code set to indicate it is valid. --- src/Infrastructure/Array/interface/ESMF_ArrayGet.cppF90 | 4 ++++ src/Infrastructure/ArrayBundle/interface/ESMF_ArrayBundle.F90 | 4 ++++ src/Infrastructure/Route/interface/ESMF_RHandle.F90 | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/src/Infrastructure/Array/interface/ESMF_ArrayGet.cppF90 b/src/Infrastructure/Array/interface/ESMF_ArrayGet.cppF90 index 25c2c19faf..208c2d866f 100644 --- a/src/Infrastructure/Array/interface/ESMF_ArrayGet.cppF90 +++ b/src/Infrastructure/Array/interface/ESMF_ArrayGet.cppF90 @@ -583,6 +583,10 @@ type(ESMF_KeywordEnforcer), optional:: keywordEnforcer ! must use keywords below call c_ESMC_GetVM(array, vm, localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return + ! Set init code + call ESMF_VMSetInitCreated(vm, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return endif ! Obtain DistGrid information diff --git a/src/Infrastructure/ArrayBundle/interface/ESMF_ArrayBundle.F90 b/src/Infrastructure/ArrayBundle/interface/ESMF_ArrayBundle.F90 index c6a4594ee9..0f1eec696b 100644 --- a/src/Infrastructure/ArrayBundle/interface/ESMF_ArrayBundle.F90 +++ b/src/Infrastructure/ArrayBundle/interface/ESMF_ArrayBundle.F90 @@ -1026,6 +1026,10 @@ subroutine ESMF_ArrayBundleGetListAll(arraybundle, keywordEnforcer, & call c_ESMC_GetVM(arraybundle, vm, localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return + ! Set init code on the VM object before returning + call ESMF_VMSetInitCreated(vm, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return endif ! Return successfully diff --git a/src/Infrastructure/Route/interface/ESMF_RHandle.F90 b/src/Infrastructure/Route/interface/ESMF_RHandle.F90 index b0d57b3a6f..6ebe42dd9e 100644 --- a/src/Infrastructure/Route/interface/ESMF_RHandle.F90 +++ b/src/Infrastructure/Route/interface/ESMF_RHandle.F90 @@ -802,6 +802,10 @@ subroutine ESMF_RouteHandleGetP(routehandle, keywordEnforcer, name, vm, rc) call c_ESMC_GetVM(routehandle, vm, localrc) if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & ESMF_CONTEXT, rcToReturn=rc)) return + ! Set init code on the VM object before returning + call ESMF_VMSetInitCreated(vm, rc=localrc) + if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU, & + ESMF_CONTEXT, rcToReturn=rc)) return endif ! Return successfully