From c33ca780631368c7fe17288cd9cfd773c544be82 Mon Sep 17 00:00:00 2001
From: Juan ESCOBAR <juan.escobar@aero.obs-mip.fr>
Date: Thu, 15 Jun 2023 19:07:31 +0200
Subject: [PATCH] Juan 15/06/2023:ZSOLVER/gdiv.f90,pressurez.f90, For
 gfortran+openacc ,replace DO CONCURRENT -> mnh_do_concurrent

---
 src/ZSOLVER/gdiv.f90      | 20 +++++++++---------
 src/ZSOLVER/pressurez.f90 | 44 +++++++++++----------------------------
 2 files changed, 22 insertions(+), 42 deletions(-)

diff --git a/src/ZSOLVER/gdiv.f90 b/src/ZSOLVER/gdiv.f90
index 7ebb32eb6..09c3bbd31 100644
--- a/src/ZSOLVER/gdiv.f90
+++ b/src/ZSOLVER/gdiv.f90
@@ -199,12 +199,12 @@ GNORTH = ( .NOT. L2D .AND. HLBCY(2) /= 'CYCL' .AND. LNORTH_ll() )
 
 !
 !$acc kernels
- DO CONCURRENT ( JI=1:IIU,JJ=1:IJU )
+ !$mnh_do_concurrent ( JI=1:IIU,JJ=1:IJU )
     PU(JI,JJ,IKB-1)=PU(JI,JJ,IKB)
     PU(JI,JJ,IKE+1)=PU(JI,JJ,IKE)
     PV(JI,JJ,IKB-1)=PV(JI,JJ,IKB)
     PV(JI,JJ,IKE+1)=PV(JI,JJ,IKE)
- END DO
+ !$mnh_end_do()
 !$acc end kernels
 ! 
 !
@@ -226,28 +226,28 @@ CALL CONTRAV_DEVICE(HLBCX,HLBCY,PU,PV,PW,PDXX,PDYY,PDZZ,PDZX,PDZY,ZUC,ZVC,ZWC,4,
 #ifdef MNH_COMPILER_NVHPC
 !$acc loop independent collapse(3)
 #endif
-DO CONCURRENT (JI=1:IIU,JJ=1:IJU,JK=1:IKU)
+!$mnh_do_concurrent (JI=1:IIU,JJ=1:IJU,JK=1:IKU)
    PGDIV(JI,JJ,JK)=0. !usefull for the four corners and halo zones
-ENDDO
+!$mnh_end_do()
 !
 #ifdef MNH_COMPILER_NVHPC
 !$acc loop independent collapse(3) 
 #endif
-DO CONCURRENT (JI=IIB:IIE,JJ=1:IJU,JK=1:IKU)
+!$mnh_do_concurrent (JI=IIB:IIE,JJ=1:IJU,JK=1:IKU)
    Z1(JI,JJ,JK)=ZUC(JI+IIB+1-(IIB) ,JJ,JK)-ZUC(JI,JJ,JK)
-ENDDO
+!$mnh_end_do()
 #ifdef MNH_COMPILER_NVHPC
 !$acc loop independent collapse(3) 
 #endif
-DO CONCURRENT (JI=1:IIU,JJ=IJB:IJE,JK=1:IKU)
+!$mnh_do_concurrent (JI=1:IIU,JJ=IJB:IJE,JK=1:IKU)
    Z2(JI,JJ,JK)=ZVC(JI,JJ+IJB+1-(IJB) ,JK)-ZVC(JI,JJ,JK)
-ENDDO
+!$mnh_end_do()
 #ifdef MNH_COMPILER_NVHPC
 !$acc loop independent collapse(3) 
 #endif
-DO CONCURRENT (JI=1:IIU,JJ=1:IJU,JK=IKB:IKE)
+!$mnh_do_concurrent (JI=1:IIU,JJ=1:IJU,JK=IKB:IKE)
    Z3(JI,JJ,JK)=ZWC(JI,JJ,JK+IKB+1-(IKB) )-ZWC(JI,JJ,JK)
-ENDDO
+!$mnh_end_do()
 !
 PGDIV(IIB:IIE,IJB:IJE,IKB:IKE)= Z1(IIB:IIE,IJB:IJE,IKB:IKE) +  &
                                 Z2(IIB:IIE,IJB:IJE,IKB:IKE) +  &
diff --git a/src/ZSOLVER/pressurez.f90 b/src/ZSOLVER/pressurez.f90
index b91bb89c2..0830b3bfb 100644
--- a/src/ZSOLVER/pressurez.f90
+++ b/src/ZSOLVER/pressurez.f90
@@ -664,13 +664,13 @@ IF(CEQNSYS=='MAE' .OR. CEQNSYS=='DUR') THEN
 #endif
 #else
   !$acc kernels
-  DO CONCURRENT ( JI=1:IIU,JJ=1:IJU,JK=1:IKU )
+  !$mnh_do_concurrent ( JI=1:IIU,JJ=1:IJU,JK=1:IKU )
 #if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP)
     ZPHIT(JI,JJ,JK)=(PPABST(JI,JJ,JK)/XP00)**(XRD/XCPD)-PEXNREF(JI,JJ,JK)
 #else
     ZPHIT(JI,JJ,JK)=BR_POW((PPABST(JI,JJ,JK)/XP00),(XRD/XCPD))-PEXNREF(JI,JJ,JK)
 #endif
-  END DO
+  !$mnh_end_do()
   !$acc end kernels
 #endif  
   !
@@ -815,30 +815,20 @@ IF ( GWEST ) THEN
 !!!!!!!!!!!!!!!!  FUJI  compiler directive !!!!!!!!!!
 !!!!!!!!!!!!!!!!  FUJI  compiler directive !!!!!!!!!!
    !$acc kernels async
-#ifdef MNH_COMPILER_NVHPC
-   !$acc loop independent collapse(2)
-#else
-   !$acc loop independent
-#endif
-   DO CONCURRENT (JJ=1:IJU , JK=2:IKU-1)
+   !$mnh_do_concurrent (JJ=1:IJU , JK=2:IKU-1)
       ZDV_SOURCE(IIB,JJ,JK)=                                                    &
        (ZPHIT(IIB,JJ,JK) - ZPHIT(IIB-1,JJ,JK) - 0.5 * (                              &
         PDZX(IIB,JJ,JK)   * (ZPHIT(IIB,JJ,JK)-ZPHIT(IIB,JJ,JK-1)) / PDZZ(IIB,JJ,JK)      &
        +PDZX(IIB,JJ,JK+1) * (ZPHIT(IIB,JJ,JK+1)-ZPHIT(IIB,JJ,JK)) / PDZZ(IIB,JJ,JK+1)    &
                                               )                              &
        ) / PDXX(IIB,JJ,JK)
-   END DO
+   !$mnh_end_do()
    !$acc end kernels
 ENDIF
   !
 IF( GEAST ) THEN
    !$acc kernels async
-#ifdef MNH_COMPILER_NVHPC
-   !$acc loop independent collapse(2)
-#else
-   !$acc loop independent
-#endif
-   DO CONCURRENT (JJ=1:IJU , JK=2:IKU-1)
+   !$mnh_do_concurrent (JJ=1:IJU , JK=2:IKU-1)
       ZDV_SOURCE(IIE+1,JJ,JK)=                                                   &
         (ZPHIT(IIE+1,JJ,JK) - ZPHIT(IIE+1-1,JJ,JK) - 0.5 * (                        &
          PDZX(IIE+1,JJ,JK)   * (ZPHIT(IIE+1-1,JJ,JK)-ZPHIT(IIE+1-1,JJ,JK-1))           &
@@ -847,7 +837,7 @@ IF( GEAST ) THEN
                           / PDZZ(IIE+1-1,JJ,JK+1)                                &
                                                      )                        &
         ) / PDXX(IIE+1,JJ,JK)
-   END DO
+   !$mnh_end_do()
    !$acc end kernels
 END IF
 !$acc wait
@@ -890,30 +880,20 @@ IF(.NOT. L2D) THEN
 !!!!!!!!!!!!!!!!  FUJI  compiler directive !!!!!!!!!!
 !!!!!!!!!!!!!!!!  FUJI  compiler directive !!!!!!!!!!
       !$acc kernels async
-#ifdef MNH_COMPILER_NVHPC
-      !$acc loop independent collapse(2)
-#else
-      !$acc loop independent
-#endif
-      DO CONCURRENT (JI=1:IIU , JK=2:IKU-1)
+      !$mnh_do_concurrent (JI=1:IIU , JK=2:IKU-1)
          ZDV_SOURCE(JI,IJB,JK)=                                                  &
               (ZPHIT(JI,IJB,JK) - ZPHIT(JI,IJB-1,JK) - 0.5 * (                            &
               PDZY(JI,IJB,JK)   * (ZPHIT(JI,IJB,JK)-ZPHIT(JI,IJB,JK-1)) / PDZZ(JI,IJB,JK)    &
               +PDZY(JI,IJB,JK+1) * (ZPHIT(JI,IJB,JK+1)-ZPHIT(JI,IJB,JK)) / PDZZ(JI,IJB,JK+1)  &
               )                            &
               ) / PDYY(JI,IJB,JK)
-      END DO
+      !$mnh_end_do()
       !$acc end kernels
    END IF
    !
    IF ( GNORTH ) THEN
       !$acc kernels async
-#ifdef MNH_COMPILER_NVHPC
-      !$acc loop independent collapse(2)
-#else
-      !$acc loop independent
-#endif
-      DO CONCURRENT (JI=1:IIU , JK=2:IKU-1) 
+      !$mnh_do_concurrent (JI=1:IIU , JK=2:IKU-1) 
          ZDV_SOURCE(JI,IJE+1,JK)=                                                &
               (ZPHIT(JI,IJE+1,JK) - ZPHIT(JI,IJE+1-1,JK) - 0.5 * (                      &
               PDZY(JI,IJE+1,JK)   * (ZPHIT(JI,IJE+1-1,JK)-ZPHIT(JI,IJE+1-1,JK-1))         &
@@ -922,7 +902,7 @@ IF(.NOT. L2D) THEN
               / PDZZ(JI,IJE+1-1,JK+1)                              &
               )                      &
               ) / PDYY(JI,IJE+1,JK)
-      END DO
+      !$mnh_end_do()
       !$acc end kernels
   END IF
 !$acc wait  
@@ -1053,9 +1033,9 @@ IF ((ZMAX_ll > 1.E-12) .AND. KTCOUNT >0 ) THEN
 #if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP)
      PPABST(:,:,:)=XP00*(ZPHIT(:,:,:)+PEXNREF(:,:,:))**(XCPD/XRD)
 #else
-     DO CONCURRENT(JI=1:IIU,JJ=1:IJU,JK=1:IKU)
+     !$mnh_do_concurrent(JI=1:IIU,JJ=1:IJU,JK=1:IKU)
         PPABST(JI,JJ,JK)=XP00*BR_POW((ZPHIT(JI,JJ,JK)+PEXNREF(JI,JJ,JK)),(XCPD/XRD))
-     END DO
+     !$mnh_end_do()
 #endif
      !$acc end kernels
   ELSEIF(CEQNSYS=='LHE') THEN
-- 
GitLab