diff --git a/src/MNH/ice4_nucleation_wrapper.f90 b/src/MNH/ice4_nucleation_wrapper.f90
index 8a2711fc7970a3b4b7cc2e0f8d7b3424bd537a42..662f7d67067af16f61606bdcad524f85bf7c5602 100644
--- a/src/MNH/ice4_nucleation_wrapper.f90
+++ b/src/MNH/ice4_nucleation_wrapper.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 MODULE MODI_ICE4_NUCLEATION_WRAPPER
 INTERFACE
@@ -64,20 +64,24 @@ REAL, DIMENSION(KIT,KJT,KKT),   INTENT(OUT)   :: PRVHENI_MR ! Mixing ratio chang
 !
 !*       0.2  declaration of local variables
 !
-INTEGER                           :: JL       ! and PACK intrinsics
-LOGICAL, DIMENSION(SIZE(PRVT,1),SIZE(PRVT,2),SIZE(PRVT,3)) :: GNEGT  ! Test where to compute the HEN process
-INTEGER :: INEGT
-INTEGER, DIMENSION(COUNT(PT<XTT .AND. LDMASK)) :: I1,I2,I3 ! Used to replace the COUNT
-REAL, DIMENSION(COUNT(PT<XTT .AND. LDMASK))  :: ZZT,      & ! Temperature
-                                   ZPRES,    & ! Pressure
-                                   ZRVT,     & ! Water vapor m.r. at t
-                                   ZCIT,     & ! Pristine ice conc. at t
-                                   ZTHT,     & ! Theta at t
-                                   ZRHODREF, &
-                                   ZEXN,     &
-                                   ZLSFACT,  &
-                                   ZRVHENI_MR, &
-                                   ZB_TH, ZB_RV, ZB_RI
+INTEGER                            :: IDX, JI, JJ, JK
+INTEGER                            :: JL
+INTEGER                            :: INEGT, INEGT_TMP
+INTEGER, DIMENSION(:), ALLOCATABLE :: I1,I2,I3
+LOGICAL                            :: GDSOFT
+LOGICAL, DIMENSION(:), ALLOCATABLE :: GLDCOMPUTE
+LOGICAL, DIMENSION(KIT,KJT,KKT)    :: GNEGT  ! Test where to compute the HEN process
+REAL, DIMENSION(:), ALLOCATABLE    :: ZZT,       & ! Temperature
+                                      ZPRES,      & ! Pressure
+                                      ZRVT,       & ! Water vapor m.r. at t
+                                      ZCIT,       & ! Pristine ice conc. at t
+                                      ZTHT,       & ! Theta at t
+                                      ZRHODREF,   &
+                                      ZEXN,       &
+                                      ZLSFACT,    &
+                                      ZRVHENI_MR, &
+                                      ZB_TH, ZB_RV, ZB_RI
+!
 !-------------------------------------------------------------------------------
 !
 !
@@ -86,15 +90,31 @@ REAL, DIMENSION(COUNT(PT<XTT .AND. LDMASK))  :: ZZT,      & ! Temperature
 !  the temperature is negative only !!!
 !
 GNEGT(:,:,:)=PT(:,:,:)<XTT .AND. LDMASK
-INEGT=0
-IF(COUNT(GNEGT)/=0) INEGT=ICE4_NUCLEATION_COUNTJV(GNEGT(:,:,:), KIT, KJT, KKT, SIZE(I1), I1(:), I2(:), I3(:))
+INEGT = COUNT(GNEGT(:,:,:))
+!
+ALLOCATE(GLDCOMPUTE(INEGT))
+ALLOCATE(I1(INEGT),I2(INEGT),I3(INEGT))
+ALLOCATE(ZZT(INEGT))
+ALLOCATE(ZPRES(INEGT))
+ALLOCATE(ZRVT(INEGT))
+ALLOCATE(ZCIT(INEGT))
+ALLOCATE(ZTHT(INEGT))
+ALLOCATE(ZRHODREF(INEGT))
+ALLOCATE(ZEXN(INEGT))
+ALLOCATE(ZLSFACT(INEGT))
+ALLOCATE(ZRVHENI_MR(INEGT))
+ALLOCATE(ZB_TH(INEGT))
+ALLOCATE(ZB_RV(INEGT))
+ALLOCATE(ZB_RI(INEGT))
 !
 ZB_TH(:) = 0.
 ZB_RV(:) = 0.
 ZB_RI(:) = 0.
 !
+IF(INEGT>0) INEGT_TMP=ICE4_NUCLEATION_COUNTJV(GNEGT(:,:,:), KIT, KJT, KKT, SIZE(I1), I1(:), I2(:), I3(:))
+!
 PRVHENI_MR(:,:,:)=0.
-IF(INEGT>=1) THEN
+IF(INEGT>0) THEN
   DO JL=1, INEGT
     ZRVT(JL)=PRVT(I1(JL), I2(JL), I3(JL))
     ZCIT(JL)=PCIT(I1(JL), I2(JL), I3(JL))
@@ -105,15 +125,20 @@ IF(INEGT>=1) THEN
     ZEXN(JL)=PEXN(I1(JL), I2(JL), I3(JL))
     ZLSFACT(JL)=PLSFACT(I1(JL), I2(JL), I3(JL))
   ENDDO
-  CALL ICE4_NUCLEATION(INEGT, .FALSE., ZZT(:)<XTT, &
+  GDSOFT = .FALSE.
+  GLDCOMPUTE(:) = ZZT(:)<XTT
+  CALL ICE4_NUCLEATION(INEGT, GDSOFT, GLDCOMPUTE, &
                        ZTHT, ZPRES, ZRHODREF, ZEXN, ZLSFACT, ZZT, &
                        ZRVT, &
                        ZCIT, ZRVHENI_MR, ZB_TH, ZB_RV, ZB_RI)
   PRVHENI_MR(:,:,:)=UNPACK(ZRVHENI_MR(:), MASK=GNEGT(:,:,:), FIELD=0.0)
-  PCIT(:,:,:)=UNPACK(ZCIT(:), MASK=GNEGT(:,:,:), FIELD=PCIT(:,:,:))
+  PCIT(:,:,:)      =UNPACK(ZCIT(:),       MASK=GNEGT(:,:,:), FIELD=PCIT(:,:,:))
 END IF
 !
-
+DEALLOCATE(GLDCOMPUTE)
+DEALLOCATE(I1,I2,I3)
+DEALLOCATE(ZZT,ZPRES,ZRVT,ZCIT,ZTHT,ZRHODREF,ZEXN,ZLSFACT,ZRVHENI_MR,ZB_TH,ZB_RV,ZB_RI)
+!
 CONTAINS
   FUNCTION ICE4_NUCLEATION_COUNTJV(LTAB,KIT,KJT,KKT,KSIZE,I1,I2,I3) RESULT(IC)
   IMPLICIT NONE
diff --git a/src/MNH/ice4_sedimentation_split.f90 b/src/MNH/ice4_sedimentation_split.f90
index 10dd37ae9af8494bc6be65bfcc7a973060c8ee0e..cb0a147d070b865e8e9391bacf7ef143c3727311 100644
--- a/src/MNH/ice4_sedimentation_split.f90
+++ b/src/MNH/ice4_sedimentation_split.f90
@@ -77,9 +77,9 @@ SUBROUTINE ICE4_SEDIMENTATION_SPLIT(KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKTB
 !*      0. DECLARATIONS
 !          ------------
 !
-USE MODD_CST,            ONLY: XCPD,XP00,XRD,XRHOLW
+USE MODD_CST,            ONLY: XRHOLW
 USE MODD_PARAM_ICE,      ONLY: XSPLIT_MAXCFL
-USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAC,XALPHAC2,XCONC_LAND,XCONC_SEA,XCONC_URBAN,XLBC,XNUC,XNUC2,XRTMIN
+USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAC,XALPHAC2,XCONC_LAND,XCONC_SEA,XCONC_URBAN,XLBC,XNUC,XNUC2
 USE MODD_RAIN_ICE_PARAM, ONLY: XFSEDC
 !
 USE MODE_MSG
@@ -128,57 +128,62 @@ REAL, DIMENSION(KIT,KJT,KKT,KRR), OPTIONAL, INTENT(OUT)   :: PFPR    ! upper-air
 !*       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
-LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)):: GDEP
-INTEGER , DIMENSION(SIZE(GSEDIM)) :: I1,I2,I3 ! Used to replace the COUNT
-
+INTEGER                                                             :: JI,JJ,JK
+INTEGER                                                             :: IRR !Workaround of PGI bug with OpenACC (at least up to 18.10 version)
+LOGICAL                                                             :: GDEPOSC, GSEDIC !Workaround of PGI bug with OpenACC (at least up to 18.10 version)
+LOGICAL                                                             :: GPRESENT_PFPR, GPRESENT_PSEA
+REAL                                                                :: ZINVTSTEP
+REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2))                  :: ZCONC_TMP    ! Weighted concentration
+REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),KKTB:KKTE)        :: ZW ! work array
 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),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
-REAL, DIMENSION(SIZE(XRTMIN)) :: ZRSMIN
+!
 !-------------------------------------------------------------------------------
 !
 !-------------------------------------------------------------------------------
 !
 !
+GDEPOSC = ODEPOSC
+GSEDIC = OSEDIC
+IRR    = KRR
+!
+IF (PRESENT(PFPR)) THEN
+  GPRESENT_PFPR = .TRUE.
+ELSE
+  GPRESENT_PFPR = .FALSE.
+END IF
+!
+IF (PRESENT(PSEA)) THEN
+  GPRESENT_PSEA = .TRUE.
+ELSE
+  GPRESENT_PSEA = .FALSE.
+END IF
+!
 !        O. Initialization of for sedimentation
 !
 ZINVTSTEP=1./PTSTEP
-ZRSMIN(:) = XRTMIN(:) * ZINVTSTEP
-IF (OSEDIC) PINPRC (:,:) = 0.
-IF (ODEPOSC) PINDEP (:,:) = 0.
-PINPRR (:,:) = 0.
-PINPRI (:,:) = 0.
-PINPRS (:,:) = 0.
-PINPRG (:,:) = 0.
-IF ( KRR == 7 ) PINPRH (:,:) = 0.
-IF (PRESENT(PFPR)) PFPR(:,:,:,:) = 0.
+IF (GPRESENT_PFPR) THEN
+  PFPR(:,:,:,:) = 0.
+END IF
 !
 !*       1. Parameters for cloud sedimentation
 !
-IF (OSEDIC) THEN
+IF (GSEDIC) THEN
   ZRAY(:,:,:)   = 0.
   ZLBC(:,:,:)   = XLBC(1)
   ZFSEDC(:,:,:) = XFSEDC(1)
   ZCONC3D(:,:,:)= XCONC_LAND
   ZCONC_TMP(:,:)= XCONC_LAND
-  IF (PRESENT(PSEA)) THEN
+  IF (GPRESENT_PSEA) THEN
    ZCONC_TMP(:,:)=PSEA(:,:)*XCONC_SEA+(1.-PSEA(:,:))*XCONC_LAND
    DO JK=KKTB, KKTE
     ZLBC(:,:,JK)   = PSEA(:,:)*XLBC(2)+(1.-PSEA(:,:))*XLBC(1)
@@ -203,12 +208,16 @@ ENDIF
 !  For optimization we consider each variable separately
 !
 ! External tendecies
-IF (OSEDIC) ZPRCS(:,:,:) = PRCS(:,:,:)-PRCT(:,:,:)*ZINVTSTEP
+IF (GSEDIC) 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 ) ZPRHS(:,:,:) = PRHS(:,:,:)-PRHT(:,:,:)*ZINVTSTEP
+IF ( IRR == 7 ) THEN
+  ZPRHS(:,:,:) = PRHS(:,:,:)-PRHT(:,:,:)*ZINVTSTEP
+END IF
 !
 ! mr values inside the time-splitting loop
 ZRCT(:,:,:) = PRCT(:,:,:)
@@ -216,150 +225,85 @@ ZRRT(:,:,:) = PRRT(:,:,:)
 ZRIT(:,:,:) = PRIT(:,:,:)
 ZRST(:,:,:) = PRST(:,:,:)
 ZRGT(:,:,:) = PRGT(:,:,:)
-IF (KRR==7) ZRHT(:,:,:) = PRHT(:,:,:)
+IF (IRR==7) THEN
+  ZRHT(:,:,:) = PRHT(:,:,:)
+END IF
 !
-DO JK = KKTB , KKTE
-  ZW(:,:,JK) =1./(PRHODREF(:,:,JK)* PDZZ(:,:,JK))
-END DO
+ZW(:,:,KKTB:KKTE) =1./(PRHODREF(:,:,KKTB:KKTE)* PDZZ(:,:,KKTB:KKTE))
 !
 !
 !*       2.1   for cloud
 !
-IF (OSEDIC) THEN
-  ZREMAINT(:,:) = PTSTEP
-  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 = ICE4_SEDIMENTATION_SPLIT_COUNTJV(GSEDIM(:,:,:),KIT,KJT,KKT,&
-                                             &SIZE(I1),I1(:),I2(:),I3(:))
-    CALL INTERNAL_SEDIM_SPLI(KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
-                          &ISEDIM, GSEDIM, I1, I2, I3, XSPLIT_MAXCFL, ZREMAINT, &
+IF (GSEDIC) THEN
+    CALL INTERNAL_SEDIM_SPLI(KIB,KIE,KIT,KJB,KJE,KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
+                          &XSPLIT_MAXCFL, &
                           &PRHODREF, ZW, PDZZ, PPABST, PTHT, PTSTEP, &
                           &2, &
-                          &ZRCT, PRCS, ZWSED, PINPRC, ZPRCS, &
-                          &ZRAY, ZLBC, ZFSEDC, ZCONC3D, PSEA, PTOWN, PFPR=PFPR)
-  ENDDO
+                          &ZRCT, PRCS, PINPRC, ZPRCS, &
+                          &ZRAY, ZLBC, ZFSEDC, ZCONC3D, PFPR=PFPR)
 ENDIF
 !
 !
 !*       2.1bis  DROPLET DEPOSITION AT THE 1ST LEVEL ABOVE GROUND
 !
-IF (ODEPOSC) THEN
-  GDEP(:,:) = .FALSE.
-  GDEP(KIB:KIE,KJB:KJE) =    PRCS(KIB:KIE,KJB:KJE,KKB) >0 
-  WHERE (GDEP)
-     PRCS(:,:,KKB) = PRCS(:,:,KKB) - PVDEPOSC * PRCT(:,:,KKB) / PDZZ(:,:,KKB)
-     PINPRC(:,:) = PINPRC(:,:) + PVDEPOSC * PRCT(:,:,KKB) * PRHODREF(:,:,KKB) /XRHOLW 
-     PINDEP(:,:) = PVDEPOSC * PRCT(:,:,KKB) * PRHODREF(:,:,KKB) /XRHOLW 
-  END WHERE
+IF (GDEPOSC) THEN
+  PINDEP (:,:) = 0.
+  DO JJ=KJB,KJE
+    DO JI=KIB,KIE
+      IF (PRCS(JI,JJ,KKB)>0.) THEN
+        PRCS(JI,JJ,KKB) = PRCS(JI,JJ,KKB) - PVDEPOSC * PRCT(JI,JJ,KKB) / PDZZ(JI,JJ,KKB)
+        PINPRC(JI,JJ) = PINPRC(JI,JJ) + PVDEPOSC * PRCT(JI,JJ,KKB) * PRHODREF(JI,JJ,KKB) /XRHOLW
+        PINDEP(JI,JJ) = PVDEPOSC * PRCT(JI,JJ,KKB) * PRHODREF(JI,JJ,KKB) /XRHOLW
+      END IF
+    END DO
+  END DO
 END IF
 !
 !*       2.2   for rain
 !
-ZREMAINT(:,:) = PTSTEP
-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 = ICE4_SEDIMENTATION_SPLIT_COUNTJV(GSEDIM(:,:,:),KIT,KJT,KKT,&
-                                           &SIZE(I1),I1(:),I2(:),I3(:))
-  CALL INTERNAL_SEDIM_SPLI(KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
-                          &ISEDIM, GSEDIM, I1, I2, I3, XSPLIT_MAXCFL, ZREMAINT, &
+  CALL INTERNAL_SEDIM_SPLI(KIB,KIE,KIT,KJB,KJE,KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
+                          &XSPLIT_MAXCFL, &
                           &PRHODREF, ZW, PDZZ, PPABST, PTHT, PTSTEP, &
                           &3, &
-                          &ZRRT, PRRS, ZWSED, PINPRR, ZPRRS, &
-                          &PFPR=PFPR)
-ENDDO
+                          &ZRRT, PRRS, PINPRR, ZPRRS, &
+                          PFPR=PFPR)
 !
 !*       2.3   for pristine ice
 !
-ZREMAINT(:,:) = PTSTEP
-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 = ICE4_SEDIMENTATION_SPLIT_COUNTJV(GSEDIM(:,:,:),KIT,KJT,KKT,&
-                                           &SIZE(I1),I1(:),I2(:),I3(:))
-  CALL INTERNAL_SEDIM_SPLI(KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
-                          &ISEDIM, GSEDIM, I1, I2, I3, XSPLIT_MAXCFL, ZREMAINT, &
+  CALL INTERNAL_SEDIM_SPLI(KIB,KIE,KIT,KJB,KJE,KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
+                          &XSPLIT_MAXCFL, &
                           &PRHODREF, ZW, PDZZ, PPABST, PTHT, PTSTEP, &
                           &4, &
-                          &ZRIT, PRIS, ZWSED, PINPRI, ZPRIS, PFPR=PFPR)
-ENDDO
+                          &ZRIT, PRIS, PINPRI, ZPRIS, &
+                          PFPR=PFPR)
 !
 !*       2.4   for aggregates/snow
 !
-ZREMAINT(:,:) = PTSTEP
-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 = ICE4_SEDIMENTATION_SPLIT_COUNTJV(GSEDIM(:,:,:),KIT,KJT,KKT,&
-                                           &SIZE(I1),I1(:),I2(:),I3(:))
-  CALL INTERNAL_SEDIM_SPLI(KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
-                          &ISEDIM, GSEDIM, I1, I2, I3, XSPLIT_MAXCFL, ZREMAINT, &
-                          &PRHODREF, ZW, PDZZ, PPABST, PTHT, PTSTEP, &
-                          &5, &
-                          &ZRST, PRSS, ZWSED, PINPRS, ZPRSS, PFPR=PFPR)
-ENDDO
+  CALL INTERNAL_SEDIM_SPLI(KIB,KIE,KIT,KJB,KJE,KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
+                        &XSPLIT_MAXCFL, &
+                        &PRHODREF, ZW, PDZZ, PPABST, PTHT, PTSTEP, &
+                        &5, &
+                        &ZRST, PRSS, PINPRS, ZPRSS, &
+                        PFPR=PFPR)
 !
 !*       2.5   for graupeln
 !
-ZREMAINT(:,:) = PTSTEP
-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 = ICE4_SEDIMENTATION_SPLIT_COUNTJV(GSEDIM(:,:,:),KIT,KJT,KKT,&
-                                           &SIZE(I1),I1(:),I2(:),I3(:))
-  CALL INTERNAL_SEDIM_SPLI(KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
-                          &ISEDIM, GSEDIM, I1, I2, I3, XSPLIT_MAXCFL, ZREMAINT, &
-                          &PRHODREF, ZW, PDZZ, PPABST, PTHT, PTSTEP, &
-                          &6, &
-                          &ZRGT, PRGS, ZWSED, PINPRG, ZPRGS, PFPR=PFPR)
-ENDDO
+  CALL INTERNAL_SEDIM_SPLI(KIB,KIE,KIT,KJB,KJE,KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
+                        &XSPLIT_MAXCFL, &
+                        &PRHODREF, ZW, PDZZ, PPABST, PTHT, PTSTEP, &
+                        &6, &
+                        &ZRGT, PRGS, PINPRG, ZPRGS, &
+                        PFPR=PFPR)
 !
 !*       2.6   for hail
 !
-IF (KRR==7) THEN
-  ZREMAINT(:,:) = PTSTEP
-  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 = ICE4_SEDIMENTATION_SPLIT_COUNTJV(GSEDIM(:,:,:),KIT,KJT,KKT,&
-                                             &SIZE(I1),I1(:),I2(:),I3(:))
-    CALL INTERNAL_SEDIM_SPLI(KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
-                            &ISEDIM, GSEDIM, I1, I2, I3, XSPLIT_MAXCFL, ZREMAINT, &
-                            &PRHODREF, ZW, PDZZ, PPABST, PTHT,  PTSTEP, &
-                            &7, &
-                            &ZRHT, PRHS, ZWSED, PINPRH, ZPRHS, PFPR=PFPR)
-  END DO
+IF (IRR==7) THEN
+    CALL INTERNAL_SEDIM_SPLI(KIB,KIE,KIT,KJB,KJE,KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
+                          &XSPLIT_MAXCFL, &
+                          &PRHODREF, ZW, PDZZ, PPABST, PTHT, PTSTEP, &
+                          &7, &
+                          &ZRHT, PRHS, PINPRH, ZPRHS, &
+                          PFPR=PFPR)
 ENDIF
 !
 !
@@ -369,103 +313,127 @@ CONTAINS
 !-------------------------------------------------------------------------------
 !
 !
-  SUBROUTINE INTERNAL_SEDIM_SPLI(KIT, KJT, KKB, KKTB, KKTE, KKT, KKL, KRR, &
-                                &KSEDIM, LDSEDIM, I1, I2, I3, PMAXCFL, PREMAINT, &
-                                &PRHODREF, POORHODZ, PDZZ, PPABST, PTHT,  PTSTEP, &
-                                &KSPE, &
-                                &PRXT, PRXS, PWSED, PINPRX, PPRXS, &
-                                &PRAY, PLBC, PFSEDC, PCONC3D, PSEA, PTOWN, 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
-    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),     INTENT(IN), OPTIONAL    :: PSEA    ! Sea Mask
-    REAL, DIMENSION(KIT,KJT),     INTENT(IN), OPTIONAL    :: PTOWN   ! Fraction that is town
-    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(SIZE(XRTMIN)) :: ZRSMIN
-    !
-    !-------------------------------------------------------------------------------
-    !
-    !
-    !*       1. Parameters for cloud sedimentation
-    !
-    !
-    !*       2.    compute the fluxes
-    !
-    !
-    ZINVTSTEP = 1./PTSTEP
-    ZRSMIN(:) = XRTMIN(:) * ZINVTSTEP
-    IF(KSPE==2) THEN
-      !******* for cloud
-      PWSED(:,:,:) = 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
-      ENDDO
-    ELSEIF(KSPE==4) THEN
-      ! ******* for pristine ice
-      PWSED(:,:,:) = 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
-      ENDDO
-    ELSE
+SUBROUTINE INTERNAL_SEDIM_SPLI(KIB,KIE,KIT,KJB,KJE,KJT,KKB,KKTB,KKTE,KKT,KKL,KRR, &
+                              &PMAXCFL,PRHODREF,POORHODZ,PDZZ,PPABST,PTHT,PTSTEP, &
+                              &KSPE,PRXT,PRXS,PINPRX,PPRXS,                       &
+                              &PRAY,PLBC,PFSEDC,PCONC3D,PFPR)
+!
+!*      0. DECLARATIONS
+!          ------------
+!
+USE MODD_CST,            ONLY: XCPD,XP00,XRD
+USE MODD_RAIN_ICE_DESCR, ONLY: XCC,XCEXVT,XDC,XLBEXC,XRTMIN
+USE MODD_RAIN_ICE_PARAM, ONLY: XEXCSEDI,XEXSEDG,XEXSEDH,XEXSEDR,XEXSEDS,XFSEDG,XFSEDH,XFSEDI,XFSEDR,XFSEDS
+!
+IMPLICIT NONE
+!
+!*       0.1   Declarations of dummy arguments :
+!
+INTEGER, INTENT(IN) :: KIB,KIE,KIT, KJB,KJE,KJT, KKB, KKTB, KKTE, KKT, KKL, KRR
+REAL,                         INTENT(IN)              :: PMAXCFL ! maximum CFL allowed
+REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PRHODREF ! Reference density
+REAL, DIMENSION(KIT,KJT,KKTB:KKTE), 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),     INTENT(OUT)             :: PINPRX ! instant precip
+REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)              :: PPRXS ! external tendencie
+REAL, DIMENSION(KIT,KJT,KKT), INTENT(IN), OPTIONAL    :: PRAY, PLBC, PFSEDC, PCONC3D
+REAL, DIMENSION(KIT,KJT,KKT,KRR), INTENT(INOUT), OPTIONAL :: PFPR    ! upper-air precipitation fluxes
+!
+!*       0.2  declaration of local variables
+!
+character(len=10) :: yspe ! String for error message
+INTEGER                         :: IDX, ISEDIM
+INTEGER                         :: JI, JJ, JK, JL
+INTEGER, DIMENSION(KIT*KJT*KKT) :: I1,I2,I3 ! Used to replace the COUNT
+LOGICAL                         :: GPRESENT_PFPR
+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(SIZE(XRTMIN))   :: ZRSMIN
+REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) :: ZREMAINT                   ! Remaining time until the timestep end
+REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),0:SIZE(PRHODREF,3)+1) :: ZWSED ! Sedimentation fluxes
+!
+!-------------------------------------------------------------------------------
+IF (KSPE<2 .OR. KSPE>7) CALL PRINT_MSG(NVERB_FATAL,'GEN','INTERNAL_SEDIM_SPLIT','invalid species (KSPE variable)')
+!
+IF (PRESENT(PFPR)) THEN
+  GPRESENT_PFPR = .TRUE.
+ELSE
+  GPRESENT_PFPR = .FALSE.
+END IF
+!
+PINPRX(:,:) = 0.
+ZINVTSTEP=1./PTSTEP
+ZRSMIN(:) = XRTMIN(:) * ZINVTSTEP
+ZREMAINT(:,:) = PTSTEP
+!
+DO WHILE (ANY(ZREMAINT>0.))
+  ISEDIM = 0
+  DO JK = KKTB,KKTE
+    DO JJ = KJB,KJE
+      DO JI = KIB,KIE
+        IF( (PRXT (JI,JJ,JK)>XRTMIN(KSPE) .OR.    &
+             PPRXS(JI,JJ,JK)>ZRSMIN(KSPE)) .AND. &
+             ZREMAINT(JI,JJ)>0. ) THEN
+          ISEDIM = ISEDIM + 1
+          IDX = ISEDIM
+          I1(IDX) = JI
+          I2(IDX) = JJ
+          I3(IDX) = JK
+        END IF
+      END DO
+    END DO
+  END DO
+  !
+  !
+  !*       1. Parameters for cloud sedimentation
+  !
+  !
+  !*       2.    compute the fluxes
+  !
+  !
+  IF(KSPE==2) THEN
+    !******* for cloud
+    ZWSED(:,:,:) = 0.
+    DO JL=1, ISEDIM
+      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)
+        ZWSED(JI, JJ, JK) = PRHODREF(JI,JJ,JK)**(-XCEXVT +1 ) *   &
+                  ZZWLBDC**(-XDC)*ZZCC*PFSEDC(JI,JJ,JK) * PRXT(JI,JJ,JK)
+      ENDIF
+    ENDDO
+  ELSEIF(KSPE==4) THEN
+    ! ******* for pristine ice
+    ZWSED(:,:,:) = 0.
+    DO JL=1, ISEDIM
+      JI=I1(JL)
+      JJ=I2(JL)
+      JK=I3(JL)
+      IF(PRXT(JI, JJ, JK) .GT. MAX(XRTMIN(4), 1.0E-7)) THEN
+        ZWSED(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
+    ENDDO
+  ELSE
     ! ******* for other species
     SELECT CASE(KSPE)
       CASE(3)
@@ -484,73 +452,43 @@ CONTAINS
         write( yspe, '( I10 )' ) kspe
         call Print_msg( NVERB_FATAL, 'GEN', 'ICE4_SEDIMENTATION_SPLIT', 'no sedimentation parameter for KSPE='//trim(yspe) )
     END SELECT
-      PWSED(:,:,:) = 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
-      ENDDO
-    ENDIF
-    ZMAX_TSTEP(:,:) = PREMAINT(:,:)
-    DO JL=1, KSEDIM
+    !
+    ZWSED(:,:,:) = 0.
+    DO JL=1, ISEDIM
       JI=I1(JL)
       JJ=I2(JL)
       JK=I3(JL)
-      IF(PRXT(JI,JJ,JK)>XRTMIN(KSPE) .AND. PWSED(JI, JJ, JK)>1.E-20) 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))
+      IF(PRXT(JI,JJ,JK)>XRTMIN(KSPE)) THEN
+        ZWSED(JI, JJ, JK) = ZFSED  * PRXT(JI, JJ, JK)**ZEXSED            &
+                                   * PRHODREF(JI, JJ, JK)**(ZEXSED-XCEXVT)
       ENDIF
     ENDDO
-    ZMRCHANGE(:,:) = 0.
-    PREMAINT(:,:) = PREMAINT(:,:) - ZMAX_TSTEP(:,:)
+  ENDIF
+  ZMAX_TSTEP(:,:) = ZREMAINT(:,:)
+  DO JL=1, ISEDIM
+    JI=I1(JL)
+    JJ=I2(JL)
+    JK=I3(JL)
+    IF(PRXT(JI,JJ,JK)>XRTMIN(KSPE) .AND. ZWSED(JI, JJ, JK)>1.E-20) THEN
+      ZMAX_TSTEP(JI, JJ) = MIN(ZMAX_TSTEP(JI, JJ), PMAXCFL * PRHODREF(JI, JJ, JK) * &
+                           PRXT(JI, JJ, JK) * PDZZ(JI, JJ, JK) / ZWSED(JI, JJ, JK))
+    ENDIF
+  ENDDO
+  ZREMAINT(:,:) = ZREMAINT(:,:) - ZMAX_TSTEP(:,:)
+  DO JK = KKTB , KKTE
+    ZMRCHANGE(:,:) = ZMAX_TSTEP(:,:) * POORHODZ(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK))
+    PRXT(:,:,JK) = PRXT(:,:,JK) + ZMRCHANGE(:,:) + PPRXS(:,:,JK) * ZMAX_TSTEP(:,:)
+    PRXS(:,:,JK) = PRXS(:,:,JK) + ZMRCHANGE(:,:) * ZINVTSTEP
+  ENDDO
+  PINPRX(:,:) = PINPRX(:,:) + ZWSED(:,:,KKB) / XRHOLW * (ZMAX_TSTEP(:,:) * ZINVTSTEP)
+  IF (GPRESENT_PFPR) THEN
     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
+      PFPR(:,:,JK,KSPE) = PFPR(:,:,JK,KSPE) + ZWSED(:,:,JK) * (ZMAX_TSTEP(:,:) * ZINVTSTEP)
     ENDDO
-    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
-  !
-  FUNCTION ICE4_SEDIMENTATION_SPLIT_COUNTJV(LTAB,KIT,KJT,KKT,KSIZE,I1,I2,I3) RESULT(IC)
-  !
-  !*      0. DECLARATIONS
-  !          ------------
-  !
-  IMPLICIT NONE
-  !
-  !*       0.2  declaration of local variables
-  !
-  INTEGER, INTENT(IN) :: KIT,KJT,KKT,KSIZE
-  LOGICAL, DIMENSION(KIT,KJT,KKT), INTENT(IN)  :: LTAB ! Mask
-  INTEGER, DIMENSION(KSIZE), INTENT(OUT) :: I1,I2,I3 ! Used to replace the COUNT and PACK
-  INTEGER :: JI,JJ,JK,IC
-  !
-  !-------------------------------------------------------------------------------
-  !
-  IC = 0
-  DO JK = 1,SIZE(LTAB,3)
-    DO JJ = 1,SIZE(LTAB,2)
-      DO JI = 1,SIZE(LTAB,1)
-        IF( LTAB(JI,JJ,JK) ) THEN
-          IC = IC +1
-          I1(IC) = JI
-          I2(IC) = JJ
-          I3(IC) = JK
-        END IF
-      END DO
-    END DO
-  END DO
-  !
-  END FUNCTION ICE4_SEDIMENTATION_SPLIT_COUNTJV
-  !
+  ENDIF
+!
+END DO
+!
+END SUBROUTINE INTERNAL_SEDIM_SPLI
+!
 END SUBROUTINE ICE4_SEDIMENTATION_SPLIT