diff --git a/src/arome/gmkpack_ignored_files b/src/arome/gmkpack_ignored_files
index 5b344b8f45db1a6b5b95061f8afa655e740ed401..cca761ab08eebf3dd23dba956f58c7c0949c92dd 100644
--- a/src/arome/gmkpack_ignored_files
+++ b/src/arome/gmkpack_ignored_files
@@ -26,3 +26,11 @@ phyex/micro/ice4_rsrimcg_old.F90
 phyex/micro/modi_ice4_rsrimcg_old.F90
 phyex/micro/ice4_warm.F90
 phyex/micro/modi_ice4_warm.F90
+phyex/micro/ice4_fast_rg.F90
+phyex/micro/ice4_fast_rh.F90
+phyex/micro/ice4_fast_rs.F90
+phyex/micro/ice4_slow.F90
+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
diff --git a/src/arome/micro/ice4_fast_rg.F90 b/src/arome/micro/ice4_fast_rg.F90
deleted file mode 100644
index e6f47e1ad7887845987ca60bc5b86cba1241846b..0000000000000000000000000000000000000000
--- a/src/arome/micro/ice4_fast_rg.F90
+++ /dev/null
@@ -1,496 +0,0 @@
-SUBROUTINE ICE4_FAST_RG(KSIZE, LDSOFT, PCOMPUTE, KRR, &
-                       &PRHODREF, PLVFACT, PLSFACT, PPRES, &
-                       &PDV, PKA, PCJ, PCIT, &
-                       &PLBDAR, PLBDAS, PLBDAG, &
-                       &PT,  PRVT, PRCT, PRRT, PRIT, PRST, PRGT, &
-                       &PRGSI, PRGSI_MR, &
-                       &PWETG, &
-                       &PRICFRRG, PRRCFRIG, PRICFRR, PRCWETG, PRIWETG, PRRWETG, PRSWETG, &
-                       &PRCDRYG, PRIDRYG, PRRDRYG, PRSDRYG, PRWETGH, PRWETGH_MR, PRGMLTR, &
-                       &PRG_TEND, &
-                       &PA_TH, PA_RC, PA_RR, PA_RI, PA_RS, PA_RG, PA_RH, PB_RG, PB_RH)
-!!
-!!**  PURPOSE
-!!    -------
-!!      Computes the fast rg processes
-!!
-!!    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 MODD_PARAM_ICE, ONLY : LEVLIMIT, LNULLWETG, LWETGPOST, LCRFLIMIT
-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
-INTEGER,                      INTENT(IN)    :: KRR      ! Number of moist variable
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHODREF ! Reference density
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PPRES    ! absolute pressure at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PDV      ! Diffusivity of water vapor in the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PKA      ! Thermal conductivity of the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCJ      ! Function to compute the ventilation coefficient
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCIT     ! Pristine ice conc. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAR   ! Slope parameter of the raindrop  distribution
-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)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRVT     ! Water vapor m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRCT     ! Cloud water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain 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 m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRGSI    ! Graupel tendency by other processes
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRGSI_MR ! Graupel mr change by other processes
-REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PWETG    ! 1. where graupel grows in wet mode, 0. elsewhere
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRICFRRG ! Rain contact freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRCFRIG ! Rain contact freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRICFRR  ! Rain contact freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCWETG  ! Graupel wet growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIWETG  ! Graupel wet growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRWETG  ! Graupel wet growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSWETG  ! Graupel wet growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCDRYG  ! Graupel dry growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIDRYG  ! Graupel dry growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRDRYG  ! Graupel dry growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSDRYG  ! Graupel dry growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRWETGH  ! Conversion of graupel into hail
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRWETGH_MR ! Conversion of graupel into hail, mr change
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRGMLTR  ! Melting of the graupel
-REAL, DIMENSION(KSIZE, 8),    INTENT(INOUT) :: PRG_TEND ! Individual tendencies
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RI
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RS
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RG
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RG
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RH
-!
-!*       0.2  declaration of local variables
-!
-LOGICAL, DIMENSION(KSIZE) :: GDRY
-REAL, DIMENSION(KSIZE) :: ZDRY, ZDRYG, ZMASK
-INTEGER :: IGDRY
-REAL, DIMENSION(KSIZE) :: ZVEC1, ZVEC2, ZVEC3
-INTEGER, DIMENSION(KSIZE) :: IVEC1, IVEC2
-REAL, DIMENSION(KSIZE) :: ZZW, &
-                                   ZRDRYG_INIT, & !Initial dry growth rate of the graupeln
-                                   ZRWETG_INIT !Initial wet growth rate of the graupeln
-INTEGER :: JJ, JL
-INTEGER :: IRCDRYG, IRIDRYG, IRIWETG, IRSDRYG, IRSWETG, IRRDRYG, &
-         & IFREEZ1, IFREEZ2
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('ICE4_FAST_RG', 0, ZHOOK_HANDLE)
-!
-IRCDRYG=1
-IRIDRYG=2
-IRIWETG=3
-IRSDRYG=4
-IRSWETG=5
-IRRDRYG=6
-IFREEZ1=7
-IFREEZ2=8
-!
-!-------------------------------------------------------------------------------
-!
-!*       6.1    rain contact freezing
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(4)-PRIT(JL))) * & ! WHERE(PRIT(:)>XRTMIN(4))
-           &MAX(0., -SIGN(1., XRTMIN(3)-PRRT(JL))) * & ! WHERE(PRRT(:)>XRTMIN(3))
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRICFRRG(JL)=ZMASK(JL) * PRICFRRG(JL)
-    PRRCFRIG(JL)=ZMASK(JL) * PRRCFRIG(JL)
-    PRICFRR(JL)=ZMASK(JL) * PRICFRR(JL)
-  ENDDO
-ELSE
-  PRICFRRG(:)=0.
-  PRRCFRIG(:)=0.
-  WHERE(ZMASK(:)==1.)
-    PRICFRRG(:) = XICFRR*PRIT(:)                & ! RICFRRG
-                                 *PLBDAR(:)**XEXICFRR    &
-                                 *PRHODREF(:)**(-XCEXVT)
-    PRRCFRIG(:) = XRCFRI*PCIT(:)                & ! RRCFRIG
-                                 * PLBDAR(:)**XEXRCFRI    &
-                                 * PRHODREF(:)**(-XCEXVT-1.)
-  END WHERE
-
-  IF(LCRFLIMIT) THEN
-    DO JL=1, KSIZE
-      !Comparison between heat to be released (to freeze rain) and heat sink (rain and ice temperature change)
-      !ZZW is the proportion of process that can take place
-      ZZW(JL)=(1.-ZMASK(JL)) + & ! 1. outside of mask
-              ZMASK(JL) * MAX(0., MIN(1., (PRICFRRG(JL)*XCI+PRRCFRIG(JL)*XCL)*(XTT-PT(JL)) / &
-                                          MAX(1.E-20, XLVTT*PRRCFRIG(JL))))
-    ENDDO
-  ELSE
-    ZZW(:)=1.
-  ENDIF
-  DO JL=1, KSIZE
-    PRRCFRIG(JL) = ZZW(JL) * PRRCFRIG(JL) !Part of rain that can be freezed
-    PRICFRR(JL) = (1.-ZZW(JL)) * PRICFRRG(JL) !Part of collected pristine ice converted to rain
-    PRICFRRG(JL) = ZZW(JL) * PRICFRRG(JL) !Part of collected pristine ice that lead to graupel
-  ENDDO
-ENDIF
-DO JL=1, KSIZE
-  PA_RI(JL) = PA_RI(JL) - PRICFRRG(JL) - PRICFRR(JL)
-  PA_RR(JL) = PA_RR(JL) - PRRCFRIG(JL) + PRICFRR(JL)
-  PA_RG(JL) = PA_RG(JL) + PRICFRRG(JL) + PRRCFRIG(JL)
-  PA_TH(JL) = PA_TH(JL) + (PRRCFRIG(JL) - PRICFRR(JL))*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-!
-!
-!*       6.3    compute the graupel growth
-!
-! Wet and dry collection of rc and ri on graupel
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(6)-PRGT(JL))) * & ! WHERE(PRGT(:)>XRTMIN(6))
-           &MAX(0., -SIGN(1., XRTMIN(2)-PRCT(JL))) * & ! WHERE(PRCT(:)>XRTMIN(2))
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRG_TEND(JL, IRCDRYG)=ZMASK(JL)*PRG_TEND(JL, IRCDRYG)
-  ENDDO
-ELSE
-  ZZW(:)=0.
-  WHERE(ZMASK(:)==1.)
-    ZZW(:)=PLBDAG(:)**(XCXG-XDG-2.) * PRHODREF(:)**(-XCEXVT)
-  END WHERE
-  DO JL=1, KSIZE
-    PRG_TEND(JL, IRCDRYG)=ZMASK(JL)*XFCDRYG * PRCT(JL) * ZZW(JL)
-  ENDDO
-ENDIF
-
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(6)-PRGT(JL))) * & ! WHERE(PRGT(:)>XRTMIN(6))
-           &MAX(0., -SIGN(1., XRTMIN(4)-PRIT(JL))) * & ! WHERE(PRIT(:)>XRTMIN(4))
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRG_TEND(JL, IRIDRYG)=ZMASK(JL) * PRG_TEND(JL, IRIDRYG)
-    PRG_TEND(JL, IRIWETG)=ZMASK(JL) * PRG_TEND(JL, IRIWETG)
-  ENDDO
-ELSE
-  PRG_TEND(:, IRIDRYG)=0.
-  PRG_TEND(:, IRIWETG)=0.
-  WHERE(ZMASK(:)==1.)
-    ZZW(:)=PLBDAG(:)**(XCXG-XDG-2.) * PRHODREF(:)**(-XCEXVT)
-    PRG_TEND(:, IRIDRYG)=XFIDRYG*EXP(XCOLEXIG*(PT(:)-XTT))*PRIT(:)*ZZW(:)
-    PRG_TEND(:, IRIWETG)=PRG_TEND(:, IRIDRYG) / (XCOLIG*EXP(XCOLEXIG*(PT(:)-XTT)))
-  END WHERE
-ENDIF
-
-! Wet and dry collection of rs on graupel (6.2.1)
-DO JL=1, KSIZE
-  ZDRY(JL)=MAX(0., -SIGN(1., XRTMIN(5)-PRST(JL))) * & ! WHERE(PRST(:)>XRTMIN(5))
-          &MAX(0., -SIGN(1., XRTMIN(6)-PRGT(JL))) * & ! WHERE(PRGT(:)>XRTMIN(6))
-          &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRG_TEND(JL, IRSDRYG)=ZDRY(JL) * PRG_TEND(JL, IRSDRYG)
-    PRG_TEND(JL, IRSWETG)=ZDRY(JL) * PRG_TEND(JL, IRSWETG)
-  ENDDO
-ELSE
-  PRG_TEND(:, IRSDRYG)=0.
-  PRG_TEND(:, IRSWETG)=0.
-  GDRY(:)=ZDRY(:)==1.
-  IGDRY=COUNT(GDRY(:))
-  IF(IGDRY>0)THEN
-    !
-    !*       6.2.3  select the (PLBDAG,PLBDAS) couplet
-    !
-    ZVEC1(1:IGDRY)=PACK(PLBDAG(:), MASK=GDRY(:))
-    ZVEC2(1:IGDRY)=PACK(PLBDAS(:), MASK=GDRY(:))
-    !
-    !*       6.2.4  find the next lower indice for the PLBDAG and for the PLBDAS
-    !               in the geometrical set of (Lbda_g,Lbda_s) couplet use to
-    !               tabulate the SDRYG-kernel
-    !
-    ZVEC1(1:IGDRY)=MAX(1.00001, MIN(FLOAT(NDRYLBDAG)-0.00001,           &
-                          XDRYINTP1G*LOG(ZVEC1(1:IGDRY))+XDRYINTP2G))
-    IVEC1(1:IGDRY)=INT(ZVEC1(1:IGDRY) )
-    ZVEC1(1:IGDRY)=ZVEC1(1:IGDRY)-FLOAT(IVEC1(1:IGDRY))
-    !
-    ZVEC2(1:IGDRY)=MAX(1.00001, MIN( FLOAT(NDRYLBDAS)-0.00001,           &
-                          XDRYINTP1S*LOG(ZVEC2(1:IGDRY))+XDRYINTP2S))
-    IVEC2(1:IGDRY)=INT(ZVEC2(1:IGDRY))
-    ZVEC2(1:IGDRY)=ZVEC2(1:IGDRY)-FLOAT(IVEC2(1:IGDRY))
-    !
-    !*       6.2.5  perform the bilinear interpolation of the normalized
-    !               SDRYG-kernel
-    !
-    DO 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
-    ZZW(:)=UNPACK(VECTOR=ZVEC3(1:IGDRY), MASK=GDRY(:), FIELD=0.0)
-    !
-    WHERE(GDRY(:))
-      PRG_TEND(:, IRSWETG)=XFSDRYG*ZZW(:)                         & ! RSDRYG
-                                    / XCOLSG &
-                  *(PLBDAS(:)**(XCXS-XBS))*( PLBDAG(:)**XCXG )    &
-                  *(PRHODREF(:)**(-XCEXVT-1.))                    &
-                       *( XLBSDRYG1/( PLBDAG(:)**2              ) + &
-                          XLBSDRYG2/( PLBDAG(:)   * PLBDAS(:)   ) + &
-                          XLBSDRYG3/(               PLBDAS(:)**2))
-      PRG_TEND(:, IRSDRYG)=PRG_TEND(:, IRSWETG)*XCOLSG*EXP(XCOLEXSG*(PT(:)-XTT))
-    END WHERE
-  ENDIF
-ENDIF
-!
-!*       6.2.6  accretion of raindrops on the graupeln
-!
-DO JL=1, KSIZE
-  ZDRY(JL)=MAX(0., -SIGN(1., XRTMIN(3)-PRRT(JL))) * & ! WHERE(PRRT(:)>XRTMIN(3))
-          &MAX(0., -SIGN(1., XRTMIN(6)-PRGT(JL))) * & ! WHERE(PRGT(:)>XRTMIN(6))
-          &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRG_TEND(JL, IRRDRYG)=ZDRY(JL) * PRG_TEND(JL, IRRDRYG)
-  ENDDO
-ELSE
-  GDRY(:)=ZDRY(:)==1.
-  PRG_TEND(:, IRRDRYG)=0.
-  IGDRY=COUNT(GDRY(:))
-  !
-  IF(IGDRY>0) THEN
-    !
-    !*       6.2.8  select the (PLBDAG,PLBDAR) couplet
-    !
-    ZVEC1(1:IGDRY)=PACK(PLBDAG(:), MASK=GDRY(:))
-    ZVEC2(1:IGDRY)=PACK(PLBDAR(:), MASK=GDRY(:))
-    !
-    !*       6.2.9  find the next lower indice for the PLBDAG and for the PLBDAR
-    !               in the geometrical set of (Lbda_g,Lbda_r) couplet use to
-    !               tabulate the RDRYG-kernel
-    !
-    ZVEC1(1:IGDRY)=MAX(1.00001, MIN( FLOAT(NDRYLBDAG)-0.00001,           &
-                          XDRYINTP1G*LOG(ZVEC1(1:IGDRY))+XDRYINTP2G))
-    IVEC1(1:IGDRY)=INT(ZVEC1(1:IGDRY))
-    ZVEC1(1:IGDRY)=ZVEC1(1:IGDRY)-FLOAT(IVEC1(1:IGDRY))
-    !
-    ZVEC2(1:IGDRY)=MAX(1.00001, MIN( FLOAT(NDRYLBDAR)-0.00001,           &
-                          XDRYINTP1R*LOG(ZVEC2(1:IGDRY))+XDRYINTP2R))
-    IVEC2(1:IGDRY)=INT(ZVEC2(1:IGDRY))
-    ZVEC2(1:IGDRY)=ZVEC2(1:IGDRY)-FLOAT(IVEC2(1:IGDRY))
-    !
-    !*       6.2.10 perform the bilinear interpolation of the normalized
-    !               RDRYG-kernel
-    !
-    DO JJ=1, IGDRY
-      ZVEC3(JJ)= (  XKER_RDRYG(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ)          &
-                    - XKER_RDRYG(IVEC1(JJ)+1,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
-                                                                  * ZVEC1(JJ) &
-                 - (  XKER_RDRYG(IVEC1(JJ)  ,IVEC2(JJ)+1)* ZVEC2(JJ)          &
-                    - XKER_RDRYG(IVEC1(JJ)  ,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
-                                                         *(ZVEC1(JJ) - 1.0)
-    END DO
-    ZZW(:)=UNPACK(VECTOR=ZVEC3(1:IGDRY), MASK=GDRY, FIELD=0.)
-    !
-    WHERE(GDRY(:))
-      PRG_TEND(:, IRRDRYG) = XFRDRYG*ZZW(:)                    & ! RRDRYG
-                        *( PLBDAR(:)**(-4) )*( PLBDAG(:)**XCXG ) &
-                               *( PRHODREF(:)**(-XCEXVT-1.) )   &
-                    *( XLBRDRYG1/( PLBDAG(:)**2              ) + &
-                       XLBRDRYG2/( PLBDAG(:)   * PLBDAR(:)   ) + &
-                       XLBRDRYG3/(               PLBDAR(:)**2) )
-    END WHERE
-  ENDIF
-ENDIF
-
-DO JL=1, KSIZE
-  ZRDRYG_INIT(JL)=PRG_TEND(JL, IRCDRYG)+PRG_TEND(JL, IRIDRYG)+ &
-                 &PRG_TEND(JL, IRSDRYG)+PRG_TEND(JL, IRRDRYG)
-ENDDO
-
-!Freezing rate
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(6)-PRGT(JL))) * & ! WHERE(PRGT(:)>XRTMIN(6))
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRG_TEND(JL, IFREEZ1)=ZMASK(JL) * PRG_TEND(JL, IFREEZ1)
-    PRG_TEND(JL, IFREEZ2)=ZMASK(JL) * PRG_TEND(JL, IFREEZ2)
-  ENDDO
-ELSE
-  DO JL=1, KSIZE
-    PRG_TEND(JL, IFREEZ1)=ZMASK(JL) * PRVT(JL)*PPRES(JL)/(XEPSILO+PRVT(JL)) ! Vapor pressure
-  ENDDO
-  IF(LEVLIMIT) THEN
-    WHERE(ZMASK(:)==1.)
-      PRG_TEND(:, IFREEZ1)=MIN(PRG_TEND(:, IFREEZ1), EXP(XALPI-XBETAI/PT(:)-XGAMI*ALOG(PT(:)))) ! min(ev, es_i(T))
-    END WHERE
-  ENDIF
-  PRG_TEND(:, IFREEZ2)=0.
-  WHERE(ZMASK(:)==1.)
-    PRG_TEND(:, IFREEZ1)=PKA(:)*(XTT-PT(:)) +                              &
-             (PDV(:)*(XLVTT+(XCPV-XCL)*(PT(:)-XTT)) &
-                           *(XESTT-PRG_TEND(:, IFREEZ1))/(XRV*PT(:))           )
-    PRG_TEND(:, IFREEZ1)=PRG_TEND(:, IFREEZ1)* ( X0DEPG*       PLBDAG(:)**XEX0DEPG +     &
-                           X1DEPG*PCJ(:)*PLBDAG(:)**XEX1DEPG )/ &
-                          ( PRHODREF(:)*(XLMTT-XCL*(XTT-PT(:))) )
-    PRG_TEND(:, IFREEZ2)=(PRHODREF(:)*(XLMTT+(XCI-XCL)*(XTT-PT(:)))   ) / &
-                          ( PRHODREF(:)*(XLMTT-XCL*(XTT-PT(:))) )
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  !We must agregate, at least, the cold species
-  ZRWETG_INIT(JL)=ZMASK(JL) * MAX(PRG_TEND(JL, IRIWETG)+PRG_TEND(JL, IRSWETG), &
-                                 &MAX(0., PRG_TEND(JL, IFREEZ1) + &
-                                         &PRG_TEND(JL, IFREEZ2) * ( &
-                     &PRG_TEND(JL, IRIWETG)+PRG_TEND(JL, IRSWETG) )))
-ENDDO
-
-!Growth mode
-DO JL=1, KSIZE
-  PWETG(JL) = ZMASK(JL) * & !
-            & MAX(0., SIGN(1., MAX(0., ZRDRYG_INIT(JL)-PRG_TEND(JL, IRIDRYG)-PRG_TEND(JL, IRSDRYG)) - &
-                              &MAX(0., ZRWETG_INIT(JL)-PRG_TEND(JL, IRIWETG)-PRG_TEND(JL, IRSWETG))))
-ENDDO
-IF(LNULLWETG) THEN
-  DO JL=1, KSIZE
-    PWETG(JL) = PWETG(JL) * MAX(0., -SIGN(1., -ZRDRYG_INIT(JL)))
-  ENDDO
-ELSE
-  DO JL=1, KSIZE
-    PWETG(JL) = PWETG(JL) * MAX(0., -SIGN(1., -ZRWETG_INIT(JL)))
-  ENDDO
-ENDIF
-IF(.NOT. LWETGPOST) THEN
-  DO JL=1, KSIZE
-    PWETG(JL) = PWETG(JL) * MAX(0., -SIGN(1., PT(JL)-XTT))
-  ENDDO
-ENDIF
-DO JL=1, KSIZE
-  ZDRYG(JL) = ZMASK(JL) * & !
-            & MAX(0., -SIGN(1., PT(JL)-XTT)) * & ! WHERE(PT(:)<XTT)
-            & MAX(0., -SIGN(1., -ZRDRYG_INIT(JL))) * & ! WHERE(ZRDRYG_INIT(:)>0.)
-            & MAX(0., -SIGN(1., MAX(0., ZRDRYG_INIT(JL)-PRG_TEND(JL, IRIDRYG)-PRG_TEND(JL, IRSDRYG)) - &
-                               &MAX(0., ZRWETG_INIT(JL)-PRG_TEND(JL, IRIWETG)-PRG_TEND(JL, IRSWETG))))
-ENDDO
-
-! Part of ZRWETG to be converted into hail
-! Graupel can be produced by other processes instantaneously (inducing a mixing ratio change, PRGSI_MR) or
-! as a tendency (PRWETGH)
-PRWETGH(:)=0.
-PRWETGH_MR(:)=0.
-IF(KRR==7) THEN
-  WHERE(PWETG(:)==1.)
-    !assume a linear percent of conversion of produced graupel into hail
-    PRWETGH(:)=(MAX(0., PRGSI(:)+PRICFRRG(:)+PRRCFRIG(:))+ZRWETG_INIT(:))*ZRDRYG_INIT(:)/(ZRWETG_INIT(:)+ZRDRYG_INIT(:))
-    PRWETGH_MR(:)=MAX(0., PRGSI_MR(:))*ZRDRYG_INIT(:)/(ZRWETG_INIT(:)+ZRDRYG_INIT(:))
-  END WHERE
-ENDIF
-
-DO JL=1, KSIZE
-  !Aggregated minus collected
-  PRRWETG(JL)=-PWETG(JL) * (PRG_TEND(JL, IRIWETG)+PRG_TEND(JL, IRSWETG)+&
-                           &PRG_TEND(JL, IRCDRYG)-ZRWETG_INIT(JL))
-  PRCWETG(JL)=PWETG(JL) * PRG_TEND(JL, IRCDRYG)
-  PRIWETG(JL)=PWETG(JL) * PRG_TEND(JL, IRIWETG)
-  PRSWETG(JL)=PWETG(JL) * PRG_TEND(JL, IRSWETG)
-
-  PRCDRYG(JL)=ZDRYG(JL) * PRG_TEND(JL, IRCDRYG)
-  PRRDRYG(JL)=ZDRYG(JL) * PRG_TEND(JL, IRRDRYG)
-  PRIDRYG(JL)=ZDRYG(JL) * PRG_TEND(JL, IRIDRYG)
-  PRSDRYG(JL)=ZDRYG(JL) * PRG_TEND(JL, IRSDRYG)
-
-  PA_RC(JL) = PA_RC(JL) - PRCWETG(JL)
-  PA_RI(JL) = PA_RI(JL) - PRIWETG(JL)
-  PA_RS(JL) = PA_RS(JL) - PRSWETG(JL)
-  PA_RG(JL) = PA_RG(JL) + PRCWETG(JL) + PRIWETG(JL) + PRSWETG(JL) + PRRWETG(JL)
-  PA_RR(JL) = PA_RR(JL) - PRRWETG(JL)
-  PA_TH(JL) = PA_TH(JL) + (PRCWETG(JL) + PRRWETG(JL))*(PLSFACT(JL)-PLVFACT(JL))
-  PA_RG(JL) = PA_RG(JL) - PRWETGH(JL)
-  PA_RH(JL) = PA_RH(JL) + PRWETGH(JL)
-  PB_RG(JL) = PB_RG(JL) - PRWETGH_MR(JL)
-  PB_RH(JL) = PB_RH(JL) + PRWETGH_MR(JL)
-  PA_RC(JL) = PA_RC(JL) - PRCDRYG(JL)
-  PA_RI(JL) = PA_RI(JL) - PRIDRYG(JL)
-  PA_RS(JL) = PA_RS(JL) - PRSDRYG(JL)
-  PA_RR(JL) = PA_RR(JL) - PRRDRYG(JL)
-  PA_RG(JL) = PA_RG(JL) + PRCDRYG(JL) + PRIDRYG(JL) + PRSDRYG(JL) + PRRDRYG(JL)
-  PA_TH(JL) = PA_TH(JL) + (PRCDRYG(JL)+PRRDRYG(JL))*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-!
-!*       6.5    Melting of the graupeln
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(6)-PRGT(JL))) * & ! WHERE(PRGT(:)>XRTMIN(6))
-           &MAX(0., -SIGN(1., XTT-PT(JL))) * & ! WHERE(PT(:)>XTT)
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRGMLTR(JL)=ZMASK(JL) * PRGMLTR(JL)
-  ENDDO
-ELSE
-  DO JL=1, KSIZE
-    PRGMLTR(JL)=ZMASK(JL) * PRVT(JL)*PPRES(JL)/(XEPSILO+PRVT(JL)) ! Vapor pressure
-  ENDDO
-  IF(LEVLIMIT) THEN
-    WHERE(ZMASK(:)==1.)
-      PRGMLTR(:)=MIN(PRGMLTR(:), EXP(XALPW-XBETAW/PT(:)-XGAMW*ALOG(PT(:)))) ! min(ev, es_w(T))
-    END WHERE
-  ENDIF
-  DO JL=1, KSIZE
-    PRGMLTR(JL)=ZMASK(JL) * (PKA(JL)*(XTT-PT(JL)) +                                 &
-               ( PDV(JL)*(XLVTT + ( XCPV - XCL ) * ( PT(JL) - XTT )) &
-                           *(XESTT-PRGMLTR(JL))/(XRV*PT(JL))             ))
-  ENDDO
-  WHERE(ZMASK(:)==1.)
-    !
-    ! compute RGMLTR
-    !
-    PRGMLTR(:)  = MAX( 0.0,( -PRGMLTR(:) *                     &
-                           ( X0DEPG*       PLBDAG(:)**XEX0DEPG +     &
-                             X1DEPG*PCJ(:)*PLBDAG(:)**XEX1DEPG ) -   &
-                         ( PRG_TEND(:, IRCDRYG)+PRG_TEND(:, IRRDRYG) ) *       &
-                               ( PRHODREF(:)*XCL*(XTT-PT(:))) ) /    &
-                                             ( PRHODREF(:)*XLMTT ) )
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  PA_RR(JL) = PA_RR(JL) + PRGMLTR(JL)
-  PA_RG(JL) = PA_RG(JL) - PRGMLTR(JL)
-  PA_TH(JL) = PA_TH(JL) - PRGMLTR(JL)*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-
-IF (LHOOK) CALL DR_HOOK('ICE4_FAST_RG', 1, ZHOOK_HANDLE)
-!
-END SUBROUTINE ICE4_FAST_RG
diff --git a/src/arome/micro/ice4_fast_rh.F90 b/src/arome/micro/ice4_fast_rh.F90
deleted file mode 100644
index 86ac7d99740058dc81e7cfad6910e008a00878c0..0000000000000000000000000000000000000000
--- a/src/arome/micro/ice4_fast_rh.F90
+++ /dev/null
@@ -1,502 +0,0 @@
-SUBROUTINE ICE4_FAST_RH(KSIZE, LDSOFT, PCOMPUTE, PWETG, &
-                       &PRHODREF, PLVFACT, PLSFACT, PPRES, &
-                       &PDV, PKA, PCJ, &
-                       &PLBDAS, PLBDAG, PLBDAR, PLBDAH, &
-                       &PT,  PRVT, PRCT, PRRT, PRIT, PRST, PRGT, PRHT, &
-                       &PRCWETH, PRIWETH, PRSWETH, PRGWETH, PRRWETH, &
-                       &PRCDRYH, PRIDRYH, PRSDRYH, PRRDRYH, PRGDRYH, PRDRYHG, PRHMLTR, &
-                       &PRH_TEND, &
-                       &PA_TH, PA_RC, PA_RR, PA_RI, PA_RS, PA_RG, PA_RH)
-!!
-!!**  PURPOSE
-!!    -------
-!!      Computes the fast rh 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 MODD_PARAM_ICE, ONLY : LEVLIMIT, LNULLWETH, LWETHPOST, LCONVHG
-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)    :: PWETG    ! 1. where graupel grows in wet mode, 0. elsewhere
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHODREF ! Reference density
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PPRES    ! absolute pressure at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PDV      ! Diffusivity of water vapor in the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PKA      ! Thermal conductivity of the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCJ      ! Function to compute the ventilation coefficient
-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)    :: PLBDAR   ! Slope parameter of the rain      distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAH   ! Slope parameter of the hail      distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRVT     ! Water vapor m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRCT     ! Cloud water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain 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 m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHT     ! Hail m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRGWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRGDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRDRYHG  ! Conversion of hailstone into graupel
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRHMLTR  ! Melting of the hailstones
-REAL, DIMENSION(KSIZE, 10),   INTENT(INOUT) :: PRH_TEND ! Individual tendencies
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RI
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RS
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RG
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RH
-!
-!*       0.2  declaration of local variables
-!
-LOGICAL, DIMENSION(KSIZE) :: GWET
-REAL, DIMENSION(KSIZE) :: ZHAIL, ZWET, ZMASK, ZWETH, ZDRYH
-INTEGER :: IHAIL, IGWET
-REAL, DIMENSION(KSIZE) :: ZVEC1, ZVEC2, ZVEC3
-INTEGER, DIMENSION(KSIZE) :: IVEC1, IVEC2
-REAL, DIMENSION(KSIZE) :: ZZW, &
-                                   ZRDRYH_INIT, ZRWETH_INIT, &
-                                   ZRDRYHG
-INTEGER :: JJ, JL
-INTEGER :: IRCWETH, IRRWETH, IRIDRYH, IRIWETH, IRSDRYH, IRSWETH, IRGDRYH, IRGWETH, &
-         & IFREEZ1, IFREEZ2
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!
-!-------------------------------------------------------------------------------
-IF (LHOOK) CALL DR_HOOK('ICE4_FAST_RH',0,ZHOOK_HANDLE)
-!
-IRCWETH=1
-IRRWETH=2
-IRIDRYH=3
-IRIWETH=4
-IRSDRYH=5
-IRSWETH=6
-IRGDRYH=7
-IRGWETH=8
-IFREEZ1=9
-IFREEZ2=10
-!
-!
-!
-!*       7.2    compute the Wet and Dry growth of hail
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(7)-PRHT(JL))) * & ! WHERE(PRHT(:)>XRTMIN(7))
-           &MAX(0., -SIGN(1., XRTMIN(2)-PRCT(JL))) * & ! WHERE(PRCT(:)>XRTMIN(2))
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRH_TEND(JL, IRCWETH)=ZMASK(JL) * PRH_TEND(JL, IRCWETH)
-  ENDDO
-ELSE
-  PRH_TEND(:, IRCWETH)=0.
-  WHERE(ZMASK(:)==1.)
-    ZZW(:) = PLBDAH(:)**(XCXH-XDH-2.0) * PRHODREF(:)**(-XCEXVT)
-    PRH_TEND(:, IRCWETH)=XFWETH * PRCT(:) * ZZW(:)    ! RCWETH
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(7)-PRHT(JL))) * & ! WHERE(PRHT(:)>XRTMIN(7))
-           &MAX(0., -SIGN(1., XRTMIN(4)-PRIT(JL))) * & ! WHERE(PRIT(:)>XRTMIN(4))
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRH_TEND(JL, IRIWETH)=ZMASK(JL) * PRH_TEND(JL, IRIWETH)
-    PRH_TEND(JL, IRIDRYH)=ZMASK(JL) * PRH_TEND(JL, IRIDRYH)
-  ENDDO
-ELSE
-  PRH_TEND(:, IRIWETH)=0.
-  PRH_TEND(:, IRIDRYH)=0.
-  WHERE(ZMASK(:)==1.)
-    ZZW(:) = PLBDAH(:)**(XCXH-XDH-2.0) * PRHODREF(:)**(-XCEXVT)
-    PRH_TEND(:, IRIWETH)=XFWETH * PRIT(:) * ZZW(:)   ! RIWETH
-    PRH_TEND(:, IRIDRYH)=PRH_TEND(:, IRIWETH)*(XCOLIH*EXP(XCOLEXIH*(PT(:)-XTT)))   ! RIDRYH
-  END WHERE
-ENDIF
-
-!
-!*       7.2.1  accretion of aggregates on the hailstones
-!
-DO JL=1, KSIZE
-  ZWET(JL) = MAX(0., -SIGN(1., XRTMIN(7)-PRHT(JL))) * & ! WHERE(PRHT(:)>XRTMIN(7))
-            &MAX(0., -SIGN(1., XRTMIN(5)-PRST(JL))) * & ! WHERE(PRST(:)>XRTMIN(5))
-            &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRH_TEND(JL, IRSWETH)=ZWET(JL) * PRH_TEND(JL, IRSWETH)
-    PRH_TEND(JL, IRSDRYH)=ZWET(JL) * PRH_TEND(JL, IRSDRYH)
-  ENDDO
-ELSE
-  PRH_TEND(:, IRSWETH)=0.
-  PRH_TEND(:, IRSDRYH)=0.
-  GWET(:)=ZWET(:)==1.
-  IGWET=COUNT(GWET(:))
-  IF(IGWET>0)THEN
-    !
-    !*       7.2.3  select the (PLBDAH,PLBDAS) couplet
-    !
-    ZVEC1(1:IGWET) = PACK( PLBDAH(:),MASK=GWET(:) )
-    ZVEC2(1:IGWET) = PACK( PLBDAS(:),MASK=GWET(:) )
-    !
-    !*       7.2.4  find the next lower indice for the PLBDAG and for the PLBDAS
-    !               in the geometrical set of (Lbda_h,Lbda_s) couplet use to
-    !               tabulate the SWETH-kernel
-    !
-    ZVEC1(1:IGWET) = MAX( 1.00001, MIN( FLOAT(NWETLBDAH)-0.00001,           &
-                          XWETINTP1H * LOG( ZVEC1(1:IGWET) ) + XWETINTP2H ) )
-    IVEC1(1:IGWET) = INT( ZVEC1(1:IGWET) )
-    ZVEC1(1:IGWET) = ZVEC1(1:IGWET) - FLOAT( IVEC1(1:IGWET) )
-    !
-    ZVEC2(1:IGWET) = MAX( 1.00001, MIN( FLOAT(NWETLBDAS)-0.00001,           &
-                          XWETINTP1S * LOG( ZVEC2(1:IGWET) ) + XWETINTP2S ) )
-    IVEC2(1:IGWET) = INT( ZVEC2(1:IGWET) )
-    ZVEC2(1:IGWET) = ZVEC2(1:IGWET) - FLOAT( IVEC2(1:IGWET) )
-    !
-    !*       7.2.5  perform the bilinear interpolation of the normalized
-    !               SWETH-kernel
-    !
-    DO JJ = 1,IGWET
-      ZVEC3(JJ) = (  XKER_SWETH(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ)          &
-                   - XKER_SWETH(IVEC1(JJ)+1,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
-                                                                 * ZVEC1(JJ) &
-                  - ( XKER_SWETH(IVEC1(JJ)  ,IVEC2(JJ)+1)* ZVEC2(JJ)          &
-                  - XKER_SWETH(IVEC1(JJ)  ,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
-                                                         * (ZVEC1(JJ) - 1.0)
-    END DO
-    ZZW(:) = UNPACK( VECTOR=ZVEC3(1:IGWET),MASK=GWET,FIELD=0.0 )
-    !
-    WHERE(GWET(:))
-      PRH_TEND(:, IRSWETH)=XFSWETH*ZZW(:)                       & ! RSWETH
-                    *( PLBDAS(:)**(XCXS-XBS) )*( PLBDAH(:)**XCXH )  &
-                       *( PRHODREF(:)**(-XCEXVT-1.) )               &
-                       *( XLBSWETH1/( PLBDAH(:)**2              ) + &
-                          XLBSWETH2/( PLBDAH(:)   * PLBDAS(:)   ) + &
-                          XLBSWETH3/(               PLBDAS(:)**2) )
-      PRH_TEND(:, IRSDRYH)=PRH_TEND(:, IRSWETH)*(XCOLSH*EXP(XCOLEXSH*(PT(:)-XTT)))
-    END WHERE
-  ENDIF
-ENDIF
-!
-!*       7.2.6  accretion of graupeln on the hailstones
-!
-DO JL=1, KSIZE
-  ZWET(JL)=MAX(0., -SIGN(1., XRTMIN(7)-PRHT(JL))) * & ! WHERE(PRHT(:)>XRTMIN(7))
-          &MAX(0., -SIGN(1., XRTMIN(6)-PRGT(JL))) * & ! WHERE(PRGT(:)>XRTMIN(6))
-          &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRH_TEND(JL, IRGWETH)=ZWET(JL) * PRH_TEND(JL, IRGWETH)
-    PRH_TEND(JL, IRGDRYH)=ZWET(JL) * PRH_TEND(JL, IRGDRYH)
-  ENDDO
-ELSE
-  PRH_TEND(:, IRGWETH)=0.
-  PRH_TEND(:, IRGDRYH)=0.
-  GWET(:)=ZWET(:)==1.
-  IGWET=COUNT(GWET(:))
-  IF(IGWET>0)THEN
-    !
-    !*       7.2.8  select the (PLBDAH,PLBDAG) couplet
-    !
-    ZVEC1(1:IGWET) = PACK( PLBDAH(:),MASK=GWET(:) )
-    ZVEC2(1:IGWET) = PACK( PLBDAG(:),MASK=GWET(:) )
-    !
-    !*       7.2.9  find the next lower indice for the PLBDAH and for the PLBDAG
-    !               in the geometrical set of (Lbda_h,Lbda_g) couplet use to
-    !               tabulate the GWETH-kernel
-    !
-    ZVEC1(1:IGWET) = MAX( 1.00001, MIN( FLOAT(NWETLBDAG)-0.00001,           &
-                          XWETINTP1H * LOG( ZVEC1(1:IGWET) ) + XWETINTP2H ) )
-    IVEC1(1:IGWET) = INT( ZVEC1(1:IGWET) )
-    ZVEC1(1:IGWET) = ZVEC1(1:IGWET) - FLOAT( IVEC1(1:IGWET) )
-    !
-    ZVEC2(1:IGWET) = MAX( 1.00001, MIN( FLOAT(NWETLBDAG)-0.00001,           &
-                          XWETINTP1G * LOG( ZVEC2(1:IGWET) ) + XWETINTP2G ) )
-    IVEC2(1:IGWET) = INT( ZVEC2(1:IGWET) )
-    ZVEC2(1:IGWET) = ZVEC2(1:IGWET) - FLOAT( IVEC2(1:IGWET) )
-    !
-    !*       7.2.10 perform the bilinear interpolation of the normalized
-    !               GWETH-kernel
-    !
-    DO JJ = 1,IGWET
-      ZVEC3(JJ) = (  XKER_GWETH(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ)          &
-                   - XKER_GWETH(IVEC1(JJ)+1,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
-                                                                 * ZVEC1(JJ) &
-                - (  XKER_GWETH(IVEC1(JJ)  ,IVEC2(JJ)+1)* ZVEC2(JJ)          &
-                   - XKER_GWETH(IVEC1(JJ)  ,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
-                                                        * (ZVEC1(JJ) - 1.0)
-    END DO
-    ZZW(:) = UNPACK( VECTOR=ZVEC3(1:IGWET),MASK=GWET,FIELD=0.0 )
-    !
-    WHERE(GWET(:))
-      PRH_TEND(:, IRGWETH)=XFGWETH*ZZW(:)                       & ! RGWETH
-                    *( PLBDAG(:)**(XCXG-XBG) )*( PLBDAH(:)**XCXH )  &
-                       *( PRHODREF(:)**(-XCEXVT-1.) )               &
-                       *( XLBGWETH1/( PLBDAH(:)**2              ) + &
-                          XLBGWETH2/( PLBDAH(:)   * PLBDAG(:)   ) + &
-                          XLBGWETH3/(               PLBDAG(:)**2) )
-      PRH_TEND(:, IRGDRYH)=PRH_TEND(:, IRGWETH)
-    END WHERE
-    !When graupel grows in wet mode, graupel is wet (!) and collection efficiency must remain the same
-    WHERE(GWET(:) .AND. .NOT. PWETG(:)==1.)
-      PRH_TEND(:, IRGDRYH)=PRH_TEND(:, IRGDRYH)*(XCOLGH*EXP(XCOLEXGH*(PT(:)-XTT)))
-    END WHERE
-  END IF
-ENDIF
-!
-!*       7.2.11  accretion of raindrops on the hailstones
-!
-DO JL=1, KSIZE
-  ZWET(JL)=MAX(0., -SIGN(1., XRTMIN(7)-PRHT(JL))) * & ! WHERE(PRHT(:)>XRTMIN(7))
-          &MAX(0., -SIGN(1., XRTMIN(3)-PRRT(JL))) * & ! WHERE(PRRT(:)>XRTMIN(3))
-          &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRH_TEND(JL, IRRWETH)=ZWET(JL) * PRH_TEND(JL, IRRWETH)
-  ENDDO
-ELSE
-  PRH_TEND(:, IRRWETH)=0.
-  GWET(:)=ZWET(:)==1.
-  IGWET=COUNT(GWET(:))
-  IF(IGWET>0)THEN
-    !
-    !*       7.2.12  select the (PLBDAH,PLBDAR) couplet
-    !
-    ZVEC1(1:IGWET)=PACK(PLBDAH(:), MASK=GWET(:))
-    ZVEC2(1:IGWET)=PACK(PLBDAR(:), MASK=GWET(:))
-    !
-    !*       7.2.13 find the next lower indice for the PLBDAH and for the PLBDAR
-    !               in the geometrical set of (Lbda_h,Lbda_r) couplet use to
-    !               tabulate the RWETH-kernel
-    !
-    ZVEC1(1:IGWET)=MAX(1.00001, MIN( FLOAT(NWETLBDAH)-0.00001,           &
-                          XWETINTP1H*LOG(ZVEC1(1:IGWET))+XWETINTP2H))
-    IVEC1(1:IGWET)=INT(ZVEC1(1:IGWET))
-    ZVEC1(1:IGWET)=ZVEC1(1:IGWET)-FLOAT(IVEC1(1:IGWET))
-    !
-    ZVEC2(1:IGWET)=MAX(1.00001, MIN( FLOAT(NWETLBDAR)-0.00001,           &
-                          XWETINTP1R*LOG(ZVEC2(1:IGWET))+XWETINTP2R))
-    IVEC2(1:IGWET)=INT(ZVEC2(1:IGWET))
-    ZVEC2(1:IGWET)=ZVEC2(1:IGWET)-FLOAT(IVEC2(1:IGWET))
-    !
-    !*       7.2.14 perform the bilinear interpolation of the normalized
-    !               RWETH-kernel
-    !
-    DO JJ=1, IGWET
-      ZVEC3(JJ)= (  XKER_RWETH(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ)          &
-                    - XKER_RWETH(IVEC1(JJ)+1,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
-                                                                  * ZVEC1(JJ) &
-                 - (  XKER_RWETH(IVEC1(JJ)  ,IVEC2(JJ)+1)* ZVEC2(JJ)          &
-                    - XKER_RWETH(IVEC1(JJ)  ,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
-                                                         *(ZVEC1(JJ) - 1.0)
-    END DO
-    ZZW(:)=UNPACK(VECTOR=ZVEC3(1:IGWET), MASK=GWET, FIELD=0.)
-    !
-    WHERE(GWET(:))
-      PRH_TEND(:, IRRWETH) = XFRWETH*ZZW(:)                    & ! RRWETH
-                        *( PLBDAR(:)**(-4) )*( PLBDAH(:)**XCXH ) &
-                               *( PRHODREF(:)**(-XCEXVT-1.) )   &
-                    *( XLBRWETH1/( PLBDAH(:)**2              ) + &
-                       XLBRWETH2/( PLBDAH(:)   * PLBDAR(:)   ) + &
-                       XLBRWETH3/(               PLBDAR(:)**2) )
-    END WHERE
-  ENDIF
-ENDIF
-!
-DO JL=1, KSIZE
-  ZRDRYH_INIT(JL)=PRH_TEND(JL, IRCWETH)+PRH_TEND(JL, IRIDRYH)+ &
-                 &PRH_TEND(JL, IRSDRYH)+PRH_TEND(JL, IRRWETH)+PRH_TEND(JL, IRGDRYH)
-ENDDO
-!
-!*       7.3    compute the Wet growth of hail
-!
-DO JL=1, KSIZE
-  ZHAIL(JL)=MAX(0., -SIGN(1., XRTMIN(7)-PRHT(JL))) * & ! WHERE(PRHT(:)>XRTMIN(7))
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRH_TEND(JL, IFREEZ1)=ZHAIL(JL) * PRH_TEND(JL, IFREEZ1)
-    PRH_TEND(JL, IFREEZ2)=ZHAIL(JL) * PRH_TEND(JL, IFREEZ2)
-  ENDDO
-ELSE
-  DO JL=1, KSIZE
-    PRH_TEND(JL, IFREEZ1)=PRVT(JL)*PPRES(JL)/(XEPSILO+PRVT(JL)) ! Vapor pressure
-  ENDDO
-  IF(LEVLIMIT) THEN
-    WHERE(ZHAIL(:)==1.)
-      PRH_TEND(:, IFREEZ1)=MIN(PRH_TEND(:, IFREEZ1), EXP(XALPI-XBETAI/PT(:)-XGAMI*ALOG(PT(:)))) ! min(ev, es_i(T))
-    END WHERE
-  ENDIF
-  PRH_TEND(:, IFREEZ2)=0.
-  WHERE(ZHAIL(:)==1.)
-    PRH_TEND(:, IFREEZ1)=PKA(:)*(XTT-PT(:)) +                              &
-             (PDV(:)*(XLVTT+(XCPV-XCL)*(PT(:)-XTT)) &
-                           *(XESTT-PRH_TEND(:, IFREEZ1))/(XRV*PT(:))           )
-    PRH_TEND(:, IFREEZ1)=PRH_TEND(:, IFREEZ1)* ( X0DEPH*       PLBDAH(:)**XEX0DEPH +     &
-                           X1DEPH*PCJ(:)*PLBDAH(:)**XEX1DEPH )/ &
-                          ( PRHODREF(:)*(XLMTT-XCL*(XTT-PT(:))) )
-    PRH_TEND(:, IFREEZ2)=(PRHODREF(:)*(XLMTT+(XCI-XCL)*(XTT-PT(:)))   ) / &
-                          ( PRHODREF(:)*(XLMTT-XCL*(XTT-PT(:))) )
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  !We must agregate, at least, the cold species
-  ZRWETH_INIT(JL)=ZHAIL(JL) * MAX(PRH_TEND(JL, IRIWETH)+PRH_TEND(JL, IRSWETH)+PRH_TEND(JL, IRGWETH), &
-                                 &MAX(0., PRH_TEND(JL, IFREEZ1) + &
-                                         &PRH_TEND(JL, IFREEZ2) * ( &
-                     &PRH_TEND(JL, IRIWETH)+PRH_TEND(JL, IRSWETH)+PRH_TEND(JL, IRGWETH) )))
-ENDDO
-!
-!*       7.4    Select Wet or Dry case
-!
-!Wet case
-DO JL=1, KSIZE
-  ZWETH(JL) = ZHAIL(JL) * &
-            & MAX(0., SIGN(1., MAX(0., ZRDRYH_INIT(JL)-PRH_TEND(JL, IRIDRYH)-PRH_TEND(JL, IRSDRYH)-PRH_TEND(JL, IRGDRYH)) - &
-                              &MAX(0., ZRWETH_INIT(JL)-PRH_TEND(JL, IRIWETH)-PRH_TEND(JL, IRSWETH)-PRH_TEND(JL, IRGWETH))))
-ENDDO
-IF(LNULLWETH) THEN
-  DO JL=1, KSIZE
-    ZWETH(JL) = ZWETH(JL) * MAX(0., -SIGN(1., -ZRDRYH_INIT(JL))) ! WHERE(ZRDRYH_INIT(:)>0.)
-  ENDDO
-ELSE
-  DO JL=1, KSIZE
-    ZWETH(JL) = ZWETH(JL) * MAX(0., -SIGN(1., -ZRWETH_INIT(JL))) ! WHERE(ZRWETH_INIT(:)>0.)
-  ENDDO
-ENDIF
-IF(.NOT. LWETHPOST) THEN
-  DO JL=1, KSIZE
-    ZWETH(JL) = ZWETH(JL) * MAX(0., -SIGN(1., PT(JL)-XTT)) ! WHERE(PT(:)<XTT)
-  ENDDO
-ENDIF
-DO JL=1, KSIZE
-  ZDRYH(JL) = ZHAIL(JL) * &
-            & MAX(0., -SIGN(1., PT(JL)-XTT)) * & ! WHERE(PT(:)<XTT)
-            & MAX(0., -SIGN(1., -ZRDRYH_INIT(JL))) * & !WHERE(ZRDRYH_INIT(:)>0.)
-            & MAX(0., -SIGN(1., MAX(0., ZRDRYH_INIT(JL)-PRH_TEND(JL, IRIDRYH)-PRH_TEND(JL, IRSDRYH)) - &
-                               &MAX(0., ZRWETH_INIT(JL)-PRH_TEND(JL, IRIWETH)-PRH_TEND(JL, IRSWETH))))
-ENDDO
-!
-ZRDRYHG(:)=0.
-IF(LCONVHG)THEN
-  WHERE(ZDRYH(:)==1.)
-    ZRDRYHG(:)=ZRDRYH_INIT(:)*ZRWETH_INIT(:)/(ZRDRYH_INIT(:)+ZRWETH_INIT(:))
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  PRCWETH(JL) = ZWETH(JL) * PRH_TEND(JL, IRCWETH)
-  PRIWETH(JL) = ZWETH(JL) * PRH_TEND(JL, IRIWETH)
-  PRSWETH(JL) = ZWETH(JL) * PRH_TEND(JL, IRSWETH)
-  PRGWETH(JL) = ZWETH(JL) * PRH_TEND(JL, IRGWETH)
-  !Collected minus aggregated
-  PRRWETH(JL) = ZWETH(JL) * (ZRWETH_INIT(JL) - PRH_TEND(JL, IRIWETH) - &
-                             PRH_TEND(JL, IRSWETH) - PRH_TEND(JL, IRGWETH) - &
-                             PRH_TEND(JL, IRCWETH))
-
-  PRCDRYH(JL) = ZDRYH(JL) * PRH_TEND(JL, IRCWETH)
-  PRIDRYH(JL) = ZDRYH(JL) * PRH_TEND(JL, IRIDRYH)
-  PRSDRYH(JL) = ZDRYH(JL) * PRH_TEND(JL, IRSDRYH)
-  PRRDRYH(JL) = ZDRYH(JL) * PRH_TEND(JL, IRRWETH)
-  PRGDRYH(JL) = ZDRYH(JL) * PRH_TEND(JL, IRGDRYH)
-  PRDRYHG(JL) = ZDRYH(JL) * ZRDRYHG(JL)
-
-  PA_RC(JL) = PA_RC(JL) - PRCWETH(JL)
-  PA_RI(JL) = PA_RI(JL) - PRIWETH(JL)
-  PA_RS(JL) = PA_RS(JL) - PRSWETH(JL)
-  PA_RG(JL) = PA_RG(JL) - PRGWETH(JL)
-  PA_RH(JL) = PA_RH(JL) + PRCWETH(JL)+PRIWETH(JL)+PRSWETH(JL)+PRGWETH(JL)+PRRWETH(JL)
-  PA_RR(JL) = PA_RR(JL) - PRRWETH(JL)
-  PA_TH(JL) = PA_TH(JL) + (PRRWETH(JL)+PRCWETH(JL))*(PLSFACT(JL)-PLVFACT(JL))
-  PA_RC(JL) = PA_RC(JL) - PRCDRYH(JL)
-  PA_RI(JL) = PA_RI(JL) - PRIDRYH(JL)
-  PA_RS(JL) = PA_RS(JL) - PRSDRYH(JL)
-  PA_RR(JL) = PA_RR(JL) - PRRDRYH(JL)
-  PA_RG(JL) = PA_RG(JL) - PRGDRYH(JL) + PRDRYHG(JL)
-  PA_RH(JL) = PA_RH(JL) + PRCDRYH(JL)+PRIDRYH(JL)+PRSDRYH(JL)+&
-                         &PRRDRYH(JL)+PRGDRYH(JL) - PRDRYHG(JL)
-  PA_TH(JL) = PA_TH(JL) + (PRCDRYH(JL)+PRRDRYH(JL))*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-!
-!*       7.5    Melting of the hailstones
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(7)-PRHT(JL))) * & ! WHERE(PRHT(:)>XRTMIN(7))
-           &MAX(0., -SIGN(1., XTT-PT(JL))) * & ! WHERE(PT(:)>XTT)
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRHMLTR(JL)=ZMASK(JL)*PRHMLTR(JL)
-  ENDDO
-ELSE
-  DO JL=1, KSIZE
-    PRHMLTR(JL) = ZMASK(JL)* PRVT(JL)*PPRES(JL)/(XEPSILO+PRVT(JL)) ! Vapor pressure
-  ENDDO
-  IF(LEVLIMIT) THEN
-    WHERE(ZMASK(:)==1.)
-      PRHMLTR(:)=MIN(PRHMLTR(:), EXP(XALPW-XBETAW/PT(:)-XGAMW*ALOG(PT(:)))) ! min(ev, es_w(T))
-    END WHERE
-  ENDIF
-  DO JL=1, KSIZE
-    PRHMLTR(JL) = ZMASK(JL)* (PKA(JL)*(XTT-PT(JL)) +                              &
-           ( PDV(JL)*(XLVTT + ( XCPV - XCL ) * ( PT(JL) - XTT )) &
-                           *(XESTT-PRHMLTR(JL))/(XRV*PT(JL))         ))
-  ENDDO
-  WHERE(ZMASK(:)==1.)
-    !
-    ! compute RHMLTR
-    !
-    PRHMLTR(:)  = MAX( 0.0,( -PRHMLTR(:) *                     &
-                           ( X0DEPH*       PLBDAH(:)**XEX0DEPH +     &
-                             X1DEPH*PCJ(:)*PLBDAH(:)**XEX1DEPH ) -   &
-                         ( PRH_TEND(:, IRCWETH)+PRH_TEND(:, IRRWETH) )*        &
-                               ( PRHODREF(:)*XCL*(XTT-PT(:))) ) /    &
-                                             ( PRHODREF(:)*XLMTT ) )
-  END WHERE
-END IF
-DO JL=1, KSIZE
-  PA_RR(JL) = PA_RR(JL) + PRHMLTR(JL)
-  PA_RH(JL) = PA_RH(JL) - PRHMLTR(JL)
-  PA_TH(JL) = PA_TH(JL) - PRHMLTR(JL)*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-!
-IF (LHOOK) CALL DR_HOOK('ICE4_FAST_RH', 1, ZHOOK_HANDLE)
-!
-END SUBROUTINE ICE4_FAST_RH
diff --git a/src/arome/micro/ice4_fast_rs.F90 b/src/arome/micro/ice4_fast_rs.F90
deleted file mode 100644
index 90159d294eea80aaa496006634c8b5b7fc95c547..0000000000000000000000000000000000000000
--- a/src/arome/micro/ice4_fast_rs.F90
+++ /dev/null
@@ -1,440 +0,0 @@
-SUBROUTINE ICE4_FAST_RS(KSIZE, LDSOFT, PCOMPUTE, &
-                       &PRHODREF, PLVFACT, PLSFACT, PPRES, &
-                       &PDV, PKA, PCJ, &
-                       &PLBDAR, PLBDAS, &
-                       &PT,  PRVT, PRCT, PRRT, PRST, &
-                       &PRIAGGS, &
-                       &PRCRIMSS, PRCRIMSG, PRSRIMCG, &
-                       &PRRACCSS, PRRACCSG, PRSACCRG, PRSMLTG, &
-                       &PRCMLTSR, &
-                       &PRS_TEND, &
-                       &PA_TH, PA_RC, PA_RR, PA_RS, PA_RG)
-!!
-!!**  PURPOSE
-!!    -------
-!!      Computes the fast rs processes
-!!
-!!    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 MODD_PARAM_ICE, ONLY : LEVLIMIT, CSNOWRIMING
-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)    :: PLVFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PPRES    ! absolute pressure at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PDV      ! Diffusivity of water vapor in the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PKA      ! Thermal conductivity of the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCJ      ! Function to compute the ventilation coefficient
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAR   ! Slope parameter of the raindrop  distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAS   ! Slope parameter of the aggregate distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRVT     ! Water vapor m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRCT     ! Cloud water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRST     ! Snow/aggregate m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRIAGGS  ! r_i aggregation on r_s
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCRIMSS ! Cloud droplet riming of the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCRIMSG ! Cloud droplet riming of the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSRIMCG ! Cloud droplet riming of the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRACCSS ! Rain accretion onto the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRACCSG ! Rain accretion onto the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSACCRG ! Rain accretion onto the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSMLTG  ! Conversion-Melting of the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCMLTSR ! Cloud droplet collection onto aggregates by positive temperature
-REAL, DIMENSION(KSIZE, 8),    INTENT(INOUT) :: PRS_TEND ! Individual tendencies
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RS
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RG
-!
-!*       0.2  declaration of local variables
-!
-REAL, DIMENSION(KSIZE) :: ZRIM, ZACC, ZMASK
-LOGICAL, DIMENSION(KSIZE) :: GRIM, GACC
-INTEGER :: IGRIM, IGACC
-REAL, DIMENSION(KSIZE) :: ZVEC1, ZVEC2, ZVEC3
-INTEGER, DIMENSION(KSIZE) :: IVEC1, IVEC2
-REAL, DIMENSION(KSIZE) :: ZZW, ZZW2, ZZW6, ZFREEZ_RATE
-INTEGER :: JJ, JL
-INTEGER :: IRCRIMS, IRCRIMSS, IRSRIMCG, IRRACCS, IRRACCSS, IRSACCRG, &
-           IFREEZ1, IFREEZ2
-REAL(KIND=JPRB) :: ZHOOK_HANDLE
-!-------------------------------------------------------------------------------
-!
-IF (LHOOK) CALL DR_HOOK('ICE4_FAST_RS', 0, ZHOOK_HANDLE)
-!
-IRCRIMS=1
-IRCRIMSS=2
-IRSRIMCG=3
-IRRACCS=4
-IRRACCSS=5
-IRSACCRG=6
-IFREEZ1=7
-IFREEZ2=8
-!
-!-------------------------------------------------------------------------------
-!
-!
-!*       5.0    maximum freezing rate
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(5)-PRST(JL))) * & ! WHERE(PRST(:)>XRTMIN(5))
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRS_TEND(JL, IFREEZ1)=ZMASK(JL) * PRS_TEND(JL, IFREEZ1)
-    PRS_TEND(JL, IFREEZ2)=ZMASK(JL) * PRS_TEND(JL, IFREEZ2)
-  ENDDO
-ELSE
-  DO JL=1, KSIZE
-    PRS_TEND(JL, IFREEZ1)=ZMASK(JL) * PRVT(JL)*PPRES(JL)/(XEPSILO+PRVT(JL)) ! Vapor pressure
-  ENDDO
-  IF(LEVLIMIT) THEN
-    WHERE(ZMASK(:)==1.)
-      PRS_TEND(:, IFREEZ1)=MIN(PRS_TEND(:, IFREEZ1), EXP(XALPI-XBETAI/PT(:)-XGAMI*ALOG(PT(:)))) ! min(ev, es_i(T))
-    END WHERE
-  ENDIF
-  PRS_TEND(:, IFREEZ2)=0.
-  WHERE(ZMASK(:)==1.)
-    PRS_TEND(:, IFREEZ1)=PKA(:)*(XTT-PT(:)) +                              &
-             (PDV(:)*(XLVTT+(XCPV-XCL)*(PT(:)-XTT)) &
-                           *(XESTT-PRS_TEND(:, IFREEZ1))/(XRV*PT(:))           )
-    PRS_TEND(:, IFREEZ1)=PRS_TEND(:, IFREEZ1)* ( X0DEPS*       PLBDAS(:)**XEX0DEPS +     &
-                           X1DEPS*PCJ(:)*PLBDAS(:)**XEX1DEPS )/ &
-                          ( PRHODREF(:)*(XLMTT-XCL*(XTT-PT(:))) )
-    PRS_TEND(:, IFREEZ2)=(PRHODREF(:)*(XLMTT+(XCI-XCL)*(XTT-PT(:)))   ) / &
-                          ( PRHODREF(:)*(XLMTT-XCL*(XTT-PT(:))) )
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  !We must agregate, at least, the cold species
-  !And we are only interested by the freezing rate of liquid species
-  ZFREEZ_RATE(JL)=ZMASK(JL) * MAX(0., MAX(0., PRS_TEND(JL, IFREEZ1) + &
-                                              &PRS_TEND(JL, IFREEZ2) * PRIAGGS(JL)) - &
-                                      PRIAGGS(JL))
-ENDDO
-!
-!*       5.1    cloud droplet riming of the aggregates
-!
-DO JL=1, KSIZE
-  ZRIM(JL)=MAX(0., -SIGN(1., XRTMIN(2)-PRCT(JL))) * & !WHERE(PRCT(:)>XRTMIN(2))
-          &MAX(0., -SIGN(1., XRTMIN(5)-PRST(JL))) * & !WHERE(PRST(:)>XRTMIN(5))
-          &PCOMPUTE(JL)
-ENDDO
-!
-! Collection of cloud droplets by snow: this rate is used for riming (T<0) and for conversion/melting (T>0)
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRS_TEND(JL, IRCRIMS)=ZRIM(JL) * PRS_TEND(JL, IRCRIMS)
-    PRS_TEND(JL, IRCRIMSS)=ZRIM(JL) * PRS_TEND(JL, IRCRIMSS)
-    PRS_TEND(JL, IRSRIMCG)=ZRIM(JL) * PRS_TEND(JL, IRSRIMCG)
-  ENDDO
-ELSE
-  PRS_TEND(:, IRCRIMS)=0.
-  PRS_TEND(:, IRCRIMSS)=0.
-  PRS_TEND(:, IRSRIMCG)=0.
-  GRIM(:)=ZRIM(:)==1.
-  IGRIM = COUNT(GRIM(:))
-  !
-  IF(IGRIM>0) THEN
-    !
-    !        5.1.1  select the PLBDAS
-    !
-    ZVEC1(1:IGRIM) = PACK( PLBDAS(:),MASK=GRIM(:) )
-    !
-    !        5.1.2  find the next lower indice for the PLBDAS in the geometrical
-    !               set of Lbda_s used to tabulate some moments of the incomplete
-    !               gamma function
-    !
-    ZVEC2(1:IGRIM) = MAX( 1.00001, MIN( FLOAT(NGAMINC)-0.00001,           &
-                          XRIMINTP1 * LOG( ZVEC1(1:IGRIM) ) + XRIMINTP2 ) )
-    IVEC2(1:IGRIM) = INT( ZVEC2(1:IGRIM) )
-    ZVEC2(1:IGRIM) = ZVEC2(1:IGRIM) - FLOAT( IVEC2(1:IGRIM) )
-    !
-    !        5.1.3  perform the linear interpolation of the normalized
-    !               "2+XDS"-moment of the incomplete gamma function
-    !
-    ZVEC1(1:IGRIM) =   XGAMINC_RIM1( IVEC2(1:IGRIM)+1 )* ZVEC2(1:IGRIM)      &
-                     - XGAMINC_RIM1( IVEC2(1:IGRIM)   )*(ZVEC2(1:IGRIM) - 1.0)
-    ZZW(:) = UNPACK( VECTOR=ZVEC1(1:IGRIM),MASK=GRIM,FIELD=0.0 )
-    !
-    !        5.1.4  riming of the small sized aggregates
-    !
-    WHERE (GRIM(:))
-      PRS_TEND(:, IRCRIMSS) = XCRIMSS * ZZW(:) * PRCT(:)                & ! RCRIMSS
-                                      *   PLBDAS(:)**XEXCRIMSS &
-                                      * PRHODREF(:)**(-XCEXVT)
-    END WHERE
-    !
-    !        5.1.5  perform the linear interpolation of the normalized
-    !               "XBS"-moment of the incomplete gamma function (XGAMINC_RIM2) and
-    !               "XBG"-moment of the incomplete gamma function (XGAMINC_RIM4)
-    !
-    ZVEC1(1:IGRIM) =  XGAMINC_RIM2( IVEC2(1:IGRIM)+1 )* ZVEC2(1:IGRIM)      &
-                    - XGAMINC_RIM2( IVEC2(1:IGRIM)   )*(ZVEC2(1:IGRIM) - 1.0)
-    ZZW(:) = UNPACK( VECTOR=ZVEC1(1:IGRIM),MASK=GRIM,FIELD=0.0 )
-
-    ZVEC1(1:IGRIM) =  XGAMINC_RIM4( IVEC2(1:IGRIM)+1 )* ZVEC2(1:IGRIM)      &
-                    - XGAMINC_RIM4( IVEC2(1:IGRIM)   )*(ZVEC2(1:IGRIM) - 1.0)
-    ZZW2(:) = UNPACK( VECTOR=ZVEC1(1:IGRIM),MASK=GRIM,FIELD=0.0)
-    !
-    !        5.1.6  riming-conversion of the large sized aggregates into graupeln
-    !
-    !
-    WHERE(GRIM(:))
-      PRS_TEND(:, IRCRIMS)=XCRIMSG * PRCT(:)               & ! RCRIMS
-                                   * PLBDAS(:)**XEXCRIMSG  &
-                                   * PRHODREF(:)**(-XCEXVT)
-      ZZW6(:) = PRS_TEND(:, IRCRIMS) - PRS_TEND(:, IRCRIMSS) ! RCRIMSG
-    END WHERE
-
-    IF(CSNOWRIMING=='M90 ')THEN
-      !Murakami 1990
-      WHERE(GRIM(:))
-        PRS_TEND(:, IRSRIMCG)=XSRIMCG * PLBDAS(:)**XEXSRIMCG*(1.0-ZZW(:))
-        PRS_TEND(:, IRSRIMCG)=ZZW6(:)*PRS_TEND(:, IRSRIMCG)/ &
-                       MAX(1.E-20, &
-                           XSRIMCG3*XSRIMCG2*PLBDAS(:)**XEXSRIMCG2*(1.-ZZW2(:)) - &
-                           XSRIMCG3*PRS_TEND(:, IRSRIMCG))
-      END WHERE
-    ELSE
-      PRS_TEND(:, IRSRIMCG)=0.
-    END IF
-  ENDIF
-ENDIF
-!
-DO JL=1, KSIZE
-  ! More restrictive RIM mask to be used for riming by negative temperature only
-  ZRIM(JL)=ZRIM(JL) * &
-          &MAX(0., -SIGN(1., PT(JL)-XTT)) ! WHERE(PT(:)<XTT)
-  PRCRIMSS(JL)=ZRIM(JL)*MIN(ZFREEZ_RATE(JL), PRS_TEND(JL, IRCRIMSS))
-  ZFREEZ_RATE(JL)=MAX(0., ZFREEZ_RATE(JL)-PRCRIMSS(JL))
-  ZZW(JL) = MIN(1., ZFREEZ_RATE(JL) / MAX(1.E-20, PRS_TEND(JL, IRCRIMS) - PRCRIMSS(JL))) ! proportion we are able to freeze
-  PRCRIMSG(JL) = ZRIM(JL) * ZZW(JL) * MAX(0., PRS_TEND(JL, IRCRIMS) - PRCRIMSS(JL)) ! RCRIMSG
-  ZFREEZ_RATE(JL)=MAX(0., ZFREEZ_RATE(JL)-PRCRIMSG(JL))
-  PRSRIMCG(JL) = ZRIM(JL) * ZZW(JL) * PRS_TEND(JL, IRSRIMCG)
-
-  PRSRIMCG(JL) = PRSRIMCG(JL) * MAX(0., -SIGN(1., -PRCRIMSG(JL)))
-  PRCRIMSG(JL)=MAX(0., PRCRIMSG(JL))
-
-  PA_RC(JL) = PA_RC(JL) - PRCRIMSS(JL)
-  PA_RS(JL) = PA_RS(JL) + PRCRIMSS(JL)
-  PA_TH(JL) = PA_TH(JL) + PRCRIMSS(JL)*(PLSFACT(JL)-PLVFACT(JL))
-  PA_RC(JL) = PA_RC(JL) - PRCRIMSG(JL)
-  PA_RS(JL) = PA_RS(JL) - PRSRIMCG(JL)
-  PA_RG(JL) = PA_RG(JL) + PRCRIMSG(JL)+PRSRIMCG(JL)
-  PA_TH(JL) = PA_TH(JL) + PRCRIMSG(JL)*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-!
-!*       5.2    rain accretion onto the aggregates
-!
-DO JL=1, KSIZE
-  ZACC(JL)=MAX(0., -SIGN(1., XRTMIN(3)-PRRT(JL))) * & !WHERE(PRRT(:)>XRTMIN(3))
-          &MAX(0., -SIGN(1., XRTMIN(5)-PRST(JL))) * & !WHERE(PRST(:)>XRTMIN(5))
-          &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRS_TEND(JL, IRRACCS)=ZACC(JL) * PRS_TEND(JL, IRRACCS)
-    PRS_TEND(JL, IRRACCSS)=ZACC(JL) * PRS_TEND(JL, IRRACCSS)
-    PRS_TEND(JL, IRSACCRG)=ZACC(JL) * PRS_TEND(JL, IRSACCRG)
-  ENDDO
-ELSE
-  PRS_TEND(:, IRRACCS)=0.
-  PRS_TEND(:, IRRACCSS)=0.
-  PRS_TEND(:, IRSACCRG)=0.
-  GACC(:)=ZACC(:)==1.
-  IGACC = COUNT(GACC(:))
-  IF(IGACC>0)THEN
-    !
-    !
-    !        5.2.1  select the (PLBDAS,PLBDAR) couplet
-    !
-    ZVEC1(1:IGACC) = PACK( PLBDAS(:),MASK=GACC(:) )
-    ZVEC2(1:IGACC) = PACK( PLBDAR(:),MASK=GACC(:) )
-    !
-    !        5.2.2  find the next lower indice for the PLBDAS and for the PLBDAR
-    !               in the geometrical set of (Lbda_s,Lbda_r) couplet use to
-    !               tabulate the RACCSS-kernel
-    !
-    ZVEC1(1:IGACC) = MAX( 1.00001, MIN( FLOAT(NACCLBDAS)-0.00001,           &
-                          XACCINTP1S * LOG( ZVEC1(1:IGACC) ) + XACCINTP2S ) )
-    IVEC1(1:IGACC) = INT( ZVEC1(1:IGACC) )
-    ZVEC1(1:IGACC) = ZVEC1(1:IGACC) - FLOAT( IVEC1(1:IGACC) )
-    !
-    ZVEC2(1:IGACC) = MAX( 1.00001, MIN( FLOAT(NACCLBDAR)-0.00001,           &
-                          XACCINTP1R * LOG( ZVEC2(1:IGACC) ) + XACCINTP2R ) )
-    IVEC2(1:IGACC) = INT( ZVEC2(1:IGACC) )
-    ZVEC2(1:IGACC) = ZVEC2(1:IGACC) - FLOAT( IVEC2(1:IGACC) )
-    !
-    !        5.2.3  perform the bilinear interpolation of the normalized
-    !               RACCSS-kernel
-    !
-    DO JJ = 1, IGACC
-      ZVEC3(JJ) =  (  XKER_RACCSS(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ)          &
-                    - XKER_RACCSS(IVEC1(JJ)+1,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
-                                                          * ZVEC1(JJ) &
-                 - (  XKER_RACCSS(IVEC1(JJ)  ,IVEC2(JJ)+1)* ZVEC2(JJ)          &
-                    - XKER_RACCSS(IVEC1(JJ)  ,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
-                                                          * (ZVEC1(JJ) - 1.0)
-    END DO
-    ZZW(:) = UNPACK( VECTOR=ZVEC3(1:IGACC),MASK=GACC,FIELD=0.0 )
-    !
-    !        5.2.4  raindrop accretion on the small sized aggregates
-    !
-    WHERE(GACC(:))
-      ZZW6(:) =                                                        & !! coef of RRACCS
-            XFRACCSS*( PLBDAS(:)**XCXS )*( PRHODREF(:)**(-XCEXVT-1.) ) &
-       *( XLBRACCS1/((PLBDAS(:)**2)               ) +                  &
-          XLBRACCS2/( PLBDAS(:)    * PLBDAR(:)    ) +                  &
-          XLBRACCS3/(               (PLBDAR(:)**2)) )/PLBDAR(:)**4
-      PRS_TEND(:, IRRACCSS) =ZZW(:)*ZZW6(:)
-    END WHERE
-    !
-    !        5.2.4b perform the bilinear interpolation of the normalized
-    !               RACCS-kernel
-    !
-    DO JJ = 1, IGACC
-      ZVEC3(JJ) =  (   XKER_RACCS(IVEC1(JJ)+1,IVEC2(JJ)+1)* ZVEC2(JJ)          &
-                    -  XKER_RACCS(IVEC1(JJ)+1,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
-                                                                   * ZVEC1(JJ) &
-                 - (   XKER_RACCS(IVEC1(JJ)  ,IVEC2(JJ)+1)* ZVEC2(JJ)          &
-                    -  XKER_RACCS(IVEC1(JJ)  ,IVEC2(JJ)  )*(ZVEC2(JJ) - 1.0) ) &
-                                                           * (ZVEC1(JJ) - 1.0)
-    END DO
-    ZZW(:) = UNPACK( VECTOR=ZVEC3(1:IGACC),MASK=GACC(:),FIELD=0.0 )
-    WHERE(GACC(:))
-      PRS_TEND(:, IRRACCS) = ZZW(:)*ZZW6(:)
-    END WHERE
-    !        5.2.5  perform the bilinear interpolation of the normalized
-    !               SACCRG-kernel
-    !
-    DO JJ = 1, IGACC
-        ZVEC3(JJ) =  (  XKER_SACCRG(IVEC2(JJ)+1,IVEC1(JJ)+1)* ZVEC1(JJ)          &
-                      - XKER_SACCRG(IVEC2(JJ)+1,IVEC1(JJ)  )*(ZVEC1(JJ) - 1.0) ) &
-                                                            * ZVEC2(JJ) &
-                   - (  XKER_SACCRG(IVEC2(JJ)  ,IVEC1(JJ)+1)* ZVEC1(JJ)          &
-                      - XKER_SACCRG(IVEC2(JJ)  ,IVEC1(JJ)  )*(ZVEC1(JJ) - 1.0) ) &
-                                                            * (ZVEC2(JJ) - 1.0)
-    END DO
-    ZZW(:) = UNPACK( VECTOR=ZVEC3(1:IGACC),MASK=GACC,FIELD=0.0 )
-    !
-    !        5.2.6  raindrop accretion-conversion of the large sized aggregates
-    !               into graupeln
-    !
-    WHERE(GACC(:))
-      PRS_TEND(:, IRSACCRG) = XFSACCRG*ZZW(:)*                    & ! RSACCRG
-          ( PLBDAS(:)**(XCXS-XBS) )*( PRHODREF(:)**(-XCEXVT-1.) ) &
-         *( XLBSACCR1/((PLBDAR(:)**2)               ) +           &
-            XLBSACCR2/( PLBDAR(:)    * PLBDAS(:)    ) +           &
-            XLBSACCR3/(               (PLBDAS(:)**2)) )/PLBDAR(:)
-    END WHERE
-  ENDIF
-ENDIF
-!
-DO JL=1, KSIZE
-  ! More restrictive ACC mask to be used for accretion by negative temperature only
-  ZACC(JL) = ZACC(JL) * &
-           &MAX(0., -SIGN(1., PT(JL)-XTT)) ! WHERE(PT(:)<XTT)
-  PRRACCSS(JL)=ZACC(JL)*MIN(ZFREEZ_RATE(JL), PRS_TEND(JL, IRRACCSS))
-  ZFREEZ_RATE(JL)=MAX(0., ZFREEZ_RATE(JL)-PRRACCSS(JL))
-  ZZW(JL) = MIN(1., ZFREEZ_RATE(JL) / MAX(1.E-20, PRS_TEND(JL, IRRACCS)-PRRACCSS(JL))) ! proportion we are able to freeze
-  PRRACCSG(JL)=ZACC(JL)*ZZW(JL) * MAX(0., PRS_TEND(JL, IRRACCS)-PRRACCSS(JL))
-  ZFREEZ_RATE(JL) = MAX(0., ZFREEZ_RATE(JL)-PRRACCSG(JL))
-  PRSACCRG(JL)=ZACC(JL)*ZZW(JL) * PRS_TEND(JL, IRSACCRG)
-
-  PRSACCRG(JL) = PRSACCRG(JL) * MAX(0., -SIGN(1., -PRRACCSG(JL)))
-  PRRACCSG(JL)=MAX(0., PRRACCSG(JL))
-
-  PA_RR(JL) = PA_RR(JL) - PRRACCSS(JL)
-  PA_RS(JL) = PA_RS(JL) + PRRACCSS(JL)
-  PA_TH(JL) = PA_TH(JL) + PRRACCSS(JL)*(PLSFACT(JL)-PLVFACT(JL))
-  PA_RR(JL) = PA_RR(JL) - PRRACCSG(JL)
-  PA_RS(JL) = PA_RS(JL) - PRSACCRG(JL)
-  PA_RG(JL) = PA_RG(JL) + PRRACCSG(JL)+PRSACCRG(JL)
-  PA_TH(JL) = PA_TH(JL) + PRRACCSG(JL)*(PLSFACT(JL)-PLVFACT(JL))
-ENDDO
-!
-!
-!*       5.3    Conversion-Melting of the aggregates
-!
-DO JL=1, KSIZE
-  ZMASK(JL)=MAX(0., -SIGN(1., XRTMIN(5)-PRST(JL))) * & ! WHERE(PRST(:)>XRTMIN(5))
-           &MAX(0., -SIGN(1., XTT-PT(JL))) * & ! WHERE(PT(:)>XTT)
-           &PCOMPUTE(JL)
-ENDDO
-IF(LDSOFT) THEN
-  DO JL=1, KSIZE
-    PRSMLTG(JL)=ZMASK(JL)*PRSMLTG(JL)
-    PRCMLTSR(JL)=ZMASK(JL)*PRCMLTSR(JL)
-  ENDDO
-ELSE
-  DO JL=1, KSIZE
-    PRSMLTG(JL)=ZMASK(JL)*PRVT(JL)*PPRES(JL)/(XEPSILO+PRVT(JL)) ! Vapor pressure
-  ENDDO
-  IF(LEVLIMIT) THEN
-    WHERE(ZMASK(:)==1.)
-      PRSMLTG(:)=MIN(PRSMLTG(:), EXP(XALPW-XBETAW/PT(:)-XGAMW*ALOG(PT(:)))) ! min(ev, es_w(T))
-    END WHERE
-  ENDIF
-  DO JL=1, KSIZE
-    PRSMLTG(JL)=ZMASK(JL)*( &
-                            & PKA(JL)*(XTT-PT(JL)) +                                 &
-                            & ( PDV(JL)*(XLVTT + ( XCPV - XCL ) * ( PT(JL) - XTT )) &
-                            & *(XESTT-PRSMLTG(JL))/(XRV*PT(JL))             ) &
-                          &)
-  ENDDO
-  PRCMLTSR(:) = 0.
-  WHERE(ZMASK(:)==1.)
-    !
-    ! compute RSMLT
-    !
-    PRSMLTG(:)  = XFSCVMG*MAX( 0.0,( -PRSMLTG(:) *             &
-                         ( X0DEPS*       PLBDAS(:)**XEX0DEPS +     &
-                           X1DEPS*PCJ(:)*PLBDAS(:)**XEX1DEPS ) -   &
-                                   ( PRS_TEND(:, IRCRIMS) + PRS_TEND(:, IRRACCS) ) *       &
-                            ( PRHODREF(:)*XCL*(XTT-PT(:))) ) /    &
-                                           ( PRHODREF(:)*XLMTT ) )
-    ! When T < XTT, rc is collected by snow (riming) to produce snow and graupel
-    ! When T > XTT, if riming was still enabled, rc would produce snow and graupel with snow becomming graupel (conversion/melting) and graupel becomming rain (melting)
-    ! To insure consistency when crossing T=XTT, rc collected with T>XTT must be transformed in rain.
-    ! rc cannot produce iced species with a positive temperature but is still collected with a good efficiency by snow
-    PRCMLTSR(:) = PRS_TEND(:, IRCRIMS) ! both species are liquid, no heat is exchanged
-  END WHERE
-ENDIF
-DO JL=1, KSIZE
-  ! note that RSCVMG = RSMLT*XFSCVMG but no heat is exchanged (at the rate RSMLT)
-  ! because the graupeln produced by this process are still icy!!!
-  PA_RS(JL) = PA_RS(JL) - PRSMLTG(JL)
-  PA_RG(JL) = PA_RG(JL) + PRSMLTG(JL)
-  PA_RC(JL) = PA_RC(JL) - PRCMLTSR(JL)
-  PA_RR(JL) = PA_RR(JL) + PRCMLTSR(JL)
-ENDDO
-
-IF (LHOOK) CALL DR_HOOK('ICE4_FAST_RS', 1, ZHOOK_HANDLE)
-!
-END SUBROUTINE ICE4_FAST_RS
diff --git a/src/arome/micro/ice4_tendencies.F90 b/src/arome/micro/ice4_tendencies.F90
index 3030684fe4c79584175a2e47988f608176369013..e0dde9c5840c0edccaa0dc6b1894a9457658f773 100644
--- a/src/arome/micro/ice4_tendencies.F90
+++ b/src/arome/micro/ice4_tendencies.F90
@@ -47,11 +47,11 @@ USE MODI_ICE4_RIMLTC
 USE MODE_ICE4_RSRIMCG_OLD, ONLY: ICE4_RSRIMCG_OLD
 USE MODI_ICE4_COMPUTE_PDF
 USE MODI_ICE4_RAINFR_VERT
-USE MODI_ICE4_SLOW
+USE MODE_ICE4_SLOW, ONLY: ICE4_SLOW
 USE MODE_ICE4_WARM, ONLY: ICE4_WARM
-USE MODI_ICE4_FAST_RS
-USE MODI_ICE4_FAST_RG
-USE MODI_ICE4_FAST_RH
+USE MODE_ICE4_FAST_RS, ONLY: ICE4_FAST_RS
+USE MODE_ICE4_FAST_RG, ONLY: ICE4_FAST_RG
+USE MODE_ICE4_FAST_RH, ONLY: ICE4_FAST_RH
 USE MODE_ICE4_FAST_RI, ONLY: ICE4_FAST_RI
 
 USE PARKIND1, ONLY : JPRB
@@ -380,7 +380,7 @@ END IF
 !*       4.     COMPUTES THE FAST COLD PROCESS SOURCES FOR r_s
 !               ----------------------------------------------
 !
-CALL ICE4_FAST_RS(KSIZE, LDSOFT, PCOMPUTE, &
+CALL ICE4_FAST_RS(KSIZE, KSIZE, LDSOFT, PCOMPUTE, &
                  &PRHODREF, PLVFACT, PLSFACT, PPRES, &
                  &ZDV, ZKA, ZCJ, &
                  &ZLBDAR, ZLBDAS, &
@@ -403,7 +403,7 @@ DO JL=1, KSIZE
            & PRSACCRG(JL) + PRCRIMSG(JL) + PRSRIMCG(JL)
   ZRGSI_MR(JL) = PRRHONG_MR(JL) + PRSRIMCG_MR(JL)
 ENDDO
-CALL ICE4_FAST_RG(KSIZE, LDSOFT, PCOMPUTE, KRR, &
+CALL ICE4_FAST_RG(KSIZE, KSIZE, LDSOFT, PCOMPUTE, KRR, &
                  &PRHODREF, PLVFACT, PLSFACT, PPRES, &
                  &ZDV, ZKA, ZCJ, PCIT, &
                  &ZLBDAR, ZLBDAS, ZLBDAG, &
@@ -422,7 +422,7 @@ CALL ICE4_FAST_RG(KSIZE, LDSOFT, PCOMPUTE, KRR, &
 !               ----------------------------------------------
 !
 IF (KRR==7) THEN
-  CALL ICE4_FAST_RH(KSIZE, LDSOFT, PCOMPUTE, ZWETG, &
+  CALL ICE4_FAST_RH(KSIZE, KSIZE, LDSOFT, PCOMPUTE, ZWETG, &
                    &PRHODREF, PLVFACT, PLSFACT, PPRES, &
                    &ZDV, ZKA, ZCJ, &
                    &ZLBDAS, ZLBDAG, ZLBDAR, ZLBDAH, &
diff --git a/src/arome/micro/modi_ice4_fast_rg.F90 b/src/arome/micro/modi_ice4_fast_rg.F90
deleted file mode 100644
index 801d8c2d1bb8afcaaa8c064c7d93720b5f5ccbd7..0000000000000000000000000000000000000000
--- a/src/arome/micro/modi_ice4_fast_rg.F90
+++ /dev/null
@@ -1,66 +0,0 @@
-MODULE MODI_ICE4_FAST_RG
-INTERFACE
-SUBROUTINE ICE4_FAST_RG(KSIZE, LDSOFT, PCOMPUTE, KRR, &
-                       &PRHODREF, PLVFACT, PLSFACT, PPRES, &
-                       &PDV, PKA, PCJ, PCIT, &
-                       &PLBDAR, PLBDAS, PLBDAG, &
-                       &PT,  PRVT, PRCT, PRRT, PRIT, PRST, PRGT, &
-                       &PRGSI, PRGSI_MR, &
-                       &PWETG, &
-                       &PRICFRRG, PRRCFRIG, PRICFRR, PRCWETG, PRIWETG, PRRWETG, PRSWETG, &
-                       &PRCDRYG, PRIDRYG, PRRDRYG, PRSDRYG, PRWETGH, PRWETGH_MR, PRGMLTR, &
-                       &PRG_TEND, &
-                       &PA_TH, PA_RC, PA_RR, PA_RI, PA_RS, PA_RG, PA_RH, PB_RG, PB_RH)
-IMPLICIT NONE
-INTEGER,                      INTENT(IN)    :: KSIZE
-LOGICAL,                      INTENT(IN)    :: LDSOFT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCOMPUTE
-INTEGER,                      INTENT(IN)    :: KRR      ! Number of moist variable
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHODREF ! Reference density
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PPRES    ! absolute pressure at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PDV      ! Diffusivity of water vapor in the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PKA      ! Thermal conductivity of the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCJ      ! Function to compute the ventilation coefficient
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCIT     ! Pristine ice conc. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAR   ! Slope parameter of the raindrop  distribution
-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)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRVT     ! Water vapor m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRCT     ! Cloud water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain 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 m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRGSI    ! Graupel tendency by other processes
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRGSI_MR ! Graupel mr change by other processes
-REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PWETG    ! 1. where graupel grows in wet mode, 0. elsewhere
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRICFRRG ! Rain contact freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRCFRIG ! Rain contact freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRICFRR  ! Rain contact freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCWETG  ! Graupel wet growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIWETG  ! Graupel wet growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRWETG  ! Graupel wet growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSWETG  ! Graupel wet growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCDRYG  ! Graupel dry growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIDRYG  ! Graupel dry growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRDRYG  ! Graupel dry growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSDRYG  ! Graupel dry growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRWETGH  ! Conversion of graupel into hail
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRWETGH_MR ! Conversion of graupel into hail, mr change
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRGMLTR  ! Melting of the graupel
-REAL, DIMENSION(KSIZE, 8),    INTENT(INOUT) :: PRG_TEND ! Individual tendencies
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RI
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RS
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RG
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RG
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RH
-END SUBROUTINE ICE4_FAST_RG
-END INTERFACE
-END MODULE MODI_ICE4_FAST_RG
diff --git a/src/arome/micro/modi_ice4_fast_rh.F90 b/src/arome/micro/modi_ice4_fast_rh.F90
deleted file mode 100644
index 5cd5bc4ded74b0f9851930f69cd80e272bf1987b..0000000000000000000000000000000000000000
--- a/src/arome/micro/modi_ice4_fast_rh.F90
+++ /dev/null
@@ -1,58 +0,0 @@
-MODULE MODI_ICE4_FAST_RH
-INTERFACE
-SUBROUTINE ICE4_FAST_RH(KSIZE, LDSOFT, PCOMPUTE, PWETG, &
-                       &PRHODREF, PLVFACT, PLSFACT, PPRES, &
-                       &PDV, PKA, PCJ, &
-                       &PLBDAS, PLBDAG, PLBDAR, PLBDAH, &
-                       &PT,  PRVT, PRCT, PRRT, PRIT, PRST, PRGT, PRHT, &
-                       &PRCWETH, PRIWETH, PRSWETH, PRGWETH, PRRWETH, &
-                       &PRCDRYH, PRIDRYH, PRSDRYH, PRRDRYH, PRGDRYH, PRDRYHG, PRHMLTR, &
-                       &PRH_TEND, &
-                       &PA_TH, PA_RC, PA_RR, PA_RI, PA_RS, PA_RG, PA_RH)
-IMPLICIT NONE
-INTEGER,                      INTENT(IN)    :: KSIZE
-LOGICAL,                      INTENT(IN)    :: LDSOFT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCOMPUTE
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PWETG    ! 1. where graupel grows in wet mode, 0. elsewhere
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHODREF ! Reference density
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PPRES    ! absolute pressure at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PDV      ! Diffusivity of water vapor in the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PKA      ! Thermal conductivity of the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCJ      ! Function to compute the ventilation coefficient
-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)    :: PLBDAR   ! Slope parameter of the rain      distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAH   ! Slope parameter of the hail      distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRVT     ! Water vapor m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRCT     ! Cloud water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain 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 m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHT     ! Hail m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRGWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRGDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRDRYHG  ! Conversion of hailstone into graupel
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRHMLTR  ! Melting of the hailstones
-REAL, DIMENSION(KSIZE, 10),   INTENT(INOUT) :: PRH_TEND ! Individual tendencies
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RI
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RS
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RG
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RH
-END SUBROUTINE ICE4_FAST_RH
-END INTERFACE
-END MODULE MODI_ICE4_FAST_RH
diff --git a/src/arome/micro/modi_ice4_fast_rs.F90 b/src/arome/micro/modi_ice4_fast_rs.F90
deleted file mode 100644
index f27c670521e618f2df3b5e3208b8bd3694190c81..0000000000000000000000000000000000000000
--- a/src/arome/micro/modi_ice4_fast_rs.F90
+++ /dev/null
@@ -1,49 +0,0 @@
-MODULE MODI_ICE4_FAST_RS
-INTERFACE
-SUBROUTINE ICE4_FAST_RS(KSIZE, LDSOFT, PCOMPUTE, &
-                       &PRHODREF, PLVFACT, PLSFACT, PPRES, &
-                       &PDV, PKA, PCJ, &
-                       &PLBDAR, PLBDAS, &
-                       &PT,  PRVT, PRCT, PRRT, PRST, &
-                       &PRIAGGS, &
-                       &PRCRIMSS, PRCRIMSG, PRSRIMCG, &
-                       &PRRACCSS, PRRACCSG, PRSACCRG, PRSMLTG, &
-                       &PRCMLTSR, &
-                       &PRS_TEND, &
-                       &PA_TH, PA_RC, PA_RR, PA_RS, PA_RG)
-IMPLICIT NONE
-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)    :: PLVFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PPRES    ! absolute pressure at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PDV      ! Diffusivity of water vapor in the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PKA      ! Thermal conductivity of the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCJ      ! Function to compute the ventilation coefficient
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAR   ! Slope parameter of the raindrop  distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAS   ! Slope parameter of the aggregate distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRVT     ! Water vapor m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRCT     ! Cloud water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRST     ! Snow/aggregate m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRIAGGS  ! r_i aggregation on r_s
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCRIMSS ! Cloud droplet riming of the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCRIMSG ! Cloud droplet riming of the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSRIMCG ! Cloud droplet riming of the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRACCSS ! Rain accretion onto the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRACCSG ! Rain accretion onto the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSACCRG ! Rain accretion onto the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSMLTG  ! Conversion-Melting of the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCMLTSR ! Cloud droplet collection onto aggregates by positive temperature
-REAL, DIMENSION(KSIZE, 8),    INTENT(INOUT) :: PRS_TEND ! Individual tendencies
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RS
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RG
-END SUBROUTINE ICE4_FAST_RS
-END INTERFACE
-END MODULE MODI_ICE4_FAST_RS
diff --git a/src/arome/modset_Ryad/mpa/micro/module/modi_ice4_fast_rg.F90 b/src/arome/modset_Ryad/mpa/micro/module/modi_ice4_fast_rg.F90
deleted file mode 100644
index 98fd4c7484036e911ee74001ffde5d78970fcd52..0000000000000000000000000000000000000000
--- a/src/arome/modset_Ryad/mpa/micro/module/modi_ice4_fast_rg.F90
+++ /dev/null
@@ -1,66 +0,0 @@
-MODULE MODI_ICE4_FAST_RG
-INTERFACE
-SUBROUTINE ICE4_FAST_RG(KPROMA,KSIZE, LDSOFT, PCOMPUTE, KRR, &
-                       &PRHODREF, PLVFACT, PLSFACT, PPRES, &
-                       &PDV, PKA, PCJ, PCIT, &
-                       &PLBDAR, PLBDAS, PLBDAG, &
-                       &PT,  PRVT, PRCT, PRRT, PRIT, PRST, PRGT, &
-                       &PRGSI, PRGSI_MR, &
-                       &PWETG, &
-                       &PRICFRRG, PRRCFRIG, PRICFRR, PRCWETG, PRIWETG, PRRWETG, PRSWETG, &
-                       &PRCDRYG, PRIDRYG, PRRDRYG, PRSDRYG, PRWETGH, PRWETGH_MR, PRGMLTR, &
-                       &PRG_TEND, &
-                       &PA_TH, PA_RC, PA_RR, PA_RI, PA_RS, PA_RG, PA_RH, PB_RG, PB_RH)
-IMPLICIT NONE
-INTEGER,                      INTENT(IN)    :: KPROMA,KSIZE
-LOGICAL,                      INTENT(IN)    :: LDSOFT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCOMPUTE
-INTEGER,                      INTENT(IN)    :: KRR      ! Number of moist variable
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHODREF ! Reference density
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PPRES    ! absolute pressure at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PDV      ! Diffusivity of water vapor in the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PKA      ! Thermal conductivity of the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCJ      ! Function to compute the ventilation coefficient
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCIT     ! Pristine ice conc. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAR   ! Slope parameter of the raindrop  distribution
-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)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRVT     ! Water vapor m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRCT     ! Cloud water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain 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 m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRGSI    ! Graupel tendency by other processes
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRGSI_MR ! Graupel mr change by other processes
-REAL, DIMENSION(KSIZE),       INTENT(OUT)   :: PWETG    ! 1. where graupel grows in wet mode, 0. elsewhere
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRICFRRG ! Rain contact freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRCFRIG ! Rain contact freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRICFRR  ! Rain contact freezing
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCWETG  ! Graupel wet growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIWETG  ! Graupel wet growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRWETG  ! Graupel wet growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSWETG  ! Graupel wet growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCDRYG  ! Graupel dry growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIDRYG  ! Graupel dry growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRDRYG  ! Graupel dry growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSDRYG  ! Graupel dry growth
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRWETGH  ! Conversion of graupel into hail
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRWETGH_MR ! Conversion of graupel into hail, mr change
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRGMLTR  ! Melting of the graupel
-REAL, DIMENSION(KPROMA, 8),   INTENT(INOUT) :: PRG_TEND ! Individual tendencies
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RI
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RS
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RG
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RG
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PB_RH
-END SUBROUTINE ICE4_FAST_RG
-END INTERFACE
-END MODULE MODI_ICE4_FAST_RG
diff --git a/src/arome/modset_Ryad/mpa/micro/module/modi_ice4_fast_rh.F90 b/src/arome/modset_Ryad/mpa/micro/module/modi_ice4_fast_rh.F90
deleted file mode 100644
index a0d8e04b16271f2cb9f745ffe87badfa2d5bd18c..0000000000000000000000000000000000000000
--- a/src/arome/modset_Ryad/mpa/micro/module/modi_ice4_fast_rh.F90
+++ /dev/null
@@ -1,58 +0,0 @@
-MODULE MODI_ICE4_FAST_RH
-INTERFACE
-SUBROUTINE ICE4_FAST_RH(KPROMA,KSIZE, LDSOFT, PCOMPUTE, PWETG, &
-                       &PRHODREF, PLVFACT, PLSFACT, PPRES, &
-                       &PDV, PKA, PCJ, &
-                       &PLBDAS, PLBDAG, PLBDAR, PLBDAH, &
-                       &PT,  PRVT, PRCT, PRRT, PRIT, PRST, PRGT, PRHT, &
-                       &PRCWETH, PRIWETH, PRSWETH, PRGWETH, PRRWETH, &
-                       &PRCDRYH, PRIDRYH, PRSDRYH, PRRDRYH, PRGDRYH, PRDRYHG, PRHMLTR, &
-                       &PRH_TEND, &
-                       &PA_TH, PA_RC, PA_RR, PA_RI, PA_RS, PA_RG, PA_RH)
-IMPLICIT NONE
-INTEGER,                      INTENT(IN)    :: KPROMA,KSIZE
-LOGICAL,                      INTENT(IN)    :: LDSOFT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCOMPUTE
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PWETG    ! 1. where graupel grows in wet mode, 0. elsewhere
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHODREF ! Reference density
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PPRES    ! absolute pressure at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PDV      ! Diffusivity of water vapor in the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PKA      ! Thermal conductivity of the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCJ      ! Function to compute the ventilation coefficient
-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)    :: PLBDAR   ! Slope parameter of the rain      distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAH   ! Slope parameter of the hail      distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRVT     ! Water vapor m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRCT     ! Cloud water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain 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 m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHT     ! Hail m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRGWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRWETH  ! Dry growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRIDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRGDRYH  ! Wet growth of hailstone
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRDRYHG  ! Conversion of hailstone into graupel
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRHMLTR  ! Melting of the hailstones
-REAL, DIMENSION(KPROMA, 10),  INTENT(INOUT) :: PRH_TEND ! Individual tendencies
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RI
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RS
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RG
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RH
-END SUBROUTINE ICE4_FAST_RH
-END INTERFACE
-END MODULE MODI_ICE4_FAST_RH
diff --git a/src/arome/modset_Ryad/mpa/micro/module/modi_ice4_fast_rs.F90 b/src/arome/modset_Ryad/mpa/micro/module/modi_ice4_fast_rs.F90
deleted file mode 100644
index 4f16b6e1e6083d2807bc7ecd40d5703ee8ed18b0..0000000000000000000000000000000000000000
--- a/src/arome/modset_Ryad/mpa/micro/module/modi_ice4_fast_rs.F90
+++ /dev/null
@@ -1,49 +0,0 @@
-MODULE MODI_ICE4_FAST_RS
-INTERFACE
-SUBROUTINE ICE4_FAST_RS(KPROMA,KSIZE, LDSOFT, PCOMPUTE, &
-                       &PRHODREF, PLVFACT, PLSFACT, PPRES, &
-                       &PDV, PKA, PCJ, &
-                       &PLBDAR, PLBDAS, &
-                       &PT,  PRVT, PRCT, PRRT, PRST, &
-                       &PRIAGGS, &
-                       &PRCRIMSS, PRCRIMSG, PRSRIMCG, &
-                       &PRRACCSS, PRRACCSG, PRSACCRG, PRSMLTG, &
-                       &PRCMLTSR, &
-                       &PRS_TEND, &
-                       &PA_TH, PA_RC, PA_RR, PA_RS, PA_RG)
-IMPLICIT NONE
-INTEGER,                      INTENT(IN)    :: KPROMA,KSIZE
-LOGICAL,                      INTENT(IN)    :: LDSOFT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCOMPUTE
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHODREF ! Reference density
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLSFACT
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PPRES    ! absolute pressure at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PDV      ! Diffusivity of water vapor in the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PKA      ! Thermal conductivity of the air
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PCJ      ! Function to compute the ventilation coefficient
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAR   ! Slope parameter of the raindrop  distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLBDAS   ! Slope parameter of the aggregate distribution
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRVT     ! Water vapor m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRCT     ! Cloud water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRRT     ! Rain water m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRST     ! Snow/aggregate m.r. at t
-REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRIAGGS  ! r_i aggregation on r_s
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCRIMSS ! Cloud droplet riming of the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCRIMSG ! Cloud droplet riming of the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSRIMCG ! Cloud droplet riming of the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRACCSS ! Rain accretion onto the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRRACCSG ! Rain accretion onto the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSACCRG ! Rain accretion onto the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRSMLTG  ! Conversion-Melting of the aggregates
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PRCMLTSR ! Cloud droplet collection onto aggregates by positive temperature
-REAL, DIMENSION(KPROMA, 8),   INTENT(INOUT) :: PRS_TEND ! Individual tendencies
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_TH
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RC
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RR
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RS
-REAL, DIMENSION(KSIZE),       INTENT(INOUT) :: PA_RG
-END SUBROUTINE ICE4_FAST_RS
-END INTERFACE
-END MODULE MODI_ICE4_FAST_RS
diff --git a/src/arome/modset_Ryad/mpa/micro/internals/ice4_fast_rg.F90 b/src/common/micro/mode_ice4_fast_rg.F90
similarity index 98%
rename from src/arome/modset_Ryad/mpa/micro/internals/ice4_fast_rg.F90
rename to src/common/micro/mode_ice4_fast_rg.F90
index efe09f5c70b66796b0e4a10f606ae25f480237f8..101a10ca2da2fec4f485449842b2cb8e61d8e916 100644
--- a/src/arome/modset_Ryad/mpa/micro/internals/ice4_fast_rg.F90
+++ b/src/common/micro/mode_ice4_fast_rg.F90
@@ -1,3 +1,10 @@
+!MNH_LIC Copyright 1994-2020 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_FAST_RG
+IMPLICIT NONE
+CONTAINS
 SUBROUTINE ICE4_FAST_RG(KPROMA,KSIZE, LDSOFT, PCOMPUTE, KRR, &
                        &PRHODREF, PLVFACT, PLSFACT, PPRES, &
                        &PDV, PKA, PCJ, PCIT, &
@@ -496,3 +503,4 @@ ENDDO
 IF (LHOOK) CALL DR_HOOK('ICE4_FAST_RG', 1, ZHOOK_HANDLE)
 
 END SUBROUTINE ICE4_FAST_RG
+END MODULE MODE_ICE4_FAST_RG
diff --git a/src/arome/modset_Ryad/mpa/micro/internals/ice4_fast_rh.F90 b/src/common/micro/mode_ice4_fast_rh.F90
similarity index 98%
rename from src/arome/modset_Ryad/mpa/micro/internals/ice4_fast_rh.F90
rename to src/common/micro/mode_ice4_fast_rh.F90
index 5bcc5de79ebd88284e880f85aa96f0000975fc3e..b45cd8fe1af7f1946384d9cd8ad558ca422e5b72 100644
--- a/src/arome/modset_Ryad/mpa/micro/internals/ice4_fast_rh.F90
+++ b/src/common/micro/mode_ice4_fast_rh.F90
@@ -1,3 +1,10 @@
+!MNH_LIC Copyright 1994-2020 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_FAST_RH
+IMPLICIT NONE
+CONTAINS
 SUBROUTINE ICE4_FAST_RH(KPROMA,KSIZE, LDSOFT, PCOMPUTE, PWETG, &
                        &PRHODREF, PLVFACT, PLSFACT, PPRES, &
                        &PDV, PKA, PCJ, &
@@ -501,3 +508,4 @@ ENDDO
 IF (LHOOK) CALL DR_HOOK('ICE4_FAST_RH', 1, ZHOOK_HANDLE)
 !
 END SUBROUTINE ICE4_FAST_RH
+END MODULE MODE_ICE4_FAST_RH
diff --git a/src/arome/modset_Ryad/mpa/micro/internals/ice4_fast_rs.F90 b/src/common/micro/mode_ice4_fast_rs.F90
similarity index 98%
rename from src/arome/modset_Ryad/mpa/micro/internals/ice4_fast_rs.F90
rename to src/common/micro/mode_ice4_fast_rs.F90
index bf90be02a2da8983eaf4a543acdd3abe4d5d78ed..712d5d7924748fc9e9d45385db72ffbc973bab2c 100644
--- a/src/arome/modset_Ryad/mpa/micro/internals/ice4_fast_rs.F90
+++ b/src/common/micro/mode_ice4_fast_rs.F90
@@ -1,3 +1,10 @@
+!MNH_LIC Copyright 1994-2020 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_FAST_RS
+IMPLICIT NONE
+CONTAINS
 SUBROUTINE ICE4_FAST_RS(KPROMA,KSIZE, LDSOFT, PCOMPUTE, &
                        &PRHODREF, PLVFACT, PLSFACT, PPRES, &
                        &PDV, PKA, PCJ, &
@@ -441,3 +448,4 @@ ENDDO
 IF (LHOOK) CALL DR_HOOK('ICE4_FAST_RS', 1, ZHOOK_HANDLE)
 !
 END SUBROUTINE ICE4_FAST_RS
+END MODULE MODE_ICE4_FAST_RS
diff --git a/src/arome/modset_Ryad/mpa/micro/internals/ice4_slow.F90 b/src/common/micro/mode_ice4_slow.F90
similarity index 95%
rename from src/arome/modset_Ryad/mpa/micro/internals/ice4_slow.F90
rename to src/common/micro/mode_ice4_slow.F90
index 054e9d9ed4fcbe2ff9a89489f157729792baba0c..dad2039b2e7c2ea1c6265d9dd7e4b5fe1245aaa9 100644
--- a/src/arome/modset_Ryad/mpa/micro/internals/ice4_slow.F90
+++ b/src/common/micro/mode_ice4_slow.F90
@@ -1,3 +1,10 @@
+!MNH_LIC Copyright 1994-2020 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_SLOW
+IMPLICIT NONE
+CONTAINS
 SUBROUTINE ICE4_SLOW(KSIZE, LDSOFT, PCOMPUTE, PRHODREF, PT, &
                      &PSSI, PLVFACT, PLSFACT, &
                      &PRVT, PRCT, PRIT, PRST, PRGT, &
@@ -207,3 +214,4 @@ ENDDO
 IF (LHOOK) CALL DR_HOOK('ICE4_SLOW', 1, ZHOOK_HANDLE)
 !
 END SUBROUTINE ICE4_SLOW
+END MODULE MODE_ICE4_SLOW