diff --git a/src/MNH/rain_ice_fast_rg.f90 b/src/MNH/rain_ice_fast_rg.f90
index 99236f978708246bb13d0ec489096543509dcb88..0d3634267fdd502a2c40b0dd6aa382737abdeee6 100644
--- a/src/MNH/rain_ice_fast_rg.f90
+++ b/src/MNH/rain_ice_fast_rg.f90
@@ -8,7 +8,8 @@
 !  P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function
 !  P. Wautelet 03/06/2019: remove PACK/UNPACK intrinsics (to get more performance and better OpenACC support)
 !  P. Wautelet 05/06/2019: optimisations
-!  J. Escobar 11/08/2020: Bypass PGI/NVHPC OPENACC BUG, error 700: Illegal address during kernel execution => DO CONCURRENT 
+!  J. Escobar 11/08/2020: Bypass PGI/NVHPC OPENACC BUG, error 700: Illegal address during kernel execution => DO CONCURRENT
+!  J. Escobar 12/08/2020: Bypass PGI/NVHPC OPENACC BUG data partially present => enter data in ini_rain_ce & DO CONCURRENT
 !-----------------------------------------------------------------
 MODULE MODE_RAIN_ICE_FAST_RG
 
@@ -113,7 +114,10 @@ REAL,    DIMENSION(:,:), ALLOCATABLE :: ZZW1              ! Work arrays
 !
 ! OUT variables
 !
-!$acc &             PRDRYG, PRWETG )
+!$acc &             PRDRYG, PRWETG, &
+!
+! use var
+!$acc &              XKER_SDRYG )
 
 IF (MPPDB_INITIALIZED) THEN
   !Check all IN arrays
@@ -285,14 +289,14 @@ ALLOCATE( ZZW1 (size(PRHODREF),7) )
 !               SDRYG-kernel
 !
 !$acc loop independent
-    DO JJ = 1,IGDRY
+    DO CONCURRENT ( JJ = 1:IGDRY )
       ZVEC3(JJ) =  (  XKER_SDRYG(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ)          &
                     - XKER_SDRYG(IVEC1(JJ)+1,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
                                                          * ZVEC1(JJ) &
                  - (  XKER_SDRYG(IVEC1(JJ)  ,IVEC2(JJ)+1)* ZVEC2(JJ)          &
                     - XKER_SDRYG(IVEC1(JJ)  ,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
                                                          * (ZVEC1(JJ) - 1.0)
-    END DO
+    END DO ! CONCURRENT
 !
 !$acc loop independent
     DO JJ = 1, IGDRY
diff --git a/src/MNH/rain_ice_fast_rs.f90 b/src/MNH/rain_ice_fast_rs.f90
index 8027a5508ad7cbd49eff909815ce8e1017b04b61..551bf36c813938ba5839a32e0dbaed69d3b714b7 100644
--- a/src/MNH/rain_ice_fast_rs.f90
+++ b/src/MNH/rain_ice_fast_rs.f90
@@ -8,7 +8,8 @@
 !  P. Wautelet 26/04/2019: replace non-standard FLOAT function by REAL function
 !  P. Wautelet 03/06/2019: remove PACK/UNPACK intrinsics (to get more performance and better OpenACC support)
 !  P. Wautelet 05/06/2019: optimisations
-!  J. Escobar 11/08/2020: Bypass PGI/NVHPC OPENACC BUG, error 700: Illegal address during kernel execution => DO CONCURRENT 
+!  J. Escobar 11/08/2020: Bypass PGI/NVHPC OPENACC BUG, error 700: Illegal address during kernel execution => DO CONCURRENT
+!  J. Escobar 12/08/2020: Bypass PGI/NVHPC OPENACC BUG data partially present => enter data in ini_rain_ce & DO CONCURRENT
 !-----------------------------------------------------------------
 MODULE MODE_RAIN_ICE_FAST_RS
 
@@ -100,7 +101,10 @@ REAL,    DIMENSION(:), ALLOCATABLE :: ZZW1, ZZW2, ZZW3, ZZW4 ! Work arrays
 !
 ! INOUT variables
 !
-!$acc &             PRCS, PRRS, PRSS, PRGS, PTHS )
+!$acc &             PRCS, PRRS, PRSS, PRGS, PTHS , &
+!
+! use variable
+!$acc &             XGAMINC_RIM1,XGAMINC_RIM2)
 !
 ! OUT variables
 !
@@ -148,7 +152,7 @@ GWORK(:) = PRCT(:)>XRTMIN(2) .AND. PRST(:)>XRTMIN(5) .AND. PRCS(:)>0.0 .AND. PZT
 #ifndef MNH_OPENACC
 IGRIM = COUNTJV( GWORK(:), I1(:) )
 #else
-CALL COUNTJV_DEVICE( GWORK(:), I1(:), IGRIM )
+CALL COUNTJV_DEVICE( GWORK, I1, IGRIM )
 #endif
   !
   IF( IGRIM>0 ) THEN
@@ -192,8 +196,7 @@ CALL COUNTJV_DEVICE( GWORK(:), I1(:), IGRIM )
 !
 !        5.1.4  riming of the small sized aggregates
 !
-!$acc loop independent
-    DO JJ = 1, IGRIM
+    DO CONCURRENT ( JJ = 1:IGRIM ) ! LOCAL(JL)
       JL = I1(JJ)
 #ifndef MNH_BITREP
       ZZW1(JJ) = MIN( PRCS(JL),                           &
@@ -209,7 +212,7 @@ CALL COUNTJV_DEVICE( GWORK(:), I1(:), IGRIM )
       PRCS(JL) = PRCS(JL) - ZZW1(JJ)
       PRSS(JL) = PRSS(JL) + ZZW1(JJ)
       PTHS(JL) = PTHS(JL) + ZZW1(JJ)*(PLSFACT(JL)-PLVFACT(JL)) ! f(L_f*(RCRIMSS))
-    END DO
+    END DO ! CONCURRENT
 !
 !        5.1.5  perform the linear interpolation of the normalized
 !               "XBS"-moment of the incomplete gamma function
@@ -222,8 +225,7 @@ CALL COUNTJV_DEVICE( GWORK(:), I1(:), IGRIM )
 !        5.1.6  riming-conversion of the large sized aggregates into graupeln
 !
 !
-!$acc loop independent
-    DO JJ = 1, IGRIM
+    DO CONCURRENT (JJ = 1:IGRIM ) ! LOCAL(JL)
       JL = I1(JJ)
       IF ( PRSS(JL) > 0.0 ) THEN
 #ifndef MNH_BITREP
@@ -250,7 +252,7 @@ CALL COUNTJV_DEVICE( GWORK(:), I1(:), IGRIM )
         PRGS(JL) = PRGS(JL) + ZZW2(JJ)+ZZW3(JJ)
         PTHS(JL) = PTHS(JL) + ZZW2(JJ)*(PLSFACT(JL)-PLVFACT(JL)) ! f(L_f*(RCRIMSG))
       END IF
-    END DO
+    END DO ! CONCURRENT
 !$acc end kernels
 
 !$acc end data
@@ -348,8 +350,7 @@ CALL COUNTJV_DEVICE( GWORK(:), I1(:), IGRIM )
 !
 !        5.2.4  raindrop accretion on the small sized aggregates
 !
-!$acc loop independent
-    DO JJ = 1, IGACC
+    DO CONCURRENT ( JJ = 1:IGACC ) ! LOCAL(JL)
       JL = I1(JJ)
 #ifndef MNH_BITREP
       ZZW2(JJ) =                                                          & !! coef of RRACCS
@@ -368,7 +369,7 @@ CALL COUNTJV_DEVICE( GWORK(:), I1(:), IGRIM )
       PRRS(JL) = PRRS(JL) - ZZW4(JJ)
       PRSS(JL) = PRSS(JL) + ZZW4(JJ)
       PTHS(JL) = PTHS(JL) + ZZW4(JJ)*(PLSFACT(JL)-PLVFACT(JL)) ! f(L_f*(RRACCSS))
-    END DO
+    END DO ! CONCURRENT
 !
 !        5.2.4b perform the bilinear interpolation of the normalized
 !               RACCS-kernel
@@ -381,7 +382,6 @@ CALL COUNTJV_DEVICE( GWORK(:), I1(:), IGRIM )
                     -  XKER_RACCS(IVEC2(JJ)  ,IVEC1(JJ)  )*(ZVEC1(JJ) - 1.0) ) &
                                                            * (ZVEC2(JJ) - 1.0)
     END DO ! CONCURRENT
-!$acc loop independent
     DO JJ = 1, IGACC
       ZZW2(JJ) = ZZW2(JJ) * ZVEC3(JJ)
     END DO
@@ -401,8 +401,7 @@ CALL COUNTJV_DEVICE( GWORK(:), I1(:), IGRIM )
 !        5.2.6  raindrop accretion-conversion of the large sized aggregates
 !               into graupeln
 !
-!$acc loop independent
-    DO JJ = 1, IGACC
+    DO CONCURRENT ( JJ = 1:IGACC ) ! LOCAL(JL)
       JL = I1(JJ)
       IF ( PRSS(JL) > 0.0 ) THEN
         ZZW2(JJ) = MAX( MIN( PRRS(JL),ZZW2(JJ)-ZZW4(JJ) ),0.0 )       ! RRACCSG
@@ -427,7 +426,7 @@ CALL COUNTJV_DEVICE( GWORK(:), I1(:), IGRIM )
                                 ! f(L_f*(RRACCSG))
         END IF
       END IF
-    END DO
+    END DO ! CONCURRENT
 !$acc end kernels
 
 !$acc end data