From ac1c332289268726d5a68fa357276763785004f5 Mon Sep 17 00:00:00 2001
From: Juan ESCOBAR <juan.escobar@aero.obs-mip.fr>
Date: Fri, 16 Jun 2023 17:50:29 +0200
Subject: [PATCH] Juan 16/06/2023:MNH/* , For Nvhpc , remove duplicate "!$acc
 loop" introduced by use of mnh_do_conncurrent

---
 src/MNH/advection_metsv.f90      |  5 ----
 src/MNH/advection_uvw.f90        |  4 ---
 src/MNH/condensation.f90         |  1 -
 src/MNH/gradient_m.f90           |  1 -
 src/MNH/gradient_u.f90           | 15 ----------
 src/MNH/gradient_v.f90           | 15 ----------
 src/MNH/rain_ice_red.f90         |  3 --
 src/MNH/rain_ice_slow.f90        |  4 ---
 src/MNH/rotate_wind.f90          |  3 --
 src/MNH/sources_neg_correct.f90  |  3 --
 src/MNH/tke_eps_sources.f90      | 13 --------
 src/MNH/tridiag_thermo.f90       |  5 ++--
 src/MNH/tridiag_tke.f90          |  2 +-
 src/MNH/turb.f90                 | 13 ++------
 src/MNH/turb_hor_thermo_flux.f90 | 23 --------------
 src/MNH/turb_hor_tke.f90         | 39 ------------------------
 src/MNH/turb_hor_uw.f90          | 33 ---------------------
 src/MNH/turb_hor_vw.f90          | 33 ---------------------
 src/MNH/turb_ver.f90             |  3 --
 src/MNH/turb_ver_dyn_flux.f90    | 30 -------------------
 src/MNH/turb_ver_thermo_corr.f90 | 51 --------------------------------
 src/MNH/turb_ver_thermo_flux.f90 | 27 -----------------
 22 files changed, 5 insertions(+), 321 deletions(-)

diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90
index 90ecf0437..22bf95c7b 100644
--- a/src/MNH/advection_metsv.f90
+++ b/src/MNH/advection_metsv.f90
@@ -572,14 +572,12 @@ IF (.NOT. L1D) THEN
 #else
   IF (.NOT. L2D) THEN
      !$acc kernels
-     !$acc_nv loop independent collapse(3)
      !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU )
         ZCFL(JI,JJ,JK)  = SQRT(BR_P2(ZCFLU(JI,JJ,JK))+BR_P2(ZCFLV(JI,JJ,JK))+BR_P2(ZCFLW(JI,JJ,JK)))
      !$mnh_end_do()
      !$acc end kernels
   ELSE
      !$acc kernels
-     !$acc_nv loop independent collapse(3)
      !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU )
         ZCFL(JI,JJ,JK)  = SQRT(BR_P2(ZCFLU(JI,JJ,JK))+BR_P2(ZCFLW(JI,JJ,JK)))
      !$mnh_end_do()
@@ -593,7 +591,6 @@ ELSE
 #if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP)
    ZCFL(:,:,:) = SQRT(ZCFLW(:,:,:)**2)
 #else
-   !$acc_nv loop independent collapse(3)
    !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU )
       ZCFL(JI,JJ,JK) = SQRT(BR_P2(ZCFLW(JI,JJ,JK)))
    !$mnh_end_do()
@@ -927,14 +924,12 @@ DO JSPL=1,KSPLIT
       !$acc end kernels
    END IF
    !$acc kernels
-   !$acc_nv loop independent collapse(4)
    !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU, JR=1:KRR )
       ZR(JI,JJ,JK,JR) = ZR(JI,JJ,JK,JR) + ( ZRRS_PPM(JI,JJ,JK,JR) + ZRRS_OTHER(JI,JJ,JK,JR) + PRRS_CLD(JI,JJ,JK,JR) ) &
            * ZTSTEP_PPM / PRHODJ(JI,JJ,JK)
    !$mnh_end_do() !CONCURRENT 
    !$acc loop seq
    DO JSV = 1, KSV
-      !$acc_nv loop independent collapse(3)
       !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
          ZSV(JI,JJ,JK,JSV) = ZSV(JI,JJ,JK,JSV) + ( ZRSVS_PPM(JI,JJ,JK,JSV) + ZRSVS_OTHER(JI,JJ,JK,JSV) +  &
               PRSVS_CLD(JI,JJ,JK,JSV) ) * ZTSTEP_PPM / PRHODJ(JI,JJ,JK)
diff --git a/src/MNH/advection_uvw.f90 b/src/MNH/advection_uvw.f90
index ef92cc975..f3ecc5506 100644
--- a/src/MNH/advection_uvw.f90
+++ b/src/MNH/advection_uvw.f90
@@ -435,9 +435,6 @@ DO JSPL=1,ISPLIT
 ! Tendencies on wind
 !$acc update device(ZRUS_ADV,ZRVS_ADV,ZRWS_ADV)
 !$acc kernels
-#ifdef MNH_COMPILER_NVHPC  
-!$acc loop independent collapse(3)
-#endif     
 !$mnh_do_concurrent (JI=1:IIU , JJ=1:IJU , JK=1:IKU )
   PRUS(JI,JJ,JK) = PRUS(JI,JJ,JK) + ZRUS_ADV(JI,JJ,JK) / ISPLIT
   PRVS(JI,JJ,JK) = PRVS(JI,JJ,JK) + ZRVS_ADV(JI,JJ,JK) / ISPLIT
@@ -451,7 +448,6 @@ DO JSPL=1,ISPLIT
 ! Guesses for next time splitting loop
 !
 !
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent (JI=1:IIU , JJ=1:IJU , JK=1:IKU )
   ZU(JI,JJ,JK) = ZU(JI,JJ,JK) + ZTSTEP / ZMXM_RHODJ(JI,JJ,JK) *  &
               (ZRUS_OTHER(JI,JJ,JK) + ZRUS_ADV(JI,JJ,JK))
diff --git a/src/MNH/condensation.f90 b/src/MNH/condensation.f90
index 5dc18b098..dfd3f5a5d 100644
--- a/src/MNH/condensation.f90
+++ b/src/MNH/condensation.f90
@@ -502,7 +502,6 @@ IF (OUSERI) CALL COMPUTE_FRAC_ICE3D_DEVICE(HFRAC_ICE, ZFRAC, PT)
 #endif
 !
 !$acc kernels
-!$acc_nv loop independent
 !$mnh_do_concurrent ( JK=IKTB:IKTE )
   JKPK(JK)=MAX(MIN(JK+KKL,IKTE),IKTB)
   JKMK(JK)=MAX(MIN(JK-KKL,IKTE),IKTB)
diff --git a/src/MNH/gradient_m.f90 b/src/MNH/gradient_m.f90
index fa869751c..2731cbd34 100644
--- a/src/MNH/gradient_m.f90
+++ b/src/MNH/gradient_m.f90
@@ -1089,7 +1089,6 @@ ELSE
                                / PDYY(:,1+1:IJU,:)
 ENDIF  
 DO JJ=1,JPHEXT
-  !$acc_nv loop independent collapse(2) 
   !$mnh_do_concurrent ( JI=1:IIU , JK=1:IKU ) 
      PGY_M_V(JI,JJ,JK)=PGY_M_V(JI,IJU-2*JPHEXT+JJ,JK)
   !$mnh_end_do()
diff --git a/src/MNH/gradient_u.f90 b/src/MNH/gradient_u.f90
index 73ddd61e0..797772f0c 100644
--- a/src/MNH/gradient_u.f90
+++ b/src/MNH/gradient_u.f90
@@ -239,18 +239,12 @@ IF (.NOT. LFLAT) THEN
   CALL DXF_DEVICE(PA,ZTMP1_DEVICE)
   CALL DZM_DEVICE( PA, ZTMP2_DEVICE )
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
    !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP3_DEVICE(JI,JJ,JK) = PDZX(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT
   !$acc end kernels
   CALL MXF_DEVICE(ZTMP3_DEVICE,ZTMP2_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP3_DEVICE(JI,JJ,JK) = ZTMP2_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT
@@ -435,9 +429,6 @@ IF (.NOT. LFLAT) THEN
   CALL DZM_DEVICE( PA, ZTMP1_DEVICE )
   CALL MXM_DEVICE(PDZZ,ZTMP2_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP3_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK)/ZTMP2_DEVICE(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT    
@@ -445,9 +436,6 @@ IF (.NOT. LFLAT) THEN
   CALL MYM_DEVICE(ZTMP3_DEVICE,ZTMP1_DEVICE)
   CALL MXM_DEVICE(PDZY,ZTMP2_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP3_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
@@ -456,9 +444,6 @@ IF (.NOT. LFLAT) THEN
   CALL DYM_DEVICE(PA,ZTMP1_DEVICE)
   CALL MXM_DEVICE(PDYY,ZTMP3_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      PGY_U_UV_DEVICE(JI,JJ,JK)=  ( ZTMP1_DEVICE(JI,JJ,JK) - ZTMP2_DEVICE(JI,JJ,JK) ) / ZTMP3_DEVICE(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
diff --git a/src/MNH/gradient_v.f90 b/src/MNH/gradient_v.f90
index 4dd8e9585..1cf7d5438 100644
--- a/src/MNH/gradient_v.f90
+++ b/src/MNH/gradient_v.f90
@@ -241,18 +241,12 @@ IF (.NOT. LFLAT) THEN
   CALL DYF_DEVICE(PA,ZTMP1_DEVICE)
   CALL DZM_DEVICE( PA, ZTMP2_DEVICE )
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP3_DEVICE(JI,JJ,JK) = PDZY(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT
   !$acc end kernels
   CALL MYF_DEVICE(ZTMP3_DEVICE,ZTMP2_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP3_DEVICE(JI,JJ,JK) = ZTMP2_DEVICE(JI,JJ,JK)/PDZZ(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT
@@ -436,9 +430,6 @@ IF (.NOT. LFLAT) THEN
   CALL MYM_DEVICE(PDZZ,ZTMP2_DEVICE)
   CALL DZM_DEVICE( PA, ZTMP3_DEVICE )
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP4_DEVICE(JI,JJ,JK) = ZTMP3_DEVICE(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
@@ -446,9 +437,6 @@ IF (.NOT. LFLAT) THEN
   CALL MXM_DEVICE(ZTMP4_DEVICE,ZTMP2_DEVICE)
   CALL MYM_DEVICE(PDZX,ZTMP3_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP4_DEVICE(JI,JJ,JK) = ZTMP2_DEVICE(JI,JJ,JK) *ZTMP3_DEVICE(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
@@ -456,9 +444,6 @@ IF (.NOT. LFLAT) THEN
   CALL MZF_DEVICE( ZTMP4_DEVICE, ZTMP2_DEVICE )
   CALL MYM_DEVICE(PDXX,ZTMP3_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      PGX_V_UV_DEVICE(JI,JJ,JK)= ( ZTMP1_DEVICE(JI,JJ,JK) - ZTMP2_DEVICE(JI,JJ,JK) ) / ZTMP3_DEVICE(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
diff --git a/src/MNH/rain_ice_red.f90 b/src/MNH/rain_ice_red.f90
index 937ac58e8..ca7de4e74 100644
--- a/src/MNH/rain_ice_red.f90
+++ b/src/MNH/rain_ice_red.f90
@@ -1405,7 +1405,6 @@ IF(HSUBG_AUCV_RC=='PDF ' .AND. CSUBG_PR_PDF=='SIGM') GTEST=.true.
 #endif
 
 IF(IMICRO>0) THEN
-!acc loop independent
   !$mnh_do_concurrent(JL=1:IMICRO)
     ZRVT(JL) = PRVT(I1(JL),I2(JL),I3(JL))
     ZRCT(JL) = PRCT(I1(JL),I2(JL),I3(JL))
@@ -2046,7 +2045,6 @@ end if
 IF(GEXT_TEND) THEN
 !$acc kernels
   !Z..T variables contain the exeternal tendency, we substract it
-!$acc loop independent
   !$mnh_do_concurrent ( JL = 1 : IMICRO )
     ZRVT(JL) = ZRVT(JL) - ZEXT_RV(JL) * PTSTEP
     ZRCT(JL) = ZRCT(JL) - ZEXT_RC(JL) * PTSTEP
@@ -2059,7 +2057,6 @@ IF(GEXT_TEND) THEN
 !$acc end kernels
   IF (KRR==7) THEN
 !$acc kernels
-!$acc loop independent
     !$mnh_do_concurrent ( JL = 1 : IMICRO )
       ZRHT(JL) = ZRHT(JL) - ZEXT_RH(JL) * PTSTEP
     !$mnh_end_do()
diff --git a/src/MNH/rain_ice_slow.f90 b/src/MNH/rain_ice_slow.f90
index ff37338cc..887c8d370 100644
--- a/src/MNH/rain_ice_slow.f90
+++ b/src/MNH/rain_ice_slow.f90
@@ -260,7 +260,6 @@ CALL MNH_MEM_GET( zz_diff,  SIZE(PLSFACT) )
   !$mnh_end_do() ! CONCURRENT
   ZZW(:) = 0.0
   GWORK(:) = (PRST(:)>XRTMIN(5)) .AND. (PRSS(:)>0.0)
- !$acc loop independent
  !$mnh_do_concurrent ( JL=1:JLU )
     IF ( GWORK(JL) ) THEN
        ZZW(JL) = ( PSSI(JL)/(PRHODREF(JL)*PAI(JL)) ) *                               &
@@ -290,7 +289,6 @@ CALL MNH_MEM_GET( zz_diff,  SIZE(PLSFACT) )
 !$acc kernels
   ZZW(:) = 0.0
   GWORK(:) = PRIT(:)>XRTMIN(4) .AND. PRST(:)>XRTMIN(5) .AND. PRIS(:)>0.0
-  !$acc loop independent
   !$mnh_do_concurrent ( JL=1:JLU )
     IF ( GWORK(JL) ) THEN
 #if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP)  
@@ -353,7 +351,6 @@ CALL MNH_MEM_GET( zz_diff,  SIZE(PLSFACT) )
 !
 !$acc kernels
   GWORK(:) = PRGT(:)>0.0
-  !$acc loop independent
   !$mnh_do_concurrent ( JL=1:JLU )
     IF ( GWORK(JL) ) THEN
 #if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP)  
@@ -367,7 +364,6 @@ CALL MNH_MEM_GET( zz_diff,  SIZE(PLSFACT) )
   !$mnh_end_do() ! CONCURRENT
   ZZW(:) = 0.0
   GWORK(:) = PRGT(:)>XRTMIN(6) .AND. PRGS(:)>0.0
-  !$acc loop independent
   !$mnh_do_concurrent ( JL=1:JLU )
     IF ( GWORK(JL) ) THEN
       ZZW(JL) = ( PSSI(JL)/(PRHODREF(JL)*PAI(JL)) ) *                               &
diff --git a/src/MNH/rotate_wind.f90 b/src/MNH/rotate_wind.f90
index f2b752afb..60a91dc4c 100644
--- a/src/MNH/rotate_wind.f90
+++ b/src/MNH/rotate_wind.f90
@@ -240,7 +240,6 @@ JLOC(:,:)=NINT(SIGN(1.,-PSINSLOPE(:,:)))
 !
 ! interpolation in x direction
 !
-!$acc_nv loop independent collapse(2)
 !$mnh_do_concurrent(JI=IIB:IIE,JJ=1:IJU)
     ZCOEFF(JI,JJ) =                                                  &
       (0.5*PDXX(JI,JJ,IKB) + 0.5*PDZZ(JI,JJ,IKB)*PDIRCOSXW(JI,JJ) )  & 
@@ -260,7 +259,6 @@ JLOC(:,:)=NINT(SIGN(1.,-PSINSLOPE(:,:)))
 !
 ! interpolation in y direction
 !
-!$acc_nv loop independent collapse(2)
 !$mnh_do_concurrent(JI=IIB:IIE,JJ=IJB:IJE)
     ZCOEFF(JI,JJ) =                                                     &
       (0.5*PDYY(JI,JJ,IKB) + 0.5*PDZZ(JI,JJ,IKB)*PDIRCOSYW(JI,JJ) )     & 
@@ -280,7 +278,6 @@ JLOC(:,:)=NINT(SIGN(1.,-PSINSLOPE(:,:)))
 !             ---------------
 !
 !
-!$acc_nv loop independent collapse(2)
 !$mnh_do_concurrent(JI=IIB:IIE,JJ=IJB:IJE)
     PUSLOPE(JI,JJ) = PCOSSLOPE(JI,JJ) * PDIRCOSZW(JI,JJ) * ZUFIN(JI,JJ) +   &
                      PSINSLOPE(JI,JJ) * PDIRCOSZW(JI,JJ) * ZVFIN(JI,JJ) +   &
diff --git a/src/MNH/sources_neg_correct.f90 b/src/MNH/sources_neg_correct.f90
index 551de61db..58bbe13a0 100644
--- a/src/MNH/sources_neg_correct.f90
+++ b/src/MNH/sources_neg_correct.f90
@@ -345,9 +345,6 @@ CLOUD: select case ( hcloud )
     !$mnh_end_do()
 !   ice
     if ( krr > 3 ) then
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
       !$mnh_do_concurrent( ji = 1 : jiu, jj = 1 : jju, jk = 1 : jku )
         if ( prrs(ji, jj, jk, 1) < 0. .and. prrs(ji, jj, jk, 4) > 0. ) then
           zcor(ji, jj, jk)    = Min( -prrs(ji, jj, jk, 1), prrs(ji, jj, jk, 4) )
diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90
index 68b912f64..7194e886d 100644
--- a/src/MNH/tke_eps_sources.f90
+++ b/src/MNH/tke_eps_sources.f90
@@ -352,9 +352,6 @@ IKE=KKU-JPVEXT_TURB*KKL
 #if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP)
 ZKEFF(:,:,:) = PLM(:,:,:) * SQRT(PTKEM(:,:,:))
 #else
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZKEFF(JI,JJ,JK) = PLM(JI,JJ,JK) * BR_POW(PTKEM(JI,JJ,JK),0.5)
 !$mnh_end_do()
@@ -393,16 +390,10 @@ PDP(:,:,IKB) = PDP(:,:,IKB) * (1. + PDZZ(:,:,IKB+KKL)/PDZZ(:,:,IKB))
 #if !defined(MNH_BITREP) && !defined(MNH_BITREP_OMP)
 ZFLX(:,:,:) = XCED * SQRT(PTKEM(:,:,:)) / PLEPS(:,:,:)
 #else
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZFLX(JI,JJ,JK) = XCED * BR_POW(PTKEM(JI,JJ,JK),0.5) / PLEPS(JI,JJ,JK)
 !$mnh_end_do()
 #endif
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZSOURCE(JI,JJ,JK) = ( PRTKES(JI,JJ,JK) + PRTKESM(JI,JJ,JK) ) / PRHODJ(JI,JJ,JK) &
         - PTKEM(JI,JJ,JK) / PTSTEP &
@@ -432,7 +423,6 @@ CALL MZM_DEVICE(PRHODJ,ZTMP2_DEVICE) !Warning: re-used later
 ZA(:,:,:)     = - PTSTEP * XCET * ZTMP1_DEVICE(:,:,:) * ZTMP2_DEVICE(:,:,:) / PDZZ(:,:,:)**2
 !$mnh_end_expand_array()
 #else
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZA(JI,JJ,JK)     = - PTSTEP * XCET * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) / BR_P2(PDZZ(JI,JJ,JK))
 !$mnh_end_do() !CONCURRENT   
@@ -448,9 +438,6 @@ CALL TRIDIAG_TKE(KKA,KKU,KKL,PTKEM,ZA,PTSTEP,PEXPL,PIMPL,PRHODJ,&
 CALL GET_HALO(ZRES)
 #else
 !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZTMP3_DEVICE(JI,JJ,JK) = PTSTEP*ZFLX(JI,JJ,JK)
 !$mnh_end_do() !CONCURRENT   
diff --git a/src/MNH/tridiag_thermo.f90 b/src/MNH/tridiag_thermo.f90
index 2855dae8e..bb4480467 100644
--- a/src/MNH/tridiag_thermo.f90
+++ b/src/MNH/tridiag_thermo.f90
@@ -262,7 +262,6 @@ CALL MZM_DEVICE(PRHODJ,ZMZM_RHODJ)
 #ifndef MNH_BITREP
 ZRHODJ_DFDDTDZ_O_DZ2(:,:,:) = ZMZM_RHODJ(:,:,:)*PDFDDTDZ(:,:,:)/PDZZ(:,:,:)**2
 #else
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent (JK=1:JKU,JJ=1:JJU,JI=1:JIU) 
    ZRHODJ_DFDDTDZ_O_DZ2(JI,JJ,JK) = ZMZM_RHODJ(JI,JJ,JK)*PDFDDTDZ(JI,JJ,JK)/BR_P2(PDZZ(JI,JJ,JK))
 !$mnh_end_do() !CONCURRENT   
@@ -372,7 +371,7 @@ IF ( PIMPL > 1.E-10 ) THEN
 DO JK = IKB+KKL,IKE-KKL,KKL
 #ifdef MNH_COMPILER_NVHPC
    ! gang+vector needed or parallisation vector only
-   !$acc loop independent gang, vector collapse(2)   
+   ! acc loop independent gang, vector collapse(2)   
 #endif
    !$mnh_do_concurrent (JJ=1:JJU,JI=1:JIU)
       ZGAM(JI,JJ,JK) = ZC(JI,JJ,JK-KKL) / ZBET(JI,JJ)  
@@ -404,7 +403,7 @@ END DO
 DO JK = IKE-KKL,IKB,-1*KKL
 #ifdef MNH_COMPILER_NVHPC
    ! gang+vector needed or parallisation vector only
-   !$acc loop independent gang, vector collapse(2)   
+   ! acc loop independent gang, vector collapse(2)   
 #endif
    !$mnh_do_concurrent (JJ=1:JJU,JI=1:JIU)
       PVARP(JI,JJ,JK) = PVARP(JI,JJ,JK) - ZGAM(JI,JJ,JK+KKL) * PVARP(JI,JJ,JK+KKL)
diff --git a/src/MNH/tridiag_tke.f90 b/src/MNH/tridiag_tke.f90
index ba836e09c..a3f1fd96f 100644
--- a/src/MNH/tridiag_tke.f90
+++ b/src/MNH/tridiag_tke.f90
@@ -268,7 +268,7 @@ IF ( PIMPL > 1.E-10 ) THEN
   !$acc loop  seq
   DO JK = IKB+KKL,IKE-KKL,KKL
 #ifdef MNH_COMPILER_NVHPC     
-     !$acc loop gang, vector collapse(2) independent
+     ! acc loop gang, vector collapse(2) independent
 #endif
      !$mnh_do_concurrent (JJ=1:JJU,JI=1:JIU)
         ZGAM(JI,JJ,JK) = PIMPL * PA(JI,JJ,JK) / PRHODJ(JI,JJ,JK-KKL) / ZBET(JI,JJ)  
diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90
index 9b44aed1e..af75646a8 100644
--- a/src/MNH/turb.f90
+++ b/src/MNH/turb.f90
@@ -1084,7 +1084,6 @@ ENDIF
   ZCDUEFF(:,:) =-SQRT ( (PSFU(:,:)**2 + PSFV(:,:)**2) /                  &
                         (XMNH_TINY + ZUSLOPE(:,:)**2 + ZVSLOPE(:,:)**2 ) )
 #else
-  !$acc_nv loop independent collapse(2)
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU )
      ZCDUEFF(JI,JJ) =-SQRT ( (BR_P2(PSFU(JI,JJ)) + BR_P2(PSFV(JI,JJ))) /                  &
                     (XMNH_TINY + BR_P2(ZUSLOPE(JI,JJ)) + BR_P2(ZVSLOPE(JI,JJ)) ) )     
@@ -1908,7 +1907,6 @@ CALL MNH_MEM_GET( zdrvsatdt, size( pexn, 1 ), size( pexn, 2 ), size( pexn, 3 ) )
 !$acc end kernels
 #else
 !$acc kernels
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent(JI=1:JIU,JJ=1:JJU,JK=1:JKU)
  PATHETA(JI,JJ,JK)= PAMOIST(JI,JJ,JK) * PEXN(JI,JJ,JK) *                             &
         ( ( ZRVSAT(JI,JJ,JK) - PRT(JI,JJ,JK,1) ) * PLOCPEXN(JI,JJ,JK) /              &
@@ -1928,7 +1926,6 @@ CALL MNH_MEM_GET( zdrvsatdt, size( pexn, 1 ), size( pexn, 2 ), size( pexn, 3 ) )
 !
 !!$acc kernels present(PLOCPEXN)
 !$acc kernels
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent(JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    PLOCPEXN(JI,JJ,JK) = PLOCPEXN(JI,JJ,JK) / PEXN(JI,JJ,JK)
 !$mnh_end_do()
@@ -2600,7 +2597,7 @@ CALL EMOIST(KRR,KRRI,PTHLT,PRT,PLOCPEXNM,PAMOIST,PSRCT,ZEMOIST)
 !
 !$acc kernels present(ZWORK2D,PLM)
 IF (KRR>0) THEN
-   !$acc_nv loop independent collapse(3) private(ZVAR)
+   ! acc_nv loop independent collapse(3) private(ZVAR)
    !$mnh_do_concurrent( JI=1:JIU, JJ=1:JJU, JK = KKTB+1:KKTE-1)          
             ZDTHLDZ(JI,JJ,JK)= 0.5*((PTHLT(JI,JJ,JK+KKL)-PTHLT(JI,JJ,JK    ))/PDZZ(JI,JJ,JK+KKL)+ &
                  (PTHLT(JI,JJ,JK    )-PTHLT(JI,JJ,JK-KKL))/PDZZ(JI,JJ,JK    ))
@@ -2619,7 +2616,7 @@ IF (KRR>0) THEN
             END IF
    !$mnh_end_do()
 ELSE! For dry atmos or unsalted ocean runs
-   !$acc_nv loop independent collapse(3) private(ZVAR)
+   ! acc_nv loop independent collapse(3) private(ZVAR)
    !$mnh_do_concurrent( JI=1:JIU, JJ=1:JJU, JK = KKTB+1:KKTE-1)
             ZDTHLDZ(JI,JJ,JK)= 0.5*((PTHLT(JI,JJ,JK+KKL)-PTHLT(JI,JJ,JK    ))/PDZZ(JI,JJ,JK+KKL)+ &
                  (PTHLT(JI,JJ,JK    )-PTHLT(JI,JJ,JK-KKL))/PDZZ(JI,JJ,JK    ))
@@ -2650,9 +2647,6 @@ IF (GOCEAN) THEN
   ZWORK2D(:,:)=XG*(XALPHAOC*ZDTHLDZ(:,:,KKB)-XBETAOC*ZDRTDZ(:,:,KKB))
 #else
 !PW: bug: nvhpc 21.11 does not parallelize this loop even with loop independent directive!
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(2)
-#endif
   !$mnh_do_concurrent( JI = 1 : JIU, JJ = 1 : JJU )
     ZWORK2D(JI,JJ)=XG*(XALPHAOC*ZDTHLDZ(JI,JJ,KKB)-XBETAOC*ZDRTDZ(JI,JJ,KKB))
   !$mnh_end_do()
@@ -2664,9 +2658,6 @@ ELSE
               (ZETHETA(:,:,KKB)*ZDTHLDZ(:,:,KKB)+ZEMOIST(:,:,KKB)*ZDRTDZ(:,:,KKB))
 #else
 !PW: bug: nvhpc 21.11 does not parallelize this loop even with loop independent directive!
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(2)
-#endif
   !$mnh_do_concurrent( JI = 1 : JIU, JJ = 1 : JJU )
     ZWORK2D(JI,JJ)=XG/PTHVREF(JI,JJ,KKB)*                                           &
               (ZETHETA(JI,JJ,KKB)*ZDTHLDZ(JI,JJ,KKB)+ZEMOIST(JI,JJ,KKB)*ZDRTDZ(JI,JJ,KKB))
diff --git a/src/MNH/turb_hor_thermo_flux.f90 b/src/MNH/turb_hor_thermo_flux.f90
index 7fbb58985..3d6873a4f 100644
--- a/src/MNH/turb_hor_thermo_flux.f90
+++ b/src/MNH/turb_hor_thermo_flux.f90
@@ -332,7 +332,6 @@ ZFLX(:,:,IKE+1) = ZFLX(:,:,IKE)
 CALL MXM_DEVICE( PK, ZTMP1_DEVICE )
 CALL GX_M_U_DEVICE(1,IKU,1,PTHLM,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
 !$acc kernels present_cr(ZFLX)
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZFLX(JI,JJ,JK)     = -XCSHF * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK)
 !$mnh_end_do()
@@ -398,28 +397,24 @@ END IF
 IF (.NOT. LFLAT) THEN
   CALL MXM_DEVICE(PRHODJ, ZTMP1_DEVICE)
   !$acc kernels present_cr(ZTMP2_DEVICE)
-  !$acc_nv loop independent collapse(3)
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK) * PINV_PDXX(JI,JJ,JK)
   !$mnh_end_do()
   !$acc end kernels
   CALL DXF_DEVICE(ZTMP2_DEVICE, ZTMP3_DEVICE)
   !$acc kernels present_cr(ZTMP2_DEVICE)
-  !$acc_nv loop independent collapse(3)
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK) * PINV_PDXX(JI,JJ,JK)
   !$mnh_end_do()
   !$acc end kernels
   CALL MZM_DEVICE(ZTMP2_DEVICE,ZTMP4_DEVICE)
   !$acc kernels present_cr(ZTMP2_DEVICE)
-  !$acc_nv loop independent collapse(3)
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)  
      ZTMP2_DEVICE(JI,JJ,JK) = PDZX(JI,JJ,JK)*ZTMP4_DEVICE(JI,JJ,JK)
   !$mnh_end_do()
 !$acc end kernels
   CALL MXF_DEVICE(ZTMP2_DEVICE, ZTMP4_DEVICE)
 !$acc kernels present_cr(ZTMP2_DEVICE)
-!$acc_nv loop independent collapse(3)  
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZTMP2_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
 !$mnh_end_do()
@@ -765,7 +760,6 @@ END IF
   CALL MXM_DEVICE( PK, ZTMP1_DEVICE )
   CALL GX_M_U_DEVICE(1,IKU,1,PRM(:,:,:,1),PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
 !$acc kernels present_cr(ZFLX)
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZFLX(JI,JJ,JK)     = -XCHF * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK)
 !$mnh_end_do()
@@ -804,35 +798,30 @@ END IF
   IF (.NOT. LFLAT) THEN
     CALL MXM_DEVICE(PRHODJ,ZTMP1_DEVICE)
     !$acc kernels present_cr(ZTMP2_DEVICE)
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK) * PINV_PDXX(JI,JJ,JK)
     !$mnh_end_do()
     !$acc end kernels
     CALL DXF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
     !$acc kernels present_cr(ZTMP2_DEVICE)
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK) * PINV_PDXX(JI,JJ,JK)
     !$mnh_end_do()
     !$acc end kernels
     CALL MZM_DEVICE(ZTMP2_DEVICE,ZTMP4_DEVICE)
     !$acc kernels present_cr(ZTMP2_DEVICE)
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = PDZX(JI,JJ,JK)*ZTMP4_DEVICE(JI,JJ,JK)
     !$mnh_end_do()
     !$acc end kernels
     CALL MXF_DEVICE(ZTMP2_DEVICE,ZTMP4_DEVICE)
     !$acc kernels present_cr(ZTMP2_DEVICE)
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
     !$mnh_end_do()
     !$acc end kernels
     CALL DZF_DEVICE(ZTMP2_DEVICE,ZTMP4_DEVICE)
     !$acc kernels
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)    
        PRRS(JI,JJ,JK,1) = PRRS(JI,JJ,JK,1) - ZTMP3_DEVICE(JI,JJ,JK) + ZTMP4_DEVICE(JI,JJ,JK)
     !$mnh_end_do()
@@ -1140,7 +1129,6 @@ END IF
   CALL MYM_DEVICE( PK, ZTMP1_DEVICE )
   CALL GY_M_V_DEVICE(1,IKU,1,PTHLM,PDYY,PDZZ,PDZY,ZTMP2_DEVICE)
   !$acc kernels present_cr(ZFLX)
-  !$acc_nv loop independent collapse(3)
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZFLX(JI,JJ,JK)     = -XCSHF * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK)
   !$mnh_end_do()
@@ -1187,35 +1175,30 @@ IF (.NOT. L2D) THEN
   IF (.NOT. LFLAT) THEN
     CALL MYM_DEVICE(PRHODJ, ZTMP1_DEVICE)
     !$acc kernels present_cr(ZTMP2_DEVICE)
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK) * PINV_PDYY(JI,JJ,JK)
     !$mnh_end_do()
     !$acc end kernels
     CALL DYF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
     !$acc kernels present_cr(ZTMP1_DEVICE)
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP1_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK) * PINV_PDYY(JI,JJ,JK)
     !$mnh_end_do()
     !$acc end kernels
     CALL MZM_DEVICE(ZTMP1_DEVICE, ZTMP2_DEVICE)
     !$acc kernels present_cr(ZTMP1_DEVICE)
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP1_DEVICE(JI,JJ,JK) = PDZY(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK)
     !$mnh_end_do()
     !$acc end kernels
     CALL MYF_DEVICE(ZTMP1_DEVICE, ZTMP2_DEVICE)
     !$acc kernels present_cr(ZTMP1_DEVICE)
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP1_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
     !$mnh_end_do()
     !$acc end kernels
     CALL DZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
     !$acc kernels
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        PRTHLS(JI,JJ,JK) = PRTHLS(JI,JJ,JK) - ZTMP3_DEVICE(JI,JJ,JK) + ZTMP2_DEVICE(JI,JJ,JK)
     !$mnh_end_do()
@@ -1507,7 +1490,6 @@ IF (KRR/=0) THEN
     CALL MYM_DEVICE( PK, ZTMP1_DEVICE )
     CALL GY_M_V_DEVICE(1,IKU,1,PRM(:,:,:,1),PDYY,PDZZ,PDZY, ZTMP2_DEVICE)
     !$acc kernels present_cr(ZFLX)
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZFLX(JI,JJ,JK)     = -XCHF * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK)
     !$mnh_end_do() !CONCURRENT
@@ -1553,7 +1535,6 @@ IF (KRR/=0) THEN
     IF (.NOT. LFLAT) THEN
       CALL MYM_DEVICE(PRHODJ, ZTMP1_DEVICE)
       !$acc kernels present_cr(ZTMP2_DEVICE)
-      !$acc_nv loop independent collapse(3)
       !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
          ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK) * PINV_PDYY(JI,JJ,JK)
       !$mnh_end_do()
@@ -1561,21 +1542,18 @@ IF (KRR/=0) THEN
       CALL DYF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
       !
       !$acc kernels present_cr(ZTMP1_DEVICE)
-      !$acc_nv loop independent collapse(3)
       !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
          ZTMP1_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK) * PINV_PDYY(JI,JJ,JK)
       !$mnh_end_do()
       !$acc end kernels
       CALL MZM_DEVICE(ZTMP1_DEVICE,ZTMP2_DEVICE)
       !$acc kernels present_cr(ZTMP1_DEVICE)
-      !$acc_nv loop independent collapse(3)
       !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
          ZTMP1_DEVICE(JI,JJ,JK) = PDZY(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK)
       !$mnh_end_do()
       !$acc end kernels
       CALL MYF_DEVICE(ZTMP1_DEVICE,ZTMP2_DEVICE)
       !$acc kernels present_cr(ZTMP1_DEVICE)
-      !$acc_nv loop independent collapse(3)
       !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
          ZTMP1_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
       !$mnh_end_do()
@@ -1583,7 +1561,6 @@ IF (KRR/=0) THEN
       CALL DZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
       !
       !$acc kernels
-      !$acc_nv loop independent collapse(3)
       !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
          PRRS(JI,JJ,JK,1) = PRRS(JI,JJ,JK,1) - ZTMP3_DEVICE(JI,JJ,JK) + ZTMP2_DEVICE(JI,JJ,JK)
       !$mnh_end_do()
diff --git a/src/MNH/turb_hor_tke.f90 b/src/MNH/turb_hor_tke.f90
index 2e97d39d2..0aa4d3d69 100644
--- a/src/MNH/turb_hor_tke.f90
+++ b/src/MNH/turb_hor_tke.f90
@@ -224,9 +224,6 @@ ZFLX = -XCET * MXM(PK) * GX_M_U(1,IKU,1,PTKEM,PDXX,PDZZ,PDZX) ! < u'e >
 CALL MXM_DEVICE(PK,ZTMP1_DEVICE)
 CALL GX_M_U_DEVICE(1,IKU,1,PTKEM,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
 !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZFLX(JI,JJ,JK) = -XCET * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) ! < u'e >
 !$mnh_end_do() !CONCURRENT    
@@ -234,9 +231,6 @@ CALL GX_M_U_DEVICE(1,IKU,1,PTKEM,PDXX,PDZZ,PDZX,ZTMP2_DEVICE)
 !
 ! special case near the ground ( uncentred gradient )
 !
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(2)
-#endif
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU )
    ZFLX(JI,JJ,IKB) =  ZCOEFF(JI,JJ,IKB+2)*PTKEM(JI,JJ,IKB+2)                     &
                  + ZCOEFF(JI,JJ,IKB+1)*PTKEM(JI,JJ,IKB+1)                     &
@@ -295,45 +289,30 @@ END IF
 IF (.NOT. LFLAT) THEN
   CALL MXM_DEVICE(PRHODJ,ZTMP1_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK) * PINV_PDXX(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
   !$acc end kernels 
   CALL DXF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK)*PINV_PDXX(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
   !$acc end kernels 
   CALL MZM_DEVICE(ZTMP2_DEVICE,ZTMP3_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP2_DEVICE(JI,JJ,JK) = PDZX(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
   !$acc end kernels 
   CALL MXF_DEVICE( ZTMP2_DEVICE,ZTMP3_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP2_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
   !$acc end kernels 
   CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      PTRH(JI,JJ,JK) =-( ZTMP1_DEVICE(JI,JJ,JK) - ZTMP3_DEVICE(JI,JJ,JK) ) /PRHODJ(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
@@ -377,9 +356,6 @@ IF (.NOT. L2D) THEN
   CALL MYM_DEVICE(PK,ZTMP1_DEVICE)
   CALL GY_M_V_DEVICE(1,IKU,1,PTKEM,PDYY,PDZZ,PDZY,ZTMP2_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
    !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
       ZFLX(JI,JJ,JK) =-XCET * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) ! < v'e >
    !$mnh_end_do() !CONCURRENT   
@@ -451,45 +427,30 @@ IF (.NOT. L2D) THEN
   IF (.NOT. LFLAT) THEN
     CALL MYM_DEVICE(PRHODJ,ZTMP1_DEVICE)
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK) * PINV_PDYY(JI,JJ,JK)
     !$mnh_end_do() !CONCURRENT   
     !$acc end kernels 
     CALL DYF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE)
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK)*PINV_PDYY(JI,JJ,JK)
     !$mnh_end_do() !CONCURRENT   
     !$acc end kernels 
     CALL MZM_DEVICE(ZTMP2_DEVICE,ZTMP3_DEVICE)
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = PDZY(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK)
     !$mnh_end_do() !CONCURRENT   
     !$acc end kernels 
     CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP3_DEVICE)
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = PMZM_PRHODJ(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) * PINV_PDZZ(JI,JJ,JK)
     !$mnh_end_do() !CONCURRENT   
     !$acc end kernels 
     CALL DZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        PTRH(JI,JJ,JK) = PTRH(JI,JJ,JK) - (  ZTMP1_DEVICE(JI,JJ,JK) - ZTMP3_DEVICE(JI,JJ,JK) ) &
             /PRHODJ(JI,JJ,JK)
diff --git a/src/MNH/turb_hor_uw.f90 b/src/MNH/turb_hor_uw.f90
index 0c003af62..39a3a6e76 100644
--- a/src/MNH/turb_hor_uw.f90
+++ b/src/MNH/turb_hor_uw.f90
@@ -286,9 +286,6 @@ ZFLX(:,:,:) =                                                      &
 CALL MZM_DEVICE(PK,ZTMP1_DEVICE)
 CALL MXM_DEVICE(ZTMP1_DEVICE,ZTMP2_DEVICE)
 !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZFLX(JI,JJ,JK) = - XCMFS * ZTMP2_DEVICE(JI,JJ,JK) * GX_W_UW_PWM(JI,JJ,JK)
 !$mnh_end_do() !CONCURRENT   
@@ -329,18 +326,12 @@ PRUS(:,:,:) = PRUS(:,:,:) - DZF( ZFLX* MXM( PMZM_PRHODJ ) / MXM( PDZZ ) )
 CALL MXM_DEVICE( PMZM_PRHODJ, ZTMP1_DEVICE )
 CALL MXM_DEVICE( PDZZ, ZTMP2_DEVICE )
 !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZTMP3_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK)* ZTMP1_DEVICE(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK)
 !$mnh_end_do() !CONCURRENT   
 !$acc end kernels
 CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP1_DEVICE )
 !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    PRUS(JI,JJ,JK) = PRUS(JI,JJ,JK) - ZTMP1_DEVICE(JI,JJ,JK)
 !$mnh_end_do() !CONCURRENT   
@@ -359,18 +350,12 @@ END IF
 #else
   CALL MXM_DEVICE(PRHODJ,ZTMP1_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * PINV_PDXX(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
   !$acc end kernels
   CALL MZM_DEVICE(ZTMP2_DEVICE, ZTMP1_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
@@ -378,18 +363,12 @@ END IF
   CALL DXF_DEVICE( ZTMP2_DEVICE,ZTMP1_DEVICE)
 IF (.NOT. LFLAT) THEN
    !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-   !$acc loop independent collapse(3)
-#endif
    !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
       ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK)*PDZX(JI,JJ,JK)
    !$mnh_end_do() !CONCURRENT   
    !$acc end kernels
    CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
    !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-   !$acc loop independent collapse(3)
-#endif
    !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP2_DEVICE(JI,JJ,JK) = ZTMP3_DEVICE(JI,JJ,JK)*PINV_PDXX(JI,JJ,JK)
    !$mnh_end_do() !CONCURRENT  
@@ -397,18 +376,12 @@ IF (.NOT. LFLAT) THEN
    CALL MXF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
    CALL MZF_DEVICE( PDZZ, ZTMP2_DEVICE )
    !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-   !$acc loop independent collapse(3)
-#endif
    !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
       ZTMP4_DEVICE(JI,JJ,JK) = PRHODJ(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK)
    !$mnh_end_do() !CONCURRENT   
    !$acc end kernels
    CALL DZM_DEVICE( ZTMP4_DEVICE, ZTMP2_DEVICE )
    !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-   !$acc loop independent collapse(3)
-#endif
    !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
       PRWS(JI,JJ,JK) = PRWS(JI,JJ,JK)         &
            - ZTMP1_DEVICE(JI,JJ,JK)           &
@@ -432,9 +405,6 @@ IF (KSPLT==1) THEN
 #else
   CALL GZ_U_UW_DEVICE(PUM,PDZZ,ZTMP1_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK) *( ZTMP1_DEVICE(JI,JJ,JK) + GX_W_UW_PWM(JI,JJ,JK) )
   !$mnh_end_do() !CONCURRENT   
@@ -442,9 +412,6 @@ IF (KSPLT==1) THEN
   CALL MXF_DEVICE( ZTMP2_DEVICE,ZTMP1_DEVICE )
   CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZWORK(JI,JJ,JK) = -ZTMP2_DEVICE(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
diff --git a/src/MNH/turb_hor_vw.f90 b/src/MNH/turb_hor_vw.f90
index 7f67565d3..02f32f21e 100644
--- a/src/MNH/turb_hor_vw.f90
+++ b/src/MNH/turb_hor_vw.f90
@@ -286,9 +286,6 @@ IF (.NOT. L2D) THEN
   CALL MZM_DEVICE(PK,ZTMP1_DEVICE)
   CALL MYM_DEVICE(ZTMP1_DEVICE,ZTMP2_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZFLX(JI,JJ,JK) = - XCMFS * ZTMP2_DEVICE(JI,JJ,JK) * GY_W_VW_PWM(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT
@@ -336,18 +333,12 @@ IF (.NOT. L2D) THEN
   CALL MYM_DEVICE( PMZM_PRHODJ, ZTMP1_DEVICE )
   CALL MYM_DEVICE( PDZZ, ZTMP2_DEVICE )
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP3_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK)* ZTMP1_DEVICE(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
   !$acc end kernels
   CALL DZF_DEVICE( ZTMP3_DEVICE, ZTMP1_DEVICE )
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      PRVS(JI,JJ,JK) = PRVS(JI,JJ,JK) - ZTMP1_DEVICE(JI,JJ,JK)
   !$mnh_end_do() !CONCURRENT   
@@ -371,36 +362,24 @@ IF (.NOT. L2D) THEN
   IF (.NOT. LFLAT) THEN
     CALL MYM_DEVICE(PRHODJ, ZTMP1_DEVICE)
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * PINV_PDYY(JI,JJ,JK)
     !$mnh_end_do() !CONCURRENT  
     !$acc end kernels
     CALL MZM_DEVICE(ZTMP2_DEVICE, ZTMP1_DEVICE)
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLX(JI,JJ,JK)
     !$mnh_end_do() !CONCURRENT   
     !$acc end kernels
     CALL DYF_DEVICE( ZTMP2_DEVICE, ZTMP1_DEVICE )
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK)  = ZFLX(JI,JJ,JK) *PDZY(JI,JJ,JK) 
     !$mnh_end_do() !CONCURRENT   
     !$acc end kernels
     CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = ZTMP3_DEVICE(JI,JJ,JK) * PINV_PDYY(JI,JJ,JK)
     !$mnh_end_do() !CONCURRENT  
@@ -408,18 +387,12 @@ IF (.NOT. L2D) THEN
     CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP3_DEVICE)
     CALL MZF_DEVICE( PDZZ, ZTMP2_DEVICE )
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP4_DEVICE(JI,JJ,JK) = PRHODJ(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK)
     !$mnh_end_do() !CONCURRENT   
     !$acc end kernels
     CALL DZM_DEVICE( ZTMP4_DEVICE, ZTMP2_DEVICE )
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        PRWS(JI,JJ,JK) = PRWS(JI,JJ,JK)  &
             - ZTMP1_DEVICE(JI,JJ,JK)          &
@@ -453,9 +426,6 @@ IF (KSPLT==1) THEN
 #else
     CALL GZ_V_VW_DEVICE(PVM,PDZZ,ZTMP1_DEVICE)
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = ZFLX(JI,JJ,JK) *( ZTMP1_DEVICE(JI,JJ,JK) + GY_W_VW_PWM(JI,JJ,JK) )
     !$mnh_end_do() !CONCURRENT   
@@ -463,9 +433,6 @@ IF (KSPLT==1) THEN
     CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE)
     CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZWORK(JI,JJ,JK) = -ZTMP2_DEVICE(JI,JJ,JK)
     !$mnh_end_do() !CONCURRENT   
diff --git a/src/MNH/turb_ver.f90 b/src/MNH/turb_ver.f90
index 4963175b2..733e74de4 100644
--- a/src/MNH/turb_ver.f90
+++ b/src/MNH/turb_ver.f90
@@ -676,9 +676,6 @@ ENDIF
 ! Denominator factor in 3rd order terms
 !
 !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZD(JI,JJ,JK) = (1.+ZREDTH1(JI,JJ,JK)+ZREDR1(JI,JJ,JK)) * (1.+0.5*(ZREDTH1(JI,JJ,JK)+ZREDR1(JI,JJ,JK)))
 !$mnh_end_do()   
diff --git a/src/MNH/turb_ver_dyn_flux.f90 b/src/MNH/turb_ver_dyn_flux.f90
index 6046b2f54..419721d81 100644
--- a/src/MNH/turb_ver_dyn_flux.f90
+++ b/src/MNH/turb_ver_dyn_flux.f90
@@ -531,7 +531,6 @@ ZSOURCE(:,:,:) = 0.
 #ifndef MNH_BITREP
 ZDIRSINZW(:,:) = SQRT(1.-PDIRCOSZW(:,:)**2)
 #else
-!$acc_nv loop independent collapse(2)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU )
    ZDIRSINZW(JI,JJ) = SQRT(1.-BR_P2(PDIRCOSZW(JI,JJ)))
 !$mnh_end_do()
@@ -583,7 +582,6 @@ CALL MXM_DEVICE( PDZZ, ZTMP4_DEVICE )
 #ifndef MNH_BITREP
 ZA(:,:,:) = -PTSTEP * XCMFS * ZTMP1_DEVICE(:,:,:) * ZTMP3_DEVICE(:,:,:) / ZTMP4_DEVICE(:,:,:)**2
 #else
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZA(JI,JJ,JK) = -PTSTEP * XCMFS * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) / BR_P2(ZTMP4_DEVICE(JI,JJ,JK))
 !$mnh_end_do()
@@ -601,13 +599,11 @@ ZA(:,:,:) = -PTSTEP * XCMFS * ZTMP1_DEVICE(:,:,:) * ZTMP3_DEVICE(:,:,:) / ZTMP4_
 ZCOEFFLXU(:,:,1) = PCDUEFF(:,:) * (PDIRCOSZW(:,:)**2 - ZDIRSINZW(:,:)**2) &
      * PCOSSLOPE(:,:)
 #else
-!$acc_nv loop independent collapse(2)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU )     
    ZCOEFFLXU(JI,JJ,1) = PCDUEFF(JI,JJ) * (BR_P2(PDIRCOSZW(JI,JJ)) - BR_P2(ZDIRSINZW(JI,JJ))) &
         * PCOSSLOPE(JI,JJ)
 !$mnh_end_do()
 #endif
-!$acc_nv loop independent collapse(2)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU )
    ZCOEFFLXV(JI,JJ,1) = PCDUEFF(JI,JJ) * PDIRCOSZW(JI,JJ) * PSINSLOPE(JI,JJ)
    
@@ -620,7 +616,6 @@ ZCOEFFLXU(:,:,1) = PCDUEFF(:,:) * (PDIRCOSZW(:,:)**2 - ZDIRSINZW(:,:)**2) &
 #ifndef MNH_OPENACC
 ZCOEFS(:,:,1:1)=MXM(ZCOEFS(:,:,1:1) / PDZZ(:,:,IKB:IKB) )
 #else
-!$acc_nv loop independent collapse(2)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU )
    ZTMP1_DEVICE(JI,JJ,1) = ZCOEFS(JI,JJ,1) / PDZZ(JI,JJ,IKB)
 !$mnh_end_do()
@@ -728,7 +723,6 @@ ZFLXZ(:,:,:)     = -XCMFS * MXM(ZKEFF) * &
                   DZM (PIMPL*ZRES + PEXPL*PUM) / MXM(PDZZ)
 #else
 !$acc kernels
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZTMP2_DEVICE(JI,JJ,JK) = PIMPL*ZRES(JI,JJ,JK) + PEXPL*PUM(JI,JJ,JK)
 !$mnh_end_do()
@@ -737,7 +731,6 @@ CALL MXM_DEVICE(ZKEFF,ZTMP1_DEVICE)
 CALL DZM_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
 CALL MXM_DEVICE(PDZZ,ZTMP4_DEVICE)
 !$acc kernels
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZFLXZ(JI,JJ,JK)     = -XCMFS * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) / ZTMP4_DEVICE(JI,JJ,JK)
 !$mnh_end_do()
@@ -801,7 +794,6 @@ PDP(:,:,:) = - MZF( MXF ( ZFLXZ * GZ_U_UW(PUM,PDZZ) )  )
 #else
 CALL GZ_U_UW_DEVICE(PUM,PDZZ,ZTMP1_DEVICE)
 !$acc kernels
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU )
    ZTMP2_DEVICE(JI,JJ,JK) = ZFLXZ(JI,JJ,JK) * ZTMP1_DEVICE(JI,JJ,JK)
 !$mnh_end_do()
@@ -903,14 +895,12 @@ IF(HTURBDIM=='3DIM') THEN
 #else
   CALL MXM_DEVICE(PRHODJ,ZTMP1_DEVICE)
   !$acc kernels
-  !$acc_nv loop independent collapse(3)
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) /PDXX(JI,JJ,JK)
   !$mnh_end_do()
 !$acc end kernels
   CALL MZM_DEVICE(ZTMP2_DEVICE,ZTMP3_DEVICE )
   !$acc kernels
-  !$acc_nv loop independent collapse(3)
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU) 
      ZTMP2_DEVICE(JI,JJ,JK) = ZTMP3_DEVICE(JI,JJ,JK) * ZFLXZ(JI,JJ,JK)
   !$mnh_end_do()
@@ -919,21 +909,18 @@ IF(HTURBDIM=='3DIM') THEN
   IF (.NOT. LFLAT) THEN
     CALL MZF_DEVICE( PDZZ, ZTMP2_DEVICE )
     !$acc kernels
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP3_DEVICE(JI,JJ,JK) = ZFLXZ(JI,JJ,JK)*PDZX(JI,JJ,JK)
     !$mnh_end_do()
     !$acc end kernels
     CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE )
     !$acc kernels
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP3_DEVICE(JI,JJ,JK) = ZTMP4_DEVICE(JI,JJ,JK) / PDXX(JI,JJ,JK)
     !$mnh_end_do()   
     !$acc end kernels
     CALL MXF_DEVICE( ZTMP3_DEVICE,ZTMP4_DEVICE )
     !$acc kernels
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP3_DEVICE(JI,JJ,JK) = PRHODJ(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK)
     !$mnh_end_do()
@@ -956,7 +943,6 @@ IF(HTURBDIM=='3DIM') THEN
 #else
   CALL GX_W_UW_DEVICE( PWM,PDXX,PDZZ,PDZX,ZTMP1_DEVICE)
   !$acc kernels
-  !$acc_nv loop independent collapse(3)
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP2_DEVICE(JI,JJ,JK) = ZFLXZ(JI,JJ,JK) * ZTMP1_DEVICE(JI,JJ,JK)
   !$mnh_end_do()
@@ -964,7 +950,6 @@ IF(HTURBDIM=='3DIM') THEN
   CALL MXF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE)
   CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
   !$acc kernels
-  !$acc_nv loop independent collapse(3)
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZA(JI,JJ,JK)=-ZTMP2_DEVICE(JI,JJ,JK)
   !$mnh_end_do()
@@ -1115,7 +1100,6 @@ CALL MYM_DEVICE(ZTMP3_DEVICE,ZTMP4_DEVICE)
 #ifndef MNH_BITREP
 ZA(:,:,:)    = - PTSTEP * XCMFS * ZTMP1_DEVICE(:,:,:) * ZTMP4_DEVICE(:,:,:) / ZTMP2_DEVICE(:,:,:)**2
 #else
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZA(JI,JJ,JK)    = - PTSTEP * XCMFS * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK) / BR_P2(ZTMP2_DEVICE(JI,JJ,JK))
 !$mnh_end_do()
@@ -1131,7 +1115,6 @@ ZA(:,:,:)    = - PTSTEP * XCMFS * ZTMP1_DEVICE(:,:,:) * ZTMP4_DEVICE(:,:,:) / ZT
 ZCOEFFLXU(:,:,1) = PCDUEFF(:,:) * (PDIRCOSZW(:,:)**2 - ZDIRSINZW(:,:)**2) &
                                    * PSINSLOPE(:,:)
 #else
-!$acc_nv loop independent collapse(2)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU )
 ZCOEFFLXU(JI,JJ,1) = PCDUEFF(JI,JJ) * (BR_P2(PDIRCOSZW(JI,JJ)) - BR_P2(ZDIRSINZW(JI,JJ))) &
      * PSINSLOPE(JI,JJ)
@@ -1140,7 +1123,6 @@ ZCOEFFLXU(JI,JJ,1) = PCDUEFF(JI,JJ) * (BR_P2(PDIRCOSZW(JI,JJ)) - BR_P2(ZDIRSINZW
 ZCOEFFLXV(:,:,1) = PCDUEFF(:,:) * PDIRCOSZW(:,:) * PCOSSLOPE(:,:)
 
 ! prepare the implicit scheme coefficients for the surface flux
-!$acc_nv loop independent collapse(2)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU )
 ZCOEFS(JI,JJ,1)=  ZCOEFFLXU(JI,JJ,1) * PSINSLOPE(JI,JJ) * PDIRCOSZW(JI,JJ)  &
      +ZCOEFFLXV(JI,JJ,1) * PCOSSLOPE(JI,JJ)
@@ -1150,7 +1132,6 @@ ZCOEFS(JI,JJ,1)=  ZCOEFFLXU(JI,JJ,1) * PSINSLOPE(JI,JJ) * PDIRCOSZW(JI,JJ)  &
 #ifndef MNH_OPENACC
 ZCOEFS(:,:,1:1)=MYM(ZCOEFS(:,:,1:1) / PDZZ(:,:,IKB:IKB) )
 #else
-!$acc_nv loop independent collapse(2)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU )
    ZTMP1_DEVICE(JI,JJ,1) = ZCOEFS(JI,JJ,1) / PDZZ(JI,JJ,IKB)
 !$mnh_end_do()
@@ -1256,7 +1237,6 @@ ZFLXZ(:,:,IKB:IKB)   =   MYM(PDZZ(:,:,IKB:IKB))  *                       &
   ) / 0.5 / ( 1. + MYM(PRHODJ(:,:,KKA:KKA)) / MYM(PRHODJ(:,:,IKB:IKB)) )
 #else
 !$acc kernels
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZTMP1_DEVICE(JI,JJ,JK) = PIMPL*ZRES(JI,JJ,JK) + PEXPL*PVM(JI,JJ,JK)
 !$mnh_end_do()
@@ -1265,7 +1245,6 @@ CALL DZM_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
 CALL MYM_DEVICE(PDZZ,ZTMP3_DEVICE)
 CALL MYM_DEVICE(ZKEFF,ZTMP1_DEVICE)
 !$acc kernels
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZFLXZ(JI,JJ,JK)   = -XCMFS * ZTMP1_DEVICE(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) / ZTMP3_DEVICE(JI,JJ,JK)
 !$mnh_end_do()
@@ -1321,7 +1300,6 @@ ZA(:,:,:) = - MZF( MYF ( ZFLXZ * GZ_V_VW(PVM,PDZZ) ) )
 #else
 CALL GZ_V_VW_DEVICE(PVM,PDZZ,ZTMP1_DEVICE)
 !$acc kernels
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZTMP2_DEVICE(JI,JJ,JK) = ZFLXZ(JI,JJ,JK) * ZTMP1_DEVICE(JI,JJ,JK)
 !$mnh_end_do()
@@ -1329,7 +1307,6 @@ CALL GZ_V_VW_DEVICE(PVM,PDZZ,ZTMP1_DEVICE)
 CALL MYF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
 CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP1_DEVICE )
 !$acc kernels
-!$acc_nv loop independent collapse(3)
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZA(JI,JJ,JK) = - ZTMP1_DEVICE(JI,JJ,JK)
 !$mnh_end_do()   
@@ -1426,14 +1403,12 @@ IF(HTURBDIM=='3DIM') THEN
   IF (.NOT. L2D) THEN 
     CALL MYM_DEVICE(PRHODJ,ZTMP1_DEVICE)
     !$acc kernels
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) /PDYY(JI,JJ,JK)
     !$mnh_end_do()
     !$acc end kernels
     CALL MZM_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE)
     !$acc kernels
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLXZ(JI,JJ,JK)
     !$mnh_end_do()
@@ -1442,21 +1417,18 @@ IF(HTURBDIM=='3DIM') THEN
     IF (.NOT. LFLAT) THEN
       CALL MZF_DEVICE( PDZZ, ZTMP2_DEVICE )
       !$acc kernels
-      !$acc_nv loop independent collapse(3)
       !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
          ZTMP3_DEVICE(JI,JJ,JK) = ZFLXZ(JI,JJ,JK)*PDZY(JI,JJ,JK)
       !$mnh_end_do()
       !$acc end kernels
       CALL MZF_DEVICE( ZTMP3_DEVICE, ZTMP4_DEVICE )
       !$acc kernels
-      !$acc_nv loop independent collapse(3)
       !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
          ZTMP3_DEVICE(JI,JJ,JK) = ZTMP4_DEVICE(JI,JJ,JK) / PDYY(JI,JJ,JK)
       !$mnh_end_do()
       !$acc end kernels
       CALL MYF_DEVICE(ZTMP3_DEVICE,ZTMP4_DEVICE)
       !$acc kernels
-      !$acc_nv loop independent collapse(3)
       !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
          ZTMP3_DEVICE(JI,JJ,JK) =  PRHODJ(JI,JJ,JK) / ZTMP2_DEVICE(JI,JJ,JK) * ZTMP4_DEVICE(JI,JJ,JK)
       !$mnh_end_do()
@@ -1480,7 +1452,6 @@ IF(HTURBDIM=='3DIM') THEN
 #else
     CALL GY_W_VW_DEVICE( PWM,PDYY,PDZZ,PDZY,ZTMP1_DEVICE)
     !$acc kernels
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = ZFLXZ(JI,JJ,JK) * ZTMP1_DEVICE(JI,JJ,JK)
     !$mnh_end_do()
@@ -1488,7 +1459,6 @@ IF(HTURBDIM=='3DIM') THEN
     CALL MYF_DEVICE(ZTMP2_DEVICE,ZTMP1_DEVICE)
     CALL MZF_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
     !$acc kernels
-    !$acc_nv loop independent collapse(3)
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZA(JI,JJ,JK) = - ZTMP2_DEVICE(JI,JJ,JK)
     !$mnh_end_do()
diff --git a/src/MNH/turb_ver_thermo_corr.f90 b/src/MNH/turb_ver_thermo_corr.f90
index c78119ca5..590cc7d74 100644
--- a/src/MNH/turb_ver_thermo_corr.f90
+++ b/src/MNH/turb_ver_thermo_corr.f90
@@ -566,9 +566,6 @@ END IF
   !dir$ concurrent
   ZTMP1_DEVICE(:,:,:) = PPHI3(:,:,:)*PDTH_DZ(:,:,:)**2
 #else
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP1_DEVICE(JI,JJ,JK) = PPHI3(JI,JJ,JK)*BR_P2(PDTH_DZ(JI,JJ,JK))
   !$mnh_end_do()
@@ -576,9 +573,6 @@ END IF
   !$acc end kernels
   CALL MZF_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP2_DEVICE(:,:,:) )
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZF      (JI,JJ,JK) = XCTV*PLM(JI,JJ,JK)*PLEPS(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK) 
   !$mnh_end_do()
@@ -722,9 +716,6 @@ END IF
   !$acc end kernels
   CALL DZM_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP2_DEVICE(:,:,:) )
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZTMP3_DEVICE(JI,JJ,JK) = ZTMP2_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK)
   !$mnh_end_do()
@@ -735,9 +726,6 @@ END IF
   !$acc kernels 
 #else
   !$acc kernels 
-#endif
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
 #endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZFLXZ(JI,JJ,JK)   = ZF(JI,JJ,JK)                                                              &
@@ -763,9 +751,6 @@ END IF
   !$acc end kernels
 #else
   !$acc kernels 
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(2)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU )
   ZFLXZ(JI,JJ,IKB) = XCTV * PPHI3(JI,JJ,IKB+KKL) * PLM(JI,JJ,IKB)   &
      * PLEPS(JI,JJ,IKB)                                         &
@@ -869,9 +854,6 @@ END IF
 !$acc end kernels
     CALL MZF_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP2_DEVICE(:,:,:) )
 !$acc kernels 
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)    
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
       ZF      (JI,JJ,JK) = XCTV*PLM(JI,JJ,JK)*PLEPS(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK)
     !$mnh_end_do()
@@ -1060,9 +1042,6 @@ END IF
     CALL DZM_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP3_DEVICE(:,:,:) )
     CALL DZM_DEVICE( ZTMP2_DEVICE(:,:,:), ZTMP4_DEVICE(:,:,:) )
     !$acc kernels 
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP1_DEVICE(JI,JJ,JK) = ZTMP3_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK)
        ZTMP2_DEVICE(JI,JJ,JK) = ZTMP4_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK)      
@@ -1085,9 +1064,6 @@ END IF
     CALL DZM_DEVICE( ZTMP8_DEVICE(:,:,:), ZTMP1_DEVICE(:,:,:) )
     !!!
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP7_DEVICE(JI,JJ,JK) =   ( ZTMP3_DEVICE(JI,JJ,JK) + ZTMP4_DEVICE(JI,JJ,JK)) * PDR_DZ(JI,JJ,JK)  &
                               * ZTMP2_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK) &
@@ -1103,9 +1079,6 @@ END IF
     CALL DZM_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP3_DEVICE(:,:,:) )
     CALL DZM_DEVICE( ZTMP2_DEVICE(:,:,:), ZTMP4_DEVICE(:,:,:) )
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP1_DEVICE(JI,JJ,JK) = ZTMP3_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK)
        ZTMP2_DEVICE(JI,JJ,JK) = ZTMP4_DEVICE(JI,JJ,JK) /PDZZ(JI,JJ,JK)
@@ -1116,9 +1089,6 @@ END IF
     CALL MZF_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP4_DEVICE(:,:,:) )
     CALL MZF_DEVICE( ZTMP2_DEVICE(:,:,:), ZTMP5_DEVICE(:,:,:) )
     !$acc kernels  present_cr(zflxz)
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZFLXZ(JI,JJ,JK)   = ZF(JI,JJ,JK)                           &
             + PIMPL * XCTV*PLM(JI,JJ,JK)*PLEPS(JI,JJ,JK)*0.5 * ZTMP3_DEVICE(JI,JJ,JK)  &
@@ -1128,9 +1098,6 @@ END IF
 #endif
     !
     ! special case near the ground ( uncentred gradient )
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(2)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU )
     ZFLXZ(JI,JJ,IKB) =                                            & 
     (XCHT1 * PPHI3(JI,JJ,IKB+KKL) + XCHT2 * PPSI3(JI,JJ,IKB+KKL))   &
@@ -1246,9 +1213,6 @@ END IF
     !dir$ concurrent
     ZTMP1_DEVICE(:,:,:) = PPSI3(:,:,:)*PDR_DZ(:,:,:)**2
 #else
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP1_DEVICE(JI,JJ,JK) = PPSI3(JI,JJ,JK)*BR_P2(PDR_DZ(JI,JJ,JK))
     !$mnh_end_do()
@@ -1256,9 +1220,6 @@ END IF
     !$acc end kernels
     CALL MZF_DEVICE( ZTMP1_DEVICE(:,:,:), ZTMP2_DEVICE(:,:,:) )
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZF      (JI,JJ,JK) = XCTV*PLM(JI,JJ,JK)*PLEPS(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK)
     !$mnh_end_do()
@@ -1404,18 +1365,12 @@ END IF
     !$acc end kernels
     CALL DZM_DEVICE( ZTMP2_DEVICE(:,:,:), ZTMP3_DEVICE(:,:,:) )
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK)
     !$mnh_end_do()
     !$acc end kernels
     CALL MZF_DEVICE( ZTMP2_DEVICE(:,:,:), ZTMP1_DEVICE(:,:,:) )
     !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)    
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZTMP2_DEVICE(JI,JJ,JK) = ZTMP3_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK)
     !$mnh_end_do()
@@ -1425,9 +1380,6 @@ END IF
     !$acc kernels 
 #else
     !$acc kernels 
-#endif
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(3)
 #endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
        ZFLXZ(JI,JJ,JK)   = ZF(JI,JJ,JK)                        &
@@ -1454,9 +1406,6 @@ END IF
    !$acc end kernels
 #else
     !$acc kernels 
-#ifdef MNH_COMPILER_NVHPC
-    !$acc loop independent collapse(2)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU )
     ZFLXZ(JI,JJ,IKB) = XCHV * PPSI3(JI,JJ,IKB+KKL) * PLM(JI,JJ,IKB)   &
         * PLEPS(JI,JJ,IKB)                                        &
diff --git a/src/MNH/turb_ver_thermo_flux.f90 b/src/MNH/turb_ver_thermo_flux.f90
index 4dae26c8d..ac93e74a9 100644
--- a/src/MNH/turb_ver_thermo_flux.f90
+++ b/src/MNH/turb_ver_thermo_flux.f90
@@ -745,9 +745,6 @@ ZDFDDTDZ(:,:,:) = -XCSHF*ZKEFF(:,:,:)*D_PHI3DTDZ_O_DDTDZ(PPHI3,PREDTH1,PREDR1,PR
 #else
 CALL DZM_DEVICE(PTHLM, ZTMP1_DEVICE )
 !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZF      (JI,JJ,JK) = -XCSHF*PPHI3(JI,JJ,JK)*ZKEFF(JI,JJ,JK)*ZTMP1_DEVICE(JI,JJ,JK)/PDZZ(JI,JJ,JK)
 !$mnh_end_do()    
@@ -755,9 +752,6 @@ CALL DZM_DEVICE(PTHLM, ZTMP1_DEVICE )
 !
 CALL D_PHI3DTDZ_O_DDTDZ(PPHI3,PREDTH1,PREDR1,PRED2TH3,PRED2THR3,HTURBDIM,GUSERV,ZTMP2_DEVICE)
 !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZDFDDTDZ(JI,JJ,JK) = -XCSHF*ZKEFF(JI,JJ,JK)*ZTMP2_DEVICE(JI,JJ,JK)
 !$mnh_end_do()   
@@ -978,9 +972,6 @@ ZTMP1_DEVICE(:,:,:) = PTHLP(:,:,:) - PTHLM(:,:,:)
 !$acc end kernels
 CALL DZM_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
 !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
    ZFLXZ(JI,JJ,JK)   =  ZF(JI,JJ,JK) + PIMPL * ZDFDDTDZ(JI,JJ,JK) * ZTMP2_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK)
 !$mnh_end_do()
@@ -1055,9 +1046,6 @@ ELSE
   IF (KRR /= 0) THEN
     CALL MZM_DEVICE(PETHETA,ZTMP1_DEVICE)
 !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)  
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
       ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLXZ(JI,JJ,JK)
     !$mnh_end_do()
@@ -1256,9 +1244,6 @@ IF (KRR /= 0) THEN
 #else
   CALL DZM_DEVICE( PRM(:,:,:,1), ZTMP1_DEVICE )
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZF      (JI,JJ,JK) = -XCSHF*PPSI3(JI,JJ,JK)*ZKEFF(JI,JJ,JK)*ZTMP1_DEVICE(JI,JJ,JK)/PDZZ(JI,JJ,JK)
   !$mnh_end_do()
@@ -1266,9 +1251,6 @@ IF (KRR /= 0) THEN
   CALL D_PSI3DRDZ_O_DDRDZ(PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,GUSERV,ZTMP1_DEVICE)
 !CALL D_PHI3DRDZ_O_DDRDZ_DEVICE(PPSI3,PREDR1,PREDTH1,PRED2R3,PRED2THR3,HTURBDIM,GUSERV,ZTMP1_DEVICE)
   !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
   !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
      ZDFDDRDZ(JI,JJ,JK) = -XCSHF*ZKEFF(JI,JJ,JK)*ZTMP1_DEVICE(JI,JJ,JK)
   !$mnh_end_do()
@@ -1492,9 +1474,6 @@ IF (KRR /= 0) THEN
 !$acc end kernels
   CALL DZM_DEVICE( ZTMP1_DEVICE, ZTMP2_DEVICE )
 !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)  
-#endif
 !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)  
    ZFLXZ(JI,JJ,JK)   = ZF(JI,JJ,JK) + PIMPL * ZDFDDRDZ(JI,JJ,JK) *ZTMP2_DEVICE(JI,JJ,JK) / PDZZ(JI,JJ,JK)
 !$mnh_end_do()
@@ -1555,18 +1534,12 @@ IF (KRR /= 0) THEN
 #else
     CALL MZM_DEVICE(PEMOIST,ZTMP1_DEVICE)
 !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
       ZTMP2_DEVICE(JI,JJ,JK) = ZTMP1_DEVICE(JI,JJ,JK) * ZFLXZ(JI,JJ,JK)
     !$mnh_end_do()
 !$acc end kernels
     CALL MZF_DEVICE( ZTMP2_DEVICE, ZTMP3_DEVICE )
 !$acc kernels
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop independent collapse(3)
-#endif
     !$mnh_do_concurrent ( JI=1:JIU,JJ=1:JJU,JK=1:JKU)
       ZA(JI,JJ,JK)   =  PBETA(JI,JJ,JK) * ZTMP3_DEVICE(JI,JJ,JK)
     !$mnh_end_do()
-- 
GitLab