diff --git a/src/MNH/ice4_fast_rs.f90 b/src/MNH/ice4_fast_rs.f90
index d44b1bcc74d9c632b038c8a3937c3c3d4fbc1efa..d7cab9c9d0847ec3ff452a4311d04eb2accbe7eb 100644
--- a/src/MNH/ice4_fast_rs.f90
+++ b/src/MNH/ice4_fast_rs.f90
@@ -502,7 +502,7 @@ ELSE
     !
     PRSMLTG(:)  = XFSCVMG*MAX( 0.0,( -PRSMLTG(:) *             &
          PRST(:)*PRHODREF(:) *    &
-         ( X0DEPS       *PLBDAS(:)**XEX0DEPS +     &
+         ( X0DEPS       *PLBDAS(:)**(XBS+XEX0DEPS) +     &
          X1DEPS*PCJ(:)*(1+0.5*(XFVELOS/PLBDAS(:))**XALPHAS)**(XNUS+XEX1DEPS/XALPHAS)*PLBDAS(:)**(XBS+XEX1DEPS)) -   &
          ( PRS_TEND(:, IRCRIMS) + PRS_TEND(:, IRRACCS)) *       &
          ( PRHODREF(:)*XCL*(XTT-PT(:))) ) /    &
diff --git a/src/MNH/ice4_slow.f90 b/src/MNH/ice4_slow.f90
index b9325050f16faa13ba945c3624755d55b89672bc..e712f77405646e80b4373bcdf542173ed7e3f28b 100644
--- a/src/MNH/ice4_slow.f90
+++ b/src/MNH/ice4_slow.f90
@@ -176,7 +176,7 @@ ELSE
   DO JL=1, KSIZE
      IF (ZMASK(JL)==1.) THEN
         PRVDEPS(JL) = ( PRST(JL)*PSSI(JL)/PAI(JL) ) * &
-             ( X0DEPS*PLBDAS(JL)**XEX0DEPS + X1DEPS*PCJ(JL) * (1+0.5*(XFVELOS/PLBDAS(JL))**XALPHAS)**(-XNUS+XEX1DEPS/XALPHAS) &
+             ( X0DEPS*PLBDAS(JL)**(XBS+XEX0DEPS) + X1DEPS*PCJ(JL) * (1+0.5*(XFVELOS/PLBDAS(JL))**XALPHAS)**(-XNUS+XEX1DEPS/XALPHAS) &
              *(PLBDAS(JL))**(XBS+XEX1DEPS) )
      END IF
   END DO
diff --git a/src/MNH/ini_rain_ice.f90 b/src/MNH/ini_rain_ice.f90
index 2b1a683b85f1603ddeea5f8bbd50bb2d00e80178..c20b57f38a29c7031fedf1993b1572b0ef04e307 100644
--- a/src/MNH/ini_rain_ice.f90
+++ b/src/MNH/ini_rain_ice.f90
@@ -507,20 +507,15 @@ XEXCSEDI =-0.9324*3.0
 WRITE (KLUOUT,FMT=*)' PRISTINE ICE SEDIMENTATION for columns XFSEDI =',XFSEDI
 !
 !
-!IF (LSNOW_T) THEN
-!HOUZE/HAIC
-   !XEXSEDS = -XDS !(2*XBS+XDS)
-   !XFSEDS  = XCS*MOMG(XALPHAS,XNUS,XBS+XDS)/(MOMG(XALPHAS,XNUS,XBS))    &
-   !            *(ZRHO00)**XCEXVT
-!LH_EXTENDED
+IF (LRED) THEN
    XEXSEDS = -XDS-XBS
    XFSEDS  = XCS*MOMG(XALPHAS,XNUS,XBS+XDS)/(MOMG(XALPHAS,XNUS,XBS))    &
             *(ZRHO00)**XCEXVT
-!ELSE
-!   XEXSEDS = (XBS+XDS-XCXS)/(XBS-XCXS)
-!   XFSEDS  = XCS*XAS*XCCS*MOMG(XALPHAS,XNUS,XBS+XDS)*                         &
-!            (XAS*XCCS*MOMG(XALPHAS,XNUS,XBS))**(-XEXSEDS)*(ZRHO00)**XCEXVT
-!END IF
+ELSE
+   XEXSEDS = (XBS+XDS-XCXS)/(XBS-XCXS)
+   XFSEDS  = XCS*XAS*XCCS*MOMG(XALPHAS,XNUS,XBS+XDS)*                         &
+            (XAS*XCCS*MOMG(XALPHAS,XNUS,XBS))**(-XEXSEDS)*(ZRHO00)**XCEXVT
+END IF
 !
 XEXSEDG = (XBG+XDG-XCXG)/(XBG-XCXG)
 XFSEDG  = XCG*XAG*XCCG*MOMG(XALPHAG,XNUG,XBG+XDG)*                         &
diff --git a/src/MNH/rain_ice_fast_rg.f90 b/src/MNH/rain_ice_fast_rg.f90
index c3366b66a594dc41bcab358149d5ded79270d59d..b8a7b480ae57a727adeaa3e04888ea61a9db5586 100644
--- a/src/MNH/rain_ice_fast_rg.f90
+++ b/src/MNH/rain_ice_fast_rg.f90
@@ -204,8 +204,8 @@ REAL,    DIMENSION(size(PRHODREF),7) :: ZZW1              ! Work arrays
       JL = I1(JJ)
       ZZW1(JL,3) = MIN( PRSS(JL),XFSDRYG*ZVEC3(JJ)                         & ! RSDRYG
                                       * EXP( XCOLEXSG*(PZT(JL)-XTT) )  &
-                    *( ZVECLBDAS(JJ)**(XCXS-XBS) )*( ZVECLBDAG(JJ)**XCXG )    &
-                    *( PRHODREF(JL)**(-XCEXVT-1.) )                    &
+                    *PRST(JL)*( ZVECLBDAG(JJ)**XCXG )    &
+                    *( PRHODREF(JL)**(-XCEXVT) )                    &
                          *( XLBSDRYG1/( ZVECLBDAG(JJ)**2              ) + &
                             XLBSDRYG2/( ZVECLBDAG(JJ)   * ZVECLBDAS(JJ)   ) + &
                             XLBSDRYG3/(               ZVECLBDAS(JJ)**2) ) )
diff --git a/src/MNH/rain_ice_fast_rh.f90 b/src/MNH/rain_ice_fast_rh.f90
index 1710f8b157114ebd6cd2d256fcca23d39d7e3571..58446c16979afbc514d69da50796323a870f3e33 100644
--- a/src/MNH/rain_ice_fast_rh.f90
+++ b/src/MNH/rain_ice_fast_rh.f90
@@ -186,8 +186,8 @@ REAL,    DIMENSION(size(PRHODREF),6) :: ZZW1              ! Work arrays
       DO JJ = 1, IGWET
         JL = I1W(JJ)
         ZZW1(JL,3) = MIN( PRSS(JL),XFSWETH*ZVEC3(JJ)                       & ! RSWETH
-                      *( ZVECLBDAS(JJ)**(XCXS-XBS) )*( ZVECLBDAH(JJ)**XCXH )  &
-                         *( PRHODREF(JL)**(-XCEXVT-1.) )               &
+                      *PRST(JL)*( ZVECLBDAH(JJ)**XCXH )  &
+                         *( PRHODREF(JL)**(-XCEXVT) )               &
                          *( XLBSWETH1/( ZVECLBDAH(JJ)**2              ) + &
                             XLBSWETH2/( ZVECLBDAH(JJ)   * ZVECLBDAS(JJ)   ) + &
                             XLBSWETH3/(               ZVECLBDAS(JJ)**2) ) )
diff --git a/src/MNH/rain_ice_fast_rs.f90 b/src/MNH/rain_ice_fast_rs.f90
index a4750d01d1319c619f9266ad41b2b1fff39ba43a..2acc9b0e0101635f8baebf80e9e2fa5dea82aad3 100644
--- a/src/MNH/rain_ice_fast_rs.f90
+++ b/src/MNH/rain_ice_fast_rs.f90
@@ -136,9 +136,9 @@ REAL,    DIMENSION(:), ALLOCATABLE :: ZZW1, ZZW2, ZZW3, ZZW4 ! Work arrays
     DO JJ = 1, IGRIM
       JL = I1(JJ)
       ZZW1(JJ) = MIN( PRCS(JL),                                &
-                     XCRIMSS * ZVEC1(JJ) * PRCT(JL)                & ! RCRIMSS
-                                       *   ZVECLBDAS(JJ)**XEXCRIMSS &
-                                       * PRHODREF(JL)**(-XCEXVT) )
+                     XCRIMSS * ZVEC1(JJ) * PRCT(JL) * PRST(JL)      & ! RCRIMSS
+                                       *   ZVECLBDAS(JJ)**(XBS+XEXCRIMSS) &
+                                       * PRHODREF(JL)**(-XCEXVT+1) )
       PRCS(JL) = PRCS(JL) - ZZW1(JJ)
       PRSS(JL) = PRSS(JL) + ZZW1(JJ)
       PTHS(JL) = PTHS(JL) + ZZW1(JJ)*(PLSFACT(JL)-PLVFACT(JL)) ! f(L_f*(RCRIMSS))
@@ -157,12 +157,12 @@ REAL,    DIMENSION(:), ALLOCATABLE :: ZZW1, ZZW2, ZZW3, ZZW4 ! Work arrays
       JL = I1(JJ)
       IF ( PRSS(JL) > 0.0 ) THEN
         ZZW2(JJ) = MIN( PRCS(JL),                     &
-                    XCRIMSG * PRCT(JL)                & ! RCRIMSG
-                            *  ZVECLBDAS(JJ)**XEXCRIMSG  &
-                            * PRHODREF(JL)**(-XCEXVT) &
+                    XCRIMSG * PRCT(JL) *PRST(JL)         & ! RCRIMSG
+                            *  ZVECLBDAS(JJ)**(XBS+XEXCRIMSG)  &
+                            * PRHODREF(JL)**(-XCEXVT+1) &
                             - ZZW1(JJ)              )
         ZZW3(JJ) = MIN( PRSS(JL),                         &
-                        XSRIMCG * ZVECLBDAS(JJ)**XEXSRIMCG   & ! RSRIMCG
+                        PRST(JL) * PRHODREF(JL) * XSRIMCG * ZVECLBDAS(JJ)**(XBS+XEXSRIMCG)   & ! RSRIMCG
                                 * (1.0 - ZVEC1(JJ) )/(PTSTEP*PRHODREF(JL)) )
         PRCS(JL) = PRCS(JL) - ZZW2(JJ)
         PRSS(JL) = PRSS(JL) - ZZW3(JJ)
@@ -260,7 +260,7 @@ REAL,    DIMENSION(:), ALLOCATABLE :: ZZW1, ZZW2, ZZW3, ZZW4 ! Work arrays
     DO JJ = 1, IGACC
       JL = I1(JJ)
       ZZW2(JJ) =                                            & !! coef of RRACCS
-              XFRACCSS*( ZVECLBDAS(JJ)**XCXS )*( PRHODREF(JL)**(-XCEXVT-1.) ) &
+              XFRACCSS*( PRST(JL)*ZVECLBDAS(JJ)**XBS )*( PRHODREF(JL)**(-XCEXVT) ) &
          *( XLBRACCS1/((ZVECLBDAS(JJ)**2)               ) +                  &
             XLBRACCS2/( ZVECLBDAS(JJ)    * ZVECLBDAR(JJ)    ) +                  &
             XLBRACCS3/(               (ZVECLBDAR(JJ)**2)) )/ZVECLBDAR(JJ)**4
@@ -306,7 +306,7 @@ REAL,    DIMENSION(:), ALLOCATABLE :: ZZW1, ZZW2, ZZW3, ZZW4 ! Work arrays
         ZZW2(JJ) = MAX( MIN( PRRS(JL),ZZW2(JJ)-ZZW4(JJ) ),0.0 )       ! RRACCSG
         IF ( ZZW2(JJ) > 0.0 ) THEN
           ZZW3(JJ) = MIN( PRSS(JL),XFSACCRG*ZVEC3(JJ)*                     & ! RSACCRG
-                ( ZVECLBDAS(JJ)**(XCXS-XBS) )*( PRHODREF(JL)**(-XCEXVT-1.) ) &
+                PRST(JL)*( PRHODREF(JL)**(-XCEXVT) ) &
               *( XLBSACCR1/((ZVECLBDAR(JJ)**2)               ) +           &
                   XLBSACCR2/( ZVECLBDAR(JJ)    * ZVECLBDAS(JJ)    ) +           &
                   XLBSACCR3/(               (ZVECLBDAS(JJ)**2)) )/ZVECLBDAR(JJ) )
@@ -353,9 +353,9 @@ REAL,    DIMENSION(:), ALLOCATABLE :: ZZW1, ZZW2, ZZW3, ZZW4 ! Work arrays
 !
 ! compute RSMLT
 !
-    ZZW(:)  = MIN( PRSS(:), XFSCVMG*MAX( 0.0,( -ZZW(:) *             &
-                           ( X0DEPS*       PLBDAS(:)**XEX0DEPS +     &
-                             X1DEPS*PCJ(:)*PLBDAS(:)**XEX1DEPS ) ) / &
+    ZZW(:)  = MIN( PRSS(:), XFSCVMG*MAX( 0.0,( -ZZW(:) * PRST(:) * PRHODREF(:) * &
+                           ( X0DEPS*       PLBDAS(:)**(XBS+XEX0DEPS) +     &
+                             X1DEPS*PCJ(:)*PLBDAS(:)**(XBS+XEX1DEPS) ) ) / &
                                              ( PRHODREF(:)*XLMTT ) ) )
 !
 ! note that RSCVMG = RSMLT*XFSCVMG but no heat is exchanged (at the rate RSMLT)
diff --git a/src/MNH/rain_ice_slow.f90 b/src/MNH/rain_ice_slow.f90
index 8ed0b10ac71174f783ce4c47eecf16e4587fc1ae..142b2d46b06eb447569a86e961c354c152187dd3 100644
--- a/src/MNH/rain_ice_slow.f90
+++ b/src/MNH/rain_ice_slow.f90
@@ -147,7 +147,7 @@ real, dimension(size(plsfact))  :: zz_diff
   END WHERE
   ZZW(:) = 0.0
   WHERE ( (PRST(:)>XRTMIN(5)) .AND. (PRSS(:)>0.0) )
-    ZZW(:) = ( PSSI(:)/(PRHODREF(:)*PAI(:)) ) *                               &
+    ZZW(:) = ( PRST(:) * PLBDAS(JL)**XBS * PSSI(:)/PAI(:) ) *          &
              ( X0DEPS*PLBDAS(:)**XEX0DEPS + X1DEPS*PCJ(:)*PLBDAS(:)**XEX1DEPS )
     ZZW(:) =         MIN( PRVS(:),ZZW(:)      )*(0.5+SIGN(0.5,ZZW(:))) &
                    - MIN( PRSS(:),ABS(ZZW(:)) )*(0.5-SIGN(0.5,ZZW(:)))
@@ -169,8 +169,8 @@ real, dimension(size(plsfact))  :: zz_diff
   WHERE ( (PRIT(:)>XRTMIN(4)) .AND. (PRST(:)>XRTMIN(5)) .AND. (PRIS(:)>0.0) )
     ZZW(:) = MIN( PRIS(:),XFIAGGS * EXP( XCOLEXIS*(PZT(:)-XTT) ) &
                                   * PRIT(:)                      &
-                                  * PLBDAS(:)**XEXIAGGS          &
-                                  * PRHODREF(:)**(-XCEXVT)       )
+                                  * PRST(:) * PLBDAS(:)**(XBS+XEXIAGGS)    &
+                                  * PRHODREF(:)**(-XCEXVT+1)       )
     PRSS(:)  = PRSS(:)  + ZZW(:)
     PRIS(:)  = PRIS(:)  - ZZW(:)
   END WHERE