From f7737a8d85fbc6c90eb36f5fa3aea867fee9132e Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Mon, 24 Apr 2023 14:08:59 +0200
Subject: [PATCH] Juan (+Philippe) 24/04/2023: OpenACC: qlap: restore
 present_cr directives necessary for good performance on AMD GPUs (previously
 lost)

---
 src/MNH/qlap.f90 | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/MNH/qlap.f90 b/src/MNH/qlap.f90
index 5e6d15843..1dad26367 100644
--- a/src/MNH/qlap.f90
+++ b/src/MNH/qlap.f90
@@ -242,7 +242,7 @@ CALL GX_M_U_DEVICE( 1, IKU, 1, PY(:,:,:), PDXX(:,:,:), PDZZ(:,:,:), PDZX(:,:,:),
 CALL MPPDB_CHECK3D(ZU,'QLAP::ZU',PRECISION)
 !
 IF ( GWEST ) THEN
-   !$acc kernels async
+   !$acc kernels async present_cr(ZU)
    DO JK=2,IKU-1
       DO JJ=1,IJU
          ZU(IIB,JJ,JK)=  (PY(IIB,JJ,JK) - PY(IIB-1,JJ,JK) - 0.5 * (                  &
@@ -255,7 +255,7 @@ IF ( GWEST ) THEN
 END IF
 !
 IF ( GEAST ) THEN
-   !$acc kernels async
+   !$acc kernels async present_cr(ZU)
    DO JK=2,IKU-1
       DO JJ=1,IJU
          ZU(IIE+1,JJ,JK)=  (PY(IIE+1,JJ,JK) - PY(IIE+1-1,JJ,JK) - 0.5 * (                    &
@@ -281,7 +281,7 @@ IF(.NOT. L2D) THEN
 !  CALL MPPDB_CHECK3D(ZV,'QLAP::ZV',PRECISION)
 !
   IF ( GSOUTH ) THEN
-     !$acc kernels async
+     !$acc kernels async present_cr(ZV)
      DO JK=2,IKU-1
         DO JI=1,IIU
            ZV(JI,IJB,JK)=   (PY(JI,IJB,JK) - PY(JI,IJB-1,JK) - 0.5 * (                  &
@@ -295,7 +295,7 @@ IF(.NOT. L2D) THEN
 
   
   IF ( GNORTH ) THEN
-     !$acc kernels async
+     !$acc kernels async present_cr(ZV)
      DO JK=2,IKU-1
         DO JI=1,IIU
            ZV(JI,IJE+1,JK)=    (PY(JI,IJE+1,JK) - PY(JI,IJE+1-1,JK) - 0.5 * ( &
@@ -320,7 +320,7 @@ IF ( CEQNSYS == 'DUR' .OR. CEQNSYS == 'MAE' ) THEN
 #ifndef MNH_OPENACC
 ZU(:,:,:) = MXM( PRHODJ(:,:,:) * XCPD * PTHETAV(:,:,:) ) * ZU(:,:,:)
 #else
-   !$acc kernels
+   !$acc kernels present_cr(ZRHODJ)
    ZRHODJ(:,:,:) = PRHODJ(:,:,:) * XCPD * PTHETAV(:,:,:)
    !$acc end kernels
    CALL MXM_DEVICE( ZRHODJ(:,:,:), ZMXM(:,:,:) )
-- 
GitLab