diff --git a/src/common/micro/mode_ice4_sedimentation.F90 b/src/common/micro/mode_ice4_sedimentation.F90
index 15e613adf495cac69546055037bdc7b69e7998b0..f6fc795edff66ad05a393e199992dfb0fb4955d5 100644
--- a/src/common/micro/mode_ice4_sedimentation.F90
+++ b/src/common/micro/mode_ice4_sedimentation.F90
@@ -123,64 +123,34 @@ IF (BUCONF%LBUDGET_RG)              CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDG
 IF (BUCONF%LBUDGET_RH .AND. KRR==7) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RH), 'SEDI', PRHS(:, :) * PRHODJ(:, :))
 
 IF(PARAMI%CSEDIM=='STAT') THEN
-  IF (KRR==7) THEN
-    DO JK = IKTB,IKTE
-      DO JIJ = IIJB,IIJE
-        ZRCT(JIJ,JK)=PRCS(JIJ,JK)*PTSTEP
-        ZRRT(JIJ,JK)=PRRS(JIJ,JK)*PTSTEP
-        ZRIT(JIJ,JK)=PRIS(JIJ,JK)*PTSTEP
-        ZRST(JIJ,JK)=PRSS(JIJ,JK)*PTSTEP
-        ZRGT(JIJ,JK)=PRGS(JIJ,JK)*PTSTEP
-        ZRHT(JIJ,JK)=PRHS(JIJ,JK)*PTSTEP
-      ENDDO
+  DO JK = IKTB,IKTE
+    DO JIJ = IIJB,IIJE
+      ZRCT(JIJ,JK)=PRCS(JIJ,JK)*PTSTEP
+      ZRRT(JIJ,JK)=PRRS(JIJ,JK)*PTSTEP
+      ZRIT(JIJ,JK)=PRIS(JIJ,JK)*PTSTEP
+      ZRST(JIJ,JK)=PRSS(JIJ,JK)*PTSTEP
+      ZRGT(JIJ,JK)=PRGS(JIJ,JK)*PTSTEP
+      IF (KRR==7) ZRHT(JIJ,JK)=PRHS(JIJ,JK)*PTSTEP
     ENDDO
-    CALL ICE4_SEDIMENTATION_STAT(D, CST, ICEP, ICED, PARAMI, &
-                                &PTSTEP, KRR, PDZZ, &
-                                &PRHODREF, PPABST, PTHT, PT, PRHODJ, &
-                                &PRCS, ZRCT, PRRS, ZRRT, PRIS, ZRIT,&
-                                &PRSS, ZRST, PRGS, ZRGT,&
-                                &PINPRC, PINPRR, ZINPRI, PINPRS, PINPRG, &
-                                &PSEA=PSEA, PTOWN=PTOWN, &
-                                &PINPRH=PINPRH, PRHT=ZRHT, PRHS=PRHS, PFPR=PFPR)
-  ELSE
-    DO JK = IKTB,IKTE
-      DO JIJ = IIJB,IIJE
-        ZRCT(JIJ,JK)=PRCS(JIJ,JK)*PTSTEP
-        ZRRT(JIJ,JK)=PRRS(JIJ,JK)*PTSTEP
-        ZRIT(JIJ,JK)=PRIS(JIJ,JK)*PTSTEP
-        ZRST(JIJ,JK)=PRSS(JIJ,JK)*PTSTEP
-        ZRGT(JIJ,JK)=PRGS(JIJ,JK)*PTSTEP
-      ENDDO
-    ENDDO
-    CALL ICE4_SEDIMENTATION_STAT(D, CST, ICEP, ICED, PARAMI, &
-                                &PTSTEP, KRR, PDZZ, &
-                                &PRHODREF, PPABST, PTHT, PT, PRHODJ, &
-                                &PRCS, ZRCT, PRRS, ZRRT, PRIS, ZRIT,&
-                                &PRSS, ZRST, PRGS, ZRGT,&
-                                &PINPRC, PINPRR, ZINPRI, PINPRS, PINPRG, &
-                                &PSEA=PSEA, PTOWN=PTOWN, &
-                                &PFPR=PFPR)
-  ENDIF
+  ENDDO
+  CALL ICE4_SEDIMENTATION_STAT(D, CST, ICEP, ICED, PARAMI, &
+                              &PTSTEP, KRR, PDZZ, &
+                              &PRHODREF, PPABST, PTHT, PT, PRHODJ, &
+                              &PRCS, ZRCT, PRRS, ZRRT, PRIS, ZRIT,&
+                              &PRSS, ZRST, PRGS, ZRGT,&
+                              &PINPRC, PINPRR, ZINPRI, PINPRS, PINPRG, &
+                              &PSEA=PSEA, PTOWN=PTOWN, &
+                              &PINPRH=PINPRH, PRHT=ZRHT, PRHS=PRHS, PFPR=PFPR)
   PINPRS(IIJB:IIJE) = PINPRS(IIJB:IIJE) + ZINPRI(IIJB:IIJE)
   !No negativity correction here as we apply sedimentation on PR.S*PTSTEP variables
 ELSEIF(PARAMI%CSEDIM=='SPLI') THEN
-  IF(KRR==7) THEN
-    CALL ICE4_SEDIMENTATION_SPLIT(D, CST, ICEP, ICED, PARAMI, &
-                                 &PTSTEP, KRR, PDZZ, &
-                                 &PRHODREF, PPABST, PTHT, PT, PRHODJ, &
-                                 &PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
-                                 &PINPRC, PINPRR, ZINPRI, PINPRS, PINPRG, &
-                                 &PSEA=PSEA, PTOWN=PTOWN, &
-                                 &PINPRH=PINPRH, PRHT=PRHT, PRHS=PRHS, PFPR=PFPR)
-  ELSE
-    CALL ICE4_SEDIMENTATION_SPLIT(D, CST, ICEP, ICED, PARAMI, &
-                                 &PTSTEP, KRR, PDZZ, &
-                                 &PRHODREF, PPABST, PTHT, PT, PRHODJ, &
-                                 &PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
-                                 &PINPRC, PINPRR, ZINPRI, PINPRS, PINPRG, &
-                                 &PSEA=PSEA, PTOWN=PTOWN, &
-                                 &PFPR=PFPR)
-  ENDIF
+  CALL ICE4_SEDIMENTATION_SPLIT(D, CST, ICEP, ICED, PARAMI, &
+                               &PTSTEP, KRR, PDZZ, &
+                               &PRHODREF, PPABST, PTHT, PT, PRHODJ, &
+                               &PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
+                               &PINPRC, PINPRR, ZINPRI, PINPRS, PINPRG, &
+                               &PSEA=PSEA, PTOWN=PTOWN, &
+                               &PINPRH=PINPRH, PRHT=PRHT, PRHS=PRHS, PFPR=PFPR)
   PINPRS(IIJB:IIJE) = PINPRS(IIJB:IIJE) + ZINPRI(IIJB:IIJE)
   !We correct negativities with conservation
   !SPLI algorith uses a time-splitting. Inside the loop a temporary m.r. is used.
diff --git a/src/common/micro/mode_ice4_sedimentation_stat.F90 b/src/common/micro/mode_ice4_sedimentation_stat.F90
index 5d64266c1c84008bcaad0f3cbcb54baeb0f8221b..52183c8547782f2507b58d01a61d7428a6564822 100644
--- a/src/common/micro/mode_ice4_sedimentation_stat.F90
+++ b/src/common/micro/mode_ice4_sedimentation_stat.F90
@@ -216,7 +216,7 @@ DO JK = IKE , IKB, -1*IKL
       PRIS(JIJ,JK) = PRIS(JIJ,JK)+ZTSORHODZ(JIJ)*(ZSED(JIJ,IKPLUS,4)-ZSED(JIJ,IK,4))*ZINVTSTEP
       PRSS(JIJ,JK) = PRSS(JIJ,JK)+ZTSORHODZ(JIJ)*(ZSED(JIJ,IKPLUS,5)-ZSED(JIJ,IK,5))*ZINVTSTEP
       PRGS(JIJ,JK) = PRGS(JIJ,JK)+ZTSORHODZ(JIJ)*(ZSED(JIJ,IKPLUS,6)-ZSED(JIJ,IK,6))*ZINVTSTEP
-      IF (PRESENT(PRHS))  THEN
+      IF (PRESENT(PRHS) .AND. KRR==7)  THEN
         PRHS(JIJ,JK) = PRHS(JIJ,JK)+ZTSORHODZ(JIJ)*(ZSED(JIJ,IKPLUS,7)-ZSED(JIJ,IK,7))*ZINVTSTEP
       ENDIF
     ENDDO
@@ -228,7 +228,7 @@ DO JK = IKE , IKB, -1*IKL
       PINPRI(JIJ) = ZSED(JIJ,IK,4)/CST%XRHOLW
       PINPRS(JIJ) = ZSED(JIJ,IK,5)/CST%XRHOLW
       PINPRG(JIJ) = ZSED(JIJ,IK,6)/CST%XRHOLW
-      IF (PRESENT(PINPRH)) THEN
+      IF (PRESENT(PINPRH) .AND. KRR==7) THEN
         PINPRH(JIJ) = ZSED(JIJ,IK,7)/CST%XRHOLW
       ENDIF
     ENDDO
diff --git a/src/common/micro/rain_ice.F90 b/src/common/micro/rain_ice.F90
index d17b45a36ffc3ae39103bc33237dbdb60b3547f8..38e184690c2ba208c34501d2f4cc932fa3b0313e 100644
--- a/src/common/micro/rain_ice.F90
+++ b/src/common/micro/rain_ice.F90
@@ -336,25 +336,14 @@ ENDDO
 !               -------------------------------------
 !
 IF(.NOT. PARAMI%LSEDIM_AFTER) THEN
-  IF(KRR==7) THEN
-    CALL ICE4_SEDIMENTATION(D, CST, ICEP, ICED, PARAMI, BUCONF, &
-                           &PTSTEP, KRR, PDZZ, &
-                           &ZZ_LVFACT, ZZ_LSFACT, PRHODREF, PPABST, PTHT, ZT, PRHODJ, &
-                           &PTHS, PRVS, PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
-                           &PINPRC, PINPRR, PINPRS, PINPRG, &
-                           &TBUDGETS, KBUDGETS, &
-                           &PSEA=PSEA, PTOWN=PTOWN, &
-                           &PINPRH=PINPRH, PRHT=PRHT, PRHS=PRHS, PFPR=PFPR)
-  ELSE
-    CALL ICE4_SEDIMENTATION(D, CST, ICEP, ICED, PARAMI, BUCONF, &
-                           &PTSTEP, KRR, PDZZ, &
-                           &ZZ_LVFACT, ZZ_LSFACT, PRHODREF, PPABST, PTHT, ZT, PRHODJ, &
-                           &PTHS, PRVS, PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
-                           &PINPRC, PINPRR, PINPRS, PINPRG, &
-                           &TBUDGETS, KBUDGETS, &
-                           &PSEA=PSEA, PTOWN=PTOWN, &
-                           &PFPR=PFPR)
-  ENDIF
+  CALL ICE4_SEDIMENTATION(D, CST, ICEP, ICED, PARAMI, BUCONF, &
+                         &PTSTEP, KRR, PDZZ, &
+                         &ZZ_LVFACT, ZZ_LSFACT, PRHODREF, PPABST, PTHT, ZT, PRHODJ, &
+                         &PTHS, PRVS, PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
+                         &PINPRC, PINPRR, PINPRS, PINPRG, &
+                         &TBUDGETS, KBUDGETS, &
+                         &PSEA=PSEA, PTOWN=PTOWN, &
+                         &PINPRH=PINPRH, PRHT=PRHT, PRHS=PRHS, PFPR=PFPR)
 ENDIF
 !
 !
@@ -526,33 +515,32 @@ END IF
 !               -------------------------------------
 !
 IF(PARAMI%LSEDIM_AFTER) THEN
-  IF(KRR==7) THEN
-    CALL ICE4_SEDIMENTATION(D, CST, ICEP, ICED, PARAMI, BUCONF, &
-                           &PTSTEP, KRR, PDZZ, &
-                           &ZZ_LVFACT, ZZ_LSFACT, PRHODREF, PPABST, PTHT, ZT, PRHODJ, &
-                           &PTHS, PRVS, PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
-                           &PINPRC, PINPRR, PINPRS, PINPRG, &
-                           &TBUDGETS, KBUDGETS, &
-                           &PSEA=PSEA, PTOWN=PTOWN, &
-                           &PINPRH=PINPRH, PRHT=PRHT, PRHS=PRHS, PFPR=PFPR)
-  ELSE
-    CALL ICE4_SEDIMENTATION(D, CST, ICEP, ICED, PARAMI, BUCONF, &
-                           &PTSTEP, KRR, PDZZ, &
-                           &ZZ_LVFACT, ZZ_LSFACT, PRHODREF, PPABST, PTHT, ZT, PRHODJ, &
-                           &PTHS, PRVS, PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
-                           &PINPRC, PINPRR, PINPRS, PINPRG, &
-                           &TBUDGETS, KBUDGETS, &
-                           &PSEA=PSEA, PTOWN=PTOWN, &
-                           &PFPR=PFPR)
-  ENDIF
+  CALL ICE4_SEDIMENTATION(D, CST, ICEP, ICED, PARAMI, BUCONF, &
+                         &PTSTEP, KRR, PDZZ, &
+                         &ZZ_LVFACT, ZZ_LSFACT, PRHODREF, PPABST, PTHT, ZT, PRHODJ, &
+                         &PTHS, PRVS, PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
+                         &PINPRC, PINPRR, PINPRS, PINPRG, &
+                         &TBUDGETS, KBUDGETS, &
+                         &PSEA=PSEA, PTOWN=PTOWN, &
+                         &PINPRH=PINPRH, PRHT=PRHT, PRHS=PRHS, PFPR=PFPR)
 
   !"sedimentation" of rain fraction
+  DO JK = IKTB, IKTE
+    DO JIJ=IIJB,IIJE
+      ZWR(JIJ,JK,IRR)=PRRS(JIJ,JK)*PTSTEP
+      ZWR(JIJ,JK,IRS)=PRSS(JIJ,JK)*PTSTEP
+      ZWR(JIJ,JK,IRG)=PRGS(JIJ,JK)*PTSTEP
+      IF(KRR==7) THEN
+        ZWR(JIJ,JK,IRH)=PRHS(JIJ,JK)*PTSTEP
+      ENDIF
+    ENDDO
+  ENDDO
   IF (PRESENT(PRHS)) THEN
-    CALL ICE4_RAINFR_VERT(D, ICED, PRAINFR, PRRS(:,:)*PTSTEP, &
-                       &PRSS(:,:)*PTSTEP, PRGS(:,:)*PTSTEP, PRHS(:,:)*PTSTEP)
+    CALL ICE4_RAINFR_VERT(D, ICED, PRAINFR, ZWR(:,:,IRR), &
+                         &ZWR(:,:,IRS), ZWR(:,:,IRG), ZWR(:,:,IRH))
   ELSE
-    CALL ICE4_RAINFR_VERT(D, ICED, PRAINFR, PRRS(:,:)*PTSTEP, &
-                       &PRSS(:,:)*PTSTEP, PRGS(:,:)*PTSTEP)
+    CALL ICE4_RAINFR_VERT(D, ICED, PRAINFR, ZWR(:,:,IRR), &
+                         &ZWR(:,:,IRS), ZWR(:,:,IRG)) 
   ENDIF
 ENDIF
 !