diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90
index 1f7313ea2cb0994dfdd2513695fec75b3580ee0a..6b5041b15ae0c10ad520cbef907dc069da84c0ff 100644
--- a/src/MNH/advection_metsv.f90
+++ b/src/MNH/advection_metsv.f90
@@ -20,7 +20,7 @@ INTERFACE
 USE MODD_IO,        ONLY: TFILEDATA
 USE MODD_TYPE_DATE, ONLY: DATE_TIME
 !
-TYPE(TFILEDATA),        INTENT(INOUT) ::  TPFILE       ! Output file
+TYPE(TFILEDATA),        INTENT(INOUT)::  TPFILE       ! Output file
 CHARACTER(LEN=6),       INTENT(IN)   :: HMET_ADV_SCHEME, & ! Control of the
                                         HSV_ADV_SCHEME, &  ! scheme applied
                                         HUVW_ADV_SCHEME
@@ -908,12 +908,12 @@ DO JSPL=1,KSPLIT
 !
 !  Guesses of the field inside the time splitting loop
 !
-   !$acc kernels   
+   !$acc kernels present_cr(ZTH)  
    ZTH(:,:,:) = ZTH(:,:,:) + ( ZRTHS_PPM(:,:,:) + ZRTHS_OTHER(:,:,:) + PRTHS_CLD(:,:,:)) * &
         ZTSTEP_PPM / PRHODJ(:,:,:)
    !$acc end kernels
    IF (GTKE) THEN
-      !$acc kernels
+      !$acc kernels present_cr(ZTKE)
       ZTKE(:,:,:) = ZTKE(:,:,:) + ( ZRTKES_PPM(:,:,:) + ZRTKES_OTHER(:,:,:) ) * ZTSTEP_PPM / PRHODJ(:,:,:)
       !$acc end kernels
    END IF
diff --git a/src/MNH/rain_ice_fast_rg.f90 b/src/MNH/rain_ice_fast_rg.f90
index 753a537cd626a1cca52fce7ca6f42f5ed23f35a9..cf0279cfa3eb017b93925b83a9c01fa020c292c8 100644
--- a/src/MNH/rain_ice_fast_rg.f90
+++ b/src/MNH/rain_ice_fast_rg.f90
@@ -373,7 +373,7 @@ END IF
     END DO ! CONCURRENT
 !
     !$acc_nv loop independent , private (JL) 
-    DO JJ = 1, IGDRY
+    DO CONCURRENT (JJ=1:IGDRY)
       JL = I1(JJ)
 #ifndef MNH_BITREP
       ZZW1(JL,3) = MIN( PRSS(JL),XFSDRYG*ZVEC3(JJ)                           & ! RSDRYG
@@ -493,7 +493,7 @@ END IF
     END DO ! CONCURRENT
 !
     !$acc_nv loop independent , private (JL)
-    DO JJ = 1, IGDRY
+    DO CONCURRENT (JJ=1:IGDRY)
       JL = I1(JJ)
 #ifndef MNH_BITREP
       ZZW1(JL,4) = MIN( PRRS(JL),XFRDRYG*ZVEC3(JJ)                  & ! RRDRYG
diff --git a/src/MNH/rain_ice_sedimentation_split.f90 b/src/MNH/rain_ice_sedimentation_split.f90
index b5171424242035e8f71a0b0abfbda98933ebd4df..82688b8ea1c4952a1ef18fcfab80fe66f5a795b2 100644
--- a/src/MNH/rain_ice_sedimentation_split.f90
+++ b/src/MNH/rain_ice_sedimentation_split.f90
@@ -326,9 +326,7 @@ IF ( OSEDIC ) THEN
   ZTMP2 = 0.5 * GAMMA( XNUC2 + 1.0 / XALPHAC2 ) / ( GAMMA( XNUC2 ) )
 
   IF ( GPRESENT_PSEA ) THEN
-#ifdef MNH_COMPILER_NVHPC
-     !$acc loop independent collapse(2)
-#endif
+     !$acc_nv loop independent collapse(2)
      DO CONCURRENT ( JI=1:SIZE( PRCS, 1 ) ,  JJ = 1: SIZE( PRCS, 2 ) )
         ZOMPSEA  (JI,JJ) = 1.-PSEA(JI,JJ)
         ZTMP1_2D (JI,JJ) = PSEA(JI,JJ)*XLBC(2)  +ZOMPSEA(JI,JJ)*XLBC(1)
@@ -337,9 +335,7 @@ IF ( OSEDIC ) THEN
         ZTMP3_2D (JI,JJ) = (1.-PTOWN(JI,JJ))*ZCONC_TMP(JI,JJ)+PTOWN(JI,JJ)*XCONC_URBAN
         ZTMP4_2D (JI,JJ) = MAX( 1. , ZOMPSEA(JI,JJ)*ZTMP1 + PSEA(JI,JJ)*ZTMP2 )
       END DO
-#ifdef MNH_COMPILER_NVHPC
-      !$acc loop independent collapse(3)
-#endif
+      !$acc_nv loop independent collapse(3)
       DO CONCURRENT ( JI=1:SIZE( PRCS, 1 ) ,  JJ = 1:SIZE( PRCS, 2 ) , JK=KKTB:KKTE )  
           ZLBC   (JI,JJ,JK) = ZTMP1_2D(JI,JJ)
           ZFSEDC (JI,JJ,JK) = ZTMP2_2D(JI,JJ)
@@ -387,9 +383,7 @@ PRSS(:,:,:)  = PRST(:,:,:)* ZINVTSTEP
 PRGS(:,:,:)  = PRGT(:,:,:)* ZINVTSTEP
 IF ( KRR == 7 ) PRHS(:,:,:)  = PRHT(:,:,:)* ZINVTSTEP
 #else
-#ifdef MNH_COMPILER_NVHPC
-!$acc loop collapse(3) independent
-#endif
+!$acc_nv loop collapse(3) independent
 DO CONCURRENT ( JI=1:SIZE( PRRS, 1 ) , JJ=1:SIZE( PRRS, 2 ) , JK=1:SIZE( PRRS, 3 ) )
       ZPRRS(JI,JJ,JK) = PRRS(JI,JJ,JK) - PRRT(JI,JJ,JK) * ZINVTSTEP
       ZPRSS(JI,JJ,JK) = PRSS(JI,JJ,JK) - PRST(JI,JJ,JK) * ZINVTSTEP
@@ -399,9 +393,7 @@ DO CONCURRENT ( JI=1:SIZE( PRRS, 1 ) , JJ=1:SIZE( PRRS, 2 ) , JK=1:SIZE( PRRS, 3
       PRGS (JI,JJ,JK) =                  PRGT(JI,JJ,JK) * ZINVTSTEP
 END DO
 IF ( KRR == 7 ) THEN
-#ifdef MNH_COMPILER_NVHPC   
-!$acc loop collapse(3) independent
-#endif
+!$acc_nv loop collapse(3) independent
 DO CONCURRENT ( JI=1:SIZE( PRRS, 1 ) , JJ=1:SIZE( PRRS, 2 ) , JK=1:SIZE( PRRS, 3 ) )   
         ZPRHS(JI,JJ,JK) = PRHS(JI,JJ,JK) - PRHT(JI,JJ,JK) * ZINVTSTEP
         PRHS (JI,JJ,JK) =                  PRHT(JI,JJ,JK) * ZINVTSTEP
@@ -432,9 +424,7 @@ DO JN = 1 , KSPLITR
     IF ( KRR == 7 ) PRHS(:,:,:) = PRHS(:,:,:) + ZPRHS(:,:,:) * ZTSPLITR
   END IF
   !
-#ifdef MNH_COMPILER_NVHPC
-  !$acc loop independent collapse(3)
-#endif
+  !$acc_nv loop independent collapse(3)
   DO CONCURRENT ( JI=KIB:KIE,JJ=KJB:KJE,JK=KKTB:KKTE )
   IF ( OSEDIC ) GSEDIMC(JI,JJ,JK) =                &
                    PRCS(JI,JJ,JK) > ZRTMIN(2)
@@ -473,8 +463,8 @@ DO JN = 1 , KSPLITR
   IF ( OSEDIC ) THEN
     ZWSED(:,:,:) = 0.
     IF( JN==1 ) PRCS(:,:,:) = PRCS(:,:,:) * PTSTEP
-!$acc loop independent
-     DO JL=1,ISEDIMC
+!$acc_nv loop independent
+     DO CONCURRENT (JL=1:ISEDIMC)
        ZRSLOC = PRCS(IC1(JL),IC2(JL),IC3(JL))
        ZRTLOC = PRCT(IC1(JL),IC2(JL),IC3(JL))
        IF (ZRSLOC > ZRTMIN(2) .AND. ZRTLOC > XRTMIN(2)) THEN
@@ -532,8 +522,8 @@ DO JN = 1 , KSPLITR
 !
   IF( JN==1 ) PRRS(:,:,:) = PRRS(:,:,:) * PTSTEP
   ZWSED(:,:,:) = 0.
-!$acc loop independent
-  DO JL=1,ISEDIMR
+!$acc_nv loop independent
+  DO CONCURRENT (JL=1:ISEDIMR)
     ZRSLOC = PRRS(IR1(JL),IR2(JL),IR3(JL))
     IF( ZRSLOC > ZRTMIN(3) ) THEN
       ZRHODREFLOC =  PRHODREF(IR1(JL),IR2(JL),IR3(JL))
@@ -565,8 +555,8 @@ DO JN = 1 , KSPLITR
 !
   IF( JN==1 ) PRIS(:,:,:) = PRIS(:,:,:) * PTSTEP
   ZWSED(:,:,:) = 0.
-!$acc loop independent
-  DO JL=1,ISEDIMI
+!$acc_nv loop independent
+  DO  CONCURRENT (JL=1:ISEDIMI)
     ZRSLOC = PRIS(II1(JL),II2(JL),II3(JL))
     IF( ZRSLOC >  MAX(ZRTMIN(4),1.0E-7 )) THEN ! limitation of the McF&H formula
       ZRHODREFLOC =  PRHODREF(II1(JL),II2(JL),II3(JL))
@@ -599,8 +589,8 @@ DO JN = 1 , KSPLITR
 !
   IF( JN==1 ) PRSS(:,:,:) = PRSS(:,:,:) * PTSTEP
   ZWSED(:,:,:) = 0.
-!$acc loop independent
-  DO JL=1,ISEDIMS
+!$acc_nv loop independent
+  DO CONCURRENT (JL=1:ISEDIMS)
     ZRSLOC = PRSS(IS1(JL),IS2(JL),IS3(JL))
     IF( ZRSLOC > ZRTMIN(5) ) THEN
       ZRHODREFLOC =  PRHODREF(IS1(JL),IS2(JL),IS3(JL))
@@ -630,8 +620,8 @@ DO JN = 1 , KSPLITR
 !
   ZWSED(:,:,:) = 0.
   IF( JN==1 ) PRGS(:,:,:) = PRGS(:,:,:) * PTSTEP
-!$acc loop independent
-  DO JL=1,ISEDIMG
+!$acc_nv loop independent
+  DO  CONCURRENT (JL=1:ISEDIMG)
     ZRSLOC = PRGS(IG1(JL),IG2(JL),IG3(JL))
     IF( ZRSLOC > ZRTMIN(6) ) THEN
       ZRHODREFLOC =  PRHODREF(IG1(JL),IG2(JL),IG3(JL))
@@ -662,8 +652,8 @@ DO JN = 1 , KSPLITR
   IF ( KRR == 7 ) THEN
     IF( JN==1 ) PRHS(:,:,:) = PRHS(:,:,:) * PTSTEP
     ZWSED(:,:,:) = 0.
-!$acc loop independent
-    DO JL=1,ISEDIMH
+!$acc_nv loop independent
+    DO CONCURRENT (JL=1:ISEDIMH)
       ZRSLOC = PRHS(IH1(JL),IH2(JL),IH3(JL))
       IF( ZRSLOC > ZRTMIN(7) ) THEN
         ZRHODREFLOC =  PRHODREF(IH1(JL),IH2(JL),IH3(JL))
diff --git a/src/MNH/rain_ice_slow.f90 b/src/MNH/rain_ice_slow.f90
index 22818930dc457e29007062f431f16f1dd62c456b..5d5cf206840dbad012c02153fce1494aa5e6fa8d 100644
--- a/src/MNH/rain_ice_slow.f90
+++ b/src/MNH/rain_ice_slow.f90
@@ -180,14 +180,16 @@ ENDDO
 !*       3.3     compute the spontaneous freezing source: RRHONG
 !
 !$acc kernels
-  ZZW(:) = 0.0
-  GWORK(:) = PZT(:)<XTT-35.0 .AND. PRRT(:)>XRTMIN(3) .AND. PRRS(:)>0.
-  WHERE( GWORK(:) )
-    ZZW(:) = MIN( PRRS(:),PRRT(:)* PINVTSTEP )
-    PRGS(:) = PRGS(:) + ZZW(:)
-    PRRS(:) = PRRS(:) - ZZW(:)
-    PTHS(:) = PTHS(:) + ZZW(:) * zz_diff(:) ! f(L_f*(RRHONG))
-  ENDWHERE
+DO CONCURRENT (JL=1:JLU)  
+  ZZW(JL) = 0.0
+  GWORK(JL) = PZT(JL)<XTT-35.0 .AND. PRRT(JL)>XRTMIN(3) .AND. PRRS(JL)>0.
+  IF( GWORK(JL) )THEN
+    ZZW(JL) = MIN( PRRS(JL),PRRT(JL)* PINVTSTEP )
+    PRGS(JL) = PRGS(JL) + ZZW(JL)
+    PRRS(JL) = PRRS(JL) - ZZW(JL)
+    PTHS(JL) = PTHS(JL) + ZZW(JL) * zz_diff(JL) ! f(L_f*(RRHONG))
+  ENDIF
+ENDDO
 !$acc end kernels
 
   if ( lbudget_th ) call Budget_store_add( tbudgets(NBUDGET_TH), 'SFR', &
diff --git a/src/MNH/rain_ice_warm.f90 b/src/MNH/rain_ice_warm.f90
index ed6907b42e0cd8ef6a99c4af3881c2bb4411961b..205138b735258b6ba9b009b7493868033b7959c1 100644
--- a/src/MNH/rain_ice_warm.f90
+++ b/src/MNH/rain_ice_warm.f90
@@ -179,14 +179,16 @@ CALL MNH_MEM_GET( ZZW4,  JLU )
 !*       4.2    compute the autoconversion of r_c for r_r production: RCAUTR
 !
 !$acc kernels
-    zzw(:) = 0.
-    GWORK(:) = PRCS(:)>0.0 .AND. PHLC_HCF(:)>0.0
-    WHERE( GWORK(:) )
-      ZZW(:) = XTIMAUTC*MAX( PHLC_HRC(:)/PHLC_HCF(:)  - XCRIAUTC/PRHODREF(:),0.0)
-      ZZW(:) = MIN( PRCS(:),PHLC_HCF(:)*ZZW(:))
-      PRCS(:) = PRCS(:) - ZZW(:)
-      PRRS(:) = PRRS(:) + ZZW(:)
-    END WHERE
+DO CONCURRENT (JL=1:JLU)
+zzw(JL) = 0.
+    GWORK(JL) = PRCS(JL)>0.0 .AND. PHLC_HCF(JL)>0.0
+    IF( GWORK(JL) )THEN
+      ZZW(JL) = XTIMAUTC*MAX( PHLC_HRC(JL)/PHLC_HCF(JL)  - XCRIAUTC/PRHODREF(JL),0.0)
+      ZZW(JL) = MIN( PRCS(JL),PHLC_HCF(JL)*ZZW(JL))
+      PRCS(JL) = PRCS(JL) - ZZW(JL)
+      PRRS(JL) = PRRS(JL) + ZZW(JL)
+    ENDIF
+ENDDO
 !$acc end kernels
 
     if ( lbudget_rc ) call Budget_store_add( tbudgets(NBUDGET_RC), 'AUTO', &