diff --git a/docs/TODO b/docs/TODO
index 2d640ac7e0a8bd13f58b6e260afc50f7e10c3330..10508c7a3f8c996f4196e56db7c836b799e99043 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -46,8 +46,6 @@ Pb identifiés à corriger plus tard:
   - seules quelques options sont testées avec les cas test (par exemple, il faudrait tester RMC01 mais
     l'option n'est pas remontée en namelist)
   - th_r_from_thl_rt appelée partout, il faudrait limiter à OTEST
-  - sedimentation momentum non branchée
-  - si possible, modifier ice4_sedimentation_split* dans le même esprit que stat, supprimer le faux packing
   - La taille du buffer utilisé pour th_r_from_thl_rt doit être mise en module et
     utilisée pour déclarer le buffer dans les routines appelantes et dans th_r_from_thl_rt
   - rain_ice:
diff --git a/src/common/micro/mode_ice4_sedimentation.F90 b/src/common/micro/mode_ice4_sedimentation.F90
index 310edd5123b778896a0244f3cf990b0585c7731a..15e613adf495cac69546055037bdc7b69e7998b0 100644
--- a/src/common/micro/mode_ice4_sedimentation.F90
+++ b/src/common/micro/mode_ice4_sedimentation.F90
@@ -46,7 +46,6 @@ USE MODE_BUDGET,         ONLY: BUDGET_STORE_INIT_PHY, BUDGET_STORE_END_PHY
 !
 USE MODE_ICE4_SEDIMENTATION_STAT, ONLY: ICE4_SEDIMENTATION_STAT                                                                     
 USE MODE_ICE4_SEDIMENTATION_SPLIT, ONLY: ICE4_SEDIMENTATION_SPLIT                                                                   
-USE MODE_ICE4_SEDIMENTATION_SPLIT_MOMENTUM, ONLY: ICE4_SEDIMENTATION_SPLIT_MOMENTUM
 USE MODE_ICE4_CORRECT_NEGATIVITIES, ONLY: ICE4_CORRECT_NEGATIVITIES
 !
 !
@@ -200,27 +199,6 @@ ELSEIF(PARAMI%CSEDIM=='NONE') THEN
 ELSE
   CALL PRINT_MSG(NVERB_FATAL, 'GEN', 'RAIN_ICE', 'no sedimentation scheme for PARAMI%CSEDIM='//PARAMI%CSEDIM)
 END IF
-
-
-
-
-
-
-!!! ajouter momentum
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 !
 !
 IF (BUCONF%LBUDGET_RC .AND. PARAMI%LSEDIC) CALL BUDGET_STORE_END_PHY(D, TBUDGETS(NBUDGET_RC), 'SEDI', PRCS(:, :) * PRHODJ(:, :))
diff --git a/src/common/micro/mode_ice4_sedimentation_split.F90 b/src/common/micro/mode_ice4_sedimentation_split.F90
index 8d77611e3d17fc0f9819df34a2a10742c46197ee..6534e7043ae2036c7e2d5eef53b5d0d94829f9fa 100644
--- a/src/common/micro/mode_ice4_sedimentation_split.F90
+++ b/src/common/micro/mode_ice4_sedimentation_split.F90
@@ -238,27 +238,27 @@ ENDIF
 !*       2.4   for aggregates/snow
 !
   CALL INTERNAL_SEDIM_SPLI(D, CST, ICEP, ICED, PARAMI, KRR, &
-                        &PRHODREF, ZW, PDZZ, PPABST, PTHT, PT, PTSTEP, &
-                        &5, &
-                        &ZRST, PRSS, PINPRS, ZPRSS, &
-                        &PFPR=PFPR)
+                          &PRHODREF, ZW, PDZZ, PPABST, PTHT, PT, PTSTEP, &
+                          &5, &
+                          &ZRST, PRSS, PINPRS, ZPRSS, &
+                          &PFPR=PFPR)
 !
 !*       2.5   for graupeln
 !
   CALL INTERNAL_SEDIM_SPLI(D, CST, ICEP, ICED, PARAMI, KRR, &
-                        &PRHODREF, ZW, PDZZ, PPABST, PTHT, PT, PTSTEP, &
-                        &6, &
-                        &ZRGT, PRGS, PINPRG, ZPRGS, &
-                        &PFPR=PFPR)
+                          &PRHODREF, ZW, PDZZ, PPABST, PTHT, PT, PTSTEP, &
+                          &6, &
+                          &ZRGT, PRGS, PINPRG, ZPRGS, &
+                          &PFPR=PFPR)
 !
 !*       2.6   for hail
 !
 IF (IRR==7) THEN
     CALL INTERNAL_SEDIM_SPLI(D, CST, ICEP, ICED, PARAMI, KRR, &
-                          &PRHODREF, ZW, PDZZ, PPABST, PTHT, PT, PTSTEP, &
-                          &7, &
-                          &ZRHT, PRHS, PINPRH, ZPRHS, &
-                          &PFPR=PFPR)
+                            &PRHODREF, ZW, PDZZ, PPABST, PTHT, PT, PTSTEP, &
+                            &7, &
+                            &ZRHT, PRHS, PINPRH, ZPRHS, &
+                            &PFPR=PFPR)
 ENDIF
 !
 IF (LHOOK) CALL DR_HOOK('ICE4_SEDIMENTATION_SPLIT', 1, ZHOOK_HANDLE)
@@ -270,8 +270,9 @@ CONTAINS
 !
 !
 SUBROUTINE INTERNAL_SEDIM_SPLI(D, CST, ICEP, ICED, PARAMI, KRR, &
-                              &PRHODREF, POORHODZ, PDZZ, PPABST,PTHT,PT,PTSTEP, &
-                              &KSPE, PRXT, PRXS, PINPRX, PPRXS, &
+                              &PRHODREF, POORHODZ, PDZZ, PPABST, PTHT, PT, PTSTEP, &
+                              &KSPE, &
+                              &PRXT, PRXS, PINPRX, PPRXS, &
                               &PRAY, PLBC, PFSEDC, PCONC3D, PFPR)
 !
 !*      0. DECLARATIONS
@@ -293,7 +294,7 @@ TYPE(RAIN_ICE_DESCR_t),       INTENT(IN)              :: ICED
 TYPE(PARAM_ICE_t),            INTENT(IN)              :: PARAMI
 INTEGER,                      INTENT(IN)              :: KRR
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)              :: PRHODREF ! Reference density
-REAL, DIMENSION(D%NIJT,D%NKTB:D%NKTE), INTENT(IN)        :: POORHODZ ! One Over (Rhodref times delta Z)
+REAL, DIMENSION(D%NIJT,D%NKTB:D%NKTE), INTENT(IN)      :: POORHODZ ! One Over (Rhodref times delta Z)
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)              :: PDZZ ! layer thikness (m)
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)              :: PPABST
 REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN)              :: PTHT
@@ -310,9 +311,7 @@ REAL, DIMENSION(D%NIJT,D%NKT,KRR), INTENT(INOUT), OPTIONAL :: PFPR    ! upper-ai
 !*       0.2  declaration of local variables
 !
 CHARACTER(LEN=10) :: YSPE ! String for error message
-INTEGER                         :: IDX, ISEDIM
 INTEGER                         :: JIJ, JK, JL
-INTEGER, DIMENSION(D%NIJT*D%NKT) :: I1,I2   ! Used to replace the COUNT
 LOGICAL                         :: GPRESENT_PFPR
 REAL                            :: ZINVTSTEP
 REAL                            :: ZZWLBDC, ZRAY, ZZT, ZZWLBDA, ZZCC
@@ -349,19 +348,6 @@ ZREMAINT(:) = 0.
 ZREMAINT(IIJB:IIJE) = PTSTEP
 !
 DO WHILE (ANY(ZREMAINT>0.))
-  ISEDIM = 0
-  DO JK = IKTB,IKTE
-    DO JIJ = IIJB,IIJE
-      IF( (PRXT (JIJ,JK)>ICED%XRTMIN(KSPE) .OR.    &
-           PPRXS(JIJ,JK)>ZRSMIN(KSPE)) .AND. &
-           ZREMAINT(JIJ)>0. ) THEN
-        ISEDIM = ISEDIM + 1
-        IDX = ISEDIM
-        I1(IDX) = JIJ
-        I2(IDX) = JK
-      END IF
-    END DO
-  END DO
   !
   !
   !*       1. Parameters for cloud sedimentation
@@ -373,43 +359,42 @@ DO WHILE (ANY(ZREMAINT>0.))
   IF(KSPE==2) THEN
     !******* for cloud
     ZWSED(:,:) = 0.
-    DO JL=1, ISEDIM
-      JIJ=I1(JL)
-      JK=I2(JL)
-      IF(PRXT(JIJ,JK)>ICED%XRTMIN(KSPE)) THEN
-        ZZWLBDC = PLBC(JIJ,JK) * PCONC3D(JIJ,JK) / &
-                 &(PRHODREF(JIJ,JK) * PRXT(JIJ,JK))
-        ZZWLBDC = ZZWLBDC**ICED%XLBEXC
-        ZRAY = PRAY(JIJ,JK) / ZZWLBDC
-        ZZT = PTHT(JIJ,JK) * (PPABST(JIJ,JK)/CST%XP00)**(CST%XRD/CST%XCPD)
-        ZZWLBDA = 6.6E-8*(101325./PPABST(JIJ,JK))*(ZZT/293.15)
-        ZZCC = ICED%XCC*(1.+1.26*ZZWLBDA/ZRAY)
-        ZWSED(JIJ, JK) = PRHODREF(JIJ,JK)**(-ICED%XCEXVT +1 ) *   &
-                           &ZZWLBDC**(-ICED%XDC)*ZZCC*PFSEDC(JIJ,JK) * PRXT(JIJ,JK)
-      ENDIF
+    DO JK = IKTB,IKTE
+      DO JIJ = IIJB,IIJE
+        IF(PRXT(JIJ,JK)>ICED%XRTMIN(KSPE) .AND. ZREMAINT(JIJ)>0.) THEN
+          ZZWLBDC = PLBC(JIJ,JK) * PCONC3D(JIJ,JK) / &
+                   &(PRHODREF(JIJ,JK) * PRXT(JIJ,JK))
+          ZZWLBDC = ZZWLBDC**ICED%XLBEXC
+          ZRAY = PRAY(JIJ,JK) / ZZWLBDC
+          ZZT = PTHT(JIJ,JK) * (PPABST(JIJ,JK)/CST%XP00)**(CST%XRD/CST%XCPD)
+          ZZWLBDA = 6.6E-8*(101325./PPABST(JIJ,JK))*(ZZT/293.15)
+          ZZCC = ICED%XCC*(1.+1.26*ZZWLBDA/ZRAY)
+          ZWSED(JIJ, JK) = PRHODREF(JIJ,JK)**(-ICED%XCEXVT +1 ) *   &
+                             &ZZWLBDC**(-ICED%XDC)*ZZCC*PFSEDC(JIJ,JK) * PRXT(JIJ,JK)
+        ENDIF
+      ENDDO
     ENDDO
   ELSEIF(KSPE==4) THEN
     ! ******* for pristine ice
     ZWSED(:,:) = 0.
-    DO JL=1, ISEDIM
-      JIJ=I1(JL)
-      JK=I2(JL)
-      IF(PRXT(JIJ, JK) .GT. MAX(ICED%XRTMIN(4), 1.0E-7)) THEN
-        ZWSED(JIJ, JK) =  ICEP%XFSEDI * PRXT(JIJ, JK) *  &
-                            & PRHODREF(JIJ,JK)**(1.-ICED%XCEXVT) * & !    McF&H
-                            & MAX( 0.05E6,-0.15319E6-0.021454E6* &
-                            &      ALOG(PRHODREF(JIJ,JK)*PRXT(JIJ,JK)) )**ICEP%XEXCSEDI
-      ENDIF
+    DO JK = IKTB,IKTE
+      DO JIJ = IIJB,IIJE
+        IF(PRXT(JIJ, JK) .GT. MAX(ICED%XRTMIN(4), 1.0E-7) .AND. ZREMAINT(JIJ)>0.) THEN
+          ZWSED(JIJ, JK) =  ICEP%XFSEDI * PRXT(JIJ, JK) *  &
+                              & PRHODREF(JIJ,JK)**(1.-ICED%XCEXVT) * & !    McF&H
+                              & MAX( 0.05E6,-0.15319E6-0.021454E6* &
+                              &      ALOG(PRHODREF(JIJ,JK)*PRXT(JIJ,JK)) )**ICEP%XEXCSEDI
+        ENDIF
+      ENDDO
     ENDDO
 #if defined(REPRO48) || defined(REPRO55)
 #else
-    ELSEIF(KSPE==5) THEN
-      ! ******* for snow
-      ZWSED(:,:) = 0.
-      DO JL=1, ISEDIM
-        JIJ=I1(JL)
-        JK=I2(JL)
-        IF(PRXT(JIJ,JK)> ICED%XRTMIN(KSPE)) THEN
+  ELSEIF(KSPE==5) THEN
+    ! ******* for snow
+    ZWSED(:,:) = 0.
+    DO JK = IKTB,IKTE
+      DO JIJ = IIJB,IIJE
+        IF(PRXT(JIJ,JK)> ICED%XRTMIN(KSPE) .AND. ZREMAINT(JIJ)>0.) THEN
            IF (PARAMI%LSNOW_T .AND. PT(JIJ,JK)>263.15) THEN
               ZLBDA = MAX(MIN(ICED%XLBDAS_MAX, 10**(14.554-0.0423*PT(JIJ,JK))),ICED%XLBDAS_MIN)*ICED%XTRANS_MP_GAMMAS
            ELSE IF (PARAMI%LSNOW_T) THEN
@@ -425,6 +410,7 @@ DO WHILE (ANY(ZREMAINT>0.))
 
         ENDIF
       ENDDO
+    ENDDO
 #endif
   ELSE
     ! ******* for other species
@@ -450,23 +436,23 @@ DO WHILE (ANY(ZREMAINT>0.))
     END SELECT
     !
     ZWSED(:,:) = 0.
-    DO JL=1, ISEDIM
-      JIJ=I1(JL)
-      JK=I2(JL)
-      IF(PRXT(JIJ,JK)>ICED%XRTMIN(KSPE)) THEN
-        ZWSED(JIJ, JK) = ZFSED  * PRXT(JIJ, JK)**ZEXSED            &
-                       &        * PRHODREF(JIJ, JK)**(ZEXSED-ICED%XCEXVT)
-      ENDIF
+    DO JK = IKTB,IKTE
+      DO JIJ = IIJB,IIJE
+        IF(PRXT(JIJ,JK)>ICED%XRTMIN(KSPE) .AND. ZREMAINT(JIJ)>0.) THEN
+          ZWSED(JIJ, JK) = ZFSED  * PRXT(JIJ, JK)**ZEXSED            &
+                         &        * PRHODREF(JIJ, JK)**(ZEXSED-ICED%XCEXVT)
+        ENDIF
+      ENDDO
     ENDDO
   ENDIF
   ZMAX_TSTEP(:) = ZREMAINT(:)
-  DO JL=1, ISEDIM
-    JIJ=I1(JL)
-    JK=I2(JL)
-    IF(PRXT(JIJ,JK)>ICED%XRTMIN(KSPE) .AND. ZWSED(JIJ, JK)>1.E-20) THEN
-      ZMAX_TSTEP(JIJ) = MIN(ZMAX_TSTEP(JIJ), PARAMI%XSPLIT_MAXCFL * PRHODREF(JIJ, JK) * &
-                      & PRXT(JIJ, JK) * PDZZ(JIJ, JK) / ZWSED(JIJ, JK))
-    ENDIF
+  DO JK = IKTB,IKTE
+    DO JIJ = IIJB,IIJE
+      IF(PRXT(JIJ,JK)>ICED%XRTMIN(KSPE) .AND. ZWSED(JIJ, JK)>1.E-20 .AND. ZREMAINT(JIJ)>0.) THEN
+        ZMAX_TSTEP(JIJ) = MIN(ZMAX_TSTEP(JIJ), PARAMI%XSPLIT_MAXCFL * PRHODREF(JIJ, JK) * &
+                        & PRXT(JIJ, JK) * PDZZ(JIJ, JK) / ZWSED(JIJ, JK))
+      ENDIF
+    ENDDO
   ENDDO
 
   DO JIJ = IIJB, IIJE
diff --git a/src/common/micro/mode_ice4_sedimentation_split_momentum.F90 b/src/common/micro/mode_ice4_sedimentation_split_momentum.F90
deleted file mode 100644
index 498375058494a79d840b508deb57b099087ccab4..0000000000000000000000000000000000000000
--- a/src/common/micro/mode_ice4_sedimentation_split_momentum.F90
+++ /dev/null
@@ -1,549 +0,0 @@
-!MNH_LIC Copyright 1994-2019 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_SEDIMENTATION_SPLIT_MOMENTUM
-IMPLICIT NONE
-CONTAINS
-SUBROUTINE ICE4_SEDIMENTATION_SPLIT_MOMENTUM(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKTB, KKTE, KKT, KKL, &
-                                   &PTSTEP, KRR, OSEDIC, OMOMENTUM, PDZZ, &
-                                   &PRHODREF, PPABST, PTHT, PRHODJ, &
-                                   &PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
-                                   &PINPRC, PINPRR, PINPRI, PINPRS, PINPRG, &
-                                   &PSEA, PTOWN,  &
-                                   &PINPRH, PRHT, PRHS, PFPR)
-!!
-!!**  PURPOSE
-!!    -------
-!!      Computes the sedimentation
-!!
-!!    AUTHOR
-!!    ------
-!!      S. Riette from the plitting of rain_ice source code (nov. 2014)
-!!                and modified to use momentum
-!!
-!!    MODIFICATIONS
-!!    -------------
-!!
-!  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
-!  P. Wautelet 28/05/2019: move COUNTJV function to tools.f90
-!
-!
-!*      0. DECLARATIONS
-!          ------------
-!
-USE MODD_CST
-USE MODD_PARAM_ICE
-USE MODD_RAIN_ICE_DESCR
-USE MODD_RAIN_ICE_PARAM
-
-USE MODE_MSG
-use mode_tools,           only: Countjv
-
-USE MODI_GAMMA
-!
-IMPLICIT NONE
-!
-!*       0.1   Declarations of dummy arguments :
-!
-INTEGER, INTENT(IN) :: KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKTB, KKTE, KKT
-INTEGER,                      INTENT(IN)              :: KKL     !vert. levels type 1=MNH -1=ARO
-REAL,                         INTENT(IN)              :: PTSTEP  ! Double Time step (single if cold start)
-INTEGER,                      INTENT(IN)              :: KRR     ! Number of moist variable
-LOGICAL,                      INTENT(IN)              :: OSEDIC  ! Switch for droplet sedim.
-LOGICAL,                      INTENT(IN)              :: OMOMENTUM  ! Switch to use momentum flux
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PDZZ    ! Layer thikness (m)
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PRHODREF! Reference density
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PPABST  ! absolute pressure at t
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PTHT    ! Theta at time t
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PRHODJ  ! Dry density * Jacobian
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT)           :: PRCS    ! Cloud water m.r. source
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PRCT    ! Cloud water m.r. at t
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT)           :: PRRS    ! Rain water m.r. source
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PRRT    ! Rain water m.r. at t
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT)           :: PRIS    ! Pristine ice m.r. source
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PRIT    ! Pristine ice m.r. at t
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT)           :: PRSS    ! Snow/aggregate m.r. source
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PRST    ! Snow/aggregate m.r. at t
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT)           :: PRGS    ! Graupel m.r. source
-REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PRGT    ! Graupel/hail m.r. at t
-REAL, DIMENSION(KIT,KJT),     INTENT(OUT)             :: PINPRC  ! Cloud instant precip
-REAL, DIMENSION(KIT,KJT),     INTENT(OUT)             :: PINPRR  ! Rain instant precip
-REAL, DIMENSION(KIT,KJT),     INTENT(OUT)             :: PINPRI  ! Pristine ice instant precip
-REAL, DIMENSION(KIT,KJT),     INTENT(OUT)             :: PINPRS  ! Snow instant precip
-REAL, DIMENSION(KIT,KJT),     INTENT(OUT)             :: PINPRG  ! Graupel instant precip
-REAL, DIMENSION(KIT,KJT),         OPTIONAL, INTENT(IN)    :: PSEA    ! Sea Mask
-REAL, DIMENSION(KIT,KJT),         OPTIONAL, INTENT(IN)    :: PTOWN   ! Fraction that is town
-REAL, DIMENSION(KIT,KJT),         OPTIONAL, INTENT(OUT)   :: PINPRH  ! Hail instant precip
-REAL, DIMENSION(KIT,KJT,KKT),     OPTIONAL, INTENT(IN)    :: PRHT    ! Hail m.r. at t
-REAL, DIMENSION(KIT,KJT,KKT),     OPTIONAL, INTENT(INOUT) :: PRHS    ! Hail m.r. source
-REAL, DIMENSION(KIT,KJT,KKT,KRR), OPTIONAL, INTENT(OUT)   :: PFPR    ! upper-air precipitation fluxes
-!
-!*       0.2  declaration of local variables
-!
-!
-LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) &
-    :: GSEDIM ! Test where to compute the SED processes
-INTEGER , DIMENSION(SIZE(GSEDIM)) :: I1,I2,I3 ! Used to replace the COUNT
-
-REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZCONC3D, & !  droplet condensation
-                                                                     & ZRAY,   & ! Cloud Mean radius
-                                                                     & ZLBC,   & ! XLBC weighted by sea fraction
-                                                                     & ZFSEDC, &
-                                                                     & ZPRCS,ZPRRS,ZPRIS,ZPRSS,ZPRGS,ZPRHS, &   ! Mixing ratios created during the time step
-                                                                     & ZW, & ! work array
-                                                                     & ZRCT, &
-                                                                     & ZRRT, &
-                                                                     & ZRIT, &
-                                                                     & ZRST, &
-                                                                     & ZRGT, &
-                                                                     & ZRHT
-REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZMOMC, ZMOMR, ZMOMI, ZMOMS, ZMOMG, ZMOMH ! momentum
-REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZMOMC_EXT, ZMOMR_EXT, ZMOMI_EXT, &
-                                                                       ZMOMS_EXT, ZMOMG_EXT, ZMOMH_EXT ! momentum tendencies
-REAL,    DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),0:SIZE(PRHODREF,3)+1) :: ZWSED        ! sedimentation fluxes
-REAL,    DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) :: ZCONC_TMP    ! Weighted concentration
-REAL,    DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) :: ZREMAINT ! Remaining time until the timestep end
-REAL :: ZINVTSTEP
-INTEGER :: ISEDIM ! ! Case number of sedimentation
-INTEGER :: JK
-LOGICAL :: FIRST
-REAL, DIMENSION(SIZE(XRTMIN)) :: ZRSMIN
-!-------------------------------------------------------------------------------
-!
-!-------------------------------------------------------------------------------
-!
-!
-!        O. Initialization of for sedimentation
-!
-ZINVTSTEP=1./PTSTEP
-ZRSMIN(:) = XRTMIN(:) * ZINVTSTEP
-IF (OSEDIC) PINPRC (:,:) = 0.
-PINPRR (:,:) = 0.
-PINPRI (:,:) = 0.
-PINPRS (:,:) = 0.
-PINPRG (:,:) = 0.
-IF ( KRR == 7 ) PINPRH (:,:) = 0.
-IF (PRESENT(PFPR)) PFPR(:,:,:,:) = 0.
-!
-!*       1. Parameters for cloud sedimentation
-!
-IF (OSEDIC) THEN
-  ZRAY(:,:,:)   = 0.
-  ZLBC(:,:,:)   = XLBC(1)
-  ZFSEDC(:,:,:) = XFSEDC(1)
-  ZCONC3D(:,:,:)= XCONC_LAND
-  ZCONC_TMP(:,:)= XCONC_LAND
-  IF (PRESENT(PSEA)) THEN
-    ZCONC_TMP(:,:)=PSEA(:,:)*XCONC_SEA+(1.-PSEA(:,:))*XCONC_LAND
-    DO JK=KKTB, KKTE
-      ZLBC(:,:,JK)   = PSEA(:,:)*XLBC(2)+(1.-PSEA(:,:))*XLBC(1)
-      ZFSEDC(:,:,JK) = (PSEA(:,:)*XFSEDC(2)+(1.-PSEA(:,:))*XFSEDC(1))
-      ZFSEDC(:,:,JK) = MAX(MIN(XFSEDC(1),XFSEDC(2)),ZFSEDC(:,:,JK))
-      ZCONC3D(:,:,JK)= (1.-PTOWN(:,:))*ZCONC_TMP(:,:)+PTOWN(:,:)*XCONC_URBAN
-      ZRAY(:,:,JK)   = 0.5*((1.-PSEA(:,:))*GAMMA(XNUC+1.0/XALPHAC)/(GAMMA(XNUC)) + &
-                     & PSEA(:,:)*GAMMA(XNUC2+1.0/XALPHAC2)/(GAMMA(XNUC2)))
-    END DO
-  ELSE
-    ZCONC3D(:,:,:) = XCONC_LAND
-    ZRAY(:,:,:)  = 0.5*(GAMMA(XNUC+1.0/XALPHAC)/(GAMMA(XNUC)))
-  END IF
-  ZRAY(:,:,:)      = MAX(1.,ZRAY(:,:,:))
-  ZLBC(:,:,:)      = MAX(MIN(XLBC(1),XLBC(2)),ZLBC(:,:,:))
-ENDIF
-!
-!*       2.    compute the fluxes
-!
-!  optimization by looking for locations where
-!  the precipitating fields are larger than a minimal value only !!!
-!  For optimization we consider each variable separately
-!
-! External tendecies
-IF (OSEDIC) THEN
-  ZPRCS(:,:,:) = PRCS(:,:,:)-PRCT(:,:,:)*ZINVTSTEP
-ENDIF
-ZPRRS(:,:,:) = PRRS(:,:,:)-PRRT(:,:,:)*ZINVTSTEP
-ZPRIS(:,:,:) = PRIS(:,:,:)-PRIT(:,:,:)*ZINVTSTEP
-ZPRSS(:,:,:) = PRSS(:,:,:)-PRST(:,:,:)*ZINVTSTEP
-ZPRGS(:,:,:) = PRGS(:,:,:)-PRGT(:,:,:)*ZINVTSTEP
-IF ( KRR == 7 ) THEN
-  ZPRHS(:,:,:) = PRHS(:,:,:)-PRHT(:,:,:)*ZINVTSTEP
-END IF
-!
-! mr values inside the time-splitting loop
-ZRCT(:,:,:) = PRCT(:,:,:)
-ZRRT(:,:,:) = PRRT(:,:,:)
-ZRIT(:,:,:) = PRIT(:,:,:)
-ZRST(:,:,:) = PRST(:,:,:)
-ZRGT(:,:,:) = PRGT(:,:,:)
-IF (KRR==7) THEN
-  ZRHT(:,:,:) = PRHT(:,:,:)
-END IF
-!
-DO JK = KKTB , KKTE
-  ZW(:,:,JK) =1./(PRHODREF(:,:,JK)* PDZZ(:,:,JK))
-END DO
-!
-!
-!*       2.1   for cloud
-!
-IF (OSEDIC) THEN
-  ZREMAINT(:,:) = PTSTEP
-  FIRST = .TRUE.
-  DO WHILE (ANY(ZREMAINT>0.))
-    GSEDIM(:,:,:)=.FALSE.
-    DO JK = KKTB , KKTE
-      GSEDIM(KIB:KIE,KJB:KJE,JK) =                              &
-                    (ZRCT(KIB:KIE,KJB:KJE,JK)>XRTMIN(2) .OR.    &
-                     ZPRCS(KIB:KIE,KJB:KJE,JK)>ZRSMIN(2)) .AND. &
-                    ZREMAINT(KIB:KIE,KJB:KJE)>0.
-    ENDDO
-    ISEDIM = COUNTJV(GSEDIM(:,:,:),I1(:),I2(:),I3(:))
-    CALL INTERNAL_SEDIM_SPLI(KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
-                          &OMOMENTUM, FIRST .AND. OMOMENTUM, &
-                          &ISEDIM, GSEDIM, I1, I2, I3, XSPLIT_MAXCFL, ZREMAINT, &
-                          &PRHODREF, ZW, PDZZ, PPABST, PTHT, PTSTEP, &
-                          &2, &
-                          &ZRCT, PRCS, ZWSED, PINPRC, ZPRCS, ZMOMC, ZMOMC_EXT, &
-                          &ZRAY, ZLBC, ZFSEDC, ZCONC3D, PFPR=PFPR)
-    FIRST = .FALSE.
-  ENDDO
-ENDIF
-!
-!*       2.2   for rain
-!
-ZREMAINT(:,:) = PTSTEP
-FIRST = .TRUE.
-DO WHILE (ANY(ZREMAINT>0.))
-  GSEDIM(:,:,:)=.FALSE.
-  DO JK = KKTB , KKTE
-    GSEDIM(KIB:KIE,KJB:KJE,JK) =                              &
-                  (ZRRT(KIB:KIE,KJB:KJE,JK)>XRTMIN(3) .OR.    &
-                   ZPRRS(KIB:KIE,KJB:KJE,JK)>ZRSMIN(3)) .AND. &
-                  ZREMAINT(KIB:KIE,KJB:KJE)>0.
-  ENDDO
-  ISEDIM = COUNTJV(GSEDIM(:,:,:),I1(:),I2(:),I3(:))
-  CALL INTERNAL_SEDIM_SPLI(KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
-                          &OMOMENTUM, FIRST .AND. OMOMENTUM, &
-                          &ISEDIM, GSEDIM, I1, I2, I3, XSPLIT_MAXCFL, ZREMAINT, &
-                          &PRHODREF, ZW, PDZZ, PPABST, PTHT, PTSTEP, &
-                          &3, &
-                          &ZRRT, PRRS, ZWSED, PINPRR, ZPRRS, ZMOMR, ZMOMR_EXT, &
-                          &PFPR=PFPR)
-  FIRST = .FALSE.
-ENDDO
-!
-!*       2.3   for pristine ice
-!
-ZREMAINT(:,:) = PTSTEP
-FIRST = .TRUE.
-DO WHILE (ANY(ZREMAINT>0.))
-  GSEDIM(:,:,:)=.FALSE.
-  DO JK = KKTB , KKTE
-    GSEDIM(KIB:KIE,KJB:KJE,JK) =                              &
-                  (ZRIT(KIB:KIE,KJB:KJE,JK)>XRTMIN(4) .OR.    &
-                   ZPRIS(KIB:KIE,KJB:KJE,JK)>ZRSMIN(4)) .AND. &
-                  ZREMAINT(KIB:KIE,KJB:KJE)>0.
-  ENDDO
-  ISEDIM = COUNTJV(GSEDIM(:,:,:),I1(:),I2(:),I3(:))
-  CALL INTERNAL_SEDIM_SPLI(KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
-                          &OMOMENTUM, FIRST .AND. OMOMENTUM, &
-                          &ISEDIM, GSEDIM, I1, I2, I3, XSPLIT_MAXCFL, ZREMAINT, &
-                          &PRHODREF, ZW, PDZZ, PPABST, PTHT, PTSTEP, &
-                          &4, &
-                          &ZRIT, PRIS, ZWSED, PINPRI, ZPRIS, ZMOMI, ZMOMI_EXT, PFPR=PFPR)
-  FIRST = .FALSE.
-ENDDO
-!
-!*       2.4   for aggregates/snow
-!
-ZREMAINT(:,:) = PTSTEP
-FIRST = .TRUE.
-DO WHILE (ANY(ZREMAINT>0.))
-  GSEDIM(:,:,:)=.FALSE.
-  DO JK = KKTB , KKTE
-    GSEDIM(KIB:KIE,KJB:KJE,JK) =                              &
-                  (ZRST(KIB:KIE,KJB:KJE,JK)>XRTMIN(5) .OR.    &
-                   ZPRSS(KIB:KIE,KJB:KJE,JK)>ZRSMIN(5)) .AND. &
-                  ZREMAINT(KIB:KIE,KJB:KJE)>0.
-  ENDDO
-  ISEDIM = COUNTJV(GSEDIM(:,:,:),I1(:),I2(:),I3(:))
-  CALL INTERNAL_SEDIM_SPLI(KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
-                          &OMOMENTUM, FIRST .AND. OMOMENTUM, &
-                          &ISEDIM, GSEDIM, I1, I2, I3, XSPLIT_MAXCFL, ZREMAINT, &
-                          &PRHODREF, ZW, PDZZ, PPABST, PTHT, PTSTEP, &
-                          &5, &
-                          &ZRST, PRSS, ZWSED, PINPRS, ZPRSS, ZMOMS, ZMOMS_EXT, PFPR=PFPR)
-  FIRST = .FALSE.
-ENDDO
-!
-!*       2.5   for graupeln
-!
-ZREMAINT(:,:) = PTSTEP
-FIRST = .TRUE.
-DO WHILE (ANY(ZREMAINT>0.))
-  GSEDIM(:,:,:)=.FALSE.
-  DO JK = KKTB , KKTE
-    GSEDIM(KIB:KIE,KJB:KJE,JK) =                              &
-                  (ZRGT(KIB:KIE,KJB:KJE,JK)>XRTMIN(6) .OR.    &
-                   ZPRGS(KIB:KIE,KJB:KJE,JK)>ZRSMIN(6)) .AND. &
-                  ZREMAINT(KIB:KIE,KJB:KJE)>0.
-  ENDDO
-  ISEDIM = COUNTJV(GSEDIM(:,:,:),I1(:),I2(:),I3(:))
-  CALL INTERNAL_SEDIM_SPLI(KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
-                          &OMOMENTUM, FIRST .AND. OMOMENTUM, &
-                          &ISEDIM, GSEDIM, I1, I2, I3, XSPLIT_MAXCFL, ZREMAINT, &
-                          &PRHODREF, ZW, PDZZ, PPABST, PTHT, PTSTEP, &
-                          &6, &
-                          &ZRGT, PRGS, ZWSED, PINPRG, ZPRGS, ZMOMG, ZMOMG_EXT, PFPR=PFPR)
-  FIRST = .FALSE.
-ENDDO
-!
-!*       2.6   for hail
-!
-IF (KRR==7) THEN
-  ZREMAINT(:,:) = PTSTEP
-  FIRST = .TRUE.
-  DO WHILE (ANY(ZREMAINT>0.))
-    GSEDIM(:,:,:)=.FALSE.
-    DO JK = KKTB , KKTE
-      GSEDIM(KIB:KIE,KJB:KJE,JK) =                              &
-                    (ZRHT(KIB:KIE,KJB:KJE,JK)>XRTMIN(7) .OR.    &
-                     ZPRHS(KIB:KIE,KJB:KJE,JK)>ZRSMIN(7)) .AND. &
-                    ZREMAINT(KIB:KIE,KJB:KJE)>0.
-    ENDDO
-    ISEDIM = COUNTJV(GSEDIM(:,:,:),I1(:),I2(:),I3(:))
-    CALL INTERNAL_SEDIM_SPLI(KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
-                            &OMOMENTUM, FIRST .AND. OMOMENTUM, &
-                            &ISEDIM, GSEDIM, I1, I2, I3, XSPLIT_MAXCFL, ZREMAINT, &
-                            &PRHODREF, ZW, PDZZ, PPABST, PTHT, PTSTEP, &
-                            &7, &
-                            &ZRHT, PRHS, ZWSED, PINPRH, ZPRHS, ZMOMH, ZMOMH_EXT, PFPR=PFPR)
-    FIRST = .FALSE.
-  END DO
-ENDIF
-!
-!
-CONTAINS
-!
-!
-!-------------------------------------------------------------------------------
-!
-!
-  SUBROUTINE INTERNAL_SEDIM_SPLI(KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
-                                &OMOMENTUM, OCOMPUTE_MOM, &
-                                &KSEDIM, LDSEDIM, I1, I2, I3, PMAXCFL, PREMAINT, &
-                                &PRHODREF, POORHODZ, PDZZ, PPABST, PTHT, PTSTEP, &
-                                &KSPE, &
-                                &PRXT, PRXS, PWSED, PINPRX, PPRXS, PMOM, PMOM_EXT, &
-                                &PRAY, PLBC, PFSEDC, PCONC3D, PFPR)
-    !
-    !*      0. DECLARATIONS
-    !          ------------
-    !
-    USE MODD_RAIN_ICE_DESCR
-    USE MODD_RAIN_ICE_PARAM
-    !
-    IMPLICIT NONE
-    !
-    !*       0.1   Declarations of dummy arguments :
-    !
-    INTEGER, INTENT(IN) :: KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR
-    LOGICAL, INTENT(IN) :: OMOMENTUM, OCOMPUTE_MOM
-    INTEGER, INTENT(IN) :: KSEDIM
-    LOGICAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: LDSEDIM
-    INTEGER, DIMENSION(KSEDIM), INTENT(IN) :: I1, I2, I3
-    REAL,                         INTENT(IN)              :: PMAXCFL ! maximum CFL allowed
-    REAL, DIMENSION(KIT,KJT),     INTENT(INOUT)           :: PREMAINT ! Time remaining until the end of the timestep
-    REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PRHODREF ! Reference density
-    REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: POORHODZ ! One Over (Rhodref times delta Z)
-    REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PDZZ ! layer thikness (m)
-    REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PPABST
-    REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PTHT
-    REAL,                         INTENT(IN)              :: PTSTEP  ! total timestep
-    INTEGER,                      INTENT(IN)              :: KSPE ! 1 for rc, 2 for rr...
-    REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT)           :: PRXT ! mr of specy X
-    REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT)           :: PRXS !Tendency of the specy KSPE
-    REAL, DIMENSION(KIT,KJT,0:KKT+1), INTENT(OUT)         :: PWSED ! sedimentation flux
-    REAL, DIMENSION(KIT,KJT),     INTENT(INOUT)           :: PINPRX ! instant precip
-    REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PPRXS ! external tendencie
-    REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT)           :: PMOM ! momentum associated to PRXT
-    REAL, DIMENSION(KIT,KJT,KKT), INTENT(INOUT)           :: PMOM_EXT ! momentum tendency associated to PPRXS
-    REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN), OPTIONAL    :: PRAY, PLBC, PFSEDC, PCONC3D
-    REAL, DIMENSION(KIT,KJT,KKT,KRR), OPTIONAL, INTENT(INOUT)   :: PFPR    ! upper-air precipitation fluxes
-    !
-    !*       0.2  declaration of local variables
-    !
-    !
-    character(len=10) :: yspe ! String for error message
-    INTEGER :: JK, JL, JI, JJ
-    REAL :: ZINVTSTEP
-    REAL :: ZZWLBDC, ZRAY, ZZT, ZZWLBDA, ZZCC
-    REAL :: ZFSED, ZEXSED
-    REAL, DIMENSION(KIT, KJT) :: ZMRCHANGE
-    REAL, DIMENSION(KIT, KJT) :: ZMAX_TSTEP ! Maximum CFL in column
-    REAL, DIMENSION(KIT,KJT,0:KKT+1) :: ZWSED_MOM ! Momentum flux
-    REAL, DIMENSION(SIZE(XRTMIN)) :: ZRSMIN
-    !
-    !-------------------------------------------------------------------------------
-    !
-    !
-    !*       1. Parameters for cloud sedimentation
-    !
-    !
-    IF(OCOMPUTE_MOM .AND. .NOT. OMOMENTUM) THEN
-      call Print_msg( NVERB_FATAL, 'GEN', 'ICE4_SEDIMENTATION_SPLIT_MOMENTUM',  &
-                      'OCOMPUTE_MOM cannot be .TRUE. if we do not use momentum' )
-    ENDIF
-    !*       2.    compute the fluxes
-    !
-    !
-    ZINVTSTEP = 1./PTSTEP
-    ZRSMIN(:) = XRTMIN(:) * ZINVTSTEP
-    IF(KSPE==2) THEN
-      !******* for cloud
-      IF(OCOMPUTE_MOM .OR. .NOT. OMOMENTUM) THEN
-        PWSED(:,:,:) = 0.
-        PMOM_EXT(:,:,:) = 0.
-        DO JL=1, KSEDIM
-          JI=I1(JL)
-          JJ=I2(JL)
-          JK=I3(JL)
-          IF(PRXT(JI,JJ,JK)>XRTMIN(KSPE)) THEN
-            ZZWLBDC = PLBC(JI,JJ,JK) * PCONC3D(JI,JJ,JK) / &
-                     (PRHODREF(JI,JJ,JK) * PRXT(JI,JJ,JK))
-            ZZWLBDC = ZZWLBDC**XLBEXC
-            ZRAY = PRAY(JI,JJ,JK) / ZZWLBDC
-            ZZT = PTHT(JI,JJ,JK) * (PPABST(JI,JJ,JK)/XP00)**(XRD/XCPD)
-            ZZWLBDA = 6.6E-8*(101325./PPABST(JI,JJ,JK))*(ZZT/293.15)
-            ZZCC = XCC*(1.+1.26*ZZWLBDA/ZRAY)
-            PWSED(JI, JJ, JK) = PRHODREF(JI,JJ,JK)**(-XCEXVT +1 ) *   &
-                     ZZWLBDC**(-XDC)*ZZCC*PFSEDC(JI,JJ,JK) * PRXT(JI,JJ,JK)
-          ENDIF
-          IF(PPRXS(JI,JJ,JK)>ZRSMIN(KSPE) .AND. OCOMPUTE_MOM) THEN
-            ZZWLBDC = PLBC(JI,JJ,JK) * PCONC3D(JI,JJ,JK) / &
-                     (PRHODREF(JI,JJ,JK) * PPRXS(JI,JJ,JK) * PTSTEP)
-            ZZWLBDC = ZZWLBDC**XLBEXC
-            ZRAY = PRAY(JI,JJ,JK) / ZZWLBDC
-            ZZT = PTHT(JI,JJ,JK) * (PPABST(JI,JJ,JK)/XP00)**(XRD/XCPD)
-            ZZWLBDA = 6.6E-8*(101325./PPABST(JI,JJ,JK))*(ZZT/293.15)
-            ZZCC = XCC*(1.+1.26*ZZWLBDA/ZRAY)
-            PMOM_EXT(JI, JJ, JK) = PRHODREF(JI,JJ,JK)**(-XCEXVT +1 -1) *   &
-                     ZZWLBDC**(-XDC)*ZZCC*PFSEDC(JI,JJ,JK) * PPRXS(JI,JJ,JK)
-          ENDIF
-        ENDDO
-        IF(OCOMPUTE_MOM) PMOM(:, :, :)=PWSED(:, :, 1:KKT)
-      ENDIF
-    ELSEIF(KSPE==4) THEN
-      ! ******* for pristine ice
-      IF(OCOMPUTE_MOM .OR. .NOT. OMOMENTUM) THEN
-        PWSED(:,:,:) = 0.
-        PMOM_EXT(:,:,:) = 0.
-        DO JL=1, KSEDIM
-          JI=I1(JL)
-          JJ=I2(JL)
-          JK=I3(JL)
-          IF(PRXT(JI, JJ, JK) .GT. MAX(XRTMIN(4), 1.0E-7)) THEN
-            PWSED(JI, JJ, JK) =  XFSEDI * PRXT(JI, JJ, JK) *  &
-                                & PRHODREF(JI,JJ,JK)**(1.-XCEXVT) * & !    McF&H
-                                & MAX( 0.05E6,-0.15319E6-0.021454E6* &
-                                &      ALOG(PRHODREF(JI,JJ,JK)*PRXT(JI,JJ,JK)) )**XEXCSEDI
-          ENDIF
-          IF(PPRXS(JI,JJ,JK)>MAX(ZRSMIN(4), 1.0E-7/PTSTEP) .AND. OCOMPUTE_MOM) THEN
-            PMOM_EXT(JI, JJ, JK) = XFSEDI * PPRXS(JI, JJ, JK) *  &
-                                & PRHODREF(JI,JJ,JK)**(1.-XCEXVT-1) * & !    McF&H
-                                & MAX( 0.05E6,-0.15319E6-0.021454E6* &
-                                &      ALOG(PRHODREF(JI,JJ,JK)*PPRXS(JI,JJ,JK)*PTSTEP) )**XEXCSEDI
-          ENDIF
-        ENDDO
-        IF(OCOMPUTE_MOM) PMOM(:, :, :)=PWSED(:, :, 1:KKT)
-      ENDIF
-    ELSE
-      ! ******* for other species
-      IF(KSPE==3) THEN
-        ZFSED=XFSEDR
-        ZEXSED=XEXSEDR
-      ELSEIF(KSPE==5) THEN
-        ZFSED=XFSEDS
-        ZEXSED=XEXSEDS
-      ELSEIF(KSPE==6) THEN
-        ZFSED=XFSEDG
-        ZEXSED=XEXSEDG
-      ELSEIF(KSPE==7) THEN
-        ZFSED=XFSEDH
-        ZEXSED=XEXSEDH
-      ELSE
-        write( yspe, '( I10 )' ) kspe
-        call Print_msg( NVERB_FATAL, 'GEN', 'ICE4_SEDIMENTATION_SPLIT_MOMENTUM', &
-                        'no sedimentation parameter for KSPE='//trim(yspe) )
-      ENDIF
-      IF(OCOMPUTE_MOM .OR. .NOT. OMOMENTUM) THEN
-        !Momentum (per m3) and mass flux are given by the same formulae
-        PWSED(:,:,:) = 0.
-        PMOM_EXT(:,:,:) = 0.
-        DO JL=1, KSEDIM
-          JI=I1(JL)
-          JJ=I2(JL)
-          JK=I3(JL)
-          IF(PRXT(JI,JJ,JK)>XRTMIN(KSPE)) THEN
-            PWSED(JI, JJ, JK) = ZFSED  * PRXT(JI, JJ, JK)**ZEXSED *   &
-                                         PRHODREF(JI, JJ, JK)**(ZEXSED-XCEXVT)
-          ENDIF
-          IF(PPRXS(JI,JJ,JK)>ZRSMIN(KSPE) .AND. OCOMPUTE_MOM) THEN
-            PMOM_EXT(JI, JJ, JK) = ZFSED  * (PPRXS(JI, JJ, JK)*PTSTEP)**ZEXSED *   &
-                                         PRHODREF(JI, JJ, JK)**(ZEXSED-XCEXVT-1) * ZINVTSTEP
-          ENDIF
-        ENDDO
-        IF(OCOMPUTE_MOM) PMOM(:, :, :)=PWSED(:, :, 1:KKT) / PRHODREF(:, :, :) ! momentum per kg of dry air
-      ENDIF
-    ENDIF
-    IF(OMOMENTUM) THEN
-      PWSED(:,:,:) = 0.
-      ZWSED_MOM(:,:,:) = 0.
-      DO JL=1, KSEDIM
-        JI=I1(JL)
-        JJ=I2(JL)
-        JK=I3(JL)
-        IF(PRXT(JI,JJ,JK)>XRTMIN(KSPE)) THEN
-          ZWSED_MOM(JI, JJ, JK) = PMOM(JI, JJ, JK)**2 / PRXT(JI, JJ, JK) * PRHODREF(JI, JJ, JK) ! (kg*m/s)/(s*m**2)
-        ENDIF
-      ENDDO
-      PWSED(:, :, 1:KKT) = PMOM(:, :, :)*PRHODREF(:, :, :) !PMOM divided by r to get speed and multiply by rho*r to get flux
-    ENDIF
-    ZMAX_TSTEP(:,:) = PREMAINT(:,:)
-    DO JL=1, KSEDIM
-      JI=I1(JL)
-      JJ=I2(JL)
-      JK=I3(JL)
-      IF(PRXT(JI,JJ,JK)>XRTMIN(KSPE)) THEN
-        ZMAX_TSTEP(JI, JJ) = MIN(ZMAX_TSTEP(JI, JJ), PMAXCFL * PRHODREF(JI, JJ, JK) * &
-                      PRXT(JI, JJ, JK) * PDZZ(JI, JJ, JK) / PWSED(JI, JJ, JK))
-      ENDIF
-    ENDDO
-    ZMRCHANGE(:,:) = 0.
-    PREMAINT(:,:) = PREMAINT(:,:) - ZMAX_TSTEP(:,:)
-    DO JK = KKTB , KKTE
-      ZMRCHANGE(:,:) = ZMAX_TSTEP(:,:) * POORHODZ(:,:,JK)*(PWSED(:,:,JK+KKL)-PWSED(:,:,JK))
-      PRXT(:,:,JK) = PRXT(:,:,JK) + ZMRCHANGE(:,:) + PPRXS(:,:,JK) * ZMAX_TSTEP(:,:)
-      PRXS(:,:,JK) = PRXS(:,:,JK) + ZMRCHANGE(:,:) * ZINVTSTEP
-    ENDDO
-    IF(OMOMENTUM) THEN
-      DO JK = KKTB , KKTE
-        PMOM(:,:,JK) = PMOM(:,:,JK) + ZMAX_TSTEP(:,:) * POORHODZ(:,:,JK) * (ZWSED_MOM(:,:,JK+KKL)-ZWSED_MOM(:,:,JK))
-        PMOM(:,:,JK) = PMOM(:,:,JK) + ZMAX_TSTEP(:,:) * PMOM_EXT(:,:,JK)
-        PMOM(:,:,JK) = MAX(0., PMOM(:,:,JK))
-      ENDDO
-    ENDIF
-    PINPRX(:,:) = PINPRX(:,:) + ZWSED(:,:,KKB) / XRHOLW * (ZMAX_TSTEP(:,:) * ZINVTSTEP)
-    IF (PRESENT(PFPR)) THEN
-      DO JK = KKTB , KKTE
-        PFPR(:,:,JK,KSPE) = PFPR(:,:,JK,KSPE) + ZWSED(:,:,JK) * (ZMAX_TSTEP(:,:) * ZINVTSTEP)
-      ENDDO
-    ENDIF
-    !
-  END SUBROUTINE INTERNAL_SEDIM_SPLI
-  !
-END SUBROUTINE ICE4_SEDIMENTATION_SPLIT_MOMENTUM
-!
-END MODULE MODE_ICE4_SEDIMENTATION_SPLIT_MOMENTUM