diff --git a/src/MNH/ice4_compute_pdf.f90 b/src/MNH/ice4_compute_pdf.f90
index c8164539c22451f1c6aa15fbdf22402f11a9e158..5eff4c083a615b1f597f43d3f163b342ad86bdc8 100644
--- a/src/MNH/ice4_compute_pdf.f90
+++ b/src/MNH/ice4_compute_pdf.f90
@@ -106,6 +106,8 @@ REAL,    DIMENSION(:), allocatable :: ZRCRAUTC,      & !RC value to begin rain f
                                                        !    note that ZRC/CF = ZHLC_HRCLOCAL+ ZHLC_LRCLOCAL
                                                        !                     = PHLC_HRC/HCF+ PHLC_LRC/LCF
                                       ZSUMRC, ZSUMRI
+! 
+INTEGER :: IHSUBG_PR_PDF ! temporary variable for OpenCC character limitation (Cray CCE)
 !
 !-------------------------------------------------------------------------------
 
@@ -257,6 +259,20 @@ ELSEIF(HSUBG_AUCV_RC=='PDF ') THEN
       ZCOEFFRCM=4.
     END IF
 !$acc update device(ZCOEFFRCM)
+
+SELECT CASE( HSUBG_PR_PDF )
+  CASE ( 'HLCRECTPDF' )
+     IHSUBG_PR_PDF = 1
+  CASE ( 'HLCTRIANGPDF' )
+     IHSUBG_PR_PDF = 2
+  CASE ( 'HLCQUADRAPDF' )
+     IHSUBG_PR_PDF = 3
+  CASE ( 'HLCISOTRIPDF' )
+     IHSUBG_PR_PDF = 4
+  CASE DEFAULT
+     IHSUBG_PR_PDF = 0
+END SELECT
+
 !$acc kernels
     GWORK(:) = PRCT(:)>0. .AND. PCF(:)>0.
     WHERE(GWORK(:))
@@ -265,18 +281,21 @@ ELSEIF(HSUBG_AUCV_RC=='PDF ') THEN
     ! Split available water and cloud fraction in two parts
     ! Calculate local mean values int he low and high parts for the 3 PDF forms:
     GWORK(:) = PRCT(:)>0. .AND. PCF(:)>0. .AND. ZHLC_RCMAX(:)>ZRCRAUTC(:)
-    IF(HSUBG_PR_PDF=='HLCRECTPDF') THEN
+    !IF(HSUBG_PR_PDF=='HLCRECTPDF') THEN
+    IF (IHSUBG_PR_PDF==1) THEN
       WHERE(GWORK(:))
         ZHLC_LRCLOCAL(:)=0.5*ZRCRAUTC(:)
         ZHLC_HRCLOCAL(:)=( ZHLC_RCMAX(:) + ZRCRAUTC(:))/2.0
       END WHERE
-    ELSE IF(HSUBG_PR_PDF=='HLCTRIANGPDF') THEN
+    !ELSE IF(HSUBG_PR_PDF=='HLCTRIANGPDF') THEN
+    ELSE IF (IHSUBG_PR_PDF==2) THEN
       WHERE(GWORK(:))
         ZHLC_LRCLOCAL(:)=( ZRCRAUTC(:) *(3.0 * ZHLC_RCMAX(:) - 2.0 * ZRCRAUTC(:) ) ) &
                         / (3.0 * (2.0 * ZHLC_RCMAX(:) - ZRCRAUTC(:)  ) )
         ZHLC_HRCLOCAL(:)=(ZHLC_RCMAX(:) + 2.0*ZRCRAUTC(:)) / 3.0
       END WHERE
-    ELSE IF(HSUBG_PR_PDF=='HLCQUADRAPDF') THEN
+    !ELSE IF(HSUBG_PR_PDF=='HLCQUADRAPDF') THEN
+    ELSE IF (IHSUBG_PR_PDF==3) THEN
       WHERE(GWORK(:))
 #ifndef MNH_BITREP
         ZHLC_LRCLOCAL(:)=(3.0 *ZRCRAUTC(:)**3 - 8.0 *ZRCRAUTC(:)**2 * ZHLC_RCMAX(:) &
@@ -293,7 +312,8 @@ ELSEIF(HSUBG_AUCV_RC=='PDF ') THEN
 #endif
         ZHLC_HRCLOCAL(:)=(ZHLC_RCMAX(:) + 3.0*ZRCRAUTC(:))/4.0
       END WHERE
-    ELSE IF(HSUBG_PR_PDF=='HLCISOTRIPDF') THEN
+    !ELSE IF(HSUBG_PR_PDF=='HLCISOTRIPDF') THEN
+    ELSE IF (IHSUBG_PR_PDF==4) THEN
       GWORK2(:) = PRCT(:) <= ZRCRAUTC(:)*PCF(:)
       WHERE(GWORK(:))
         WHERE(GWORK2(:))
@@ -443,3 +463,4 @@ END IF
 !$acc end data
 
 END SUBROUTINE ICE4_COMPUTE_PDF
+
diff --git a/src/MNH/ice4_warm.f90 b/src/MNH/ice4_warm.f90
index 95a0c756caada79f2c521d28bd27ce150f42e9b4..a07d25cd7161608e788dfc9846c60286cec5f395 100644
--- a/src/MNH/ice4_warm.f90
+++ b/src/MNH/ice4_warm.f90
@@ -128,6 +128,8 @@ REAL,    DIMENSION(:), allocatable :: ZUSW ! Undersaturation over water
 REAL,    DIMENSION(:), allocatable :: ZTHLT    ! Liquid potential temperature
 REAL,    DIMENSION(:), allocatable :: ZMASK, ZMASK1, ZMASK2
 
+LOGICAL :: GHSUBG_RR_EVAP ! temporary variable for OpenACC character limitation (Cray CCE)
+
 !$acc data present(PCOMPUTE,PRHODREF,PLVFACT,PT,PPRES,PTHT, &
 !$acc&                PLBDAR,PLBDAR_RF,PKA,PDV,PCJ,PHLC_LCF,PHLC_HCF,PHLC_LRC,PHLC_HRC,PCF,PRF,             &
 !$acc&                PRVT,PRCT,PRRT,PRCAUTR,PRCACCR,PRREVAV,PA_TH,PA_RV,PA_RC,PA_RR                        )
@@ -340,12 +342,15 @@ IF (HSUBG_RR_EVAP=='NONE') THEN
 !$acc end kernels
 
 ELSEIF (HSUBG_RR_EVAP=='CLFR' .OR. HSUBG_RR_EVAP=='PRFR') THEN
+GHSUBG_RR_EVAP=.false.
+IF (HSUBG_RR_EVAP=='CLFR') GHSUBG_RR_EVAP=.true.
 !$acc kernels
   !Evaporation in clear sky part
   !With CLFR, rain is diluted over the grid box
   !With PRFR, rain is concentrated in its fraction
   !Use temperature and humidity in clear sky part like Bechtold et al. (1993)
-  IF (HSUBG_RR_EVAP=='CLFR') THEN
+  !IF (HSUBG_RR_EVAP=='CLFR') THEN
+  IF (GHSUBG_RR_EVAP) THEN
     ZZW4(:)=1. !Precipitation fraction
     ZZW3(:)=PLBDAR(:)
   ELSE
@@ -435,3 +440,4 @@ END IF
 !$acc end data
 
 END SUBROUTINE ICE4_WARM
+
diff --git a/src/MNH/rain_ice_red.f90 b/src/MNH/rain_ice_red.f90
index f82d14821a0efb775330e1e6494c47869c483e0e..08462db53099c8bd7552cf5af7230936eeceabc4 100644
--- a/src/MNH/rain_ice_red.f90
+++ b/src/MNH/rain_ice_red.f90
@@ -520,6 +520,7 @@ REAL, DIMENSION(:),   allocatable :: ZSSI
 REAL, DIMENSION(:,:,:), allocatable :: &
         &ZW_RVS, ZW_RCS, ZW_RRS, ZW_RIS, ZW_RSS, ZW_RGS, ZW_RHS, ZW_THS
 !
+LOGICAL :: GTEST ! temporary variable for OpenACC character limitation (Cray CCE)
 
 !$acc data present( ODMICRO, PEXN, PDZZ, PRHODJ, PRHODREF, PEXNREF, PPABST, PCIT, PCLDFR, &
 !$acc &             PHLC_HRC, PTHT, PRVT,                                                 &
@@ -991,6 +992,8 @@ IMICRO=COUNTJV(ODMICRO(:,:,:), I1(:), I2(:), I3(:))
 CALL COUNTJV_DEVICE(ODMICRO(:,:,:),I1(:),I2(:),I3(:),IMICRO)
 #endif
 !Packing
+GTEST=.false.
+IF(HSUBG_AUCV_RC=='PDF ' .AND. CSUBG_PR_PDF=='SIGM') GTEST=.true.
 !$acc kernels
 IF(IMICRO>0) THEN
   DO JL=1, IMICRO
@@ -1035,7 +1038,8 @@ IF(IMICRO>0) THEN
       !The th tendency is not related to a mixing ratio change, there is no exn/exnref issue here
     ENDDO
   ENDIF
-  IF(HSUBG_AUCV_RC=='PDF ' .AND. CSUBG_PR_PDF=='SIGM') THEN
+  !IF(HSUBG_AUCV_RC=='PDF ' .AND. CSUBG_PR_PDF=='SIGM') THEN
+  IF (GTEST) THEN
     DO JL=1, IMICRO
       ZSIGMA_RC(JL) = PSIGS(I1(JL),I2(JL),I3(JL))*2.
     ENDDO
@@ -2414,3 +2418,4 @@ CONTAINS
 
 !
 END SUBROUTINE RAIN_ICE_RED
+
diff --git a/src/MNH/rain_ice_warm.f90 b/src/MNH/rain_ice_warm.f90
index 4dbce215476eab85e53f8c1e702e31136fb9678a..a524b3949ca194b914ae299ad1a54d0f2f8063fb 100644
--- a/src/MNH/rain_ice_warm.f90
+++ b/src/MNH/rain_ice_warm.f90
@@ -92,6 +92,8 @@ REAL,    DIMENSION(:), ALLOCATABLE :: ZZW4 ! Work array
 !
 INTEGER :: JLU
 !
+LOGICAL :: GCSUBG_RR_EVAP ! temporary variable for OpenCC character limitation (Cray CCE)
+!
 !-------------------------------------------------------------------------------
 !
 ! IN variables
@@ -312,12 +314,15 @@ ALLOCATE( ZZW4 (size(PRHODREF)) )
 #ifdef MNH_OPENACC
       CALL PRINT_MSG(NVERB_WARNING,'GEN','RAIN_ICE_WARM','OPENACC: CSUBG_RR_EVAP=="CLFR" or "PRFR" not yet tested')
 #endif
+GCSUBG_RR_EVAP=.false.
+IF (CSUBG_RR_EVAP=='CLFR') GCSUBG_RR_EVAP=.true.
 !$acc kernels
       !Evaporation in clear sky part
       !With CLFR, rain is diluted over the grid box
       !With PRFR, rain is concentrated in its fraction
       !Use temperature and humidity in clear sky part like Bechtold et al. (1993)
-      IF (CSUBG_RR_EVAP=='CLFR') THEN
+      !IF (CSUBG_RR_EVAP=='CLFR') THEN
+      IF (GCSUBG_RR_EVAP) THEN
         ZZW4(:)=1. !Precipitation fraction
         ZZW3(:)=PLBDAR(:)
       ELSE
@@ -409,3 +414,4 @@ END IF
   END SUBROUTINE RAIN_ICE_WARM
 
 END MODULE MODE_RAIN_ICE_WARM
+