diff --git a/src/MNH/ice4_compute_pdf.f90 b/src/MNH/ice4_compute_pdf.f90
index b21c4cf7308df7dea85752538ea99358709806ba..c8164539c22451f1c6aa15fbdf22402f11a9e158 100644
--- a/src/MNH/ice4_compute_pdf.f90
+++ b/src/MNH/ice4_compute_pdf.f90
@@ -150,30 +150,6 @@ allocate( ZSUMRI       (isize ) )
 ZRCRAUTC(:)=XCRIAUTC/PRHODREF(:) ! Autoconversion rc threshold
 !$acc end kernels
 IF(HSUBG_AUCV_RC=='NONE') THEN
-#if 0
-!PW: bug: crash at execution with PGI 18.10
-!$acc kernels
-  !Cloud water is entirely in low or high part
-  GWORK(:)  = PRCT(:)>ZRCRAUTC(:)
-  GWORK2(:) = PRCT(:)>XRTMIN(2)
-  WHERE(GWORK(:))
-    PHLC_HCF(:)=1.
-    PHLC_LCF(:)=0.
-    PHLC_HRC(:)=PRCT(:)
-    PHLC_LRC(:)=0.
-  ELSEWHERE(GWORK2(:))
-    PHLC_HCF(:)=0.
-    PHLC_LCF(:)=1.
-    PHLC_HRC(:)=0.
-    PHLC_LRC(:)=PRCT(:)
-  ELSEWHERE
-    PHLC_HCF(:)=0.
-    PHLC_LCF(:)=0.
-    PHLC_HRC(:)=0.
-    PHLC_LRC(:)=0.
-  END WHERE
-!$acc end kernels
-#else
 !$acc kernels
   DO JI = 1, ISIZE
     IF (PRCT(JI)>ZRCRAUTC(JI)) THEN
@@ -194,7 +170,6 @@ IF(HSUBG_AUCV_RC=='NONE') THEN
     END IF
   END DO
 !$acc end kernels
-#endif
 
 ELSEIF(HSUBG_AUCV_RC=='CLFR') THEN
 !$acc kernels
@@ -390,22 +365,24 @@ ZCRIAUTI(:)=MIN(XCRIAUTI,10**(XACRIAUTI*(PT(:)-XTT)+XBCRIAUTI)) ! Autoconversion
 IF(HSUBG_AUCV_RI=='NONE') THEN
 !$acc kernels
   !Cloud water is entirely in low or high part
-  WHERE(PRIT(:)>ZCRIAUTI(:))
-    PHLI_HCF(:)=1.
-    PHLI_LCF(:)=0.
-    PHLI_HRI(:)=PRIT(:)
-    PHLI_LRI(:)=0.
-  ELSEWHERE(PRIT(:)>XRTMIN(2))
-    PHLI_HCF(:)=0.
-    PHLI_LCF(:)=1.
-    PHLI_HRI(:)=0.
-    PHLI_LRI(:)=PRIT(:)
-  ELSEWHERE
-    PHLI_HCF(:)=0.
-    PHLI_LCF(:)=0.
-    PHLI_HRI(:)=0.
-    PHLI_LRI(:)=0.
-  END WHERE
+  DO JI = 1, ISIZE
+    IF ( PRIT(JI) > ZCRIAUTI(JI) ) THEN
+      PHLI_HCF(JI)=1.
+      PHLI_LCF(JI)=0.
+      PHLI_HRI(JI)=PRIT(JI)
+      PHLI_LRI(JI)=0.
+    ELSE IF ( PRIT(JI) > XRTMIN(2) ) THEN
+      PHLI_HCF(JI)=0.
+      PHLI_LCF(JI)=1.
+      PHLI_HRI(JI)=0.
+      PHLI_LRI(JI)=PRIT(JI)
+    ELSE
+      PHLI_HCF(JI)=0.
+      PHLI_LCF(JI)=0.
+      PHLI_HRI(JI)=0.
+      PHLI_LRI(JI)=0.
+    END IF
+  END DO
 !$acc end kernels
 ELSEIF(HSUBG_AUCV_RI=='CLFR') THEN
 !$acc kernels
diff --git a/src/MNH/ice4_rainfr_vert.f90 b/src/MNH/ice4_rainfr_vert.f90
index a851b3ef86bb0189e3c4d6674e7ffc6b52365b0b..629613e5d13fd48bf5a5e917fa7b11b4ff076ddb 100644
--- a/src/MNH/ice4_rainfr_vert.f90
+++ b/src/MNH/ice4_rainfr_vert.f90
@@ -73,29 +73,46 @@ END IF
 !
 !$acc kernels
 PPRFR(KIB:KIE,KJB:KJE,KKE)=0.
+!$acc end kernels
 DO JK=KKE-KKL, KKB, -KKL
+  IF(PRESENT(PRH)) THEN
+!$acc kernels
 !$acc loop collapse(2) independent
-  DO JJ = KJB, KJE
-    DO JI = KIB,KIE
-      IF(PRESENT(PRH)) THEN
+    DO JJ = KJB, KJE
+      DO JI = KIB,KIE
         MASK=PRR(JI,JJ,JK) .GT. XRTMIN(3) .OR. PRS(JI,JJ,JK) .GT. XRTMIN(5) &
         .OR. PRG(JI,JJ,JK) .GT. XRTMIN(6) .OR. PRH(JI,JJ,JK) .GT. XRTMIN(7)
-      ELSE
+        IF (MASK) THEN
+          PPRFR(JI,JJ,JK)=MAX(PPRFR(JI,JJ,JK),PPRFR(JI,JJ,JK+KKL))
+          IF (PPRFR(JI,JJ,JK)==0) THEN
+            PPRFR(JI,JJ,JK)=1.
+          END IF
+        ELSE
+          PPRFR(JI,JJ,JK)=0.
+        END IF
+      END DO
+    END DO
+!$acc end kernels
+  ELSE
+!$acc kernels
+!$acc loop collapse(2) independent
+    DO JJ = KJB, KJE
+      DO JI = KIB,KIE
         MASK=PRR(JI,JJ,JK) .GT. XRTMIN(3) .OR. PRS(JI,JJ,JK) .GT. XRTMIN(5) &
         .OR. PRG(JI,JJ,JK) .GT. XRTMIN(6)
-      END IF
-      IF (MASK) THEN
-        PPRFR(JI,JJ,JK)=MAX(PPRFR(JI,JJ,JK),PPRFR(JI,JJ,JK+KKL))
-        IF (PPRFR(JI,JJ,JK)==0) THEN
-          PPRFR(JI,JJ,JK)=1.
+        IF (MASK) THEN
+          PPRFR(JI,JJ,JK)=MAX(PPRFR(JI,JJ,JK),PPRFR(JI,JJ,JK+KKL))
+          IF (PPRFR(JI,JJ,JK)==0) THEN
+            PPRFR(JI,JJ,JK)=1.
+          END IF
+        ELSE
+          PPRFR(JI,JJ,JK)=0.
         END IF
-      ELSE
-        PPRFR(JI,JJ,JK)=0.
-      END IF
+      END DO
     END DO
-  END DO
-END DO
 !$acc end kernels
+  END IF
+END DO
 !
 !Check all INOUT arrays
 CALL MPPDB_CHECK3D(PPRFR,"ICE4_RAINFR_VERT end:PPRFR",PRECISION)
diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90
index 1def8bc5802e5e87adca61697befc75e5aaa9a3d..ff8b8437d750c364d711bea14db6e906e96a300f 100644
--- a/src/MNH/turb.f90
+++ b/src/MNH/turb.f90
@@ -1769,7 +1769,7 @@ INTEGER :: izrvsat, izdrvsatdt
 !
 !-------------------------------------------------------------------------------
 
-!$acc data present( PT, PEXN, PCP, PLOCPEXN, PAMOIST, PATHETA )
+!$acc data present( PT, PEXN, PCP, PLOCPEXN, PAMOIST, PATHETA, PPABST, PRT )
 
   if ( mppdb_initialized ) then
     !Check all in arrays