From f2832f66584c087d12709b81f273f8c8b414a48b Mon Sep 17 00:00:00 2001
From: Juan ESCOBAR <juan.escobar@aero.obs-mip.fr>
Date: Fri, 4 Nov 2022 18:53:00 +0100
Subject: [PATCH] Juan 04/11/2022:MNH/*.f90, CCE > 14.X Optimization , use acc
 present_cr & some loop rewrite

---
 src/MNH/advection_metsv.f90  | 2 +-
 src/MNH/gradient_m.f90       | 2 +-
 src/MNH/modeln.f90           | 2 +-
 src/MNH/prandtl.f90          | 2 +-
 src/MNH/rain_ice_fast_rg.f90 | 2 +-
 src/MNH/rain_ice_fast_ri.f90 | 2 +-
 src/MNH/rain_ice_slow.f90    | 2 +-
 src/MNH/resolved_cloud.f90   | 4 ++--
 src/MNH/turb.f90             | 4 ++--
 9 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90
index d54409639..408861cdd 100644
--- a/src/MNH/advection_metsv.f90
+++ b/src/MNH/advection_metsv.f90
@@ -190,7 +190,7 @@ USE MODI_ADV_BOUNDARIES
 #if defined(MNH_BITREP) || defined(MNH_BITREP_OMP)
 USE MODI_BITREP
 #endif
-#ifdef MNH_BITREP_OMP
+#ifdef MNH_COMPILER_CCE
 !$mnh_undef(LOOP)
 !$mnh_undef(OPENACC)
 #endif
diff --git a/src/MNH/gradient_m.f90 b/src/MNH/gradient_m.f90
index 9353d3f20..15ced8198 100644
--- a/src/MNH/gradient_m.f90
+++ b/src/MNH/gradient_m.f90
@@ -866,7 +866,7 @@ INTEGER  IIU,IJU,IKU,JI
 IIU=SIZE(PY,1)
 IJU=SIZE(PY,2)
 IKU=SIZE(PY,3)
-!$acc kernels present_cr(PGX_M_U)
+!$acc kernels !!!!present_cr(PGX_M_U)
 IF (.NOT. LFLAT) THEN 
 PGX_M_U(1+JPHEXT:IIU,1:IJU,1+JPVEXT_TURB:IKU-JPVEXT_TURB) = &
   (  PY(1+JPHEXT:IIU,1:IJU,1+JPVEXT_TURB:IKU-JPVEXT_TURB)-PY(JPHEXT:IIU-1,1:IJU,1+JPVEXT_TURB:IKU-JPVEXT_TURB)      &
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index 321e097e1..c2ba3b9d0 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -1676,7 +1676,7 @@ CALL GRAVITY_IMPL ( CLBCX, CLBCY, NRR, NRRL, NRRI,XTSTEP,            &
 ! compensated by the pressure gradient
 !
 IF (KTCOUNT == 1 .AND. CCONF=='START') THEN
-!$acc kernels present( ZRWS )
+!$acc kernels present( ZRWS,XRWS_PRES )
   XRWS_PRES(:,:,:) = ZRWS(:,:,:) - XRWS(:,:,:)
 !$acc end kernels
 END IF
diff --git a/src/MNH/prandtl.f90 b/src/MNH/prandtl.f90
index 892901e71..f2cc9f810 100644
--- a/src/MNH/prandtl.f90
+++ b/src/MNH/prandtl.f90
@@ -209,7 +209,7 @@ use mode_msg
 #if defined(MNH_BITREP) || defined(MNH_BITREP_OMP)
 USE MODI_BITREP
 #endif
-#ifdef MNH_BITREP_OMP
+#ifdef MNH_COMPILER_CCE
 !$mnh_undef(LOOP)
 !$mnh_undef(OPENACC)
 #endif
diff --git a/src/MNH/rain_ice_fast_rg.f90 b/src/MNH/rain_ice_fast_rg.f90
index 7087c38bd..14101b800 100644
--- a/src/MNH/rain_ice_fast_rg.f90
+++ b/src/MNH/rain_ice_fast_rg.f90
@@ -57,7 +57,7 @@ use mode_tools,                        only: Countjv_device
 #if defined(MNH_BITREP) || defined(MNH_BITREP_OMP)
 USE MODI_BITREP
 #endif
-#ifdef MNH_BITREP_OMP
+#ifdef MNH_COMPILER_CCE
 !$mnh_undef(LOOP)
 ! mnh_undef(OPENACC)
 #endif
diff --git a/src/MNH/rain_ice_fast_ri.f90 b/src/MNH/rain_ice_fast_ri.f90
index 4ed0d8605..8efd9cf0c 100644
--- a/src/MNH/rain_ice_fast_ri.f90
+++ b/src/MNH/rain_ice_fast_ri.f90
@@ -40,7 +40,7 @@ use mode_mppdb
 #if defined(MNH_BITREP) || defined(MNH_BITREP_OMP)
 USE MODI_BITREP
 #endif
-#ifdef MNH_BITREP_OMP
+#ifdef MNH_COMPILER_CCE
 !$mnh_undef(LOOP)
 !$mnh_undef(OPENACC)
 #endif
diff --git a/src/MNH/rain_ice_slow.f90 b/src/MNH/rain_ice_slow.f90
index 1332542d0..690cbda36 100644
--- a/src/MNH/rain_ice_slow.f90
+++ b/src/MNH/rain_ice_slow.f90
@@ -42,7 +42,7 @@ use mode_mppdb
 #if defined(MNH_BITREP) || defined(MNH_BITREP_OMP)
 USE MODI_BITREP
 #endif
-#ifdef MNH_BITREP_OMP
+#ifdef MNH_COMPILER_CCE
 !$mnh_undef(LOOP)
 !$mnh_undef(OPENACC)
 #endif
diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90
index 0870549d4..0d5eca9b9 100644
--- a/src/MNH/resolved_cloud.f90
+++ b/src/MNH/resolved_cloud.f90
@@ -718,7 +718,7 @@ ENDIF
 !  complete the lateral boundaries to avoid possible problems
 !
 !dir$ concurrent
-DO JI=1,JPHEXT
+DO CONCURRENT (JI=1:JPHEXT)
  PTHS(JI,:,:) = PTHS(IIB,:,:)
  PTHS(IIE+JI,:,:) = PTHS(IIE,:,:)
  PTHS(:,JI,:) = PTHS(:,IJB,:)
@@ -932,7 +932,7 @@ CALL PRINT_MSG(NVERB_FATAL,'GEN','RESOLVED_CLOUD','C2R2//KHKO not yet implemente
 #if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP)
     ZEXN(:,:,:)= (PPABST(:,:,:)/XP00)**(XRD/XCPD)
 #else
-DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU )
+DO CONCURRENT (JK=1:JKU,JJ=1:JJU,JI=1:JIU)
     ZEXN(JI,JJ,JK)= BR_POW( PPABST(JI,JJ,JK)/XP00, XRD/XCPD )
 ENDDO
 #endif
diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90
index 266e76bd7..abfde1c07 100644
--- a/src/MNH/turb.f90
+++ b/src/MNH/turb.f90
@@ -14,7 +14,7 @@ module mode_turb
 #if defined(MNH_BITREP) || defined(MNH_BITREP_OMP)
 use modi_bitrep
 #endif
-#ifdef MNH_BITREP_OMP
+#ifdef MNH_COMPILER_CCE
 !$mnh_undef(LOOP)
 !$mnh_undef(OPENACC)  
 #endif
@@ -1853,7 +1853,7 @@ CALL MNH_MEM_GET( zrvsat   , size( pexn, 1 ), size( pexn, 2 ), size( pexn, 3 ) )
 CALL MNH_MEM_GET( zdrvsatdt, size( pexn, 1 ), size( pexn, 2 ), size( pexn, 3 ) )
 #endif
 
-!$acc data present( zrvsat, zdrvsatdt )
+!$acc data present_cr( zrvsat, zdrvsatdt )
 
   ZEPS = XMV / XMD
 !
-- 
GitLab