diff --git a/src/arome/gmkpack_ignored_files b/src/arome/gmkpack_ignored_files
index cca761ab08eebf3dd23dba956f58c7c0949c92dd..c6c3c26b934fded65e85ad7abe1450c3ce6f0839 100644
--- a/src/arome/gmkpack_ignored_files
+++ b/src/arome/gmkpack_ignored_files
@@ -34,3 +34,11 @@ phyex/micro/modi_ice4_fast_rg.F90
 phyex/micro/modi_ice4_fast_rh.F90
 phyex/micro/modi_ice4_fast_rs.F90
 phyex/micro/modi_ice4_slow.F90
+phyex/micro/ice4_tendencies.F90
+phyex/micro/modi_ice4_tendencies.F90
+phyex/micro/modi_ice4_rainfr_vert.F90
+phyex/micro/ice4_rainfr_vert.F90
+phyex/micro/ice4_rimltc.F90
+phyex/micro/modi_ice4_rimltc.F90
+phyex/micro/ice4_rrhong.F90
+phyex/micro/modi_ice4_rrhong.F90
diff --git a/src/arome/micro/ice4_compute_pdf.F90 b/src/arome/micro/ice4_compute_pdf.F90
deleted file mode 100644
index bcced304eb77e44cd59391426490116c6fc55679..0000000000000000000000000000000000000000
--- a/src/arome/micro/ice4_compute_pdf.F90
+++ /dev/null
@@ -1,242 +0,0 @@
-SUBROUTINE ICE4_COMPUTE_PDF(KSIZE, HSUBG_AUCV, HSUBG_PR_PDF, &
-                            PRHODREF, PRCT, PCF, PSIGMA_RC,&
-                            PHLC_HCF, PHLC_LCF, PHLC_HRC, PHLC_LRC, PRF)
-!!
-!!**  PURPOSE
-!!    -------
-!!      Computes the pdf used to split cloud into high and low content parts
-!!
-!!    AUTHOR
-!!    ------
-!!      S. Riette from the plitting of rain_ice source code (nov. 2014)
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!
-!
-!
-!*      0. DECLARATIONS
-!          ------------
-!
-!
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
-USE MODD_RAIN_ICE_DESCR
-USE MODD_RAIN_ICE_PARAM
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-INTEGER,                INTENT(IN)  :: KSIZE
-CHARACTER(LEN=4),       INTENT(IN)  :: HSUBG_AUCV     ! Kind of Subgrid autoconversion method
-CHARACTER*80,           INTENT(IN)  :: HSUBG_PR_PDF   ! pdf for subgrid precipitation
-REAL, DIMENSION(KSIZE), INTENT(IN)  :: PRHODREF   ! Reference density
-REAL, DIMENSION(KSIZE), INTENT(IN)  :: PRCT       ! Cloud water m.r. at t
-REAL, DIMENSION(KSIZE), INTENT(IN)  :: PCF        ! Cloud fraction
-REAL, DIMENSION(KSIZE), INTENT(IN)  :: PSIGMA_RC  ! Standard deviation of rc at time t
-REAL, DIMENSION(KSIZE), INTENT(OUT) :: PHLC_HCF   ! HLCLOUDS : fraction of High Cloud Fraction in grid
-REAL, DIMENSION(KSIZE), INTENT(OUT) :: PHLC_LCF   ! HLCLOUDS : fraction of Low  Cloud Fraction in grid
-                                                  !    note that PCF = PHLC_HCF + PHLC_LCF
-REAL, DIMENSION(KSIZE), INTENT(OUT) :: PHLC_HRC   ! HLCLOUDS : LWC that is High LWC in grid
-REAL, DIMENSION(KSIZE), INTENT(OUT) :: PHLC_LRC   ! HLCLOUDS : LWC that is Low  LWC in grid
-                                                  !    note that PRC = PHLC_HRC + PHLC_LRC
-REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRF        ! Rain fraction
-!
-!*       0.2  declaration of local variables
-!
-REAL, DIMENSION(KSIZE) :: ZRCRAUTC,      & !RC value to begin rain formation =XCRIAUTC/RHODREF
-                          ZHLC_RCMAX,    & !HLCLOUDS : maximum value for RC in distribution
-                          ZHLC_LRCLOCAL, & !HLCLOUDS : LWC that is Low  LWC local in LCF
-                          ZHLC_HRCLOCAL    !HLCLOUDS : LWC that is High LWC local in HCF
-                                                    !    note that ZRC/CF = ZHLC_HRCLOCAL+ ZHLC_LRCLOCAL
-                                                    !                     = PHLC_HRC/HCF+ PHLC_LRC/LCF
-REAL :: ZCOEFFRCM
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('ICE4_COMPUTE_PDF', 0, ZHOOK_HANDLE)!
-
-!Cloud water split between high and low content part is done according to autoconversion option
-ZRCRAUTC(:)=XCRIAUTC/PRHODREF(:) ! Autoconversion rc threshold
-IF(HSUBG_AUCV=='NONE') THEN
-  !Cloud water is entirely in low or high part
-  WHERE(PRCT(:)>ZRCRAUTC(:))
-    PHLC_HCF(:)=1.
-    PHLC_LCF(:)=0.
-    PHLC_HRC(:)=PRCT(:)
-    PHLC_LRC(:)=0.
-    PRF(:)     =1.
-  ELSEWHERE(PRCT(:)>XRTMIN(2))
-    PHLC_HCF(:)=0.
-    PHLC_LCF(:)=1.
-    PHLC_HRC(:)=0.
-    PHLC_LRC(:)=PRCT(:)
-    PRF(:)     =0.
-  ELSEWHERE
-    PHLC_HCF(:)=0.
-    PHLC_LCF(:)=0.
-    PHLC_HRC(:)=0.
-    PHLC_LRC(:)=0.
-    PRF(:)     =0.
-  END WHERE
-
-ELSEIF(HSUBG_AUCV=='CLFR') THEN
-  !Cloud water is only in the cloudy part and entirely in low or high part
-  WHERE(PCF(:)>0.)
-    WHERE(PRCT(:)/PCF(:)>ZRCRAUTC(:))
-      PHLC_HCF(:)=PCF(:)
-      PHLC_LCF(:)=0.
-      PHLC_HRC(:)=PRCT(:)
-      PHLC_LRC(:)=0.
-      PRF(:)     =PCF(:)
-    ELSEWHERE(PRCT(:)>XRTMIN(2))
-      PHLC_HCF(:)=0.
-      PHLC_LCF(:)=PCF(:)
-      PHLC_HRC(:)=0.0
-      PHLC_LRC(:)=PRCT(:)
-      PRF(:)     =0.
-    ELSEWHERE
-      PHLC_HCF(:)=0.
-      PHLC_LCF(:)=0.
-      PHLC_HRC(:)=0.
-      PHLC_LRC(:)=0.
-      PRF(:)     =0.
-    END WHERE
-  ELSEWHERE
-    PHLC_HCF(:)=0.
-    PHLC_LCF(:)=0.
-    PHLC_HRC(:)=0.
-    PHLC_LRC(:)=0.
-    PRF(:)     =0.
-  END WHERE
-
-ELSEIF(HSUBG_AUCV=='PDF ') THEN
-  !Cloud water is split between high and low part according to a PDF
-  !    'HLCRECTPDF'    : rectangular PDF form
-  !    'HLCTRIANGPDF'  : triangular PDF form
-  !    'HLCQUADRAPDF'  : second order quadratic PDF form
-  !    'HLCISOTRIPDF'  : isocele triangular PDF
-  !    'SIGM'          : Redelsperger and Sommeria (1986)
-  IF(HSUBG_PR_PDF=='SIGM') THEN
-    ! Redelsperger and Sommeria (1986) but organised according to Turner (2011, 2012)
-    WHERE (PRCT(:)>ZRCRAUTC(:)+PSIGMA_RC(:))
-      PHLC_HCF(:)=1.
-      PHLC_LCF(:)=0.
-      PHLC_HRC(:)=PRCT(:)
-      PHLC_LRC(:)=0.
-      PRF(:)     =1.
-    ELSEWHERE(PRCT(:)> (ZRCRAUTC(:)-PSIGMA_RC(:)) .AND. &
-            & PRCT(:)<=(ZRCRAUTC(:)+PSIGMA_RC(:))       )
-      PHLC_HCF(:)=(PRCT(:)+PSIGMA_RC(:)-ZRCRAUTC(:))/ &
-                  &(2.*PSIGMA_RC(:))
-      PHLC_LCF(:)=MAX(0., PCF(:)-PHLC_HCF(:))
-      PHLC_HRC(:)=(PRCT(:)+PSIGMA_RC(:)-ZRCRAUTC(:))* &
-                  &(PRCT(:)+PSIGMA_RC(:)+ZRCRAUTC(:))/ &
-                  &(4.*PSIGMA_RC(:))
-      PHLC_LRC(:)=MAX(0., PRCT(:)-PHLC_HRC(:))
-      PRF(:)     =PHLC_HCF(:)
-    ELSEWHERE(PRCT(:)>XRTMIN(2) .AND. PCF(:)>0.)
-      PHLC_HCF(:)=0.
-      PHLC_LCF(:)=PCF(:)
-      PHLC_HRC(:)=0.
-      PHLC_LRC(:)=PRCT(:)
-      PRF(:)     =0.
-    ELSEWHERE
-      PHLC_HCF(:)=0.
-      PHLC_LCF(:)=0.
-      PHLC_HRC(:)=0.
-      PHLC_LRC(:)=0.
-      PRF(:)     =0.
-    END WHERE
-   ! Turner (2011, 2012)
-  ELSEIF(HSUBG_PR_PDF=='HLCRECTPDF' .OR. HSUBG_PR_PDF=='HLCISOTRIPDF' .OR. &
-         &HSUBG_PR_PDF=='HLCTRIANGPDF' .OR. HSUBG_PR_PDF=='HLCQUADRAPDF') THEN
-    ! Calculate maximum value r_cM from PDF forms
-    IF(HSUBG_PR_PDF=='HLCRECTPDF' .OR. HSUBG_PR_PDF=='HLCISOTRIPDF') THEN
-      ZCOEFFRCM=2.
-    ELSE IF(HSUBG_PR_PDF=='HLCTRIANGPDF') THEN
-      ZCOEFFRCM=3.
-    ELSE IF(HSUBG_PR_PDF=='HLCQUADRAPDF') THEN
-      ZCOEFFRCM=4.
-    END IF
-    WHERE(PRCT(:).GT.0. .AND. PCF(:).GT.0.)
-      ZHLC_RCMAX(:)=ZCOEFFRCM*PRCT(:)/PCF(:)
-    END WHERE
-    ! Split available water and cloud fraction in two parts
-    ! Calculate local mean values int he low and high parts for the 3 PDF forms:
-    IF(HSUBG_PR_PDF=='HLCRECTPDF') THEN
-      WHERE(PRCT(:).GT.0. .AND. PCF(:).GT.0. .AND. ZHLC_RCMAX(:).GT.ZRCRAUTC(:))
-        ZHLC_LRCLOCAL(:)=0.5*ZRCRAUTC(:)
-        ZHLC_HRCLOCAL(:)=( ZHLC_RCMAX(:) + ZRCRAUTC(:))/2.0
-      END WHERE
-    ELSE IF(HSUBG_PR_PDF=='HLCTRIANGPDF') THEN
-      WHERE(PRCT(:).GT.0. .AND. PCF(:).GT.0. .AND. ZHLC_RCMAX(:).GT.ZRCRAUTC(:))
-        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
-      WHERE(PRCT(:).GT.0. .AND. PCF(:).GT.0. .AND. ZHLC_RCMAX(:).GT.ZRCRAUTC(:))
-        ZHLC_LRCLOCAL(:)=(3.0 *ZRCRAUTC(:)**3 - 8.0 *ZRCRAUTC(:)**2 * ZHLC_RCMAX(:) &
-                        + 6.0*ZRCRAUTC(:) *ZHLC_RCMAX(:)**2 ) &
-                        / &
-                        (4.0* ZRCRAUTC(:)**2 -12.0*ZRCRAUTC(:) *ZHLC_RCMAX(:) &
-                        + 12.0 * ZHLC_RCMAX(:)**2 )
-        ZHLC_HRCLOCAL(:)=(ZHLC_RCMAX(:) + 3.0*ZRCRAUTC(:))/4.0
-      END WHERE
-    ELSE IF(HSUBG_PR_PDF=='HLCISOTRIPDF') THEN
-      WHERE(PRCT(:).GT.0. .AND. PCF(:).GT.0. .AND. ZHLC_RCMAX(:).GT.ZRCRAUTC(:))
-        WHERE((PRCT(:) / PCF(:)).LE.ZRCRAUTC(:))
-          ZHLC_LRCLOCAL(:)=( (ZHLC_RCMAX(:))**3 &
-                          -(12.0 * (ZHLC_RCMAX(:))*(ZRCRAUTC(:))**2) &
-                          +(8.0 * ZRCRAUTC(:)**3) ) &
-                          /( (6.0 * (ZHLC_RCMAX(:))**2) &
-                          -(24.0 * (ZHLC_RCMAX(:)) * ZRCRAUTC(:)) &
-                          +(12.0 * ZRCRAUTC(:)**2) )
-          ZHLC_HRCLOCAL(:)=( ZHLC_RCMAX(:) + 2.0 * ZRCRAUTC(:) )/3.0
-        ELSEWHERE
-          ZHLC_LRCLOCAL(:)=(2.0/3.0) * ZRCRAUTC(:)
-          ZHLC_HRCLOCAL(:)=(3.0*ZHLC_RCMAX(:)**3 - 8.0*ZRCRAUTC(:)**3) &
-                          / (6.0 * ZHLC_RCMAX(:)**2 - 12.0*ZRCRAUTC(:)**2)
-        END WHERE
-      END WHERE
-    END IF
-    ! Compare r_cM  to r_cR to know if cloud water content is high enough to split in two parts or not
-    WHERE (PRCT(:).GT.0. .AND. PCF(:).GT.0. .AND. ZHLC_RCMAX(:).GT.ZRCRAUTC(:))
-      ! Calculate final values for LCF and HCF:
-      PHLC_LCF(:)=PCF(:) &
-                    *(ZHLC_HRCLOCAL- &
-                    (PRCT(:) / PCF(:))) &
-                    / (ZHLC_HRCLOCAL-ZHLC_LRCLOCAL)
-      PHLC_HCF(:)=MAX(0., PCF(:)-PHLC_LCF(:))
-      !
-      ! Calculate final values for LRC and HRC:
-      PHLC_LRC(:)=ZHLC_LRCLOCAL*PHLC_LCF(:)
-      PHLC_HRC(:)=MAX(0., PRCT(:)-PHLC_LRC(:))
-    ELSEWHERE (PRCT(:).GT.0. .AND. PCF(:).GT.0. .AND. ZHLC_RCMAX(:).LE.ZRCRAUTC(:))
-      ! Put all available cloud water and his fraction in the low part
-      PHLC_LCF(:)=PCF(:)
-      PHLC_HCF(:)=0.
-      PHLC_LRC(:)=PRCT(:)
-      PHLC_HRC(:)=0.
-    ELSEWHERE
-      PHLC_LCF(:)=0.
-      PHLC_HCF(:)=0.
-      PHLC_LRC(:)=0.
-      PHLC_HRC(:)=0.
-    END WHERE
-     PRF(:)=PHLC_HCF(:) !Precipitation fraction
-   ELSE
-    !wrong HSUBG_PR_PDF case
-    CALL ABORT
-    STOP 'wrong HSUBG_PR_PDF case'
-   ENDIF
-ELSE
-  !wrong HSUBG_AUCV case
-  CALL ABORT
-  STOP 'wrong HSUBG_AUCV case'
-ENDIF
-!
-IF (LHOOK) CALL DR_HOOK('ICE4_COMPUTE_PDF', 1, ZHOOK_HANDLE)
-END SUBROUTINE ICE4_COMPUTE_PDF
diff --git a/src/arome/micro/ice4_rainfr_vert.F90 b/src/arome/micro/ice4_rainfr_vert.F90
deleted file mode 100644
index 6d90d5ccc375cb2a8f35ffc8a1edb024747faef3..0000000000000000000000000000000000000000
--- a/src/arome/micro/ice4_rainfr_vert.F90
+++ /dev/null
@@ -1,58 +0,0 @@
-SUBROUTINE ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PPRFR, PRR)
-!!
-!!**  PURPOSE
-!!    -------
-!!      Computes the rain fraction
-!!
-!!    AUTHOR
-!!    ------
-!!      S. Riette from the plitting of rain_ice source code (nov. 2014)
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!
-!
-!
-!*      0. DECLARATIONS
-!          ------------
-!
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
-USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-INTEGER,                      INTENT(IN) :: KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(OUT)    :: PPRFR !Precipitation fraction
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)    :: PRR !Rain field
-!
-!*       0.2  declaration of local variables
-!
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-INTEGER :: JI, JJ, JK
-!
-!-------------------------------------------------------------------------------
-IF (LHOOK) CALL DR_HOOK('ICE4_RAINFR_VERT',0,ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-DO JI = KIB,KIE
-   DO JJ = KJB, KJE
-      PPRFR(JI,JJ,KKE)=0.
-      DO JK=KKE-KKL, KKB, -KKL
-         IF (PRR(JI,JJ,JK) .GT. XRTMIN(3)) 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
-END DO
-!
-IF (LHOOK) CALL DR_HOOK('ICE4_RAINFR_VERT',1,ZHOOK_HANDLE)
-!
-END SUBROUTINE ICE4_RAINFR_VERT
diff --git a/src/arome/micro/ice4_slow.F90 b/src/arome/micro/ice4_slow.F90
deleted file mode 100644
index 875971e4e2150233880ca86cab77e2d41444c080..0000000000000000000000000000000000000000
--- a/src/arome/micro/ice4_slow.F90
+++ /dev/null
@@ -1,216 +0,0 @@
-SUBROUTINE ICE4_SLOW(KSIZE, LDSOFT, PCOMPUTE, PRHODREF, PT, &
-                     &PSSI, PLVFACT, PLSFACT, &
-                     &PRVT, PRCT, PRIT, PRST, PRGT, &
-                     &PLBDAS, PLBDAG, &
-                     &PAI, PCJ, &
-                     &PRCHONI, PRVDEPS, PRIAGGS, PRIAUTS, PRVDEPG, &
-                     &PA_TH, PA_RV, PA_RC, PA_RI, PA_RS, PA_RG)
-!!
-!!**  PURPOSE
-!!    -------
-!!      Computes the slow process
-!!
-!!    AUTHOR
-!!    ------
-!!      S. Riette from the splitting of rain_ice source code (nov. 2014)
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!
-!
-!
-!*      0. DECLARATIONS
-!          ------------
-!
-USE MODD_CST
-USE MODD_RAIN_ICE_PARAM
-USE MODD_RAIN_ICE_DESCR
-USE PARKIND1, ONLY : JPRB
-USE YOMHOOK , ONLY : LHOOK, DR_HOOK
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-INTEGER,                      INTENT(IN)    :: KSIZE
-LOGICAL,                      INTENT(IN)    :: LDSOFT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCOMPUTE
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHODREF ! Reference density
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PSSI     ! Supersaturation over ice
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRVT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRCT     ! Cloud water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRIT     ! Pristine ice m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRST     ! Snow/aggregate m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRGT     ! Graupel/hail m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAS   ! Slope parameter of the aggregate distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAG   ! Slope parameter of the graupel   distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PAI      ! Thermodynamical function
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCJ      ! Function to compute the ventilation coefficient
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCHONI  ! Homogeneous nucleation
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRVDEPS  ! Deposition on r_s
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIAGGS  ! Aggregation on r_s
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIAUTS  ! Autoconversion of r_i for r_s production
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRVDEPG  ! Deposition on r_g
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RV
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RI
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RS
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RG
-!
-!*       0.2  declaration of local variables
-!
-REAL, DIMENSION(KSIZE) :: ZCRIAUTI
-REAL            :: ZTIMAUTIC
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-REAL, DIMENSION(KSIZE) :: ZMASK
-INTEGER :: JL
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('ICE4_SLOW', 0, ZHOOK_HANDLE)
-!
-!-------------------------------------------------------------------------------
-!
-!
-!*       3.2     compute the homogeneous nucleation source: RCHONI
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., PT(JL)-(XTT-35.0))) * & ! PT(:)<XTT-35.0
-           &MAX(0., -SIGN(1., XRTMIN(2)-PRCT(JL))) * & ! PRCT(:)>XRTMIN(2)
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRCHONI(JL) = PRCHONI(JL) * ZMASK(JL)
-  ENDDO
-ELSE
-  PRCHONI(:) = 0.
-  WHERE(ZMASK(:)==1.)
-    PRCHONI(:) = XHON*PRHODREF(:)*PRCT(:)       &
-                                 *EXP( XALPHA3*(PT(:)-XTT)-XBETA3 )
-  ENDWHERE
-ENDIF
-DO JL=1, KSIZE
-  PA_RI(JL) = PA_RI(JL) + PRCHONI(JL)
-  PA_RC(JL) = PA_RC(JL) - PRCHONI(JL)
-  PA_TH(JL) = PA_TH(JL) + PRCHONI(JL)*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-!
-!*       3.4    compute the deposition, aggregation and autoconversion sources
-!
-!
-!*       3.4.2  compute the riming-conversion of r_c for r_i production: RCAUTI
-!
-!  ZZW(:) = 0.0
-!  ZTIMAUTIC = SQRT( XTIMAUTI*XTIMAUTC )
-!  WHERE ( (PRCT(:)>0.0) .AND. (PRIT(:)>0.0) .AND. (PRCS(:)>0.0) )
-!    ZZW(:) = MIN( PRCS(:),ZTIMAUTIC * MAX( SQRT( PRIT(:)*PRCT(:) ),0.0 ) )
-!    PRIS(:) = PRIS(:) + ZZW(:)
-!    PRCS(:) = PRCS(:) - ZZW(:)
-!    PTHS(:) = PTHS(:) + ZZW(:)*(PLSFACT(:)-PLVFACT(:)) ! f(L_f*(RCAUTI))
-!  END WHERE
-!
-!*       3.4.3  compute the deposition on r_s: RVDEPS
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(1)-PRVT(JL))) * & !PRVT(:)>XRTMIN(1)
-           &MAX(0., -SIGN(1., XRTMIN(5)-PRST(JL))) * & !PRST(:)>XRTMIN(5)
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRVDEPS(JL)=PRVDEPS(JL)*ZMASK(JL)
-  ENDDO
-ELSE
-  PRVDEPS(:) = 0.
-  WHERE(ZMASK(:)==1.)
-    PRVDEPS(:) = ( PSSI(:)/(PRHODREF(:)*PAI(:)) ) *                               &
-                 ( X0DEPS*PLBDAS(:)**XEX0DEPS + X1DEPS*PCJ(:)*PLBDAS(:)**XEX1DEPS )
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  PA_RS(JL) = PA_RS(JL) + PRVDEPS(JL)
-  PA_RV(JL) = PA_RV(JL) - PRVDEPS(JL)
-  PA_TH(JL) = PA_TH(JL) + PRVDEPS(JL)*PLSFACT(JL)
-ENDDO
-!
-!*       3.4.4  compute the aggregation on r_s: RIAGGS
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(4)-PRIT(JL))) * & ! PRIT(:)>XRTMIN(4)
-           &MAX(0., -SIGN(1., XRTMIN(5)-PRST(JL))) * & ! PRST(:)>XRTMIN(5)
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRIAGGS(JL)=PRIAGGS(JL) * ZMASK(JL)
-  ENDDO
-ELSE
-  PRIAGGS(:) = 0.
-  WHERE(ZMASK(:)==1)
-    PRIAGGS(:) = XFIAGGS * EXP( XCOLEXIS*(PT(:)-XTT) ) &
-                         * PRIT(:)                      &
-                         * PLBDAS(:)**XEXIAGGS          &
-                         * PRHODREF(:)**(-XCEXVT)
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  PA_RS(JL) = PA_RS(JL) + PRIAGGS(JL)
-  PA_RI(JL) = PA_RI(JL) - PRIAGGS(JL)
-ENDDO
-!
-!*       3.4.5  compute the autoconversion of r_i for r_s production: RIAUTS
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(4)-PRIT(JL))) * & ! PRIT(:)>XRTMIN(4)
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRIAUTS(JL) = PRIAUTS(JL) * ZMASK(JL)
-  ENDDO
-ELSE
-  PRIAUTS(:) = 0.
-  !ZCRIAUTI(:)=MIN(XCRIAUTI,10**(0.06*(PT(:)-XTT)-3.5))
-  ZCRIAUTI(:)=MIN(XCRIAUTI,10**(XACRIAUTI*(PT(:)-XTT)+XBCRIAUTI))
-  WHERE(ZMASK(:)==1.)
-    PRIAUTS(:) = XTIMAUTI * EXP( XTEXAUTI*(PT(:)-XTT) ) &
-                          * MAX( PRIT(:)-ZCRIAUTI(:),0.0 )
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  PA_RS(JL) = PA_RS(JL) + PRIAUTS(JL)
-  PA_RI(JL) = PA_RI(JL) - PRIAUTS(JL)
-ENDDO
-!
-!*       3.4.6  compute the deposition on r_g: RVDEPG
-!
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(1)-PRVT(JL))) * & ! PRVT(:)>XRTMIN(1)
-           &MAX(0., -SIGN(1., XRTMIN(6)-PRGT(JL))) * & ! PRGT(:)>XRTMIN(6)
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRVDEPG(JL) = PRVDEPG(JL) * ZMASK(JL)
-  ENDDO
-ELSE
-  PRVDEPG(:) = 0.
-  WHERE(ZMASK(:)==1.)
-    PRVDEPG(:) = ( PSSI(:)/(PRHODREF(:)*PAI(:)) ) *                               &
-                 ( X0DEPG*PLBDAG(:)**XEX0DEPG + X1DEPG*PCJ(:)*PLBDAG(:)**XEX1DEPG )
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  PA_RG(JL) = PA_RG(JL) + PRVDEPG(JL)
-  PA_RV(JL) = PA_RV(JL) - PRVDEPG(JL)
-  PA_TH(JL) = PA_TH(JL) + PRVDEPG(JL)*PLSFACT(JL)
-ENDDO
-!
-IF (LHOOK) CALL DR_HOOK('ICE4_SLOW', 1, ZHOOK_HANDLE)
-!
-END SUBROUTINE ICE4_SLOW
diff --git a/src/arome/micro/ice4_tendencies.F90 b/src/arome/micro/ice4_tendencies.F90
index aac00c1c76c1f7c2a583f459cf2fe69f8a307c1c..23d6bf57dfa01dc348f96f435fc8993ce74218b4 100644
--- a/src/arome/micro/ice4_tendencies.F90
+++ b/src/arome/micro/ice4_tendencies.F90
@@ -42,11 +42,11 @@ USE MODD_RAIN_ICE_DESCR
 USE MODD_PARAM_ICE, ONLY : CSNOWRIMING
 
 USE MODI_ICE4_NUCLEATION
-USE MODI_ICE4_RRHONG
-USE MODI_ICE4_RIMLTC
+USE MODE_ICE4_RRHONG, ONLY: ICE4_RRHONG
+USE MODE_ICE4_RIMLTC, ONLY: ICE4_RIMLTC
 USE MODE_ICE4_RSRIMCG_OLD, ONLY: ICE4_RSRIMCG_OLD
-USE MODI_ICE4_COMPUTE_PDF
-USE MODI_ICE4_RAINFR_VERT
+USE MODE_ICE4_COMPUTE_PDF, ONLY: ICE4_COMPUTE_PDF
+USE MODE_ICE4_RAINFR_VERT, ONLY: ICE4_RAINFR_VERT
 USE MODE_ICE4_SLOW, ONLY: ICE4_SLOW
 USE MODE_ICE4_WARM, ONLY: ICE4_WARM
 USE MODE_ICE4_FAST_RS, ONLY: ICE4_FAST_RS
@@ -174,8 +174,9 @@ REAL, DIMENSION(KSIZE) :: ZRVT, ZRCT, ZRRT, ZRIT, ZRST, ZRGT, &
                         & ZRF, &
                         & ZLBDAR, ZLBDAS, ZLBDAG, ZLBDAH, ZLBDAR_RF, &
                         & ZRGSI, ZRGSI_MR
-REAL, DIMENSION(KSIZE) :: PHLI_HCF
-REAL, DIMENSION(KIT,KJT,KKT) :: ZRRT3D
+REAL, DIMENSION(KSIZE) :: PHLI_HCF, PHLI_LCF, PHLI_HRI, PHLI_LRI
+CHARACTER(len=80) :: HSUBG_AUCV_RI='NONE'
+REAL, DIMENSION(KIT,KJT,KKT) :: ZRRT3D, ZRST3D, ZRGT3D, ZRHT3D
 INTEGER :: JL
 REAL, DIMENSION(KSIZE) :: ZWETG ! 1. if graupel growths in wet mode, 0. otherwise
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
@@ -236,6 +237,11 @@ ELSE
                   &ZT,   ZRRT, &
                   &ZTHT, &
                   &PRRHONG_MR, PB_TH, PB_RR, PB_RG)
+  DO JL=1, KSIZE
+    PB_RG(JL) = PB_RG(JL) + PRRHONG_MR(JL)
+    PB_RR(JL) = PB_RR(JL) - PRRHONG_MR(JL)
+    PB_TH(JL) = PB_TH(JL) + PRRHONG_MR(JL)*(PLSFACT(JL)-PLVFACT(JL))
+  ENDDO
   DO JL=1, KSIZE
     ZRGT(JL) = ZRGT(JL) + PRRHONG_MR(JL)
     ZRRT(JL) = ZRRT(JL) - PRRHONG_MR(JL)
@@ -249,7 +255,12 @@ ELSE
                   &PEXN, PLVFACT, PLSFACT, &
                   &ZT, &
                   &ZTHT, ZRIT, &
-                  &PRIMLTC_MR, PB_TH, PB_RC, PB_RI)
+                  &PRIMLTC_MR)
+  DO JL=1, KSIZE
+    PB_RC(JL) = PB_RC(JL) + PRIMLTC_MR(JL)
+    PB_RI(JL) = PB_RI(JL) - PRIMLTC_MR(JL)
+    PB_TH(JL) = PB_TH(JL) - PRIMLTC_MR(JL)*(PLSFACT(JL)-PLVFACT(JL))
+  ENDDO
   DO JL=1, KSIZE
     ZRCT(JL) = ZRCT(JL) + PRIMLTC_MR(JL)
     ZRIT(JL) = ZRIT(JL) - PRIMLTC_MR(JL)
@@ -295,14 +306,19 @@ IF(KSIZE>0) THEN
   ENDIF
   !
   !Cloud water split between high and low content part is done here
-  CALL ICE4_COMPUTE_PDF(KSIZE, HSUBG_AUCV_RC, HSUBG_PR_PDF,&
-                        PRHODREF, ZRCT, PCF, PSIGMA_RC,&
-                        PHLC_HCF, PHLC_LCF, PHLC_HRC, PHLC_LRC, ZRF)
+  CALL ICE4_COMPUTE_PDF(KSIZE, HSUBG_AUCV_RC, HSUBG_AUCV_RI, HSUBG_PR_PDF,&
+                        PRHODREF, ZRCT, ZRIT, PCF, ZT, PSIGMA_RC,&
+                        PHLC_HCF, PHLC_LCF, PHLC_HRC, PHLC_LRC,&
+                        PHLI_HCF, PHLI_LCF, PHLI_HRI, PHLI_LRI, ZRF)
   IF(HSUBG_RC_RR_ACCR=='PRFR') THEN
     !Diagnostic of precipitation fraction
     PRAINFR(:,:,:)=UNPACK(ZRF(:), MASK=LDMICRO(:,:,:), FIELD=PRAINFR(:,:,:))
     ZRRT3D(:,:,:)=PRRT3D(:,:,:)-UNPACK(PRRHONG_MR(:), MASK=LDMICRO(:,:,:), FIELD=0.)
-    CALL ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PRAINFR(:,:,:), ZRRT3D(:,:,:))
+    ZRST3D(:,:,:)=0. !need phasing
+    ZRGT3D(:,:,:)=0. !need phasing
+    IF (KRR==7) ZRHT3D(:,:,:)=0. !need phasing
+    CALL ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PRAINFR(:,:,:),
+                         &ZRRT3D(:,:,:), ZRST3D(:,:,:), ZRGT3D(:,:,:), ZRHT3D(:,:,:))
     DO JL=1,KSIZE
       ZRF(JL)=PRAINFR(K1(JL), K2(JL), K3(JL))
     END DO
diff --git a/src/arome/modset_Ryad/mpa/micro/internals/ice4_rimltc.F90 b/src/arome/modset_Ryad/mpa/micro/internals/ice4_rimltc.F90
deleted file mode 100644
index 4d9c39363da9d070bf37633317538b259cce8da9..0000000000000000000000000000000000000000
--- a/src/arome/modset_Ryad/mpa/micro/internals/ice4_rimltc.F90
+++ /dev/null
@@ -1,4 +0,0 @@
-SUBROUTINE ICE4_RIMLTC
-!! dead code - inlined in ice4_tendencies.
-!!     R. El Khatib 24-Aug-2021
-END SUBROUTINE ICE4_RIMLTC
diff --git a/src/arome/modset_Ryad/mpa/micro/internals/ice4_rrhong.F90 b/src/arome/modset_Ryad/mpa/micro/internals/ice4_rrhong.F90
deleted file mode 100644
index 34778f274899ece0fcc41022e8568517b4e4cdfa..0000000000000000000000000000000000000000
--- a/src/arome/modset_Ryad/mpa/micro/internals/ice4_rrhong.F90
+++ /dev/null
@@ -1,4 +0,0 @@
-SUBROUTINE ICE4_RRHONG
-!! dead code - inlined in ice4_tendencies.
-!!     R. El Khatib 24-Aug-2021
-END SUBROUTINE ICE4_RRHONG
diff --git a/src/arome/modset_Ryad/mpa/micro/internals/ice4_tendencies.F90 b/src/arome/modset_Ryad/mpa/micro/internals/ice4_tendencies.F90
index 74c5416ac341bd0b61284dcda842eff5c5104f3a..aeffaef19e9f3c71a520be3f5366f4d12a34a8f0 100644
--- a/src/arome/modset_Ryad/mpa/micro/internals/ice4_tendencies.F90
+++ b/src/arome/modset_Ryad/mpa/micro/internals/ice4_tendencies.F90
@@ -81,6 +81,7 @@ REAL, DIMENSION(KPROMA),       INTENT(IN)    :: PEXN
 REAL, DIMENSION(KPROMA),       INTENT(IN)    :: PRHODREF
 REAL, DIMENSION(KPROMA),       INTENT(IN)    :: PLVFACT
 REAL, DIMENSION(KPROMA),       INTENT(IN)    :: PLSFACT
+
 INTEGER, DIMENSION(KPROMA),    INTENT(IN)    :: K1
 INTEGER, DIMENSION(KPROMA),    INTENT(IN)    :: K2
 INTEGER, DIMENSION(KPROMA),    INTENT(IN)    :: K3
@@ -90,6 +91,13 @@ REAL, DIMENSION(KPROMA),       INTENT(IN)    :: PSIGMA_RC
 REAL, DIMENSION(KPROMA),       INTENT(INOUT) :: PCIT
 REAL, DIMENSION(KPROMA),       INTENT(IN)    :: PT
 REAL, DIMENSION(KPROMA,0:KRR), INTENT(IN)    :: PVART
+
+
+
+
+
+
+
 REAL, DIMENSION(KIT,KJT,KKT),  INTENT(IN)    :: PRRT3D
 REAL, DIMENSION(KPROMA),       INTENT(OUT)   :: PRVHENI_MR
 REAL, DIMENSION(KPROMA),       INTENT(INOUT) :: PRRHONG_MR
@@ -143,7 +151,21 @@ REAL, DIMENSION(KPROMA, 8),    INTENT(INOUT) :: PRG_TEND
 REAL, DIMENSION(KPROMA, 10),   INTENT(INOUT) :: PRH_TEND
 REAL, DIMENSION(KPROMA),       INTENT(INOUT) :: PSSI
 REAL, DIMENSION(KPROMA,0:KRR), INTENT(OUT)   :: PA
+
+
+
+
+
+
+
 REAL, DIMENSION(KPROMA,0:KRR), INTENT(OUT)   :: PB
+
+
+
+
+
+
+
 REAL, DIMENSION(KPROMA),       INTENT(OUT)   :: PHLC_HCF
 REAL, DIMENSION(KPROMA),       INTENT(OUT)   :: PHLC_LCF
 REAL, DIMENSION(KPROMA),       INTENT(OUT)   :: PHLC_HRC
@@ -309,6 +331,10 @@ CALL ICE4_COMPUTE_PDF(KSIZE, HSUBG_AUCV_RC, HSUBG_PR_PDF,&
                       PRHODREF, ZVART(:,IRC), PCF, PSIGMA_RC,&
                       PHLC_HCF, PHLC_LCF, PHLC_HRC, PHLC_LRC, ZRAINFR)
 ! ZRAINFR is computed above, then overwritten below :-( .REK.
+
+
+j ai des doutes sur le codage de Ryad, normalement zrainfr sert à remplir prainfr qui remplit à son tour zrainfr
+
 LLRFR=HSUBG_RC_RR_ACCR=='PRFR'
 IF (LLRFR) THEN
   !Diagnostic of precipitation fraction
diff --git a/src/mesonh/micro/ice4_compute_pdf.f90 b/src/common/micro/mode_ice4_compute_pdf.F90
similarity index 80%
rename from src/mesonh/micro/ice4_compute_pdf.f90
rename to src/common/micro/mode_ice4_compute_pdf.F90
index bc465eb65ef522324dea8c19d986f578bdab5518..2058f4e5ad7e2e3118afaca7f6b6e4a4cc415ec3 100644
--- a/src/mesonh/micro/ice4_compute_pdf.f90
+++ b/src/common/micro/mode_ice4_compute_pdf.F90
@@ -3,37 +3,9 @@
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-MODULE MODI_ICE4_COMPUTE_PDF
-INTERFACE
-SUBROUTINE ICE4_COMPUTE_PDF(KSIZE, HSUBG_AUCV_RC, HSUBG_AUCV_RI, HSUBG_PR_PDF, &
-                            PRHODREF, PRCT, PRIT, PCF, PT, PSIGMA_RC,&
-                            PHLC_HCF, PHLC_LCF, PHLC_HRC, PHLC_LRC, &
-                            PHLI_HCF, PHLI_LCF, PHLI_HRI, PHLI_LRI, PRF)
+MODULE MODE_ICE4_COMPUTE_PDF
 IMPLICIT NONE
-INTEGER,                INTENT(IN)  :: KSIZE
-CHARACTER(LEN=4),       INTENT(IN)  :: HSUBG_AUCV_RC     ! Kind of Subgrid autoconversion method
-CHARACTER(LEN=80),      INTENT(IN)  :: HSUBG_AUCV_RI     ! Kind of Subgrid autoconversion method
-CHARACTER(LEN=80),      INTENT(IN)  :: HSUBG_PR_PDF   ! pdf for subgrid precipitation
-REAL, DIMENSION(KSIZE), INTENT(IN)  :: PRHODREF   ! Reference density
-REAL, DIMENSION(KSIZE), INTENT(IN)  :: PRCT       ! Cloud water m.r. at t
-REAL, DIMENSION(KSIZE), INTENT(IN)  :: PRIT       ! Ice Crystal m.r. at t
-REAL, DIMENSION(KSIZE), INTENT(IN)  :: PCF        ! Cloud fraction
-REAL, DIMENSION(KSIZE), INTENT(IN)  :: PT         ! Temperature
-REAL, DIMENSION(KSIZE), INTENT(IN)  :: PSIGMA_RC  ! Standard deviation of rc at time t
-REAL, DIMENSION(KSIZE), INTENT(OUT) :: PHLC_HCF   ! HLCLOUDS : fraction of High Cloud Fraction in grid
-REAL, DIMENSION(KSIZE), INTENT(OUT) :: PHLC_LCF   ! HLCLOUDS : fraction of Low  Cloud Fraction in grid
-                                                  !    note that PCF = PHLC_HCF + PHLC_LCF
-REAL, DIMENSION(KSIZE), INTENT(OUT) :: PHLC_HRC   ! HLCLOUDS : LWC that is High LWC in grid
-REAL, DIMENSION(KSIZE), INTENT(OUT) :: PHLC_LRC   ! HLCLOUDS : LWC that is Low  LWC in grid
-                                                  !    note that PRC = PHLC_HRC + PHLC_LRC
-REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PHLI_HCF   !
-REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PHLI_LCF
-REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PHLI_HRI   !
-REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PHLI_LRI   !
-REAL, DIMENSION(KSIZE), INTENT(OUT) :: PRF        ! Rain fraction
-END SUBROUTINE ICE4_COMPUTE_PDF
-END INTERFACE
-END MODULE MODI_ICE4_COMPUTE_PDF
+CONTAINS
 SUBROUTINE ICE4_COMPUTE_PDF(KSIZE, HSUBG_AUCV_RC, HSUBG_AUCV_RI, HSUBG_PR_PDF, &
                             PRHODREF, PRCT, PRIT, PCF, PT, PSIGMA_RC,&
                             PHLC_HCF, PHLC_LCF, PHLC_HRC, PHLC_LRC, &
@@ -56,8 +28,10 @@ SUBROUTINE ICE4_COMPUTE_PDF(KSIZE, HSUBG_AUCV_RC, HSUBG_AUCV_RI, HSUBG_PR_PDF, &
 !          ------------
 !
 !
+USE PARKIND1, ONLY : JPRB
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 USE MODD_RAIN_ICE_DESCR, ONLY: XRTMIN
-USE MODD_RAIN_ICE_PARAM, ONLY: XCRIAUTC,XBCRIAUTI,XACRIAUTI,XCRIAUTI
+USE MODD_RAIN_ICE_PARAM, ONLY: XCRIAUTC, XBCRIAUTI, XACRIAUTI, XCRIAUTI
 USE MODD_CST, ONLY : XTT
 !
 USE MODE_MSG
@@ -68,7 +42,7 @@ IMPLICIT NONE
 !
 INTEGER,                INTENT(IN)  :: KSIZE
 CHARACTER(LEN=4),       INTENT(IN)  :: HSUBG_AUCV_RC     ! Kind of Subgrid autoconversion method for cloud water
-CHARACTER(LEN=80),      INTENT(IN)  :: HSUBG_AUCV_RI     ! Kind of Subgrid autoconversion method for cloud water
+CHARACTER(LEN=80),      INTENT(IN)  :: HSUBG_AUCV_RI     ! Kind of Subgrid autoconversion method for cloud ice
 CHARACTER(LEN=80),      INTENT(IN)  :: HSUBG_PR_PDF   ! pdf for subgrid precipitation
 REAL, DIMENSION(KSIZE), INTENT(IN)  :: PRHODREF   ! Reference density
 REAL, DIMENSION(KSIZE), INTENT(IN)  :: PRCT       ! Cloud water m.r. at t
@@ -76,11 +50,12 @@ REAL, DIMENSION(KSIZE), INTENT(IN)  :: PRIT       ! Ice Crystal m.r. at t
 REAL, DIMENSION(KSIZE), INTENT(IN)  :: PCF        ! Cloud fraction
 REAL, DIMENSION(KSIZE), INTENT(IN)  :: PT         ! Temperature
 REAL, DIMENSION(KSIZE), INTENT(IN)  :: PSIGMA_RC  ! Standard deviation of rc at time t
-REAL, DIMENSION(KSIZE), INTENT(OUT) :: PHLC_HCF   ! HLCLOUDS : fraction of High Cloud Fraction in grid
-REAL, DIMENSION(KSIZE), INTENT(OUT) :: PHLC_LCF   ! HLCLOUDS : fraction of Low  Cloud Fraction in grid
+!Note for INTENT STATUS: in 'ADJU' case the PHL?_??? variables must be able to "cross" the subroutine untouched
+REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PHLC_HCF   ! HLCLOUDS : fraction of High Cloud Fraction in grid
+REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PHLC_LCF   ! HLCLOUDS : fraction of Low  Cloud Fraction in grid
                                                   !    note that PCF = PHLC_HCF + PHLC_LCF
-REAL, DIMENSION(KSIZE), INTENT(OUT) :: PHLC_HRC   ! HLCLOUDS : LWC that is High LWC in grid
-REAL, DIMENSION(KSIZE), INTENT(OUT) :: PHLC_LRC   ! HLCLOUDS : LWC that is Low  LWC in grid
+REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PHLC_HRC   ! HLCLOUDS : LWC that is High LWC in grid
+REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PHLC_LRC   ! HLCLOUDS : LWC that is Low  LWC in grid
                                                   !    note that PRC = PHLC_HRC + PHLC_LRC
 REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PHLI_HCF
 REAL, DIMENSION(KSIZE), INTENT(INOUT) :: PHLI_LCF
@@ -97,10 +72,13 @@ REAL, DIMENSION(KSIZE) :: ZRCRAUTC,      & !RC value to begin rain formation =XC
                           ZHLC_HRCLOCAL, & !HLCLOUDS : LWC that is High LWC local in HCF
                                                     !    note that ZRC/CF = ZHLC_HRCLOCAL+ ZHLC_LRCLOCAL
                                                     !                     = PHLC_HRC/HCF+ PHLC_LRC/LCF
-                          ZSUMRC, ZSUMRI                          
+                          ZSUMRC, ZSUMRI
 REAL :: ZCOEFFRCM
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !-------------------------------------------------------------------------------
 !
+IF (LHOOK) CALL DR_HOOK('ICE4_COMPUTE_PDF', 0, ZHOOK_HANDLE)!
+
 !Cloud water split between high and low content part is done according to autoconversion option
 ZRCRAUTC(:)=XCRIAUTC/PRHODREF(:) ! Autoconversion rc threshold
 IF(HSUBG_AUCV_RC=='NONE') THEN
@@ -148,7 +126,7 @@ ELSEIF(HSUBG_AUCV_RC=='ADJU') THEN
   ELSEWHERE
     PHLC_LRC(:)=0.
     PHLC_HRC(:)=0.
-  ENDWHERE 
+  ENDWHERE
 ELSEIF(HSUBG_AUCV_RC=='PDF ') THEN
   !Cloud water is split between high and low part according to a PDF
   !    'HLCRECTPDF'    : rectangular PDF form
@@ -321,4 +299,6 @@ ENDIF
 !
 PRF=MAX(PHLC_HCF,PHLI_HCF)
 !
+IF (LHOOK) CALL DR_HOOK('ICE4_COMPUTE_PDF', 1, ZHOOK_HANDLE)
 END SUBROUTINE ICE4_COMPUTE_PDF
+END MODULE MODE_ICE4_COMPUTE_PDF
diff --git a/src/mesonh/micro/ice4_rainfr_vert.f90 b/src/common/micro/mode_ice4_rainfr_vert.F90
similarity index 78%
rename from src/mesonh/micro/ice4_rainfr_vert.f90
rename to src/common/micro/mode_ice4_rainfr_vert.F90
index 6e817fe769601c4347a4e5fecc692bfe0ba17cc3..bc2e72b3a648b39c9bca613bd873e97427bc7495 100644
--- a/src/mesonh/micro/ice4_rainfr_vert.f90
+++ b/src/common/micro/mode_ice4_rainfr_vert.F90
@@ -3,19 +3,9 @@
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-MODULE MODI_ICE4_RAINFR_VERT
-INTERFACE
-SUBROUTINE ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PPRFR, PRR, PRS, PRG, PRH)
+MODULE MODE_ICE4_RAINFR_VERT
 IMPLICIT NONE
-INTEGER,                      INTENT(IN) :: KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT) :: PPRFR !Precipitation fraction
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)    :: PRR !Rain field
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)    :: PRS !Snow field
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)    :: PRG !Graupel field
-REAL, DIMENSION(KIT,KJT,KKT), OPTIONAL,INTENT(IN)    :: PRH !Hail field
-END SUBROUTINE ICE4_RAINFR_VERT
-END INTERFACE
-END MODULE MODI_ICE4_RAINFR_VERT
+CONTAINS
 SUBROUTINE ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PPRFR, PRR, PRS, PRG, PRH)
 !!
 !!**  PURPOSE
@@ -35,6 +25,8 @@ SUBROUTINE ICE4_RAINFR_VERT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, PP
 !*      0. DECLARATIONS
 !          ------------
 !
+USE PARKIND1, ONLY : JPRB
+USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN
 !
 IMPLICIT NONE
@@ -50,10 +42,12 @@ REAL, DIMENSION(KIT,KJT,KKT), OPTIONAL, INTENT(IN)    :: PRH !Hail field
 !
 !*       0.2  declaration of local variables
 !
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
 INTEGER :: JI, JJ, JK
 LOGICAL :: MASK
 !
 !-------------------------------------------------------------------------------
+IF (LHOOK) CALL DR_HOOK('ICE4_RAINFR_VERT',0,ZHOOK_HANDLE)
 !
 !-------------------------------------------------------------------------------
 DO JI = KIB,KIE
@@ -79,5 +73,7 @@ DO JI = KIB,KIE
    END DO
 END DO
 !
+IF (LHOOK) CALL DR_HOOK('ICE4_RAINFR_VERT',1,ZHOOK_HANDLE)
 !
 END SUBROUTINE ICE4_RAINFR_VERT
+END MODULE MODE_ICE4_RAINFR_VERT
diff --git a/src/arome/micro/ice4_rimltc.F90 b/src/common/micro/mode_ice4_rimltc.F90
similarity index 78%
rename from src/arome/micro/ice4_rimltc.F90
rename to src/common/micro/mode_ice4_rimltc.F90
index 7ef2a89922ba345fd232807221a585bfdfe5da2d..9a6e7f0772642982a70c7b73a0fd0c0cbf75c5ac 100644
--- a/src/arome/micro/ice4_rimltc.F90
+++ b/src/common/micro/mode_ice4_rimltc.F90
@@ -1,8 +1,17 @@
+!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
+!MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
+MODULE MODE_ICE4_RIMLTC
+IMPLICIT NONE
+CONTAINS
+
 SUBROUTINE ICE4_RIMLTC(KSIZE, LDSOFT, PCOMPUTE, &
                        &PEXN, PLVFACT, PLSFACT, &
                        &PT, &
                        &PTHT, PRIT, &
-                       &PRIMLTC_MR, PB_TH, PB_RC, PB_RI)
+                       &PRIMLTC_MR)
 !!
 !!**  PURPOSE
 !!    -------
@@ -20,10 +29,8 @@ SUBROUTINE ICE4_RIMLTC(KSIZE, LDSOFT, PCOMPUTE, &
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_CST
-USE MODD_RAIN_ICE_PARAM
-USE MODD_RAIN_ICE_DESCR
-USE MODD_PARAM_ICE, ONLY : LFEEDBACKT
+USE MODD_CST,       ONLY: XTT
+USE MODD_PARAM_ICE, ONLY: LFEEDBACKT
 USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !
@@ -40,10 +47,7 @@ REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT  ! L_s/(Pi_ref*C_ph)
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PTHT     ! Theta at t
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRIT     ! Cloud ice at t
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIMLTC_MR ! Mixing ratio change due to cloud ice melting
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RI
+REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PRIMLTC_MR ! Mixing ratio change due to cloud ice melting
 !
 !*       0.2  declaration of local variables
 !
@@ -72,12 +76,8 @@ IF(.NOT. LDSOFT) THEN
     ENDDO
   ENDIF
 ENDIF
-DO JL=1, KSIZE
-  PB_RC(JL) = PB_RC(JL) + PRIMLTC_MR(JL)
-  PB_RI(JL) = PB_RI(JL) - PRIMLTC_MR(JL)
-  PB_TH(JL) = PB_TH(JL) - PRIMLTC_MR(JL)*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-!
+
 IF (LHOOK) CALL DR_HOOK('ICE4_RIMLTC', 1, ZHOOK_HANDLE)
 !
 END SUBROUTINE ICE4_RIMLTC
+END MODULE MODE_ICE4_RIMLTC
diff --git a/src/arome/micro/ice4_rrhong.F90 b/src/common/micro/mode_ice4_rrhong.F90
similarity index 77%
rename from src/arome/micro/ice4_rrhong.F90
rename to src/common/micro/mode_ice4_rrhong.F90
index 35364711de0385604bdeec904ac9c1a67bd410f9..942e4e3281d1f530286705266be4b18b36a3124b 100644
--- a/src/arome/micro/ice4_rrhong.F90
+++ b/src/common/micro/mode_ice4_rrhong.F90
@@ -1,8 +1,16 @@
+!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
+!MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
+MODULE MODE_ICE4_RRHONG
+IMPLICIT NONE
+CONTAINS
 SUBROUTINE ICE4_RRHONG(KSIZE, LDSOFT, PCOMPUTE, &
                        &PEXN, PLVFACT, PLSFACT, &
                        &PT,   PRRT, &
                        &PTHT, &
-                       &PRRHONG_MR, PB_TH, PB_RR, PB_RG)
+                       &PRRHONG_MR)
 !!
 !!**  PURPOSE
 !!    -------
@@ -20,10 +28,9 @@ SUBROUTINE ICE4_RRHONG(KSIZE, LDSOFT, PCOMPUTE, &
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_CST
-USE MODD_RAIN_ICE_PARAM
-USE MODD_RAIN_ICE_DESCR
-USE MODD_PARAM_ICE, ONLY : LFEEDBACKT
+USE MODD_CST,            ONLY: XTT
+USE MODD_RAIN_ICE_DESCR, ONLY: XRTMIN
+USE MODD_PARAM_ICE,      ONLY: LFEEDBACKT
 USE PARKIND1, ONLY : JPRB
 USE YOMHOOK , ONLY : LHOOK, DR_HOOK
 !
@@ -40,10 +47,7 @@ REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT  ! L_s/(Pi_ref*C_ph)
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain water m.r. at t
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PTHT     ! Theta at t
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRHONG_MR ! Mixing ratio change due to spontaneous freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RG
+REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PRRHONG_MR ! Mixing ratio change due to spontaneous freezing
 !
 !*       0.2  declaration of local variables
 !
@@ -71,12 +75,8 @@ IF(.NOT. LDSOFT) THEN
     ENDDO
   ENDIF
 ENDIF
-DO JL=1, KSIZE
-  PB_RG(JL) = PB_RG(JL) + PRRHONG_MR(JL)
-  PB_RR(JL) = PB_RR(JL) - PRRHONG_MR(JL)
-  PB_TH(JL) = PB_TH(JL) + PRRHONG_MR(JL)*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
 !
 IF (LHOOK) CALL DR_HOOK('ICE4_RRHONG', 1, ZHOOK_HANDLE)
 !
 END SUBROUTINE ICE4_RRHONG
+END MODULE MODE_ICE4_RRHONG
diff --git a/src/mesonh/micro/ice4_rimltc.f90 b/src/mesonh/micro/ice4_rimltc.f90
deleted file mode 100644
index fc4e129862254befe7e652f40780aedbee481759..0000000000000000000000000000000000000000
--- a/src/mesonh/micro/ice4_rimltc.f90
+++ /dev/null
@@ -1,105 +0,0 @@
-!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
-!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
-!MNH_LIC for details. version 1.
-!-----------------------------------------------------------------
-MODULE MODI_ICE4_RIMLTC
-INTERFACE
-SUBROUTINE ICE4_RIMLTC(KSIZE, LDSOFT, PCOMPUTE, &
-                       &PEXN, PLVFACT, PLSFACT, &
-                       &PT, &
-                       &PTHT, PRIT, &
-                       &PRIMLTC_MR, PB_TH, PB_RC, PB_RI)
-IMPLICIT NONE
-INTEGER, INTENT(IN) :: KSIZE
-LOGICAL,                  INTENT(IN)    :: LDSOFT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCOMPUTE
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PEXN     ! Exner function
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT  ! L_v/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT  ! L_s/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PTHT     ! Theta at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRIT     ! Cloud ice at t
-REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PRIMLTC_MR ! Mixing ratio change due to cloud ice melting
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RI
-END SUBROUTINE ICE4_RIMLTC
-END INTERFACE
-END MODULE MODI_ICE4_RIMLTC
-SUBROUTINE ICE4_RIMLTC(KSIZE, LDSOFT, PCOMPUTE, &
-                       &PEXN, PLVFACT, PLSFACT, &
-                       &PT, &
-                       &PTHT, PRIT, &
-                       &PRIMLTC_MR, PB_TH, PB_RC, PB_RI)
-!!
-!!**  PURPOSE
-!!    -------
-!!      Computes the RIMLTC process
-!!
-!!    AUTHOR
-!!    ------
-!!      S. Riette from the splitting of rain_ice source code (nov. 2014)
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!
-!
-!
-!*      0. DECLARATIONS
-!          ------------
-!
-USE MODD_CST,       ONLY: XTT
-USE MODD_PARAM_ICE, ONLY: LFEEDBACKT
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-INTEGER,                      INTENT(IN)    :: KSIZE
-LOGICAL,                      INTENT(IN)    :: LDSOFT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCOMPUTE
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PEXN     ! Exner function
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT  ! L_v/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT  ! L_s/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PTHT     ! Theta at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRIT     ! Cloud ice at t
-REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PRIMLTC_MR ! Mixing ratio change due to cloud ice melting
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RI
-!
-!*       0.2  declaration of local variables
-!
-REAL, DIMENSION(KSIZE) :: ZMASK
-INTEGER :: JL
-!
-!-------------------------------------------------------------------------------
-!
-!*       7.1    cloud ice melting
-!
-PRIMLTC_MR(:)=0.
-IF(.NOT. LDSOFT) THEN
-  DO JL=1, KSIZE
-    ZMASK(JL)=MAX(0., -SIGN(1., -PRIT(JL))) * & ! PRIT(:)>0.
-             &MAX(0., -SIGN(1., XTT-PT(JL))) * & ! PT(:)>XTT
-             &PCOMPUTE(JL)
-    PRIMLTC_MR(JL)=PRIT(JL) * ZMASK(JL)
-  ENDDO
-
-  IF(LFEEDBACKT) THEN
-    !Limitation due to 0 crossing of temperature
-    DO JL=1, KSIZE
-      PRIMLTC_MR(JL)=MIN(PRIMLTC_MR(JL), MAX(0., (PTHT(JL)-XTT/PEXN(JL)) / (PLSFACT(JL)-PLVFACT(JL))))
-    ENDDO
-  ENDIF
-ENDIF
-DO JL=1, KSIZE
-  PB_RC(JL) = PB_RC(JL) + PRIMLTC_MR(JL)
-  PB_RI(JL) = PB_RI(JL) - PRIMLTC_MR(JL)
-  PB_TH(JL) = PB_TH(JL) - PRIMLTC_MR(JL)*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-!
-!
-END SUBROUTINE ICE4_RIMLTC
diff --git a/src/mesonh/micro/ice4_rrhong.f90 b/src/mesonh/micro/ice4_rrhong.f90
deleted file mode 100644
index da26489475b841ca17b8fcd1d286bacc4aeafd38..0000000000000000000000000000000000000000
--- a/src/mesonh/micro/ice4_rrhong.f90
+++ /dev/null
@@ -1,105 +0,0 @@
-!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
-!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
-!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
-!MNH_LIC for details. version 1.
-!-----------------------------------------------------------------
-MODULE MODI_ICE4_RRHONG
-INTERFACE
-SUBROUTINE ICE4_RRHONG(KSIZE, LDSOFT, PCOMPUTE, &
-                       &PEXN, PLVFACT, PLSFACT, &
-                       &PT,   PRRT, &
-                       &PTHT, &
-                       &PRRHONG_MR, PB_TH, PB_RR, PB_RG)
-IMPLICIT NONE
-INTEGER, INTENT(IN) :: KSIZE
-LOGICAL,                  INTENT(IN)    :: LDSOFT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCOMPUTE
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PEXN     ! Exner function
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT  ! L_v/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT  ! L_s/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PTHT     ! Theta at t
-REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PRRHONG_MR ! Mixing ratio change due to spontaneous freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RG
-END SUBROUTINE ICE4_RRHONG
-END INTERFACE
-END MODULE MODI_ICE4_RRHONG
-SUBROUTINE ICE4_RRHONG(KSIZE, LDSOFT, PCOMPUTE, &
-                       &PEXN, PLVFACT, PLSFACT, &
-                       &PT,   PRRT, &
-                       &PTHT, &
-                       &PRRHONG_MR, PB_TH, PB_RR, PB_RG)
-!!
-!!**  PURPOSE
-!!    -------
-!!      Computes the RRHONG process
-!!
-!!    AUTHOR
-!!    ------
-!!      S. Riette from the splitting of rain_ice source code (nov. 2014)
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!
-!
-!
-!*      0. DECLARATIONS
-!          ------------
-!
-USE MODD_CST,            ONLY: XTT
-USE MODD_RAIN_ICE_DESCR, ONLY: XRTMIN
-USE MODD_PARAM_ICE,      ONLY: LFEEDBACKT
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-INTEGER, INTENT(IN) :: KSIZE
-LOGICAL,                  INTENT(IN)    :: LDSOFT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCOMPUTE
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PEXN     ! Exner function
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT  ! L_v/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT  ! L_s/(Pi_ref*C_ph)
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PTHT     ! Theta at t
-REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PRRHONG_MR ! Mixing ratio change due to spontaneous freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RG
-!
-!*       0.2  declaration of local variables
-!
-REAL, DIMENSION(KSIZE) :: ZMASK
-INTEGER :: JL
-!
-!-------------------------------------------------------------------------------
-!
-!*       3.3     compute the spontaneous freezing source: RRHONG
-!
-PRRHONG_MR(:) = 0.
-IF(.NOT. LDSOFT) THEN
-  DO JL=1, KSIZE
-    ZMASK(JL)=MAX(0., -SIGN(1., PT(JL)-(XTT-35.0))) * & ! PT(:)<XTT-35.0
-             &MAX(0., -SIGN(1., XRTMIN(3)-PRRT(JL))) * & ! PRRT(:)>XRTMIN(3)
-             &PCOMPUTE(JL)
-    PRRHONG_MR(JL)=PRRT(JL) * ZMASK(JL)
-  ENDDO
-  IF(LFEEDBACKT) THEN
-    !Limitation due to -35 crossing of temperature
-    DO JL=1, KSIZE
-      PRRHONG_MR(JL)=MIN(PRRHONG_MR(JL), MAX(0., ((XTT-35.)/PEXN(JL)-PTHT(JL))/(PLSFACT(JL)-PLVFACT(JL))))
-    ENDDO
-  ENDIF
-ENDIF
-DO JL=1, KSIZE
-  PB_RG(JL) = PB_RG(JL) + PRRHONG_MR(JL)
-  PB_RR(JL) = PB_RR(JL) - PRRHONG_MR(JL)
-  PB_TH(JL) = PB_TH(JL) + PRRHONG_MR(JL)*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-!
-!
-END SUBROUTINE ICE4_RRHONG