diff --git a/src/MNH/rain_ice_red.f90 b/src/MNH/rain_ice_red.f90
index 6ce8681cf88e1263aeb83f41eb8835049db94f37..2492f08081e12f46167a9fc26b502207da73b1e2 100644
--- a/src/MNH/rain_ice_red.f90
+++ b/src/MNH/rain_ice_red.f90
@@ -1183,8 +1183,12 @@ end if
 !               -----------------------
 !
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
-!$acc kernels present_cr( ZRS_TEND, ZRG_TEND, ZRH_TEND, ZRCHONI, ZRVDEPS, ZRIAGGS, ZRIAUTS, ZRVDEPG, ZRCAUTR, ZRCACCR, ZRREVAV, &
-!$acc &                   ZRSMLTG, ZRCMLTSR, ZRICFRRG, ZRRCFRIG, ZRICFRR, ZRGMLTR, ZRHMLTR, ZRCBERI )
+#ifdef MNH_COMPILER_CCE
+!$acc kernels present( ZRS_TEND, ZRG_TEND, ZRH_TEND, ZRCHONI, ZRVDEPS, ZRIAGGS, ZRIAUTS, ZRVDEPG, ZRCAUTR, ZRCACCR, ZRREVAV, &
+!$acc &                ZRSMLTG, ZRCMLTSR, ZRICFRRG, ZRRCFRIG, ZRICFRR, ZRGMLTR, ZRHMLTR, ZRCBERI, ZT, ZZ_LSFACT, ZZ_LVFACT   )
+#else
+!$acc kernels
+#endif
 IKB=KKA+JPVEXT*KKL
 IKE=KKU-JPVEXT*KKL
 IKTB=1+JPVEXT
@@ -1369,13 +1373,19 @@ CALL COUNTJV_DEVICE(ODMICRO(:,:,:),I1(:),I2(:),I3(:),IMICRO)
 !Packing
 GTEST=.false.
 IF(HSUBG_AUCV_RC=='PDF ' .AND. CSUBG_PR_PDF=='SIGM') GTEST=.true.
-!$acc kernels present_cr( ZSIGMA_RC, ZRHT, ZEXT_RH,                                                                                   &
-!$acc &                   ZTOT_RVHENI, ZTOT_RCHONI, ZTOT_RRHONG, ZTOT_RVDEPS, ZTOT_RIAGGS, ZTOT_RIAUTS, ZTOT_RVDEPG, ZTOT_RCAUTR,     &
-!$acc &                   ZTOT_RCACCR, ZTOT_RREVAV, ZTOT_RCRIMSS, ZTOT_RCRIMSG, ZTOT_RSRIMCG, ZTOT_RIMLTC, ZTOT_RCBERI, ZTOT_RHMLTR,  &
-!$acc &                   ZTOT_RSMLTG, ZTOT_RCMLTSR, ZTOT_RRACCSS,  ZTOT_RRACCSG,  ZTOT_RSACCRG, ZTOT_RICFRRG,  ZTOT_RRCFRIG,         &
-!$acc &                   ZTOT_RICFRR, ZTOT_RCWETG, ZTOT_RIWETG, ZTOT_RRWETG, ZTOT_RSWETG, ZTOT_RCDRYG, ZTOT_RIDRYG, ZTOT_RRDRYG,     &
-!$acc &                   ZTOT_RSDRYG, ZTOT_RWETGH, ZTOT_RGMLTR, ZTOT_RCWETH, ZTOT_RIWETH, ZTOT_RSWETH, ZTOT_RGWETH, ZTOT_RRWETH,     &
-!$acc &                   ZTOT_RCDRYH, ZTOT_RIDRYH, ZTOT_RSDRYH, ZTOT_RRDRYH, ZTOT_RGDRYH, ZTOT_RDRYHG                                )
+#ifdef MNH_COMPILER_CCE
+!$acc kernels present( ZSIGMA_RC, ZRHT, ZEXT_RH,                                                           &
+!acc &                 ZTOT_RVHENI,  ZTOT_RCHONI,  ZTOT_RRHONG,  ZTOT_RVDEPS,  ZTOT_RIAGGS,  ZTOT_RIAUTS,  &
+!acc &                 ZTOT_RVDEPG,  ZTOT_RCAUTR,  ZTOT_RCACCR,  ZTOT_RREVAV,  ZTOT_RCRIMSS, ZTOT_RCRIMSG, &
+!acc &                 ZTOT_RSRIMCG, ZTOT_RIMLTC,  ZTOT_RCBERI,  ZTOT_RHMLTR,  ZTOT_RSMLTG,  ZTOT_RCMLTSR, &
+!acc &                 ZTOT_RRACCSS, ZTOT_RRACCSG, ZTOT_RSACCRG, ZTOT_RICFRRG, ZTOT_RRCFRIG,               &
+!acc &                 ZTOT_RICFRR,  ZTOT_RCWETG,  ZTOT_RIWETG,  ZTOT_RRWETG,  ZTOT_RSWETG,  ZTOT_RCDRYG,  &
+!acc &                 ZTOT_RIDRYG,  ZTOT_RRDRYG,  ZTOT_RSDRYG,  ZTOT_RWETGH,  ZTOT_RGMLTR,  ZTOT_RCWETH,  &
+!acc &                 ZTOT_RIWETH,  ZTOT_RSWETH,  ZTOT_RGWETH,  ZTOT_RRWETH,  ZTOT_RCDRYH,  ZTOT_RIDRYH,  &
+!acc &                 ZTOT_RSDRYH,  ZTOT_RRDRYH,  ZTOT_RGDRYH,  ZTOT_RDRYHG                               )
+#else
+!$acc kernels
+#endif
 
 IF(IMICRO>0) THEN
 !$acc loop independent
@@ -2730,6 +2740,7 @@ CONTAINS
 !$acc data present( GW, ZW )
 #endif
 
+!$acc data present( PRH ) if ( present( PRH ) )
 !$acc kernels
   !We correct negativities with conservation
   ! 1) deal with negative values for mixing ratio, except for vapor
@@ -2765,7 +2776,6 @@ CONTAINS
   ENDDO
 
   IF(KRR==7) THEN
-!$acc data present( PRH )
     DO JK = 1, KKT
       DO JJ = 1, KJT
         DO JI = 1, KIT
@@ -2776,7 +2786,6 @@ CONTAINS
         ENDDO
       ENDDO
     ENDDO
-!$acc end data
   ENDIF
 
   ! 2) deal with negative vapor mixing ratio
@@ -2814,7 +2823,6 @@ CONTAINS
   ENDDO
 
   IF(KRR==7) THEN
-!$acc data present( PRH )
     DO JK = 1, KKT
       DO JJ = 1, KJT
         DO JI = 1, KIT
@@ -2826,9 +2834,9 @@ CONTAINS
         ENDDO
       ENDDO
     ENDDO
-!$acc end data
   ENDIF
 !$acc end kernels
+!$acc end data
 
 !$acc end data