From 5ade1fcb4a47df9fe45366a481e28a61c5f3af46 Mon Sep 17 00:00:00 2001
From: ESCOBAR Juan <escj@nuwa>
Date: Mon, 7 Mar 2022 10:16:13 +0100
Subject: [PATCH] Juan 03/03/2022:ZSOLVER/dotprod.f90, for no MANAGED version ,
 update variable before SUM_DD_R2_ll

---
 src/ZSOLVER/dotprod.f90 | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/src/ZSOLVER/dotprod.f90 b/src/ZSOLVER/dotprod.f90
index ec920cc51..fefef61ba 100644
--- a/src/ZSOLVER/dotprod.f90
+++ b/src/ZSOLVER/dotprod.f90
@@ -88,6 +88,11 @@ USE MODE_ll
 !JUAN
 USE MODE_REPRO_SUM
 !JUAN
+#ifdef MNH_OPENACC
+USE MODE_MNH_ZWORK,      ONLY: MNH_MEM_GET, MNH_MEM_POSITION_PIN, MNH_MEM_RELEASE
+#endif
+!
+USE MODE_MPPDB
 !
 IMPLICIT NONE
 !
@@ -118,13 +123,18 @@ INTEGER :: ILBXB,ILBYB,ILBXE,ILBYE          ! loop indices depending on the
 !
 INTEGER  :: IINFO_ll
 !JUAN16
-REAL, ALLOCATABLE, DIMENSION(:,:)     :: ZDOTPROD
+REAL, POINTER, CONTIGUOUS, DIMENSION(:,:)     :: ZDOTPROD
 !JUAN16
 !
 !-------------------------------------------------------------------------------
 !
 !*       1.    COMPUTE LOOP BOUNDS
-!              -------------------
+!-------------------
+if ( mppdb_initialized ) then
+   !Check all in arrays
+   call Mppdb_check( PA,       "Dotprod beg:PA"       )
+   call Mppdb_check( PB,       "Dotprod beg:PB"       )   
+end if
 !
 CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
 !
@@ -167,8 +177,13 @@ ENDIF
 !              -----------------------
 !
 !JUAN16
+#ifndef MNH_OPENACC
 ALLOCATE(ZDOTPROD(ILBXB:ILBXE,ILBYB:ILBYE))
-!$acc kernels
+#else
+CALL MNH_MEM_POSITION_PIN()
+CALL MNH_MEM_GET(ZDOTPROD, ILBXB,ILBXE ,ILBYB,ILBYE )
+#endif
+!$acc kernels present(ZDOTPROD)
 ZDOTPROD    = 0.
 !$acc loop seq
 DO JK = IKB-1,IKE+1
@@ -180,8 +195,14 @@ DO JK = IKB-1,IKE+1
    END DO
 END DO
 !$acc end kernels
+!$acc update host(ZDOTPROD)
 PDOTPROD = SUM_DD_R2_ll(ZDOTPROD)
 !JUAN16
+#ifndef MNH_OPENACC
+DEALLOCATE(ZDOTPROD)
+#else
+CALL MNH_MEM_RELEASE()
+#endif
 !
 !-------------------------------------------------------------------------------
 !
-- 
GitLab