From 07a881cbc40b3ad3de567d85158c375ebea8262c Mon Sep 17 00:00:00 2001
From: Gaelle DELAUTIER <gaelle.delautier@meteo.fr>
Date: Tue, 3 Oct 2017 16:11:51 +0200
Subject: [PATCH] B.Vie 03/10/2017 :correction bug LIMA

---
 src/MNH/lima_cold_hom_nucl.f90         | 17 +++++----
 src/MNH/lima_cold_slow_processes.f90   |  8 ++---
 src/MNH/lima_mixed.f90                 |  2 +-
 src/MNH/lima_mixed_fast_processes.f90  | 34 +++++++++---------
 src/MNH/lima_mixed_slow_processes.f90  | 12 ++++---
 src/MNH/lima_phillips_integ.f90        | 50 ++++++++++++++++++--------
 src/MNH/lima_phillips_ref_spectrum.f90 | 14 +++++---
 src/MNH/lima_warm.f90                  | 34 +++++++++++++++---
 src/MNH/lima_warm_evap.f90             |  2 +-
 src/MNH/lima_warm_nucl.f90             |  9 ++---
 src/MNH/modd_param_lima.f90            |  5 +++
 src/MNH/modn_param_lima.f90            |  2 +-
 src/MNH/read_exsegn.f90                |  7 ++--
 src/MNH/set_conc_lima.f90              |  8 +++--
 14 files changed, 134 insertions(+), 70 deletions(-)

diff --git a/src/MNH/lima_cold_hom_nucl.f90 b/src/MNH/lima_cold_hom_nucl.f90
index fb50b8ace..d89582e17 100644
--- a/src/MNH/lima_cold_hom_nucl.f90
+++ b/src/MNH/lima_cold_hom_nucl.f90
@@ -390,7 +390,7 @@ IF (INEGT.GT.0) THEN
       ALLOCATE(ZTAU(INEGT))
       ALLOCATE(ZBFACT(INEGT))
 !
-      WHERE( (ZZT(:)<XTT-35.0) .AND. (ZSI(:)>ZZY(:)) .AND. (ZTHS(:)<-1.0E-6) )
+      WHERE( (ZZT(:)<XTT-35.0) .AND. (ZSI(:)>ZZY(:)) )
             ZLS(:)   = XLSTT+(XCPV-XCI)*ZTCELSIUS(:)          ! Ls
 !
             ZPSI1(:) = ZZY(:) * (XG/(XRD*ZZT(:)))*(ZEPS*ZLS(:)/(XCPD*ZZT(:))-1.)
@@ -430,7 +430,7 @@ IF (INEGT.GT.0) THEN
         PNFS(:,:,:,JMOD_CCN)=UNPACK( ZNFS(:,JMOD_CCN), MASK=GNEGT(:,:,:),FIELD=ZW(:,:,:))
     END DO
       ZZNHS(:)    = ZZNHS(:) + ZZX(:)
-      ZNHS(:,:,:) = ZNHS(:,:,:) + UNPACK( ZZNHS(:), MASK=GNEGT(:,:,:),FIELD=0.0)
+      ZNHS(:,:,:) = UNPACK( ZZNHS(:), MASK=GNEGT(:,:,:),FIELD=0.0)
       PNHS(:,:,:) = ZNHS(:,:,:)
 !
       DEALLOCATE(ZFREECCN)
@@ -468,6 +468,9 @@ IF (INEGT.GT.0) THEN
              CALL BUDGET ( UNPACK(ZNFS(:,JL),MASK=GNEGT(:,:,:),FIELD=PNFS(:,:,:,JL))*PRHODJ(:,:,:),&
                   12+NSV_LIMA_CCN_FREE+JL-1,'HONH_BU_RSV') 
           END DO
+          CALL BUDGET ( UNPACK(ZZNHS(:),MASK=GNEGT(:,:,:),FIELD=ZNHS(:,:,:))*PRHODJ(:,:,:),&
+                  12+NSV_LIMA_HOM_HAZE,'HONH_BU_RSV') 
+
        END IF
      END IF
    END IF
@@ -534,7 +537,7 @@ IF (INEGT.GT.0) THEN
 !  Compute the drop homogeneous nucleation source: RRHONG
 !
    ZZW(:) = 0.0
-   WHERE( (ZZT(:)<XTT-35.0) .AND. (ZRRS(:)>0.) )
+   WHERE( (ZZT(:)<XTT-35.0) .AND. (ZRRS(:)>XRTMIN(3)/PTSTEP) )
       ZZW(:)  = ZRRS(:) ! Instantaneous freezing of the raindrops
       ZRRS(:) = ZRRS(:) - ZZW(:)
       ZRGS(:) = ZRGS(:) + ZZW(:)
@@ -669,11 +672,13 @@ ELSE
        ZW(:,:,:) = PCIS(:,:,:)*PRHODJ(:,:,:)
        IF( OHHONI ) CALL BUDGET (ZW,12+NSV_LIMA_NI,'HONH_BU_RSV')
        CALL BUDGET (ZW,12+NSV_LIMA_NI,'HONC_BU_RSV')
-       IF (NMOD_CCN.GE.1) THEN
+       IF (NMOD_CCN.GE.1 .AND. OHHONI) THEN
           DO JL=1, NMOD_CCN
-             CALL BUDGET ( UNPACK(ZNFS(:,JL),MASK=GNEGT(:,:,:),FIELD=PNFS(:,:,:,JL))*PRHODJ(:,:,:),&
-                  12+NSV_LIMA_CCN_FREE+JL-1,'HONH_BU_RSV') 
+             ZW(:,:,:) = PNFS(:,:,:,JL)*PRHODJ(:,:,:)
+             CALL BUDGET (ZW,12+NSV_LIMA_CCN_FREE+JL-1,'HONH_BU_RSV') 
           END DO
+          ZW(:,:,:) = ZNHS(:,:,:)*PRHODJ(:,:,:)
+          CALL BUDGET (ZW,12+NSV_LIMA_HOM_HAZE,'HONH_BU_RSV')
        END IF
      END IF
    END IF
diff --git a/src/MNH/lima_cold_slow_processes.f90 b/src/MNH/lima_cold_slow_processes.f90
index bdbb4c64e..20c02872c 100644
--- a/src/MNH/lima_cold_slow_processes.f90
+++ b/src/MNH/lima_cold_slow_processes.f90
@@ -339,7 +339,7 @@ IF( IMICRO >= 1 ) THEN
 !        ----------------------------------------
 !
 !
-      WHERE ( ZRST(:)>0.0 )
+      WHERE ( ZRST(:)>XRTMIN(5) )
          ZLBDAS(:)  = MIN( XLBDAS_MAX,                                           &
                            XLBS*( ZRHODREF(:)*MAX( ZRST(:),XRTMIN(5) ) )**XLBEXS )
       END WHERE
@@ -379,7 +379,7 @@ IF( IMICRO >= 1 ) THEN
 !
 !
       ZZW(:) = 0.0
-      WHERE ( (ZRST(:)>0.0) .AND. (ZRSS(:)>0.0) )
+      WHERE ( (ZRST(:)>XRTMIN(5)) .AND. (ZRSS(:)>ZRTMIN(5)) )
 !Correction BVIE rhodref
 !         ZZW(:) = ( ZSSI(:)/(ZRHODREF(:)*ZAI(:)) ) *                               &
          ZZW(:) = ( ZSSI(:)/(ZAI(:)) ) *                               &
@@ -445,8 +445,8 @@ IF( IMICRO >= 1 ) THEN
 !        ---------------------------------------------------
 !
 !
-      WHERE ( (ZRIT(:)>XRTMIN(4)) .AND. (ZRST(:)>XRTMIN(5)) .AND. (ZRIS(:)>0.0) &
-                                                            .AND. (ZCIS(:)>0.0) )
+      WHERE ( (ZRIT(:)>XRTMIN(4)) .AND. (ZRST(:)>XRTMIN(5)) .AND. (ZRIS(:)>ZRTMIN(4)) &
+                                                            .AND. (ZCIS(:)>ZCTMIN(4)) )
          ZZW1(:,3) = (ZLBDAI(:) / ZLBDAS(:))**3
          ZZW1(:,1) = (ZCIT(:)*(XCCS*ZLBDAS(:)**XCXS)*EXP( XCOLEXIS*(ZZT(:)-XTT) )) &
                                                     / (ZLBDAI(:)**3)
diff --git a/src/MNH/lima_mixed.f90 b/src/MNH/lima_mixed.f90
index e557a1c3f..81452e86a 100644
--- a/src/MNH/lima_mixed.f90
+++ b/src/MNH/lima_mixed.f90
@@ -527,7 +527,7 @@ IF( IMICRO >= 1 ) THEN
 !*       2.     Compute the slow processes involving cloud water and graupel
 !	        ------------------------------------------------------------
 !
-   CALL LIMA_MIXED_SLOW_PROCESSES(ZRHODREF, ZZT, ZSSI,          &
+   CALL LIMA_MIXED_SLOW_PROCESSES(ZRHODREF, ZZT, ZSSI, PTSTEP,  &
                                   ZLSFACT, ZLVFACT, ZAI, ZCJ,   &
                                   ZRGT, ZCIT,                   &
                                   ZRVS, ZRCS, ZRIS, ZRGS, ZTHS, &
diff --git a/src/MNH/lima_mixed_fast_processes.f90 b/src/MNH/lima_mixed_fast_processes.f90
index e7b9d55fe..06058f529 100644
--- a/src/MNH/lima_mixed_fast_processes.f90
+++ b/src/MNH/lima_mixed_fast_processes.f90
@@ -241,7 +241,7 @@ IF (LSNOW) THEN
 !
 ZZW1(:,:) = 0.0
 !
-GRIM(:) = (ZRCT(:)>0.0) .AND. (ZRST(:)>0.0) .AND. (ZRCS(:)>0.0) .AND. (ZZT(:)<XTT)
+GRIM(:) = (ZRCT(:)>XRTMIN(2)) .AND. (ZRST(:)>XRTMIN(5)) .AND. (ZRCS(:)>XRTMIN(2)/PTSTEP) .AND. (ZZT(:)<XTT)
 IGRIM = COUNT( GRIM(:) )
 !
 IF( IGRIM>0 ) THEN
@@ -297,7 +297,7 @@ IF( IGRIM>0 ) THEN
 !        1.1.6  riming-conversion of the large sized aggregates into graupeln
 !
 !
-   WHERE ( GRIM(:) .AND. (ZRSS(:)>0.0) )
+   WHERE ( GRIM(:) .AND. (ZRSS(:)>XRTMIN(5)/PTSTEP) )
       ZZW1(:,2) = MIN( ZRCS(:),                     &
     	           XCRIMSG * ZRCT(:)                & ! RCRIMSG
     	                   *  ZLBDAS(:)**XEXCRIMSG  &
@@ -395,7 +395,7 @@ END IF
 !
 !
 ZZW1(:,2:3) = 0.0
-GACC(:) = (ZRRT(:)>0.0) .AND. (ZRST(:)>0.0) .AND. (ZRRS(:)>0.0) .AND. (ZZT(:)<XTT)
+GACC(:) = (ZRRT(:)>XRTMIN(3)) .AND. (ZRST(:)>XRTMIN(5)) .AND. (ZRRS(:)>XRTMIN(3)/PTSTEP) .AND. (ZZT(:)<XTT)
 IGACC = COUNT( GACC(:) )
 !
 IF( IGACC>0 ) THEN
@@ -485,7 +485,7 @@ IF( IGACC>0 ) THEN
 !        1.3.6  raindrop accretion-conversion of the large sized aggregates
 !               into graupeln
 !
-   WHERE ( GACC(:) .AND. (ZRSS(:)>0.0) )
+   WHERE ( GACC(:) .AND. (ZRSS(:)>XRTMIN(5)/PTSTEP) )
       ZZW1(:,2) = MIN( ZRRS(:),ZZW1(:,2)-ZZW1(:,4) )                  ! RRACCSG
       ZZW1(:,3) = MIN( ZRSS(:),XFSACCRG*ZZW(:)*                     & ! RSACCRG
             ( ZLBDAS(:)**(XCXS-XBS) )*( ZRHODREF(:)**(-XCEXVT-1.) ) &
@@ -531,7 +531,7 @@ END IF
 !
 !
 ZZW(:) = 0.0
-WHERE( (ZRST(:)>0.0) .AND. (ZRSS(:)>0.0) .AND. (ZZT(:)>XTT) )
+WHERE( (ZRST(:)>XRTMIN(5)) .AND. (ZRSS(:)>XRTMIN(5)/PTSTEP) .AND. (ZZT(:)>XTT) )
    ZZW(:) = ZRVT(:)*ZPRES(:)/((XMV/XMD)+ZRVT(:)) ! Vapor pressure
    ZZW(:) =  ZKA(:)*(XTT-ZZT(:)) +                                 &
               ( ZDV(:)*(XLVTT + ( XCPV - XCL ) * ( ZZT(:) - XTT )) &
@@ -577,7 +577,7 @@ END IF ! LSNOW
 !
 !
 ZZW1(:,3:4) = 0.0
-WHERE( (ZRIT(:)>0.0) .AND. (ZRRT(:)>0.0) .AND. (ZRIS(:)>0.0) .AND. (ZRRS(:)>0.0) )
+WHERE( (ZRIT(:)>XRTMIN(4)) .AND. (ZRRT(:)>XRTMIN(3)) .AND. (ZRIS(:)>XRTMIN(4)/PTSTEP) .AND. (ZRRS(:)>XRTMIN(3)/PTSTEP) )
    ZZW1(:,3) = MIN( ZRIS(:),XICFRR * ZRIT(:) * ZCRT(:)          & ! RICFRRG
                                    * ZLBDAR(:)**XEXICFRR        &
                                    * ZRHODREF(:)**(-XCEXVT-1.0) )
@@ -621,8 +621,8 @@ END IF
 !
 !
 ZZW1(:,:) = 0.0
-WHERE( ((ZRCT(:)>0.0) .AND. (ZRGT(:)>0.0) .AND. (ZRCS(:)>0.0)) .OR. &
-       ((ZRIT(:)>0.0) .AND. (ZRGT(:)>0.0) .AND. (ZRIS(:)>0.0))      )
+WHERE( ((ZRCT(:)>XRTMIN(2)) .AND. (ZRGT(:)>XRTMIN(6)) .AND. (ZRCS(:)>XRTMIN(2)/PTSTEP)) .OR. &
+       ((ZRIT(:)>XRTMIN(4)) .AND. (ZRGT(:)>XRTMIN(6)) .AND. (ZRIS(:)>XRTMIN(4)/PTSTEP))      )
    ZZW(:) = ZLBDAG(:)**(XCXG-XDG-2.0) * ZRHODREF(:)**(-XCEXVT)
    ZZW1(:,1) = MIN( ZRCS(:),XFCDRYG * ZRCT(:) * ZZW(:) )             ! RCDRYG
    ZZW1(:,2) = MIN( ZRIS(:),XFIDRYG * EXP( XCOLEXIG*(ZZT(:)-XTT) ) &
@@ -632,7 +632,7 @@ END WHERE
 !*       2.2.1  accretion of aggregates on the graupeln
 !        ----------------------------------------------
 !
-GDRY(:) = (ZRST(:)>0.0) .AND. (ZRGT(:)>0.0) .AND. (ZRSS(:)>0.0)
+GDRY(:) = (ZRST(:)>XRTMIN(5)) .AND. (ZRGT(:)>XRTMIN(6)) .AND. (ZRSS(:)>XRTMIN(5)/PTSTEP)
 IGDRY = COUNT( GDRY(:) )
 !
 IF( IGDRY>0 ) THEN
@@ -696,7 +696,7 @@ END IF
 !*       2.2.6  accretion of raindrops on the graupeln
 !        ---------------------------------------------
 !
-GDRY(:) = (ZRRT(:)>0.0) .AND. (ZRGT(:)>0.0) .AND. (ZRRS(:)>0.0)
+GDRY(:) = (ZRRT(:)>XRTMIN(3)) .AND. (ZRGT(:)>XRTMIN(6)) .AND. (ZRRS(:)>XRTMIN(3))
 IGDRY = COUNT( GDRY(:) )
 !
 IF( IGDRY>0 ) THEN
@@ -765,7 +765,7 @@ ZRDRYG(:) = ZZW1(:,1) + ZZW1(:,2) + ZZW1(:,3) + ZZW1(:,4)
 !
 ZZW(:) = 0.0
 ZRWETG(:) = 0.0
-WHERE( ZRGT(:)>0.0 )
+WHERE( ZRGT(:)>XRTMIN(6) )
    ZZW1(:,5) = MIN( ZRIS(:),                                    &
                ZZW1(:,2) / (XCOLIG*EXP(XCOLEXIG*(ZZT(:)-XTT)) ) ) ! RIWETG
    ZZW1(:,6) = MIN( ZRSS(:),                                    &
@@ -965,7 +965,7 @@ END IF
 !
 !
 ZZW(:) = 0.0
-WHERE( (ZRGT(:)>0.0) .AND. (ZRGS(:)>0.0) .AND. (ZZT(:)>XTT) )
+WHERE( (ZRGT(:)>XRTMIN(6)) .AND. (ZRGS(:)>XRTMIN(6)/PTSTEP) .AND. (ZZT(:)>XTT) )
    ZZW(:) = ZRVT(:)*ZPRES(:)/((XMV/XMD)+ZRVT(:)) ! Vapor pressure
    ZZW(:) =  ZKA(:)*(XTT-ZZT(:)) +                                 &
               ( ZDV(:)*(XLVTT + ( XCPV - XCL ) * ( ZZT(:) - XTT )) &
@@ -1023,8 +1023,8 @@ IF( IHAIL>0 ) THEN
 !        ----------------------------
 !
    ZZW1(:,:) = 0.0
-   WHERE( GHAIL(:) .AND. ( (ZRCT(:)>XRTMIN(2) .AND. ZRCS(:)>0.0) .OR. &
-                           (ZRIT(:)>XRTMIN(4) .AND. ZRIS(:)>0.0) )    )    
+   WHERE( GHAIL(:) .AND. ( (ZRCT(:)>XRTMIN(2) .AND. ZRCS(:)>XRTMIN(2)/PTSTEP) .OR. &
+                           (ZRIT(:)>XRTMIN(4) .AND. ZRIS(:)>XRTMIN(4)/PTSTEP) )    )    
       ZZW(:) = ZLBDAH(:)**(XCXH-XDH-2.0) * ZRHODREF(:)**(-XCEXVT)
       ZZW1(:,1) = MIN( ZRCS(:),XFWETH * ZRCT(:) * ZZW(:) )             ! RCWETH
       ZZW1(:,2) = MIN( ZRIS(:),XFWETH * ZRIT(:) * ZZW(:) )             ! RIWETH
@@ -1033,7 +1033,7 @@ IF( IHAIL>0 ) THEN
 !*       3.1.1  accretion of aggregates on the hailstones
 !        ------------------------------------------------
 !
-   GWET(:) = GHAIL(:) .AND. (ZRST(:)>XRTMIN(5) .AND. ZRSS(:)>0.0)
+   GWET(:) = GHAIL(:) .AND. (ZRST(:)>XRTMIN(5) .AND. ZRSS(:)>XRTMIN(5)/PTSTEP)
    IGWET = COUNT( GWET(:) )
 !
    IF( IGWET>0 ) THEN
@@ -1096,7 +1096,7 @@ IF( IHAIL>0 ) THEN
 !*       3.1.6  accretion of graupeln on the hailstones
 !        ----------------------------------------------
 !
-    GWET(:) = GHAIL(:) .AND. (ZRGT(:)>XRTMIN(6) .AND. ZRGS(:)>0.0)
+    GWET(:) = GHAIL(:) .AND. (ZRGT(:)>XRTMIN(6) .AND. ZRGS(:)>XRTMIN(6)/PTSTEP)
     IGWET = COUNT( GWET(:) )
 !
     IF( IGWET>0 ) THEN
@@ -1276,7 +1276,7 @@ END IF
 !
 IF ( IHAIL>0 ) THEN
     ZZW(:) = 0.0
-    WHERE( GHAIL(:) .AND. (ZRHS(:)>0.0) .AND. (ZRHT(:)>0.0) .AND. (ZZT(:)>XTT) )
+    WHERE( GHAIL(:) .AND. (ZRHS(:)>XRTMIN(7)/PTSTEP) .AND. (ZRHT(:)>XRTMIN(7)) .AND. (ZZT(:)>XTT) )
        ZZW(:) = ZRVT(:)*ZPRES(:)/((XMV/XMD)+ZRVT(:)) ! Vapor pressure
        ZZW(:) = ZKA(:)*(XTT-ZZT(:)) +                              &
             ( ZDV(:)*(XLVTT + ( XCPV - XCL ) * ( ZZT(:) - XTT )) &
diff --git a/src/MNH/lima_mixed_slow_processes.f90 b/src/MNH/lima_mixed_slow_processes.f90
index 85c78adeb..9146da229 100644
--- a/src/MNH/lima_mixed_slow_processes.f90
+++ b/src/MNH/lima_mixed_slow_processes.f90
@@ -3,7 +3,7 @@
 !      #####################################
 !
 INTERFACE
-      SUBROUTINE LIMA_MIXED_SLOW_PROCESSES(ZRHODREF, ZZT, ZSSI,          &
+      SUBROUTINE LIMA_MIXED_SLOW_PROCESSES(ZRHODREF, ZZT, ZSSI, PTSTEP,  &
                                            ZLSFACT, ZLVFACT, ZAI, ZCJ,   &
                                            ZRGT, ZCIT,                   &
                                            ZRVS, ZRCS, ZRIS, ZRGS, ZTHS, &
@@ -16,6 +16,7 @@ INTERFACE
 REAL, DIMENSION(:),   INTENT(IN)    :: ZRHODREF  ! RHO Dry REFerence
 REAL, DIMENSION(:),   INTENT(IN)    :: ZZT       ! Temperature
 REAL, DIMENSION(:),   INTENT(IN)    :: ZSSI      ! Supersaturation over ice
+REAL,                 INTENT(IN)    :: PTSTEP    ! Time-step
 !
 REAL, DIMENSION(:),   INTENT(IN)    :: ZLSFACT   ! L_s/(Pi_ref*C_ph)
 REAL, DIMENSION(:),   INTENT(IN)    :: ZLVFACT   ! L_v/(Pi_ref*C_ph)
@@ -57,7 +58,7 @@ END INTERFACE
 END MODULE MODI_LIMA_MIXED_SLOW_PROCESSES
 !
 !     #######################################################################
-      SUBROUTINE LIMA_MIXED_SLOW_PROCESSES(ZRHODREF, ZZT, ZSSI,          &
+      SUBROUTINE LIMA_MIXED_SLOW_PROCESSES(ZRHODREF, ZZT, ZSSI, PTSTEP,  &
                                            ZLSFACT, ZLVFACT, ZAI, ZCJ,   &
                                            ZRGT, ZCIT,                   &
                                            ZRVS, ZRCS, ZRIS, ZRGS, ZTHS, &
@@ -128,6 +129,7 @@ IMPLICIT NONE
 REAL, DIMENSION(:),   INTENT(IN)    :: ZRHODREF  ! RHO Dry REFerence
 REAL, DIMENSION(:),   INTENT(IN)    :: ZZT       ! Temperature
 REAL, DIMENSION(:),   INTENT(IN)    :: ZSSI      ! Supersaturation over ice
+REAL,                 INTENT(IN)    :: PTSTEP    ! Time-step
 !
 REAL, DIMENSION(:),   INTENT(IN)    :: ZLSFACT   ! L_s/(Pi_ref*C_ph)
 REAL, DIMENSION(:),   INTENT(IN)    :: ZLVFACT   ! L_v/(Pi_ref*C_ph)
@@ -177,7 +179,7 @@ INTEGER :: JMOD_IFN
 !
 !
    ZZW(:) = 0.0
-   WHERE ( (ZRGT(:)>XRTMIN(6)) .AND. (ZRGS(:)>0.0) )
+   WHERE ( (ZRGT(:)>XRTMIN(6)) .AND. (ZRGS(:)>XRTMIN(6)/PTSTEP) )
 !Correction BVIE RHODREF
 !      ZZW(:) = ( ZSSI(:)/(ZRHODREF(:)*ZAI(:)) ) *                               &
       ZZW(:) = ( ZSSI(:)/(ZAI(:)) ) *                               &
@@ -208,7 +210,7 @@ INTEGER :: JMOD_IFN
 !
 !
    ZMASK(:) = 1.0
-   WHERE( (ZRIS(:)>0.0) .AND. (ZZT(:)>XTT) )
+   WHERE( (ZRIS(:)>XRTMIN(4)/PTSTEP) .AND. (ZZT(:)>XTT) )
       ZRCS(:) = ZRCS(:) + ZRIS(:)
       ZTHS(:) = ZTHS(:) - ZRIS(:)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(-RIMLTC))
       ZRIS(:) = 0.0
@@ -248,7 +250,7 @@ INTEGER :: JMOD_IFN
 !
 !
    ZZW(:) = 0.0
-   WHERE( (ZRCS(:)>0.0) .AND. (ZRIS(:)>0.0) .AND. (ZCIT(:)>XCTMIN(4)) )
+   WHERE( (ZRCS(:)>XRTMIN(2)/PTSTEP) .AND. (ZRIS(:)>XRTMIN(4)/PTSTEP) .AND. (ZCIT(:)>XCTMIN(4)) )
       ZZW(:) = EXP( (XALPW-XALPI) - (XBETAW-XBETAI)/ZZT(:)          &
                                   - (XGAMW-XGAMI)*ALOG(ZZT(:)) ) -1.0 
                                       ! supersaturation of saturated water over ice
diff --git a/src/MNH/lima_phillips_integ.f90 b/src/MNH/lima_phillips_integ.f90
index 26a653b6a..3af3048c6 100644
--- a/src/MNH/lima_phillips_integ.f90
+++ b/src/MNH/lima_phillips_integ.f90
@@ -68,7 +68,7 @@ REAL, DIMENSION(:,:), INTENT(INOUT) :: Z_FRAC_ACT
 !
 !*       0.2   Declarations of local variables :
 !
-INTEGER :: JSPECIE, JL 
+INTEGER :: JSPECIE, JL, JL2
 REAL :: XB
 !
 REAL, DIMENSION(:), ALLOCATABLE :: ZZX,      & ! Work array
@@ -105,11 +105,20 @@ DO JSPECIE = 1, NSPECIE        ! = 4 = {DM1, DM2, BC, O} respectively
 ! For T warmer than -35°C, the integration is approximated with µ_X << 1
 ! Error function : GAMMA_INC(1/2, x**2) = ERF(x) !!! for x>=0 !!!
 !   
-   WHERE (ZZT(:)>(XTT-35.) .AND. ZEMBRYO(:)>1.0E-8)   
-      ZZX(:) = ZZX(:) + ZEMBRYO(:) * XPI * (XMDIAM_IFN(JSPECIE))**2 / 2.0           &
-           * EXP(2*(LOG(XSIGMA_IFN(JSPECIE)))**2)                                   &
-           * (1.0+GAMMA_INC(0.5,(SQRT(2.0)*LOG(XSIGMA_IFN(JSPECIE))-XB)**2))     
-   END WHERE
+!   WHERE (ZZT(:)>(XTT-35.) .AND. ZEMBRYO(:)>1.0E-8)   
+!      ZZX(:) = ZZX(:) + ZEMBRYO(:) * XPI * (XMDIAM_IFN(JSPECIE))**2 / 2.0           &
+!           * EXP(2*(LOG(XSIGMA_IFN(JSPECIE)))**2)                                   &
+!           * (1.0+GAMMA_INC(0.5,(SQRT(2.0)*LOG(XSIGMA_IFN(JSPECIE))-XB)**2))     
+!   END WHERE
+
+   DO JL = 1, SIZE(ZZT)
+      IF (ZZT(JL)>(XTT-35.) .AND. ZEMBRYO(JL)>1.0E-8) THEN
+         ZZX(JL) = ZZX(JL) + ZEMBRYO(JL) * XPI * (XMDIAM_IFN(JSPECIE))**2 / 2.0        &
+              * EXP(2*(LOG(XSIGMA_IFN(JSPECIE)))**2)                                   &
+              * (1.0+SIGN(1.,SQRT(2.0)*LOG(XSIGMA_IFN(JSPECIE))-XB)*GAMMA_INC(0.5,(SQRT(2.0)*LOG(XSIGMA_IFN(JSPECIE))-XB)**2))     
+      END IF
+   ENDDO
+
 !
 ! For other T, integration between 0 and infinity is made with a Gauss-Hermite
 ! quadrature method and integration between 0 and 0.1 uses e(x) ~ 1+x+O(x**2)
@@ -118,17 +127,28 @@ DO JSPECIE = 1, NSPECIE        ! = 4 = {DM1, DM2, BC, O} respectively
    GINTEG(:) = ZZT(:)<=(XTT-35.) .AND. ZSI(:)>1.0 .AND. ZEMBRYO(:)>1.0E-8
 !
    DO JL = 1, NDIAM
-      WHERE (GINTEG(:))
-         ZZX(:) = ZZX(:) - XWEIGHT(JL)*EXP(-ZEMBRYO(:)*XPI*(XMDIAM_IFN(JSPECIE))**2 & 
-              * EXP(2.0*SQRT(2.0)*LOG(XSIGMA_IFN(JSPECIE)) * XABSCISS(JL)) )     
-     END WHERE
+      DO JL2 = 1, SIZE(GINTEG)
+         IF (GINTEG(JL2)) THEN
+            ZZX(JL2) = ZZX(JL2) - XWEIGHT(JL)*EXP(-ZEMBRYO(JL2)*XPI*(XMDIAM_IFN(JSPECIE))**2 & 
+                 * EXP(2.0*SQRT(2.0)*LOG(XSIGMA_IFN(JSPECIE)) * XABSCISS(JL)) ) 
+         END IF
+      ENDDO
    ENDDO
 !
-   WHERE (GINTEG(:))
-      ZZX(:) = ZZX(:) + 0.5* XPI*ZEMBRYO(:)*(XMDIAM_IFN(JSPECIE))**2                &
-           * (1.0-( 1.0-GAMMA_INC(0.5,(SQRT(2.0)*LOG(XSIGMA_IFN(JSPECIE))-XB)**2))  &
-           * EXP( 2.0*(LOG(XSIGMA_IFN(JSPECIE)))**2)  )
-   END WHERE
+!   DO JL2 = 1, SIZE(GINTEG)
+!      IF (GINTEG(JL2)) THEN
+!         ZZX(JL2) = ZZX(JL2) + 0.5* XPI*ZEMBRYO(JL2)*(XMDIAM_IFN(JSPECIE))**2                &
+!              * (1.0-( 1.0-GAMMA_INC(0.5,(SQRT(2.0)*LOG(XSIGMA_IFN(JSPECIE))-XB)**2))  &
+!              * EXP( 2.0*(LOG(XSIGMA_IFN(JSPECIE)))**2)  )
+!      END IF
+!   ENDDO
+   DO JL2 = 1, SIZE(GINTEG)
+      IF (GINTEG(JL2)) THEN
+         ZZX(JL2) = 1 + ZZX(JL2)  &
+              - ( 0.5* XPI*ZEMBRYO(JL2)*(XMDIAM_IFN(JSPECIE))**2 * EXP( 2.0*(LOG(XSIGMA_IFN(JSPECIE)))**2)   &
+              * ( 1.0-SIGN(1.,SQRT(2.0)*LOG(XSIGMA_IFN(JSPECIE))-XB)*GAMMA_INC(0.5,(SQRT(2.0)*LOG(XSIGMA_IFN(JSPECIE))-XB)**2)) )
+      END IF
+   ENDDO
 ! 
    Z_FRAC_ACT(:,JSPECIE)=ZZX(:)
 !
diff --git a/src/MNH/lima_phillips_ref_spectrum.f90 b/src/MNH/lima_phillips_ref_spectrum.f90
index c2fcff114..d549d7051 100644
--- a/src/MNH/lima_phillips_ref_spectrum.f90
+++ b/src/MNH/lima_phillips_ref_spectrum.f90
@@ -66,7 +66,8 @@ REAL, DIMENSION(:), ALLOCATABLE   :: ZMAX, &
                                      ZZY1, &
                                      ZZY2, &
                                      Z1,   &
-                                     Z2
+                                     Z2,   &
+                                     ZSI2
 !
 REAL                              :: XPSI
 !
@@ -78,25 +79,28 @@ ALLOCATE(ZZY1(SIZE(ZZT))) ; ZZY1(:)= 0.0
 ALLOCATE(ZZY2(SIZE(ZZT))) ; ZZY2(:)= 0.0
 ALLOCATE(Z1(SIZE(ZZT)))   ; Z1(:)  = 0.0
 ALLOCATE(Z2(SIZE(ZZT)))   ; Z2(:)  = 0.0
+ALLOCATE(ZSI2(SIZE(ZZT))) ; ZSI2(:)= 0.0
 !
 ZZY(:) = 0.0   
 !
 XPSI   = 0.058707*XGAMMA/XRHO_CFDC
 !
+ZSI2(:)=min(ZSI(:),ZSI_W(:))
+!
 WHERE( ZSI(:)>1.0 )
 !
 !* T <= -35 C 
 !
    ZZY(:)  =1000.*XGAMMA/XRHO_CFDC                  &
-        * ( EXP(12.96*(MIN(ZSI(:),7.)-1.1)) )**0.3          &
+        * ( EXP(12.96*(MIN(ZSI2(:),7.)-1.1)) )**0.3          &
         * RECT(1.,0.,ZZT(:),(XTT-80.),(XTT-35.))
 !
 !* -35 C < T <= -25 C (in Appendix A) 
 !
    ZZY1(:) =1000.*XGAMMA/XRHO_CFDC                  &
-        * ( EXP(12.96*(MIN(ZSI(:),7.)-1.1)) )**0.3
+        * ( EXP(12.96*(MIN(ZSI2(:),7.)-1.1)) )**0.3
    ZZY2(:) =1000.*XPSI                              &
-        *   EXP(12.96*(MIN(ZSI(:),7.)-1.0)-0.639)
+        *   EXP(12.96*(MIN(ZSI2(:),7.)-1.0)-0.639)
 !
 !* -35 C < T <= -30 C
 !
@@ -115,7 +119,7 @@ WHERE( ZSI(:)>1.0 )
 !* T > -25 C 
 !
    ZZY(:)  = ZZY(:) + 1000.*XPSI                    &
-        * EXP( 12.96*(MIN(ZSI(:),7.)-1.0)-0.639 )           &
+        * EXP( 12.96*(MIN(ZSI2(:),7.)-1.0)-0.639 )           &
         * RECT(1.,0.,ZZT(:),(XTT-25.),(XTT-2.))
 END WHERE
 !
diff --git a/src/MNH/lima_warm.f90 b/src/MNH/lima_warm.f90
index ef46126cc..58098af61 100644
--- a/src/MNH/lima_warm.f90
+++ b/src/MNH/lima_warm.f90
@@ -9,7 +9,7 @@ INTERFACE
                             PTHM, PRCM,                                   &
                             PTHT, PRT, PSVT,                              &
                             PTHS, PRS, PSVS,                              &
-                            PINPRC, PINPRR, PINPRR3D, PEVAP3D      )
+                            PINPRC, PINPRR, PINDEP, PINPRR3D, PEVAP3D     )
 !
 LOGICAL,                  INTENT(IN)    :: OACTIT     ! Switch to activate the
                                                       ! activation by radiative
@@ -56,6 +56,7 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVS       ! Concentrations source
 !
 REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINPRC     ! Cloud instant precip
 REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINPRR     ! Rain instant precip
+REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINDEP     ! Cloud droplets deposition
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PINPRR3D   ! Rain inst precip 3D
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PEVAP3D    ! Rain evap profile
 !
@@ -69,7 +70,7 @@ END MODULE MODI_LIMA_WARM
                             PTHM, PRCM,                                   &
                             PTHT, PRT, PSVT,                              &
                             PTHS, PRS, PSVS,                              &
-                            PINPRC, PINPRR, PINPRR3D, PEVAP3D             )
+                            PINPRC, PINPRR, PINDEP, PINPRR3D, PEVAP3D     )
 !     #####################################################################
 !
 !!
@@ -193,6 +194,7 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSVS       ! Concentrations source
 !
 REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINPRC     ! Cloud instant precip
 REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINPRR     ! Rain instant precip
+REAL, DIMENSION(:,:),     INTENT(INOUT) :: PINDEP     ! Cloud droplets deposition
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PINPRR3D   ! Rain inst precip 3D
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PEVAP3D    ! Rain evap profile
 !
@@ -227,6 +229,8 @@ REAL,    DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3))   &
                                   :: ZWLBDR,ZWLBDR3,ZWLBDC,ZWLBDC3
 INTEGER :: JL
 !
+LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2)) :: GDEP
+!
 !-------------------------------------------------------------------------------
 !
 !
@@ -294,7 +298,11 @@ WHERE (PRRT(:,:,:)>XRTMIN(3) .AND. PCRT(:,:,:)>XCTMIN(3))
    ZWLBDR(:,:,:)  = ZWLBDR3(:,:,:)**XLBEXR
 END WHERE
 ZT(:,:,:)  = PTHT(:,:,:) * (PPABST(:,:,:)/XP00)**(XRD/XCPD)
-ZTM(:,:,:) = PTHM(:,:,:) * (PPABSM(:,:,:)/XP00)**(XRD/XCPD)
+IF( OACTIT ) THEN
+   ZTM(:,:,:) = PTHM(:,:,:) * (PPABSM(:,:,:)/XP00)**(XRD/XCPD)
+ELSE 
+   ZTM(:,:,:) = ZT(:,:,:)
+END IF
 !
 !-------------------------------------------------------------------------------
 !
@@ -309,7 +317,7 @@ CALL LIMA_WARM_SEDIM (OSEDC, KSPLITR, PTSTEP, KMI,  &
                       ZWLBDC,                       &
                       PRCT, PRRT, PCCT, PCRT,       &
                       PRCS, PRRS, PCCS, PCRS,       &
-                      PINPRC, PINPRR,      &
+                      PINPRC, PINPRR,               &
                       PINPRR3D    )
 !
 IF (LBUDGET_RC .AND. OSEDC)                                              &
@@ -322,6 +330,22 @@ IF (LBUDGET_SV) THEN
                     &'SEDI_BU_RSV') ! RCR
 END IF
 !
+! 2.bis Deposition at 1st level above ground
+!
+IF (LDEPOC) THEN
+  PINDEP(:,:)=0.
+  GDEP(:,:) = .FALSE.
+  GDEP(:,:) =    PRCS(:,:,2) >0 .AND. PCCS(:,:,2) >0
+  WHERE (GDEP)
+     PRCS(:,:,2) = PRCS(:,:,2) - XVDEPOC * PRCT(:,:,2) / ( PZZ(:,:,3) - PZZ(:,:,2))
+     PCCS(:,:,2) = PCCS(:,:,2) - XVDEPOC * PCCT(:,:,2) / ( PZZ(:,:,3) - PZZ(:,:,2))
+     PINPRC(:,:) = PINPRC(:,:) + XVDEPOC * PRCT(:,:,2) * PRHODREF(:,:,2) /XRHOLW
+     PINDEP(:,:) = XVDEPOC * PRCT(:,:,2) *  PRHODREF(:,:,2) /XRHOLW
+  END WHERE
+!
+  IF ( LBUDGET_RC ) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7             ,'DEPO_BU_RRC')
+  IF ( LBUDGET_SV ) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'DEPO_BU_RSV') 
+END IF
 ! 
 !-------------------------------------------------------------------------------
 !
@@ -393,7 +417,7 @@ IF (ORAIN) THEN
 !              --------------------
 !
    ZWLBDR(:,:,:) = 1.E10
-   WHERE (PRRS(:,:,:)>0.0.AND.PCRS(:,:,:)>0.0 )
+   WHERE (PRRS(:,:,:)>XRTMIN(3)/PTSTEP.AND.PCRS(:,:,:)>XCTMIN(3)/PTSTEP )
       ZWLBDR3(:,:,:) = XLBR * PCRS(:,:,:) / PRRS(:,:,:)
       ZWLBDR(:,:,:)  = ZWLBDR3(:,:,:)**XLBEXR
    END WHERE
diff --git a/src/MNH/lima_warm_evap.f90 b/src/MNH/lima_warm_evap.f90
index 09a90d093..f99805783 100644
--- a/src/MNH/lima_warm_evap.f90
+++ b/src/MNH/lima_warm_evap.f90
@@ -186,7 +186,7 @@ ZRVSAT(:,:,:) = ZEPS / (PPABST(:,:,:) * &
 !
 GEVAP(:,:,:) = .FALSE.
 GEVAP(IIB:IIE,IJB:IJE,IKB:IKE) =                              &
-     PRRS(IIB:IIE,IJB:IJE,IKB:IKE)> 0.0 .AND.                    &
+     PRRS(IIB:IIE,IJB:IJE,IKB:IKE)>ZRTMIN(3) .AND.                    &
      PRVT(IIB:IIE,IJB:IJE,IKB:IKE)<ZRVSAT(IIB:IIE,IJB:IJE,IKB:IKE)
 !
 IEVAP = COUNTJV( GEVAP(:,:,:),I1(:),I2(:),I3(:))
diff --git a/src/MNH/lima_warm_nucl.f90 b/src/MNH/lima_warm_nucl.f90
index 165ac242d..af3de3889 100644
--- a/src/MNH/lima_warm_nucl.f90
+++ b/src/MNH/lima_warm_nucl.f90
@@ -229,8 +229,11 @@ IF (OACTIT) THEN
    ZDRC(:,:,:)   = PRCS(:,:,:)-(PRCT(:,:,:)/PTSTEP)                ! drc/dt
 !!! JPP
 !!! JPP
-   ZTDT(:,:,:)   = MIN(0.,ZTDT(:,:,:)+(XG*PW_NU(:,:,:))/XCPD- &
-        (XLVTT+(XCPV-XCL)*(ZT(:,:,:)-XTT))*ZDRC(:,:,:)/XCPD)
+!!
+!! BV - W and drc/dt effect should not be included in ZTDT (already accounted for in the computations) ?  
+!!
+!!   ZTDT(:,:,:)   = MIN(0.,ZTDT(:,:,:)+(XG*PW_NU(:,:,:))/XCPD- &
+!!        (XLVTT+(XCPV-XCL)*(ZT(:,:,:)-XTT))*ZDRC(:,:,:)/XCPD)
 END IF
 !
 !  find locations where CCN are available
@@ -622,7 +625,6 @@ DO JL = 1, NPTS
             PRINT*, 'PX2 ALWAYS too small, we put a greater one : PX2 =',PX2
             fh(JL)   = SINGL_FUNCSMAX(PX2,PZZW3(JL),JL)
             go to 100
-            print*, 'PZRIDDR: never get here'
             STOP
          end if
          if (abs(xh-xl) <= PXACC) then
@@ -635,7 +637,6 @@ DO JL = 1, NPTS
 !!$      endif   
 !!SB
       end do
-      print*, 'PZRIDDR: exceeded maximum iterations',j
       STOP
    else if (fl(JL) == 0.0) then
       PZRIDDR(JL)=PX1
diff --git a/src/MNH/modd_param_lima.f90 b/src/MNH/modd_param_lima.f90
index cf0a66ff2..6c90b2dfa 100644
--- a/src/MNH/modd_param_lima.f90
+++ b/src/MNH/modd_param_lima.f90
@@ -118,6 +118,7 @@ LOGICAL, SAVE :: LACTIT        ! TRUE to enable the usage of dT/dt in CCN activa
 LOGICAL, SAVE :: LBOUND        ! TRUE to enable the continuously replenishing
                                ! aerosol concentrations through the open
                                ! lateral boundaries -> boundaries.f90
+LOGICAL, SAVE :: LDEPOC        ! Deposition of rc at 1st level above ground
 !
 ! 2.2 CCN initialisation
 !
@@ -148,6 +149,10 @@ REAL,SAVE             :: XFSOLUB_CCN,       & ! Fractionnal solubility of the CC
                          XACTEMP_CCN,       & ! Expected temperature of CCN activation
                          XAERDIFF, XAERHEIGHT ! For the vertical gradient of aerosol distribution
 !
+! Cloud droplet deposition
+!
+REAL, SAVE :: XVDEPOC
+!
 !-------------------------------------------------------------------------------
 !
 !
diff --git a/src/MNH/modn_param_lima.f90 b/src/MNH/modn_param_lima.f90
index e65579400..f876e45cb 100644
--- a/src/MNH/modn_param_lima.f90
+++ b/src/MNH/modn_param_lima.f90
@@ -24,6 +24,6 @@ NAMELIST/NAM_PARAM_LIMA/LCOLD, LNUCL, LSEDI, LSNOW, LHAIL, LHHONI, LMEYERS,&
                         LCCN_HOM, CCCN_MODES, HINI_CCN, HTYPE_CCN,           &
                         XALPHAC, XNUC, XALPHAR, XNUR,                      &
                         XFSOLUB_CCN, XACTEMP_CCN, XAERDIFF, XAERHEIGHT,    &
-                        LSCAV, LAERO_MASS
+                        LSCAV, LAERO_MASS, LDEPOC, XVDEPOC
 !
 END MODULE MODN_PARAM_LIMA
diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90
index 123c64376..ce8b4cf90 100644
--- a/src/MNH/read_exsegn.f90
+++ b/src/MNH/read_exsegn.f90
@@ -332,7 +332,7 @@ USE MODN_PARAM_C1R3, ONLY : NAM_PARAM_C1R3, CPRISTINE_ICE_C1R3,    &
                             CHEVRIMED_ICE_C1R3
 USE MODN_PARAM_LIMA, ONLY : FINI_CCN=>HINI_CCN,NAM_PARAM_LIMA,NMOD_CCN,LSCAV, &
                             CPRISTINE_ICE_LIMA, CHEVRIMED_ICE_LIMA, NMOD_IFN, &
-                            LCOLD, LACTI, LNUCL, XALPHAC, XNUC, LMEYERS
+                            LCOLD, LACTI, LNUCL, XALPHAC, XNUC, LMEYERS, LHAIL
 USE MODN_ELEC
 USE MODN_SERIES
 USE MODN_SERIES_n 
@@ -891,7 +891,7 @@ SELECT CASE ( CCLOUD )
         &"LUSERV, LUSERC, LUSERR, LUSERI, LUSERS, LUSERG ARE SET TO TRUE")' )
 !
         LUSERV=.TRUE. ; LUSERC=.TRUE. ; LUSERR=.TRUE.
-        LUSERI=.TRUE. ; LUSECI=.TRUE.
+        LUSERI=.TRUE. ; LUSECI=.TRUE.        
         LUSERS=.TRUE. ; LUSERG=.TRUE. 
         LUSERH=.FALSE.
       END IF
@@ -979,7 +979,8 @@ SELECT CASE ( CCLOUD )
 !
     IF (LCOLD) THEN
       LUSERV=.TRUE. ; LUSERC=.TRUE. ; LUSERR=.TRUE.
-      LUSERI=.TRUE. ; LUSERS=.TRUE. ; LUSERG=.TRUE. ; LUSERH=.TRUE.
+      LUSERI=.TRUE. ; LUSERS=.TRUE. ; LUSERG=.TRUE.
+      LUSERH=LHAIL
     END IF
 !
     IF (LSUBG_COND .AND. LCOLD)  THEN
diff --git a/src/MNH/set_conc_lima.f90 b/src/MNH/set_conc_lima.f90
index 0a76b46aa..54f17c858 100644
--- a/src/MNH/set_conc_lima.f90
+++ b/src/MNH/set_conc_lima.f90
@@ -79,7 +79,7 @@ END MODULE MODI_SET_CONC_LIMA
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_PARAM_LIMA,      ONLY : XRTMIN, XCTMIN, LCOLD, LWARM
+USE MODD_PARAM_LIMA,      ONLY : XRTMIN, XCTMIN, LCOLD, LWARM, LRAIN
 USE MODD_PARAM_LIMA_COLD, ONLY : XAI, XBI
 USE MODD_NSV,             ONLY : NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_ACTI, NSV_LIMA_NI, NSV_LIMA_IFN_NUCL
 USE MODD_CST,             ONLY : XPI, XRHOLW, XRHOLI
@@ -133,6 +133,9 @@ IF (LWARM) THEN
       WRITE (UNIT=ILUOUT,FMT=*) "!INI_MODEL$n: The droplet concentration has "
       WRITE (UNIT=ILUOUT,FMT=*) "been roughly initialised"
    END IF
+END IF
+!
+IF (LWARM .AND. LRAIN) THEN
 !
 !  drops
 !
@@ -153,8 +156,7 @@ IF (LWARM) THEN
          WRITE (UNIT=ILUOUT,FMT=*) "been roughly initialised"
       END IF
    END IF
-!
-ENDIF
+END IF
 !
 IF (LCOLD) THEN
 !
-- 
GitLab