diff --git a/src/MNH/ecmwf_radiation_vers2.f90 b/src/MNH/ecmwf_radiation_vers2.f90
index c94a2d23a73113888ab1e360e3438152380a20c1..a0bb111969780690101e0a728105ddc9c5c8a54d 100644
--- a/src/MNH/ecmwf_radiation_vers2.f90
+++ b/src/MNH/ecmwf_radiation_vers2.f90
@@ -589,11 +589,11 @@ DO JK = 1 , KLEV
                 ZFLWP(JL)/=0.0) THEN
             ZNUM =  PLWC(JL,IKL)/ XAC
             ZDEN = XCREC * (PCCT_C2R2(JL,IKL)*(PLWC(JL,IKL))**2)**(XLBEXC)
-            ZRADLS(JL) = 0.5E6 * sqrt(ZDEN/PCCT_C2R2(JL,IKL))
-            ZRADLP(JL) = 0.5E6 * (ZNUM/ZDEN)
+            ZRADLS(JL) = MIN( 0.5E6 * sqrt(ZDEN/PCCT_C2R2(JL,IKL)) , 100.)
+            ZRADLP(JL) = MIN( 0.5E6 * (ZNUM/ZDEN)                  , 100.)
           ENDIF
            IF (PCRT_C2R2(JL, IKL)>XCTMIN(3) .AND. PRWC(JL,IKL)>XRTMIN(3).AND.&
-                ZFRWP(JL)/=0.0) THEN
+                ZFRWP(JL)/=0.0 ) THEN
             ZNUM =  PRWC(JL,IKL)/ XAR
             ZDEN = XCRER * (PCRT_C2R2(JL,IKL)*(PRWC(JL,IKL))**2)**(XLBEXR)
             ZRADRS(JL) = 0.5E6 * sqrt(ZDEN/PCRT_C2R2(JL,IKL))
@@ -1098,6 +1098,7 @@ ENDDO
 !
 NUAER = NUA
 NTRAER = NTRA
+
 !
 !     ------------------------------------------------------------------
 !*         2.6    DIFFUSIVITY FACTOR OR SATELLITE VIEWING ANGLE
diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90
index e6380232500af4b840de1f99b83c7936c2367a51..4593b1fe77b0d4a68930460e5760672664b2f722 100644
--- a/src/MNH/ini_budget.f90
+++ b/src/MNH/ini_budget.f90
@@ -2163,8 +2163,6 @@ END IF
   IPROC=IPROC+1
   YWORK2(10,IPROC) = 'NEGA_'
   IPROC=  IPROC+1
-  YWORK2(10,IPROC) = 'SEDI_'
-  IPROC=  IPROC+1
 IF (HCLOUD=='LIMA') THEN
   YWORK2(10,IPROC) = 'CORR_'
   IPROC=  IPROC+1
@@ -2193,6 +2191,8 @@ IF (HCLOUD=='LIMA') THEN
   YWORK2(10,IPROC) = 'WETH_'
   IPROC=  IPROC+1
 ELSE
+  YWORK2(10,IPROC) = 'SEDI_'
+  IPROC=  IPROC+1
   YWORK2(10,IPROC) = 'DEPS_'
   IPROC=  IPROC+1
   YWORK2(10,IPROC) = 'AGGS_'
@@ -2259,9 +2259,6 @@ IF (LBU_RRG) THEN
   IPROC=IPROC+1
   IF( HCLOUD /= 'NONE'  ) IPROACTV(11,IPROC) = NNEGARG
   IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. (.NOT. LSEDIM_AFTER)) &
-          IPROACTV(11,IPROC) = NSEDIRG
-  IPROC=IPROC+1
 IF (HCLOUD=='LIMA') THEN
      IF (OCOLD .AND. OSNOW)                                         IPROACTV(11,IPROC) = NSEDIRG
      IPROC=IPROC+1
@@ -2290,6 +2287,9 @@ IF (HCLOUD=='LIMA') THEN
      IF (.NOT.OPTSPLIT .AND. OHAIL)                                 IPROACTV(11,IPROC) = NCOHGRG
      IPROC=IPROC+1
 ELSE
+  IF (HCLOUD(1:3) == 'ICE' .AND. LRED .AND. (.NOT. LSEDIM_AFTER)) &
+          IPROACTV(11,IPROC) = NSEDIRG
+  IPROC=IPROC+1
   IF( HCLOUD(1:3) == 'ICE') IPROACTV(11,IPROC) = NSFRRG
   IPROC=IPROC+1
   IF( HCLOUD(1:3) == 'ICE') IPROACTV(11,IPROC) = NDEPGRG
@@ -3009,7 +3009,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN
          YWORK2(12+JSV,ILAST_PROC_NBR)= 'HINC_'
          IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
       END IF
-      IF (OPTSPLIT .OR. OWARM) THEN
+      IF (OPTSPLIT .OR. (OWARM .AND. ORAIN)) THEN
          ILAST_PROC_NBR = ILAST_PROC_NBR + 1
          YWORK2(12+JSV,ILAST_PROC_NBR)= 'SELF_'
          IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
diff --git a/src/MNH/lima.f90 b/src/MNH/lima.f90
index 2215459b71ebddec157dffca265e4067b8b55486..d9149be2aa1406d01b7baf65d4aab9f8ea5112a3 100644
--- a/src/MNH/lima.f90
+++ b/src/MNH/lima.f90
@@ -8,24 +8,29 @@ MODULE MODI_LIMA
 !
 INTERFACE
 !
-SUBROUTINE LIMA ( PTSTEP, TPFILE, OCLOSE_OUT,                    &
-                  PRHODREF, PEXNREF, PZZ,                         &
-                  PRHODJ, PPABSM, PPABST,                         &
-                  NCCN, NIFN, NIMM,                               &
-                  PTHM, PTHT, PRT, PSVT, PW_NU,                   &
-                  PTHS, PRS, PSVS,                                &
-                  PINPRC, PINDEP, PINPRR, PINPRI, PINPRS, PINPRG, PINPRH, &
-                  PEVAP3D                                         )
+   SUBROUTINE LIMA ( KKA, KKU, KKL,                                  &
+                     PTSTEP, TPFILE, OCLOSE_OUT,                     &
+                     PRHODREF, PEXNREF, PDZZ,                        &
+                     PRHODJ, PPABSM, PPABST,                         &
+                     NCCN, NIFN, NIMM,                               &
+                     PTHM, PTHT, PRT, PSVT, PW_NU,                   &
+                     PTHS, PRS, PSVS,                                &
+                     PINPRC, PINDEP, PINPRR, PINPRI, PINPRS, PINPRG, PINPRH, &
+                     PEVAP3D                                         )
 !
 USE MODD_IO_ll, ONLY: TFILEDATA
 !
+INTEGER,                  INTENT(IN)    :: KKA   !near ground array index  
+INTEGER,                  INTENT(IN)    :: KKU   !uppest atmosphere array index
+INTEGER,                  INTENT(IN)    :: KKL   !vert. levels type 1=MNH -1=ARO
+!
 REAL,                     INTENT(IN)    :: PTSTEP     ! Time step
 TYPE(TFILEDATA),          INTENT(IN)    :: TPFILE     ! Output file
 LOGICAL,                  INTENT(IN)    :: OCLOSE_OUT ! Conditional closure of output
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRHODREF   ! Reference density
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PEXNREF    ! Reference Exner function
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PZZ        ! Layer thikness (m)
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PDZZ       ! Layer thikness (m)
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRHODJ     ! Dry density * Jacobian
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PPABSM     ! absolute pressure at t
@@ -60,8 +65,9 @@ END MODULE MODI_LIMA
 !
 !
 !     ######spl
-      SUBROUTINE LIMA ( PTSTEP, TPFILE, OCLOSE_OUT,                    &
-                        PRHODREF, PEXNREF, PZZ,                         &
+      SUBROUTINE LIMA ( KKA, KKU, KKL,                                  &
+                        PTSTEP, TPFILE, OCLOSE_OUT,                     &
+                        PRHODREF, PEXNREF, PDZZ,                        &
                         PRHODJ, PPABSM, PPABST,                         &
                         NCCN, NIFN, NIMM,                               &
                         PTHM, PTHT, PRT, PSVT, PW_NU,                   &
@@ -122,13 +128,17 @@ IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
+INTEGER,                  INTENT(IN)    :: KKA   !near ground array index  
+INTEGER,                  INTENT(IN)    :: KKU   !uppest atmosphere array index
+INTEGER,                  INTENT(IN)    :: KKL   !vert. levels type 1=MNH -1=ARO
+!
 REAL,                     INTENT(IN)    :: PTSTEP     ! Time step
 TYPE(TFILEDATA),          INTENT(IN)    :: TPFILE     ! Output file
 LOGICAL,                  INTENT(IN)    :: OCLOSE_OUT ! Conditional closure of output
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRHODREF   ! Reference density
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PEXNREF    ! Reference Exner function
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PZZ        ! Layer thikness (m)
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PDZZ       ! Layer thikness (m)
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRHODJ     ! Dry density * Jacobian
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PPABSM     ! absolute pressure at t
@@ -292,7 +302,6 @@ INTEGER                                                 :: INB_ITER_MAX
 ! domain size and levels (AROME compatibility)
 INTEGER :: KRR
 INTEGER :: IIB, IIE, IIT, IJB, IJE, IJT, IKB, IKE, IKT, IKTB, IKTE
-INTEGER :: KKA, KKU, KKL
 ! loops and packing
 INTEGER :: II, IPACK
 INTEGER, DIMENSION(:), ALLOCATABLE :: I1, I2, I3
@@ -310,6 +319,22 @@ LOGICAL, DIMENSION(SIZE(PRT,1),SIZE(PRT,2))          :: GDEP
 !*       0.     Init
 !               ----
 !
+!
+IIB=1+JPHEXT      ! first physical point in i
+IIT=SIZE(PDZZ,1)  ! total number of points in i
+IIE=IIT - JPHEXT  ! last physical point in i
+!
+IJB=1+JPHEXT      ! first physical point in j
+IJT=SIZE(PDZZ,2)  ! total number of points in j
+IJE=IJT - JPHEXT  ! last physical point in j
+!
+IKB=KKA+JPVEXT*KKL ! near ground physical point
+IKE=KKU-JPVEXT*KKL ! near TOA physical point
+IKT=SIZE(PDZZ,3)   ! total number of points in k
+!
+IKTB=1+JPVEXT      ! first index for a physical point in k
+IKTE=IKT-JPVEXT    ! last index for a physical point in k
+!
 ZTHS(:,:,:) = PTHS(:,:,:)
 ZTHT(:,:,:) = PTHS(:,:,:) * PTSTEP
 ZRVT(:,:,:) = 0.
@@ -550,22 +575,28 @@ END IF
 !
 ZRT_SUM = (ZRVS + ZRCS + ZRRS + ZRIS + ZRSS + ZRGS + ZRHS)*PTSTEP
 ZCPT    = XCPD + (XCPV * ZRVS + XCL * (ZRCS + ZRRS) + XCI * (ZRIS + ZRSS + ZRGS + ZRHS))*PTSTEP
-IF (LWARM .AND. LSEDC) CALL LIMA_SEDIMENTATION('L', 2, 2, 1, PTSTEP, PZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRCS, ZCCS, PINPRC)
+IF (LWARM .AND. LSEDC) CALL LIMA_SEDIMENTATION(IIB, IIE, IIT, IJB, IJE, IJT, IKB, IKE, IKTB, IKTE, IKT, KKL, &
+                                               'L', 2, 2, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRCS, ZCCS, PINPRC)
 ZRT_SUM = (ZRVS + ZRCS + ZRRS + ZRIS + ZRSS + ZRGS + ZRHS)*PTSTEP
 ZCPT    = XCPD + (XCPV * ZRVS + XCL * (ZRCS + ZRRS) + XCI * (ZRIS + ZRSS + ZRGS + ZRHS))*PTSTEP
-IF (LWARM .AND. LRAIN) CALL LIMA_SEDIMENTATION('L', 2, 3, 1, PTSTEP, PZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRRS, ZCRS, PINPRR)
+IF (LWARM .AND. LRAIN) CALL LIMA_SEDIMENTATION(IIB, IIE, IIT, IJB, IJE, IJT, IKB, IKE, IKTB, IKTE, IKT, KKL, &
+                                               'L', 2, 3, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRRS, ZCRS, PINPRR)
 ZRT_SUM = (ZRVS + ZRCS + ZRRS + ZRIS + ZRSS + ZRGS + ZRHS)*PTSTEP
 ZCPT    = XCPD + (XCPV * ZRVS + XCL * (ZRCS + ZRRS) + XCI * (ZRIS + ZRSS + ZRGS + ZRHS))*PTSTEP
-IF (LCOLD .AND. LSEDI) CALL LIMA_SEDIMENTATION('I', 2, 4, 1, PTSTEP, PZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRIS, ZCIS, ZW2D)
+IF (LCOLD .AND. LSEDI) CALL LIMA_SEDIMENTATION(IIB, IIE, IIT, IJB, IJE, IJT, IKB, IKE, IKTB, IKTE, IKT, KKL, &
+                                               'I', 2, 4, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRIS, ZCIS, ZW2D)
 ZRT_SUM = (ZRVS + ZRCS + ZRRS + ZRIS + ZRSS + ZRGS + ZRHS)*PTSTEP
 ZCPT    = XCPD + (XCPV * ZRVS + XCL * (ZRCS + ZRRS) + XCI * (ZRIS + ZRSS + ZRGS + ZRHS))*PTSTEP
-IF (LCOLD .AND. LSNOW) CALL LIMA_SEDIMENTATION('I', 1, 5, 1, PTSTEP, PZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRSS, ZW3D, PINPRS)
+IF (LCOLD .AND. LSNOW) CALL LIMA_SEDIMENTATION(IIB, IIE, IIT, IJB, IJE, IJT, IKB, IKE, IKTB, IKTE, IKT, KKL, &
+                                               'I', 1, 5, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRSS, ZW3D, PINPRS)
 ZRT_SUM = (ZRVS + ZRCS + ZRRS + ZRIS + ZRSS + ZRGS + ZRHS)*PTSTEP
 ZCPT    = XCPD + (XCPV * ZRVS + XCL * (ZRCS + ZRRS) + XCI * (ZRIS + ZRSS + ZRGS + ZRHS))*PTSTEP
-IF (LCOLD .AND. LSNOW) CALL LIMA_SEDIMENTATION('I', 1, 6, 1, PTSTEP, PZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRGS, ZW3D, PINPRG)
+IF (LCOLD .AND. LSNOW) CALL LIMA_SEDIMENTATION(IIB, IIE, IIT, IJB, IJE, IJT, IKB, IKE, IKTB, IKTE, IKT, KKL, &
+                                               'I', 1, 6, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRGS, ZW3D, PINPRG)
 ZRT_SUM = (ZRVS + ZRCS + ZRRS + ZRIS + ZRSS + ZRGS + ZRHS)*PTSTEP
 ZCPT    = XCPD + (XCPV * ZRVS + XCL * (ZRCS + ZRRS) + XCI * (ZRIS + ZRSS + ZRGS + ZRHS))*PTSTEP
-IF (LCOLD .AND. LHAIL) CALL LIMA_SEDIMENTATION('I', 1, 7, 1, PTSTEP, PZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRHS, ZW3D, PINPRH)
+IF (LCOLD .AND. LHAIL) CALL LIMA_SEDIMENTATION(IIB, IIE, IIT, IJB, IJE, IJT, IKB, IKE, IKTB, IKTE, IKT, KKL, &
+                                               'I', 1, 7, 1, PTSTEP, PDZZ, PRHODREF, PPABST, ZT, ZRT_SUM, ZCPT, ZRHS, ZW3D, PINPRH)
 !
 ZTHS(:,:,:) = ZT(:,:,:) / ZEXN(:,:,:) * ZINV_TSTEP
 !
@@ -591,19 +622,21 @@ END IF
 IF (LWARM .AND. LDEPOC) THEN
   PINDEP(:,:)=0.
   GDEP(:,:) = .FALSE.
-  GDEP(:,:) =    ZRCS(:,:,2) >0 .AND. ZCCS(:,:,2) >0
+  GDEP(:,:) =    ZRCS(:,:,IKB) >0 .AND. ZCCS(:,:,IKB) >0
   WHERE (GDEP)
-     ZRCS(:,:,2) = ZRCS(:,:,2) - XVDEPOC * ZRCT(:,:,2) / ( PZZ(:,:,3) - PZZ(:,:,2))
-     ZCCS(:,:,2) = ZCCS(:,:,2) - XVDEPOC * ZCCT(:,:,2) / ( PZZ(:,:,3) - PZZ(:,:,2))
-     PINPRC(:,:) = PINPRC(:,:) + XVDEPOC * ZRCT(:,:,2) * PRHODREF(:,:,2) /XRHOLW
-     PINDEP(:,:) = XVDEPOC * ZRCT(:,:,2) *  PRHODREF(:,:,2) /XRHOLW
+     ZRCS(:,:,IKB) = ZRCS(:,:,IKB) - XVDEPOC * ZRCT(:,:,IKB) / PDZZ(:,:,IKB)
+     ZCCS(:,:,IKB) = ZCCS(:,:,IKB) - XVDEPOC * ZCCT(:,:,IKB) / PDZZ(:,:,IKB)
+     PINPRC(:,:) = PINPRC(:,:) + XVDEPOC * ZRCT(:,:,IKB) * PRHODREF(:,:,IKB) /XRHOLW
+     PINDEP(:,:) = XVDEPOC * ZRCT(:,:,IKB) *  PRHODREF(:,:,IKB) /XRHOLW
   END WHERE
 !
   IF ( LBUDGET_RC ) CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:),7             ,'DEPO_BU_RRC')
   IF ( LBUDGET_SV ) CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'DEPO_BU_RSV') 
 END IF
 !
-! 
+!
+Z_RR_CVRC(:,:,:) = 0.
+Z_CR_CVRC(:,:,:) = 0.
 IF (LWARM .AND. LRAIN) THEN
    CALL LIMA_DROPS_TO_DROPLETS_CONV(PRHODREF, ZRCS*PTSTEP, ZRRS*PTSTEP, ZCCS*PTSTEP, ZCRS*PTSTEP, &
                                     Z_RR_CVRC, Z_CR_CVRC)
@@ -676,26 +709,6 @@ ZTHS(:,:,:) = ZTHT(:,:,:) *ZINV_TSTEP
 ZT(:,:,:)   = ZTHT(:,:,:) * ZEXN(:,:,:)
 !
 !
-!*       1.     PREPARE COMPUTATIONS
-!               -----------------------
-!
-!
-KKA=1
-KKU=SIZE(PZZ,3)
-KKL=1
-!
-IIB=1+JPHEXT
-IIE=SIZE(PZZ,1) - JPHEXT
-IIT=SIZE(PZZ,1)
-IJB=1+JPHEXT
-IJE=SIZE(PZZ,2) - JPHEXT
-IJT=SIZE(PZZ,2)
-IKB=KKA+JPVEXT*KKL
-IKE=KKU-JPVEXT*KKL
-IKT=SIZE(PZZ,3)
-IKTB=1+JPVEXT
-IKTE=IKT-JPVEXT
-!
 !-------------------------------------------------------------------------------
 !
 !*       2.     LOOP
diff --git a/src/MNH/lima_adjust.f90 b/src/MNH/lima_adjust.f90
index 1135cc8ae5ff18a4fd60af015caa0f59992c7547..7d20f4f446f510bc6e5d93eae49f61e0d7642fa4 100644
--- a/src/MNH/lima_adjust.f90
+++ b/src/MNH/lima_adjust.f90
@@ -1109,7 +1109,8 @@ DEALLOCATE(ZCTMIN)
 !*       5.2    compute the cloud fraction PCLDFR (binary !!!!!!!)
 !
 IF ( .NOT. OSUBG_COND ) THEN
-   WHERE (PRCS(:,:,:) + PRIS(:,:,:) + PRSS(:,:,:) > 1.E-12 / ZDT)
+!  WHERE (PRCS(:,:,:) + PRIS(:,:,:) + PRSS(:,:,:) > 1.E-12 / ZDT)
+   WHERE (PRCS(:,:,:) + PRIS(:,:,:)  > 1.E-12 / ZDT)
       ZW(:,:,:)  = 1.
    ELSEWHERE
       ZW(:,:,:)  = 0. 
diff --git a/src/MNH/lima_ccn_activation.f90 b/src/MNH/lima_ccn_activation.f90
index fd2a2282a64e0d82bf6f6cd8db7b09e514c09566..884c98379005ec3379a966730f7c275d3ac1fbc2 100644
--- a/src/MNH/lima_ccn_activation.f90
+++ b/src/MNH/lima_ccn_activation.f90
@@ -472,7 +472,7 @@ IF ( OCLOSE_OUT ) THEN
   TZFIELD%CMNHNAME   ='NACT'
   TZFIELD%CSTDNAME   = ''
   TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
-  TZFIELD%CUNITS     = 'kg-1'
+  TZFIELD%CUNITS     = '/kg'
   TZFIELD%CDIR       = 'XY'
   TZFIELD%CCOMMENT   = 'X_Y_Z_NACT'
   TZFIELD%NGRID      = 1
diff --git a/src/MNH/lima_sedimentation.f90 b/src/MNH/lima_sedimentation.f90
index b90de134a2e20531b2dd64091ca2ebcdef10a036..ab0ebebcacad806e971b9dd53cf218122dc3590c 100644
--- a/src/MNH/lima_sedimentation.f90
+++ b/src/MNH/lima_sedimentation.f90
@@ -7,15 +7,17 @@
 !      ###################################
 !
 INTERFACE
-      SUBROUTINE LIMA_SEDIMENTATION (HPHASE, KMOMENTS, KID, KSPLITG, PTSTEP, PZZ, PRHODREF,           &
+      SUBROUTINE LIMA_SEDIMENTATION (KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKTB, KKTE, KKT, KKL, &
+                                     HPHASE, KMOMENTS, KID, KSPLITG, PTSTEP, PDZZ, PRHODREF,       &
                                      PPABST, PT, PRT_SUM, PCPT, PRS, PCS, PINPR )
 !
+INTEGER,                  INTENT(IN)    :: KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKTB, KKTE, KKT, KKL
 CHARACTER(1),             INTENT(IN)    :: HPHASE    ! Liquid or solid hydrometeors
 INTEGER,                  INTENT(IN)    :: KMOMENTS  ! Number of moments 
 INTEGER,                  INTENT(IN)    :: KID       ! Hydrometeor ID
 INTEGER,                  INTENT(IN)    :: KSPLITG   !  
 REAL,                     INTENT(IN)    :: PTSTEP    ! Time step          
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PZZ       ! Height (z)
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PDZZ      ! Height (z)
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRHODREF  ! Reference density
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PPABST    ! abs. pressure at time t
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PT        ! Temperature
@@ -31,7 +33,8 @@ END MODULE MODI_LIMA_SEDIMENTATION
 !
 !
 !     ######################################################################
-      SUBROUTINE LIMA_SEDIMENTATION (HPHASE, KMOMENTS, KID, KSPLITG, PTSTEP, PZZ, PRHODREF,           &
+      SUBROUTINE LIMA_SEDIMENTATION (KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKTB, KKTE, KKT, KKL, &
+                                     HPHASE, KMOMENTS, KID, KSPLITG, PTSTEP, PDZZ, PRHODREF,       &
                                      PPABST, PT, PRT_SUM, PCPT, PRS, PCS, PINPR )
 !     ######################################################################
 !
@@ -78,12 +81,13 @@ IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
+INTEGER,                  INTENT(IN)    :: KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKTB, KKTE, KKT, KKL
 CHARACTER(1),             INTENT(IN)    :: HPHASE    ! Liquid or solid hydrometeors
 INTEGER,                  INTENT(IN)    :: KMOMENTS  ! Number of moments 
 INTEGER,                  INTENT(IN)    :: KID       ! Hydrometeor ID
 INTEGER,                  INTENT(IN)    :: KSPLITG   !  
 REAL,                     INTENT(IN)    :: PTSTEP    ! Time step          
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PZZ       ! Height (z)
+REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PDZZ      ! Height (z)
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PRHODREF  ! Reference density
 REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PPABST    ! abs. pressure at time t
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PT        ! Temperature
@@ -96,7 +100,6 @@ REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINPR     ! Instant precip rate
 !*       0.2   Declarations of local variables :
 !
 INTEGER :: JK, JL, JN                     ! Loop index
-INTEGER :: IIB, IIE, IJB, IJE, IKB, IKE   ! Physical domain
 INTEGER :: ISEDIM                         ! Case number of sedimentation
 !
 LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) &
@@ -127,15 +130,6 @@ REAL    :: ZC                             ! Cpl or Cpi
 !
 !-------------------------------------------------------------------------------
 !
-! Physical domain
-!
-IIB=1+JPHEXT
-IIE=SIZE(PZZ,1) - JPHEXT
-IJB=1+JPHEXT
-IJE=SIZE(PZZ,2) - JPHEXT
-IKB=1+JPVEXT
-IKE=SIZE(PZZ,3) - JPVEXT
-!
 ! Time splitting
 !
 ZTSPLITG= PTSTEP / FLOAT(NSPLITSED(KID))
@@ -145,10 +139,9 @@ PINPR(:,:) = 0.
 !
 PRS(:,:,:) = PRS(:,:,:) * PTSTEP
 IF (KMOMENTS==2) PCS(:,:,:) = PCS(:,:,:) * PTSTEP
-DO JK = IKB , IKE
-   ZW(:,:,JK)=ZTSPLITG/(PZZ(:,:,JK+1)-PZZ(:,:,JK))
+DO JK = KKTB , KKTE
+   ZW(:,:,JK)=ZTSPLITG/PDZZ(:,:,JK)
 END DO
-ZW(:,:,IKE+1) = ZW(:,:,IKE)
 !
 IF (HPHASE=='L') ZC=XCL
 IF (HPHASE=='I') ZC=XCI
@@ -160,7 +153,7 @@ IF (HPHASE=='I') ZC=XCI
 DO JN = 1 ,  NSPLITSED(KID)
   ! Computation only where enough ice, snow, graupel or hail
    GSEDIM(:,:,:) = .FALSE.
-   GSEDIM(IIB:IIE,IJB:IJE,IKB:IKE) = PRS(IIB:IIE,IJB:IJE,IKB:IKE)>XRTMIN(KID)
+   GSEDIM(KIB:KIE,KJB:KJE,KKTB:KKTE) = PRS(KIB:KIE,KJB:KJE,KKTB:KKTE)>XRTMIN(KID)
    IF (KMOMENTS==2)  GSEDIM(:,:,:) = GSEDIM(:,:,:) .AND. PCS(:,:,:)>XCTMIN(KID)
    ISEDIM = COUNTJV( GSEDIM(:,:,:),I1(:),I2(:),I3(:))
 !
@@ -200,23 +193,25 @@ DO JN = 1 ,  NSPLITSED(KID)
       END IF
 
       ZWSEDR(:,:,:) = UNPACK( ZZW(:),MASK=GSEDIM(:,:,:),FIELD=0.0 )
-      ZWSEDR(:,:,IKB:IKE) = MIN( ZWSEDR(:,:,IKB:IKE), PRS(:,:,IKB:IKE) * PRHODREF(:,:,IKB:IKE) / ZW(:,:,IKB:IKE) )
-      IF (KMOMENTS==2) ZWSEDC(:,:,:) = UNPACK( ZZX(:),MASK=GSEDIM(:,:,:),FIELD=0.0 )
-      IF (KMOMENTS==2) ZWSEDC(:,:,IKB:IKE) = MIN( ZWSEDC(:,:,IKB:IKE), PCS(:,:,IKB:IKE) * PRHODREF(:,:,IKB:IKE) / ZW(:,:,IKB:IKE) )
+      ZWSEDR(:,:,KKTB:KKTE) = MIN( ZWSEDR(:,:,KKTB:KKTE), PRS(:,:,KKTB:KKTE) * PRHODREF(:,:,KKTB:KKTE) / ZW(:,:,KKTB:KKTE) )
+      IF (KMOMENTS==2) THEN
+         ZWSEDC(:,:,:) = UNPACK( ZZX(:),MASK=GSEDIM(:,:,:),FIELD=0.0 )
+         ZWSEDC(:,:,KKTB:KKTE) = MIN( ZWSEDC(:,:,KKTB:KKTE), PCS(:,:,KKTB:KKTE) * PRHODREF(:,:,KKTB:KKTE) / ZW(:,:,KKTB:KKTE) )
+      END IF
       
-      DO JK = IKB , IKE
+      DO JK = KKTB , KKTE
          PRS(:,:,JK) = PRS(:,:,JK) + ZW(:,:,JK)*    &
-              (ZWSEDR(:,:,JK+1)-ZWSEDR(:,:,JK))/PRHODREF(:,:,JK)
+              (ZWSEDR(:,:,JK+KKL)-ZWSEDR(:,:,JK))/PRHODREF(:,:,JK)
          IF (KMOMENTS==2) PCS(:,:,JK) = PCS(:,:,JK) + ZW(:,:,JK)*    &
-              (ZWSEDC(:,:,JK+1)-ZWSEDC(:,:,JK))/PRHODREF(:,:,JK)
+              (ZWSEDC(:,:,JK+KKL)-ZWSEDC(:,:,JK))/PRHODREF(:,:,JK)
          ! Heat transport
-         PRT_SUM(:,:,JK-1) = PRT_SUM(:,:,JK-1) + ZW(:,:,JK-1)*ZWSEDR(:,:,JK)/PRHODREF(:,:,JK-1)
+         PRT_SUM(:,:,JK-KKL) = PRT_SUM(:,:,JK-KKL) + ZW(:,:,JK-KKL)*ZWSEDR(:,:,JK)/PRHODREF(:,:,JK-KKL)
          PRT_SUM(:,:,JK) = PRT_SUM(:,:,JK) - ZW(:,:,JK)*ZWSEDR(:,:,JK)/PRHODREF(:,:,JK)
-         PCPT(:,:,JK-1) = PCPT(:,:,JK-1) + ZC * (ZW(:,:,JK-1)*ZWSEDR(:,:,JK)/PRHODREF(:,:,JK-1))
+         PCPT(:,:,JK-KKL) = PCPT(:,:,JK-KKL) + ZC * (ZW(:,:,JK-KKL)*ZWSEDR(:,:,JK)/PRHODREF(:,:,JK-KKL))
          PCPT(:,:,JK) = PCPT(:,:,JK) - ZC * (ZW(:,:,JK)*ZWSEDR(:,:,JK)/PRHODREF(:,:,JK))
-         ZWDT(:,:,JK) =(PRHODREF(:,:,JK+1)*(1.+PRT_SUM(:,:,JK))*PCPT(:,:,JK)*PT(:,:,JK) + &
-              ZW(:,:,JK)*ZWSEDR(:,:,JK+1)*ZC*PT(:,:,JK+1)) / &
-              (PRHODREF(:,:,JK+1)*(1.+PRT_SUM(:,:,JK))*PCPT(:,:,JK) + ZW(:,:,JK)*ZWSEDR(:,:,JK+1)*ZC)
+         ZWDT(:,:,JK) =(PRHODREF(:,:,JK+KKL)*(1.+PRT_SUM(:,:,JK))*PCPT(:,:,JK)*PT(:,:,JK) + &
+              ZW(:,:,JK)*ZWSEDR(:,:,JK+1)*ZC*PT(:,:,JK+KKL)) / &
+              (PRHODREF(:,:,JK+KKL)*(1.+PRT_SUM(:,:,JK))*PCPT(:,:,JK) + ZW(:,:,JK)*ZWSEDR(:,:,JK+KKL)*ZC)
          ZWDT(:,:,JK) = ZWDT(:,:,JK) - PT(:,:,JK)
       END DO
       DEALLOCATE(ZRHODREF)
@@ -230,7 +225,7 @@ DO JN = 1 ,  NSPLITSED(KID)
       DEALLOCATE(ZZX)
       DEALLOCATE(ZZY)
       !      
-      PINPR(:,:) = PINPR(:,:) + ZWSEDR(:,:,IKB)/XRHOLW/NSPLITSED(KID)                          ! in m/s
+      PINPR(:,:) = PINPR(:,:) + ZWSEDR(:,:,KKB)/XRHOLW/NSPLITSED(KID)                          ! in m/s
       PT(:,:,:) = PT(:,:,:) + ZWDT(:,:,:)
       
    END IF
diff --git a/src/MNH/lima_tendencies.f90 b/src/MNH/lima_tendencies.f90
index d9b5491ff89e69aaf6c7cdcefb8a519c993f9154..cb1cf7d003382937728536acfc5b23233af8f2d1 100644
--- a/src/MNH/lima_tendencies.f90
+++ b/src/MNH/lima_tendencies.f90
@@ -487,7 +487,7 @@ IF (LCOLD .AND. LWARM) THEN
                                     PA_TH, PA_RC, PA_CC, PA_RI, PA_CI  )
 END IF
 !
-IF (LWARM) THEN
+IF (LWARM .AND. LRAIN) THEN
    CALL LIMA_DROPLETS_SELF_COLLECTION (LDCOMPUTE,    &
                                        PRHODREF,     &
                                        PCCT, ZLBDC3, &
diff --git a/src/MNH/lima_warm_coal.f90 b/src/MNH/lima_warm_coal.f90
index 28a624e6bf4f400f8b4be72763c34502cae2a81b..4623cd61eb057f55a9f0c64c765a358a234f554f 100644
--- a/src/MNH/lima_warm_coal.f90
+++ b/src/MNH/lima_warm_coal.f90
@@ -242,6 +242,7 @@ IF( IMICRO >= 1 ) THEN
 !
 !-------------------------------------------------------------------------------
 !
+IF (LRAIN) THEN
 !
 !*       2. Self-collection of cloud droplets    
 !   	 ------------------------------------
@@ -270,7 +271,6 @@ IF( IMICRO >= 1 ) THEN
 !   	 ----------------------------------------------------------------------
 !
 !
-IF (LRAIN) THEN
 !
    ZZW2(:) = 0.0
    ZZW1(:) = 0.0
@@ -472,7 +472,7 @@ ELSE
 !        ------------------------
 !
 !
-   IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'SELF_BU_RSV')
+   IF (LBUDGET_SV .AND. LRAIN) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'SELF_BU_RSV')
 !
    IF (LBUDGET_RC .AND. LRAIN) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'AUTO_BU_RRC')
    IF (LBUDGET_RR .AND. LRAIN) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'AUTO_BU_RRR')
diff --git a/src/MNH/lima_warm_nucl.f90 b/src/MNH/lima_warm_nucl.f90
index 046ceeaeadb321805e62cc3c3353ae138d65cb62..66b235e485fe9105fbbff74cb47cca091c47080b 100644
--- a/src/MNH/lima_warm_nucl.f90
+++ b/src/MNH/lima_warm_nucl.f90
@@ -540,7 +540,7 @@ IF ( OCLOSE_OUT ) THEN
   TZFIELD%CMNHNAME   ='NACT'
   TZFIELD%CSTDNAME   = ''
   TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
-  TZFIELD%CUNITS     = 'kg-1'
+  TZFIELD%CUNITS     = '/kg'
   TZFIELD%CDIR       = 'XY'
   TZFIELD%CCOMMENT   = 'X_Y_Z_NACT'
   TZFIELD%NGRID      = 1
diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90
index 538189ea081857baa01f40db7ab69064b42ae68e..56df1c2a437417e575deeb7e7f2f7d3004a89eca 100644
--- a/src/MNH/read_exsegn.f90
+++ b/src/MNH/read_exsegn.f90
@@ -704,7 +704,7 @@ CALL TEST_NAM_VAR(ILUOUT,'CLBCY(2)',CLBCY(2),'CYCL','WALL','OPEN')
 CALL TEST_NAM_VAR(ILUOUT,'CTURBDIM',CTURBDIM,'1DIM','3DIM')
 CALL TEST_NAM_VAR(ILUOUT,'CTURBLEN',CTURBLEN,'DELT','BL89','RM17','DEAR','BLKR')
 CALL TEST_NAM_VAR(ILUOUT,'CTOM',CTOM,'NONE','TM06')
-CALL TEST_NAM_VAR(ILUOUT,'CSUBG_AUCV',CSUBG_AUCV,'NONE','CLFR','SIGM')
+CALL TEST_NAM_VAR(ILUOUT,'CSUBG_AUCV',CSUBG_AUCV,'NONE','CLFR','SIGM','PDF')
 !
 CALL TEST_NAM_VAR(ILUOUT,'CCH_TDISCRETIZATION',CCH_TDISCRETIZATION, &
                  'SPLIT     ','CENTER    ','LAGGED    ')
diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90
index 1cd5eb370d39a20f24a5fde7a53393ffd7a62ad7..20c64016444a51f87fc25a0fb66d3c344c2c1681 100644
--- a/src/MNH/resolved_cloud.f90
+++ b/src/MNH/resolved_cloud.f90
@@ -715,7 +715,7 @@ SELECT CASE ( HCLOUD )
    CASE('LIMA')   
 ! Correction where rc<0 or Nc<0
       IF (OWARM) THEN
-         WHERE (PRS(:,:,:,2) < YRTMIN(2)/PTSTEP .OR. ZSVS(:,:,:,NSV_LIMA_NC) < YCTMIN(2)/PTSTEP)
+         WHERE (PRS(:,:,:,2) < 0. .OR. ZSVS(:,:,:,NSV_LIMA_NC) < 0.)
             PRS(:,:,:,1) = PRS(:,:,:,1) + PRS(:,:,:,2)
             PTHS(:,:,:) = PTHS(:,:,:) - PRS(:,:,:,2) * ZLV(:,:,:) /  &
                  ZCPH(:,:,:) / ZEXN(:,:,:)
@@ -1052,24 +1052,29 @@ SELECT CASE ( HCLOUD )
 !
   CASE ('LIMA')
      !
+    DO JK=IKB,IKE
+      ZDZZ(:,:,JK)=PZZ(:,:,JK+1)-PZZ(:,:,JK)    
+    ENDDO
+    ZZZ = MZF(1,IKU,1, PZZ )
      IF (LPTSPLIT) THEN
-           CALL LIMA (PTSTEP, TPFILE, OCLOSE_OUT,                    &
-                      PRHODREF, PEXNREF, PZZ,                         &
-                      PRHODJ, PPABSM, PPABST,                         &
-                      NMOD_CCN, NMOD_IFN, NMOD_IMM,                   &
-                      PTHM, PTHT, PRT, ZSVT, PW_ACT,                  &
-                      PTHS, PRS, ZSVS,                                &
-                      PINPRC, PINDEP, PINPRR, ZINPRI, PINPRS, PINPRG, PINPRH, &
-                      PEVAP3D                                         )
+        CALL LIMA (1, IKU, 1,                                              &
+                   PTSTEP, TPFILE, OCLOSE_OUT,                             &
+                   PRHODREF, PEXNREF, ZDZZ,                                &
+                   PRHODJ, PPABSM, PPABST,                                 &
+                   NMOD_CCN, NMOD_IFN, NMOD_IMM,                           &
+                   PTHM, PTHT, PRT, ZSVT, PW_ACT,                          &
+                   PTHS, PRS, ZSVS,                                        &
+                   PINPRC, PINDEP, PINPRR, ZINPRI, PINPRS, PINPRG, PINPRH, &
+                   PEVAP3D                                         )
      ELSE
 
         IF (OWARM) CALL LIMA_WARM(OACTIT, OSEDC, ORAIN, KSPLITR, PTSTEP, KMI,   &
-                                  TPFILE, OCLOSE_OUT, KRR, PZZ, PRHODJ,&
+                                  TPFILE, OCLOSE_OUT, KRR, PZZ, PRHODJ,         &
                                   PRHODREF, PEXNREF, PW_ACT, PPABSM, PPABST,    &
                                   PTHM, PRCM,                                   &
                                   PTHT, PRT, ZSVT,                              &
                                   PTHS, PRS, ZSVS,                              &
-                                  PINPRC, PINPRR, PINDEP, PINPRR3D, PEVAP3D    )
+                                  PINPRC, PINPRR, PINDEP, PINPRR3D, PEVAP3D     )
 !
         IF (LCOLD) CALL LIMA_COLD(OSEDI, OHHONI, KSPLITG, PTSTEP, KMI,               &
                                   KRR, PZZ, PRHODJ,                                  &
@@ -1080,20 +1085,20 @@ SELECT CASE ( HCLOUD )
                                   PINPRS, PINPRG, PINPRH)
 !
         IF (OWARM .AND. LCOLD) CALL LIMA_MIXED(OSEDI, OHHONI, KSPLITG, PTSTEP, KMI,    &
-                                               KRR, PZZ, PRHODJ,                             &
-                                               PRHODREF, PEXNREF, PPABST, PW_ACT,            &
-                                               PTHM, PPABSM,                                 &
-                                               PTHT, PRT, ZSVT,                              &
-                                               PTHS, PRS, ZSVS                               )
+                                               KRR, PZZ, PRHODJ,                       &
+                                               PRHODREF, PEXNREF, PPABST, PW_ACT,      &
+                                               PTHM, PPABSM,                           &
+                                               PTHT, PRT, ZSVT,                        &
+                                               PTHS, PRS, ZSVS                         )
      ENDIF
 !
 !*       12.2   Perform the saturation adjustment
 !
-    CALL LIMA_ADJUST(KRR, KMI, TPFILE, HRAD,                  &
-                     HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP,         &
-                     PRHODREF, PRHODJ, PEXNREF, PPABST, PSIGS, PPABST, &
-                     PRT, PRS, ZSVT, ZSVS,                             &
-                     PTHS, PSRCS, PCLDFR                               )
+     CALL LIMA_ADJUST(KRR, KMI, TPFILE, HRAD,                           &
+                      HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP,         &
+                      PRHODREF, PRHODJ, PEXNREF, PPABST, PSIGS, PPABST, &
+                      PRT, PRS, ZSVT, ZSVS,                             &
+                      PTHS, PSRCS, PCLDFR                               )
 !
 END SELECT
 !