From 93bf259c1c4e052740278377ab2d9cbfaeae3451 Mon Sep 17 00:00:00 2001
From: Gaelle TANGUY <gaelle.tanguy@meteo.fr>
Date: Fri, 4 Nov 2016 09:48:59 +0100
Subject: [PATCH] LIMA

---
 src/ARCH_SRC/CPL_WAVE/MNH/ground_paramn.f90 |    8 +-
 src/ARCH_SRC/CPL_WAVE/MNH/ini_modeln.f90    |   10 +
 src/MNH/aircraft_balloon.f90                |   59 +-
 src/MNH/aircraft_balloon_evol.f90           |  176 ++-
 src/MNH/boundaries.f90                      |   44 +-
 src/MNH/deallocate_model1.f90               |   57 +-
 src/MNH/default_desfmn.f90                  |   83 ++
 src/MNH/diag.f90                            |   11 +-
 src/MNH/ecmwf_radiation_vers2.f90           |  103 +-
 src/MNH/goto_model_wrapper.f90              |    9 +-
 src/MNH/ground_paramn.f90                   |    8 +-
 src/MNH/ini_aircraft_balloon.f90            |   23 +-
 src/MNH/ini_budget.f90                      | 1160 +++++++++++++++----
 src/MNH/ini_lb.f90                          |  111 ++
 src/MNH/ini_micron.f90                      |   74 +-
 src/MNH/ini_modeln.f90                      |   10 +
 src/MNH/ini_nsv.f90                         |   91 +-
 src/MNH/ini_one_wayn.f90                    |   31 +-
 src/MNH/ini_posprofilern.f90                |   24 +-
 src/MNH/lidar.f90                           |  160 ++-
 src/MNH/modd_aircraft_balloon.f90           |   11 +-
 src/MNH/modd_budget.f90                     |   31 +-
 src/MNH/modd_dynn.f90                       |    6 +-
 src/MNH/modd_nsv.f90                        |   29 +
 src/MNH/modd_parameters.f90                 |    8 +-
 src/MNH/modd_type_profiler.f90              |   14 +-
 src/MNH/modeln.f90                          |  140 ++-
 src/MNH/modn_budget.f90                     |   22 +-
 src/MNH/one_wayn.f90                        |  123 +-
 src/MNH/phys_paramn.f90                     |   44 +-
 src/MNH/prep_real_case.f90                  |    2 +
 src/MNH/profilern.f90                       |   57 +-
 src/MNH/radar_rain_ice.f90                  |  287 +++--
 src/MNH/radar_scattering.f90                |  102 +-
 src/MNH/radiations.f90                      |  166 ++-
 src/MNH/rain_ice.f90                        |   82 +-
 src/MNH/read_desfmn.f90                     |   38 +-
 src/MNH/read_exsegn.f90                     |  164 ++-
 src/MNH/read_field.f90                      |   74 +-
 src/MNH/resolved_cloud.f90                  |  188 ++-
 src/MNH/spawn_field2.f90                    |   68 ++
 src/MNH/spawn_model2.f90                    |   35 +-
 src/MNH/test_nam_var.f90                    |   18 +-
 src/MNH/two_wayn.f90                        |   56 +-
 src/MNH/update_nsv.f90                      |   16 +
 src/MNH/write_aircraft_balloon.f90          |  105 +-
 src/MNH/write_desfmn.f90                    |   19 +-
 src/MNH/write_lbn.f90                       |   54 +-
 src/MNH/write_lfifm1_for_diag.f90           |  221 +++-
 src/MNH/write_lfin.f90                      |  112 +-
 src/MNH/write_profilern.f90                 |  107 +-
 51 files changed, 3570 insertions(+), 1081 deletions(-)

diff --git a/src/ARCH_SRC/CPL_WAVE/MNH/ground_paramn.f90 b/src/ARCH_SRC/CPL_WAVE/MNH/ground_paramn.f90
index ca327d15c..4df321827 100644
--- a/src/ARCH_SRC/CPL_WAVE/MNH/ground_paramn.f90
+++ b/src/ARCH_SRC/CPL_WAVE/MNH/ground_paramn.f90
@@ -105,6 +105,7 @@ END MODULE MODI_GROUND_PARAM_n
 !!     (J.escobar)            18/10/2012 missing USE MODI_COUPLING_SURF_ATM_n & MODI_DIAG_SURF_ATM_n
 !      (J.escobar)            02/2014 add Forefire coupling
 !!     (G.Delautier)          06/2016 phasage surfex 8
+!!     (B.Vie)                2016 LIMA
 !!     (J.Pianezze)           08/2016 add send/recv oasis functions
 !-------------------------------------------------------------------------------
 !
@@ -171,6 +172,8 @@ USE MODD_TIME_n
 USE MODD_TIME
 USE MODI_TEMPORAL_DIST
 !
+USE MODD_PARAM_LIMA, ONLY : MSEDC=>LSEDC
+!
 IMPLICIT NONE
 !
 !
@@ -455,8 +458,9 @@ ZRHOA(:,:) = ZPA(:,:)/(XRD * ZTA(:,:) * ((1. + (XRD/XRV)*ZRVA(:,:))/ &
 ZRAIN=0.
 ZSNOW=0.
 IF (NRR>2 .AND. SIZE(XINPRR)>0 ) THEN
-  IF ((CCLOUD(1:3) == 'ICE' .AND. LSEDIC) .OR. &
-     ((CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') .AND. LSEDC)) THEN
+  IF (( CCLOUD(1:3) == 'ICE'                                          .AND. LSEDIC) .OR. &
+      ((CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') .AND. LSEDC)  .OR. &
+      ( CCLOUD=='LIMA'                                                .AND. MSEDC))   THEN
     ZRAIN = ZRAIN + XINPRR * XRHOLW + XINPRC * XRHOLW
   ELSE
     ZRAIN = ZRAIN + XINPRR * XRHOLW
diff --git a/src/ARCH_SRC/CPL_WAVE/MNH/ini_modeln.f90 b/src/ARCH_SRC/CPL_WAVE/MNH/ini_modeln.f90
index 488502ea3..636dc1a31 100644
--- a/src/ARCH_SRC/CPL_WAVE/MNH/ini_modeln.f90
+++ b/src/ARCH_SRC/CPL_WAVE/MNH/ini_modeln.f90
@@ -265,6 +265,7 @@ END MODULE MODI_INI_MODEL_n
 !!       V. Masson     Feb 2015 replaces, for aerosols, cover fractions by sea, town, bare soil fractions
 !!                   J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files
 !!                   Jun.  2016 (G.Delautier) phasage surfex 8
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !!                   Aug.  2016 (J.Pianezze) Add SFX_OASIS_READ_NAM function from SurfEx
 !---------------------------------------------------------------------------------
 !
@@ -415,6 +416,7 @@ USE MODD_RELFRC_n
 USE MODD_2D_FRC
 !
 USE MODE_MPPDB
+USE MODI_INIT_AEROSOL_PROPERTIES
 !
 IMPLICIT NONE
 !
@@ -503,6 +505,12 @@ REAL, DIMENSION(:,:,:), POINTER ::   DPTR_XLSUS,DPTR_XLSVS,DPTR_XLSWS,DPTR_XLSTH
 !
 !*       0.    PROLOGUE
 !              --------
+! Compute relaxation coefficients without changing INI_DYNAMICS nor RELAXDEF
+!
+IF (CCLOUD == 'LIMA') THEN
+  LHORELAX_SVC1R3=LHORELAX_SVLIMA
+END IF
+!
 !
 NULLIFY(TZINITHALO2D_ll)
 NULLIFY(TZINITHALO3D_ll)
@@ -1531,6 +1539,8 @@ ELSE
   IF (.NOT.(ASSOCIATED(XSOLORG))) ALLOCATE(XSOLORG(0,0,0,0))
 END IF
 !
+IF (CCLOUD=='LIMA') CALL INIT_AEROSOL_PROPERTIES
+!
 !-------------------------------------------------------------------------------
 !
 !*       8.    INITIALIZE THE PROGNOSTIC FIELDS
diff --git a/src/MNH/aircraft_balloon.f90 b/src/MNH/aircraft_balloon.f90
index 972dfeb9f..56763877d 100644
--- a/src/MNH/aircraft_balloon.f90
+++ b/src/MNH/aircraft_balloon.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/aircraft_balloon.f90,v $ $Revision: 1.1.10.1.16.1.2.2 $
 ! MASDEV4_7 balloon 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !      #####################
@@ -19,8 +19,7 @@ INTERFACE
                                   PXHAT, PYHAT, PZ,                     &
                                   PMAP, PLONOR, PLATOR,                 &
                                   PU, PV, PW, PP, PTH, PR, PSV, PTKE,   &
-                                  PTS, PRHODREF, PCIT, PSPEEDC, PSPEEDR,&
-                                  PSPEEDS, PSPEEDG, PSPEEDH, PSEA)
+                                  PTS, PRHODREF, PCIT, PSEA)
 !
 USE MODD_TYPE_DATE
 CHARACTER(LEN=*),         INTENT(IN)     :: HLUOUT ! output listing
@@ -47,11 +46,6 @@ REAL, DIMENSION(:,:),     INTENT(IN)     :: PTS    ! surface temperature
 ! ++ OC
 REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PRHODREF ! dry air density of the reference state
 REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PCIT     ! pristine ice concentration
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDC ! Cloud sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDR ! Rain sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDS ! Snow sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDG ! Graupel sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDH ! Hail sedimentation speed
 REAL, DIMENSION(:,:),INTENT(IN) :: PSEA
 ! -- OC
 !
@@ -69,8 +63,7 @@ END MODULE MODI_AIRCRAFT_BALLOON
                                   PXHAT, PYHAT, PZ,                     &
                                   PMAP, PLONOR, PLATOR,                 &
                                   PU, PV, PW, PP, PTH, PR, PSV, PTKE,   &
-                                  PTS, PRHODREF, PCIT, PSPEEDC, PSPEEDR,&
-                                  PSPEEDS, PSPEEDG, PSPEEDH, PSEA)
+                                  PTS, PRHODREF, PCIT,  PSEA)
 !     ###################################################################
 !
 !
@@ -103,8 +96,6 @@ END MODULE MODI_AIRCRAFT_BALLOON
 !!     Original 15/05/2000
 !!
 !!              March, 2008 (P.Lacarrere) Add 3D fluxes
-!!              July, 2015 (O.Nuissier/F.Duffourg) Add microphysics diagnostic for
-!!                                      aircraft, ballon and profiler
 !! --------------------------------------------------------------------------
 !       
 !*      0. DECLARATIONS
@@ -147,11 +138,6 @@ REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PTKE   ! turbulent kinetic energy
 REAL, DIMENSION(:,:),     INTENT(IN)     :: PTS    ! surface temperature
 REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PRHODREF ! dry air density of the reference state
 REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PCIT     ! pristine ice concentration
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDC ! Cloud sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDR ! Rain sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDS ! Snow sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDG ! Graupel sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDH ! Hail sedimentation speed
 REAL, DIMENSION(:,:),INTENT(IN) :: PSEA
 !
 !-------------------------------------------------------------------------------
@@ -171,63 +157,54 @@ IF (TBALLOON1%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,                    &
                            TBALLOON1, PSEA                                            )
 ENDIF
 IF (TBALLOON2%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TBALLOON2, PSEA                                            )
 ENDIF
 IF (TBALLOON3%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TBALLOON3, PSEA                                            )
 ENDIF
 IF (TBALLOON4%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TBALLOON4, PSEA                                            )
 ENDIF
 IF (TBALLOON5%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TBALLOON5, PSEA                                            )
 ENDIF
 IF (TBALLOON6%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TBALLOON6, PSEA                                            )
 ENDIF
 IF (TBALLOON7%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TBALLOON7, PSEA                                            )
 ENDIF
 IF (TBALLOON8%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TBALLOON8, PSEA                                            )
 ENDIF
 IF (TBALLOON9%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TBALLOON9, PSEA                                            )
 ENDIF
 !
@@ -235,210 +212,180 @@ IF (TAIRCRAFT1%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT1, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT2%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT2, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT3%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT3, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT4%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT4, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT5%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT5, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT6%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT6, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT7%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT7, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT8%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT8, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT9%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT9, PSEA                                           )
 ENDIF
 IF (TAIRCRAFT10%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT10, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT11%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT11, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT12%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT12, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT13%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT13, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT14%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT14, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT15%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT15, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT16%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT16, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT17%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT17, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT18%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT18, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT19%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT19, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT20%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT20, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT21%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT21, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT22%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT22, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT23%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT23, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT24%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT24, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT25%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT25, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT26%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT26, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT27%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT27, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT28%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT28, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT29%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT29, PSEA                                          )
 ENDIF
 IF (TAIRCRAFT30%NMODEL /= 0) THEN
 CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,        &
                            PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR,                    &
                            PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT,   &
-                           PSPEEDC,PSPEEDR,PSPEEDS,PSPEEDG,PSPEEDH,           &
                            TAIRCRAFT30, PSEA                                          )
 ENDIF
 !
diff --git a/src/MNH/aircraft_balloon_evol.f90 b/src/MNH/aircraft_balloon_evol.f90
index 39ae67b11..27fb7547c 100644
--- a/src/MNH/aircraft_balloon_evol.f90
+++ b/src/MNH/aircraft_balloon_evol.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/aircraft_balloon_evol.f90,v $ $Revision: 1.1.8.1.2.4.2.1.10.1.2.4 $
 ! MASDEV4_7 balloon 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !      ##########################
@@ -19,10 +19,7 @@ INTERFACE
                        PXHAT, PYHAT, PZ,                     &
                        PMAP, PLONOR, PLATOR,                 &
                        PU, PV, PW, PP, PTH, PR, PSV, PTKE,   &
-                       PTS, PRHODREF, PCIT,                  &
-                       PSPEEDC, PSPEEDR, PSPEEDS, PSPEEDG,   &
-                       PSPEEDH,                              &
-                       TPFLYER, PSEA                         )
+                       PTS, PRHODREF, PCIT,TPFLYER, PSEA     )
 !
 USE MODD_TYPE_DATE
 USE MODD_AIRCRAFT_BALLOON
@@ -50,11 +47,6 @@ REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PTKE   ! turbulent kinetic energy
 REAL, DIMENSION(:,:),     INTENT(IN)     :: PTS    ! surface temperature
 REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PRHODREF ! dry air density of the reference state
 REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PCIT     ! pristine ice concentration
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDC  ! Cloud sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDR  ! Rain sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDS  ! Snow sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDG  ! Graupel sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDH  ! Hail sedimentation speed
 !
 TYPE(FLYER),              INTENT(INOUT)  :: TPFLYER! balloon/aircraft
 REAL, DIMENSION(:,:),     INTENT(IN)     :: PSEA
@@ -73,10 +65,7 @@ END MODULE MODI_AIRCRAFT_BALLOON_EVOL
                        PXHAT, PYHAT, PZ,                     &
                        PMAP, PLONOR, PLATOR,                 &
                        PU, PV, PW, PP, PTH, PR, PSV, PTKE,   &
-                       PTS, PRHODREF, PCIT,                  &
-                       PSPEEDC, PSPEEDR, PSPEEDS, PSPEEDG,   &
-                       PSPEEDH,                              &                       
-                       TPFLYER, PSEA                         )
+                       PTS, PRHODREF, PCIT,TPFLYER, PSEA     )
 !     ########################################################
 !
 !
@@ -139,9 +128,10 @@ END MODULE MODI_AIRCRAFT_BALLOON_EVOL
 !!     April, 2014 (C.Lac) allow RARE calculation only if CCLOUD=ICE3
 !!     May, 2014 (O.Caumont) modify RARE for hydrometeors containing ice
 !!                           add bright band calculation for RARE
-!!     Feb, 2015 (C.Lac) Correction to prevent aircraft crash
+!!     Feb, 2015 (C.Lac) Correction to prevent aircraft crash 
 !!     July, 2015 (O.Nuissier/F.Duffourg) Add microphysics diagnostic for
 !!                                      aircraft, ballon and profiler
+!!      October, 2016 (G.DELAUTIER) LIMA
 !!
 !! --------------------------------------------------------------------------
 !       
@@ -176,6 +166,17 @@ USE MODE_FSCATTER,ONLY : QEPSW,QEPSI,BHMIE,MOMG,MG
 USE MODE_FGAU,    ONLY : GAULAG
 USE MODD_REF_n,   ONLY : XRHODREF
 USE MODI_GAMMA,   ONLY : GAMMA
+USE MODD_PARAM_LIMA_WARM, ONLY: XLBEXR_L=>XLBEXR,XLBR_L=>XLBR,XBR_L=>XBR,XAR_L=>XAR,&
+                                XBC_L=>XBC,XAC_L=>XAC
+USE MODD_PARAM_LIMA_COLD, ONLY: XDI_L=>XDI,XLBEXI_L=>XLBEXI,XLBI_L=>XLBI,XAI_L=>XAI,XBI_L=>XBI,XC_I_L=>XC_I,&
+                                XLBEXS_L=>XLBEXS,XLBS_L=>XLBS,XCCS_L=>XCCS,&
+                                XAS_L=>XAS,XBS_L=>XBS,XCXS_L=>XCXS
+
+USE MODD_PARAM_LIMA_MIXED, ONLY:XDG_L=>XDG,XLBEXG_L=>XLBEXG,XLBG_L=>XLBG,XCCG_L=>XCCG,&
+                                XAG_L=>XAG,XBG_L=>XBG,XCXG_L=>XCXG,XCG_L=>XCG
+USE MODD_PARAM_LIMA, ONLY: XALPHAR_L=>XALPHAR,XNUR_L=>XNUR,XALPHAS_L=>XALPHAS,XNUS_L=>XNUS,&
+                           XALPHAG_L=>XALPHAG,XNUG_L=>XNUG, XALPHAI_L=>XALPHAI,XNUI_L=>XNUI,&
+                           XRTMIN_L=>XRTMIN,XALPHAC_L=>XALPHAC,XNUC_L=>XNUC
 !
 USE MODE_ll
 USE MODE_IO_ll
@@ -186,6 +187,8 @@ USE MODI_TEMPORAL_DIST
 !
 USE MODD_NESTING
 !
+USE MODD_NSV, ONLY : NSV_LIMA_NI,NSV_LIMA_NR,NSV_LIMA_NC
+!
 IMPLICIT NONE
 !
 !
@@ -215,11 +218,6 @@ REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PTKE   ! turbulent kinetic energy
 REAL, DIMENSION(:,:),     INTENT(IN)     :: PTS    ! surface temperature
 REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PRHODREF ! dry air density of the reference state
 REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PCIT     ! pristine ice concentration
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDC  ! Cloud sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDR  ! Rain sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDS  ! Snow sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDG  ! Graupel sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDH  ! Hail sedimentation speed
 !
 TYPE(FLYER),              INTENT(INOUT)  :: TPFLYER! balloon/aircraft
 REAL, DIMENSION(:,:),     INTENT(IN)     :: PSEA
@@ -325,6 +323,7 @@ INTEGER :: IRESP    ! return code
 REAL, DIMENSION(SIZE(PR,3))    :: ZTEMPZ! vertical profile of temperature
 REAL, DIMENSION(SIZE(PR,3))    :: ZRHODREFZ ! vertical profile of dry air density of the reference state
 REAL, DIMENSION(SIZE(PR,3))    :: ZCIT     ! pristine ice concentration
+REAL, DIMENSION(SIZE(PR,3))    :: ZCCI,ZCCR,ZCCC     ! ICE,RAIN CLOUD concentration (LIMA)
 REAL, DIMENSION(SIZE(PR,1),SIZE(PR,2),SIZE(PR,3))    :: ZR   
 REAL, DIMENSION(SIZE(PR,3),SIZE(PR,4)+1) :: ZRZ  ! vertical profile of hydrometeor mixing ratios
 REAL                           :: ZA,ZB,ZCC,ZCX,ZALPHA,ZNU,ZLB,ZLBEX,ZRHOHYD   ! generic microphysical parameters
@@ -340,6 +339,7 @@ REAL                           :: ZFW ! liquid fraction
 REAL                           :: ZFPW ! weight for mixed-phase reflectivity
 REAL,DIMENSION(:),ALLOCATABLE  :: ZX,ZW ! Gauss-Laguerre points and weights
 REAL,DIMENSION(:),ALLOCATABLE  :: ZRTMIN ! local values for XRTMIN
+LOGICAL                        :: GCALC
 !----------------------------------------------------------------------------
 !
 !*      1.   PRELIMINARIES
@@ -1008,24 +1008,31 @@ IF ( TPFLYER%FLY) THEN
         DO JLOOP=1,SIZE(PR,4)
           TPFLYER%RZ  (IN,:,JLOOP) = FLYER_INTERPZ(PR(:,:,:,JLOOP))
         END DO
-        TPFLYER%CIZ  (IN,:) = FLYER_INTERPZ(PCIT(:,:,:))         
-        TPFLYER%FFZ  (IN,:) = FLYER_INTERPZ(SQRT(PU**2+PV**2)) 
-        TPFLYER%CIZ  (IN,:) = FLYER_INTERPZ(PCIT(:,:,:))                               
-        TPFLYER%SPEEDCZ  (IN,:) = FLYER_INTERPZ(PSPEEDC(:,:,:))                               
-        TPFLYER%SPEEDRZ  (IN,:) = FLYER_INTERPZ(PSPEEDR(:,:,:))                               
-        TPFLYER%SPEEDSZ  (IN,:) = FLYER_INTERPZ(PSPEEDS(:,:,:))                               
-        TPFLYER%SPEEDGZ  (IN,:) = FLYER_INTERPZ(PSPEEDG(:,:,:))
-        ! initialization CRARE and CRARE_ATT
+        ! Fin Modifs ON
+        TPFLYER%FFZ  (IN,:) = FLYER_INTERPZ(SQRT(PU**2+PV**2))
+        IF (CCLOUD=="LIMA") THEN                                  
+          TPFLYER%CIZ  (IN,:) = FLYER_INTERPZ(PSV(:,:,:,NSV_LIMA_NI))  
+          TPFLYER%CCZ  (IN,:) = FLYER_INTERPZ(PSV(:,:,:,NSV_LIMA_NC))  
+          TPFLYER%CRZ  (IN,:) = FLYER_INTERPZ(PSV(:,:,:,NSV_LIMA_NR))  
+        ELSE
+          TPFLYER%CIZ  (IN,:) = FLYER_INTERPZ(PCIT(:,:,:))      
+        ENDIF             
+        ! initialization CRARE and CRARE_ATT + LWC and IWC
         TPFLYER%CRARE(IN,:) = 0.
         TPFLYER%CRARE_ATT(IN,:) = 0.
         TPFLYER%LWCZ  (IN,:) = 0.
         TPFLYER%IWCZ  (IN,:) = 0.
-      IF (CCLOUD=="ICE3") THEN ! only for ICE3
-        TPFLYER%LWCZ  (IN,:) = FLYER_INTERPZ((PR(:,:,:,2)+PR(:,:,:,3))*PRHODREF(:,:,:))
-        TPFLYER%IWCZ  (IN,:) = FLYER_INTERPZ((PR(:,:,:,4)+PR(:,:,:,5)+PR(:,:,:,6))*PRHODREF(:,:,:))
-        ZTEMPZ(:)=FLYER_INTERPZ(PTH(II:II+1,IJ:IJ+1,:) * ZEXN(:,:,:))
+      IF (CCLOUD=="LIMA" .OR. CCLOUD=="ICE3" ) THEN ! only for ICE3 and LIMA
+       TPFLYER%LWCZ  (IN,:) = FLYER_INTERPZ((PR(:,:,:,2)+PR(:,:,:,3))*PRHODREF(:,:,:))
+       TPFLYER%IWCZ  (IN,:) = FLYER_INTERPZ((PR(:,:,:,4)+PR(:,:,:,5)+PR(:,:,:,6))*PRHODREF(:,:,:))
+       ZTEMPZ(:)=FLYER_INTERPZ(PTH(II:II+1,IJ:IJ+1,:) * ZEXN(:,:,:))
         ZRHODREFZ(:)=FLYER_INTERPZ(PRHODREF(:,:,:))
         ZCIT(:)=FLYER_INTERPZ(PCIT(:,:,:))
+        IF (CCLOUD=="LIMA") THEN
+          ZCCI(:)=FLYER_INTERPZ(PSV(:,:,:,NSV_LIMA_NI))
+          ZCCR(:)=FLYER_INTERPZ(PSV(:,:,:,NSV_LIMA_NR))
+          ZCCC(:)=FLYER_INTERPZ(PSV(:,:,:,NSV_LIMA_NC))
+        ENDIF
         DO JLOOP=3,6
           ZRZ(:,JLOOP)=FLYER_INTERPZ(PR(:,:,:,JLOOP))
         END DO
@@ -1041,20 +1048,45 @@ IF ( TPFLYER%FLY) THEN
         CALL GAULAG(JPTS_GAULAG,ZX,ZW) ! for integration over diameters
         ! initialize minimum values
         ALLOCATE(ZRTMIN(SIZE(PR,4)+1))
-        ZRTMIN(2)=XRTMIN_I(2) ! cloud water over sea
-        ZRTMIN(3)=XRTMIN_I(3)
-        ZRTMIN(4)=XRTMIN_I(4)
-        ZRTMIN(5)=1E-10
-        ZRTMIN(6)=XRTMIN_I(6)
-        ZRTMIN(7)=XRTMIN_I(2) ! cloud water over land        ZRTMIN(2)=XRTMIN(2) ! cloud water over sea
+        IF (CCLOUD == 'LIMA') THEN
+          ZRTMIN(2)=XRTMIN_L(2) ! cloud water over sea
+          ZRTMIN(3)=XRTMIN_L(3)
+          ZRTMIN(4)=XRTMIN_L(4)
+          ZRTMIN(5)=1E-10
+          ZRTMIN(6)=XRTMIN_L(6)
+          ZRTMIN(7)=XRTMIN_L(2) ! cloud water over land
+        ELSE
+          ZRTMIN(2)=XRTMIN_I(2) ! cloud water over sea
+          ZRTMIN(3)=XRTMIN_I(3)
+          ZRTMIN(4)=XRTMIN_I(4)
+          ZRTMIN(5)=1E-10
+          ZRTMIN(6)=XRTMIN_I(6)
+          ZRTMIN(7)=XRTMIN_I(2) ! cloud water over land
+        ENDIF
         ! compute cloud radar reflectivity from vertical profiles of temperature and mixing ratios
         DO JK=1,IKU
           QMW=SQRT(QEPSW(ZTEMPZ(JK),XLIGHTSPEED/XLAM_CRAD))
           QMI=SQRT(QEPSI(ZTEMPZ(JK),XLIGHTSPEED/XLAM_CRAD))
           DO JLOOP=2,7
-            IF(ZRZ(JK,JLOOP)>ZRTMIN(JLOOP).AND.(JLOOP.NE.4.OR.ZCIT(JK)>0.)) THEN
+            IF (CCLOUD == 'LIMA') THEN
+              GCALC=(ZRZ(JK,JLOOP)>ZRTMIN(JLOOP).AND.(JLOOP.NE.4.OR.ZCCI(JK)>0.).AND.&
+                    (JLOOP.NE.3.OR.ZCCR(JK)>0.).AND.((JLOOP.NE.2.AND. JLOOP.NE.7).OR.ZCCC(JK)>0.))
+            ELSE
+              GCALC=(ZRZ(JK,JLOOP)>ZRTMIN(JLOOP).AND.(JLOOP.NE.4.OR.ZCIT(JK)>0.))
+            ENDIF
+            IF(GCALC) THEN
               SELECT CASE(JLOOP)
                 CASE(2) ! cloud water over sea
+                  IF (CCLOUD == 'LIMA') THEN
+                    ZA=XAC_L
+                    ZB=XBC_L
+                    ZCC=ZCCC(JK)*ZRHODREFZ(JK)
+                    ZCX=0.
+                    ZALPHA=XALPHAC_L
+                    ZNU=XNUC_L
+                    ZLBEX=1.0/(ZCX-ZB)
+                    ZLB=( ZA*ZCC*MOMG(ZALPHA,ZNU,ZB) )**(-ZLBEX)
+                  ELSE
                     ZA=XAC_I
                     ZB=XBC_I
                     ZCC=XCONC_SEA
@@ -1063,7 +1095,18 @@ IF ( TPFLYER%FLY) THEN
                     ZNU=XNUC2_I
                     ZLBEX=1.0/(ZCX-ZB)
                     ZLB=( ZA*ZCC*MOMG(ZALPHA,ZNU,ZB) )**(-ZLBEX)
+                  ENDIF
                 CASE(3) ! rain water
+                  IF (CCLOUD == 'LIMA') THEN
+                    ZA=XAR_L
+                    ZB=XBR_L
+                    ZCC=ZCCR(JK)*ZRHODREFZ(JK)
+                    ZCX=0.
+                    ZALPHA=XALPHAR_L
+                    ZNU=XNUR_L
+                    ZLBEX=1.0/(ZCX-ZB)
+                    ZLB=( ZA*ZCC*MOMG(ZALPHA,ZNU,ZB) )**(-ZLBEX)
+                  ELSE
                     ZA=XAR_I
                     ZB=XBR_I
                     ZCC=XCCR_I
@@ -1072,7 +1115,19 @@ IF ( TPFLYER%FLY) THEN
                     ZNU=XNUR_I
                     ZLB=XLBR_I
                     ZLBEX=XLBEXR_I
+                  ENDIF
                 CASE(4) ! pristine ice
+                  IF (CCLOUD == 'LIMA') THEN
+                    ZA=XAI_L
+                    ZB=XBI_L
+                    ZCC=ZCCI(JK)*ZRHODREFZ(JK)
+                    ZCX=0.
+                    ZALPHA=XALPHAI_L
+                    ZNU=XNUI_L
+                    ZLBEX=1.0/(ZCX-ZB)
+                    ZLB=( ZA*ZCC*MOMG(ZALPHA,ZNU,ZB) )**(-ZLBEX) ! because ZCC not included in XLBI
+                    ZFW=0
+                  ELSE
                     ZA=XAI_I
                     ZB=XBI_I
                     ZCC=ZCIT(JK)
@@ -1082,7 +1137,19 @@ IF ( TPFLYER%FLY) THEN
                     ZLBEX=XLBEXI_I
                     ZLB=XLBI_I*ZCC**(-ZLBEX) ! because ZCC not included in XLBI
                     ZFW=0
+                  ENDIF                          
                 CASE(5) ! snow
+                  IF (CCLOUD == 'LIMA') THEN
+                    ZA=XAS_L
+                    ZB=XBS_L
+                    ZCC=XCCS_L
+                    ZCX=XCXS_L
+                    ZALPHA=XALPHAS_L
+                    ZNU=XNUS_L
+                    ZLB=XLBS_L
+                    ZLBEX=XLBEXS_L
+                    ZFW=0
+                  ELSE
                     ZA=XAS_I
                     ZB=XBS_I
                     ZCC=XCCS_I
@@ -1092,6 +1159,7 @@ IF ( TPFLYER%FLY) THEN
                     ZLB=XLBS_I
                     ZLBEX=XLBEXS_I
                     ZFW=0
+                  ENDIF
                 CASE(6) ! graupel
                   !If temperature between -10 and 10°C and Mr and Mg over min threshold: melting graupel
                   ! with liquid water fraction Fw=Mr/(Mr+Mg) else dry graupel (Fw=0)    
@@ -1101,6 +1169,16 @@ IF ( TPFLYER%FLY) THEN
                   ELSE
                     ZFW=0
                   ENDIF
+                  IF (CCLOUD == 'LIMA') THEN
+                    ZA=XAG_L
+                    ZB=XBG_L
+                    ZCC=XCCG_L
+                    ZCX=XCXG_L
+                    ZALPHA=XALPHAG_L
+                    ZNU=XNUG_L
+                    ZLB=XLBG_L
+                    ZLBEX=XLBEXG_L
+                  ELSE
                     ZA=XAG_I
                     ZB=XBG_I
                     ZCC=XCCG_I
@@ -1109,7 +1187,18 @@ IF ( TPFLYER%FLY) THEN
                     ZNU=XNUG_I
                     ZLB=XLBG_I
                     ZLBEX=XLBEXG_I
+                  ENDIF                          
                 CASE(7) ! cloud water over land
+                  IF (CCLOUD == 'LIMA') THEN
+                    ZA=XAC_L
+                    ZB=XBC_L
+                    ZCC=ZCCC(JK)*ZRHODREFZ(JK)
+                    ZCX=0.
+                    ZALPHA=XALPHAC_L
+                    ZNU=XNUC_L
+                    ZLBEX=1.0/(ZCX-ZB)
+                    ZLB=( ZA*ZCC*MOMG(ZALPHA,ZNU,ZB) )**(-ZLBEX)
+                  ELSE
                     ZA=XAC_I
                     ZB=XBC_I
                     ZCC=XCONC_LAND
@@ -1118,6 +1207,7 @@ IF ( TPFLYER%FLY) THEN
                     ZNU=XNUC_I
                     ZLBEX=1.0/(ZCX-ZB)
                     ZLB=( ZA*ZCC*MOMG(ZALPHA,ZNU,ZB) )**(-ZLBEX)
+                  ENDIF
               END SELECT
               ZLBDA=ZLB*(ZRHODREFZ(JK)*ZRZ(JK,JLOOP))**ZLBEX
               ZREFLOC=0.
@@ -1386,12 +1476,12 @@ IF ( GSTORE ) THEN
     ENDDO
     CALL DISTRIBUTE_FLYER(TPFLYER%FFZ (IN,JLOOP))
     CALL DISTRIBUTE_FLYER(TPFLYER%CIZ (IN,JLOOP))
+    IF (CCLOUD== 'LIMA' ) THEN
+      CALL DISTRIBUTE_FLYER(TPFLYER%CRZ (IN,JLOOP))
+      CALL DISTRIBUTE_FLYER(TPFLYER%CCZ (IN,JLOOP))      
+    ENDIF
     CALL DISTRIBUTE_FLYER(TPFLYER%IWCZ (IN,JLOOP))
     CALL DISTRIBUTE_FLYER(TPFLYER%LWCZ (IN,JLOOP))
-    CALL DISTRIBUTE_FLYER(TPFLYER%SPEEDCZ (IN,JLOOP))
-    CALL DISTRIBUTE_FLYER(TPFLYER%SPEEDRZ (IN,JLOOP))
-    CALL DISTRIBUTE_FLYER(TPFLYER%SPEEDSZ (IN,JLOOP))
-    CALL DISTRIBUTE_FLYER(TPFLYER%SPEEDGZ (IN,JLOOP))    
     CALL DISTRIBUTE_FLYER(TPFLYER%CRARE (IN,JLOOP))
     CALL DISTRIBUTE_FLYER(TPFLYER%CRARE_ATT (IN,JLOOP))
     CALL DISTRIBUTE_FLYER(TPFLYER%WZ (IN,JLOOP))
diff --git a/src/MNH/boundaries.f90 b/src/MNH/boundaries.f90
index ea327bccb..e40949d5e 100644
--- a/src/MNH/boundaries.f90
+++ b/src/MNH/boundaries.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$ $Date$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/boundaries.f90,v $ $Revision: 1.3.2.1.2.1.2.2.12.3 $ $Date: 2014/01/09 15:01:54 $
 !-----------------------------------------------------------------
 !#####################
 MODULE MODI_BOUNDARIES
@@ -171,6 +171,7 @@ END MODULE MODI_BOUNDARIES
 !!                                 for non normal velocity and potential temp
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!      Redelsperger & Pianezze : 08/2015 : add XPOND coefficient
+!!      Modification    01/2016  (JP Pinty) Add LIMA that is LBC for CCN and IFN
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -188,8 +189,11 @@ USE MODD_CONDSAMP,    ONLY : LCONDSAMP
 USE MODD_ELEC_DESCR             
 USE MODD_ELEC_n                 
 USE MODD_REF_n    
-USE MODD_PARAM_n,    ONLY : CELEC 
+USE MODD_PARAM_n,    ONLY : CELEC,CCLOUD 
 USE MODD_LBC_n,      ONLY : XPOND
+!
+USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, LBOUND, LWARM, LCOLD
+!
 #ifdef MNH_FOREFIRE
 USE MODD_FOREFIRE,   ONLY : LFOREFIRE
 #endif
@@ -262,7 +266,7 @@ REAL                :: ZPOND      !  Coeff PONDERATION LS
 INTEGER             :: ILBX,ILBY ! size of LB fields' arrays
 LOGICAL, SAVE, DIMENSION(:), ALLOCATABLE :: GCHBOUNDARY, GAERBOUNDARY,&
                     GDSTBOUNDARY, GSLTBOUNDARY, GPPBOUNDARY,          &
-                    GCSBOUNDARY, GICBOUNDARY 
+                    GCSBOUNDARY, GICBOUNDARY, GLIMABOUNDARY 
 LOGICAL, SAVE        :: GFIRSTCALL1 = .TRUE.
 LOGICAL, SAVE        :: GFIRSTCALL2 = .TRUE.
 LOGICAL, SAVE        :: GFIRSTCALL3 = .TRUE.
@@ -270,6 +274,7 @@ LOGICAL, SAVE        :: GFIRSTCALL5 = .TRUE.
 LOGICAL, SAVE        :: GFIRSTCALLPP = .TRUE.                         
 LOGICAL, SAVE        :: GFIRSTCALLCS = .TRUE.                         
 LOGICAL, SAVE        :: GFIRSTCALLIC = .TRUE.                 
+LOGICAL, SAVE        :: GFIRSTCALLLIMA = .TRUE.                 
 !
 REAL, DIMENSION(SIZE(PLBXWM,1),SIZE(PLBXWM,2),SIZE(PLBXWM,3)) ::  &
                        ZLBXVT,ZLBXWT,ZLBXTHT
@@ -290,6 +295,9 @@ REAL, DIMENSION(SIZE(PLBYSVM,1),SIZE(PLBYSVM,2),SIZE(PLBYSVM,3),SIZE(PLBYSVM,4))
 LOGICAL              :: GCHTMP
 LOGICAL              :: GPPTMP
 LOGICAL              :: GCSTMP
+!
+LOGICAL, SAVE        :: GFIRSTCALL4 = .TRUE.
+!
 #ifdef MNH_FOREFIRE
 LOGICAL, SAVE, DIMENSION(:), ALLOCATABLE ::  GFFBOUNDARY
 LOGICAL, SAVE        :: GFIRSTCALLFF = .TRUE.                         
@@ -855,6 +863,36 @@ END SELECT
 END IF
 !
 !
+IF (CCLOUD == 'LIMA' .AND. IMI == 1) THEN
+  IF (GFIRSTCALLLIMA) THEN
+    ALLOCATE(GLIMABOUNDARY(NSV_LIMA))
+    GFIRSTCALLLIMA = .FALSE.
+    DO JSV=NSV_LIMA_BEG,NSV_LIMA_END
+       GCHTMP = .FALSE.
+       IF (LWEST_ll().AND.HLBCX(1)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(JPHEXT,:,:,JSV)==0)
+       IF (LEAST_ll().AND.HLBCX(2)=='OPEN')  GCHTMP = GCHTMP .OR. ALL(PLBXSVM(ILBX-JPHEXT+1,:,:,JSV)==0)
+       IF (LSOUTH_ll().AND.HLBCY(1)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,JPHEXT,:,JSV)==0)
+       IF (LNORTH_ll().AND.HLBCY(2)=='OPEN') GCHTMP = GCHTMP .OR. ALL(PLBYSVM(:,ILBY-JPHEXT+1,:,JSV)==0)
+       GLIMABOUNDARY(JSV-NSV_LIMA_BEG+1) = GCHTMP
+    ENDDO
+    ENDIF
+
+  DO JSV=NSV_LIMA_CCN_FREE,NSV_LIMA_CCN_FREE+NMOD_CCN-1 ! LBC for CCN from MACC
+    IF (GLIMABOUNDARY(JSV-NSV_LIMA_CCN_FREE+1)) THEN
+      IF (SIZE(PSVT)>0) THEN
+        CALL CH_BOUNDARIES (HLBCX,HLBCY,PUT,PVT,PSVT(:,:,:,JSV))
+      ENDIF
+    ENDIF
+  ENDDO 
+  DO JSV=NSV_LIMA_IFN_FREE,NSV_LIMA_IFN_FREE+NMOD_IFN-1 ! LBC for IFN from MACC
+    IF (GLIMABOUNDARY(JSV-NSV_LIMA_IFN_FREE+1)) THEN
+      IF (SIZE(PSVT)>0) THEN
+        CALL CH_BOUNDARIES (HLBCX,HLBCY,PUT,PVT,PSVT(:,:,:,JSV))
+      ENDIF
+    ENDIF
+  ENDDO 
+ENDIF
+!
 IF (LUSECHEM .AND. IMI == 1) THEN
   IF (GFIRSTCALL1) THEN
     ALLOCATE(GCHBOUNDARY(NSV_CHEM))
diff --git a/src/MNH/deallocate_model1.f90 b/src/MNH/deallocate_model1.f90
index d5033dc2e..3a3ca6153 100644
--- a/src/MNH/deallocate_model1.f90
+++ b/src/MNH/deallocate_model1.f90
@@ -90,7 +90,7 @@ USE MODD_PRECIP_n
 USE MODD_ELEC_n
 USE MODD_PASPOL_n
 USE MODD_RAIN_ICE_PARAM
-USE MODD_RAIN_ICE_DESCR
+USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN_ICE=>XRTMIN
 USE MODE_MODELN_HANDLER
 !
 ! Modif 2D
@@ -104,6 +104,11 @@ USE MODD_RELFRC_n
 USE MODD_ADV_n
 USE MODD_PAST_FIELD_n
 USE MODD_TURB_n
+! LIMA
+!USE MODD_PARAM_LIMA_WARM
+!USE MODD_LIMA_PRECIP_SCAVENGING_n
+!USE MODD_PARAM_LIMA
+!USE MODD_PARAM_LIMA_MIXED
 IMPLICIT NONE
 !
 !*       0.1   declarations of arguments
@@ -512,8 +517,8 @@ END IF
 !
 !*     14.     Modules RAIN_ICE_DESCR and MODD_RAIN_ICE_PARAM
 !
-IF (  ALLOCATED(XRTMIN) .AND. KCALL == 4 ) THEN
-  DEALLOCATE( XRTMIN )
+IF (  ALLOCATED(XRTMIN_ICE) .AND. KCALL == 4 ) THEN
+  DEALLOCATE( XRTMIN_ICE )
   DEALLOCATE( XGAMINC_RIM1 )
   DEALLOCATE( XGAMINC_RIM2 )
   DEALLOCATE( XKER_RACCSS )
@@ -538,6 +543,52 @@ IF ( KCALL==3 ) THEN
   IF (ASSOCIATED(XDISS)) DEALLOCATE(XDISS)
   IF (ASSOCIATED(XLEM)) DEALLOCATE(XLEM)
 END IF
+!
+!*     17.     Module LIMA           
+!
+!IF ( KCALL == 4 ) THEN
+!    IF (ALLOCATED(XHYPF12)) DEALLOCATE(XHYPF12  )
+!    IF (ALLOCATED(XHYPF32)) DEALLOCATE(XHYPF32  )
+!    IF (ALLOCATED(XAHENG)) DEALLOCATE(XAHENG  )
+!    IF (ALLOCATED(XPSI1)) DEALLOCATE(XPSI1  )
+!    IF (ALLOCATED(XPSI3)) DEALLOCATE(XPSI3  )
+!    IF (ALLOCATED(XAHENF)) DEALLOCATE(XAHENF  )
+!    IF (ALLOCATED(XAHENY)) DEALLOCATE(XAHENY )
+!    IF (ALLOCATED(XCONCC_INI)) DEALLOCATE( XCONCC_INI)
+!    IF (ALLOCATED(XCONCR_PARAM_INI)) DEALLOCATE(XCONCR_PARAM_INI )
+!    IF (ASSOCIATED(XINPAP)) DEALLOCATE(XINPAP)
+!    IF (ASSOCIATED(XACPAP)) DEALLOCATE(XACPAP)
+!    IF (ALLOCATED(NIMM)) DEALLOCATE( NIMM)
+!    IF (ALLOCATED(NINDICE_CCN_IMM)) DEALLOCATE(NINDICE_CCN_IMM )
+!    IF (ALLOCATED(NSPECIE)) DEALLOCATE(NSPECIE )
+!    IF (ALLOCATED(XMDIAM_IFN)) DEALLOCATE(XMDIAM_IFN )
+!    IF (ALLOCATED(XSIGMA_IFN)) DEALLOCATE( XSIGMA_IFN)
+!    IF (ALLOCATED(XRHO_IFN)) DEALLOCATE(XRHO_IFN )
+!    IF (ALLOCATED(XFRAC)) DEALLOCATE(XFRAC )
+!    IF (ALLOCATED(XFRAC_REF)) DEALLOCATE(XFRAC_REF )
+!    IF (ALLOCATED(XABSCISS)) DEALLOCATE(XABSCISS )
+!    IF (ALLOCATED(XWEIGHT)) DEALLOCATE(XWEIGHT )
+!    IF (ALLOCATED(XR_MEAN_CCN)) DEALLOCATE(XR_MEAN_CCN )
+!    IF (ALLOCATED(XLOGSIG_CCN)) DEALLOCATE(XLOGSIG_CCN )
+!    IF (ALLOCATED(XRHO_CCN)) DEALLOCATE(XRHO_CCN )
+!    IF (ALLOCATED(XKHEN_MULTI)) DEALLOCATE(XKHEN_MULTI )
+!    IF (ALLOCATED(XMUHEN_MULTI)) DEALLOCATE(XMUHEN_MULTI )
+!    IF (ALLOCATED(XBETAHEN_MULTI)) DEALLOCATE(XBETAHEN_MULTI )
+!    IF (ALLOCATED(XCONC_CCN_TOT)) DEALLOCATE(XCONC_CCN_TOT )
+!    IF (ALLOCATED(XLIMIT_FACTOR)) DEALLOCATE(XLIMIT_FACTOR )
+!    IF (ALLOCATED(XRTMIN)) DEALLOCATE(XRTMIN )
+!    IF (ALLOCATED(XCTMIN)) DEALLOCATE(XCTMIN )
+!    IF (ALLOCATED(XGAMINC_RIM1)) DEALLOCATE(XGAMINC_RIM1 )
+!    IF (ALLOCATED(XGAMINC_RIM2)) DEALLOCATE( XGAMINC_RIM2)
+!    IF (ALLOCATED(XGAMINC_HMC)) DEALLOCATE(XGAMINC_HMC )
+!    IF (ALLOCATED(XKER_RACCSS)) DEALLOCATE(XKER_RACCSS )
+!    IF (ALLOCATED(XKER_RACCS)) DEALLOCATE(XKER_RACCS )
+!    IF (ALLOCATED(XKER_SACCRG)) DEALLOCATE(XKER_SACCRG )
+!    IF (ALLOCATED(XKER_SDRYG)) DEALLOCATE(XKER_SDRYG )
+!    IF (ALLOCATED(XKER_RDRYG)) DEALLOCATE(XKER_RDRYG )
+!    IF (ALLOCATED(XKER_SWETH)) DEALLOCATE(XKER_SWETH )
+!    IF (ALLOCATED(XKER_GWETH)) DEALLOCATE(XKER_GWETH )
+!ENDIF
 !-------------------------------------------------------------------------------
 !
 CALL GOTO_MODEL(IMI)
diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90
index c99ba20e7..42d98ea0e 100644
--- a/src/MNH/default_desfmn.f90
+++ b/src/MNH/default_desfmn.f90
@@ -209,6 +209,7 @@ END MODULE MODI_DEFAULT_DESFM_n
 !!                   07/2013  (Bosseur & Filippi) adds Forefire
 !!                   08/2015  (Redelsperger & Pianezze) add XPOND coefficient for LBC
 !!                   04/2016 (C.LAC) negative contribution to the budget splitted between advection, turbulence and microphysics for KHKO/C2R2
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -249,6 +250,23 @@ USE MODD_PASPOL
 USE MODD_CONDSAMP
 USE MODD_MEAN_FIELD
 USE MODD_DRAGTREE
+!
+!
+USE MODD_PARAM_LIMA, ONLY : LCOLD, LNUCL, LSEDI, LHHONI, LSNOW, LHAIL, LMEYERS,&
+                            NMOD_IFN, XIFN_CONC, LIFN_HOM, CIFN_SPECIES,          &
+                            CINT_MIXING, NMOD_IMM, NIND_SPECIE,                  &
+                            CPRISTINE_ICE_LIMA, CHEVRIMED_ICE_LIMA,            &
+                            XFACTNUC_DEP, XFACTNUC_CON,                        &
+                            OWARM=>LWARM, LACTI, ORAIN=>LRAIN, OSEDC=>LSEDC,   &
+                            OACTIT=>LACTIT, LBOUND, NMOD_CCN, XCCN_CONC,        &
+                            LCCN_HOM, CCCN_MODES,                                &
+                            YALPHAR=>XALPHAR, YNUR=>XNUR,                      &
+                            YALPHAC=>XALPHAC, YNUC=>XNUC, CINI_CCN=>HINI_CCN,  &
+                            CTYPE_CCN=>HTYPE_CCN, YFSOLUB_CCN=>XFSOLUB_CCN,    &
+                            YACTEMP_CCN=>XACTEMP_CCN, YAERDIFF=>XAERDIFF,      &
+                            YAERHEIGHT=>XAERHEIGHT,                            &
+                            LSCAV, LAERO_MASS, NPHILLIPS
+!
 USE MODD_LATZ_EDFLX
 USE MODD_2D_FRC
 #ifdef MNH_FOREFIRE
@@ -386,6 +404,9 @@ LHORELAX_SVSLT  = .FALSE.
 LHORELAX_SVPP   = .FALSE.
 LHORELAX_SVCS   = .FALSE.
 LHORELAX_SVAER  = .FALSE.
+!
+LHORELAX_SVLIMA = .FALSE.
+!
 #ifdef MNH_FOREFIRE
 LHORELAX_SVFF   = .FALSE.
 #endif
@@ -1052,6 +1073,68 @@ ENDIF
 !
 !-------------------------------------------------------------------------------
 !
+!*      19.BIS   SET DEFAULT VALUES FOR MODD_PARAM_LIMA :
+!                ----------------------------------------
+!
+IF (KMI == 1) THEN
+  YNUC    = 1.0
+  YALPHAC = 3.0
+  YNUR    = 2.0
+  YALPHAR = 1.0
+!
+  OWARM  = .TRUE.
+  LACTI  = .TRUE.
+  ORAIN  = .TRUE.
+  OSEDC  = .TRUE.
+  OACTIT = .FALSE.
+  LBOUND = .FALSE.
+!
+  CINI_CCN   = 'XXX'
+  CTYPE_CCN(:) = 'X'
+!
+  YAERDIFF    = 0.0
+  YAERHEIGHT  = 2000.
+!  YR_MEAN_CCN = 0.0   ! In case of 'CCN' initialization
+!  YLOGSIG_CCN = 0.0
+  YFSOLUB_CCN = 1.0
+  YACTEMP_CCN = 280.
+!
+  NMOD_CCN = 1
+!
+!* AP Scavenging
+!
+  LSCAV      = .FALSE.
+  LAERO_MASS = .FALSE.
+!
+  LCCN_HOM = .TRUE.
+  CCCN_MODES = ''
+  XCCN_CONC(:)=0.
+ENDIF
+!
+IF (KMI == 1) THEN
+  LHHONI = .FALSE.
+  LCOLD  = .TRUE.
+  LNUCL  = .TRUE.
+  LSEDI  = .TRUE.
+  LSNOW  = .TRUE.
+  LHAIL  = .FALSE.
+  CPRISTINE_ICE_LIMA = 'PLAT'
+  CHEVRIMED_ICE_LIMA = 'GRAU'
+  XFACTNUC_DEP = 1.0  
+  XFACTNUC_CON = 1.0
+  NMOD_IFN = 1
+  NIND_SPECIE = 1
+  LMEYERS = .FALSE.
+  LIFN_HOM = .TRUE.
+  CIFN_SPECIES = 'PHILLIPS'
+  CINT_MIXING = ''
+  XIFN_CONC(:) = 0.
+  NMOD_IMM = 0
+  NPHILLIPS=8
+ENDIF
+!
+!-------------------------------------------------------------------------------
+!
 !*      20.   SET DEFAULT VALUES FOR MODD_CH_MNHC_n
 !             -------------------------------------
 !
diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90
index b74d9be93..2752a91a5 100644
--- a/src/MNH/diag.f90
+++ b/src/MNH/diag.f90
@@ -75,6 +75,7 @@
 !!  09/2015     (S. Bielli)    Add netcdf call for phys_param
 !!  04/2016     (G.Delautier) replace print by write in OUTPUT LISTING
 !!  06/2016     (G.Delautier) phasage surfex 8
+!!  09/2016      (JP Pinty) Add LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -118,6 +119,7 @@ USE MODD_LES
 USE MODD_LES_BUDGET
 USE MODD_BUDGET
 USE MODD_RADAR
+USE MODD_PARAM_LIMA, ONLY : LLIMA_DIAG
 !
 USE MODN_DIAG_BLANK
 !
@@ -198,7 +200,6 @@ LOGICAL, DIMENSION(:,:),ALLOCATABLE     :: GMASKkids ! kids domains mask
 INTEGER :: IIU, IJU, IKU
 INTEGER :: IINFO_ll               ! return code for _ll routines 
 REAL, DIMENSION(:,:),ALLOCATABLE          :: ZSEA,ZTOWN
-REAL, DIMENSION(:,:,:),ALLOCATABLE        :: ZWORK
 !
 NAMELIST/NAM_DIAG/ CISO, LVAR_RS, LVAR_LS,   &
                    NCONV_KF, NRAD_3D, CRAD_SAT, NRTTOVINFO, LRAD_SUBG_COND,  &
@@ -221,7 +222,7 @@ NAMELIST/NAM_DIAG/ CISO, LVAR_RS, LVAR_LS,   &
                    XGRID,NBELEV,XELEV,NBRAD,LQUAD,LFALL,LWBSCS,LWREFL,&
                    XREFLMIN,XREFLVDOPMIN,LSNRT,XSNRMIN,&
                    LLIDAR,CVIEW_LIDAR,XALT_LIDAR,XWVL_LIDAR,&
-                   LISOPR,XISOPR,LISOTH,XISOTH, LHU_FLX
+                   LISOPR,XISOPR,LISOTH,XISOTH, LHU_FLX, LLIMA_DIAG
 !
 NAMELIST/NAM_DIAG_FILE/ YINIFILE,YINIFILEPGD, YSUFFIX
 NAMELIST/NAM_STO_FILE/ CFILES, NSTART_SUPP
@@ -291,6 +292,7 @@ LCHAQDIAG=.FALSE.
 XCHEMLAT(:)=XUNDEF
 XCHEMLON(:)=XUNDEF
 LTRAJ=.FALSE.
+LLIMA_DIAG=.FALSE.
 !
 LAIRCRAFT_BALLOON=.FALSE.
 NTIME_AIRCRAFT_BALLOON=NUNDEF
@@ -549,9 +551,8 @@ IF ( LAIRCRAFT_BALLOON ) THEN
                       TDTEXP, TDTMOD, TDTCUR, TXDTBAL, &
                       XXHAT, XYHAT, XZZ, XMAP, XLONORI, XLATORI, &
                       XUT, XVT, XWT, XPABST, XTHT, XRT, XSVT,    &
-                      XTKET, XTSRAD, XRHODREF,XCIT,    &
-                      ZWORK,ZWORK,ZWORK,ZWORK,ZWORK,ZSEA)
-  DEALLOCATE (ZSEA,ZTOWN,ZWORK)
+                      XTKET, XTSRAD, XRHODREF,XCIT,ZSEA)
+  DEALLOCATE (ZSEA,ZTOWN)
 !
 !-----------------------------
 !
diff --git a/src/MNH/ecmwf_radiation_vers2.f90 b/src/MNH/ecmwf_radiation_vers2.f90
index e71720023..390732604 100644
--- a/src/MNH/ecmwf_radiation_vers2.f90
+++ b/src/MNH/ecmwf_radiation_vers2.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/ecmwf_radiation_vers2.f90,v $ $Revision: 1.3.2.4.2.2.2.1 $
 ! masdev4_7 BUG1 2007/06/15 17:47:17
 !-----------------------------------------------------------------
 !      #################################
@@ -204,6 +204,7 @@ SUBROUTINE ECMWF_RADIATION_VERS2 ( KLON,KLEV,KRAD_DIAG, KAER, &
 !         B. Aouizerats 09/2010 Explicit aerosol optical properties computation
 !         G.Delautier 9/2014: remplace MODD_RAIN_C2R2_PARAM par MODD_RAIN_C2R2_KHKO_PARAM
 !         M.Mazoyer 2016 :  limit of 100 microns for effective radius 
+!         B.VIE 2016 : LIMA
 !-----------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -232,23 +233,33 @@ USE YOERRTWN , ONLY : NG ,NSPA ,NSPB ,WAVENUM1  ,&
 !
 !MESO-NH modules
 USE MODD_PARAMETERS
-USE MODD_RAIN_C2R2_KHKO_PARAM, ONLY : XCREC, XCRER, XFREFFR
-USE MODD_RAIN_C2R2_DESCR, ONLY : XAC, XAR,       &
-                                 XLBEXC, XLBEXR, &
-                                 XRTMIN, XCTMIN
-USE MODD_ICE_C1R3_PARAM,  ONLY : XFREFFI
-USE MODD_ICE_C1R3_DESCR,  ONLY : XLBEXI,                      &
+USE MODD_RAIN_C2R2_KHKO_PARAM, ONLY : UCREC=>XCREC, UCRER=>XCRER, UFREFFR=>XFREFFR
+USE MODD_RAIN_C2R2_DESCR, ONLY : UAC=>XAC, UAR=>XAR,       &
+                                 ULBEXC=>XLBEXC, ULBEXR=>XLBEXR, &
+                                 URTMIN=>XRTMIN, UCTMIN=>XCTMIN
+USE MODD_ICE_C1R3_PARAM,  ONLY : YFREFFI=>XFREFFI
+USE MODD_ICE_C1R3_DESCR,  ONLY : YLBEXI=>XLBEXI,                      &
                                  YRTMIN=>XRTMIN, YCTMIN=>XCTMIN
 USE MODD_CST
 USE MODD_CRAD
 
-USE MODD_PARAM_C2R2,  ONLY : XALPHAC,XNUC,XALPHAR,XNUR !
-USE MODD_PARAM_RAD_n,  ONLY : CAOP  
+USE MODD_PARAM_C2R2,  ONLY : UALPHAC=>XALPHAC,UNUC=>XNUC, &
+                             UALPHAR=>XALPHAR,UNUR=>XNUR !
+USE MODD_PARAM_RAD_n,  ONLY : CAOP                               
 !
 USE MODI_LW
 USE MODI_RRTM_RRTM_140GP
 USE MODI_SW
-!                             
+!
+! LIMA
+USE MODD_PARAM_n, ONLY : CCLOUD
+USE MODD_PARAM_LIMA, ONLY : ZRTMIN=>XRTMIN, ZCTMIN=>XCTMIN, &
+                            ZALPHAC=>XALPHAC, ZNUC=>XNUC,   &
+                            ZALPHAR=>XALPHAR, ZNUR=>XNUR
+USE MODD_PARAM_LIMA_WARM, ONLY : ZCREC=>XCREC, ZCRER=>XCRER, ZFREFFR=>XFREFFR, &
+                                 ZAC=>XAC, ZAR=>XAR, ZLBEXC=>XLBEXC, ZLBEXR=>XLBEXR
+USE MODD_PARAM_LIMA_COLD, ONLY : ZFREFFI=>XFREFFI, ZLBEXI=>XLBEXI
+!
 IMPLICIT NONE
 !
 !
@@ -405,8 +416,74 @@ REAL, DIMENSION(KLON,KLEV,16)  :: ZTAUCLD
 REAL, DIMENSION(KLON,KAER,KLEV) :: ZAER_SW,ZAER_LW ! Optical aerosol properties
 LOGICAL :: GPROP_OP             !drapeau sur les condition a remplir pour que le
                                 !calcul des propriétés optiques soit effectué
+!
+REAL, ALLOCATABLE, DIMENSION(:) :: XRTMIN, XCTMIN
+REAL :: XALPHAC,XNUC,XALPHAR,XNUR,XCREC,XCRER,XFREFFR,XAC,XAR,XLBEXC,XLBEXR,XFREFFI,XLBEXI
 !--------------------------------------------------------------
 !
+!          0. LIMA
+IF ( CCLOUD == "LIMA" ) THEN
+   ALLOCATE(XRTMIN(SIZE(ZRTMIN,1)))
+   ALLOCATE(XCTMIN(SIZE(ZCTMIN,1)))
+   XRTMIN(:)=ZRTMIN(:)
+   XCTMIN(:)=ZCTMIN(:)
+
+   XALPHAC = ZALPHAC
+   XNUC    = ZNUC
+   XALPHAR = ZALPHAR
+   XNUR    = ZNUR
+   XCREC   = ZCREC
+   XCRER   = ZCRER
+   XFREFFR = ZFREFFR
+   XAC     = ZAC
+   XAR     = ZAR
+   XLBEXC  = ZLBEXC
+   XLBEXR  = ZLBEXR
+   XFREFFI = ZFREFFI
+   XLBEXI  = ZLBEXI
+
+ELSE IF (CCLOUD == "C3R5") THEN
+   ALLOCATE(XRTMIN(SIZE(YRTMIN,1)))
+   ALLOCATE(XCTMIN(SIZE(YCTMIN,1)))
+   XRTMIN(:)=YRTMIN(:)
+   XCTMIN(:)=YCTMIN(:)
+
+   XALPHAC = UALPHAC
+   XNUC    = UNUC
+   XALPHAR = UALPHAR
+   XNUR    = UNUR
+   XCREC   = UCREC
+   XCRER   = UCRER
+   XFREFFR = UFREFFR
+   XAC     = UAC
+   XAR     = UAR
+   XLBEXC  = ULBEXC
+   XLBEXR  = ULBEXR
+   XFREFFI = YFREFFI
+   XLBEXI  = YLBEXI
+
+ELSE IF (CCLOUD == "C2R2" .OR. CCLOUD == "KHKO") THEN
+   ALLOCATE(XRTMIN(SIZE(URTMIN,1)))
+   ALLOCATE(XCTMIN(SIZE(UCTMIN,1)))
+   XRTMIN(:)=URTMIN(:)
+   XCTMIN(:)=UCTMIN(:)
+
+   XALPHAC = UALPHAC
+   XNUC    = UNUC
+   XALPHAR = UALPHAR
+   XNUR    = UNUR
+   XCREC   = UCREC
+   XCRER   = UCRER
+   XFREFFR = UFREFFR
+   XAC     = UAC
+   XAR     = UAR
+   XLBEXC  = ULBEXC
+   XLBEXR  = ULBEXR
+   XFREFFI = YFREFFI
+   XLBEXI  = YLBEXI
+
+END IF
+!
 !*         1.     SET-UP INPUT QUANTITIES FOR RADIATION
 !                 -------------------------------------
 !  
@@ -707,8 +784,10 @@ DO JK = 1 , KLEV
 ! based on the prediction of the number concentrations
 !
           ZRHO(JL) =  (1./XRD)*(PAP(JL,IKL)/ PT(JL,IKL)) 
-          ZRADIP(JL) = 0.0
-          IF (PCIT_C1R3(JL, IKL)>YCTMIN(4) .AND. PIWC(JL,IKL)>YRTMIN(4)) THEN
+!BVIE
+!          ZRADIP(JL) = 0.0
+          ZRADIP(JL) = 40.0
+          IF (PCIT_C1R3(JL, IKL)>XCTMIN(4) .AND. PIWC(JL,IKL)>XRTMIN(4)) THEN
             ZMR(JL) = PIWC(JL,IKL)
             ZRADIP(JL) = 1.0E6 * XFREFFI*(ZMR(JL)/PCIT_C1R3(JL,IKL))**(XLBEXI)
             ZDESR(JL)  = 2.0 * ZRADIP(JL)
diff --git a/src/MNH/goto_model_wrapper.f90 b/src/MNH/goto_model_wrapper.f90
index 24127f9a2..c4da956c9 100644
--- a/src/MNH/goto_model_wrapper.f90
+++ b/src/MNH/goto_model_wrapper.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/goto_model_wrapper.f90,v $ $Revision: 1.2.4.1.2.3.4.2.2.3 $
 ! MASDEV4_7 newsrc 2006/06/26 12:01:39
 !
 !!    MODIFICATIONS
@@ -13,6 +13,7 @@
 !!      06/12 (Tomasini) Grid-nesting of ADVFRC and EDDY_FLUX
 !!      07/13 (Bosseur & Filippi) adds Forefire
 !!      2014 (Faivre)
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !-----------------------------------------------------------------
 MODULE MODI_GOTO_MODEL_WRAPPER
 
@@ -100,6 +101,9 @@ USE MODD_CH_ROSENBROCK_n
 USE MODD_RBK90_Global_n
 USE MODD_RBK90_JacobianSP_n
 USE MODD_RBK90_Parameters_n
+!
+USE MODD_LIMA_PRECIP_SCAVENGING_n
+!
 USE MODD_DEF_EDDY_FLUX_n
 USE MODD_DEF_EDDYUV_FLUX_n
 USE MODD_RELFRC_n
@@ -183,6 +187,9 @@ CALL CH_ROSENBROCK_GOTO_MODEL(KFROM, KTO)
 CALL RBK90_Global_GOTO_MODEL(KFROM, KTO)
 CALL RBK90_JacobianSP_GOTO_MODEL(KFROM, KTO)
 CALL RBK90_Parameters_GOTO_MODEL(KFROM, KTO)
+!
+CALL LIMA_PRECIP_SCAVENGING_GOTO_MODEL(KFROM, KTO)
+!
 CALL EDDY_FLUX_GOTO_MODEL(KFROM, KTO)
 CALL EDDYUV_FLUX_GOTO_MODEL(KFROM, KTO)
 CALL ADVFRC_GOTO_MODEL(KFROM, KTO)
diff --git a/src/MNH/ground_paramn.f90 b/src/MNH/ground_paramn.f90
index e5a5a624e..28d80b642 100644
--- a/src/MNH/ground_paramn.f90
+++ b/src/MNH/ground_paramn.f90
@@ -105,6 +105,7 @@ END MODULE MODI_GROUND_PARAM_n
 !!     (J.escobar)            18/10/2012 missing USE MODI_COUPLING_SURF_ATM_n & MODI_DIAG_SURF_ATM_n
 !      (J.escobar)            2/2014 add Forefire coupling
 !!  06/2016     (G.Delautier) phasage surfex 8
+!!     (B.Vie)                2016 LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -161,6 +162,8 @@ USE MODD_TIME_n
 USE MODD_TIME
 USE MODI_TEMPORAL_DIST
 !
+USE MODD_PARAM_LIMA, ONLY : MSEDC=>LSEDC
+!
 IMPLICIT NONE
 !
 !
@@ -445,8 +448,9 @@ ZRHOA(:,:) = ZPA(:,:)/(XRD * ZTA(:,:) * ((1. + (XRD/XRV)*ZRVA(:,:))/ &
 ZRAIN=0.
 ZSNOW=0.
 IF (NRR>2 .AND. SIZE(XINPRR)>0 ) THEN
-  IF ((CCLOUD(1:3) == 'ICE' .AND. LSEDIC) .OR. &
-     ((CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') .AND. LSEDC)) THEN
+  IF (( CCLOUD(1:3) == 'ICE'                                          .AND. LSEDIC) .OR. &
+      ((CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') .AND. LSEDC)  .OR. &
+      ( CCLOUD=='LIMA'                                                .AND. MSEDC))   THEN
     ZRAIN = ZRAIN + XINPRR * XRHOLW + XINPRC * XRHOLW
   ELSE
     ZRAIN = ZRAIN + XINPRR * XRHOLW
diff --git a/src/MNH/ini_aircraft_balloon.f90 b/src/MNH/ini_aircraft_balloon.f90
index 2a93c0d80..5b596df31 100644
--- a/src/MNH/ini_aircraft_balloon.f90
+++ b/src/MNH/ini_aircraft_balloon.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/ini_aircraft_balloon.f90,v $ $Revision: 1.3.4.2.2.1.2.1.2.2 $
 ! MASDEV4_7 balloon 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !      #########################
@@ -77,8 +77,7 @@ END MODULE MODI_INI_AIRCRAFT_BALLOON
 !!     Original 15/05/2000
 !!               Apr, 20 2001: G.Jaubert: use in diag  with stationnary fields
 !!               March, 2013 : O.Caumont, C.Lac : add vertical profiles
-!!              July, 2015 (O.Nuissier/F.Duffourg) Add microphysics diagnostic for
-!!                                      aircraft, ballon and profiler
+!!               OCT,2016 : G.Delautier LIMA
 !!
 !! --------------------------------------------------------------------------
 !
@@ -101,6 +100,8 @@ USE MODD_DYN_n
 USE MODI_INI_BALLOON
 USE MODI_INI_AIRCRAFT
 !
+USE MODD_PARAM_n, ONLY : CCLOUD
+!
 IMPLICIT NONE
 !
 !
@@ -385,10 +386,10 @@ ALLOCATE(TPFLYER%FFZ (ISTORE,KKU))
 ALLOCATE(TPFLYER%IWCZ (ISTORE,KKU))
 ALLOCATE(TPFLYER%LWCZ (ISTORE,KKU))
 ALLOCATE(TPFLYER%CIZ (ISTORE,KKU))
-ALLOCATE(TPFLYER%SPEEDCZ (ISTORE,KKU))
-ALLOCATE(TPFLYER%SPEEDRZ (ISTORE,KKU))
-ALLOCATE(TPFLYER%SPEEDSZ (ISTORE,KKU))
-ALLOCATE(TPFLYER%SPEEDGZ (ISTORE,KKU))
+IF (CCLOUD=='LIMA') THEN
+  ALLOCATE(TPFLYER%CCZ  (ISTORE,KKU))
+  ALLOCATE(TPFLYER%CRZ  (ISTORE,KKU))
+ENDIF
 ALLOCATE(TPFLYER%CRARE(ISTORE,KKU))
 ALLOCATE(TPFLYER%CRARE_ATT(ISTORE,KKU))
 ALLOCATE(TPFLYER%WZ(ISTORE,KKU))
@@ -424,12 +425,12 @@ TPFLYER%RTZ      = XUNDEF
 TPFLYER%RZ       = XUNDEF
 TPFLYER%FFZ      = XUNDEF
 TPFLYER%CIZ      = XUNDEF
+IF (CCLOUD=='LIMA') THEN
+  TPFLYER%CRZ      = XUNDEF
+  TPFLYER%CCZ      = XUNDEF
+ENDIF
 TPFLYER%IWCZ     = XUNDEF
 TPFLYER%LWCZ     = XUNDEF
-TPFLYER%SPEEDCZ  = XUNDEF
-TPFLYER%SPEEDRZ  = XUNDEF
-TPFLYER%SPEEDSZ  = XUNDEF
-TPFLYER%SPEEDGZ  = XUNDEF
 XLAM_CRAD        = 3.154E-3 ! (in m) <=> 95.04 GHz = Rasta cloud radar frequency
 TPFLYER%CRARE    = XUNDEF
 TPFLYER%CRARE_ATT= XUNDEF
diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90
index 691b05514..6ca72bcdc 100644
--- a/src/MNH/ini_budget.f90
+++ b/src/MNH/ini_budget.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/ini_budget.f90,v $ $Revision: 1.3.2.5.2.2.2.2.10.2.2.5.2.1 $
 ! masdev4_8 budget 2008/06/20 10:08:26
 !-----------------------------------------------------------------
 !     ######################
@@ -154,7 +154,7 @@ END MODULE MODI_INI_BUDGET
 !!      J.Escobar       02/10/2015 modif for JPHEXT(JPVEXT) variable  
 !!      C.Lac           04/12/15  Correction for LSUPSAT 
 !!                   04/2016 (C.LAC) negative contribution to the budget splitted between advection, turbulence and microphysics for KHKO/C2R2
-
+!!      C. Barthe       01/2016   Add budget for LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -170,6 +170,10 @@ USE MODD_PARAM_ICE
 USE MODD_PARAM_C2R2
 USE MODD_ELEC_DESCR, ONLY : LINDUCTIVE
 USE MODD_2D_FRC
+USE MODD_PARAM_LIMA, ONLY : OWARM=>LWARM, OCOLD=>LCOLD, OSEDI=>LSEDI,   &
+                            OHHONI=>LHHONI, ORAIN=>LRAIN, OSEDC=>LSEDC, &
+                            ONUCL=>LNUCL, OACTI=>LACTI, OSNOW=>LSNOW,   &
+                            OHAIL=>LHAIL, OSCAV=>LSCAV, OMEYERS=>LMEYERS
 !
 USE MODE_ll
 USE MODE_IO_ll
@@ -783,48 +787,91 @@ IF (LBU_RTH) THEN
   IF (HCLOUD /= 'NONE' .AND. HCLOUD /= 'KHKO' .AND. HCLOUD /= 'C2R2') &
           IPROACTV(4,IPROC) = NNEGATH
   IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE' .OR. (HCLOUD == 'C2R2' .AND. (.NOT. LSUPSAT)) &
+  IF (HCLOUD == 'LIMA') THEN
+    IF (OWARM .AND. OACTI)              IPROACTV(4,IPROC) = NHENUTH 
+    IPROC=IPROC+1
+    IF (OWARM .AND. ORAIN)              IPROACTV(4,IPROC) = NREVATH 
+    IPROC=IPROC+1
+    IF (OCOLD .AND. ONUCL)              IPROACTV(4,IPROC) = NHINDTH 
+    IPROC=IPROC+1
+    IF (OCOLD .AND. ONUCL)              IPROACTV(4,IPROC) = NHINCTH 
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OWARM .AND. OHHONI .AND. ONUCL) IPROACTV(4,IPROC) = NHONHTH 
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OWARM .AND. ONUCL)  IPROACTV(4,IPROC) = NHONCTH 
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OWARM .AND. ONUCL)  IPROACTV(4,IPROC) = NHONRTH 
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OSNOW)              IPROACTV(4,IPROC) = NDEPSTH 
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OWARM)              IPROACTV(4,IPROC) = NDEPGTH
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OWARM)              IPROACTV(4,IPROC) = NIMLTTH 
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OWARM)              IPROACTV(4,IPROC) = NBERFITH 
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OWARM .AND. OSNOW)  IPROACTV(4,IPROC) = NRIMTH 
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OWARM .AND. OSNOW)  IPROACTV(4,IPROC) = NACCTH 
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OWARM)              IPROACTV(4,IPROC) = NCFRZTH 
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OWARM)              IPROACTV(4,IPROC) = NWETGTH 
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OWARM)              IPROACTV(4,IPROC) = NDRYGTH 
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OWARM)              IPROACTV(4,IPROC) = NGMLTTH
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OWARM .AND. OHAIL)  IPROACTV(4,IPROC) = NWETHTH
+    IPROC=IPROC+1
+    IF (OCOLD .AND. OWARM .AND. OHAIL)  IPROACTV(4,IPROC) = NHMLTTH
+    IPROC=IPROC+1
+                                        IPROACTV(4,IPROC) = NCEDSTH
+    IPROC=IPROC+1
+  ELSE
+    IF (HCLOUD(1:3) == 'ICE' .OR. (HCLOUD == 'C2R2' .AND. (.NOT. LSUPSAT)) &
           .OR. ( HCLOUD == 'KHKO' .AND. (.NOT. LSUPSAT)) ) &
       IPROACTV(4,IPROC) = NHENUTH 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NHONTH 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NSFRTH 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NDEPSTH 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NDEPGTH 
-  IPROC=IPROC+1
-  IF (((HCLOUD(1:3) == 'ICE') .AND. LWARM) .OR. ((HCLOUD == 'C2R2' &
-   .OR. HCLOUD == 'KHKO') .AND. LRAIN) .OR. HCLOUD(1:3) == 'KES')             &
-        IPROACTV(4,IPROC) = NREVATH 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NRIMTH 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NACCTH 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NCFRZTH 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NWETGTH 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NDRYGTH 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NGMLTTH
-  IPROC=IPROC+1
-  IF (HCLOUD == 'ICE4') IPROACTV(4,IPROC) = NWETHTH
-  IPROC=IPROC+1
-  IF (HCLOUD == 'ICE4') IPROACTV(4,IPROC) = NHMLTTH
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NIMLTTH 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NBERFITH 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NCDEPITH 
-  IPROC=IPROC+1
-  IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO' .OR. HCLOUD(1:3) == 'KES' .OR.   &
-      HCLOUD == 'REVE')   IPROACTV(4,IPROC) = NCONDTH                     
-  IPROC=IPROC+1
-  IF ((HCLOUD == 'KHKO')  .OR.  (HCLOUD == 'C2R2')) IPROACTV(4,IPROC) = NNECONTH
+      IPROC=IPROC+1
+      IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NHONTH 
+      IPROC=IPROC+1
+      IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NSFRTH 
+      IPROC=IPROC+1
+      IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NDEPSTH 
+      IPROC=IPROC+1
+      IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NDEPGTH 
+      IPROC=IPROC+1
+      IF (((HCLOUD(1:3) == 'ICE') .AND. LWARM) .OR. ((HCLOUD == 'C2R2' &
+         .OR. HCLOUD == 'KHKO') .AND. LRAIN) .OR. HCLOUD(1:3) == 'KES')             &
+         IPROACTV(4,IPROC) = NREVATH 
+      IPROC=IPROC+1
+      IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NRIMTH 
+      IPROC=IPROC+1
+      IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NACCTH 
+      IPROC=IPROC+1
+      IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NCFRZTH 
+      IPROC=IPROC+1
+      IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NWETGTH 
+      IPROC=IPROC+1
+      IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NDRYGTH 
+      IPROC=IPROC+1
+      IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NGMLTTH
+      IPROC=IPROC+1
+      IF (HCLOUD == 'ICE4') IPROACTV(4,IPROC) = NWETHTH
+      IPROC=IPROC+1
+      IF (HCLOUD == 'ICE4') IPROACTV(4,IPROC) = NHMLTTH
+      IPROC=IPROC+1
+      IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NIMLTTH 
+      IPROC=IPROC+1
+      IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NBERFITH 
+      IPROC=IPROC+1
+      IF (HCLOUD(1:3) == 'ICE') IPROACTV(4,IPROC) = NCDEPITH 
+      IPROC=IPROC+1
+      IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO' .OR. HCLOUD(1:3) == 'KES' .OR.   &
+          HCLOUD == 'REVE')   IPROACTV(4,IPROC) = NCONDTH                     
+      IPROC=IPROC+1
+      IF ((HCLOUD == 'KHKO')  .OR.  (HCLOUD == 'C2R2')) IPROACTV(4,IPROC) = NNECONTH
+    END IF
 !
   YWORK2(4,1) = 'INIF_'
   YWORK2(4,2) = 'ENDF_'
@@ -868,43 +915,87 @@ IF (LBU_RTH) THEN
   IPROC=IPROC+1
   YWORK2(4,IPROC) = 'NEGA_'
   IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'HENU_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'HON_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'SFR_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'DEPS_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'DEPG_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'REVA_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'RIM_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'ACC_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'CFRZ_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'WETG_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'DRYG_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'GMLT_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'WETH_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'HMLT_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'IMLT_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'BERFI_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'CDEPI_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'COND_'
-  IPROC=IPROC+1
-  YWORK2(4,IPROC) = 'NECON_'
+
+  IF (HCLOUD == 'LIMA') THEN
+     YWORK2(4,IPROC) = 'HENU_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'REVA_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'HIND_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'HINC_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'HONH_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'HONC_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'HONR_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'DEPS_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'DEPG_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'IMLT_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'BERFI_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'RIM_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'ACC_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'CFRZ_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'WETG_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'DRYG_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'GMLT_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'WETH_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'HMLT_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'CEDS_'
+     IPROC=IPROC+1
+  ELSE
+     YWORK2(4,IPROC) = 'HENU_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'HON_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'SFR_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'DEPS_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'DEPG_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'REVA_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'RIM_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'ACC_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'CFRZ_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'WETG_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'DRYG_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'GMLT_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'WETH_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'HMLT_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'IMLT_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'BERFI_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'CDEPI_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'COND_'
+     IPROC=IPROC+1
+     YWORK2(4,IPROC) = 'NECON_'
+     END IF
 !
   YEND_COMMENT(4) = 'BU_RTH'
   NBUPROCNBR(4) = 3
@@ -1046,6 +1137,24 @@ IF (LBU_RRV) THEN
   IF (HCLOUD /= 'NONE' .AND. HCLOUD /= 'KHKO' .AND. HCLOUD /= 'C2R2') &
      IPROACTV(6,IPROC) = NNEGARV
   IPROC=IPROC+1   
+
+IF (HCLOUD == 'LIMA') THEN
+     IF (OWARM .AND. OACTI)              IPROACTV(6,IPROC) = NHENURV 
+     IPROC=IPROC+1
+     IF (OWARM .AND. ORAIN)              IPROACTV(6,IPROC) = NREVARV 
+     IPROC=IPROC+1
+     IF (OCOLD .AND. ONUCL)              IPROACTV(6,IPROC) = NHINDRV 
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM .AND. OHHONI .AND. ONUCL) IPROACTV(6,IPROC) = NHONHRV 
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OSNOW)              IPROACTV(6,IPROC) = NDEPSRV 
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM)              IPROACTV(6,IPROC) = NDEPGRV
+     IPROC=IPROC+1
+                                         IPROACTV(6,IPROC) = NCEDSRV
+     IPROC=IPROC+1
+
+ELSE
   IF ((HCLOUD == 'C2R2'  .AND. (.NOT. LSUPSAT)) &
           .OR. ( HCLOUD == 'KHKO' .AND. (.NOT. LSUPSAT)) &
           .OR. HCLOUD(1:3) == 'ICE')  &
@@ -1066,6 +1175,8 @@ IF (LBU_RRV) THEN
   IF ( (HCLOUD == 'KHKO' )  .OR.  (HCLOUD == 'C2R2')) &
           IPROACTV(6,IPROC) = NNECONRV
   IPROC=IPROC+1   
+END IF
+
 !
   YWORK2(6,1) = 'INIF_'
   YWORK2(6,2) = 'ENDF_'
@@ -1103,6 +1214,21 @@ IF (LBU_RRV) THEN
   IPROC=IPROC+1
   YWORK2(6,IPROC) = 'NEGA_'
   IPROC=IPROC+1
+IF (HCLOUD == 'LIMA') THEN
+  YWORK2(6,IPROC) = 'HENU_'
+  IPROC=IPROC+1
+  YWORK2(6,IPROC) = 'REVA_'
+  IPROC=IPROC+1
+  YWORK2(6,IPROC) = 'HIND_'
+  IPROC=IPROC+1
+  YWORK2(6,IPROC) = 'HONH_'
+  IPROC=IPROC+1
+  YWORK2(6,IPROC) = 'DEPS_'
+  IPROC=IPROC+1
+  YWORK2(6,IPROC) = 'DEPG_'
+  IPROC=IPROC+1
+  YWORK2(6,IPROC) = 'CEDS_'
+ELSE
   YWORK2(6,IPROC) = 'HENU_'
   IPROC=IPROC+1
   YWORK2(6,IPROC) = 'DEPS_'
@@ -1116,6 +1242,7 @@ IF (LBU_RRV) THEN
   YWORK2(6,IPROC) = 'CDEPI_'
   IPROC=IPROC+1
   YWORK2(6,IPROC) = 'NECON_'
+END IF
 !
   YEND_COMMENT(6) = 'BU_RRV'
   NBUPROCNBR(6) = 3
@@ -1179,10 +1306,41 @@ IF (LBU_RRC) THEN
   IF (HCLOUD /= 'NONE' .AND. HCLOUD /= 'KHKO' .AND. HCLOUD /= 'C2R2') &
      IPROACTV(7,IPROC)  = NNEGARC
   IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'KES' )                      IPROACTV(7,IPROC  ) = NACCRRC
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'KES' )                      IPROACTV(7,IPROC) = NAUTORC
-  IPROC=IPROC+1
+
+  IF (HCLOUD == 'LIMA') THEN
+     IF (OWARM .AND. OSEDC)             IPROACTV(7,IPROC) = NSEDIRC
+     IPROC=IPROC+1
+     IF (OWARM .AND. OACTI)             IPROACTV(7,IPROC) = NHENURC
+     IPROC=IPROC+1
+     IF (OWARM .AND. ORAIN)             IPROACTV(7,IPROC) = NAUTORC
+     IPROC=IPROC+1
+     IF (OWARM .AND. ORAIN)             IPROACTV(7,IPROC) = NACCRRC
+     IPROC=IPROC+1
+     IF (OWARM .AND. ORAIN)             IPROACTV(7,IPROC) = NREVARC
+     IPROC=IPROC+1
+     IF (OCOLD .AND. ONUCL)             IPROACTV(7,IPROC) = NHINCRC
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM .AND. ONUCL) IPROACTV(7,IPROC) = NHONCRC
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM)             IPROACTV(7,IPROC) = NIMLTRC
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM)             IPROACTV(7,IPROC) = NBERFIRC
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM .AND. OSNOW) IPROACTV(7,IPROC) = NRIMRC
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM)             IPROACTV(7,IPROC) = NWETGRC
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM)             IPROACTV(7,IPROC) = NDRYGRC
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM .AND. OHAIL) IPROACTV(7,IPROC) = NWETHRC
+     IPROC=IPROC+1
+                                        IPROACTV(7,IPROC) = NCEDSRC
+     IPROC=IPROC+1
+  ELSE
+     IF (HCLOUD(1:3) == 'KES' )                      IPROACTV(7,IPROC  ) = NACCRRC
+     IPROC=IPROC+1
+     IF (HCLOUD(1:3) == 'KES' )                      IPROACTV(7,IPROC) = NAUTORC
+     IPROC=IPROC+1
   IF ((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO')  .AND. (.NOT. LSUPSAT)) &
           IPROACTV(7,IPROC) = NHENURC
   IPROC=IPROC+1
@@ -1219,6 +1377,8 @@ IF (LBU_RRC) THEN
   IF ( (HCLOUD == 'KHKO' )  .OR.  (HCLOUD == 'C2R2')) &
      IPROACTV(7,IPROC) = NNECONRC
   IPROC=IPROC+1
+  END IF
+
 !
   YWORK2(7,1) = 'INIF_'
   YWORK2(7,2) = 'ENDF_'
@@ -1248,37 +1408,68 @@ IF (LBU_RRC) THEN
   IPROC=IPROC+1
   YWORK2(7,IPROC) = 'NEGA_'
   IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'ACCR_'
-  IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'AUTO_'
-  IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'HENU_'
-  IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'HON_'
-  IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'AUTO_'
-  IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'ACCR_'
-  IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'RIM_'
-  IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'WETG_'
-  IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'DRYG_'
-  IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'WETH_'
-  IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'IMLT_'
-  IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'BERFI_'
-  IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'SEDI_'
-  IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'CDEPI_'
-  IPROC=IPROC+1
-  YWORK2(7,IPROC) = 'COND_'
+
+  IF (HCLOUD == 'LIMA') THEN
+     YWORK2(7,IPROC) = 'SEDI_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'HENU_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'AUTO_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'ACCR_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'REVA_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'HINC_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'HONC_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'IMLT_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'BERFI_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'RIM_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'WETG_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'DRYG_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'WETH_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'CEDS_'
+  ELSE
+     YWORK2(7,IPROC) = 'ACCR_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'AUTO_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'HENU_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'HON_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'AUTO_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'ACCR_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'RIM_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'WETG_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'DRYG_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'WETH_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'IMLT_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'BERFI_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'SEDI_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'CDEPI_'
+     IPROC=IPROC+1
+     YWORK2(7,IPROC) = 'COND_'
   IPROC=IPROC+1
   YWORK2(7,IPROC) = 'NECON_'
+  END IF
 !
   YEND_COMMENT(7) = 'BU_RRC'
   NBUPROCNBR(7) = 3
@@ -1321,68 +1512,122 @@ IF (LBU_RRR) THEN
   IPROC=IPROC+1
   IF ( HCLOUD /= 'NONE' ) IPROACTV(8,IPROC) = NNEGARR
   IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'KES' )   IPROACTV(8,IPROC) = NSEDIRR 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'KES' )   IPROACTV(8,IPROC) = NACCRRR 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'KES' )   IPROACTV(8,IPROC) = NAUTORR 
-  IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'KES' )   IPROACTV(8,IPROC) = NREVARR 
-  IPROC=IPROC+1
+
+  IF (HCLOUD == 'LIMA') THEN
+     IF (OWARM)                         IPROACTV(8,IPROC) = NSEDIRR 
+     IPROC=IPROC+1
+     IF (OWARM)                         IPROACTV(8,IPROC) = NAUTORR
+     IPROC=IPROC+1
+     IF (OWARM)                         IPROACTV(8,IPROC) = NACCRRR 
+     IPROC=IPROC+1
+     IF (OWARM)                         IPROACTV(8,IPROC) = NREVARR 
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM .AND. ONUCL) IPROACTV(8,IPROC) = NHONRRR 
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM .AND. OSNOW) IPROACTV(8,IPROC) = NACCRR 
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM)             IPROACTV(8,IPROC) = NCFRZRR 
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM)             IPROACTV(8,IPROC) = NWETGRR 
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM)             IPROACTV(8,IPROC) = NDRYGRR 
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM)             IPROACTV(8,IPROC) = NGMLTRR 
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM .AND. OHAIL) IPROACTV(8,IPROC) = NWETHRR 
+     IPROC=IPROC+1
+     IF (OCOLD .AND. OWARM .AND. OHAIL) IPROACTV(8,IPROC) = NHMLTRR 
+  ELSE
+     IF (HCLOUD(1:3) == 'KES' )   IPROACTV(8,IPROC) = NSEDIRR 
+     IPROC=IPROC+1
+     IF (HCLOUD(1:3) == 'KES' )   IPROACTV(8,IPROC) = NACCRRR 
+     IPROC=IPROC+1
+     IF (HCLOUD(1:3) == 'KES' )   IPROACTV(8,IPROC) = NAUTORR 
+     IPROC=IPROC+1
+     IF (HCLOUD(1:3) == 'KES' )   IPROACTV(8,IPROC) = NREVARR 
+     IPROC=IPROC+1
+     !
+     IF (HCLOUD(1:3) == 'ICE') IPROACTV(8,IPROC) = NSFRRR 
+     IPROC=IPROC+1
+     IF ((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) &
+          IPROACTV(8,IPROC) = NAUTORR
+     IPROC=IPROC+1
+     IF ((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) &
+          IPROACTV(8,IPROC) = NACCRRR 
+     IPROC=IPROC+1
+     IF ((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) &
+          IPROACTV(8,IPROC) = NREVARR 
+     IPROC=IPROC+1
+     IF (HCLOUD(1:3) == 'ICE') IPROACTV(8,IPROC) = NACCRR 
+     IPROC=IPROC+1
+     IF (HCLOUD(1:3) == 'ICE') IPROACTV(8,IPROC) = NCFRZRR 
+     IPROC=IPROC+1
+     IF (HCLOUD(1:3) == 'ICE') IPROACTV(8,IPROC) = NWETGRR 
+     IPROC=IPROC+1
+     IF (HCLOUD(1:3) == 'ICE') IPROACTV(8,IPROC) = NDRYGRR 
+     IPROC=IPROC+1
+     IF (HCLOUD(1:3) == 'ICE') IPROACTV(8,IPROC) = NGMLTRR 
+     IPROC=IPROC+1
+     IF (HCLOUD == 'ICE4') IPROACTV(8,IPROC) = NWETHRR 
+     IPROC=IPROC+1
+     IF (HCLOUD == 'ICE4') IPROACTV(8,IPROC) = NHMLTRR 
+     IPROC=IPROC+1
+     IF ((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO') .AND. LRAIN)  IPROACTV(8,IPROC) = NAUTORR
+     IPROC=IPROC+1
+     IF ((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO') .AND. LRAIN)  IPROACTV(8,IPROC) = NACCRRR
+     IPROC=IPROC+1
+     IF ((HCLOUD == 'C2R2'.OR. HCLOUD == 'KHKO') .AND. LRAIN)   IPROACTV(8,IPROC) = NREVARR
+     IPROC=IPROC+1
+     IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO' .OR. HCLOUD(1:3) == 'ICE')  &
+          IPROACTV(8,IPROC) = NSEDIRR
+     IPROC=IPROC+1     
+  END IF
 !
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(8,IPROC) = NSFRRR 
-  IPROC=IPROC+1
-  IF ((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) &
-                                               IPROACTV(8,IPROC) = NAUTORR
-  IPROC=IPROC+1
-  IF ((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) &
-                                               IPROACTV(8,IPROC) = NACCRRR 
-  IPROC=IPROC+1
-  IF ((HCLOUD(1:3) == 'ICE' ) .AND. LWARM) &
-                                               IPROACTV(8,IPROC) = NREVARR 
+  YWORK2(8,1) = 'INIF_'
+  YWORK2(8,2) = 'ENDF_'
+  YWORK2(8,3) = 'AVEF_'
+  IPROC=4
+  YWORK2(8,IPROC) = 'ASSE_'
   IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(8,IPROC) = NACCRR 
+  YWORK2(8,IPROC) = 'NEST_'
   IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(8,IPROC) = NCFRZRR 
+  YWORK2(8,IPROC) = 'FRC_'
   IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(8,IPROC) = NWETGRR 
+  YWORK2(8,IPROC) = 'DIF_'
   IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(8,IPROC) = NDRYGRR 
+  YWORK2(8,IPROC) = 'REL_'
   IPROC=IPROC+1
-  IF (HCLOUD(1:3) == 'ICE') IPROACTV(8,IPROC) = NGMLTRR 
+  YWORK2(8,IPROC) = 'ADV_'
   IPROC=IPROC+1
-  IF (HCLOUD == 'ICE4') IPROACTV(8,IPROC) = NWETHRR 
+  YWORK2(8,IPROC) = 'NEGA_'
   IPROC=IPROC+1
-  IF (HCLOUD == 'ICE4') IPROACTV(8,IPROC) = NHMLTRR 
+
+IF (HCLOUD == 'LIMA') THEN
+  YWORK2(8,IPROC) = 'SEDI_'
   IPROC=IPROC+1
-  IF ((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO') .AND. LRAIN)  IPROACTV(8,IPROC) = NAUTORR
+  YWORK2(8,IPROC) = 'AUTO_'
   IPROC=IPROC+1
-  IF ((HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO') .AND. LRAIN)  IPROACTV(8,IPROC) = NACCRRR
+  YWORK2(8,IPROC) = 'ACCR_'
   IPROC=IPROC+1
-  IF ((HCLOUD == 'C2R2'.OR. HCLOUD == 'KHKO') .AND. LRAIN)   IPROACTV(8,IPROC) = NREVARR
+  YWORK2(8,IPROC) = 'REVA_'
   IPROC=IPROC+1
-  IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO' .OR. HCLOUD(1:3) == 'ICE')  &
-   IPROACTV(8,IPROC) = NSEDIRR
+  YWORK2(8,IPROC) = 'HONR_'
   IPROC=IPROC+1
-!
-  YWORK2(8,1) = 'INIF_'
-  YWORK2(8,2) = 'ENDF_'
-  YWORK2(8,3) = 'AVEF_'
-  IPROC=4
-  YWORK2(8,IPROC) = 'ASSE_'
+  YWORK2(8,IPROC) = 'ACC_'
   IPROC=IPROC+1
-  YWORK2(8,IPROC) = 'NEST_'
+  YWORK2(8,IPROC) = 'CFRZ_'
   IPROC=IPROC+1
-  YWORK2(8,IPROC) = 'FRC_'
+  YWORK2(8,IPROC) = 'WETG_'
   IPROC=IPROC+1
-  YWORK2(8,IPROC) = 'DIF_'
+  YWORK2(8,IPROC) = 'DRYG_'
   IPROC=IPROC+1
-  YWORK2(8,IPROC) = 'REL_'
+  YWORK2(8,IPROC) = 'GMLT_'
   IPROC=IPROC+1
-  YWORK2(8,IPROC) = 'ADV_'
+  YWORK2(8,IPROC) = 'WETH_'
   IPROC=IPROC+1
-  YWORK2(8,IPROC) = 'NEGA_'
+  YWORK2(8,IPROC) = 'HMLT_'
   IPROC=IPROC+1
+ELSE
   YWORK2(8,IPROC) = 'SEDI_'
   IPROC=IPROC+1
   YWORK2(8,IPROC) = 'ACCR_'
@@ -1420,6 +1665,7 @@ IF (LBU_RRR) THEN
   YWORK2(8,IPROC) = 'REVA_'
   IPROC=IPROC+1
   YWORK2(8,IPROC) = 'SEDI_'
+END IF
 !
   YEND_COMMENT(8) = 'BU_RRR'
   NBUPROCNBR(8) = 3
@@ -1476,30 +1722,67 @@ IF (LBU_RRI) THEN
   IPROC=IPROC+1
   IF( HCLOUD /= 'NONE' ) IPROACTV(9,IPROC) = NNEGARI
   IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NHENURI
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NHONRI
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NAGGSRI
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NAUTSRI
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NCFRZRI
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NWETGRI
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NDRYGRI
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4') IPROACTV(9,IPROC) = NWETHRI
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NIMLTRI
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NBERFIRI
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NSEDIRI
-  IPROC=IPROC+1
-  IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NCDEPIRI
-  IPROC=IPROC+1
+
+  IF (HCLOUD=='LIMA') THEN
+     IF(OCOLD .AND. OSEDI)             IPROACTV(9,IPROC) = NSEDIRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. ONUCL)             IPROACTV(9,IPROC) = NHINDRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. ONUCL)             IPROACTV(9,IPROC) = NHINCRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. OWARM .AND. OHHONI .AND. ONUCL) IPROACTV(9,IPROC) = NHONHRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. OWARM .AND. ONUCL) IPROACTV(9,IPROC) = NHONCRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. OSNOW)             IPROACTV(9,IPROC) = NCNVIRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. OSNOW)             IPROACTV(9,IPROC) = NCNVSRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. OSNOW)             IPROACTV(9,IPROC) = NAGGSRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. OWARM)             IPROACTV(9,IPROC) = NIMLTRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. OWARM)             IPROACTV(9,IPROC) = NBERFIRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. OWARM .AND. OSNOW) IPROACTV(9,IPROC) = NHMSRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. OWARM)             IPROACTV(9,IPROC) = NCFRZRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. OWARM)             IPROACTV(9,IPROC) = NWETGRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. OWARM)             IPROACTV(9,IPROC) = NDRYGRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. OWARM)             IPROACTV(9,IPROC) = NHMGRI
+     IPROC=IPROC+1
+     IF(OCOLD .AND. OWARM .AND. OHAIL) IPROACTV(9,IPROC) = NWETHRI
+     IPROC=IPROC+1
+                                       IPROACTV(9,IPROC) = NCEDSRI
+  ELSE
+     IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NHENURI
+     IPROC=IPROC+1
+     IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NHONRI
+     IPROC=IPROC+1
+     IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NAGGSRI
+     IPROC=IPROC+1
+     IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NAUTSRI
+     IPROC=IPROC+1
+     IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NCFRZRI
+     IPROC=IPROC+1
+     IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NWETGRI
+     IPROC=IPROC+1
+     IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NDRYGRI
+     IPROC=IPROC+1
+     IF( HCLOUD == 'ICE4') IPROACTV(9,IPROC) = NWETHRI
+     IPROC=IPROC+1
+     IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NIMLTRI
+     IPROC=IPROC+1
+     IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NBERFIRI
+     IPROC=IPROC+1
+     IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NSEDIRI
+     IPROC=IPROC+1
+     IF( HCLOUD(1:3) == 'ICE') IPROACTV(9,IPROC) = NCDEPIRI
+     IPROC=IPROC+1
+  END IF
 !
   YWORK2(9,1) = 'INIF_'
   YWORK2(9,2) = 'ENDF_'
@@ -1525,29 +1808,65 @@ IF (LBU_RRI) THEN
   IPROC=IPROC+1
   YWORK2(9,IPROC) = 'NEGA_'
   IPROC=  IPROC+1
-  YWORK2(9,IPROC) = 'HENU_'
-  IPROC=  IPROC+1
-  YWORK2(9,IPROC) = 'HON_'
-  IPROC=  IPROC+1
-  YWORK2(9,IPROC) = 'AGGS_'
-  IPROC=  IPROC+1
-  YWORK2(9,IPROC) = 'AUTS_'
-  IPROC=  IPROC+1
-  YWORK2(9,IPROC) = 'CFRZ_'
-  IPROC=  IPROC+1
-  YWORK2(9,IPROC) = 'WETG_'
-  IPROC=  IPROC+1
-  YWORK2(9,IPROC) = 'DRYG_'
-  IPROC=  IPROC+1
-  YWORK2(9,IPROC) = 'WETH_'
-  IPROC=  IPROC+1
-  YWORK2(9,IPROC) = 'IMLT_'
-  IPROC=  IPROC+1
-  YWORK2(9,IPROC) = 'BERFI_'
-  IPROC=  IPROC+1
-  YWORK2(9,IPROC) = 'SEDI_'
-  IPROC=  IPROC+1
-  YWORK2(9,IPROC) = 'CDEPI_'
+  IF (HCLOUD=='LIMA') THEN
+     YWORK2(9,IPROC) = 'SEDI_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'HIND_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'HINC_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'HONH_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'HONC_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'CNVI_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'CNVS_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'AGGS_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'IMLT_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'BERFI_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'HMS_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'CFRZ_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'WETG_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'DRYG_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'HMG_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'WETH_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'CEDS_'
+  ELSE
+     YWORK2(9,IPROC) = 'HENU_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'HON_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'AGGS_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'AUTS_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'CFRZ_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'WETG_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'DRYG_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'WETH_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'IMLT_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'BERFI_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'SEDI_'
+     IPROC=  IPROC+1
+     YWORK2(9,IPROC) = 'CDEPI_'
+  END IF
 !
   YEND_COMMENT(9) = 'BU_RRI'
   NBUPROCNBR(9) = 3
@@ -1590,6 +1909,33 @@ IF (LBU_RRS) THEN
   IPROC=  IPROC+1
   IF( HCLOUD /= 'NONE' ) IPROACTV(10,IPROC) = NNEGARS
   IPROC=IPROC+1
+
+IF (HCLOUD=='LIMA') THEN
+  IF(OCOLD)                         IPROACTV(10,IPROC) = NSEDIRS
+  IPROC=IPROC+1
+  IF(OCOLD)                         IPROACTV(10,IPROC) = NCNVIRS
+  IPROC=IPROC+1
+  IF(OCOLD)                         IPROACTV(10,IPROC) = NDEPSRS
+  IPROC=IPROC+1
+  IF(OCOLD)                         IPROACTV(10,IPROC) = NCNVSRS
+  IPROC=IPROC+1
+  IF(OCOLD)                         IPROACTV(10,IPROC) = NAGGSRS
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM)             IPROACTV(10,IPROC) = NRIMRS
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM)             IPROACTV(10,IPROC) = NHMSRS
+  IPROC=IPROC+1            
+  IF(OCOLD .AND. OWARM)             IPROACTV(10,IPROC) = NACCRS
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM)             IPROACTV(10,IPROC) = NCMELRS
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM)             IPROACTV(10,IPROC) = NWETGRS
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM)             IPROACTV(10,IPROC) = NDRYGRS
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM .AND. OHAIL) IPROACTV(10,IPROC) = NWETHRS
+  IPROC=IPROC+1
+ELSE
   IF( HCLOUD(1:3) == 'ICE') IPROACTV(10,IPROC) = NDEPSRS
   IPROC=IPROC+1
   IF( HCLOUD(1:3) == 'ICE') IPROACTV(10,IPROC) = NAGGSRS
@@ -1610,6 +1956,7 @@ IF (LBU_RRS) THEN
   IPROC=IPROC+1
   IF( HCLOUD(1:3) == 'ICE') IPROACTV(10,IPROC) = NSEDIRS
   IPROC=IPROC+1
+END IF
 !
   YWORK2(10,1) = 'INIF_'
   YWORK2(10,2) = 'ENDF_'
@@ -1629,6 +1976,32 @@ IF (LBU_RRS) THEN
   IPROC=IPROC+1
   YWORK2(10,IPROC) = 'NEGA_'
   IPROC=  IPROC+1
+IF (HCLOUD=='LIMA') THEN
+  YWORK2(10,IPROC) = 'SEDI_'
+  IPROC=  IPROC+1
+  YWORK2(10,IPROC) = 'CNVI_'
+  IPROC=  IPROC+1
+  YWORK2(10,IPROC) = 'DEPS_'
+  IPROC=  IPROC+1
+  YWORK2(10,IPROC) = 'CNVS_'
+  IPROC=  IPROC+1
+  YWORK2(10,IPROC) = 'AGGS_'
+  IPROC=  IPROC+1
+  YWORK2(10,IPROC) = 'RIM_'
+  IPROC=  IPROC+1
+  YWORK2(10,IPROC) = 'HMS_'
+  IPROC=  IPROC+1
+  YWORK2(10,IPROC) = 'ACC_'
+  IPROC=  IPROC+1
+  YWORK2(10,IPROC) = 'CMEL_'
+  IPROC=  IPROC+1
+  YWORK2(10,IPROC) = 'WETG_'
+  IPROC=  IPROC+1
+  YWORK2(10,IPROC) = 'DRYG_'
+  IPROC=  IPROC+1
+  YWORK2(10,IPROC) = 'WETH_'
+  IPROC=  IPROC+1
+ELSE
   YWORK2(10,IPROC) = 'DEPS_'
   IPROC=  IPROC+1
   YWORK2(10,IPROC) = 'AGGS_'
@@ -1648,6 +2021,7 @@ IF (LBU_RRS) THEN
   YWORK2(10,IPROC) = 'WETH_'
   IPROC=IPROC+1
   YWORK2(10,IPROC) = 'SEDI_'
+END IF
 !
   YEND_COMMENT(10) = 'BU_RRS'
   NBUPROCNBR(10) = 3
@@ -1690,6 +2064,35 @@ IF (LBU_RRG) THEN
   IPROC=IPROC+1
   IF( HCLOUD /= 'NONE'  ) IPROACTV(11,IPROC) = NNEGARG
   IPROC=IPROC+1
+
+IF (HCLOUD=='LIMA') THEN
+  IF(OCOLD)                         IPROACTV(11,IPROC) = NSEDIRG
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM .AND. ONUCL) IPROACTV(11,IPROC) = NHONRRG
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM)             IPROACTV(11,IPROC) = NDEPGRG
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM .AND. OSNOW) IPROACTV(11,IPROC) = NRIMRG
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM .AND. OSNOW) IPROACTV(11,IPROC) = NACCRG
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM .AND. OSNOW) IPROACTV(11,IPROC) = NCMELRG
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM)             IPROACTV(11,IPROC) = NCFRZRG
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM)             IPROACTV(11,IPROC) = NWETGRG
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM)             IPROACTV(11,IPROC) = NDRYGRG
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM)             IPROACTV(11,IPROC) = NHMGRG
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM)             IPROACTV(11,IPROC) = NGMLTRG
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM .AND. OHAIL) IPROACTV(11,IPROC) = NWETHRG
+  IPROC=IPROC+1
+  IF(OCOLD .AND. OWARM .AND. OHAIL) IPROACTV(11,IPROC) = NCOHGRG
+  IPROC=IPROC+1
+ELSE
   IF( HCLOUD(1:3) == 'ICE') IPROACTV(11,IPROC) = NSFRRG
   IPROC=IPROC+1
   IF( HCLOUD(1:3) == 'ICE') IPROACTV(11,IPROC) = NDEPGRG
@@ -1714,6 +2117,7 @@ IF (LBU_RRG) THEN
   IPROC=IPROC+1
   IF( HCLOUD(1:3) == 'ICE')IPROACTV(11,IPROC) = NSEDIRG
   IPROC=IPROC+1
+END IF
 !
   YWORK2(11,1) = 'INIF_'
   YWORK2(11,2) = 'ENDF_'
@@ -1733,6 +2137,33 @@ IF (LBU_RRG) THEN
   IPROC=IPROC+1
   YWORK2(11,IPROC) = 'NEGA_'
   IPROC=IPROC+1
+IF (HCLOUD=='LIMA') THEN
+  YWORK2(11,IPROC) = 'SEDI_'
+  IPROC=IPROC+1
+  YWORK2(11,IPROC) = 'HONR_'
+  IPROC=IPROC+1
+  YWORK2(11,IPROC) = 'DEPG_'
+  IPROC=IPROC+1
+  YWORK2(11,IPROC) = 'RIM_'
+  IPROC=IPROC+1
+  YWORK2(11,IPROC) = 'ACC_'
+  IPROC=IPROC+1
+  YWORK2(11,IPROC) = 'CMEL_'
+  IPROC=IPROC+1
+  YWORK2(11,IPROC) = 'CFRZ_'
+  IPROC=IPROC+1
+  YWORK2(11,IPROC) = 'WETG_'
+  IPROC=IPROC+1
+  YWORK2(11,IPROC) = 'DRYG_'
+  IPROC=IPROC+1
+  YWORK2(11,IPROC) = 'HMG_'
+  IPROC=IPROC+1
+  YWORK2(11,IPROC) = 'GMLT_'
+  IPROC=IPROC+1
+  YWORK2(11,IPROC) = 'WETH_'
+  IPROC=IPROC+1
+  YWORK2(11,IPROC) = 'COHG_'
+ELSE
   YWORK2(11,IPROC)= 'SFR_'
   IPROC=IPROC+1
   YWORK2(11,IPROC) = 'DEPG_'
@@ -1756,6 +2187,7 @@ IF (LBU_RRG) THEN
   YWORK2(11,IPROC) = 'COHG_'
   IPROC=IPROC+1
   YWORK2(11,IPROC)= 'SEDI_'
+END IF
 !
   YEND_COMMENT(11) = 'BU_RRG'
   NBUPROCNBR(11) = 3
@@ -1814,15 +2246,28 @@ IF (LBU_RRH) THEN
     IPROACTV(12,IPROC) = 3    
   END IF
   IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4') IPROACTV(12,IPROC) = NWETGRH
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4') IPROACTV(12,IPROC) = NWETHRH
-  IPROC=IPROC+1
+!
+  IF (HCLOUD=='LIMA' .AND. OHAIL) THEN
+     IPROACTV(12,IPROC) = NSEDIRH
+     IPROC=IPROC+1
+     IPROACTV(12,IPROC) = NWETGRH
+     IPROC=IPROC+1
+     IPROACTV(12,IPROC) = NWETHRH
+     IPROC=IPROC+1
+     IPROACTV(12,IPROC) = NCOHGRH
+     IPROC=IPROC+1
+     IPROACTV(12,IPROC) = NHMLTRH
+  ELSE
+     IF( HCLOUD == 'ICE4') IPROACTV(12,IPROC) = NWETGRH
+     IPROC=IPROC+1
+     IF( HCLOUD == 'ICE4') IPROACTV(12,IPROC) = NWETHRH
+     IPROC=IPROC+1
   IF( HCLOUD == 'ICE4') IPROACTV(12,IPROC) = NCOHGRH
   IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4') IPROACTV(12,IPROC) = NHMLTRH
-  IPROC=IPROC+1
-  IF( HCLOUD == 'ICE4') IPROACTV(12,IPROC) = NSEDIRH
+     IF( HCLOUD == 'ICE4') IPROACTV(12,IPROC) = NHMLTRH
+     IPROC=IPROC+1
+     IF( HCLOUD == 'ICE4') IPROACTV(12,IPROC) = NSEDIRH
+  END IF
 !
   YWORK2(12,1) = 'INIF_'
   YWORK2(12,2) = 'ENDF_'
@@ -1842,15 +2287,28 @@ IF (LBU_RRH) THEN
   IPROC=IPROC+1
   YWORK2(12,IPROC) = 'NEGA_'
   IPROC=IPROC+1
-  YWORK2(12,IPROC) = 'WETG_'
-  IPROC=IPROC+1
-  YWORK2(12,IPROC) = 'WETH_'
-  IPROC=IPROC+1
+  IF (HCLOUD=='LIMA' .AND. OHAIL) THEN
+     YWORK2(12,IPROC) = 'SEDI_'
+     IPROC=IPROC+1
+     YWORK2(12,IPROC) = 'WETG_'
+     IPROC=IPROC+1
+     YWORK2(12,IPROC) = 'WETH_'
+     IPROC=IPROC+1
+     YWORK2(12,IPROC) = 'COHG_'
+     IPROC=IPROC+1
+     YWORK2(12,IPROC) = 'HMLT_'
+     IPROC=IPROC+1
+  ELSE
+     YWORK2(12,IPROC) = 'WETG_'
+     IPROC=IPROC+1
+     YWORK2(12,IPROC) = 'WETH_'
+     IPROC=IPROC+1
   YWORK2(12,IPROC) = 'COHG_'
   IPROC=IPROC+1
-  YWORK2(12,IPROC) = 'HMLT_'
-  IPROC=IPROC+1
-  YWORK2(12,IPROC) = 'SEDI_'
+     YWORK2(12,IPROC) = 'HMLT_'
+     IPROC=IPROC+1
+     YWORK2(12,IPROC) = 'SEDI_'
+  END IF
 !
   YEND_COMMENT(12) = 'BU_RRH'
   NBUPROCNBR(12) = 3
@@ -1909,6 +2367,8 @@ IF (LBU_RSV) THEN
     IPROC=IPROC+1
     IF ( HSCONV == 'EDKF' ) IPROACTV(12+JSV,IPROC)= NMAFLSV
     IPROC=IPROC+1
+    IPROACTV(12+JSV,IPROC)= NADVSV
+    IPROC=IPROC+1
 !
     YWORK2(12+JSV,1) = 'INIF_'
     YWORK2(12+JSV,2) = 'ENDF_'
@@ -1931,6 +2391,8 @@ IF (LBU_RSV) THEN
     YWORK2(12+JSV,IPROC) = 'HTURB_'
     IPROC=IPROC+1
     YWORK2(12+JSV,IPROC) = 'MAFL_'
+    IPROC=IPROC+1
+    YWORK2(12+JSV,IPROC) = 'ADV_'
 !
 ! complete with the budget of other processes
 !
@@ -2195,9 +2657,8 @@ CONTAINS
 ! ##############################
 !
 !
-USE MODD_NSV, ONLY : NSV_USER, NSV_C2R2BEG, NSV_C2R2END, &
-                               NSV_CHEMBEG, NSV_CHEMEND, &
-                               NSV_ELECBEG, NSV_ELECEND
+USE MODD_NSV
+USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM
 !
   IF (JSV <= NSV_USER) THEN
     ! NSV_USER Case
@@ -2270,6 +2731,269 @@ USE MODD_NSV, ONLY : NSV_USER, NSV_C2R2BEG, NSV_C2R2END, &
       IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
     END SELECT
     !
+
+
+
+
+  ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN  
+    ! LIMA case
+
+IF (JSV == NSV_LIMA_NC) THEN
+! Cloud droplets conc.
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      IF (OWARM) THEN
+        IF (OSEDC) THEN
+          ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+          YWORK2(12+JSV,ILAST_PROC_NBR)= 'SEDI_'
+          IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        END IF
+        IF (OACTI) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'HENU_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        END IF
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'SELF_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        IF (ORAIN) THEN
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'AUTO_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'ACCR_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'REVA_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        END IF
+      END IF
+      IF (OCOLD .AND. ONUCL) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'HINC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'HONC_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      END IF
+      IF (OWARM .AND. OCOLD) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'IMLT_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        IF (OSNOW) THEN
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'RIM_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        END IF
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'WETG_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'DRYG_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        IF (OHAIL) THEN
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'WETH_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        END IF
+      END IF
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'CEDS_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+!
+ELSE IF (JSV == NSV_LIMA_NR) THEN
+! Rain drops conc.
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      IF (OWARM .AND. ORAIN) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'SEDI_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'AUTO_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'SCBU_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'REVA_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'BRKU_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      END IF
+      IF (OCOLD .AND. OWARM .AND. ORAIN .AND. ONUCL) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'HONR_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      END IF
+      IF (OWARM .AND. OCOLD) THEN
+        IF (OSNOW) THEN
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'ACC_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        END IF
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'CFRZ_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'WETG_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'DRYG_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'GMLT_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        IF (OHAIL) THEN
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'WETH_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'HMLT_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        END IF
+      END IF
+!
+ELSE IF (JSV.GE.NSV_LIMA_CCN_FREE .AND. JSV.LT.(NSV_LIMA_CCN_FREE+NMOD_CCN)) THEN
+! Free CCN conc.
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      IF (OWARM .AND. OACTI) THEN
+         ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+         YWORK2(12+JSV,ILAST_PROC_NBR)= 'HENU_'
+         IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      END IF
+      IF (OCOLD .AND. ONUCL .AND. OHHONI .AND. OWARM) THEN
+         ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+         YWORK2(12+JSV,ILAST_PROC_NBR)= 'HONH_'
+         IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      END IF
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'CEDS_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      IF (OSCAV) THEN
+         ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+         YWORK2(12+JSV,ILAST_PROC_NBR)= 'SCAV_'
+         IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      END IF
+!
+ELSE IF (JSV.GE.NSV_LIMA_CCN_ACTI .AND. JSV.LT.(NSV_LIMA_CCN_ACTI+NMOD_CCN)) THEN
+! Activated CCN conc.
+
+ELSE IF (JSV == NSV_LIMA_NI) THEN
+! Pristine ice crystals conc.
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      IF (OCOLD) THEN
+        IF (OSEDI) THEN
+          ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+          YWORK2(12+JSV,ILAST_PROC_NBR)= 'SEDI_'
+          IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        END IF
+        IF (ONUCL) THEN
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'HIND_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'HINC_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+           IF (OWARM .AND. OHHONI) THEN
+              ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+              YWORK2(12+JSV,ILAST_PROC_NBR)= 'HONH_'
+              IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+           END IF
+           IF (OWARM) THEN
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'HONC_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+           END IF
+        END IF
+        IF (OSNOW) THEN
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'CNVI_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'CNVS_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'AGGS_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        END IF
+      END IF
+      IF (OWARM .AND. OCOLD) THEN
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'IMLT_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        IF (OSNOW) THEN
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'HMS_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        END IF
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'CFRZ_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'WETG_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'DRYG_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+        YWORK2(12+JSV,ILAST_PROC_NBR)= 'HMG_'
+        IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        IF (OHAIL) THEN
+           ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+           YWORK2(12+JSV,ILAST_PROC_NBR)= 'WETH_'
+           IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+        END IF
+      END IF
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'CEDS_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+!
+ELSE IF (JSV.GE.NSV_LIMA_IFN_FREE .AND. JSV.LT.(NSV_LIMA_IFN_FREE+NMOD_IFN)) THEN
+! Free IFN conc.
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      IF (OCOLD .AND. ONUCL .AND. (.NOT.OMEYERS)) THEN
+         ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+         YWORK2(12+JSV,ILAST_PROC_NBR)= 'HIND_'
+         IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      END IF
+!      IF (OCOLD .AND. OWARM) THEN
+!         ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+!         YWORK2(12+JSV,ILAST_PROC_NBR)= 'IMLT_'
+!         IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+!      END IF
+      ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+      YWORK2(12+JSV,ILAST_PROC_NBR)= 'CEDS_'
+      IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      IF (OSCAV) THEN
+         ILAST_PROC_NBR = ILAST_PROC_NBR + 1
+         YWORK2(12+JSV,ILAST_PROC_NBR)= 'SCAV_'
+         IPROACTV(12+JSV,ILAST_PROC_NBR) = 1
+      END IF
+!
+ELSE IF (JSV.GE.NSV_LIMA_IFN_NUCL .AND. JSV.LT.(NSV_LIMA_IFN_NUCL+NMOD_IFN)) THEN
+! Nucleated IFN conc.
+
+ELSE IF (JSV.GE.NSV_LIMA_IMM_NUCL .AND. JSV.LT.(NSV_LIMA_IMM_NUCL+NMOD_IMM)) THEN
+! Nucleated IMM conc.
+
+ELSE IF (JSV == NSV_LIMA_HOM_HAZE) THEN
+! Homogeneous freezing of CCN
+
+END IF
+
+
+
+
   ELSEIF (JSV >= NSV_ELECBEG .AND. JSV <= NSV_ELECEND) THEN
     SELECT CASE(JSV-NSV_ELECBEG+1)
     CASE(1)  ! volumetric charge of water vapor
diff --git a/src/MNH/ini_lb.f90 b/src/MNH/ini_lb.f90
index 86a1a71b8..38498a3ac 100644
--- a/src/MNH/ini_lb.f90
+++ b/src/MNH/ini_lb.f90
@@ -127,6 +127,7 @@ SUBROUTINE INI_LB(HINIFILE,HLUOUT,OLSOURCE,KSV,                    &
 !!      Pialat/tulet    15/02/12    Add ForeFire scalars 
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!      J.Escobar : 27/04/2016 : bug , test only on ANY(HGETSVM({{1:KSV}})=='READ'
+!!      J.-P. Pinty     09/02/16    Add LIMA that is LBC for CCN and IFN
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -138,6 +139,8 @@ USE MODD_CTURB
 USE MODD_DUST
 USE MODD_SALT
 USE MODD_CH_AEROSOL
+USE MODD_PARAM_LIMA
+USE MODD_PARAM_n
 !
 
 USE MODE_FM
@@ -150,6 +153,8 @@ USE MODD_CH_M9_n,         ONLY: CNAMES, CICNAMES
 USE MODD_LG,              ONLY: CLGNAMES
 USE MODD_ELEC_DESCR,      ONLY: CELECNAMES
 USE MODD_PARAMETERS,      ONLY: JPHEXT
+USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES
+USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES
 IMPLICIT NONE
 !
 !*       0.1   declarations of arguments
@@ -225,6 +230,7 @@ CHARACTER (LEN= LEN(HGETRVM)), DIMENSION (7) :: YGETRXM ! Arrays with  the get i
 CHARACTER (LEN= 16), DIMENSION (7) :: YRECFMX,YRECFMY ! arrays with the name  of the LB fields
                                                       ! in FM files for the moist variables
 INTEGER :: IMASDEV                                                      
+CHARACTER(LEN=2)  :: INDICE ! to index CCN and IFN fields of LIMA scheme
 !-------------------------------------------------------------------------------
 !
 !
@@ -659,6 +665,111 @@ DO JSV = NSV_C1R3BEG, NSV_C1R3END
     IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
   END SELECT
 END DO
+!
+! LIMA: CCN and IFN scalar variables
+!
+IF (CCLOUD=='LIMA' ) THEN
+  DO JSV = NSV_LIMA_CCN_FREE,NSV_LIMA_CCN_FREE+NMOD_CCN-1
+    SELECT CASE(HGETSVM(JSV))
+    CASE ('READ')
+      WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_CCN_FREE + 1)
+      IF ( KSIZELBXSV_ll /= 0 ) THEN
+        YRECFM = 'LBX_'//TRIM(UPCASE(CLIMA_WARM_NAMES(3))//INDICE)
+        YDIRLB='LBX'
+        CALL FMREAD_LB(HINIFILE,YRECFM,HLUOUT,YDIRLB,PLBXSVM(:,:,:,JSV),IRIMX,IL3DX,&
+           & IGRID,ILENCH,YCOMMENT,IRESP)
+        IF ( SIZE(PLBXSVM,1) /= 0 ) THEN
+          IF (IRESP/=0) THEN
+            IF (PRESENT(PLBXSVMM)) THEN
+              PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV)
+              WRITE(ILUOUT,*) 'CCN PLBXSVM   will be initialized to 0'
+            ELSE
+              WRITE(ILUOUT,*) 'Pb to initialize CCN PLBXSVM '
+!callabortstop
+              CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP)
+              CALL ABORT
+              STOP
+            ENDIF
+          END IF
+        END IF
+      END IF
+!
+      IF (KSIZELBYSV_ll  /= 0 ) THEN
+        YRECFM = 'LBY_'//TRIM(UPCASE(CLIMA_WARM_NAMES(3))//INDICE)
+        YDIRLB='LBY'
+        CALL FMREAD_LB(HINIFILE,YRECFM,HLUOUT,YDIRLB,PLBYSVM(:,:,:,JSV),IRIMY,IL3DY,&
+             & IGRID,ILENCH,YCOMMENT,IRESP)
+        IF ( SIZE(PLBYSVM,1) /= 0 ) THEN
+          IF (IRESP/=0) THEN
+            IF (PRESENT(PLBYSVMM)) THEN
+              PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV)
+              WRITE(ILUOUT,*) 'CCN PLBYSVM   will be initialized to 0'
+            ELSE
+              WRITE(ILUOUT,*) 'Pb to initialize CCN PLBYSVM '
+!callabortstop
+              CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP)
+              CALL ABORT
+              STOP
+            ENDIF
+          END IF
+        END IF
+      END IF
+    CASE('INIT')
+      IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
+      IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
+    END SELECT
+  END DO
+  DO JSV = NSV_LIMA_IFN_FREE,NSV_LIMA_IFN_FREE+NMOD_IFN-1
+    SELECT CASE(HGETSVM(JSV))
+    CASE ('READ')
+      WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1)
+      IF ( KSIZELBXSV_ll /= 0 ) THEN
+        YRECFM = 'LBX_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2))//INDICE)
+        YDIRLB='LBX'
+        CALL FMREAD_LB(HINIFILE,YRECFM,HLUOUT,YDIRLB,PLBXSVM(:,:,:,JSV),IRIMX,IL3DX,&
+           & IGRID,ILENCH,YCOMMENT,IRESP)
+        IF ( SIZE(PLBXSVM,1) /= 0 ) THEN
+          IF (IRESP/=0) THEN
+            IF (PRESENT(PLBXSVMM)) THEN
+              PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV)
+              WRITE(ILUOUT,*) 'IFN PLBXSVM   will be initialized to 0'
+            ELSE
+              WRITE(ILUOUT,*) 'Pb to initialize IFN'
+!callabortstop
+              CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP)
+              CALL ABORT
+              STOP
+            ENDIF
+          END IF
+        END IF
+      END IF
+!
+      IF (KSIZELBYSV_ll  /= 0 ) THEN
+        YRECFM = 'LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2))//INDICE)
+        YDIRLB='LBY'
+        CALL FMREAD_LB(HINIFILE,YRECFM,HLUOUT,YDIRLB,PLBYSVM(:,:,:,JSV),IRIMY,IL3DY,&
+           & IGRID,ILENCH,YCOMMENT,IRESP)
+        IF ( SIZE(PLBYSVM,1) /= 0 ) THEN
+          IF (IRESP/=0) THEN
+            IF (PRESENT(PLBYSVMM)) THEN
+              PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV)
+              WRITE(ILUOUT,*) 'IFN PLBYSVM   will be initialized to 0'
+            ELSE
+              WRITE(ILUOUT,*) 'Pb to initialize IFN'
+!callabortstop
+              CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP)
+              CALL ABORT
+              STOP
+            ENDIF
+          END IF
+        END IF
+      END IF
+    CASE('INIT')
+      IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
+      IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
+    END SELECT
+  END DO
+ENDIF
 ! ELEC scalar variables 
 DO JSV = NSV_ELECBEG, NSV_ELECEND
   SELECT CASE(HGETSVM(JSV))
diff --git a/src/MNH/ini_micron.f90 b/src/MNH/ini_micron.f90
index 516f1b5be..79b357084 100644
--- a/src/MNH/ini_micron.f90
+++ b/src/MNH/ini_micron.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/ini_micron.f90,v $ $Revision: 1.3.2.2.2.1.2.2.10.2 $
 ! MASDEV4_7 init 2007/03/23 11:55:57
 !-----------------------------------------------------------------
 !      ########################
@@ -50,6 +50,7 @@ END MODULE MODI_INI_MICRO_n
 !!    -------------
 !!      Original         27/11/02
 !!      O.Geoffroy (03/2006) : Add KHKO scheme
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !!
 !! --------------------------------------------------------------------------
 !
@@ -57,8 +58,6 @@ END MODULE MODI_INI_MICRO_n
 !          ------------
 !
 !
-USE MODD_NSV, ONLY : NSV,NSV_CHEM,NSV_C2R2BEG,NSV_C2R2END, &
-                                  NSV_C1R3BEG,NSV_C1R3END
 USE MODD_CONF, ONLY : CCONF,CPROGRAM       
 USE MODD_LUNIT_n, ONLY : CINIFILE,CLUOUT
 USE MODD_GET_n, ONLY : CGETRCT,CGETRRT, CGETRST, CGETRGT, CGETRHT, CGETCLOUD
@@ -90,6 +89,22 @@ USE MODI_SET_CONC_ICE_C1R3
 USE MODE_ll
 USE MODE_MODELN_HANDLER
 !
+USE MODD_NSV,        ONLY : NSV,NSV_CHEM,NSV_C2R2BEG,NSV_C2R2END, &
+                            NSV_C1R3BEG,NSV_C1R3END,              &
+                            NSV_LIMA, NSV_LIMA_BEG, NSV_LIMA_END, &
+                            NSV_LIMA_NC, NSV_LIMA_NR,             &
+                            NSV_LIMA_CCN_FREE, NSV_LIMA_CCN_ACTI, &
+                            NSV_LIMA_SCAVMASS,                    &
+                            NSV_LIMA_NI,                          &
+                            NSV_LIMA_IFN_FREE, NSV_LIMA_IFN_NUCL, &
+                            NSV_LIMA_IMM_NUCL, NSV_LIMA_HOM_HAZE
+USE MODD_PARAM_LIMA, ONLY : LSCAV, MSEDC=>LSEDC, MACTIT=>LACTIT
+USE MODD_LIMA_PRECIP_SCAVENGING_n
+!
+USE MODI_INIT_AEROSOL_CONCENTRATION
+USE MODI_INI_LIMA
+USE MODI_SET_CONC_LIMA
+!
 IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
@@ -140,9 +155,9 @@ ELSE
   ALLOCATE(XACPRR(0,0))
 END IF
 !
-IF ((CCLOUD(1:3) == 'ICE' .AND. LSEDIC)  .OR. &
-    ((CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. &
-    CCLOUD == 'KHKO') .AND. LSEDC)) THEN
+IF (( CCLOUD(1:3) == 'ICE'                                   .AND.LSEDIC) .OR. &
+    ((CCLOUD=='C2R2' .OR. CCLOUD=='C3R5' .OR. CCLOUD=='KHKO').AND.LSEDC)  .OR. &
+    ( CCLOUD=='LIMA'                                         .AND.MSEDC))  THEN
   ALLOCATE(XINPRC(IIU,IJU))
   ALLOCATE(XACPRC(IIU,IJU))
   XINPRC(:,:)=0.0
@@ -152,7 +167,7 @@ ELSE
   ALLOCATE(XACPRC(0,0))
 END IF
 !
-IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5') THEN
+IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'LIMA') THEN
   ALLOCATE(XINPRS(IIU,IJU))
   ALLOCATE(XACPRS(IIU,IJU))
   XINPRS(:,:)=0.0
@@ -162,7 +177,7 @@ ELSE
   ALLOCATE(XACPRS(0,0))
  END IF
 !
-IF (CCLOUD == 'C3R5' .OR. CCLOUD(1:3) == 'ICE' ) THEN
+IF (CCLOUD == 'C3R5' .OR. CCLOUD(1:3) == 'ICE'.OR. CCLOUD == 'LIMA') THEN
   ALLOCATE(XINPRG(IIU,IJU))
   ALLOCATE(XACPRG(IIU,IJU))
   XINPRG(:,:)=0.0
@@ -172,7 +187,7 @@ ELSE
   ALLOCATE(XACPRG(0,0))
 END IF
 !
-IF (CCLOUD =='ICE4') THEN
+IF (CCLOUD =='ICE4' .OR. CCLOUD == 'LIMA') THEN
   ALLOCATE(XINPRH(IIU,IJU))
   ALLOCATE(XACPRH(IIU,IJU))
   XINPRH(:,:)=0.0
@@ -186,7 +201,7 @@ IF(SIZE(XINPRR) == 0) RETURN
 !
 !*       2b.    ALLOCATION for Radiative cooling 
 !              ------------------------------
-IF (LACTIT) THEN
+IF (LACTIT .OR. MACTIT) THEN
   ALLOCATE( XTHM(IIU,IJU,IKU) )
   ALLOCATE( XRCM(IIU,IJU,IKU) )
   XTHM = XTHT
@@ -196,12 +211,23 @@ IF (LACTIT) THEN
   ALLOCATE( XRCM(0,0,0) )
 END IF
 !
+!
+!*       2.bis ALLOCATE  Module MODD_PRECIP_SCAVENGING_n
+!              ------------------------------
+!
+IF ( (CCLOUD=='LIMA') .AND. LSCAV ) THEN
+  ALLOCATE(XINPAP(IIU,IJU))
+  ALLOCATE(XACPAP(IIU,IJU))
+  XINPAP(:,:)=0.0
+  XACPAP(:,:)=0.0  
+END IF
+!
 !*       3.    INITIALIZE MODD_PRECIP_n variables
 !              ----------------------------------
 !
-CALL READ_PRECIP_FIELD(CINIFILE,CLUOUT,CPROGRAM,CCONF,                           &
-                  CGETRCT,CGETRRT,CGETRST,CGETRGT,CGETRHT,                       &
-                  XINPRC,XACPRC,XINPRR,XINPRR3D,XEVAP3D,                         &
+CALL READ_PRECIP_FIELD(CINIFILE,CLUOUT,CPROGRAM,CCONF,              &
+                  CGETRCT,CGETRRT,CGETRST,CGETRGT,CGETRHT,          &
+                  XINPRC,XACPRC,XINPRR,XINPRR3D,XEVAP3D,            &
                   XACPRR,XINPRS,XACPRS,XINPRG,XACPRG, XINPRH,XACPRH )           
 !
 !
@@ -220,17 +246,24 @@ DO JK = IKB,IKE
 END DO
 ZDZMIN = MIN_ll (ZDZ,IINFO_ll,1,1,IKB,NIMAX_ll+2*JPHEXT,NJMAX_ll+2*JPHEXT,IKE )
 DEALLOCATE(ZDZ)
+!
 IF (CCLOUD(1:3) == 'KES') THEN
   CALL INI_CLOUD(XTSTEP,ZDZMIN,NSPLITR)                  ! Warm cloud only
 ELSE IF (CCLOUD(1:3) == 'ICE'  ) THEN
-  CALL INI_RAIN_ICE(KLUOUT,XTSTEP,ZDZMIN,NSPLITR,CCLOUD)        ! Mixed phase cloud
+  CALL INI_RAIN_ICE(KLUOUT,XTSTEP,ZDZMIN,NSPLITR,CCLOUD) ! Mixed phase cloud
                                                          ! including hail
-ELSE IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' &
-         .OR. CCLOUD == 'KHKO') THEN
-  CALL INI_RAIN_C2R2(XTSTEP,ZDZMIN,NSPLITR,CCLOUD)        ! 1/2 spectral warm cloud
+ELSE IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') THEN
+  CALL INI_RAIN_C2R2(XTSTEP,ZDZMIN,NSPLITR,CCLOUD)       ! 1/2 spectral warm cloud
   IF (CCLOUD == 'C3R5') THEN
     CALL INI_ICE_C1R3(XTSTEP,ZDZMIN,NSPLITG)       ! 1/2 spectral cold cloud
   END IF
+ELSE IF (CCLOUD == 'LIMA') THEN               
+   IF (CGETCLOUD /= 'READ') THEN 
+      CALL INIT_AEROSOL_CONCENTRATION(XRHODREF,                              &
+                                      XSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), &
+                                                                  XZZ(:,:,:) )
+   END IF
+   CALL INI_LIMA(XTSTEP,ZDZMIN,NSPLITR, NSPLITG)   ! 1/2 spectral warm cloud
 END IF
 !
 IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') THEN
@@ -250,6 +283,13 @@ IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') THEN
   ENDIF
 ENDIF
 !
+IF (CCLOUD == 'LIMA') THEN
+   IF (CGETCLOUD/='READ') THEN
+      CALL SET_CONC_LIMA(CLUOUT,CGETCLOUD,XRHODREF,&
+                         XRT,XSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END))
+   END IF
+END IF
+!
 !
 !*       5.    INITIALIZE ATMOSPHERIC ELECTRICITY
 !              ----------------------------------
diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index b50f47d86..ce648a216 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -266,6 +266,7 @@ END MODULE MODI_INI_MODEL_n
 !!       V. Masson     Feb 2015 replaces, for aerosols, cover fractions by sea, town, bare soil fractions
 !!                   J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files
 !!  06/2016     (G.Delautier) phasage surfex 8
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !---------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -410,6 +411,7 @@ USE MODD_RELFRC_n
 USE MODD_2D_FRC
 !
 USE MODE_MPPDB
+USE MODI_INIT_AEROSOL_PROPERTIES
 !
 IMPLICIT NONE
 !
@@ -498,6 +500,12 @@ REAL, DIMENSION(:,:,:), POINTER ::   DPTR_XLSUS,DPTR_XLSVS,DPTR_XLSWS,DPTR_XLSTH
 !
 !*       0.    PROLOGUE
 !              --------
+! Compute relaxation coefficients without changing INI_DYNAMICS nor RELAXDEF
+!
+IF (CCLOUD == 'LIMA') THEN
+  LHORELAX_SVC1R3=LHORELAX_SVLIMA
+END IF
+!
 !
 NULLIFY(TZINITHALO2D_ll)
 NULLIFY(TZINITHALO3D_ll)
@@ -1526,6 +1534,8 @@ ELSE
   IF (.NOT.(ASSOCIATED(XSOLORG))) ALLOCATE(XSOLORG(0,0,0,0))
 END IF
 !
+IF (CCLOUD=='LIMA') CALL INIT_AEROSOL_PROPERTIES
+!
 !-------------------------------------------------------------------------------
 !
 !*       8.    INITIALIZE THE PROGNOSTIC FIELDS
diff --git a/src/MNH/ini_nsv.f90 b/src/MNH/ini_nsv.f90
index fd55ecb10..00407e247 100644
--- a/src/MNH/ini_nsv.f90
+++ b/src/MNH/ini_nsv.f90
@@ -62,6 +62,7 @@ END MODULE MODI_INI_NSV
 !!                     03/2013   (C.Lac) add supersaturation as 
 !!                               the 4th C2R2 scalar variable
 !!       J.escobar     04/08/2015 suit Pb with writ_lfin JSA increment , modif in ini_nsv to have good order initialization
+!!      Modification    01/2016  (JP Pinty) Add LIMA and LUSECHEM condition
 !! 
 !-------------------------------------------------------------------------------
 !
@@ -74,10 +75,11 @@ USE MODD_CH_M9_n,    ONLY : NEQ, NEQAQ
 USE MODD_CH_MNHC_n, ONLY : LUSECHEM, LUSECHAQ, LUSECHIC, CCH_SCHEME, LCH_CONV_LINOX
 USE MODD_DIAG_FLAG,ONLY : LELECDIAG,LCHEMDIAG,LCHAQDIAG
 USE MODD_PARAM_n,   ONLY : CCLOUD, CELEC
-USE MODD_DYN_n,     ONLY : LHORELAX_SV,LHORELAX_SVC2R2,LHORELAX_SVC1R3, &
-                          LHORELAX_SVELEC,LHORELAX_SVCHEM,LHORELAX_SVLG, &
-                          LHORELAX_SVDST,LHORELAX_SVAER, LHORELAX_SVSLT, &
-                          LHORELAX_SVPP,LHORELAX_SVCS, LHORELAX_SVCHIC
+USE MODD_DYN_n,     ONLY : LHORELAX_SV,LHORELAX_SVC2R2,LHORELAX_SVC1R3,   &
+                           LHORELAX_SVLIMA,                               &
+                           LHORELAX_SVELEC,LHORELAX_SVCHEM,LHORELAX_SVLG, &
+                           LHORELAX_SVDST,LHORELAX_SVAER, LHORELAX_SVSLT, &
+                           LHORELAX_SVPP,LHORELAX_SVCS, LHORELAX_SVCHIC
 #ifdef MNH_FOREFIRE
 USE MODD_DYN_n,     ONLY : LHORELAX_SVFF
 USE MODD_FOREFIRE
@@ -93,11 +95,17 @@ USE MODD_PREP_REAL, ONLY: XT_LS
 USE MODD_ELEC_DESCR, ONLY : LLNOX_EXPLICIT
 USE MODD_PARAM_C2R2, ONLY : LSUPSAT
 !
+USE MODD_PARAM_LIMA, ONLY: NMOD_CCN, LSCAV, LAERO_MASS, &
+                           NMOD_IFN, NMOD_IMM, LHHONI,  &
+                           LWARM, LCOLD, LRAIN
+!
 USE MODI_UPDATE_NSV
 USE MODD_CST, ONLY : XMNH_TINY
 !
 IMPLICIT NONE 
 !
+!-------------------------------------------------------------------------------
+!
 !*       0.1   Declarations of arguments
 !
 INTEGER, INTENT(IN)             :: KMI ! model index
@@ -106,6 +114,8 @@ INTEGER, INTENT(IN)             :: KMI ! model index
 !
 INTEGER :: ISV ! total number of scalar variables
 !
+!-------------------------------------------------------------------------------
+!
 LINI_NSV = .TRUE. 
 !
 ! Users scalar variables are first considered
@@ -148,6 +158,72 @@ ELSE
   NSV_C1R3END_A(KMI) = 0
 END IF
 !
+! scalar variables used in the LIMA microphysical scheme
+!
+IF (CCLOUD == 'LIMA' ) THEN
+   ISV = ISV+1
+   NSV_LIMA_BEG_A(KMI) = ISV
+   IF (LWARM) THEN
+! Nc
+      NSV_LIMA_NC_A(KMI) = ISV
+      ISV = ISV+1
+! Nr
+      IF (LRAIN) THEN
+         NSV_LIMA_NR_A(KMI) = ISV
+         ISV = ISV+1
+      END IF
+   END IF ! LWARM
+! CCN
+   IF (NMOD_CCN .GT. 0) THEN
+      NSV_LIMA_CCN_FREE_A(KMI) = ISV
+      ISV = ISV + NMOD_CCN
+      NSV_LIMA_CCN_ACTI_A(KMI) = ISV
+      ISV = ISV + NMOD_CCN
+   END IF
+! Scavenging
+   IF (LSCAV .AND. LAERO_MASS) THEN
+      NSV_LIMA_SCAVMASS_A(KMI) = ISV
+      ISV = ISV+1
+   END IF ! LSCAV
+! 
+   IF (LCOLD) THEN
+! Ni
+      NSV_LIMA_NI_A(KMI) = ISV
+      ISV = ISV+1
+   END IF ! LCOLD
+! IFN
+   IF (NMOD_IFN .GT. 0) THEN
+      NSV_LIMA_IFN_FREE_A(KMI) = ISV
+      ISV = ISV + NMOD_IFN
+      NSV_LIMA_IFN_NUCL_A(KMI) = ISV
+      ISV = ISV + NMOD_IFN
+   END IF
+! IMM
+   IF (NMOD_IMM .GT. 0) THEN
+      NSV_LIMA_IMM_NUCL_A(KMI) = ISV
+      ISV = ISV + MAX(1,NMOD_IMM)
+   END IF
+! Homogeneous freezing of CCN
+   IF (LCOLD .AND. LHHONI) THEN
+      NSV_LIMA_HOM_HAZE_A(KMI) = ISV
+      ISV = ISV + 1
+   END IF
+!
+! End and total variables
+!
+   ISV = ISV - 1
+   NSV_LIMA_END_A(KMI) = ISV
+   NSV_LIMA_A(KMI) = NSV_LIMA_END_A(KMI) - NSV_LIMA_BEG_A(KMI) + 1
+ELSE
+   NSV_LIMA_A(KMI)    = 0
+!
+! force First index to be superior to last index
+! in order to create a null section
+!
+   NSV_LIMA_BEG_A(KMI) = 1
+   NSV_LIMA_END_A(KMI) = 0
+END IF ! CCLOUD = LIMA
+!
 !
 !  Add one scalar for negative ion
 !   First variable: positive ion (NSV_ELECBEG_A index number)
@@ -244,7 +320,7 @@ END IF
 !
 ! scalar variables used in chemical core system
 !
-IF (NEQ .GT. 0) THEN
+IF (LUSECHEM .AND.(NEQ .GT. 0)) THEN
   NSV_CHEM_A(KMI)   = NEQ
   NSV_CHEMBEG_A(KMI)= ISV+1
   NSV_CHEMEND_A(KMI)= ISV+NSV_CHEM_A(KMI)
@@ -438,6 +514,9 @@ LHORELAX_SV(NSV_C2R2BEG_A(KMI):NSV_C2R2END_A(KMI))=LHORELAX_SVC2R2
 ! C3R5 SV case
 IF (CCLOUD == 'C3R5') &
 LHORELAX_SV(NSV_C1R3BEG_A(KMI):NSV_C1R3END_A(KMI))=LHORELAX_SVC1R3
+! LIMA SV case
+IF (CCLOUD == 'LIMA') &
+LHORELAX_SV(NSV_LIMA_BEG_A(KMI):NSV_LIMA_END_A(KMI))=LHORELAX_SVLIMA
 ! Electrical SV case
 IF (CELEC /= 'NONE') &
 LHORELAX_SV(NSV_ELECBEG_A(KMI):NSV_ELECEND_A(KMI))=LHORELAX_SVELEC
@@ -483,6 +562,8 @@ IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR.  CCLOUD == 'KHKO' ) &
 XSVMIN(NSV_C2R2BEG_A(KMI):NSV_C2R2END_A(KMI))=0.
 IF (CCLOUD == 'C3R5') &
 XSVMIN(NSV_C1R3BEG_A(KMI):NSV_C1R3END_A(KMI))=0.
+IF (CCLOUD == 'LIMA') &
+XSVMIN(NSV_LIMA_BEG_A(KMI):NSV_LIMA_END_A(KMI))=0.
 IF (CELEC /= 'NONE') &
 XSVMIN(NSV_ELECBEG_A(KMI):NSV_ELECEND_A(KMI))=0.
 IF (LUSECHEM .OR. LCHEMDIAG) &
diff --git a/src/MNH/ini_one_wayn.f90 b/src/MNH/ini_one_wayn.f90
index 6db1416cb..6ad02eb6c 100644
--- a/src/MNH/ini_one_wayn.f90
+++ b/src/MNH/ini_one_wayn.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/ini_one_wayn.f90,v $ $Revision: 1.3.2.2.2.1.2.1.10.1.2.4.2.1 $
 !-----------------------------------------------------------------
 !     #######################
       MODULE MODI_INI_ONE_WAY_n
@@ -142,6 +142,7 @@ SUBROUTINE INI_ONE_WAY_n(KDAD,HLUOUT,PTSTEP,KMI,KTCOUNT,                 &
 !!    Bosseur & Filippi 07/2013 Adds Forefire
 !!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!      J.Escobar : 18/12/2015 : Correction of bug in bound in // for NHALO <>1 
+!!      B.VIE   2016 : LIMA
 !!
 !------------------------------------------------------------------------------
 !
@@ -166,6 +167,8 @@ USE MODI_SET_CONC_RAIN_C2R2
 USE MODI_SET_CONC_ICE_C1R3
 USE MODI_SET_CHEMAQ_1WAY
 !
+USE MODI_SET_CONC_LIMA
+!
 IMPLICIT NONE
 !
 !*       0.1   declarations of arguments
@@ -395,6 +398,32 @@ IF (HCLOUD=="C3R5"  ) THEN
  ENDIF
 ENDIF
 !
+!  Checking if it is necessary to compute the Nc, Nr, Ni
+!  concentrations to use the LIMA microphysical scheme
+!  (FATHER does not use LIMA and CHILD uses LIMA)
+!
+IF (HCLOUD=="LIMA"  ) THEN
+   IF (CCLOUD/="LIMA") THEN
+      ALLOCATE(ZCONCM(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3),NSV_LIMA_A(KMI)))
+      IF (CCLOUD == "REVE") THEN
+         ZINIT_TYPE = "INI1"
+      ELSE
+         ZINIT_TYPE = "NONE"
+      END IF
+      CALL SET_CONC_LIMA (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCM)
+      DO JSV=1,NSV_LIMA_A(KMI)
+         CALL SET_LSFIELD_1WAY_ll(ZCONCM(:,:,:,JSV),&
+              &ZTSVM(:,:,:,JSV-1+NSV_LIMA_BEG_A(KMI)),KMI)
+      ENDDO   
+   ELSE
+      IF (NSV_LIMA_A(KMI)/=NSV_LIMA_A(KDAD)) CALL ABORT
+      DO JSV=1,NSV_LIMA_A(KMI)
+         CALL SET_LSFIELD_1WAY_ll(XSVT(:,:,:,JSV-1+NSV_LIMA_BEG_A(KDAD)),&
+              &ZTSVM(:,:,:,JSV-1+NSV_LIMA_BEG_A(KMI)),KMI)
+      END DO
+   END IF
+ENDIF
+!
 ! electrical variables
 !
 DO JSV=1,MIN(NSV_ELEC_A(KMI),NSV_ELEC_A(KDAD))
diff --git a/src/MNH/ini_posprofilern.f90 b/src/MNH/ini_posprofilern.f90
index 84e954110..fa869c076 100644
--- a/src/MNH/ini_posprofilern.f90
+++ b/src/MNH/ini_posprofilern.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/ini_posprofilern.f90,v $ $Revision: 1.2.2.2.2.2.2.2.2.1.2.3 $
 ! masdev4_7 BUG1 2007/06/28 11:28:12
 !-----------------------------------------------------------------
 !      #########################
@@ -72,8 +72,6 @@ END MODULE MODI_INI_POSPROFILER_n
 !!    MODIFICATIONS
 !!    -------------
 !!     P. Tulet 15/01/2002  
-!!              July, 2015 (O.Nuissier/F.Duffourg) Add microphysics diagnostic for
-!!                                      aircraft, ballon and profiler
 !!
 !! --------------------------------------------------------------------------
 !       
@@ -185,16 +183,6 @@ ALLOCATE(TPROFILER%TH    (ISTORE,IKU,NUMBPROFILER))
 ALLOCATE(TPROFILER%THV   (ISTORE,IKU,NUMBPROFILER))
 ALLOCATE(TPROFILER%RHOD  (ISTORE,IKU,NUMBPROFILER))
 ALLOCATE(TPROFILER%RARE  (ISTORE,IKU,NUMBPROFILER))
-ALLOCATE(TPROFILER%SPEEDC(ISTORE,IKU,NUMBPROFILER))
-ALLOCATE(TPROFILER%SPEEDR(ISTORE,IKU,NUMBPROFILER))
-ALLOCATE(TPROFILER%SPEEDS(ISTORE,IKU,NUMBPROFILER))
-ALLOCATE(TPROFILER%SPEEDG(ISTORE,IKU,NUMBPROFILER))
-ALLOCATE(TPROFILER%SPEEDH(ISTORE,IKU,NUMBPROFILER))
-ALLOCATE(TPROFILER%INPRC3D(ISTORE,IKU,NUMBPROFILER))
-ALLOCATE(TPROFILER%INPRR3D(ISTORE,IKU,NUMBPROFILER))
-ALLOCATE(TPROFILER%INPRS3D(ISTORE,IKU,NUMBPROFILER))
-ALLOCATE(TPROFILER%INPRG3D(ISTORE,IKU,NUMBPROFILER))
-ALLOCATE(TPROFILER%INPRH3D(ISTORE,IKU,NUMBPROFILER))
 ALLOCATE(TPROFILER%R     (ISTORE,IKU,NUMBPROFILER,KRR))
 ALLOCATE(TPROFILER%SV    (ISTORE,IKU,NUMBPROFILER,KSV))
 ALLOCATE(TPROFILER%AER   (ISTORE,IKU,NUMBPROFILER,NAER))
@@ -236,16 +224,6 @@ TPROFILER%TH   = XUNDEF
 TPROFILER%THV  = XUNDEF
 TPROFILER%RHOD = XUNDEF
 TPROFILER%RARE = XUNDEF
-TPROFILER%SPEEDC = XUNDEF
-TPROFILER%SPEEDR = XUNDEF
-TPROFILER%SPEEDS = XUNDEF
-TPROFILER%SPEEDG = XUNDEF
-TPROFILER%SPEEDG = XUNDEF
-TPROFILER%INPRC3D= XUNDEF
-TPROFILER%INPRR3D= XUNDEF
-TPROFILER%INPRS3D= XUNDEF
-TPROFILER%INPRG3D= XUNDEF
-TPROFILER%INPRH3D= XUNDEF
 TPROFILER%IWV  = XUNDEF
 TPROFILER%ZTD  = XUNDEF
 TPROFILER%ZWD  = XUNDEF
diff --git a/src/MNH/lidar.f90 b/src/MNH/lidar.f90
index eb64a5fca..835da8685 100644
--- a/src/MNH/lidar.f90
+++ b/src/MNH/lidar.f90
@@ -21,11 +21,11 @@ REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT     ! Moist variables at t
 REAL, DIMENSION(:,:,:),  INTENT(OUT) :: PLIDAROUT ! Lidar output
 REAL, DIMENSION(:,:,:),  INTENT(OUT) :: PLIPAROUT ! Lidar output (particle only)
 
-REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(IN) :: PCT  ! Concentration 
-                                                       ! (C2R2 and C1R3) 
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PDSTC ! Dust Concentration 
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PDSTD ! Dust Diameter
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PDSTS ! Dust Sigma
+REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(IN) :: PCT ! Concentration 
+                                                      ! (C2R2 and C1R3) 
+REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(IN) :: PDSTC ! Dust Concentration 
+REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(IN) :: PDSTD ! Dust Diameter
+REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(IN) :: PDSTS ! Dust Sigma
 !
 
 !
@@ -84,6 +84,7 @@ END MODULE MODI_LIDAR
 !!      JP Chaboureau 12/02/10 change dust refraction index
 !!                             add inputs (lidar charact. and cloud fraction)
 !!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
+!!   B.VIE  2016 : LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -93,8 +94,8 @@ USE MODD_PARAMETERS
 USE MODD_CST
 USE MODD_RAIN_C2R2_DESCR, ONLY : XLBEXC, XLBEXR, &
                                  XRTMIN, XCTMIN
-USE MODD_PARAM_C2R2,      ONLY : XALPHAC,XNUC, &
-                                 XALPHAR,XNUR
+USE MODD_PARAM_C2R2,      ONLY : YALPHAC=>XALPHAC,YNUC=>XNUC, &
+                                 YALPHAR=>XALPHAR,YNUR=>XNUR
 USE MODD_RAIN_ICE_DESCR,  ONLY : XCCR, WLBEXR=>XLBEXR, XLBR, &
                                  XCCS, XCXS,   XLBEXS, XLBS, &
                                  XCCG, XCXG,   XLBEXG, XLBG, &
@@ -103,9 +104,17 @@ USE MODD_RAIN_ICE_DESCR,  ONLY : XCCR, WLBEXR=>XLBEXR, XLBR, &
 USE MODD_ICE_C1R3_DESCR,  ONLY : XLBEXI,                      &
                                  YRTMIN=>XRTMIN, YCTMIN=>XCTMIN
 !
+USE MODD_PARAM_LIMA,      ONLY : URTMIN=>XRTMIN, UCTMIN=>XCTMIN, &
+                                 UALPHAC=>XALPHAC,UNUC=>XNUC, &
+                                 UALPHAR=>XALPHAR,UNUR=>XNUR, &
+                                 UALPHAI=>XALPHAI,UNUI=>XNUI 
+USE MODD_PARAM_LIMA_COLD, ONLY : UCCS=>XCCS, UCXS=>XCXS, ULBEXS=>XLBEXS, & 
+                                                         ULBS=>XLBS
+USE MODD_PARAM_LIMA_MIXED,ONLY : UCCG=>XCCG, UCXG=>XCXG, ULBEXG=>XLBEXG, &
+                                                         ULBG=>XLBG
+!
 USE MODI_BHMIE_WATER    ! Gamma or mono dispersed size distributions
 USE MODI_BHMIE_AEROSOLS ! Lognormal or mono dispersed size distributions
-USE MODE_ll
 !
 IMPLICIT NONE
 !
@@ -124,9 +133,9 @@ REAL, DIMENSION(:,:,:),  INTENT(OUT) :: PLIPAROUT ! Lidar output (particle only)
 
 REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(IN) :: PCT  ! Concentration 
                                                        ! (C2R2 and C1R3) 
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PDSTC ! Dust Concentration 
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PDSTD ! Dust Diameter
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN) :: PDSTS ! Dust Sigma
+REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(IN) :: PDSTC ! Dust Concentration 
+REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(IN) :: PDSTD ! Dust Diameter
+REAL, DIMENSION(:,:,:,:), OPTIONAL, INTENT(IN) :: PDSTS ! Dust Sigma
 !
 !*       0.2   Declarations of local variables :
 !
@@ -199,6 +208,11 @@ REAL, DIMENSION(5) :: ZPOLC, ZPOLR, ZPOLI ! BackScat. Coefficients
 ! 
 REAL, DIMENSION(10) :: ZRTMIN, ZCTMIN
 REAL                :: ZLBEXR
+!
+INTEGER :: JL
+REAL :: ZALPHAC, ZNUC, ZALPHAR, ZNUR, ZALPHAI, ZNUI
+REAL :: ZCCS, ZCXS, ZLBEXS, ZLBS
+REAL :: ZCCG, ZCXG, ZLBEXG, ZLBG
 ! 
 ! -----------------------------------------------------------------------------
 !
@@ -246,13 +260,56 @@ SELECT CASE ( HCLOUD )
   CASE('ICE2','ICE3','ICE4')
     ZRTMIN(1:SIZE(WRTMIN)) = WRTMIN(1:SIZE(WRTMIN))
     ZLBEXR = WLBEXR
+    ZCCS    = XCCS
+    ZCXS    = XCXS
+    ZLBEXS  = XLBEXS
+    ZLBS    = XLBS
+    ZCCG    = XCCG
+    ZCXG    = XCXG
+    ZLBEXG  = XLBEXG
+    ZLBG    = XLBG
   CASE('C2R2')
     ZRTMIN(1:SIZE(XRTMIN)) = XRTMIN(1:SIZE(XRTMIN))
     ZCTMIN(1:SIZE(XCTMIN)) = XCTMIN(1:SIZE(XCTMIN))
-    ZLBEXR = XLBEXR
+    ZLBEXR  = XLBEXR
+    ZALPHAC = YALPHAC
+    ZNUR    = YNUR
+    ZALPHAR = YALPHAR
+    ZNUC    = YNUC
   CASE('C3R5')
     ZRTMIN(1:SIZE(YRTMIN)) = YRTMIN(1:SIZE(YRTMIN))
     ZCTMIN(1:SIZE(YCTMIN)) = YCTMIN(1:SIZE(YCTMIN))
+    ZALPHAC = YALPHAC
+    ZNUR    = YNUR
+    ZALPHAR = YALPHAR
+    ZNUC    = YNUC
+    ZALPHAI = ZALPHAC
+    ZNUI    = ZNUC
+    ZCCS    = XCCS
+    ZCXS    = XCXS
+    ZLBEXS  = XLBEXS
+    ZLBS    = XLBS
+    ZCCG    = XCCG
+    ZCXG    = XCXG
+    ZLBEXG  = XLBEXG
+    ZLBG    = XLBG
+  CASE('LIMA')
+      ZRTMIN(1:SIZE(URTMIN)) = URTMIN(1:SIZE(URTMIN))
+      ZCTMIN(1:SIZE(UCTMIN)) = UCTMIN(1:SIZE(UCTMIN))
+      ZALPHAC = UALPHAC
+      ZNUR    = UNUR
+      ZALPHAR = UALPHAR
+      ZNUC    = UNUC
+      ZALPHAI = UALPHAI
+      ZNUI    = UNUI
+      ZCCS    = UCCS
+      ZCXS    = UCXS 
+      ZLBEXS  = ULBEXS 
+      ZLBS    = ULBS
+      ZCCG    = UCCG
+      ZCXG    = UCXG 
+      ZLBEXG  = ULBEXG
+      ZLBG    = ULBG
 END SELECT
 !
 ! -----------------------------------------------------------------------------
@@ -274,26 +331,29 @@ ZALPH_PAR(:,:,:) = 0.
 ! AEROSOL CONTRIBUTION     ! call bhmie_aerosols
 !
 IF (PRESENT(PDSTC)) THEN
-   DO JK = IKB, IKE
-     DO JJ = IJB, IJE
-       DO JI = IIB, IIE
-         IF ( PDSTD(JI,JJ,JK)>0.1 ) THEN
-!
-! Desert dust particles
-!
-           YDSD    = 'MONOD'
-           ZCONC   = PDSTC(JI,JJ,JK)
-           ZFRACVOL_CORE = 1.0
-           ZRADIUS = PDSTD(JI,JJ,JK)*1.0E-6
-           CALL BHMIE_AEROSOLS( ZWAVE_LENGTH, ZZREFIND_DUST, ZZREFIND_DUST,  &
-                                YDSD, ZCONC, ZFRACVOL_CORE, ZEXT_COEF,       &
-                                ZBAK_COEF, PRADIUS=ZRADIUS )
-           ZALPH_PAR(JI,JJ,JK) = ZALPH_PAR(JI,JJ,JK) + ZETAAER * ZEXT_COEF
-           ZBETA_PAR(JI,JJ,JK) = ZBETA_PAR(JI,JJ,JK) + ZBAK_COEF
-         END IF
-       END DO
-     END DO
-   END DO
+  DO JL = 1, SIZE(PDSTD,4)
+    DO JK = IKB, IKE
+      DO JJ = IJB, IJE
+        DO JI = IIB, IIE
+          IF ( PDSTD(JI,JJ,JK,JL)>0.1 ) THEN
+ !
+ ! Desert dust particles
+ !
+            YDSD    = 'MONOD'
+            ZCONC   = PDSTC(JI,JJ,JK,JL)
+            ZFRACVOL_CORE = 1.0
+            ZRADIUS = PDSTD(JI,JJ,JK,JL)*1.0E-6
+            IF( ZRADIUS .GE. 1.0E-3 ) ZRADIUS = ZRADIUS * 1.0E-6
+            CALL BHMIE_AEROSOLS( ZWAVE_LENGTH, ZZREFIND_DUST, ZZREFIND_DUST,  &
+                                 YDSD, ZCONC, ZFRACVOL_CORE, ZEXT_COEF,       &
+                                 ZBAK_COEF, PRADIUS=ZRADIUS )
+            ZALPH_PAR(JI,JJ,JK) = ZALPH_PAR(JI,JJ,JK) + ZETAAER * ZEXT_COEF
+            ZBETA_PAR(JI,JJ,JK) = ZBETA_PAR(JI,JJ,JK) + ZBAK_COEF
+          END IF
+        END DO
+      END DO
+    END DO
+  END DO
 END IF
 !
 !
@@ -351,7 +411,7 @@ SELECT CASE ( HCLOUD )
         END DO
       END DO
     END DO
-  CASE ('C2R2','C3R5')
+  CASE ('C2R2','C3R5','LIMA')
     DO JK = IKB, IKE
       DO JJ = IJB, IJE
         DO JI = IIB, IIE
@@ -366,7 +426,7 @@ SELECT CASE ( HCLOUD )
             IANGLE  = 11
             CALL BHMIE_WATER( ZWAVE_LENGTH, ZZREFIND_WAT, YDSD, ZCONC,       &
                               IANGLE, ZEXT_COEF, ZBAK_COEF, KRADIUS=IRADIUS, & 
-                              PALPHA=XALPHAC, PNU=XNUC, PLWC=ZLWC            )
+                              PALPHA=ZALPHAC, PNU=ZNUC, PLWC=ZLWC            )
             ZALPH_PAR(JI,JJ,JK) = ZALPH_PAR(JI,JJ,JK) + ZETACLD * ZEXT_COEF
             ZBETA_PAR(JI,JJ,JK) = ZBETA_PAR(JI,JJ,JK) + ZBAK_COEF
           END IF
@@ -387,7 +447,7 @@ SELECT CASE ( HCLOUD )
             IANGLE  = 11
             CALL BHMIE_WATER( ZWAVE_LENGTH, ZZREFIND_WAT, YDSD, ZCONC,       &
                               IANGLE, ZEXT_COEF, ZBAK_COEF, KRADIUS=IRADIUS, & 
-                              PALPHA=XALPHAR, PNU=XNUR, PLWC=ZLWC            )
+                              PALPHA=ZALPHAR, PNU=ZNUR, PLWC=ZLWC            )
             ZALPH_PAR(JI,JJ,JK) = ZALPH_PAR(JI,JJ,JK) + ZETACLD * ZEXT_COEF
             ZBETA_PAR(JI,JJ,JK) = ZBETA_PAR(JI,JJ,JK) + ZBAK_COEF
           END IF
@@ -425,7 +485,7 @@ SELECT CASE ( HCLOUD )
         END DO
       END DO
     END DO
-  CASE ('C3R5')
+  CASE ('C3R5','LIMA')
     DO JK = IKB, IKE
       DO JJ = IJB, IJE
         DO JI = IIB, IIE
@@ -440,7 +500,7 @@ SELECT CASE ( HCLOUD )
             IANGLE  = 11
             CALL BHMIE_WATER( ZWAVE_LENGTH, ZZREFIND_ICE, YDSD, ZCONC,       &
                               IANGLE, ZEXT_COEF, ZBAK_COEF, KRADIUS=IRADIUS, &
-                              PALPHA=XALPHAC, PNU=XNUC, PLWC=ZIWC            )
+                              PALPHA=ZALPHAI, PNU=ZNUI, PLWC=ZIWC            )
             ZALPH_PAR(JI,JJ,JK) = ZALPH_PAR(JI,JJ,JK) + ZETACLD * ZEXT_COEF
             ZBETA_PAR(JI,JJ,JK) = ZBETA_PAR(JI,JJ,JK) + ZBAK_COEF
           END IF
@@ -449,7 +509,7 @@ SELECT CASE ( HCLOUD )
     END DO
 END SELECT
 SELECT CASE ( HCLOUD )
-  CASE('ICE2','ICE3','ICE4','C3R5')
+  CASE('ICE2','ICE3','ICE4','C3R5','LIMA')
     DO JK = IKB, IKE
       DO JJ = IJB, IJE
         DO JI = IIB, IIE
@@ -459,21 +519,23 @@ SELECT CASE ( HCLOUD )
 !
             YDSD = 'MONOD'
             ZIWC    = PRHO(JI,JJ,JK)*PRT(JI,JJ,JK,5)
-            ZLBDAS  = XLBS*(ZIWC)**XLBEXS
-            ZCONC   = XCCS*(ZLBDAS)**XCXS
-            ZRADIUS = 0.5*(3.0/ZLBDAS) ! Assume Marshall-Palmer law for Reff
-            IANGLE  = 11
-            CALL BHMIE_WATER( ZWAVE_LENGTH, ZZREFIND_ICE, YDSD, ZCONC,      &
-                              IANGLE, ZEXT_COEF, ZBAK_COEF, PRADIUS=ZRADIUS )
-            ZALPH_PAR(JI,JJ,JK) = ZALPH_PAR(JI,JJ,JK) + ZETACLD * ZEXT_COEF
-            ZBETA_PAR(JI,JJ,JK) = ZBETA_PAR(JI,JJ,JK) + ZBAK_COEF
+            ZLBDAS  = ZLBS*(ZIWC)**ZLBEXS
+            IF (ZLBDAS .GT. 0) THEN
+              ZCONC   = ZCCS*(ZLBDAS)**ZCXS
+              ZRADIUS = 0.5*(3.0/ZLBDAS) ! Assume Marshall-Palmer law for Reff
+              IANGLE  = 11
+              CALL BHMIE_WATER( ZWAVE_LENGTH, ZZREFIND_ICE, YDSD, ZCONC,      &
+                                IANGLE, ZEXT_COEF, ZBAK_COEF, PRADIUS=ZRADIUS )
+              ZALPH_PAR(JI,JJ,JK) = ZALPH_PAR(JI,JJ,JK) + ZETACLD * ZEXT_COEF
+              ZBETA_PAR(JI,JJ,JK) = ZBETA_PAR(JI,JJ,JK) + ZBAK_COEF
+            END IF
           END IF
         END DO
       END DO
     END DO
 END SELECT
 SELECT CASE ( HCLOUD )
-  CASE('ICE3','ICE4','C3R5')
+  CASE('ICE3','ICE4','C3R5','LIMA')
     DO JK = IKB, IKE
       DO JJ = IJB, IJE
         DO JI = IIB, IIE
@@ -483,8 +545,8 @@ SELECT CASE ( HCLOUD )
 !
             YDSD = 'MONOD'
             ZIWC    = PRHO(JI,JJ,JK)*PRT(JI,JJ,JK,6)
-            ZLBDAG  = XLBG*(ZIWC)**XLBEXG
-            ZCONC   = XCCG*(ZLBDAG)**XCXG
+            ZLBDAG  = ZLBG*(ZIWC)**ZLBEXG
+            ZCONC   = ZCCG*(ZLBDAG)**ZCXG
             ZRADIUS = 0.5*(3.0/ZLBDAG) ! Assume Marshall-Palmer law for Reff
             IANGLE  = 11
             CALL BHMIE_WATER( ZWAVE_LENGTH, ZZREFIND_ICE, YDSD, ZCONC,      &
diff --git a/src/MNH/modd_aircraft_balloon.f90 b/src/MNH/modd_aircraft_balloon.f90
index 676092e19..677a4c4ac 100644
--- a/src/MNH/modd_aircraft_balloon.f90
+++ b/src/MNH/modd_aircraft_balloon.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/modd_aircraft_balloon.f90,v $ $Revision: 1.1.10.1.2.1.10.2.2.2 $
 ! MASDEV4_7 modd 2006/06/28 11:31:03
 !-----------------------------------------------------------------
 !     ############################
@@ -36,8 +36,7 @@
 !!      Original    15/05/00
 !!              Apr,19, 2001 (G.Jaubert) add CVBALL type
 !!              March, 2013 : O.Caumont, C.Lac : add vertical profiles
-!!              July, 2015 (O.Nuissier/F.Duffourg) Add microphysics diagnostic for
-!!                                      aircraft, ballon and profiler
+!!              Oct,2016 : G.DELAUTIER LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -135,10 +134,8 @@ REAL, DIMENSION(:,:), POINTER :: FFZ      ! horizontal wind
 REAL, DIMENSION(:,:), POINTER :: IWCZ     ! ice water content              
 REAL, DIMENSION(:,:), POINTER :: LWCZ     ! liquid water content              
 REAL, DIMENSION(:,:), POINTER :: CIZ      ! Ice concentration
-REAL, DIMENSION(:,:), POINTER :: SPEEDCZ  ! Cloud fall velocity 
-REAL, DIMENSION(:,:), POINTER :: SPEEDRZ  ! Rain fall velocity
-REAL, DIMENSION(:,:), POINTER :: SPEEDSZ  ! Snow fall velocity
-REAL, DIMENSION(:,:), POINTER :: SPEEDGZ  ! Graupel fall velocity
+REAL, DIMENSION(:,:), POINTER :: CCZ      ! Cloud concentration (LIMA)
+REAL, DIMENSION(:,:), POINTER :: CRZ      ! Rain concentration (LIMA)
 REAL, DIMENSION(:,:), POINTER :: CRARE     ! cloud radar reflectivity
 REAL, DIMENSION(:,:), POINTER :: CRARE_ATT ! attenuated (= more realistic) cloud radar reflectivity
 REAL, DIMENSION(:,:), POINTER :: WZ        ! vertical profile of vertical velocity
diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90
index f836d15c2..f59d0281a 100644
--- a/src/MNH/modd_budget.f90
+++ b/src/MNH/modd_budget.f90
@@ -38,6 +38,7 @@
 !!      P. Jabouille    07/07/04    add budget terms for microphysics
 !!      C. Barthe       19/11/09    add budget terms for electricity          
 !!      C.Lac           04/2016  negative contribution to the budget splitted between advection, turbulence and microphysics for KHKO/C2R2
+!!      C. Barthe            /16    add budget terms for LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -273,6 +274,12 @@ INTEGER, SAVE :: NBERFITH   ! BERgeron-FIndeisen gth. ICE3
 INTEGER, SAVE :: NCDEPITH   ! Cond./DEPosition on ice ICE3
 INTEGER, SAVE :: NWETHTH    ! wet growth of hail      ICE4
 INTEGER, SAVE :: NHMLTTH    ! melting of hail         ICE4
+INTEGER, SAVE :: NHINDTH    ! Heterogeneous Nucleation by Deposition C3R5
+INTEGER, SAVE :: NHINCTH    ! Heterogeneous Nucleation by Contact    C3R5
+INTEGER, SAVE :: NHONHTH    ! Haze Homogeneous Nucleation            C3R5
+INTEGER, SAVE :: NHONCTH    ! droplet homogeneous nucleation         C3R5
+INTEGER, SAVE :: NHONRTH    ! drop homogeneous nucleation            C3R5
+INTEGER, SAVE :: NCEDSTH    ! adjustment                             C3R5
 !
 !      Allowed processes for the budget of RTKE (kinetic energy)
 !                                                  
@@ -321,6 +328,9 @@ INTEGER, SAVE :: NHENURV   ! HEterogenous NUcleation ICE3
 INTEGER, SAVE :: NDEPSRV   ! DEPosition on Snow      ICE3
 INTEGER, SAVE :: NDEPGRV   ! DEPosition on Graupel   ICE3
 INTEGER, SAVE :: NCDEPIRV  ! Cond./DEPosition on ice ICE3
+INTEGER, SAVE :: NHINDRV   ! Heterogeneous Nucleation by Deposition C3R5
+INTEGER, SAVE :: NHONHRV   ! Haze Homogeneous Nucleation            C3R5
+INTEGER, SAVE :: NCEDSRV   ! adjustement                            C3R5
 !
 !      Allowed processes for the budget of moist variable RRC (cloud water)
 !                                                  
@@ -354,6 +364,10 @@ INTEGER, SAVE :: NCDEPIRC   ! Cond./DEPosition on ice ICE3
 INTEGER, SAVE :: NHENURC    ! CCN Activation C2R2
 INTEGER, SAVE :: NSEDIRC    ! sedimentation  C2R2
 INTEGER, SAVE :: NWETHRC    ! wet growth of hail
+INTEGER, SAVE :: NHINCRC    ! Heterogeneous Nucleation by Contact C3R5
+INTEGER, SAVE :: NHONCRC    ! droplet homogeneous nucleation      C3R5
+INTEGER, SAVE :: NCEDSRC    ! adjustment                          C3R5
+INTEGER, SAVE :: NREVARC    ! evaporation of rain drops
 !
 !      Allowed processes for the budget of moist variable RRR (rain water)
 !
@@ -380,6 +394,7 @@ INTEGER, SAVE :: NDRYGRR    ! DRY Growth of graupel   ICE3
 INTEGER, SAVE :: NGMLTRR    ! Graupel MeLTing         ICE3
 INTEGER, SAVE :: NWETHRR    ! wet growth of hail      ICE4
 INTEGER, SAVE :: NHMLTRR    ! melting of hail         ICE4
+INTEGER, SAVE :: NHONRRR    ! drop homogeneous nucleation C3R5
 !
 !      Allowed processes for the budget of moist variable RRI (ice)
 !
@@ -409,6 +424,15 @@ INTEGER, SAVE :: NIMLTRI    ! Ice MeLTing             ICE3
 INTEGER, SAVE :: NBERFIRI   ! BERgeron-FIndeisen gth. ICE3
 INTEGER, SAVE :: NCDEPIRI   ! Cond./DEPosition on ice ICE3
 INTEGER, SAVE :: NWETHRI    ! wet growth of hail      ICE4
+INTEGER, SAVE :: NHINDRI ! heterogeneous nucleation by deposition C3R5
+INTEGER, SAVE :: NHINCRI ! heterogeneous nucleation by contact    C3R5
+INTEGER, SAVE :: NHONHRI ! haze homogeneous nucleation source     C3R5
+INTEGER, SAVE :: NHONCRI ! droplet homogeneous nucleation         C3R5
+INTEGER, SAVE :: NCNVIRI ! Conversion of snow to r_i              C3R5
+INTEGER, SAVE :: NCNVSRI ! Conversion of pristine ice to r_s      C3R5
+INTEGER, SAVE :: NHMSRI  ! Hallett-Mossop ice multiplication process due to snow riming C3R5
+INTEGER, SAVE :: NHMGRI  ! Hallett-Mossop ice multiplication process due to graupel riming C3R5
+INTEGER, SAVE :: NCEDSRI ! adjustement                            C3R5
 !
 !      Allowed processes for the budget of moist variable RRS (snow)
 !
@@ -433,6 +457,9 @@ INTEGER, SAVE :: NCMELRS    ! Conversion MeLTing      ICE3
 INTEGER, SAVE :: NWETGRS    ! WET Growth of graupel   ICE3
 INTEGER, SAVE :: NDRYGRS    ! DRY Growth of graupel   ICE3
 INTEGER, SAVE :: NWETHRS    ! wet growth of hail      ICE4
+INTEGER, SAVE :: NCNVIRS   ! Conversion of snow to r_i         C3R5
+INTEGER, SAVE :: NCNVSRS   ! Conversion of pristine ice to r_s C3R5
+INTEGER, SAVE :: NHMSRS    ! Hallett-Mossop ice multiplication process due to snow riming C3R5
 !
 !      Allowed processes for the budget of moist variable RRG (graupel)
 !
@@ -458,7 +485,9 @@ INTEGER, SAVE :: NWETGRG    ! WET Growth of graupel   ICE3
 INTEGER, SAVE :: NDRYGRG    ! DRY Growth of graupel   ICE3
 INTEGER, SAVE :: NGMLTRG    ! Graupel MeLTing         ICE3
 INTEGER, SAVE :: NWETHRG    ! wet growth of hail      ICE4
-INTEGER, SAVE :: NCOHGRG    ! reconversion from hail to graupel ICE4
+INTEGER, SAVE :: NHONRRG    ! drop homogeneous nucleation C3R5
+INTEGER, SAVE :: NHMGRG     ! Hallett-Mossop ice multiplication process due to graupel riming
+INTEGER, SAVE :: NCOHGRG    ! conversion of hail to graupel
 !
 !      Allowed processes for the budget of moist variable RRH (hail)
 !
diff --git a/src/MNH/modd_dynn.f90 b/src/MNH/modd_dynn.f90
index d89a60115..e0fb84bf7 100644
--- a/src/MNH/modd_dynn.f90
+++ b/src/MNH/modd_dynn.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$ $Date$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/modd_dynn.f90,v $ $Revision: 1.2.2.3.2.2.2.2.10.1.2.2 $ $Date: 2014/01/09 15:01:56 $
 !-----------------------------------------------------------------
 !     #################
       MODULE MODD_DYN_n
@@ -44,6 +44,7 @@
 !!      Modifications    07/05   (P.Tulet)       Add  relaxation for dust and aerosol
 !!      Modifications    05/07   (C.Lac)         Separation of num diffusion
 !!      Modifications    07/10   (M.Leriche)     Add relaxation for ice phase chemical
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -124,6 +125,7 @@ TYPE DYN_t
 !
   LOGICAL :: LHORELAX_SVC2R2
   LOGICAL :: LHORELAX_SVC1R3
+  LOGICAL :: LHORELAX_SVLIMA
   LOGICAL :: LHORELAX_SVELEC
   LOGICAL :: LHORELAX_SVCHEM
   LOGICAL :: LHORELAX_SVCHIC
@@ -212,6 +214,7 @@ LOGICAL, POINTER :: LHORELAX_RS=>NULL(), LHORELAX_RG=>NULL(), LHORELAX_RH=>NULL(
 LOGICAL, POINTER :: LHORELAX_TKE=>NULL()
 LOGICAL, POINTER :: LHORELAX_SVC2R2=>NULL()
 LOGICAL, POINTER :: LHORELAX_SVC1R3=>NULL()
+LOGICAL, POINTER :: LHORELAX_SVLIMA=>NULL()
 LOGICAL, POINTER :: LHORELAX_SVELEC=>NULL()
 LOGICAL, POINTER :: LHORELAX_SVCHEM=>NULL()
 LOGICAL, POINTER :: LHORELAX_SVCHIC=>NULL()
@@ -318,6 +321,7 @@ LHORELAX_RH=>DYN_MODEL(KTO)%LHORELAX_RH
 LHORELAX_TKE=>DYN_MODEL(KTO)%LHORELAX_TKE
 LHORELAX_SVC2R2=>DYN_MODEL(KTO)%LHORELAX_SVC2R2
 LHORELAX_SVC1R3=>DYN_MODEL(KTO)%LHORELAX_SVC1R3
+LHORELAX_SVLIMA=>DYN_MODEL(KTO)%LHORELAX_SVLIMA
 LHORELAX_SVELEC=>DYN_MODEL(KTO)%LHORELAX_SVELEC
 LHORELAX_SVCHEM=>DYN_MODEL(KTO)%LHORELAX_SVCHEM
 LHORELAX_SVCHIC=>DYN_MODEL(KTO)%LHORELAX_SVCHIC
diff --git a/src/MNH/modd_nsv.f90 b/src/MNH/modd_nsv.f90
index 2c0fc558f..893242925 100644
--- a/src/MNH/modd_nsv.f90
+++ b/src/MNH/modd_nsv.f90
@@ -25,6 +25,7 @@
 !!       M. Leriche    08/07/10 add ice phase chemistry
 !!       C.Lac         07/11    add conditional sampling
 !!       Pialat/Tulet  15/02/12 add ForeFire
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !!
 !-------------------------------------------------------------------------------
 !
@@ -114,6 +115,20 @@ INTEGER,DIMENSION(JPMODELMAX)::NSV_CS_A = 0    ! number of condit.samplings
 INTEGER,DIMENSION(JPMODELMAX)::NSV_CSBEG_A = 0 ! with indices in the range :
 INTEGER,DIMENSION(JPMODELMAX)::NSV_CSEND_A = 0 ! NSV_CSBEG_A...NSV_CSEND_A
 !
+INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_A = 0     ! number of scalar in LIMA
+INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_BEG_A = 0 ! with indices in the range :
+INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_END_A = 0 ! NSV_LIMA_BEG_A...NSV_LIMA_END_A
+INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_NC_A = 0       ! First Nc variable
+INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_NR_A = 0       ! First Nr variable
+INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_CCN_FREE_A = 0 ! First Free CCN conc.
+INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_CCN_ACTI_A = 0 ! First Acti. CNN conc.
+INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_SCAVMASS_A = 0 ! Scavenged mass variable
+INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_NI_A = 0       ! First Ni var.
+INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_IFN_FREE_A = 0 ! First Free IFN conc.
+INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_IFN_NUCL_A = 0 ! First Nucl. IFN conc.
+INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_IMM_NUCL_A = 0 ! First Nucl. IMM conc.
+INTEGER,DIMENSION(JPMODELMAX)::NSV_LIMA_HOM_HAZE_A = 0 ! Hom. freezing of CCN
+!
 #ifdef MNH_FOREFIRE
 INTEGER,DIMENSION(JPMODELMAX)::NSV_FF_A = 0    ! number of ForeFire scalar variables
 INTEGER,DIMENSION(JPMODELMAX)::NSV_FFBEG_A = 0 ! with indices in the range :
@@ -197,6 +212,20 @@ INTEGER :: NSV_CS    = 0 ! number of condit.samplings
 INTEGER :: NSV_CSBEG = 0 ! with indices in the range :
 INTEGER :: NSV_CSEND = 0 ! NSV_CSBEG...NSV_CSEND
 !
+INTEGER :: NSV_LIMA     ! number of scalar in LIMA
+INTEGER :: NSV_LIMA_BEG ! with indices in the range :
+INTEGER :: NSV_LIMA_END ! NSV_LIMA_BEG_A...NSV_LIMA_END_A
+INTEGER :: NSV_LIMA_NC       !
+INTEGER :: NSV_LIMA_NR       !
+INTEGER :: NSV_LIMA_CCN_FREE !
+INTEGER :: NSV_LIMA_CCN_ACTI !
+INTEGER :: NSV_LIMA_SCAVMASS !
+INTEGER :: NSV_LIMA_NI       !
+INTEGER :: NSV_LIMA_IFN_FREE !
+INTEGER :: NSV_LIMA_IFN_NUCL !
+INTEGER :: NSV_LIMA_IMM_NUCL !
+INTEGER :: NSV_LIMA_HOM_HAZE !
+!
 #ifdef MNH_FOREFIRE
 INTEGER :: NSV_FF    = 0 ! number of ForeFire scalar variables
 INTEGER :: NSV_FFBEG = 0 ! with indices in the range :
diff --git a/src/MNH/modd_parameters.f90 b/src/MNH/modd_parameters.f90
index 4eee85095..4b8fbdc60 100644
--- a/src/MNH/modd_parameters.f90
+++ b/src/MNH/modd_parameters.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/modd_parameters.f90,v $ $Revision: 1.1.8.6.2.1.16.2.2.2 $
 !-----------------------------------------------------------------
 !     ######################
       MODULE MODD_PARAMETERS
@@ -42,6 +42,7 @@
 !!                                         and JPBUMAX from 120 to 250
 !!      Modification 17/05/04 (P.Jabouille) add JPOUTMAX
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
+!!      B.VIE 2016 LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -59,7 +60,7 @@ INTEGER, PARAMETER :: JPVEXT_TURB = 1      ! Vertical External points number
 INTEGER, PARAMETER :: JPMODELMAX = 8  ! Maximum allowed number of nested models 
 INTEGER, PARAMETER :: JPCPLFILEMAX = 24 ! Maximum allowed number of CouPLing FILEs
 INTEGER, PARAMETER :: JPBUMAX= 250     ! Maximum of allowed budgets 
-INTEGER, PARAMETER :: JPBUPROMAX = 42 ! Maximum of allowed processes for all
+INTEGER, PARAMETER :: JPBUPROMAX = 60 ! Maximum of allowed processes for all
                                       ! budgets
 INTEGER, PARAMETER :: JPRIMMAX = 6    ! Maximum number of points for the
                        ! horizontal relaxation for the outermost verticals
@@ -74,4 +75,7 @@ INTEGER, PARAMETER :: JPDUMMY  = 20   ! Size of dummy array
 !
 INTEGER, PARAMETER :: JPOUTMAX = 192 ! Maximum allowed number of OUTput files
 !
+INTEGER, PARAMETER :: JPLIMACCNMAX = 10 ! Maximum allowed number of CCN modes in LIMA
+INTEGER, PARAMETER :: JPLIMAIFNMAX = 10 ! Maximum allowed number of IFN modes in LIMA
+!
 END MODULE MODD_PARAMETERS
diff --git a/src/MNH/modd_type_profiler.f90 b/src/MNH/modd_type_profiler.f90
index 0037ae6d5..4bd4f703b 100644
--- a/src/MNH/modd_type_profiler.f90
+++ b/src/MNH/modd_type_profiler.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/modd_type_profiler.f90,v $ $Revision: 1.2.4.1.2.1.10.2.2.2 $
 ! MASDEV4_7 modd 2006/06/27 12:27:06
 !-----------------------------------------------------------------
 !     ############################
@@ -36,8 +36,6 @@ IMPLICIT NONE
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    15/01/02
-!!              July, 2015 (O.Nuissier/F.Duffourg) Add microphysics diagnostic for
-!!                                      aircraft, ballon and profile
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -80,16 +78,6 @@ REAL, DIMENSION(:,:,:),   POINTER :: TKE=>NULL()      ! tke(n)
 REAL, DIMENSION(:,:,:),   POINTER :: TH=>NULL()       ! th(n)
 REAL, DIMENSION(:,:,:),   POINTER :: THV=>NULL()      ! thv(n)
 REAL, DIMENSION(:,:,:),   POINTER :: RARE=>NULL()     ! radar reflectivity (n)
-REAL, DIMENSION(:,:,:),   POINTER :: SPEEDC=>NULL()   ! cloud sedim speed  (n)
-REAL, DIMENSION(:,:,:),   POINTER :: SPEEDR=>NULL()   ! rain  sedim speed  (n)
-REAL, DIMENSION(:,:,:),   POINTER :: SPEEDS=>NULL()   ! snow  sedim speed  (n)
-REAL, DIMENSION(:,:,:),   POINTER :: SPEEDG=>NULL()   ! graup sedim speed  (n)
-REAL, DIMENSION(:,:,:),   POINTER :: SPEEDH=>NULL()   ! hail sedim speed  (n)
-REAL, DIMENSION(:,:,:),   POINTER :: INPRC3D=>NULL()  ! sedimentation rate(n)
-REAL, DIMENSION(:,:,:),   POINTER :: INPRR3D=>NULL()  ! sedimentation rate(n)
-REAL, DIMENSION(:,:,:),   POINTER :: INPRS3D=>NULL()  ! sedimentation rate(n)
-REAL, DIMENSION(:,:,:),   POINTER :: INPRG3D=>NULL()  ! sedimentation rate(n)
-REAL, DIMENSION(:,:,:),   POINTER :: INPRH3D=>NULL()  ! sedimentation rate(n)
 REAL, DIMENSION(:,:,:),   POINTER :: RHOD=>NULL()     ! density of dry air/moist air
 REAL, DIMENSION(:,:,:,:), POINTER :: R=>NULL()        ! r*(n)
 REAL, DIMENSION(:,:,:,:), POINTER :: SV=>NULL()       ! Sv*(n)
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index 80b376ab0..1ec61b3a4 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/modeln.f90,v $ $Revision: 1.3.2.5.2.5.2.9.2.12.2.5 $
 !-----------------------------------------------------------------
 !     ###################
       MODULE MODI_MODEL_n
@@ -234,11 +234,12 @@ END MODULE MODI_MODEL_n
 !!       C.Lac    11/09/2015: correction of the budget due to FIT temporal scheme
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!                   Sep 2015 (S. Bielli) : Remove YDADFILE from argument call 
-!!                              of write_phys_param
+!                              of write_phys_param
 !!      J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files
 !!      M.Mazoyer : 04/2016      DTHRAD used for radiative cooling when LACTIT
+!!!      Modification    01/2016  (JP Pinty) Add LIMA
 !!  06/2016     (G.Delautier) phasage surfex 8
-!!-------------------------------------------------------------------------------
+!-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
 !               ------------
@@ -262,8 +263,8 @@ USE MODD_FRC
 USE MODD_AIRCRAFT_BALLOON
 USE MODD_STATION_n
 USE MODD_PROFILER_n
-USE MODD_PARAM_C2R2,      ONLY : LSEDC, LRAIN, LACTIT
-USE MODD_PARAM_C1R3,      ONLY : LSEDI, LHHONI
+USE MODD_PARAM_C2R2, ONLY : NSEDC => LSEDC, NRAIN => LRAIN, NACTIT => LACTIT
+USE MODD_PARAM_C1R3, ONLY : NSEDI => LSEDI, NHHONI => LHHONI
 USE MODD_LES
 USE MODD_LES_BUDGET
 USE MODD_LUNIT
@@ -372,6 +373,16 @@ USE MODD_2D_FRC
 USE MODD_TIMEZ
 USE MODE_MNH_TIMING
 !
+USE MODD_PARAM_LIMA,       ONLY : MSEDC => LSEDC, MWARM => LWARM, MRAIN => LRAIN, LACTI,     &
+                                  MACTIT => LACTIT, LSCAV, NMOD_CCN, LCOLD,  &
+                                  MSEDI => LSEDI, MHHONI => LHHONI, NMOD_IFN, LHAIL
+USE MODD_BLANK 
+!
+USE MODI_FORC_WIND
+USE MODI_FORC_SQUALL_LINE
+USE MODI_LIMA_PRECIP_SCAVENGING
+USE MODD_LIMA_PRECIP_SCAVENGING_n
+!
 USE MODI_SETLB_LG
 USE MODI_WRITE_SURF_ATM_N
 USE MODI_SET_MASK
@@ -493,15 +504,20 @@ REAL, DIMENSION(:,:), POINTER :: DPTR_XINPRC,DPTR_XINPRR,DPTR_XINPRS,DPTR_XINPRG
 REAL, DIMENSION(:,:), POINTER :: DPTR_XINPRH,DPTR_XPRCONV,DPTR_XPRSCONV
 LOGICAL, DIMENSION(:,:),POINTER :: DPTR_GMASKkids
 !
-REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3))           :: ZSPEEDC
-REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3))           :: ZSPEEDR
-REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3))           :: ZSPEEDS
-REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3))           :: ZSPEEDG
-REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3))           :: ZSPEEDH
-REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3))           :: ZINPRC3D
-REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3))           :: ZINPRS3D
-REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3))           :: ZINPRG3D
-REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3))           :: ZINPRH3D
+LOGICAL :: KWARM        
+LOGICAL :: KRAIN        
+LOGICAL :: KSEDC  
+LOGICAL :: KACTIT
+LOGICAL :: KSEDI
+LOGICAL :: KHHONI
+REAL :: TEMPS
+INTEGER :: NSV_END
+CHARACTER (LEN=100) :: YCOMMENT   ! Comment string in LFIFM file
+CHARACTER (LEN=16)  :: YRECFM     ! Name of the desired field in LFIFM file
+!
+INTEGER             :: ILENG      ! Length of comment string in LFIFM file
+INTEGER             :: IGRID      ! C-grid indicator in LFIFM file
+INTEGER             :: ILENCH     ! Length of comment string in LFIFM file
 !
 REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3)) :: ZRUS,ZRVS,ZRWS
 !
@@ -514,6 +530,36 @@ TYPE(HALO2LIST_ll), POINTER :: TZHALO2C_ll   ! list of fields to exchange
 !
 !-------------------------------------------------------------------------------
 !
+!*       0.    MICROPHYSICAL SCHEME
+!              ------------------- 
+SELECT CASE(CCLOUD)
+CASE('C2R2','KHKO','C3R5')
+  KWARM  = .TRUE.        
+  KRAIN  = NRAIN
+  KSEDC  = NSEDC
+  KACTIT = NACTIT
+!
+  KSEDI  = NSEDI
+  KHHONI = NHHONI
+CASE('LIMA')
+  KWARM  = MWARM        
+  KRAIN  = MRAIN
+  KSEDC  = MSEDC
+  KACTIT = MACTIT
+!
+  KSEDI  = MSEDI
+  KHHONI = MHHONI
+CASE('ICE3','ICE4') !default values
+  KWARM  = LWARM        
+  KRAIN  = .TRUE.
+  KSEDC  = .TRUE.
+  KACTIT = .FALSE.
+!
+  KSEDI  = .TRUE.
+  KHHONI = .FALSE.
+END SELECT
+!
+!
 !*        1    PRELIMINARY
 !              ------------
 ITYPE = 1
@@ -1632,7 +1678,8 @@ XTIME_LES_BU_PROCESS = 0.
 !
 IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN
 !
-  IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO' .OR. CCLOUD == 'C3R5' ) THEN
+  IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO' .OR. CCLOUD == 'C3R5' &
+                                             .OR. CCLOUD == "LIMA" ) THEN
     IF ( LFORCING ) THEN
       ZWT_ACT_NUC(:,:,:) = XWT(:,:,:) + XWTFRC(:,:,:)
     ELSE
@@ -1666,12 +1713,10 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN
                           XPABSM, ZWT_ACT_NUC,XDTHRAD, XRTHS, XRRS,            &
                           XSVT, XRSVS,                                         &
                           XSRCT, XCLDFR,XCIT,                                  &
-                          LSEDIC,LACTIT, LSEDC, LSEDI, LRAIN, LWARM, LHHONI,   &
+                          LSEDIC,KACTIT, KSEDC, KSEDI, KRAIN, KWARM, KHHONI,   &
                           LCONVHG, XCF_MF,XRC_MF, XRI_MF,                      &
-                          XINPRC,ZINPRC3D,XINPRR, XINPRR3D, XEVAP3D,           &
-                          XINPRS,ZINPRS3D, XINPRG,ZINPRG3D,                    &
-                          XINPRH,ZINPRH3D, XSOLORG , XMI,                      &
-                          ZSPEEDC, ZSPEEDR, ZSPEEDS, ZSPEEDG, ZSPEEDH,         &
+                          XINPRC,XINPRR, XINPRR3D, XEVAP3D,           &
+                          XINPRS, XINPRG, XINPRH, XSOLORG , XMI,                      &
                           ZSEA, ZTOWN    )
     DEF_NC=.TRUE.
 #else    
@@ -1684,12 +1729,10 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN
                           XPABSM, ZWT_ACT_NUC,XDTHRAD, XRTHS, XRRS,            &
                           XSVT, XRSVS,                                         &
                           XSRCT, XCLDFR,XCIT,                                  &
-                          LSEDIC,LACTIT, LSEDC, LSEDI, LRAIN, LWARM, LHHONI,   &
+                          LSEDIC,KACTIT, KSEDC, KSEDI, KRAIN, KWARM, KHHONI,   &
                           LCONVHG, XCF_MF,XRC_MF, XRI_MF,                      &
-                          XINPRC,ZINPRC3D,XINPRR, XINPRR3D, XEVAP3D,           &
-                          XINPRS,ZINPRS3D, XINPRG,ZINPRG3D, XINPRH,ZINPRH3D,   &
-                          XSOLORG , XMI,                                       &
-                          ZSPEEDC, ZSPEEDR, ZSPEEDS, ZSPEEDG, ZSPEEDH,         &
+                          XINPRC,XINPRR, XINPRR3D, XEVAP3D,           &
+                          XINPRS, XINPRG, XINPRH, XSOLORG , XMI,                                       &
                           ZSEA, ZTOWN    )
 #endif
     DEALLOCATE(ZTOWN)
@@ -1706,11 +1749,11 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN
                           XPABSM, ZWT_ACT_NUC,XDTHRAD, XRTHS, XRRS,            &
                           XSVT, XRSVS,                                         &
                           XSRCT, XCLDFR,XCIT,                                  &
-                          LSEDIC, LACTIT, LSEDC, LSEDI, LRAIN, LWARM, LHHONI,  &
+                          LSEDIC,KACTIT, KSEDC, KSEDI, KRAIN, KWARM, KHHONI,   &
                           LCONVHG, XCF_MF,XRC_MF, XRI_MF,                      &
-                          XINPRC,ZINPRC3D,XINPRR, XINPRR3D, XEVAP3D,             &
-                          XINPRS,ZINPRS3D, XINPRG,ZINPRG3D, XINPRH,ZINPRH3D,   &
-                          XSOLORG, XMI,ZSPEEDC, ZSPEEDR, ZSPEEDS, ZSPEEDG, ZSPEEDH)
+                          XINPRC,XINPRR, XINPRR3D, XEVAP3D,             &
+                          XINPRS,XINPRG,XINPRH   &
+                          XSOLORG, XMI)
     DEF_NC=.TRUE.
 #else
     CALL RESOLVED_CLOUD ( CCLOUD, CACTCCN, CSCONV, CMF_CLOUD, NRR, NSPLITR,    &
@@ -1722,12 +1765,11 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN
                           XPABSM, ZWT_ACT_NUC,XDTHRAD, XRTHS, XRRS,            &
                           XSVT, XRSVS,                                         &
                           XSRCT, XCLDFR,XCIT,                                  &
-                          LSEDIC, LACTIT, LSEDC, LSEDI, LRAIN, LWARM, LHHONI,  &
+                          LSEDIC,KACTIT, KSEDC, KSEDI, KRAIN, KWARM, KHHONI,   &
                           LCONVHG, XCF_MF,XRC_MF, XRI_MF,                      &
-                          XINPRC,ZINPRC3D,XINPRR, XINPRR3D, XEVAP3D,             &
-                          XINPRS,ZINPRS3D, XINPRG,ZINPRG3D, XINPRH,ZINPRH3D,   &
-                          XSOLORG, XMI,                             &
-                          ZSPEEDC, ZSPEEDR, ZSPEEDS, ZSPEEDG, ZSPEEDH          )
+                          XINPRC,XINPRR, XINPRR3D, XEVAP3D,             &
+                          XINPRS,XINPRG, XINPRH,   &
+                          XSOLORG, XMI   )
 #endif
   END IF
   XRTHS_CLD  = XRTHS - XRTHS_CLD
@@ -1745,15 +1787,26 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN
       END WHERE
       END DO
       END IF
-    IF ((CCLOUD(1:3) == 'ICE' .AND. LSEDIC ) .OR.                       &
-        ((CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') &
-                              .AND. LSEDC  )      )   THEN                  
+    IF ( (CCLOUD(1:3) == 'ICE' .AND. LSEDIC ) .OR.                     &
+        ((CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO' &
+                           .OR. CCLOUD == 'LIMA' ) .AND. KSEDC ) )     &
       XACPRC = XACPRC + XINPRC * XTSTEP
-    END IF
-    IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5') THEN
+    IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. &
+                                 (CCLOUD == 'LIMA' .AND. LCOLD ) ) THEN
       XACPRS = XACPRS + XINPRS * XTSTEP
       XACPRG = XACPRG + XINPRG * XTSTEP
-      IF (CCLOUD == 'ICE4') XACPRH = XACPRH + XINPRH * XTSTEP          
+      IF (CCLOUD == 'ICE4' .OR. (CCLOUD == 'LIMA' .AND. LHAIL)) XACPRH = XACPRH + XINPRH * XTSTEP          
+    END IF
+!
+! Lessivage des CCN et IFN nucléables par Slinn
+!
+    IF (LSCAV .AND. (CCLOUD == 'LIMA')) THEN
+      CALL LIMA_PRECIP_SCAVENGING(CCLOUD, ILUOUT, KTCOUNT,XTSTEP,XRT(:,:,:,3), &
+                              XRHODREF, XRHODJ, XZZ, XPABST, XTHT,             &
+                              XSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END),           &
+                              XRSVS(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), XINPAP   )
+!
+      XACPAP(:,:) = XACPAP(:,:) + XINPAP(:,:) * XTSTEP
     END IF
   END IF
 !
@@ -1912,8 +1965,7 @@ IF (LFLYER)                                                                   &
                       TDTEXP, TDTMOD, TDTSEG, TDTCUR,                         &
                       XXHAT, XYHAT, XZZ, XMAP, XLONORI, XLATORI,              &
                       XUT, XVT, XWT, XPABST, XTHT, XRT, XSVT, XTKET, XTSRAD,  &
-                      XRHODREF,XCIT,ZSPEEDC, ZSPEEDR, ZSPEEDS, ZSPEEDG,       &
-                      ZSPEEDH,PSEA=ZSEA(:,:))
+                      XRHODREF,XCIT,PSEA=ZSEA(:,:))
 
 
 !-------------------------------------------------------------------------------
@@ -1937,9 +1989,7 @@ IF (LPROFILER)                                                           &
                   TDTEXP, TDTMOD, TDTSEG, TDTCUR,                        &
                   XXHAT, XYHAT, XZZ,XRHODREF,                            &
                   XUT, XVT, XWT, XTHT, XRT, XSVT, XTKET, XTSRAD, XPABST, &
-                  XAER, XCLDFR, XCIT ,                                   &
-                  ZSPEEDC, ZSPEEDR, ZSPEEDS, ZSPEEDG, ZSPEEDH,           &
-                  ZINPRC3D,XINPRR3D,ZINPRS3D,ZINPRG3D,ZINPRH3D           )
+                  XAER, XCLDFR, XCIT)
 !
 !
 CALL SECOND_MNH2(ZTIME2)
diff --git a/src/MNH/modn_budget.f90 b/src/MNH/modn_budget.f90
index 4f15755ee..7ceaa5dda 100644
--- a/src/MNH/modn_budget.f90
+++ b/src/MNH/modn_budget.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$ $Date$
+! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/modn_budget.f90,v $ $Revision: 1.2.2.1.2.1.2.1.10.1.2.3 $ $Date: 2014/01/09 15:01:56 $
 !-----------------------------------------------------------------
 !     ##################
       MODULE MODN_BUDGET
@@ -226,6 +226,7 @@
 !!      J.-P. Pinty 25/09/00  add budget terms for C2R2
 !!      D. Gazen    22/01/01  add NCHEMSV
 !!      C.Lac           04/2016  negative contribution to the budget splitted between advection, turbulence and microphysics for KHKO/C2R2
+!!      C. Barthe        /16  add budget terms for LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -252,7 +253,8 @@ NAMELIST/NAM_BU_RTH/LBU_RTH, NASSETH, NNESTTH, NADVTH, NFRCTH, &
                    NVTURBTH, NDISSHTH, NNEGATH, NREVATH, NCONDTH, NHENUTH, NHONTH, &
                    NSFRTH, NDEPSTH, NDEPGTH,NRIMTH, NACCTH, NCFRZTH, NWETGTH, &
                    NDRYGTH, NGMLTTH, NIMLTTH, NBERFITH, NCDEPITH, NWETHTH, NHMLTTH, &
-                   NMAFLTH, NNETURTH, NNEADVTH,NNECONTH
+                   NMAFLTH, NNETURTH, NNEADVTH, NNECONTH, &
+                   NHINDTH, NHINCTH, NHONHTH, NHONCTH, NHONRTH, NCEDSTH
 !
 NAMELIST/NAM_BU_RTKE/LBU_RTKE, NASSETKE, NADVTKE,    &
                      NFRCTKE, NDIFTKE, NRELTKE, NDRAGTKE,                           &
@@ -261,32 +263,36 @@ NAMELIST/NAM_BU_RTKE/LBU_RTKE, NASSETKE, NADVTKE,    &
 NAMELIST/NAM_BU_RRV/LBU_RRV, NASSERV, NNESTRV, NADVRV, NFRCRV, &
                     NNUDRV, NDIFRV, NRELRV, NDCONVRV, NHTURBRV, NVTURBRV, NNEGARV, &
                     NREVARV, NCONDRV, NHENURV, NDEPSRV, NDEPGRV, NCDEPIRV, NMAFLRV, &
-                    NNETURRV, NNEADVRV,NNECONRV
+                    NNETURRV, NNEADVRV,NNECONRV, NHINDRV, NHONHRV, NCEDSRV
 ! 
 NAMELIST/NAM_BU_RRC/LBU_RRC, NASSERC, NNESTRC, NADVRC, NFRCRC, &
                     NDIFRC, NRELRC, NDCONVRC, NHTURBRC, NVTURBRC, NNEGARC, NACCRRC, &
                     NAUTORC, NCONDRC, NHONRC, NRIMRC, NWETGRC, NDRYGRC, NIMLTRC,   &
                     NBERFIRC, NCDEPIRC, NHENURC, NSEDIRC, NWETHRC, NNETURRC, &
-                    NNEADVRC,NNECONRC
+                    NNEADVRC,NNECONRC, NHINCRC, NHONCRC, NCEDSRC, NREVARC 
 ! 
 NAMELIST/NAM_BU_RRR/LBU_RRR, NASSERR, NNESTRR, NADVRR, NFRCRR, &
                     NDIFRR, NRELRR, NNEGARR, NACCRRR, NAUTORR, NREVARR, NSEDIRR,    &
                     NSFRRR, NACCRR, NCFRZRR, NWETGRR, NDRYGRR, NGMLTRR, NWETHRR,    &
-                    NHMLTRR
+                    NHMLTRR, &
+                    NHONRRR
 ! 
 NAMELIST/NAM_BU_RRI/LBU_RRI, NASSERI, NNESTRI, NADVRI, NFRCRI, &
                     NDIFRI, NRELRI, NDCONVRI, NHTURBRI, NVTURBRI, NNEGARI, NSEDIRI, &
                     NHENURI, NHONRI, NAGGSRI, NAUTSRI, NCFRZRI, NWETGRI, NDRYGRI,   &
-                    NIMLTRI, NBERFIRI, NCDEPIRI, NWETHRI
+                    NIMLTRI, NBERFIRI, NCDEPIRI, NWETHRI, &
+                    NHINDRI, NHINCRI, NHONHRI, NHONCRI, NCNVIRI, NCNVSRI, &
+                    NHMSRI, NHMGRI, NCEDSRI 
 ! 
 NAMELIST/NAM_BU_RRS/LBU_RRS, NASSERS, NNESTRS, NADVRS, NFRCRS, &
                     NDIFRS, NRELRS, NNEGARS, NSEDIRS, NDEPSRS, NAGGSRS, NAUTSRS,    &
-                    NRIMRS, NACCRS, NCMELRS, NWETGRS, NDRYGRS, NWETHRS
+                    NRIMRS, NACCRS, NCMELRS, NWETGRS, NDRYGRS, NWETHRS, &
+                    NCNVIRS, NCNVSRS, NHMSRS
 ! 
 NAMELIST/NAM_BU_RRG/LBU_RRG, NASSERG, NNESTRG, NADVRG, NFRCRG, &
                     NDIFRG, NRELRG, NNEGARG, NSEDIRG, NSFRRG, NDEPGRG, NRIMRG, NACCRG,    &
                     NCMELRG, NCFRZRG, NWETGRG, NDRYGRG, NGMLTRG, NWETHRG, &
-                    NCOHGRG
+                    NHONRRG, NHMGRG, NCOHGRG
 ! 
 NAMELIST/NAM_BU_RRH/LBU_RRH, NASSERH, NNESTRH, NADVRH, NFRCRH, &
                     NDIFRH, NRELRH, NNEGARH, NSEDIRH, NWETGRH, NWETHRH, NCOHGRH, NHMLTRH
diff --git a/src/MNH/one_wayn.f90 b/src/MNH/one_wayn.f90
index 90ee35c4a..22c5a35a3 100644
--- a/src/MNH/one_wayn.f90
+++ b/src/MNH/one_wayn.f90
@@ -5,7 +5,8 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/one_wayn.f90,v $ $Revision: 1.3.2.3.2.1.2.2.10.1.2.3 $
+! masdev4_7 BUG1 2007/06/15 17:47:18
 !-----------------------------------------------------------------
 !     ###################
       MODULE MODI_ONE_WAY_n
@@ -190,6 +191,7 @@ SUBROUTINE ONE_WAY_n(KDAD,HLUOUT,PTSTEP,KMI,KTCOUNT,                     &
 !!    Bosseur & Filippi 07/2013 Adds Forefire
 !!   J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!      J.Escobar : 18/12/2015 : Correction of bug in bound in // for NHALO <>1 
+!!!      Modification    01/2016  (JP Pinty) Add LIMA
 !------------------------------------------------------------------------------
 !
 !*      0.   DECLARATIONS
@@ -212,6 +214,7 @@ USE MODI_VER_INTERP_LIN
 USE MODI_SET_CONC_RAIN_C2R2
 USE MODI_SET_CONC_ICE_C1R3
 USE MODI_SET_CHEMAQ_1WAY
+USE MODI_SET_CONC_LIMA
 !
 IMPLICIT NONE
 !
@@ -299,6 +302,8 @@ REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZCONCT
 REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZCHEMT
 REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZCHEMTI
 !
+INTEGER :: N_VAR_LIMA
+!
 !-------------------------------------------------------------------------------
 !
 !*      0.   INITIALISATION
@@ -420,26 +425,26 @@ ENDDO
 !  concentrations to use the C2R2(or KHKO) microphysical scheme
 !  (FATHER does not use C2R2(or KHKO) and CHILD uses C2R2(or KHKO))
 !
- IF (HCLOUD=="C2R2" .OR. HCLOUD=="KHKO") THEN
+IF (HCLOUD=="C2R2" .OR. HCLOUD=="KHKO") THEN
   IF  (CCLOUD/="NONE" .AND. CCLOUD/="C2R2" .AND. CCLOUD/="KHKO") THEN
-  ZINIT_TYPE="NONE"
-  ALLOCATE(ZCONCT(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3),3))
-  IF (CCLOUD == "REVE") THEN
+    ZINIT_TYPE="NONE"
+    ALLOCATE(ZCONCT(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3),3))
+    IF (CCLOUD == "REVE") THEN
       ZINIT_TYPE = "INI1"
-  ELSE IF (CCLOUD == "KESS" ) THEN
-    ZINIT_TYPE = "INI2"
-  END IF
-  CALL SET_CONC_RAIN_C2R2 (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCT)
-  DO JSV=1,3
-    CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),&
-         &ZTSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI)
-  ENDDO
- ELSE
-  DO JSV=1,NSV_C2R2_A(KMI)
-    CALL SET_LSFIELD_1WAY_ll(XSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KDAD)),&
-         &ZTSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI)
-  END DO
- ENDIF
+    ELSE IF (CCLOUD == "KESS" ) THEN
+      ZINIT_TYPE = "INI2"
+    END IF
+    CALL SET_CONC_RAIN_C2R2 (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCT)
+    DO JSV=1,3
+      CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),&
+           &ZTSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI)
+    ENDDO
+  ELSE
+    DO JSV=1,NSV_C2R2_A(KMI)
+      CALL SET_LSFIELD_1WAY_ll(XSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KDAD)),&
+           &ZTSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI)
+    END DO
+  ENDIF
 ENDIF
 !
 !  Checking also if it is necessary to compute the Ni
@@ -447,35 +452,59 @@ ENDIF
 !  (FATHER does not use C3R5 and CHILD uses C3R5)
 !
 IF (HCLOUD=="C3R5") THEN
- IF ( CCLOUD(1:3)=="ICE" ) THEN
-  ZINIT_TYPE="NONE"
-  ALLOCATE(ZCONCT(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3),5))
-  IF (CCLOUD == "REVE") THEN
+  IF ( CCLOUD(1:3)=="ICE" ) THEN
+    ZINIT_TYPE="NONE"
+    ALLOCATE(ZCONCT(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3),5))
+    IF (CCLOUD == "REVE") THEN
       ZINIT_TYPE = "INI1"
-  ELSE IF (CCLOUD == "KESS" ) THEN
-    ZINIT_TYPE = "INI2"
-  END IF
-  CALL SET_CONC_RAIN_C2R2 (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCT)
-  DO JSV=1,3
-    CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),&
-         &ZTSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI)
-  ENDDO
-  ZINIT_TYPE="INI3"
-  CALL SET_CONC_ICE_C1R3 (HLUOUT,XRHODREF,XRT,ZCONCT)
-  DO JSV=4,5
-    CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),&
-         &ZTSVT(:,:,:,JSV-4+NSV_C1R3BEG_A(KMI)),KMI) 
-  ENDDO
- ELSE
-  DO JSV=1,NSV_C2R2_A(KMI)
-    CALL SET_LSFIELD_1WAY_ll(XSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KDAD)),&
-         &ZTSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI)
-  END DO
-  DO JSV=1,NSV_C1R3_A(KMI)
-    CALL SET_LSFIELD_1WAY_ll(XSVT(:,:,:,JSV-1+NSV_C1R3BEG_A(KDAD)),&
-         &ZTSVT(:,:,:,JSV-1+NSV_C1R3BEG_A(KMI)),KMI)
-  END DO
- ENDIF
+    ELSE IF (CCLOUD == "KESS" ) THEN
+      ZINIT_TYPE = "INI2"
+    END IF
+    CALL SET_CONC_RAIN_C2R2 (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCT)
+    DO JSV=1,3
+      CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),&
+           &ZTSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI)
+    ENDDO
+    ZINIT_TYPE="INI3"
+    CALL SET_CONC_ICE_C1R3 (HLUOUT,XRHODREF,XRT,ZCONCT)
+    DO JSV=4,5
+      CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),&
+           &ZTSVT(:,:,:,JSV-4+NSV_C1R3BEG_A(KMI)),KMI) 
+    ENDDO
+  ELSE
+    DO JSV=1,NSV_C2R2_A(KMI)
+      CALL SET_LSFIELD_1WAY_ll(XSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KDAD)),&
+           &ZTSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI)
+    END DO
+    DO JSV=1,NSV_C1R3_A(KMI)
+      CALL SET_LSFIELD_1WAY_ll(XSVT(:,:,:,JSV-1+NSV_C1R3BEG_A(KDAD)),&
+           &ZTSVT(:,:,:,JSV-1+NSV_C1R3BEG_A(KMI)),KMI)
+    END DO
+  ENDIF
+ENDIF
+!
+! LIMA Scheme
+!
+IF (HCLOUD=="LIMA"  ) THEN
+   IF (CCLOUD/="LIMA") THEN
+      ALLOCATE(ZCONCT(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3),NSV_LIMA_A(KMI)))
+      IF (CCLOUD == "REVE") THEN
+         ZINIT_TYPE = "INI1"
+      ELSE
+         ZINIT_TYPE = "NONE"
+      END IF
+      CALL SET_CONC_LIMA (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCT)
+      DO JSV=1,NSV_LIMA_A(KMI)
+         CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),&
+              &ZTSVT(:,:,:,JSV-1+NSV_LIMA_BEG_A(KMI)),KMI)
+      ENDDO   
+   ELSE
+      IF (NSV_LIMA_A(KMI)/=NSV_LIMA_A(KDAD)) CALL ABORT
+      DO JSV=1,NSV_LIMA_A(KMI)
+         CALL SET_LSFIELD_1WAY_ll(XSVT(:,:,:,JSV-1+NSV_LIMA_BEG_A(KDAD)),&
+              &ZTSVT(:,:,:,JSV-1+NSV_LIMA_BEG_A(KMI)),KMI)
+      END DO
+   END IF
 ENDIF
 !
 ! electrical variables
diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90
index 09a1918e8..b8b7fbe23 100644
--- a/src/MNH/phys_paramn.f90
+++ b/src/MNH/phys_paramn.f90
@@ -222,6 +222,7 @@ END MODULE MODI_PHYS_PARAM_n
 !!      J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test
 !!                       2014  (M.Faivre)
 !!  06/2016     (G.Delautier) phasage surfex 8
+!!  2016 B.VIE LIMA
 !!-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -325,6 +326,8 @@ USE MODD_LATZ_EDFLX
 USE MODD_MNH_SURFEX_n
 USE MODI_SWITCH_SBG_LES_N
 !
+USE MODD_PARAM_LIMA,       ONLY : MSEDC => LSEDC, XRTMIN_LIMA=>XRTMIN
+!
 USE MODE_MPPDB
 IMPLICIT NONE
 !
@@ -470,8 +473,11 @@ DO JKID = IMI+1,NMODEL  ! min value of the possible kids
 END DO
 !
  IF (IMODSON /= 0 ) THEN
-   IF (LUSERC .AND. ((LSEDIC .AND. CCLOUD(1:3) == 'ICE') .OR.  &
-       (LSEDC .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) )) THEN
+   IF (LUSERC .AND. (                                               &
+       (LSEDIC .AND. CCLOUD(1:3) == 'ICE')                     .OR. &
+       (LSEDC  .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) .OR. &
+       (MSEDC  .AND. CCLOUD=='LIMA')                                &
+      )) THEN
      ALLOCATE( ZSAVE_INPRC(SIZE(XINPRC,1),SIZE(XINPRC,2),IMODSON))
    ELSE
      ALLOCATE( ZSAVE_INPRC(0,0,0))
@@ -521,8 +527,11 @@ DO JKID = IMI+1,NMODEL  ! min value of the possible kids
 ! BUG if number of the son does not follow the number of the dad
 ! IKIDM = JKID-IMI
   IKIDM = IKIDM + 1
-   IF (LUSERC .AND. ((LSEDIC .AND. CCLOUD(1:3) == 'ICE') .OR. &
-          (LSEDC .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) )) THEN
+   IF (LUSERC .AND. (                                               &
+       (LSEDIC .AND. CCLOUD(1:3) == 'ICE')                     .OR. &
+       (LSEDC  .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) .OR. &
+       (MSEDC  .AND. CCLOUD=='LIMA')                                &
+      )) THEN
      ZSAVE_INPRC(:,:,IKIDM) = XINPRC(:,:)
    END IF
    IF (LUSERR) THEN
@@ -623,6 +632,13 @@ IF (CRAD /='NONE') THEN
                                       ! refreshed but there is no cloudwater and ice
         END IF
       END IF
+      IF( CCLOUD=='LIMA' )THEN
+        IF( MAXVAL(XRT(:,:,:,2)).LE.XRTMIN_LIMA(2) .AND.             &
+            MAXVAL(XRT(:,:,:,4)).LE.XRTMIN_LIMA(4) .AND. GCLOUD_ONLY ) THEN
+            GRAD = .FALSE.            ! only the cloudy verticals would be 
+                                      ! refreshed but there is no cloudwater and ice
+        END IF
+      END IF      
     END IF
   END IF
 !
@@ -1082,11 +1098,14 @@ IF (CSURF=='EXTE') THEN
 ! BUG if number of the son does not follow the number of the dad
 !    IKIDM = JKID-IMI
       IKIDM = IKIDM + 1
-      IF (LUSERC .AND. ((LSEDIC .AND. CCLOUD(1:3) == 'ICE') .OR.  &
-          (LSEDC .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) )) THEN
-        WHERE (OMASKkids(:,:) )
-          XINPRC(:,:) = ZSAVE_INPRC(:,:,IKIDM)
-        ENDWHERE
+     IF (LUSERC .AND. (                                               &
+         (LSEDIC .AND. CCLOUD(1:3) == 'ICE')                     .OR. &
+         (LSEDC  .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) .OR. &
+         (MSEDC  .AND. CCLOUD=='LIMA')                                &
+        )) THEN
+         WHERE (OMASKkids(:,:) )
+            XINPRC(:,:) = ZSAVE_INPRC(:,:,IKIDM)
+          ENDWHERE
       END IF
       IF (LUSERR) THEN
         WHERE (OMASKkids(:,:) )
@@ -1461,6 +1480,13 @@ IF ((LDUST).OR.(LSALT)) THEN
                                       ! refreshed but there is no cloudwater and ice
         END IF
       END IF
+      IF( CCLOUD=='LIMA' )THEN
+        IF( MAXVAL(XRT(:,:,:,2)).LE.XRTMIN_LIMA(2) .AND.             &
+            MAXVAL(XRT(:,:,:,4)).LE.XRTMIN_LIMA(4) .AND. GCLOUD_ONLY ) THEN
+            GCLD = .FALSE.            ! only the cloudy verticals would be 
+                                      ! refreshed but there is no cloudwater and ice
+        END IF
+      END IF
     END IF
 
 !
diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90
index 9e97f27f9..659452539 100644
--- a/src/MNH/prep_real_case.f90
+++ b/src/MNH/prep_real_case.f90
@@ -380,6 +380,7 @@
 !!    J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!    M.Leriche        2015 : add LUSECHEM  dans NAM_CH_CONF 
 !!  06/2016     (G.Delautier) phasage surfex 8
+!!     B.VIE 2016 : LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -770,6 +771,7 @@ LHORELAX_RH=LUSERH
 LHORELAX_SV(:)=.FALSE.
 LHORELAX_SVC2R2 = (NSV_C2R2 > 0)
 LHORELAX_SVC1R3 = (NSV_C1R3 > 0)
+LHORELAX_SVLIMA = (NSV_LIMA > 0)
 LHORELAX_SVELEC = (NSV_ELEC > 0)
 LHORELAX_SVCHEM = (NSV_CHEM > 0)
 LHORELAX_SVCHIC = (NSV_CHIC > 0)
diff --git a/src/MNH/profilern.f90 b/src/MNH/profilern.f90
index 7b3174c29..269caeb1c 100644
--- a/src/MNH/profilern.f90
+++ b/src/MNH/profilern.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/profilern.f90,v $ $Revision: 1.3.4.1.2.1.10.2.2.3 $
 ! MASDEV4_7 profiler 2006/06/01 09:51:49
 !-----------------------------------------------------------------
 !      ##########################
@@ -18,9 +18,7 @@ INTERFACE
                             TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,   &
                             PXHAT, PYHAT, PZ,PRHODREF,            &
                             PU, PV, PW, PTH, PR, PSV, PTKE,       &
-                            PTS,PP, PAER, PCLDFR, PCIT,                 &
-                            PSPEEDC, PSPEEDR, PSPEEDS, PSPEEDG, PSPEEDH,&
-                            PINPRC3D,PINPRR3D,PINPRS3D,PINPRG3D,PINPRH3D)
+                         PTS,PP, PAER, PCLDFR, PCIT)
 !
 USE MODD_TYPE_DATE
 !
@@ -46,16 +44,6 @@ REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PP     ! pressure
 REAL, DIMENSION(:,:,:,:), INTENT(IN)     :: PAER   ! aerosol extinction
 REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PCLDFR ! cloud fraction
 REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PCIT   ! ice concentration
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDC ! Cloud sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDR ! Rain sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDS ! Snow sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDG ! Graupel sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDH ! Hail sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PINPRC3D! 3D sedimentation rate     
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PINPRR3D! 3D sedimentation rate     
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PINPRS3D! 3D sedimentation rate     
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PINPRG3D! 3D sedimentation rate     
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PINPRH3D! 3D sedimentation rate     
 !
 !-------------------------------------------------------------------------------
 !
@@ -70,9 +58,7 @@ END MODULE MODI_PROFILER_n
                             TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR,   &
                             PXHAT, PYHAT, PZ,PRHODREF,            &
                             PU, PV, PW, PTH, PR, PSV, PTKE,       &
-                            PTS, PP, PAER, PCLDFR, PCIT,          &
-                            PSPEEDC, PSPEEDR, PSPEEDS, PSPEEDG, PSPEEDH,&
-                            PINPRC3D,PINPRR3D,PINPRS3D,PINPRG3D,PINPRH3D)
+                         PTS,PP, PAER, PCLDFR, PCIT)
 !     ########################################################
 !
 !
@@ -107,8 +93,6 @@ END MODULE MODI_PROFILER_n
 !!     Original 15/02/2002
 !!     March 2013 : C.Lac : Corrections for 1D + new fields (RARE,THV,DD,FF)
 !!     April 2014 : C.Lac : Call RADAR only if ICE3   
-!!              July, 2015 (O.Nuissier/F.Duffourg) Add microphysics diagnostic for
-!!                                      aircraft, ballon and profiler
 !!
 !!
 !! --------------------------------------------------------------------------
@@ -165,16 +149,6 @@ REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PP     ! pressure
 REAL, DIMENSION(:,:,:,:), INTENT(IN)     :: PAER   ! aerosol extinction
 REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PCLDFR ! cloud fraction
 REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PCIT   ! ice concentration
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDC ! Cloud sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDR ! Rain sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDS ! Snow sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDG ! Graupel sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PSPEEDH ! Hail sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PINPRC3D! 3D sedimentation rate     
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PINPRR3D! 3D sedimentation rate     
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PINPRS3D! 3D sedimentation rate     
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PINPRG3D! 3D sedimentation rate     
-REAL, DIMENSION(:,:,:),   INTENT(IN)     :: PINPRH3D! 3D sedimentation rate  
 !
 !-------------------------------------------------------------------------------
 !
@@ -232,6 +206,9 @@ REAL                       :: ZZHD_PROFILER ! ZHD at station location
 REAL                       :: ZZWD_PROFILER ! ZWD at station location
 REAL                       :: ZZHDR         ! ZHD correction at station location
 REAL                       :: ZZWDR         ! ZWD correction at station location
+!-------- Calculation parameters --------
+REAL ::  ZK1,ZK2,ZK3            ! k1, k2 and K3 atmospheric refractivity constants
+REAL  :: ZRDSRV                 ! XRD/XRV
 !
 INTEGER                    :: IINFO_ll    ! return code
 INTEGER                    :: ILUOUT      ! logical unit
@@ -241,8 +218,6 @@ INTEGER                    :: I           ! loop for stations
 REAL,DIMENSION(SIZE(PTH,1),SIZE(PTH,2))              :: ZZTD,ZZHD,ZZWD
 REAL,DIMENSION(SIZE(PTH,1),SIZE(PTH,2),SIZE(PTH,3))  :: ZTEMP,ZRARE,ZTHV,ZTEMPV
 REAL,DIMENSION(SIZE(PTH,1),SIZE(PTH,2),SIZE(PTH,3))  :: ZWORK32,ZWORK33,ZWORK34,ZCIT
-REAL ::  ZK1,ZK2,ZK3            ! k1, k2 and K3 atmospheric refractivity constants
-REAL  :: ZRDSRV                 ! XRD/XRV
 !----------------------------------------------------------------------------
 !
 !*      2.   PRELIMINARIES
@@ -521,16 +496,6 @@ IF (GSTORE) THEN
       TPROFILER%ZZ  (IN,:,I) = ZZ(:)
       TPROFILER%RHOD(IN,:,I) = ZRHOD(:)
       IF (SIZE(PR,4) == 6) TPROFILER%RARE(IN,:,I) = PROFILER_INTERP(ZRARE)
-      TPROFILER%SPEEDC(IN,:,I) = PROFILER_INTERP(PSPEEDC)
-      TPROFILER%SPEEDR(IN,:,I) = PROFILER_INTERP(PSPEEDR)
-      TPROFILER%SPEEDS(IN,:,I) = PROFILER_INTERP(PSPEEDS)
-      TPROFILER%SPEEDG(IN,:,I) = PROFILER_INTERP(PSPEEDG)
-      TPROFILER%SPEEDH(IN,:,I) = PROFILER_INTERP(PSPEEDH)
-      TPROFILER%INPRC3D(IN,:,I) = PROFILER_INTERP(PINPRC3D)*3.6E6
-      TPROFILER%INPRR3D(IN,:,I) = PROFILER_INTERP(PINPRR3D)*3.6E6
-      TPROFILER%INPRS3D(IN,:,I) = PROFILER_INTERP(PINPRS3D)*3.6E6
-      TPROFILER%INPRG3D(IN,:,I) = PROFILER_INTERP(PINPRG3D)*3.6E6
-      TPROFILER%INPRH3D(IN,:,I) = PROFILER_INTERP(PINPRH3D)*3.6E6
       IF (.NOT. L1D) THEN
         TPROFILER%P   (IN,:,I) = PROFILER_INTERP(PP(II(I):II(I)+1,IJ(I):IJ(I)+1,:))
       ELSE
@@ -611,16 +576,6 @@ IF (GSTORE) THEN
   CALL DISTRIBUTE_PROFILER(TPROFILER%THV (IN,JK,I))
   CALL DISTRIBUTE_PROFILER(TPROFILER%RHOD(IN,JK,I))
   CALL DISTRIBUTE_PROFILER(TPROFILER%RARE(IN,JK,I))
-  CALL DISTRIBUTE_PROFILER(TPROFILER%SPEEDC(IN,JK,I))
-  CALL DISTRIBUTE_PROFILER(TPROFILER%SPEEDR(IN,JK,I))
-  CALL DISTRIBUTE_PROFILER(TPROFILER%SPEEDS(IN,JK,I))
-  CALL DISTRIBUTE_PROFILER(TPROFILER%SPEEDG(IN,JK,I))
-  CALL DISTRIBUTE_PROFILER(TPROFILER%SPEEDH(IN,JK,I))  
-  CALL DISTRIBUTE_PROFILER(TPROFILER%INPRC3D(IN,JK,I))
-  CALL DISTRIBUTE_PROFILER(TPROFILER%INPRR3D(IN,JK,I))
-  CALL DISTRIBUTE_PROFILER(TPROFILER%INPRS3D(IN,JK,I))
-  CALL DISTRIBUTE_PROFILER(TPROFILER%INPRG3D(IN,JK,I))
-  CALL DISTRIBUTE_PROFILER(TPROFILER%INPRH3D(IN,JK,I))
   CALL DISTRIBUTE_PROFILER(TPROFILER%IWV(IN,I))
   CALL DISTRIBUTE_PROFILER(TPROFILER%ZTD(IN,I))
   CALL DISTRIBUTE_PROFILER(TPROFILER%ZHD(IN,I))
diff --git a/src/MNH/radar_rain_ice.f90 b/src/MNH/radar_rain_ice.f90
index bb73b0f18..a48ed3c87 100644
--- a/src/MNH/radar_rain_ice.f90
+++ b/src/MNH/radar_rain_ice.f90
@@ -8,7 +8,8 @@
 !      ##########################
 !
 INTERFACE
-      SUBROUTINE RADAR_RAIN_ICE(PRT,PCIT,PRHODREF,PTEMP,PRARE,PVDOP,PRZDR,PRKDP)
+      SUBROUTINE RADAR_RAIN_ICE(PRT,PCIT,PRHODREF,PTEMP,PRARE,PVDOP,PRZDR,PRKDP,&
+                             PCRT)
 !
 REAL,  DIMENSION(:,:,:,:), INTENT(IN)  :: PRT  ! microphysical  mix. ratios at t
 REAL,  DIMENSION(:,:,:),   INTENT(IN)  :: PCIT ! pristine ice concentration at t
@@ -21,6 +22,8 @@ REAL,  DIMENSION(:,:,:), INTENT(OUT) :: PRZDR! radar differential reflectivity
                                              ! H-V in dBZ
 REAL,  DIMENSION(:,:,:), INTENT(OUT) :: PRKDP! radar differential phase shift
                                              ! H-V in degree/km
+REAL,  DIMENSION(:,:,:),   INTENT(IN),OPTIONAL  :: PCRT ! rain concentration at t
+                                             
 !
 END SUBROUTINE RADAR_RAIN_ICE
 !
@@ -28,7 +31,7 @@ END INTERFACE
 !
 END MODULE MODI_RADAR_RAIN_ICE
 !     #########################################################################
-      SUBROUTINE RADAR_RAIN_ICE(PRT,PCIT,PRHODREF,PTEMP,PRARE,PVDOP,PRZDR,PRKDP)
+      SUBROUTINE RADAR_RAIN_ICE(PRT,PCIT,PRHODREF,PTEMP,PRARE,PVDOP,PRZDR,PRKDP,PCRT)
 !     #########################################################################
 !
 !!****  *RADAR_RAIN_ICE * - computes some pertinent radar parameters
@@ -92,9 +95,37 @@ END MODULE MODI_RADAR_RAIN_ICE
 !
 USE MODD_CST
 USE MODD_REF
-USE MODD_RAIN_ICE_DESCR
-USE MODD_RAIN_ICE_PARAM
+!USE MODD_RAIN_ICE_PARAM
+USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XLBEXR_I=>XLBEXR,&
+                               XLBR_I=>XLBR,XCCR_I=>XCCR,XBR_I=>XBR,XAR_I=>XAR,&
+                               XALPHAC_I=>XALPHAC,XNUC_I=>XNUC,&
+                               XLBC_I=>XLBC,XBC_I=>XBC,XAC_I=>XAC,&
+                               XALPHAC2_I=>XALPHAC2,XNUC2_I=>XNUC2,&
+                               XALPHAS_I=>XALPHAS,XNUS_I=>XNUS,XLBEXS_I=>XLBEXS,&
+                               XLBS_I=>XLBS,XCCS_I=>XCCS,XAS_I=>XAS,XBS_I=>XBS,XCXS_I=>XCXS,&
+                               XALPHAG_I=>XALPHAG,XNUG_I=>XNUG,XDG_I=>XDG,XLBEXG_I=>XLBEXG,&
+                               XLBG_I=>XLBG,XCCG_I=>XCCG,XAG_I=>XAG,XBG_I=>XBG,XCXG_I=>XCXG,XCG_I=>XCG,&
+                               XALPHAI_I=>XALPHAI,XNUI_I=>XNUI,XDI_I=>XDI,XLBEXI_I=>XLBEXI,&
+                               XLBI_I=>XLBI,XAI_I=>XAI,XBI_I=>XBI,XC_I_I=>XC_I,XCS_I=>XCS,XDS_I=>XDS,&
+                               XRTMIN_I=>XRTMIN,XCONC_LAND,XCONC_SEA,XCR_I=>XCR,XDR_I=>XDR,&
+                               XAH_I=>XAH,XLBH_I=>XLBH,XLBEXH_I=>XLBEXH,XCCH_I=>XCCH,&
+                               XALPHAH_I=>XALPHAH,XNUH_I=>XNUH,XCXH_I=>XCXH,XDH_I=>XDH,XCH_I=>XCH,XBH_I=>XBH
+USE MODD_PARAM_LIMA_WARM, ONLY: XLBEXR_L=>XLBEXR,XLBR_L=>XLBR,XBR_L=>XBR,XAR_L=>XAR,&
+                                XBC_L=>XBC,XAC_L=>XAC,XCR_L=>XCR,XDR_L=>XDR
+USE MODD_PARAM_LIMA_COLD, ONLY: XDI_L=>XDI,XLBEXI_L=>XLBEXI,XLBI_L=>XLBI,XAI_L=>XAI,XBI_L=>XBI,XC_I_L=>XC_I,&
+                                XLBEXS_L=>XLBEXS,XLBS_L=>XLBS,XCCS_L=>XCCS,&
+                                XAS_L=>XAS,XBS_L=>XBS,XCXS_L=>XCXS,XCS_L=>XCS,XDS_L=>XDS
+
+USE MODD_PARAM_LIMA_MIXED, ONLY:XDG_L=>XDG,XLBEXG_L=>XLBEXG,XLBG_L=>XLBG,XCCG_L=>XCCG,&
+                                XAG_L=>XAG,XBG_L=>XBG,XCXG_L=>XCXG,XCG_L=>XCG,&
+                                XAH_L=>XAH,XLBH_L=>XLBH,XLBEXH_L=>XLBEXH,XCCH_L=>XCCH,&
+                                XCXH_L=>XCXH,XDH_L=>XDH,XCH_L=>XCH,XALPHAH_L=>XALPHAH,XNUH_L=>XNUH,XBH_L=>XBH
+
+USE MODD_PARAM_LIMA, ONLY: XALPHAR_L=>XALPHAR,XNUR_L=>XNUR,XALPHAS_L=>XALPHAS,XNUS_L=>XNUS,&
+                           XALPHAG_L=>XALPHAG,XNUG_L=>XNUG, XALPHAI_L=>XALPHAI,XNUI_L=>XNUI,&
+                           XRTMIN_L=>XRTMIN,XALPHAC_L=>XALPHAC,XNUC_L=>XNUC                      
 USE MODD_PARAMETERS
+USE MODD_PARAM_n, ONLY : CCLOUD
 USE MODD_LUNIT
 !
 USE MODE_IO_ll
@@ -116,6 +147,7 @@ REAL,  DIMENSION(:,:,:), INTENT(OUT) :: PRZDR! radar differential reflectivity
                                              ! H-V in dBZ
 REAL,  DIMENSION(:,:,:), INTENT(OUT) :: PRKDP! radar differential phase shift
                                              ! H-V in degree/km
+REAL,  DIMENSION(:,:,:),   INTENT(IN),OPTIONAL  :: PCRT ! rain concentration at t
 !
 !*       0.2   Declarations of local variables :
 !
@@ -155,6 +187,13 @@ REAL     ::   ZR0, ZR1, ZR2 ! r(D) parameters
 REAL     ::   Z1, Z2, Z3    ! expansion coefficients
 ! 
 INTEGER  :: II, IJ, IK 
+!
+!REAL                           :: ZA,ZB,ZCX,ZALPHA,ZNU,ZLB,ZLBEX,ZRHOHYD   ! generic microphysical parameters
+!REAL,DIMENSION(:),ALLOCATABLE  :: ZRTMIN ! local values for XRTMIN
+
+REAL,    DIMENSION(SIZE(PTEMP,1),SIZE(PTEMP,2),SIZE(PTEMP,3)) :: ZLB_L
+REAL :: ZLB,ZLBEX ,  ZCC,ZCX,ZC,ZD
+
 !-------------------------------------------------------------------------------
 !
 !
@@ -210,108 +249,194 @@ IF (SIZE(PRT,4) >= 3) THEN
   Z3=7.8
 !
   ZLBDA(:,:,:) = 0.0
-  IF( SIZE(PRT,4) == 3 ) THEN
-    GRAIN(:,:,:) = PRT(:,:,:,3).GT.1.0E-15
-    XCCR = 1.E7; XLBEXR = -0.25          ! Marshall-Palmer law
-    XALPHAR = 1.0; XNUR = 1.0            ! Marshall-Palmer law
-    XCR = 842.; XDR = 0.8                ! Raindrop fall-speed
-    XLBR = (XPI*XRHOLW*XCCR)**(-XLBEXR)
+  IF (CCLOUD == 'LIMA') THEN
+    GRAIN(:,:,:) =( (PRT(:,:,:,3).GT.XRTMIN_L(3)).AND.  PCRT(:,:,:).GT.0.0)     
+    ZLBEX=1.0/(-XBR_L)
+    ZLB_L(:,:,:)=( XAR_L*PCRT(:,:,:)*PRHODREF(:,:,:)*MOMG(XALPHAR_L,XNUR_L,XBR_L) )**(-ZLBEX)
+    WHERE( GRAIN(:,:,:) )
+      ZLBDA(:,:,:) =ZLB_L(:,:,:) *( PRHODREF(:,:,:)*PRT(:,:,:,3) )**(ZLBEX)
+      PRARE(:,:,:) = 1.E18*PCRT(:,:,:)*PRHODREF(:,:,:)*(ZLBDA(:,:,:)**(-6.0))*MOMG(XALPHAR_L,XNUR_L,6.0)
+      PVDOP(:,:,:) = 1.E18*PCRT(:,:,:)*PRHODREF(:,:,:)*XCR_L*(ZLBDA(:,:,:)**(-6.0-XDR_L))              &
+                  *MOMG(XALPHAR_L,XNUR_L,6.0+XDR_L)
+      PRZDR(:,:,:) = Z1+Z2*(PRHODREF(:,:,:)*PRT(:,:,:,3))**(-ZLBEX)+Z3*(PRHODREF(:,:,:)*PRT(:,:,:,3))**(-2.*ZLBEX)
+      PRZDR(:,:,:) = 10.0*LOG10( PRZDR(:,:,:) ) ! now in dBZ
+      PRKDP(:,:,:) = 6.7E3*( PRHODREF(:,:,:)*PRT(:,:,:,3) )*                     &
+                  (-ZR1*(MOMG(XALPHAR_L,XNUR_L,4.0)/MOMG(XALPHAR_L,XNUR_L,3.0))*(1.0/ZLBDA(:,:,:))   &
+                   -ZR2*(MOMG(XALPHAR_L,XNUR_L,5.0)/MOMG(XALPHAR_L,XNUR_L,3.0))*(1.0/ZLBDA(:,:,:)**2))
+                                              ! in degree/km
+    END WHERE    
   ELSE
-    GRAIN(:,:,:) = PRT(:,:,:,3).GT.XRTMIN(3)
-  END IF
-  WHERE( GRAIN(:,:,:) )
-    ZLBDA(:,:,:) = XLBR*( PRHODREF(:,:,:)*PRT(:,:,:,3) )**XLBEXR
-    PRARE(:,:,:) = 1.E18*XCCR*(ZLBDA(:,:,:)**(ZCXR-6.0))*MOMG(XALPHAR,XNUR,6.0)
-    PVDOP(:,:,:) = 1.E18*XCCR*XCR*(ZLBDA(:,:,:)**(ZCXR-6.0-XDR))              &
-    *MOMG(XALPHAR,XNUR,6.0+XDR)
-!    PRZDR(:,:,:) = ZSCALE*(1.0                                                 &
-!      +Z1*(MOMG(XALPHAR,XNUR,7.0)/MOMG(XALPHAR,XNUR,6.0))*(1.0/ZLBDA(:,:,:))   &
-!      +Z2*(MOMG(XALPHAR,XNUR,8.0)/MOMG(XALPHAR,XNUR,6.0))*(1.0/ZLBDA(:,:,:)**2))
-    PRZDR(:,:,:) = Z1+Z2*(PRHODREF(:,:,:)*PRT(:,:,:,3))**(-XLBEXR)+Z3*(PRHODREF(:,:,:)*PRT(:,:,:,3))**(-2.*XLBEXR)
-!    PRZDR(:,:,:) = -10.0*LOG10( PRZDR(:,:,:) ) ! now in dBZ
-    PRZDR(:,:,:) = 10.0*LOG10( PRZDR(:,:,:) ) ! now in dBZ
-    PRKDP(:,:,:) = 6.7E3*( PRHODREF(:,:,:)*PRT(:,:,:,3) )*                     &
-    (-ZR1*(MOMG(XALPHAR,XNUR,4.0)/MOMG(XALPHAR,XNUR,3.0))*(1.0/ZLBDA(:,:,:))   &
-     -ZR2*(MOMG(XALPHAR,XNUR,5.0)/MOMG(XALPHAR,XNUR,3.0))*(1.0/ZLBDA(:,:,:)**2))
+    IF( SIZE(PRT,4) == 3 ) THEN
+      GRAIN(:,:,:) = PRT(:,:,:,3).GT.1.0E-15
+      ZCC = 1.E7; ZLBEX = -0.25          ! Marshall-Palmer law
+      ZALPHA = 1.0; ZNU = 1.0            ! Marshall-Palmer law
+      ZC = 842.; ZD = 0.8                ! Raindrop fall-speed
+      ZLB = (XPI*XRHOLW*ZCC)**(-XLBEXR_I)
+    ELSE
+      ZLB=XLBR_I
+      ZLBEX=XLBEXR_I
+      ZCC=XCCR_I
+      ZALPHA=XALPHAR_I
+      ZNU=XNUR_I
+      ZC=XCR_I
+      ZD=XDR_I
+      GRAIN(:,:,:) = PRT(:,:,:,3).GT.XRTMIN_I(3)
+    END IF
+    WHERE( GRAIN(:,:,:) )
+      ZLBDA(:,:,:) = ZLB*( PRHODREF(:,:,:)*PRT(:,:,:,3) )**ZLBEX
+      PRARE(:,:,:) = 1.E18*ZCC*(ZLBDA(:,:,:)**(ZCXR-6.0))*MOMG(ZALPHA,ZNU,6.0)
+      PVDOP(:,:,:) = 1.E18*ZCC*ZC*(ZLBDA(:,:,:)**(ZCXR-6.0-ZD))              &
+                     *MOMG(ZALPHA,ZNU,6.0+ZD)
+      PRZDR(:,:,:) = Z1+Z2*(PRHODREF(:,:,:)*PRT(:,:,:,3))**(-ZLBEX)+Z3*(PRHODREF(:,:,:)*PRT(:,:,:,3))**(-2.*ZLBEX)
+      PRZDR(:,:,:) = 10.0*LOG10( PRZDR(:,:,:) ) ! now in dBZ
+      PRKDP(:,:,:) = 6.7E3*( PRHODREF(:,:,:)*PRT(:,:,:,3) )*                     &
+                    (-ZR1*(MOMG(ZALPHA,ZNU,4.0)/MOMG(ZALPHA,ZNU,3.0))*(1.0/ZLBDA(:,:,:))   &
+                     -ZR2*(MOMG(ZALPHA,ZNU,5.0)/MOMG(ZALPHA,ZNU,3.0))*(1.0/ZLBDA(:,:,:)**2))
                                               ! in degree/km
-  END WHERE
+    END WHERE
+  ENDIF
+
 END IF
+
+
 !
 !*       4.     PRISTINE ICE
 !               ------------
 !
 IF (SIZE(PRT,4) >= 4) THEN
   ZEQICE = 0.224
-  ZDMELT_FACT = ( (6.0*XAI)/(XPI*XRHOLW) )**(2.0)
-  ZEXP = 2.0*XBI
-  WHERE( PRT(:,:,:,4).GT.XRTMIN(4) .AND. PCIT(:,:,:).GT.0.0 )
-    ZLBDA(:,:,:) = XLBI*( PRHODREF(:,:,:)*PRT(:,:,:,4)/PCIT(:,:,:) )**XLBEXI
-    ZW(:,:,:) = ZEQICE*ZDMELT_FACT                                             &
-	    *1.E18*PCIT(:,:,:)*(ZLBDA(:,:,:)**(-ZEXP))*MOMG(XALPHAI,XNUI,ZEXP)
-    PVDOP(:,:,:) = PVDOP(:,:,:)+ZEQICE*ZDMELT_FACT*MOMG(XALPHAI,XNUI,ZEXP+XDI) &
-  	                    *1.E18*PCIT(:,:,:)*XC_I*(ZLBDA(:,:,:)**(-ZEXP-XDI))
-    PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
-  END WHERE
+  IF (CCLOUD == 'LIMA') THEN
+    ZDMELT_FACT = ( (6.0*XAI_L)/(XPI*XRHOLW) )**(2.0)
+    ZEXP = 2.0*XBI_L
+    WHERE( PRT(:,:,:,4).GT.XRTMIN_L(4) .AND. PCIT(:,:,:).GT.0.0 )
+      ZLBDA(:,:,:) = XLBI_L**(XLBEXI_L)* (PRT(:,:,:,4)/PCIT(:,:,:))**(-XLBEXI_L)
+      ZW(:,:,:) = ZEQICE*ZDMELT_FACT *1.E18*PRHODREF(:,:,:)*PCIT(:,:,:)*(ZLBDA(:,:,:)**(-ZEXP))*MOMG(XALPHAI_L,XNUI_L,ZEXP)
+      PVDOP(:,:,:) = PVDOP(:,:,:)+ZEQICE*ZDMELT_FACT*MOMG(XALPHAI_L,XNUI_L,ZEXP+XDI_L) &
+                     *1.E18*PRHODREF(:,:,:)*PCIT(:,:,:)*XC_I_L*(ZLBDA(:,:,:)**(-ZEXP-XDI_L))
+      PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
+    END WHERE
+  ELSE
+    ZDMELT_FACT = ( (6.0*XAI_I)/(XPI*XRHOLW) )**(2.0)
+    ZEXP = 2.0*XBI_I
+    WHERE( PRT(:,:,:,4).GT.XRTMIN_I(4) .AND. PCIT(:,:,:).GT.0.0 )
+      ZLBDA(:,:,:) = XLBI_I*( PRHODREF(:,:,:)*PRT(:,:,:,4)/PCIT(:,:,:) )**XLBEXI_I
+      ZW(:,:,:) = ZEQICE*ZDMELT_FACT*1.E18*PCIT(:,:,:)*(ZLBDA(:,:,:)**(-ZEXP))*MOMG(XALPHAI_I,XNUI_I,ZEXP)
+      PVDOP(:,:,:) = PVDOP(:,:,:)+ZEQICE*ZDMELT_FACT*MOMG(XALPHAI_I,XNUI_I,ZEXP+XDI_I) &
+                     *1.E18*PCIT(:,:,:)*XC_I_I*(ZLBDA(:,:,:)**(-ZEXP-XDI_I))
+      PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
+    END WHERE
+  END IF
 END IF
 !
 !*       5.     SNOW/AGGREGATES
 !               ---------------
 !
 IF (SIZE(PRT,4) >= 5) THEN
-  ZDMELT_FACT = ( (6.0*XAS)/(XPI*XRHOLW) )**(2.0)
-  ZEXP = 2.0*XBS
-  WHERE( PRT(:,:,:,5).GT.XRTMIN(5) )
-    ZLBDA(:,:,:) = XLBS*( PRHODREF(:,:,:)*PRT(:,:,:,5) )**XLBEXS
-    ZW(:,:,:) = ZEQICE*ZDMELT_FACT                                             &
-           *1.E18*XCCS*(ZLBDA(:,:,:)**(XCXS-ZEXP))*MOMG(XALPHAS,XNUS,ZEXP)
-    PVDOP(:,:,:) = PVDOP(:,:,:)+ZEQICE*ZDMELT_FACT*MOMG(XALPHAS,XNUS,ZEXP+XDS) &
-      	   *1.E18*XCCS*XCS*(ZLBDA(:,:,:)**(XCXS-ZEXP-XDS))
-    PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
-  END WHERE
+  IF (CCLOUD=='LIMA') THEN
+    ZDMELT_FACT = ( (6.0*XAS_L)/(XPI*XRHOLW) )**(2.0)
+    ZEXP = 2.0*XBS_L
+    WHERE( PRT(:,:,:,5).GT.XRTMIN_L(5) )
+      ZLBDA(:,:,:) = XLBS_L*( PRHODREF(:,:,:)*PRT(:,:,:,5) )**XLBEXS_L
+      ZW(:,:,:) = ZEQICE*ZDMELT_FACT                                             &
+                  *1.E18*XCCS_L*(ZLBDA(:,:,:)**(XCXS_L-ZEXP))*MOMG(XALPHAS_L,XNUS_L,ZEXP)
+      PVDOP(:,:,:) = PVDOP(:,:,:)+ZEQICE*ZDMELT_FACT*MOMG(XALPHAS_L,XNUS_L,ZEXP+XDS_L) &
+                     *1.E18*XCCS_L*XCS_L*(ZLBDA(:,:,:)**(XCXS_L-ZEXP-XDS_L))
+      PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
+    END WHERE
+  ELSE
+    ZDMELT_FACT = ( (6.0*XAS_I)/(XPI*XRHOLW) )**(2.0)
+    ZEXP = 2.0*XBS_I
+    WHERE( PRT(:,:,:,5).GT.XRTMIN_I(5) )
+      ZLBDA(:,:,:) = XLBS_I*( PRHODREF(:,:,:)*PRT(:,:,:,5) )**XLBEXS_I
+      ZW(:,:,:) = ZEQICE*ZDMELT_FACT                                             &
+                  *1.E18*XCCS_I*(ZLBDA(:,:,:)**(XCXS_I-ZEXP))*MOMG(XALPHAS_I,XNUS_I,ZEXP)
+      PVDOP(:,:,:) = PVDOP(:,:,:)+ZEQICE*ZDMELT_FACT*MOMG(XALPHAS_I,XNUS_I,ZEXP+XDS_I) &
+                     *1.E18*XCCS_I*XCS_I*(ZLBDA(:,:,:)**(XCXS_I-ZEXP-XDS_I))
+      PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
+    END WHERE
+  ENDIF
 END IF
 !
 !*       6.     GRAUPELN
 !               --------
 !
 IF (SIZE(PRT,4) >= 6) THEN
-  ZFRAC_WATER = 0.14
-  ZDMELT_FACT = ( (6.0*XAG)/(XPI*XRHOLW) )**(2.0)
-  WHERE( PTEMP(:,:,:).GT.XTT )
-    ZREFL_MELT_CONV(:,:,:) = ((1.0-ZFRAC_WATER)*ZEQICE+ZFRAC_WATER)*ZDMELT_FACT
-  ELSEWHERE
-    ZREFL_MELT_CONV(:,:,:) = ZEQICE*ZDMELT_FACT
-  END WHERE
-!
-  ZEXP = 2.0*XBG
-  WHERE( PRT(:,:,:,6).GT.XRTMIN(6) )
-    ZLBDA(:,:,:) = XLBG*( PRHODREF(:,:,:)*PRT(:,:,:,6) )**XLBEXG
-    ZW(:,:,:)    = ZREFL_MELT_CONV(:,:,:)*1.E18*XCCG*                &
-                   (ZLBDA(:,:,:)**(XCXG-ZEXP))*MOMG(XALPHAG,XNUG,ZEXP)
-    PVDOP(:,:,:) = PVDOP(:,:,:) +                                            &
-                   ZREFL_MELT_CONV(:,:,:)*1.E18*XCCG*XCG*                    &
-                   (ZLBDA(:,:,:)**(XCXG-ZEXP-XDG))*MOMG(XALPHAG,XNUG,ZEXP+XDG)
-    PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
-  END WHERE
+  IF (CCLOUD=='LIMA') THEN
+    ZFRAC_WATER = 0.14
+    ZDMELT_FACT = ( (6.0*XAG_L)/(XPI*XRHOLW) )**(2.0)
+    WHERE( PTEMP(:,:,:).GT.XTT )
+      ZREFL_MELT_CONV(:,:,:) = ((1.0-ZFRAC_WATER)*ZEQICE+ZFRAC_WATER)*ZDMELT_FACT
+    ELSEWHERE
+      ZREFL_MELT_CONV(:,:,:) = ZEQICE*ZDMELT_FACT
+    END WHERE
+!
+    ZEXP = 2.0*XBG_L
+    WHERE( PRT(:,:,:,6).GT.XRTMIN_L(6) )
+      ZLBDA(:,:,:) = XLBG_L*( PRHODREF(:,:,:)*PRT(:,:,:,6) )**XLBEXG_L
+      ZW(:,:,:)    = ZREFL_MELT_CONV(:,:,:)*1.E18*XCCG_L*                &
+                    (ZLBDA(:,:,:)**(XCXG_L-ZEXP))*MOMG(XALPHAG_L,XNUG_L,ZEXP)
+      PVDOP(:,:,:) = PVDOP(:,:,:) +                                            &
+                     ZREFL_MELT_CONV(:,:,:)*1.E18*XCCG_L*XCG_L*                    &
+                     (ZLBDA(:,:,:)**(XCXG_L-ZEXP-XDG_L))*MOMG(XALPHAG_L,XNUG_L,ZEXP+XDG_L)
+      PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
+    END WHERE
+  ELSE
+    ZFRAC_WATER = 0.14
+    ZDMELT_FACT = ( (6.0*XAG_I)/(XPI*XRHOLW) )**(2.0)
+    WHERE( PTEMP(:,:,:).GT.XTT )
+      ZREFL_MELT_CONV(:,:,:) = ((1.0-ZFRAC_WATER)*ZEQICE+ZFRAC_WATER)*ZDMELT_FACT
+    ELSEWHERE
+      ZREFL_MELT_CONV(:,:,:) = ZEQICE*ZDMELT_FACT
+    END WHERE
+!
+    ZEXP = 2.0*XBG_I
+    WHERE( PRT(:,:,:,6).GT.XRTMIN_I(6) )
+      ZLBDA(:,:,:) = XLBG_I*( PRHODREF(:,:,:)*PRT(:,:,:,6) )**XLBEXG_I
+      ZW(:,:,:)    = ZREFL_MELT_CONV(:,:,:)*1.E18*XCCG_I*                &
+                    (ZLBDA(:,:,:)**(XCXG_I-ZEXP))*MOMG(XALPHAG_I,XNUG_I,ZEXP)
+      PVDOP(:,:,:) = PVDOP(:,:,:) +                                            &
+                     ZREFL_MELT_CONV(:,:,:)*1.E18*XCCG_I*XCG_I*                    &
+                     (ZLBDA(:,:,:)**(XCXG_I-ZEXP-XDG_I))*MOMG(XALPHAG_I,XNUG_I,ZEXP+XDG_I)
+      PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
+    END WHERE
+  ENDIF
 END IF
 !
 !*       7.     HAILSTONES
 !               ----------
-!
+!²
 IF (SIZE(PRT,4) >= 7) THEN
-  ZFRAC_WATER = 1.
-  ZDMELT_FACT = ( (6.0*XAH)/(XPI*XRHOLW) )**(2.0)
-  ZREFL_MELT_CONV(:,:,:) = ((1.0-ZFRAC_WATER)*ZEQICE+ZFRAC_WATER)*ZDMELT_FACT
-!
-  ZEXP = 2.0*XBH
-  WHERE( PRT(:,:,:,7).GT.XRTMIN(7) )
-    ZLBDA(:,:,:) = XLBH*( PRHODREF(:,:,:)*PRT(:,:,:,7) )**XLBEXH
-    ZW(:,:,:)    = ZREFL_MELT_CONV(:,:,:)*1.E18*XCCH*                &
-                   (ZLBDA(:,:,:)**(XCXH-ZEXP))*MOMG(XALPHAH,XNUH,ZEXP)
-    PVDOP(:,:,:) = PVDOP(:,:,:) +                                            &
-                   ZREFL_MELT_CONV(:,:,:)*1.E18*XCCH*XCH*                    &
-                   (ZLBDA(:,:,:)**(XCXH-ZEXP-XDH))*MOMG(XALPHAH,XNUH,ZEXP+XDH)
-    PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
-  END WHERE
+  IF (CCLOUD=='LIMA') THEN
+    ZFRAC_WATER = 1.
+    ZDMELT_FACT = ( (6.0*XAH_L)/(XPI*XRHOLW) )**(2.0)
+    ZREFL_MELT_CONV(:,:,:) = ((1.0-ZFRAC_WATER)*ZEQICE+ZFRAC_WATER)*ZDMELT_FACT
+!
+    ZEXP = 2.0*XBH_L
+    WHERE( PRT(:,:,:,7).GT.XRTMIN_L(7) )
+      ZLBDA(:,:,:) = XLBH_L*( PRHODREF(:,:,:)*PRT(:,:,:,7) )**XLBEXH_L
+      ZW(:,:,:)    = ZREFL_MELT_CONV(:,:,:)*1.E18*XCCH_L*                &
+                   (ZLBDA(:,:,:)**(XCXH_L-ZEXP))*MOMG(XALPHAH_L,XNUH_L,ZEXP)
+      PVDOP(:,:,:) = PVDOP(:,:,:) +                                            &
+                   ZREFL_MELT_CONV(:,:,:)*1.E18*XCCH_L*XCH_L*                    &
+                   (ZLBDA(:,:,:)**(XCXH_L-ZEXP-XDH_L))*MOMG(XALPHAH_L,XNUH_L,ZEXP+XDH_L)
+      PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
+    END WHERE
+  ELSE
+    ZFRAC_WATER = 1.
+    ZDMELT_FACT = ( (6.0*XAH_I)/(XPI*XRHOLW) )**(2.0)
+    ZREFL_MELT_CONV(:,:,:) = ((1.0-ZFRAC_WATER)*ZEQICE+ZFRAC_WATER)*ZDMELT_FACT
+!
+    ZEXP = 2.0*XBH_I
+    WHERE( PRT(:,:,:,7).GT.XRTMIN_I(7) )
+      ZLBDA(:,:,:) = XLBH_I*( PRHODREF(:,:,:)*PRT(:,:,:,7) )**XLBEXH_I
+      ZW(:,:,:)    = ZREFL_MELT_CONV(:,:,:)*1.E18*XCCH_I*                &
+                   (ZLBDA(:,:,:)**(XCXH_I-ZEXP))*MOMG(XALPHAH_I,XNUH_I,ZEXP)
+      PVDOP(:,:,:) = PVDOP(:,:,:) +                                            &
+                   ZREFL_MELT_CONV(:,:,:)*1.E18*XCCH_I*XCH_I*                    &
+                   (ZLBDA(:,:,:)**(XCXH_I-ZEXP-XDH_I))*MOMG(XALPHAH_I,XNUH_I,ZEXP+XDH_I)
+      PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
+    END WHERE    
+  END IF
 END IF
 !
 !*       8.     UNIT CONVERSION
@@ -335,6 +460,8 @@ WHERE( PRARE(:,:,:) > 1.E-3 )
 ELSEWHERE
   PRARE(:,:,:) = XUNDEF
 END WHERE
+
+
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/radar_scattering.f90 b/src/MNH/radar_scattering.f90
index e9434099b..991a500e2 100644
--- a/src/MNH/radar_scattering.f90
+++ b/src/MNH/radar_scattering.f90
@@ -115,14 +115,14 @@ USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XDR_I=>XDR,XLBEXR
                                XLBI_I=>XLBI,XAI_I=>XAI,XBI_I=>XBI,XC_I_I=>XC_I,&
                                XRTMIN_I=>XRTMIN
 !!LIMA         
-!USE MODD_PARAM_LIMA_WARM, ONLY: XDR_L=>XDR,XLBEXR_L=>XLBEXR,XLBR_L=>XLBR,XBR_L=>XBR,XCR_L=>XCR
-!USE MODD_PARAM_LIMA_COLD, ONLY: XDI_L=>XDI,XLBEXI_L=>XLBEXI,XLBI_L=>XLBI,XAI_L=>XAI,XBI_L=>XBI,XC_I_L=>XC_I,&
-!                                XDS_L=>XDS,XLBEXS_L=>XLBEXS,XLBS_L=>XLBS,XCCS_L=>XCCS,XAS_L=>XAS,XBS_L=>XBS,XCXS_L=>XCXS,XCS_L=>XCS
-!
-!USE MODD_PARAM_LIMA_MIXED, ONLY:XDG_L=>XDG,XLBEXG_L=>XLBEXG,XLBG_L=>XLBG,XCCG_L=>XCCG,XAG_L=>XAG,XBG_L=>XBG,XCXG_L=>XCXG,XCG_L=>XCG
-!USE MODD_PARAM_LIMA, ONLY: XALPHAR_L=>XALPHAR,XNUR_L=>XNUR,XALPHAS_L=>XALPHAS,XNUS_L=>XNUS,&
-!                           XALPHAG_L=>XALPHAG,XNUG_L=>XNUG, XALPHAI_L=>XALPHAI,XNUI_L=>XNUI,&
-!                           XRTMIN_L=>XRTMIN
+USE MODD_PARAM_LIMA_WARM, ONLY: XDR_L=>XDR,XLBEXR_L=>XLBEXR,XLBR_L=>XLBR,XBR_L=>XBR,XCR_L=>XCR
+USE MODD_PARAM_LIMA_COLD, ONLY: XDI_L=>XDI,XLBEXI_L=>XLBEXI,XLBI_L=>XLBI,XAI_L=>XAI,XBI_L=>XBI,XC_I_L=>XC_I,&
+                                XDS_L=>XDS,XLBEXS_L=>XLBEXS,XLBS_L=>XLBS,XCCS_L=>XCCS,XAS_L=>XAS,XBS_L=>XBS,XCXS_L=>XCXS,XCS_L=>XCS
+
+USE MODD_PARAM_LIMA_MIXED, ONLY:XDG_L=>XDG,XLBEXG_L=>XLBEXG,XLBG_L=>XLBG,XCCG_L=>XCCG,XAG_L=>XAG,XBG_L=>XBG,XCXG_L=>XCXG,XCG_L=>XCG
+USE MODD_PARAM_LIMA, ONLY: XALPHAR_L=>XALPHAR,XNUR_L=>XNUR,XALPHAS_L=>XALPHAS,XNUS_L=>XNUS,&
+                           XALPHAG_L=>XALPHAG,XNUG_L=>XNUG, XALPHAI_L=>XALPHAI,XNUI_L=>XNUI,&
+                           XRTMIN_L=>XRTMIN
 !!LIMA
 USE MODD_RADAR, ONLY:XLAM_RAD,XSTEP_RAD,NBELEV,NDIFF,LATT,NPTS_GAULAG,LQUAD,XVALGROUND,NDGS, &
      LFALL,LWBSCS,LWREFL,XREFLVDOPMIN,XREFLMIN,LSNRT,XSNRMIN
@@ -304,41 +304,41 @@ ENDIF
   ZRE_S22S11_G=0
   ZIM_S22S11_G=0
 ! Initialisation varibales microphysiques
-!IF (GLIMA) THEN ! LIMA
-!  ZLBR=XLBR_L
-!  ZLBEXR=XLBEXR_L
-!  ZDR=XDR_L
-!  ZALPHAR=XALPHAR_L
-!  ZNUR=XNUR_L
-!  ZBR=XBR_L
-!  ZCCS=XCCS_L
-!  ZCXS=XCXS_L
-!  ZLBS=XLBS_L
-!  ZLBEXS=XLBEXS_L
-!  ZDS=XDS_L
-!  ZALPHAS=XALPHAS_L
-!  ZNUS=XNUS_L
-!  ZAS=XAS_L
-!  ZBS=XBS_L
-!  ZCCG=XCCG_L
-!  ZCXG=XCXG_L
-!  ZLBG=XLBG_L
-!  ZLBEXG=XLBEXG_L
-!  ZDG=XDG_L
-!  ZALPHAG=XALPHAG_L
-!  ZNUG=XNUG_L
-!  ZAG=XAG_L
-!  ZBG=XBG_L
-!  ZLBI=XLBI_L
-!  ZLBEXI=XLBEXI_L
-!  ZDI=XDI_L
-!  ZALPHAI=XALPHAI_L
-!  ZNUI=XNUI_L
-!  ZAI=XAI_L
-!  ZBI=XBI_L
-!  ALLOCATE(ZRTMIN(SIZE(XRTMIN_L)))
-!  ZRTMIN=XRTMIN_L
-!ELSE ! ICE3
+IF (GLIMA) THEN ! LIMA
+  ZLBR=XLBR_L
+  ZLBEXR=XLBEXR_L
+  ZDR=XDR_L
+  ZALPHAR=XALPHAR_L
+  ZNUR=XNUR_L
+  ZBR=XBR_L
+  ZCCS=XCCS_L
+  ZCXS=XCXS_L
+  ZLBS=XLBS_L
+  ZLBEXS=XLBEXS_L
+  ZDS=XDS_L
+  ZALPHAS=XALPHAS_L
+  ZNUS=XNUS_L
+  ZAS=XAS_L
+  ZBS=XBS_L
+  ZCCG=XCCG_L
+  ZCXG=XCXG_L
+  ZLBG=XLBG_L
+  ZLBEXG=XLBEXG_L
+  ZDG=XDG_L
+  ZALPHAG=XALPHAG_L
+  ZNUG=XNUG_L
+  ZAG=XAG_L
+  ZBG=XBG_L
+  ZLBI=XLBI_L
+  ZLBEXI=XLBEXI_L
+  ZDI=XDI_L
+  ZALPHAI=XALPHAI_L
+  ZNUI=XNUI_L
+  ZAI=XAI_L
+  ZBI=XBI_L
+  ALLOCATE(ZRTMIN(SIZE(XRTMIN_L)))
+  ZRTMIN=XRTMIN_L
+ELSE ! ICE3
   ZCCR=XCCR_I
   ZLBR=XLBR_I
   ZLBEXR=XLBEXR_I
@@ -373,7 +373,7 @@ ENDIF
   ZBI=XBI_I
   ALLOCATE(ZRTMIN(SIZE(XRTMIN_I)))
   ZRTMIN=XRTMIN_I
-!ENDIF
+ENDIF
 IF (LATT) THEN
   IRHOHV=22 !au lieu de 18:
             !"ZHH","ZDR","KDP","CSR","ZER","ZEI","ZES","ZEG","VRU"
@@ -402,17 +402,17 @@ INPTS_V=SIZE(PT_RAY,6)
 !
 ! Initialisation for radial winds
 IF(LFALL) THEN
-!  IF (GLIMA) THEN
-!    ZCR=XCR_L
-!    ZCI=XC_I_L
-!    ZCS=XCS_L
-!    ZCG=XCG_L
-!  ELSE
+  IF (GLIMA) THEN
+    ZCR=XCR_L
+    ZCI=XC_I_L
+    ZCS=XCS_L
+    ZCG=XCG_L
+  ELSE
     ZCR=XCR_I 
     ZCI=XC_I_I
     ZCS=XCS_I
     ZCG=XCG_I
-!  ENDIF
+  ENDIF
 ELSE
   ZCR=0.
   ZCI=0.
diff --git a/src/MNH/radiations.f90 b/src/MNH/radiations.f90
index 8bd7efe64..7b9798cb4 100644
--- a/src/MNH/radiations.f90
+++ b/src/MNH/radiations.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/radiations.f90,v $ $Revision: 1.3.2.3.2.2.2.4 $
 ! masdev4_7 BUG1 2007/06/15 17:47:18
 !-----------------------------------------------------------------
 !    ########################
@@ -211,6 +211,7 @@ END MODULE MODI_RADIATIONS
 !!      V.Masson, C.Lac 08/10 Correction of inversion of Diffuse and direct albedo
 !!      B.Aouizerats 2010     Explicit aerosol optical properties
 !!      C.Lac       11/2015   Correction on aerosols
+!!      B.Vie            /13  LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -231,7 +232,10 @@ USE MODD_NSV, ONLY : NSV_C2R2,NSV_C2R2BEG,NSV_C2R2END, &
                      NSV_C1R3,NSV_C1R3BEG,NSV_C1R3END, &
                      NSV_DSTBEG, NSV_DSTEND, &
                      NSV_AERBEG, NSV_AEREND, &
-                     NSV_SLTBEG, NSV_SLTEND
+                     NSV_SLTBEG, NSV_SLTEND, &
+                     NSV_LIMA,NSV_LIMA_BEG,NSV_LIMA_END, &
+                     NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_NI
+USE MODD_PARAM_n, ONLY : CCLOUD
 !
 USE MODE_THERMO
 
@@ -242,6 +246,7 @@ USE MODD_PARAM_RAD_n, ONLY: CAOP
 USE MODE_DUSTOPT
 USE MODE_SALTOPT
 USE MODI_AEROOPT_GET
+USE MODD_PARAM_LIMA
 !
 #ifdef MNH_PGI
 USE MODE_PACK_PGI
@@ -387,6 +392,9 @@ REAL, DIMENSION(:,:), ALLOCATABLE   :: ZDPRES   ! layer pressure thickness
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCCT_C2R2! Cloud water Concentarion (C2R2)
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCRT_C2R2! Rain water Concentarion (C2R2)
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCIT_C1R3! Ice water Concentarion (C2R2)
+REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCCT_LIMA! Cloud water Concentration(LIMA)
+REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCRT_LIMA! Rain water Concentration(LIMA)
+REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCIT_LIMA! Ice water Concentration(LIMA)
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZAER     ! aerosol optical thickness
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZALBP    ! spectral surface albedo for direct radiations
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZALBD    ! spectral surface albedo for diffuse radiations 
@@ -514,6 +522,9 @@ REAL, DIMENSION(:,:),   ALLOCATABLE :: ZDZ_SPLIT
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCCT_C2R2_SPLIT
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCRT_C2R2_SPLIT
 REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCIT_C1R3_SPLIT
+REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCCT_LIMA_SPLIT
+REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCRT_LIMA_SPLIT
+REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCIT_LIMA_SPLIT
 REAL, DIMENSION(:),     ALLOCATABLE :: ZTS_SPLIT
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZSFSWDIR_SPLIT
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZSFSWDIF_SPLIT
@@ -721,7 +732,8 @@ IF( SIZE(PRT(:,:,:,:),4) >= 4 ) THEN
       DO JI=IIB,IIE
         IIJ = 1 + (JI-IIB) + (IIE-IIB+1)*(JJ-IJB)
         ZQIWC(IIJ,JKRAD) = MAX(0.,PRT(JI,JJ,JK,4)*PRHODREF(JI,JJ,JK))
-        ZQIAVE(IIJ,JKRAD) = MAX( PRT(JI,JJ,JK,4)-XRTMIN(4),0.0 )
+!        ZQIAVE(IIJ,JKRAD) = MAX( PRT(JI,JJ,JK,4)-XRTMIN(4),0.0 )
+        ZQIAVE(IIJ,JKRAD) = MAX( PRT(JI,JJ,JK,4),0.0 )
       END DO
     END DO
   END DO
@@ -775,6 +787,29 @@ ELSE
   ALLOCATE (ZCIT_C1R3(0,0))
 END IF
 !
+!
+!        2.1*bis pronostic water concentation fields (LIMA coupling) 
+!
+IF( CCLOUD == 'LIMA' ) THEN
+   ALLOCATE (ZCCT_LIMA(KDLON, KFLEV))
+   ALLOCATE (ZCRT_LIMA(KDLON, KFLEV))
+   ALLOCATE (ZCIT_LIMA(KDLON, KFLEV))
+   ZCCT_LIMA(:, :) = 0.
+   ZCRT_LIMA (:,:) = 0.
+   ZCIT_LIMA (:,:) = 0.
+   DO JK=IKB,IKE
+      JKRAD = JK-JPVEXT
+      DO JJ=IJB,IJE
+         DO JI=IIB,IIE
+            IIJ = 1 + (JI-IIB) + (IIE-IIB+1)*(JJ-IJB)
+            IF (LWARM) ZCCT_LIMA(IIJ,JKRAD) = MAX(0.,PSVT(JI,JJ,JK,NSV_LIMA_NC))
+            IF (LWARM .AND. LRAIN) ZCRT_LIMA(IIJ,JKRAD) = MAX(0.,PSVT(JI,JJ,JK,NSV_LIMA_NR))
+            IF (LCOLD) ZCIT_LIMA(IIJ,JKRAD) = MAX(0.,PSVT(JI,JJ,JK,NSV_LIMA_NI))
+         END DO
+      END DO
+   END DO
+END IF
+!
 !-------------------------------------------------------------------------------
 !
 !*       3.    INITIALIZES THE HALF-LEVEL VARIABLES
@@ -942,10 +977,8 @@ IF (CAOP=='EXPL') THEN
 
  ENDIF
 
-
  ZTAUREL_EQ_TMP(:,:,:,:)=ZTAUREL_DST_TMP(:,:,:,:)+ZTAUREL_AER_TMP(:,:,:,:)+ZTAUREL_SLT_TMP(:,:,:,:)
  
-!PAER(:,:,:,3)=PAER_AER(:,:,:)+PAER_SLT(:,:,:)+PAER_DST(:,:,:)
  PAER(:,:,:,2)=PAER_SLT(:,:,:)
  PAER(:,:,:,3)=PAER_DST(:,:,:)
  PAER(:,:,:,4)=PAER_AER(:,:,:)
@@ -1390,6 +1423,31 @@ IF(OCLOUD_ONLY .OR. OCLEAR_SKY) THEN
     ZCIT_C1R3 (:,:) = TRANSPOSE( RESHAPE( ZWORK2(:),(/KFLEV,ICLOUD_COL+1/) ) )
   ENDIF
   !
+  ! LIMA water particle concentration
+  !
+  IF( CCLOUD == 'LIMA' ) THEN
+     ZWORK1(:) = PACK( TRANSPOSE(ZCCT_LIMA(:,:)),MASK=GCLOUDT(:,:) )
+     ZWORK2(1:ICLOUD) = ZWORK1(1:ICLOUD) ! fills the ICLOUD_COL cloudy columns
+     ZWORK2(ICLOUD+1:)= 0.0      !   and the single clear_sky one
+     DEALLOCATE(ZCCT_LIMA)
+     ALLOCATE(ZCCT_LIMA(ICLOUD_COL+1,KFLEV))
+     ZCCT_LIMA (:,:) = TRANSPOSE( RESHAPE( ZWORK2(:),(/KFLEV,ICLOUD_COL+1/) ) )
+!
+     ZWORK1(:) = PACK( TRANSPOSE(ZCRT_LIMA(:,:)),MASK=GCLOUDT(:,:) )
+     ZWORK2(1:ICLOUD) = ZWORK1(1:ICLOUD) ! fills the ICLOUD_COL cloudy columns
+     ZWORK2(ICLOUD+1:)= 0.0      !   and the single clear_sky one
+     DEALLOCATE(ZCRT_LIMA)
+     ALLOCATE(ZCRT_LIMA(ICLOUD_COL+1,KFLEV))
+     ZCRT_LIMA (:,:) = TRANSPOSE( RESHAPE( ZWORK2(:),(/KFLEV,ICLOUD_COL+1/) ) )
+!
+     ZWORK1(:) = PACK( TRANSPOSE(ZCIT_LIMA(:,:)),MASK=GCLOUDT(:,:) )
+     ZWORK2(1:ICLOUD) = ZWORK1(1:ICLOUD) ! fills the ICLOUD_COL cloudy columns
+     ZWORK2(ICLOUD+1:)= 0.0      !   and the single clear_sky one
+     DEALLOCATE(ZCIT_LIMA)
+     ALLOCATE(ZCIT_LIMA(ICLOUD_COL+1,KFLEV))
+     ZCIT_LIMA (:,:) = TRANSPOSE( RESHAPE( ZWORK2(:),(/KFLEV,ICLOUD_COL+1/) ) )
+  ENDIF
+  !
   ! ozone content profiles
   !
   ZWORK1(:) = PACK( TRANSPOSE(ZO3AVE(:,:)),MASK=GCLOUDT(:,:) )
@@ -1722,6 +1780,28 @@ IF (SIZE(ZCIT_C1R3) > 0) THEN
   END DO
 END IF
 !
+!LIMA water particle concentration
+!
+IF( CCLOUD == 'LIMA' ) THEN
+   ZWORK_GRID(:,:)=ZCCT_LIMA(:,:)
+   DO JKRAD=1, KFLEV
+      JK1=KFLEV+1-JKRAD
+      ZCCT_LIMA(:,JKRAD)=ZWORK_GRID(:,JK1)
+   END DO
+!
+   ZWORK_GRID(:,:)=ZCRT_LIMA(:,:)
+   DO JKRAD=1, KFLEV
+      JK1=KFLEV+1-JKRAD
+      ZCRT_LIMA(:,JKRAD)=ZWORK_GRID(:,JK1)
+   END DO
+!
+   ZWORK_GRID(:,:)=ZCIT_LIMA(:,:)
+   DO JKRAD=1, KFLEV
+      JK1=KFLEV+1-JKRAD
+      ZCIT_LIMA(:,JKRAD)=ZWORK_GRID(:,JK1)
+   END DO
+END IF
+!
 !ozone content 
 ZWORK_GRID(:,:)=ZO3AVE(:,:)
 DO JKRAD=1, KFLEV
@@ -1868,6 +1948,25 @@ IF( IDIM <= KRAD_COLNBR ) THEN
 ! there is less than KRAD_COLNBR verticals to be considered therefore
 ! no split of the arrays is performed
 !
+ IF (CCLOUD == 'LIMA') THEN
+  CALL ECMWF_RADIATION_VERS2  ( IDIM ,KFLEV, KRAD_DIAG, KAER,     &      
+       ZDZ,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,      &
+       ZRII0, ZAER , ZALBD, ZALBP, ZPRES_HL, ZPAVE,               &
+       PCCO2, ZCFAVE, ZDPRES, ZEMIS, ZEMIW, ZLSM, ZRMU0,          &
+       ZO3AVE , ZQVAVE, ZQIAVE ,ZQIWC,ZQLAVE,ZQLWC, ZQSAVE, ZQRAVE,  ZQRWC,  &
+       ZT_HL,ZTAVE, ZTS, ZCCT_LIMA, ZCRT_LIMA, ZCIT_LIMA,         &
+       ZNFLW_CS, ZNFLW, ZNFSW_CS,ZNFSW,                           &
+       ZDTLW, ZDTSW, ZFLUX_TOP_GND_IRVISNIR,                      &
+       ZSFSWDIR, ZSFSWDIF,                                        &
+       ZFLUX_SW_DOWN, ZFLUX_SW_UP, ZFLUX_LW ,                     &
+       ZDTLW_CS, ZDTSW_CS, ZFLUX_TOP_GND_IRVISNIR_CS,             &
+       ZFLUX_SW_DOWN_CS, ZFLUX_SW_UP_CS, ZFLUX_LW_CS,             &           
+       ZPLAN_ALB_VIS,ZPLAN_ALB_NIR, ZPLAN_TRA_VIS, ZPLAN_TRA_NIR, &
+       ZPLAN_ABS_VIS, ZPLAN_ABS_NIR,ZEFCL_LWD, ZEFCL_LWU,         &
+       ZFLWP, ZFIWP,ZRADLP, ZRADIP,ZEFCL_RRTM,  ZCLSW_TOTAL,  ZTAU_TOTAL,  &
+       ZOMEGA_TOTAL,ZCG_TOTAL,                                    &
+       GAOP, ZPIZA_EQ,ZCGA_EQ,ZTAUREL_EQ                       )
+ ELSE
    CALL ECMWF_RADIATION_VERS2  ( IDIM ,KFLEV, KRAD_DIAG, KAER,     &      
        ZDZ,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,      &
        ZRII0, ZAER , ZALBD, ZALBP, ZPRES_HL, ZPAVE,               &
@@ -1885,7 +1984,8 @@ IF( IDIM <= KRAD_COLNBR ) THEN
        ZFLWP, ZFIWP,ZRADLP, ZRADIP,ZEFCL_RRTM,  ZCLSW_TOTAL,  ZTAU_TOTAL,  &
        ZOMEGA_TOTAL,ZCG_TOTAL,                                    &
        GAOP, ZPIZA_EQ,ZCGA_EQ,ZTAUREL_EQ                       )
-
+ END IF
+!
 ELSE
 !
 ! the splitting of the arrays will be performed
@@ -2019,6 +2119,14 @@ ELSE
       ELSE
         ALLOCATE (ZCIT_C1R3_SPLIT(0,0))
       END IF
+!
+! LIMA coupling
+!
+      IF( CCLOUD == 'LIMA' ) THEN
+          ALLOCATE (ZCCT_LIMA_SPLIT(IDIM_EFF,KFLEV))
+          ALLOCATE (ZCRT_LIMA_SPLIT(IDIM_EFF,KFLEV))
+          ALLOCATE (ZCIT_LIMA_SPLIT(IDIM_EFF,KFLEV))
+      END IF
     END IF
 ! 
 ! fill the splitted arrays with their values taken from the full arrays 
@@ -2056,12 +2164,38 @@ ELSE
     ZQSAVE_SPLIT (:,:) = ZQSAVE (IBEG:IEND ,:)
     ZTS_SPLIT (:) = ZTS (IBEG:IEND)
 !
+!  CALL the ECMWF radiation with the splitted array
+!
+  IF (CCLOUD == 'LIMA') THEN
+! LIMA concentrations
+     ZCCT_LIMA_SPLIT(:,:) = ZCCT_LIMA (IBEG:IEND ,:)
+     ZCRT_LIMA_SPLIT(:,:) = ZCRT_LIMA (IBEG:IEND ,:)
+     ZCIT_LIMA_SPLIT(:,:) = ZCIT_LIMA (IBEG:IEND ,:)
+!
+   CALL ECMWF_RADIATION_VERS2  ( IDIM_EFF , KFLEV, KRAD_DIAG, KAER,               &
+         ZDZ_SPLIT,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,          &
+         ZRII0, ZAER_SPLIT , ZALBD_SPLIT, ZALBP_SPLIT, ZPRES_HL_SPLIT,            &
+         ZPAVE_SPLIT,PCCO2, ZCFAVE_SPLIT, ZDPRES_SPLIT, ZEMIS_SPLIT, ZEMIW_SPLIT, &
+         ZLSM_SPLIT, ZRMU0_SPLIT,ZO3AVE_SPLIT , ZQVAVE_SPLIT, ZQIAVE_SPLIT ,ZQIWC_SPLIT,      &
+         ZQLAVE_SPLIT,ZQLWC_SPLIT,ZQSAVE_SPLIT, ZQRAVE_SPLIT,ZQRWC_SPLIT,  ZT_HL_SPLIT,      &
+         ZTAVE_SPLIT, ZTS_SPLIT, ZCCT_LIMA_SPLIT,ZCRT_LIMA_SPLIT,ZCIT_LIMA_SPLIT, &
+         ZNFLW_CS_SPLIT, ZNFLW_SPLIT, ZNFSW_CS_SPLIT,ZNFSW_SPLIT,                 &
+         ZDTLW_SPLIT, ZDTSW_SPLIT, ZFLUX_TOP_GND_IRVISNIR_SPLIT,                  &
+         ZSFSWDIR_SPLIT, ZSFSWDIF_SPLIT,                                          &
+         ZFLUX_SW_DOWN_SPLIT, ZFLUX_SW_UP_SPLIT, ZFLUX_LW_SPLIT ,                 &
+         ZDTLW_CS_SPLIT, ZDTSW_CS_SPLIT, ZFLUX_TOP_GND_IRVISNIR_CS_SPLIT,         &
+         ZFLUX_SW_DOWN_CS_SPLIT, ZFLUX_SW_UP_CS_SPLIT, ZFLUX_LW_CS_SPLIT,         &
+         ZPLAN_ALB_VIS_SPLIT,ZPLAN_ALB_NIR_SPLIT, ZPLAN_TRA_VIS_SPLIT,            &
+         ZPLAN_TRA_NIR_SPLIT, ZPLAN_ABS_VIS_SPLIT, ZPLAN_ABS_NIR_SPLIT,           &
+         ZEFCL_LWD_SPLIT, ZEFCL_LWU_SPLIT, ZFLWP_SPLIT,ZFIWP_SPLIT,               &
+         ZRADLP_SPLIT,ZRADIP_SPLIT,ZEFCL_RRTM_SPLIT, ZCLSW_TOTAL_SPLIT,           &
+         ZTAU_TOTAL_SPLIT,ZOMEGA_TOTAL_SPLIT, ZCG_TOTAL_SPLIT,                    &
+         GAOP,ZPIZA_EQ_SPLIT,ZCGA_EQ_SPLIT,ZTAUREL_EQ_SPLIT  )
+  ELSE
 ! C2R2 concentrations
     IF (SIZE (ZCCT_C2R2) > 0)  ZCCT_C2R2_SPLIT(:,:) = ZCCT_C2R2 (IBEG:IEND ,:)
     IF (SIZE (ZCRT_C2R2) > 0)  ZCRT_C2R2_SPLIT(:,:) = ZCRT_C2R2 (IBEG:IEND ,:)  
     IF (SIZE (ZCIT_C1R3) > 0)  ZCIT_C1R3_SPLIT(:,:) = ZCIT_C1R3 (IBEG:IEND ,:)
-!
-!  CALL the ECMWF radiation with the splitted array
 !
    CALL ECMWF_RADIATION_VERS2  ( IDIM_EFF , KFLEV, KRAD_DIAG, KAER,              &    
          ZDZ_SPLIT,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,                    &
@@ -2082,7 +2216,7 @@ ELSE
          ZRADLP_SPLIT,ZRADIP_SPLIT,ZEFCL_RRTM_SPLIT, ZCLSW_TOTAL_SPLIT,           &
          ZTAU_TOTAL_SPLIT,ZOMEGA_TOTAL_SPLIT, ZCG_TOTAL_SPLIT,                    &
          GAOP,ZPIZA_EQ_SPLIT,ZCGA_EQ_SPLIT,ZTAUREL_EQ_SPLIT  )
-
+    END IF 
 !
 ! fill the full output arrays with the splitted arrays
 !
@@ -2162,9 +2296,12 @@ ELSE
       DEALLOCATE(  ZQLWC_SPLIT     )
       DEALLOCATE(  ZQRWC_SPLIT     )
       DEALLOCATE(  ZQIWC_SPLIT     )
-      DEALLOCATE(   ZCCT_C2R2_SPLIT  )
-      DEALLOCATE(   ZCRT_C2R2_SPLIT  )
-      DEALLOCATE(   ZCIT_C1R3_SPLIT  )
+      IF ( ALLOCATED( ZCCT_C2R2_SPLIT ) ) DEALLOCATE(   ZCCT_C2R2_SPLIT  )
+      IF ( ALLOCATED( ZCRT_C2R2_SPLIT ) ) DEALLOCATE(   ZCRT_C2R2_SPLIT  )
+      IF ( ALLOCATED( ZCIT_C1R3_SPLIT ) ) DEALLOCATE(   ZCIT_C1R3_SPLIT  )
+      IF ( ALLOCATED( ZCCT_LIMA_SPLIT ) ) DEALLOCATE(   ZCCT_LIMA_SPLIT  )
+      IF ( ALLOCATED( ZCRT_LIMA_SPLIT ) ) DEALLOCATE(   ZCRT_LIMA_SPLIT  )
+      IF ( ALLOCATED( ZCIT_LIMA_SPLIT ) ) DEALLOCATE(   ZCIT_LIMA_SPLIT  )
       DEALLOCATE(  ZTS_SPLIT    )
       DEALLOCATE(   ZNFLW_CS_SPLIT)
       DEALLOCATE(   ZNFLW_SPLIT)
@@ -2229,6 +2366,11 @@ DEALLOCATE(ZDPRES)
 DEALLOCATE(ZCCT_C2R2)
 DEALLOCATE(ZCRT_C2R2)
 DEALLOCATE(ZCIT_C1R3)
+IF (CCLOUD == 'LIMA') THEN 
+  DEALLOCATE(ZCCT_LIMA)
+  DEALLOCATE(ZCRT_LIMA)
+  DEALLOCATE(ZCIT_LIMA)
+END IF
 !
 DEALLOCATE(ZTS)
 DEALLOCATE(ZALBP)
diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90
index a93ff52d2..f78d05800 100644
--- a/src/MNH/rain_ice.f90
+++ b/src/MNH/rain_ice.f90
@@ -17,11 +17,10 @@ INTERFACE
                             PDZZ, PRHODJ, PRHODREF, PEXNREF, PPABST, PCIT, PCLDFR,&
                             PTHT, PRVT, PRCT, PRRT, PRIT, PRST,                   &
                             PRGT, PTHS, PRVS, PRCS, PRRS, PRIS, PRSS, PRGS,       &
-                            PINPRC,PINPRC3D, PINPRR, PINPRR3D, PEVAP3D,           &
-                            PINPRS,PINPRS3D, PINPRG,PINPRG3D, PSIGS,              &
-                            PSPEEDC, PSPEEDR, PSPEEDS, PSPEEDG, PSPEEDH,          &
+                            PINPRC,PINPRR, PINPRR3D, PEVAP3D,           &
+                            PINPRS, PINPRG, PSIGS,              &
                             PSEA, PTOWN,                                          &
-                            PRHT,  PRHS, PINPRH,PINPRH3D,OCONVHG             )
+                            PRHT,  PRHS, PINPRH,OCONVHG             )
 !
 !
 LOGICAL,                  INTENT(IN)    :: OSEDIC ! Switch for droplet sedim.
@@ -69,27 +68,18 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRIS    ! Pristine ice m.r. source
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRSS    ! Snow/aggregate m.r. source
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRGS    ! Graupel m.r. source
 
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDC ! Cloud sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDR ! Rain sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDS ! Snow sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDG ! Graupel sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDH ! Hail sedimentation speed
 !
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRC! Cloud instant precip
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRC3D! Cloud inst precip 3D
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRR! Rain instant precip
 REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRR3D! Rain inst precip 3D
 REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PEVAP3D! Rain evap profile
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRS! Snow instant precip
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRS3D! Snow inst precip 3D
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRG! Graupel instant precip
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRG3D! Graupel inst precip 3D
 REAL, DIMENSION(:,:),OPTIONAL,INTENT(IN)         :: PSEA
 REAL, DIMENSION(:,:),OPTIONAL,INTENT(IN)         :: PTOWN
 REAL, DIMENSION(:,:,:), OPTIONAL,  INTENT(IN)    :: PRHT    ! Hail m.r. at t
 REAL, DIMENSION(:,:,:), OPTIONAL,  INTENT(INOUT) :: PRHS    ! Hail m.r. source
 REAL, DIMENSION(:,:), OPTIONAL, INTENT(INOUT)    :: PINPRH! Hail instant precip
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(INOUT)     :: PINPRH3D! Hail instant precip 3D
 LOGICAL, OPTIONAL,                 INTENT(IN)    :: OCONVHG! Switch for conversion from
                                                   ! hail to graupel
 
@@ -103,11 +93,10 @@ END MODULE MODI_RAIN_ICE
                             PDZZ, PRHODJ, PRHODREF, PEXNREF, PPABST, PCIT, PCLDFR,    &
                             PTHT, PRVT, PRCT, PRRT, PRIT, PRST,                       &
                             PRGT, PTHS, PRVS, PRCS, PRRS, PRIS, PRSS, PRGS,           &
-                            PINPRC,PINPRC3D, PINPRR, PINPRR3D, PEVAP3D,               &
-                            PINPRS,PINPRS3D, PINPRG,PINPRG3D, PSIGS,                  &
-                            PSPEEDC, PSPEEDR, PSPEEDS, PSPEEDG, PSPEEDH,              &
+                            PINPRC, PINPRR, PINPRR3D, PEVAP3D,               &
+                            PINPRS, PINPRG, PSIGS,                  &
                             PSEA, PTOWN,                                              &
-                            PRHT,  PRHS, PINPRH,PINPRH3D,OCONVHG                 )
+                            PRHT,  PRHS, PINPRH,OCONVHG                 )
 !     #####################################################################
 !
 !!****  * -  compute the explicit microphysical sources
@@ -320,27 +309,18 @@ REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRIS    ! Pristine ice m.r. source
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRSS    ! Snow/aggregate m.r. source
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRGS    ! Graupel m.r. source
 !
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDC ! Cloud sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDR ! Rain sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDS ! Snow sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDG ! Graupel sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDH ! Hail sedimentation speed
 !
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRC! Cloud instant precip
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRC3D! Cloud inst precip 3D
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRR! Rain instant precip
 REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRR3D! Rain inst precip 3D
 REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PEVAP3D! Rain evap profile
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRS! Snow instant precip
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRS3D! Snow inst precip 3D
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRG! Graupel instant precip
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRG3D! Graupel inst precip 3D
 REAL, DIMENSION(:,:),OPTIONAL,INTENT(IN)         :: PSEA
 REAL, DIMENSION(:,:),OPTIONAL,INTENT(IN)         :: PTOWN
 REAL, DIMENSION(:,:,:), OPTIONAL,  INTENT(IN)    :: PRHT    ! Hail m.r. at t
 REAL, DIMENSION(:,:,:), OPTIONAL,  INTENT(INOUT) :: PRHS    ! Hail m.r. source
 REAL, DIMENSION(:,:), OPTIONAL, INTENT(INOUT)    :: PINPRH! Hail instant precip
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(INOUT)     :: PINPRH3D! Hail instant precip 3D
 LOGICAL, OPTIONAL,                 INTENT(IN)    :: OCONVHG! Switch for conversion from
                                                   ! hail to graupel
 !
@@ -885,20 +865,11 @@ REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZCONC3D !
 !        O. Initialization of for sedimentation                  
 !
 IF (OSEDIC) PINPRC (:,:) = 0.
-IF (OSEDIC) PINPRC3D (:,:,:) = 0.
 PINPRR (:,:) = 0.
 PINPRR3D (:,:,:) = 0.
 PINPRS (:,:) = 0.
-PINPRS3D (:,:,:) = 0.
 PINPRG (:,:) = 0.
-PINPRG3D (:,:,:) = 0.
 IF ( KRR == 7 ) PINPRH (:,:) = 0.   
-IF ( KRR == 7 ) PINPRH3D (:,:,:) = 0.
-PSPEEDC(:,:,:) = 0.
-PSPEEDR(:,:,:) = 0.
-PSPEEDS(:,:,:) = 0.
-PSPEEDG(:,:,:) = 0.
-PSPEEDH(:,:,:) = 0.
 !
 !*       1. Parameters for cloud sedimentation
 !
@@ -1066,9 +1037,6 @@ DO JN = 1 , KSPLITR
          PRCS(:,:,JK) = PRCS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK))
        END DO
       PINPRC(:,:) = PINPRC(:,:) + ZWSED(:,:,IKB) / XRHOLW / KSPLITR 
-      PINPRC3D(:,:,:) = PINPRC3D(:,:,:) + ZWSED(:,:,1:IKT) / XRHOLW / KSPLITR 
-      WHERE (PRCT(:,:,:) > 1.E-04 ) &
-           PSPEEDC(:,:,:) = ZWSED(:,:,1:IKT) / (PRCT(:,:,:) * PRHODREF(:,:,:))
       IF( JN==KSPLITR ) THEN
         PRCS(:,:,:) = PRCS(:,:,:) * ZINVTSTEP
       END IF
@@ -1111,8 +1079,6 @@ DO JN = 1 , KSPLITR
        END DO
        PINPRR(:,:) = PINPRR(:,:) + ZWSED(:,:,IKB)/XRHOLW/KSPLITR
        PINPRR3D(:,:,:) = PINPRR3D(:,:,:) + ZWSED(:,:,1:IKT)/XRHOLW/KSPLITR 
-      WHERE (PRRT(:,:,:) > 1.E-04 ) &
-           PSPEEDR(:,:,:) = ZWSED(:,:,1:IKT) / (PRRT(:,:,:) * PRHODREF(:,:,:))
       IF( JN==KSPLITR ) THEN
         PRRS(:,:,:) = PRRS(:,:,:) * ZINVTSTEP
       END IF
@@ -1194,9 +1160,6 @@ DO JN = 1 , KSPLITR
          PRSS(:,:,JK) = PRSS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK))
        END DO
        PINPRS(:,:) = PINPRS(:,:) + ZWSED(:,:,IKB)/XRHOLW/KSPLITR
-       PINPRS3D(:,:,:) = PINPRS3D(:,:,:) + ZWSED(:,:,1:IKT)/XRHOLW/KSPLITR
-      WHERE (PRST(:,:,:) > 1.E-04 ) &
-           PSPEEDS(:,:,:) = ZWSED(:,:,1:IKT) / (PRST(:,:,:) * PRHODREF(:,:,:))
       IF( JN==KSPLITR ) THEN
         PRSS(:,:,:) = PRSS(:,:,:) * ZINVTSTEP
       END IF
@@ -1237,9 +1200,6 @@ END IF
          PRGS(:,:,JK) = PRGS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK))
        END DO
        PINPRG(:,:) = PINPRG(:,:) + ZWSED(:,:,IKB)/XRHOLW/KSPLITR                             
-       PINPRG3D(:,:,:) = PINPRG3D(:,:,:) + ZWSED(:,:,1:IKT)/XRHOLW/KSPLITR                             
-       WHERE (PRGT(:,:,:) > 1.E-04 ) &
-           PSPEEDG(:,:,:) = ZWSED(:,:,1:IKT) / (PRGT(:,:,:) * PRHODREF(:,:,:))
        IF( JN==KSPLITR ) THEN
         PRGS(:,:,:) = PRGS(:,:,:) * ZINVTSTEP
       END IF
@@ -1281,9 +1241,6 @@ END IF
          PRHS(:,:,JK) = PRHS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK))
        END DO
        PINPRH(:,:) = PINPRH(:,:) + ZWSED(:,:,IKB)/XRHOLW/KSPLITR
-       PINPRH3D(:,:,:) = PINPRH3D(:,:,:) + ZWSED(:,:,1:IKT)/XRHOLW/KSPLITR
-       WHERE (PRHT(:,:,:) > 1.E-04 ) &
-           PSPEEDH(:,:,:) = ZWSED(:,:,1:IKT) / (PRHT(:,:,:) * PRHODREF(:,:,:))
        IF( JN==KSPLITR ) THEN
         PRHS(:,:,:) = PRHS(:,:,:) * ZINVTSTEP
       END IF
@@ -1336,21 +1293,12 @@ INTEGER, DIMENSION(SIZE(PRHODREF,1)*SIZE(PRHODREF,2)) :: I1, I2
 REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZCONC3D !  droplet condensation
 !-------------------------------------------------------------------------------
 !
-PSPEEDC(:,:,:) = 0.
-PSPEEDR(:,:,:) = 0.
-PSPEEDS(:,:,:) = 0.
-PSPEEDG(:,:,:) = 0.
-PSPEEDH(:,:,:) = 0.
 IF (OSEDIC) PINPRC (:,:) = 0.
-IF (OSEDIC) PINPRC3D (:,:,:) = 0.
 PINPRR (:,:) = 0.
 PINPRR3D (:,:,:) = 0.
 PINPRS (:,:) = 0.
-PINPRS3D (:,:,:) = 0.
 PINPRG (:,:) = 0.
-PINPRG3D (:,:,:) = 0.
 IF ( KRR == 7 ) PINPRH (:,:) = 0.          
-IF ( KRR == 7 ) PINPRH3D (:,:,:) = 0.   
 ! 
 !
 !*       1. Parameters for cloud sedimentation
@@ -1476,11 +1424,7 @@ END DO
      DO JK = IKTB , IKTE
        PRCS(:,:,JK) = PRCS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK))
      END DO
-     WHERE (PRCT(:,:,:) > 1.E-04 ) &
-              PSPEEDC(:,:,:) = ZWSED(:,:,1:IKT) / (PRCT(:,:,:) * PRHODREF(:,:,:))      
-
      PINPRC(:,:) = ZWSED(:,:,IKB)/XRHOLW                        ! in m/s
-     PINPRC3D(:,:,:) = ZWSED(:,:,1:IKT)/XRHOLW                        ! in m/s
      PRCS(:,:,:) = PRCS(:,:,:) * ZINVTSTEP
  ENDIF
 
@@ -1533,8 +1477,6 @@ END DO
    DO JK = IKTB , IKTE
      PRRS(:,:,JK) = PRRS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK))
    ENDDO
-   WHERE (PRRT(:,:,:) > 1.E-04 ) &
-           PSPEEDR(:,:,:) = ZWSED(:,:,1:IKT) / (PRRT(:,:,:) * PRHODREF(:,:,:)) 
    PINPRR(:,:) = ZWSED(:,:,IKB)/XRHOLW                        ! in m/s
    PINPRR3D(:,:,:) = ZWSED(:,:,1:IKT)/XRHOLW                        ! in m/s
    PRRS(:,:,:) = PRRS(:,:,:) * ZINVTSTEP
@@ -1644,11 +1586,7 @@ END DO
    DO JK = IKTB , IKTE
      PRSS(:,:,JK) = PRSS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK))
    ENDDO
-   WHERE (PRST(:,:,:) > 1.E-04 ) &
-     PSPEEDS(:,:,:) = ZWSED(:,:,1:IKT) / (PRST(:,:,:) * PRHODREF(:,:,:)) 
-
    PINPRS(:,:) = ZWSED(:,:,IKB)/XRHOLW                        ! in m/s
-   PINPRS3D(:,:,:) = ZWSED(:,:,1:IKT)/XRHOLW                        ! in m/s
    PRSS(:,:,:) = PRSS(:,:,:) * ZINVTSTEP
 
 
@@ -1701,11 +1639,7 @@ END DO
    DO JK = IKTB , IKTE
          PRGS(:,:,JK) = PRGS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK))
    ENDDO
-
-   WHERE (PRGT(:,:,:) > 1.E-04 ) &
-     PSPEEDG(:,:,:) = ZWSED(:,:,1:IKT) / (PRGT(:,:,:) * PRHODREF(:,:,:)) 
    PINPRG(:,:) = ZWSED(:,:,IKB)/XRHOLW                        ! in m/s
-   PINPRG3D(:,:,:) = ZWSED(:,:,1:IKT)/XRHOLW                        ! in m/s
    PRGS(:,:,:) = PRGS(:,:,:) * ZINVTSTEP
 
 !
@@ -1756,11 +1690,7 @@ END DO
      DO JK = IKTB , IKTE
        PRHS(:,:,JK) = PRHS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK))
      ENDDO
-
-     WHERE (PRHT(:,:,:) > 1.E-04 ) &
-       PSPEEDH(:,:,:) = ZWSED(:,:,1:IKT) / (PRHT(:,:,:) * PRHODREF(:,:,:)) 
      PINPRH(:,:) = ZWSED(:,:,IKB)/XRHOLW                        ! in m/s
-     PINPRH3D(:,:,:) = ZWSED(:,:,1:IKT)/XRHOLW                        ! in m/s
      PRHS(:,:,:) = PRHS(:,:,:) * ZINVTSTEP
 
  ENDIF
diff --git a/src/MNH/read_desfmn.f90 b/src/MNH/read_desfmn.f90
index 5593a4ab1..c7e9cd869 100644
--- a/src/MNH/read_desfmn.f90
+++ b/src/MNH/read_desfmn.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$ $Date$
+! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/read_desfmn.f90,v $ $Revision: 1.2.2.1.2.1.2.2.10.1.2.4 $ $Date: 2014/02/14 09:15:53 $
 !-----------------------------------------------------------------
 !     ######################
       MODULE MODI_READ_DESFM_n
@@ -190,6 +190,7 @@ END MODULE MODI_READ_DESFM_n
 !!      Modification   04/2010   (M. Leriche) Add aqueous + ice chemistry
 !!      Modification   07/2013   (Bosseur & Filippi) Adds Forefire
 !!      Modification   01/2015   (C. Barthe) Add explicit LNOx
+!!      Modification   2016      (B.VIE) LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -208,7 +209,8 @@ USE MODN_PARAM_n
 USE MODN_PARAM_RAD_n
 USE MODN_PARAM_KAFR_n
 USE MODN_PARAM_MFSHALL_n
-USE MODN_PARAM_ICE
+USE MODN_PARAM_ICE, ONLY : NAM_PARAM_ICE, ZWARM=>LWARM, ZSEDIC=>LSEDIC, &
+                           ZPRISTINE_ICE=>CPRISTINE_ICE, ZSEDIM=>CSEDIM
 USE MODN_LUNIT_n
 USE MODN_LBC_n
 USE MODN_NUDGING_n
@@ -217,8 +219,22 @@ USE MODN_FRC
 USE MODN_BLANK
 USE MODN_CH_SOLVER_n
 USE MODN_CH_MNHC_n
-USE MODN_PARAM_C2R2
-USE MODN_PARAM_C1R3
+USE MODN_PARAM_C2R2, ONLY : HPARAM_CCN_C2R2=>HPARAM_CCN,HINI_CCN_C2R2=>HINI_CCN, &
+                            HTYPE_CCN_C2R2=>HTYPE_CCN,LRAIN_C2R2=>LRAIN, &
+                            LSEDC_C2R2=>LSEDC,LACTIT_C2R2=>LACTIT,XCHEN_C2R2=>XCHEN, &
+                            XKHEN_C2R2=>XKHEN,XMUHEN_C2R2=>XMUHEN, &
+                            XBETAHEN_C2R2=>XBETAHEN,XCONC_CCN_C2R2=>XCONC_CCN, &
+                            XR_MEAN_CCN_C2R2=>XR_MEAN_CCN,XLOGSIG_CCN_C2R2=>XLOGSIG_CCN, &
+                            XFSOLUB_CCN_C2R2=>XFSOLUB_CCN,XACTEMP_CCN_C2R2=>XACTEMP_CCN, &
+                            XALPHAC_C2R2=>XALPHAC,XNUC_C2R2=>XNUC,XALPHAR_C2R2=>XALPHAR, &
+                            XNUR_C2R2=>XNUR,XAERDIFF_C2R2=>XAERDIFF, &
+                            XAERHEIGHT_C2R2=>XAERHEIGHT,NAM_PARAM_C2R2
+USE MODN_PARAM_C1R3, ONLY : XALPHAI_C1R3=>XALPHAI,XNUI_C1R3=>XNUI,XALPHAS_C1R3=>XALPHAS, &
+                            XNUS_C1R3=>XNUS,XALPHAG_C1R3=>XALPHAG,XNUG_C1R3=>XNUG, &
+                            XFACTNUC_DEP_C1R3=>XFACTNUC_DEP, &
+                            XFACTNUC_CON_C1R3=>XFACTNUC_CON,LSEDI_C1R3=>LSEDI, &
+                            LHHONI_C1R3=>LHHONI,CPRISTINE_ICE_C1R3,CHEVRIMED_ICE_C1R3, &
+                            NAM_PARAM_C1R3
 USE MODN_ELEC
 USE MODN_SERIES
 USE MODN_SERIES_n
@@ -235,6 +251,7 @@ USE MODN_CONDSAMP
 USE MODN_LATZ_EDFLX
 USE MODN_2D_FRC
 !
+USE MODN_PARAM_LIMA
 !
 USE MODE_POS
 USE MODE_FM
@@ -452,6 +469,8 @@ IF (KMI == 1) THEN
   IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_PARAM_C2R2)
   CALL POSNAM(ILUDES,'NAM_PARAM_C1R3',GFOUND)
   IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_PARAM_C1R3)
+  CALL POSNAM(ILUDES,'NAM_PARAM_LIMA',GFOUND)
+  IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_PARAM_LIMA)
   CALL POSNAM(ILUDES,'NAM_ELEC',GFOUND)
   IF (GFOUND) READ(UNIT=ILUDES,NML=NAM_ELEC)
   CALL POSNAM(ILUDES,'NAM_SERIES',GFOUND,ILUOUT)
@@ -680,10 +699,15 @@ IF (NVERB >= 10) THEN
       WRITE(UNIT=ILUOUT,NML=NAM_PARAM_C1R3)
     END IF
 !
-    IF (CELEC /= 'NONE') THEN
-      WRITE(UNIT=ILUOUT,FMT="('************ ELEC SCHEME **********************')")
-      WRITE(UNIT=ILUOUT,NML=NAM_ELEC)                                             
+    IF( CCLOUD == 'LIMA' ) THEN
+      WRITE(UNIT=ILUOUT,FMT="('************ LIMA SCHEME **********************')")
+      WRITE(UNIT=ILUOUT,NML=NAM_PARAM_LIMA)
     END IF
+!
+   IF (CELEC /= 'NONE') THEN
+     WRITE(UNIT=ILUOUT,FMT="('************ ELEC SCHEME **********************')")
+     WRITE(UNIT=ILUOUT,NML=NAM_ELEC)                                             
+   END IF
 !    
   END IF
 !
diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90
index 049dab242..112964d0d 100644
--- a/src/MNH/read_exsegn.f90
+++ b/src/MNH/read_exsegn.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/read_exsegn.f90,v $ $Revision: 1.2.2.5.2.4.2.14.2.5.2.4 $
 ! masdev4_8 2008/07/09 16:40:30
 !-----------------------------------------------------------------
 !     ###################### 
@@ -280,6 +280,7 @@ END MODULE MODI_READ_EXSEG_n
 !!      Modification   01/2015   (C. Barthe) add explicit LNOx
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!      M.Leriche 18/12/2015 : bug chimie glace dans prep_real_case
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !!------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -318,8 +319,13 @@ USE MODN_TURB_n
 USE MODN_BLANK
 USE MODN_CH_MNHC_n
 USE MODN_CH_SOLVER_n
-USE MODN_PARAM_C2R2
-USE MODN_PARAM_C1R3
+USE MODN_PARAM_C2R2, ONLY : EPARAM_CCN=>HPARAM_CCN, EINI_CCN=>HINI_CCN, &
+                            WNUC=>XNUC, WALPHAC=>XALPHAC, NAM_PARAM_C2R2
+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
 USE MODN_ELEC
 USE MODN_SERIES
 USE MODN_SERIES_n 
@@ -331,6 +337,7 @@ USE MODN_LATZ_EDFLX
 !
 USE MODD_NSV,NSV_USER_n=>NSV_USER
 USE MODD_DYN
+USE MODD_DYN_n, ONLY : LHORELAX_SVLIMA
 USE MODD_GET_n
 USE MODD_GR_FIELD_n
 !
@@ -421,7 +428,7 @@ INTEGER :: JS,JCI,JI,JSV       ! Loop indexes
 LOGICAL :: GRELAX              
 LOGICAL :: GFOUND              ! Return code when searching namelist
 !
-INTEGER :: IMOMENTS, JMODE, IMODEIDX, JMOM, JSV_NAME
+INTEGER :: IMOMENTS, JMODE, IMODEIDX, JMOM, JSV_NAME, JMOD, I
 !
 !-------------------------------------------------------------------------------
 !
@@ -533,6 +540,8 @@ IF (KMI == 1) THEN
   IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_PARAM_C2R2)
   CALL POSNAM(ILUSEG,'NAM_PARAM_C1R3',GFOUND,ILUOUT)
   IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_PARAM_C1R3)
+  CALL POSNAM(ILUSEG,'NAM_PARAM_LIMA',GFOUND,ILUOUT)
+  IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_PARAM_LIMA)
   CALL POSNAM(ILUSEG,'NAM_ELEC',GFOUND,ILUOUT)
   IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_ELEC)
   CALL POSNAM(ILUSEG,'NAM_SERIES',GFOUND,ILUOUT)
@@ -583,7 +592,7 @@ CALL TEST_NAM_VAR(ILUOUT,'CTEMP_SCHEME',CTEMP_SCHEME,       &
 CALL TEST_NAM_VAR(ILUOUT,'CTURB',CTURB,'NONE','TKEL')
 CALL TEST_NAM_VAR(ILUOUT,'CRAD',CRAD,'NONE','FIXE','ECMW','TOPA')
 CALL TEST_NAM_VAR(ILUOUT,'CCLOUD',CCLOUD,'NONE','REVE','KESS',  &
-                                   'ICE2','ICE3','ICE4','C2R2','C3R5','KHKO')
+      & 'ICE2','ICE3','ICE4','C2R2','C3R5','KHKO','LIMA')
 CALL TEST_NAM_VAR(ILUOUT,'CDCONV',CDCONV,'NONE','KAFR')
 CALL TEST_NAM_VAR(ILUOUT,'CSCONV',CSCONV,'NONE','KAFR','EDKF')
 CALL TEST_NAM_VAR(ILUOUT,'CELEC',CELEC,'NONE','ELE3','ELE4')
@@ -591,8 +600,8 @@ CALL TEST_NAM_VAR(ILUOUT,'CELEC',CELEC,'NONE','ELE3','ELE4')
 CALL TEST_NAM_VAR(ILUOUT,'CAER',CAER,'TANR','TEGE','SURF','NONE')
 CALL TEST_NAM_VAR(ILUOUT,'CAOP',CAOP,'CLIM','EXPL')
 CALL TEST_NAM_VAR(ILUOUT,'CLW',CLW,'RRTM','MORC')
-CALL TEST_NAM_VAR(ILUOUT,'CEFRADL',CEFRADL,'PRES','OCLN','MART','C2R2')
-CALL TEST_NAM_VAR(ILUOUT,'CEFRADI',CEFRADI,'FX40','LIOU','SURI','C3R5')
+CALL TEST_NAM_VAR(ILUOUT,'CEFRADL',CEFRADL,'PRES','OCLN','MART','C2R2','LIMA')
+CALL TEST_NAM_VAR(ILUOUT,'CEFRADI',CEFRADI,'FX40','LIOU','SURI','C3R5','LIMA')
 CALL TEST_NAM_VAR(ILUOUT,'COPWLW',COPWLW,'SAVI','SMSH','LILI','MALA')
 CALL TEST_NAM_VAR(ILUOUT,'COPILW',COPILW,'FULI','EBCU','SMSH','FU98')
 CALL TEST_NAM_VAR(ILUOUT,'COPWSW',COPWSW,'SLIN','FOUQ','MALA')
@@ -639,6 +648,13 @@ IF( CCLOUD == 'C3R5' ) THEN
   CALL TEST_NAM_VAR(ILUOUT,'CHEVRIMED_ICE_C1R3',CHEVRIMED_ICE_C1R3, &
                                                 'GRAU','HAIL')
 END IF
+!
+IF( CCLOUD == 'LIMA' ) THEN
+  CALL TEST_NAM_VAR(ILUOUT,'CPRISTINE_ICE_LIMA',CPRISTINE_ICE_LIMA, &
+                                                'PLAT','COLU','BURO')
+  CALL TEST_NAM_VAR(ILUOUT,'CHEVRIMED_ICE_LIMA',CHEVRIMED_ICE_LIMA, &
+                                                'GRAU','HAIL')
+END IF
 !-------------------------------------------------------------------------------!
 !*       2.    FIRST INITIALIZATIONS
 !              ---------------------
@@ -799,7 +815,7 @@ SELECT CASE ( CCLOUD )
     END IF
 !
   CASE ( 'C2R2','C3R5', 'KHKO' )
-    IF (( HPARAM_CCN == 'XXX') .OR. (HINI_CCN  == 'XXX')) THEN
+    IF (( EPARAM_CCN == 'XXX') .OR. (EINI_CCN  == 'XXX')) THEN
           WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE A 2-MOMENT MICROPHYSICAL ",    &
          &" SCHEME BUT YOU DIDNT FILL CORRECTLY NAM_PARAM_C2R2", &
          &" YOU HAVE TO FILL HPARAM_CCN and HINI_CCN ")')
@@ -886,12 +902,71 @@ SELECT CASE ( CCLOUD )
       WRITE(UNIT=ILUOUT,FMT=*) ' WITH A 2-MOMENT MICROPHYSICAL SCHEME'                     
     END IF
 !
-    IF (LSUBG_COND)  THEN
+   IF ( WALPHAC /= 3.0 .OR. WNUC /= 2.0) THEN
+      WRITE(UNIT=ILUOUT,FMT=9001) KMI
+      WRITE(UNIT=ILUOUT,FMT=*) 'IT IS ADVISED TO USE XALPHAC=3. and XNUC=2.'
+      WRITE(UNIT=ILUOUT,FMT=*) 'FOR STRATOCUMULUS WITH KHKO SCHEME. '
+   END IF
+!
+   IF ( CEFRADL /= 'C2R2') THEN
+      WRITE(UNIT=ILUOUT,FMT=9001) KMI
+      WRITE(UNIT=ILUOUT,FMT=*) ' YOU DID NOT CHOOSE CEFRADL=C2R2 FOR RADIATION'
+      WRITE(UNIT=ILUOUT,FMT=*) ' IT IS ADVISED TO USE CEFRADL=C2R2 '   
+      WRITE(UNIT=ILUOUT,FMT=*) ' WITH A 2-MOMENT MICROPHYSICAL SCHEME'
+   END IF
+!
+  CASE ( 'LIMA')
+    IF ((LACTI .AND. FINI_CCN  == 'XXX')) THEN
+      WRITE(UNIT=ILUOUT,FMT=9001) KMI
+      WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE A 2-MOMENT MICROPHYSICAL ",  &
+           &" SCHEME BUT YOU DIDNT FILL CORRECTLY NAM_PARAM_LIMA",             &
+           &" YOU HAVE TO FILL FINI_CCN ")')
+      STOP
+    END IF
+!
+    IF(LACTI .AND. NMOD_CCN == 0) THEN
+      WRITE(UNIT=ILUOUT,FMT=9001) KMI
+      WRITE(UNIT=ILUOUT,FMT='("ACTIVATION OF AEROSOL PARTICLES IS NOT "    &
+           &"POSSIBLE IF NMOD_CCN HAS VALUE ZERO. YOU HAVE TO SET AN UPPER " &
+           &"VALUE OF NMOD_CCN IN ORDER TO USE LIMA WARM ACTIVATION SCHEME.")') 
+      STOP
+    END IF
+!
+    IF(LNUCL .AND. NMOD_IFN == 0 .AND. (.NOT.LMEYERS)) THEN
+      WRITE(UNIT=ILUOUT,FMT=9001) KMI
+      WRITE(UNIT=ILUOUT,FMT='("NUCLEATION BY DEPOSITION AND CONTACT IS NOT "&
+           &"POSSIBLE IF NMOD_IFN HAS VALUE ZERO. YOU HAVE TO SET AN UPPER"   &
+           &"VALUE OF NMOD_IFN IN ORDER TO USE LIMA COLD NUCLEATION SCHEME.")') 
+    END IF
+!
+    IF (HCLOUD == 'NONE') THEN
+      CGETCLOUD = 'SKIP'
+    ELSE IF (HCLOUD == 'REVE' ) THEN
+      CGETCLOUD = 'INI1'
+    ELSE IF (HCLOUD == 'KESS' ) THEN
+      CGETCLOUD = 'INI2'
+    ELSE IF (HCLOUD == 'ICE3' ) THEN
+      CGETCLOUD = 'INI2'
+    ELSE
+      CGETCLOUD = 'READ' ! This is automatically done
+    END IF
+!
+    IF (LWARM) THEN
+      LUSERV=.TRUE. ; LUSERC=.TRUE. ; LUSERR=.TRUE.
+      LUSERI=.FALSE.; LUSERS=.FALSE. ; LUSERG=.FALSE.; LUSERH=.FALSE.
+    END IF
+!
+    IF (LCOLD) THEN
+      LUSERV=.TRUE. ; LUSERC=.TRUE. ; LUSERR=.TRUE.
+      LUSERI=.TRUE. ; LUSERS=.TRUE. ; LUSERG=.TRUE. ; LUSERH=.TRUE.
+    END IF
+!
+    IF (LSUBG_COND .AND. LCOLD)  THEN
       WRITE(UNIT=ILUOUT,FMT=9003) KMI
       WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE BOTH THE SIMPLE MIXED PHASE'
       WRITE(UNIT=ILUOUT,FMT=*) 'MICROPHYS. SCHEME AND THE SUBGRID COND. SCHEME.'
-      WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE.'
-      WRITE(UNIT=ILUOUT,FMT=*) 'SET LSUBG_COND TO FALSE OR CCLOUD TO "REVE", "KESS" '
+      WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE. SET LSUBG_COND '
+      WRITE(UNIT=ILUOUT,FMT=*) 'TO FALSE OR CCLOUD TO "REVE", "KESS" '
  !callabortstop
       CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP)
       CALL ABORT
@@ -901,15 +976,43 @@ SELECT CASE ( CCLOUD )
     IF ( XALPHAC /= 3.0 .OR. XNUC /= 2.0) THEN
       WRITE(UNIT=ILUOUT,FMT=9001) KMI
       WRITE(UNIT=ILUOUT,FMT=*) 'IT IS ADVISED TO USE XALPHAC=3. and XNUC=2.'
-      WRITE(UNIT=ILUOUT,FMT=*) 'FOR STRATOCUMULUS WITH KHKO SCHEME. '
+      WRITE(UNIT=ILUOUT,FMT=*) 'FOR STRATOCUMULUS. '
     END IF
 !
-    IF ( CEFRADL /= 'C2R2') THEN
+    IF ( CEFRADL /= 'LIMA') THEN
       WRITE(UNIT=ILUOUT,FMT=9001) KMI
-      WRITE(UNIT=ILUOUT,FMT=*) ' YOU DID NOT CHOOSE CEFRADL=C2R2 FOR RADIATION'
-      WRITE(UNIT=ILUOUT,FMT=*) ' IT IS ADVISED TO USE CEFRADL=C2R2 '                       
-      WRITE(UNIT=ILUOUT,FMT=*) ' WITH A 2-MOMENT MICROPHYSICAL SCHEME'                     
+      WRITE(UNIT=ILUOUT,FMT=*) ' YOU DID NOT CHOOSE CEFRADL=LIMA FOR RADIATION'
+      WRITE(UNIT=ILUOUT,FMT=*) ' IT IS ADVISED TO USE CEFRADL=LIMA '
+      WRITE(UNIT=ILUOUT,FMT=*) ' WITH A 2-MOMENT MICROPHYSICAL SCHEME "LIMA"'
     END IF
+
+    IF (LUSECHEM )  THEN
+      WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE BOTH LIMA MICROPHYS. SCHEME AND CHEMISTRY'
+      WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE. SET LUSECHEM '
+      WRITE(UNIT=ILUOUT,FMT=*) 'TO FALSE OR CCLOUD TO "ICE3" '
+ !callabortstop
+      CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP)
+      CALL ABORT
+      STOP
+    END IF 
+    IF (LDUST )  THEN
+      WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE BOTH LIMA MICROPHYS. SCHEME AND DUSTS '
+      WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE. SET LDUST '
+      WRITE(UNIT=ILUOUT,FMT=*) 'TO FALSE OR CCLOUD TO "ICE3" '
+ !callabortstop
+      CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP)
+      CALL ABORT
+      STOP
+    END IF   
+  IF (LSALT )  THEN
+      WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE BOTH LIMA MICROPHYS. SCHEME AND SEA SALTS '
+      WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE. SET LSALT '
+      WRITE(UNIT=ILUOUT,FMT=*) 'TO FALSE OR CCLOUD TO "ICE3" '
+ !callabortstop
+      CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP)
+      CALL ABORT
+      STOP
+    END IF 
 !
 END SELECT
 !
@@ -1021,7 +1124,8 @@ DO JSV = 1,NSV
  LUSESV(JSV,KMI) = .TRUE.
 END DO
 !
-IF ( CAOP=='EXPL' .AND. .NOT.LDUST .AND. .NOT.LORILAM .AND. .NOT.LSALT) THEN
+IF ( CAOP=='EXPL' .AND. .NOT.LDUST .AND. .NOT.LORILAM          &
+                  .AND. .NOT.LSALT .AND. .NOT.(CCLOUD=='LIMA') ) THEN
       WRITE(UNIT=ILUOUT,FMT=9001) KMI
       WRITE(UNIT=ILUOUT,FMT=*) ' YOU WANT TO USE EXPLICIT AEROSOL OPTICAL '       
       WRITE(UNIT=ILUOUT,FMT=*) 'PROPERTIES BUT YOU DONT HAVE DUST OR '            
@@ -1347,6 +1451,21 @@ IF (CCLOUD == 'C3R5') THEN
   END IF
 END IF
 !
+! LIMA SV case
+!
+IF (CCLOUD == 'LIMA') THEN
+  IF (HCLOUD == 'LIMA') THEN
+    CGETSVT(NSV_LIMA_BEG:NSV_LIMA_END)='READ'
+!!JPP    IF(HSTORAGE_TYPE=='TT') CGETSVT(NSV_LIMA_BEG:NSV_LIMA_END)='INIT'
+  ELSE
+    WRITE(UNIT=ILUOUT,FMT=9001) KMI
+    WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR LIMA &
+           & SCHEME IN INITIAL FMFILE",/,&
+           & "THE LIMA VARIABLES HAVE BEEN INITIALIZED TO ZERO ")') 
+    CGETSVT(NSV_LIMA_BEG:NSV_LIMA_END)='INIT'
+  END IF
+END IF
+!
 ! Electrical SV case
 !
 IF (CELEC /= 'NONE') THEN 
@@ -2144,6 +2263,13 @@ IF (CCLOUD/='C3R5' .AND. LHORELAX_SVC1R3) THEN
   WRITE(ILUOUT,FMT=*) 'THEREFORE LHORELAX_SVC1R3=FALSE'
 END IF
 !
+IF (CCLOUD/='LIMA' .AND. LHORELAX_SVLIMA) THEN
+  LHORELAX_SVLIMA=.FALSE.
+  WRITE(UNIT=ILUOUT,FMT=9002) KMI
+  WRITE(ILUOUT,FMT=*) 'YOU WANT TO RELAX LIMA FIELD BUT IT DOES NOT EXIST.'
+  WRITE(ILUOUT,FMT=*) 'THEREFORE LHORELAX_SVLIMA=FALSE'
+END IF
+!
 IF (CELEC(1:3) /= 'ELE' .AND. LHORELAX_SVELEC) THEN
   LHORELAX_SVELEC=.FALSE.
   WRITE(UNIT=ILUOUT,FMT=9002) KMI
@@ -2242,6 +2368,7 @@ END IF
 !
 IF ( (.NOT. LHORELAX_UVWTH) .AND. (.NOT.(ANY(LHORELAX_SV))) .AND.  &
      (.NOT. LHORELAX_SVC2R2).AND. (.NOT. LHORELAX_SVC1R3)   .AND.  &
+     (.NOT. LHORELAX_SVLIMA).AND.                                  &
      (.NOT. LHORELAX_SVELEC).AND. (.NOT. LHORELAX_SVCHEM)   .AND.  &
      (.NOT. LHORELAX_SVLG)  .AND. (.NOT. LHORELAX_SVPP)     .AND.  &
      (.NOT. LHORELAX_SVCS)  .AND.                                  &
@@ -2267,6 +2394,7 @@ IF ((LHORELAX_UVWTH  .OR. LHORELAX_SVPP   .OR.  &
      LHORELAX_SVFF   .OR.                       &
 #endif
      LHORELAX_SVC2R2 .OR. LHORELAX_SVC1R3 .OR.  &
+     LHORELAX_SVLIMA .OR.                       &
      LHORELAX_SVELEC .OR. LHORELAX_SVCHEM .OR.  &
      LHORELAX_SVLG   .OR. ANY(LHORELAX_SV) .OR. &
      LHORELAX_RV     .OR. LHORELAX_RC .OR.      &
@@ -2281,6 +2409,7 @@ IF ((LHORELAX_UVWTH  .OR. LHORELAX_SVPP   .OR.  &
   WRITE(ILUOUT,FMT=*) "LHORELAX_UVWTH=",LHORELAX_UVWTH
   WRITE(ILUOUT,FMT=*) "LHORELAX_SVC2R2=",LHORELAX_SVC2R2
   WRITE(ILUOUT,FMT=*) "LHORELAX_SVC1R3=",LHORELAX_SVC1R3
+  WRITE(ILUOUT,FMT=*) "LHORELAX_SVLIMA=",LHORELAX_SVLIMA
   WRITE(ILUOUT,FMT=*) "LHORELAX_SVELEC=",LHORELAX_SVELEC
   WRITE(ILUOUT,FMT=*) "LHORELAX_SVCHEM=",LHORELAX_SVCHEM
   WRITE(ILUOUT,FMT=*) "LHORELAX_SVCHIC=",LHORELAX_SVCHIC
@@ -2314,6 +2443,7 @@ IF ((LHORELAX_UVWTH  .OR. LHORELAX_SVPP  .OR.   &
      LHORELAX_SVFF   .OR.                       &
 #endif
      LHORELAX_SVC2R2 .OR. LHORELAX_SVC1R3 .OR.  &
+     LHORELAX_SVLIMA .OR.                       &
      LHORELAX_SVELEC .OR. LHORELAX_SVCHEM .OR.  &
      LHORELAX_SVLG   .OR. ANY(LHORELAX_SV) .OR. &
      LHORELAX_RV     .OR. LHORELAX_RC .OR.      &
diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90
index e95c80676..ce8157e6f 100644
--- a/src/MNH/read_field.f90
+++ b/src/MNH/read_field.f90
@@ -2,7 +2,7 @@
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 !MNH_LIC for details. version 1.
-!     ######spl
+!     ######################
       MODULE MODI_READ_FIELD
 !     ######################
 !
@@ -230,6 +230,7 @@ END MODULE MODI_READ_FIELD
 !!          Bosseur & Filippi 07/13 Adds Forefire
 !!          M. Leriche  11/14     correct bug in pH initialization
 !!          C.Lac       12/14     correction for reproducibility START/RESTA
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !!-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -257,6 +258,11 @@ USE MODD_LG,              ONLY: CLGNAMES
 USE MODD_ELEC_DESCR,      ONLY: CELECNAMES
 USE MODD_PARAM_C2R2,      ONLY: LSUPSAT
 !
+USE MODD_PARAM_LIMA     , ONLY: NMOD_CCN, LSCAV, LAERO_MASS,                &
+                                NMOD_IFN, NMOD_IMM, NINDICE_CCN_IMM, LHHONI
+USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES, CAERO_MASS
+USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES
+!
 USE MODE_FMREAD
 USE MODI_INI_LS
 USE MODI_INI_LB
@@ -391,6 +397,9 @@ CHARACTER (LEN=2)      :: YSTORAGE_TYPE
 REAL, DIMENSION(KIU)        :: X1D    ! forcing working arrays
 REAL, DIMENSION(KIU,KJU,KKU):: XDTH3D,XDRV3D
 !
+CHARACTER(LEN=2)  :: INDICE
+INTEGER           :: I
+!
 !-------------------------------------------------------------------------------
 !
 !*       1.    INITIALIZATION
@@ -604,7 +613,7 @@ SELECT CASE(HGETCIT)             ! ice concentration
     PCIT(:,:,:)=0.
 END SELECT
 !
-!             Scalar Variables Reading : Users, C2R2, C1R3, ELEC, Chemical SV
+!  Scalar Variables Reading : Users, C2R2, C1R3, LIMA, ELEC, Chemical SV
 !
 YDIR='XY'
 ISV= SIZE(PSVT,4)
@@ -654,6 +663,67 @@ DO JSV = NSV_C1R3BEG,NSV_C1R3END
   END SELECT
 END DO
 !
+! LIMA variables
+!
+DO JSV = NSV_LIMA_BEG,NSV_LIMA_END
+  SELECT CASE(HGETSVT(JSV))
+  CASE ('READ')
+! Nc
+    IF (JSV .EQ. NSV_LIMA_NC) THEN
+      YRECFM=TRIM(CLIMA_WARM_NAMES(1))//'T'
+    END IF
+! Nr
+    IF (JSV .EQ. NSV_LIMA_NR) THEN
+      YRECFM=TRIM(CLIMA_WARM_NAMES(2))//'T'
+    END IF
+! N CCN free
+    IF (JSV .GE. NSV_LIMA_CCN_FREE .AND. JSV .LT. NSV_LIMA_CCN_ACTI) THEN
+      WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_CCN_FREE + 1)
+      YRECFM=TRIM(CLIMA_WARM_NAMES(3))//INDICE//'T'
+    END IF
+! N CCN acti
+    IF (JSV .GE. NSV_LIMA_CCN_ACTI .AND. JSV .LT. NSV_LIMA_CCN_ACTI + NMOD_CCN) THEN
+      WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_CCN_ACTI + 1)
+      YRECFM=TRIM(CLIMA_WARM_NAMES(4))//INDICE//'T'
+    END IF
+! Scavenging
+    IF (JSV .EQ. NSV_LIMA_SCAVMASS) THEN
+      YRECFM=TRIM(CAERO_MASS(1))//'T'
+    END IF
+! Ni
+    IF (JSV .EQ. NSV_LIMA_NI) THEN
+      YRECFM=TRIM(CLIMA_COLD_NAMES(1))//'T'
+    END IF
+! N IFN free
+    IF (JSV .GE. NSV_LIMA_IFN_FREE .AND. JSV .LT. NSV_LIMA_IFN_NUCL) THEN
+      WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1)
+      YRECFM=TRIM(CLIMA_COLD_NAMES(2))//INDICE//'T'
+    END IF
+! N IFN nucl
+    IF (JSV .GE. NSV_LIMA_IFN_NUCL .AND. JSV .LT. NSV_LIMA_IFN_NUCL + NMOD_IFN) THEN
+      WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_NUCL + 1)
+      YRECFM=TRIM(CLIMA_COLD_NAMES(3))//INDICE//'T'
+    END IF
+! N IMM nucl
+    I = 0
+    IF (JSV .GE. NSV_LIMA_IMM_NUCL .AND. JSV .LT. NSV_LIMA_IMM_NUCL + NMOD_IMM) THEN
+    I = I + 1
+    WRITE(INDICE,'(I2.2)')(NINDICE_CCN_IMM(I))
+    YRECFM=TRIM(CLIMA_COLD_NAMES(4))//INDICE//'T'
+  END IF
+! Hom. freez. of CCN
+  IF (JSV .EQ. NSV_LIMA_HOM_HAZE) THEN
+    YRECFM=TRIM(CLIMA_COLD_NAMES(5))//'T'
+  END IF
+!
+  CALL FMREAD(HINIFILE,YRECFM,HLUOUT,YDIR,Z3D,IGRID,ILENCH,YCOMMENT,IRESP)
+!
+    PSVT(:,:,:,JSV) = Z3D(:,:,:)
+  CASE ('INIT')
+    PSVT(:,:,:,JSV) = 0.
+  END SELECT
+END DO
+!
 DO JSV = NSV_ELECBEG,NSV_ELECEND
   SELECT CASE(HGETSVT(JSV))
   CASE ('READ')
diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90
index b463a9c4b..721d2902e 100644
--- a/src/MNH/resolved_cloud.f90
+++ b/src/MNH/resolved_cloud.f90
@@ -2,7 +2,7 @@
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 !MNH_LIC for details. version 1.
-! $Source$
+! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/resolved_cloud.f90,v $
 !-----------------------------------------------------------------
 !     ##########################
       MODULE MODI_RESOLVED_CLOUD
@@ -19,10 +19,9 @@ INTERFACE
                                   PCIT, OSEDIC, OACTIT, OSEDC, OSEDI,                  &
                                   ORAIN, OWARM, OHHONI, OCONVHG,                       &
                                   PCF_MF,PRC_MF, PRI_MF,                               &
-                                  PINPRC,PINPRC3D,PINPRR,PINPRR3D, PEVAP3D,            &
-                                  PINPRS,PINPRS3D,PINPRG,PINPRG3D,PINPRH,PINPRH3D,     &
+                                  PINPRC,PINPRR,PINPRR3D, PEVAP3D,            &
+                                  PINPRS,PINPRG,PINPRH,     &
                                   PSOLORG,PMI,                                         &
-                                  PSPEEDC, PSPEEDR, PSPEEDS, PSPEEDG, PSPEEDH,         &
                                   PSEA,PTOWN          )   
 !
 CHARACTER(LEN=4),         INTENT(IN)   :: HCLOUD   ! kind of cloud
@@ -117,17 +116,8 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PEVAP3D  ! evap profile
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRS! Snow instant precip
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRG! Graupel instant precip
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRH! Hail instant precip
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRC3D ! sed flux of precip
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRS3D ! sed flux of precip
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRG3D ! sed flux of precip
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRH3D ! sed flux of precip
 REAL, DIMENSION(:,:,:,:), INTENT(IN)    :: PSOLORG ![%] solubility fraction of soa
 REAL, DIMENSION(:,:,:,:), INTENT(IN)    :: PMI !
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDC ! Cloud sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDR ! Rain sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDS ! Snow sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDG ! Graupel sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDH ! Hail sedimentation speed
 REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA      ! Land Sea mask
 REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN      ! Town fraction
 !
@@ -147,10 +137,9 @@ END MODULE MODI_RESOLVED_CLOUD
                                   PCIT, OSEDIC, OACTIT, OSEDC, OSEDI,                  &
                                   ORAIN, OWARM, OHHONI, OCONVHG,                       &
                                   PCF_MF,PRC_MF, PRI_MF,                               &
-                                  PINPRC,PINPRC3D,PINPRR,PINPRR3D, PEVAP3D,            &
-                                  PINPRS,PINPRS3D,PINPRG,PINPRG3D,PINPRH,PINPRH3D,     &
+                                  PINPRC,PINPRR,PINPRR3D, PEVAP3D,            &
+                                  PINPRS,PINPRG,PINPRH,     &
                                   PSOLORG,PMI,                                         &
-                                  PSPEEDC, PSPEEDR, PSPEEDS, PSPEEDG, PSPEEDH,         &
                                   PSEA,PTOWN          )   
 !     ##########################################################################
 !
@@ -253,6 +242,7 @@ END MODULE MODI_RESOLVED_CLOUD
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!      M.Mazoyer : 04/2016 : Temperature radiative tendency used for  
 !!                            activation by cooling (OACTIT)
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -272,6 +262,8 @@ USE MODD_CH_AEROSOL , ONLY : LORILAM
 USE MODD_DUST , ONLY : LDUST
 USE MODD_SALT , ONLY : LSALT
 !
+USE MODD_PARAM_LIMA, ONLY : LCOLD, XCONC_CCN_TOT, NMOD_CCN, NMOD_IFN, NMOD_IMM
+!
 USE MODI_SLOW_TERMS
 USE MODI_FAST_TERMS
 USE MODI_ICE_ADJUST
@@ -285,6 +277,10 @@ USE MODI_SHUMAN
 USE MODI_BUDGET
 USE MODI_GET_HALO
 !
+USE MODI_LIMA_WARM
+USE MODI_LIMA_COLD
+USE MODI_LIMA_MIXED
+USE MODI_LIMA_ADJUST
 !
 IMPLICIT NONE
 !
@@ -383,17 +379,8 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PEVAP3D  ! evap profile
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRS! Snow instant precip
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRG! Graupel instant precip
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRH! Hail instant precip
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRC3D ! sed flux of precip
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRS3D ! sed flux of precip
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRG3D ! sed flux of precip
-REAL, DIMENSION(:,:,:), INTENT(INOUT)   :: PINPRH3D ! sed flux of precip
 REAL, DIMENSION(:,:,:,:), INTENT(IN)    :: PSOLORG ![%] solubility fraction of soa
 REAL, DIMENSION(:,:,:,:), INTENT(IN)    :: PMI !
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDC ! Cloud sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDR ! Rain sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDS ! Snow sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDG ! Graupel sedimentation speed
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSPEEDH ! Hail sedimentation speed
 REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PSEA      ! Land Sea mask
 REAL, DIMENSION(:,:), OPTIONAL, INTENT(IN) :: PTOWN      ! Town fraction
 !
@@ -409,7 +396,8 @@ INTEGER :: IKB           !
 INTEGER :: IKE           !
 INTEGER :: IKU
 INTEGER :: IINFO_ll      ! return code of parallel routine
-INTEGER :: JK,JI
+INTEGER :: JK,JI,JL
+INTEGER :: I, J, K
 !
 !
 !
@@ -430,6 +418,8 @@ INTEGER                               :: ISVEND ! last  scalar index for microph
 REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZSVT   ! scalar variable for microphysics only
 REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZSVS   ! scalar tendency for microphysics only
 !
+INTEGER                               :: JMOD, JMOD_IFN
+!
 !------------------------------------------------------------------------------
 !
 !*       1.     PRELIMINARY COMPUTATIONS
@@ -446,12 +436,15 @@ IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'KHKO') THEN
 ELSE IF (HCLOUD == 'C3R5') THEN
   ISVBEG = NSV_C2R2BEG
   ISVEND = NSV_C1R3END
+ELSE IF (HCLOUD == 'LIMA') THEN
+  ISVBEG = NSV_LIMA_BEG
+  ISVEND = NSV_LIMA_END
 ELSE
   ISVBEG = 0
   ISVEND = 0
 END IF
 !
-IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'C3R5' .OR. HCLOUD == 'KHKO') THEN
+IF (HCLOUD=='C2R2' .OR. HCLOUD=='C3R5' .OR. HCLOUD=='KHKO' .OR. HCLOUD=='LIMA') THEN
   ALLOCATE(ZSVT(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3),ISVEND - ISVBEG + 1))
   ALLOCATE(ZSVS(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3),ISVEND - ISVBEG + 1))
   ZSVT(:,:,:,:) = PSVT(:,:,:,ISVBEG:ISVEND)
@@ -466,7 +459,7 @@ DO JRR = 1,KRR
   PRS(:,:,:,JRR)  = PRS(:,:,:,JRR) / PRHODJ(:,:,:)
 END DO
 !
-IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'C3R5' .OR. HCLOUD == 'KHKO') THEN
+IF (HCLOUD=='C2R2' .OR. HCLOUD=='C3R5' .OR. HCLOUD=='KHKO' .OR. HCLOUD=='LIMA') THEN
   DO JSV = 1,SIZE(ZSVS,4)
     ZSVS(:,:,:,JSV) = ZSVS(:,:,:,JSV) / PRHODJ(:,:,:)
   ENDDO
@@ -493,7 +486,7 @@ IF(LEAST_ll()  .AND. HLBCX(2) /= 'CYCL')  PRT(IIE+1:,:,:,2:) = 0.0
 IF(LSOUTH_ll() .AND. HLBCY(1) /= 'CYCL')  PRT(:,:IJB-1,:,2:) = 0.0
 IF(LNORTH_ll() .AND. HLBCY(2) /= 'CYCL')  PRT(:,IJE+1:,:,2:) = 0.0
 !
-IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'C3R5' .OR. HCLOUD == 'KHKO') THEN
+IF (HCLOUD=='C2R2' .OR. HCLOUD=='C3R5' .OR. HCLOUD=='KHKO' .OR. HCLOUD=='LIMA') THEN
 DO JI=1,JPHEXT
   ZSVS(JI,:,:,:) = ZSVS(IIB,:,:,:)
   ZSVS(IIE+JI,:,:,:) = ZSVS(IIE,:,:,:)
@@ -520,7 +513,8 @@ PRS(:,:,IKE+1,:) = PRS(:,:,IKE,:)
 PRT(:,:,IKB-1,:) = PRT(:,:,IKB,:)
 PRT(:,:,IKE+1,:) = PRT(:,:,IKE,:)
 !
-IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'C3R5' .OR. HCLOUD == 'KHKO') THEN
+IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'C3R5' .OR. HCLOUD == 'KHKO' &
+                                           .OR. HCLOUD == 'LIMA') THEN
   ZSVS(:,:,IKB-1,:) = ZSVS(:,:,IKB,:)
   ZSVS(:,:,IKE+1,:) = ZSVS(:,:,IKE,:)
   ZSVT(:,:,IKB-1,:) = ZSVT(:,:,IKB,:)
@@ -543,8 +537,8 @@ ZCPH(:,:,:)=XCPD +XCPV*PRT(:,:,:,1)
 !
 !*       3.1    Non local correction for precipitating species (Rood 87)
 !
-IF (HCLOUD == 'KESS' .OR. HCLOUD == 'ICE3'                       &
-    .OR.  HCLOUD == 'C2R2' .OR. HCLOUD == 'C3R5' .OR. HCLOUD == 'KHKO') THEN
+IF (HCLOUD == 'KESS' .OR. HCLOUD == 'ICE3' .OR. HCLOUD == 'C2R2' .OR. &
+    HCLOUD == 'C3R5' .OR. HCLOUD == 'KHKO' .OR. HCLOUD=='LIMA' ) THEN
 !
   DO JRR = 3,KRR
     SELECT CASE (JRR)
@@ -672,6 +666,62 @@ SELECT CASE ( HCLOUD )
       PSVS(:,:,:,2) = 0.0
     END WHERE
     PSVS(:,:,:,:) = MAX( 0.0,PSVS(:,:,:,:) )
+!
+   CASE('LIMA')   
+! Correction of CCN concentrations where rc<0 or Nc<0
+     IF (OWARM) THEN
+        DO JMOD = 1, NMOD_CCN 
+           WHERE (PRS(:,:,:,2) < 0. .OR. ZSVS(:,:,:,NSV_LIMA_NC) < 0.) ! rc or Nc < 0.
+              ZSVS(:,:,:,NSV_LIMA_CCN_FREE+JMOD-1) =               &
+                   ZSVS(:,:,:,NSV_LIMA_CCN_FREE+JMOD-1) + & ! NfreeCN = NfreeCN+
+                   ZSVS(:,:,:,NSV_LIMA_CCN_ACTI+JMOD-1)     ! N_activated_CCN
+              ZSVS(:,:,:,NSV_LIMA_CCN_ACTI+JMOD-1) = 0.0             ! N_activated_CCN=0
+           END WHERE
+        ENDDO
+     END IF
+! Correction where rc<0
+     IF (OWARM) THEN
+        WHERE (PRS(:,:,:,2) < 0. .OR. ZSVS(:,:,:,NSV_LIMA_NC) < 0.)
+           PRS(:,:,:,1) = PRS(:,:,:,1) + PRS(:,:,:,2)
+           PTHS(:,:,:) = PTHS(:,:,:) - PRS(:,:,:,2) * ZLV(:,:,:) /  &
+                ZCPH(:,:,:) / ZEXN(:,:,:)
+           PRS(:,:,:,2)  = 0.0
+           ZSVS(:,:,:,NSV_LIMA_NC) = 0.0
+        END WHERE
+     END IF
+! Correction where rr<0
+     IF (OWARM .AND. ORAIN) THEN
+        WHERE (PRS(:,:,:,3) < 0. .OR. ZSVS(:,:,:,NSV_LIMA_NR) < 0.)
+           PRS(:,:,:,1) = PRS(:,:,:,1) + PRS(:,:,:,3)
+           PTHS(:,:,:) = PTHS(:,:,:) - PRS(:,:,:,3) * ZLV(:,:,:) /  &
+                ZCPH(:,:,:) / ZEXN(:,:,:)
+           PRS(:,:,:,3)  = 0.0
+           ZSVS(:,:,:,NSV_LIMA_NR) = 0.0
+        END WHERE
+     END IF
+! Correction of IFN concentrations where ri<0 or Ni<0
+     IF (LCOLD) THEN
+        DO JMOD = 1, NMOD_IFN 
+           WHERE (PRS(:,:,:,4) < 0. .OR. ZSVS(:,:,:,NSV_LIMA_NI) < 0.) ! ri or Ni < 0.
+              ZSVS(:,:,:,NSV_LIMA_IFN_FREE+JMOD-1) =               &
+                   ZSVS(:,:,:,NSV_LIMA_IFN_FREE+JMOD-1) + &
+                   ZSVS(:,:,:,NSV_LIMA_IFN_NUCL+JMOD-1)     ! N_IF =N_IF+N_IN
+              ZSVS(:,:,:,NSV_LIMA_IFN_NUCL+JMOD-1) = 0.0             ! N_IN =0.
+           END WHERE
+        ENDDO
+     END IF
+! Correction where ri<0
+     IF (LCOLD) THEN
+        WHERE (PRS(:,:,:,4) < 0. .OR. ZSVS(:,:,:,NSV_LIMA_NI) < 0.)
+           PRS(:,:,:,1) = PRS(:,:,:,1) + PRS(:,:,:,4)
+           PTHS(:,:,:) = PTHS(:,:,:) - PRS(:,:,:,4) * ZLS(:,:,:) /  &
+                ZCPH(:,:,:) / ZEXN(:,:,:)
+           PRS(:,:,:,4)  = 0.0
+           ZSVS(:,:,:,NSV_LIMA_NI) = 0.0
+        END WHERE
+     END IF
+!
+     ZSVS(:,:,:,:) = MAX( 0.0,ZSVS(:,:,:,:) )
 !
 END SELECT
 !
@@ -689,6 +739,23 @@ IF (LBUDGET_RI) CALL BUDGET (PRS(:,:,:,4) * PRHODJ(:,:,:) ,9,'NEGA_BU_RRI')
 IF (LBUDGET_RS) CALL BUDGET (PRS(:,:,:,5) * PRHODJ(:,:,:),10,'NEGA_BU_RRS')
 IF (LBUDGET_RG) CALL BUDGET (PRS(:,:,:,6) * PRHODJ(:,:,:),11,'NEGA_BU_RRG')
 IF (LBUDGET_RH) CALL BUDGET (PRS(:,:,:,7) * PRHODJ(:,:,:),12,'NEGA_BU_RRH')
+IF (LBUDGET_SV) THEN
+   CALL BUDGET (ZSVS(:,:,:,NSV_LIMA_NC) * PRHODJ(:,:,:),12+NSV_LIMA_NC,'NEGA_BU_RSV')
+   CALL BUDGET (ZSVS(:,:,:,NSV_LIMA_NR) * PRHODJ(:,:,:),12+NSV_LIMA_NR,'NEGA_BU_RSV')
+   CALL BUDGET (ZSVS(:,:,:,NSV_LIMA_NI) * PRHODJ(:,:,:),12+NSV_LIMA_NI,'NEGA_BU_RSV')
+   IF (NMOD_CCN.GE.1) THEN
+      DO JL=1, NMOD_CCN
+         CALL BUDGET ( ZSVS(:,:,:,NSV_LIMA_CCN_FREE+JL-1)* &
+              PRHODJ(:,:,:),12+NSV_LIMA_CCN_FREE+JL-1,'NEGA_BU_RSV') 
+      END DO
+   END IF
+   IF (NMOD_IFN.GE.1) THEN
+      DO JL=1, NMOD_IFN
+         CALL BUDGET ( ZSVS(:,:,:,NSV_LIMA_IFN_FREE+JL-1)* &
+              PRHODJ(:,:,:),12+NSV_LIMA_IFN_FREE+JL-1,'NEGA_BU_RSV') 
+      END DO
+   END IF
+END IF
 !
 
 !*       3.4    Limitations of Na and Nc to the CCN max number concentration
@@ -806,9 +873,8 @@ SELECT CASE ( HCLOUD )
                     PRT(:,:,:,5), PRT(:,:,:,6),                          &
                     PTHS, PRS(:,:,:,1), PRS(:,:,:,2), PRS(:,:,:,3),      &
                     PRS(:,:,:,4), PRS(:,:,:,5), PRS(:,:,:,6),            &
-                    PINPRC,PINPRC3D,PINPRR, PINPRR3D, PEVAP3D,           &
-                    PINPRS,PINPRS3D, PINPRG,PINPRG3D, PSIGS,             &
-                    PSPEEDC, PSPEEDR, PSPEEDS, PSPEEDG, PSPEEDH,         &
+                    PINPRC,PINPRR, PINPRR3D, PEVAP3D,           &
+                    PINPRS, PINPRG, PSIGS,             &
                     PSEA,PTOWN)
 !
 !*       9.2    Perform the saturation adjustment over cloud ice and cloud water
@@ -846,11 +912,10 @@ SELECT CASE ( HCLOUD )
                     PRT(:,:,:,5), PRT(:,:,:,6),                           &
                     PTHS, PRS(:,:,:,1), PRS(:,:,:,2), PRS(:,:,:,3),       &
                     PRS(:,:,:,4), PRS(:,:,:,5), PRS(:,:,:,6),             &
-                    PINPRC,PINPRC3D, PINPRR, PINPRR3D, PEVAP3D,           &
-                    PINPRS,PINPRS3D, PINPRG,PINPRG3D, PSIGS,              &
-                    PSPEEDC, PSPEEDR, PSPEEDS, PSPEEDG, PSPEEDH,          &
+                    PINPRC, PINPRR, PINPRR3D, PEVAP3D,           &
+                    PINPRS, PINPRG, PSIGS,              &
                     PSEA, PTOWN,                                          &
-                    PRT(:,:,:,7),  PRS(:,:,:,7), PINPRH,PINPRH3D,OCONVHG  )
+                    PRT(:,:,:,7),  PRS(:,:,:,7), PINPRH,OCONVHG  )
 
 !
 !*       10.2   Perform the saturation adjustment over cloud ice and cloud water
@@ -917,6 +982,47 @@ SELECT CASE ( HCLOUD )
                        PINUCS=ZSVS(:,:,:,5), PCIS=ZSVS(:,:,:,4),               &
                        PTHS=PTHS, PSRCS=PSRCS, PCLDFR=PCLDFR                   )
 !
+!
+!*       12.    2-MOMENT MIXED-PHASE MICROPHYSICAL SCHEME LIMA
+!               --------------------------------------------------------------
+!
+!
+!*       12.1   Compute the explicit microphysical sources
+!
+  CASE ('LIMA')
+!
+    IF (OWARM) CALL LIMA_WARM(OACTIT, OSEDC, ORAIN, KSPLITR, PTSTEP, KMI,   &
+                              HFMFILE, HLUOUT, OCLOSE_OUT, KRR, PZZ, PRHODJ,&
+                              PRHODREF, PEXNREF, PW_ACT, PPABSM, PPABST,    &
+                              PTHM, PRCM,                                   &
+                              PTHT, PRT, ZSVT,                              &
+                              PTHS, PRS, ZSVS,                              &
+                              PINPRC, PINPRR, PINPRR3D, PEVAP3D    )
+!
+IF (LCOLD) CALL LIMA_COLD(OSEDI, OHHONI, KSPLITG, PTSTEP, KMI,               &
+                          HFMFILE, HLUOUT, OCLOSE_OUT, KRR, PZZ, PRHODJ,     &
+                          PRHODREF, PEXNREF, PPABST, PW_ACT,                 &
+                          PTHM, PPABSM,                                      &
+                          PTHT, PRT, ZSVT,                                   &
+                          PTHS, PRS, ZSVS,                                   &
+                          PINPRS, PINPRG, PINPRH)
+!
+IF (OWARM .AND. LCOLD) CALL LIMA_MIXED(OSEDI, OHHONI, KSPLITG, PTSTEP, KMI,    &
+                                 HFMFILE, HLUOUT, OCLOSE_OUT, KRR, PZZ, PRHODJ,&
+                                 PRHODREF, PEXNREF, PPABST, PW_ACT,            &
+                                 PTHM, PPABSM,                                 &
+                                 PTHT, PRT, ZSVT,                              &
+                                 PTHS, PRS, ZSVS                               )
+!
+!
+!*       12.2   Perform the saturation adjustment
+!
+CALL LIMA_ADJUST(KRR, KMI, HFMFILE, HLUOUT, HRAD,                  &
+                 HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP,         &
+                 PRHODREF, PRHODJ, PEXNREF, PPABSM, PSIGS, PPABST, &
+                 PRT, PRS, ZSVT, ZSVS,                             &
+                 PTHS, PSRCS, PCLDFR                               )
+!
 END SELECT
 !
 IF ( (HCLOUD == 'KHKO') .OR. (HCLOUD == 'C2R2') ) THEN
@@ -942,7 +1048,7 @@ END IF
 !-------------------------------------------------------------------------------
 !
 !
-!*      12.     SWITCH BACK TO THE PROGNOSTIC VARIABLES
+!*      13.     SWITCH BACK TO THE PROGNOSTIC VARIABLES
 !               ---------------------------------------
 !
 PTHS(:,:,:) = PTHS(:,:,:) * PRHODJ(:,:,:)
@@ -951,7 +1057,7 @@ DO JRR = 1,KRR
   PRS(:,:,:,JRR)  = PRS(:,:,:,JRR) * PRHODJ(:,:,:)
 END DO
 !
-IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'C3R5' .OR. HCLOUD == 'KHKO') THEN
+IF (HCLOUD=='C2R2' .OR. HCLOUD=='C3R5' .OR. HCLOUD=='KHKO' .OR. HCLOUD=='LIMA') THEN
   DO JSV = 1,SIZE(ZSVS,4)
     PSVS(:,:,:,JSV+ISVBEG-1) = ZSVS(:,:,:,JSV) * PRHODJ(:,:,:)
   ENDDO
diff --git a/src/MNH/spawn_field2.f90 b/src/MNH/spawn_field2.f90
index a0586ac5c..ae8476c64 100644
--- a/src/MNH/spawn_field2.f90
+++ b/src/MNH/spawn_field2.f90
@@ -145,6 +145,7 @@ END MODULE MODI_SPAWN_FIELD2
 !!      Modification 25/02/2015 (M.Moge) correction of the parallelization attempted by M.Faivre
 !!      Modification 15/04/2016 (P.Tulet) bug allocation ZSVT_C
 !!                   29/04/2016 (J.Escobar) bug in use of ZSVT_C in SET_LSFIELD_1WAY_ll        
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -181,6 +182,11 @@ USE MODE_THERMO
 USE MODE_MODELN_HANDLER
 USE MODE_IO_ll, ONLY: UPCASE
 !
+USE MODD_PARAM_LIMA     , ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM, NINDICE_CCN_IMM,&
+                                 LSCAV, LAERO_MASS, LHHONI
+USE MODD_PARAM_LIMA_COLD, ONLY : CLIMA_COLD_NAMES
+USE MODD_PARAM_LIMA_WARM, ONLY : CLIMA_WARM_NAMES, CAERO_MASS
+!
 USE MODD_ADVFRC_n 
 USE MODD_RELFRC_n 
 USE MODD_2D_FRC
@@ -267,9 +273,14 @@ LOGICAL :: GUSERV
 !
 INTEGER             :: IGRID,ILENCH   !   File
 CHARACTER (LEN=16)  :: YRECFM         ! management
+CHARACTER (LEN=16)  :: YRECFM_T        ! management
+CHARACTER (LEN=16)  :: YRECFM_M        ! management
 CHARACTER (LEN=100) :: YCOMMENT       ! variables
 CHARACTER (LEN=2)   :: YDIR
 !
+CHARACTER(LEN=2)  :: INDICE
+INTEGER           :: I
+!
 !-------------------------------------------------------------------------------
 !
 !*       1.    PROLOGUE:
@@ -818,6 +829,63 @@ IF (PRESENT(HSONFILE)) THEN
                   YCOMMENT,IRESP)
       IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:)
     END DO
+!
+! LIMA variables
+!
+    DO JSV = NSV_LIMA_BEG,NSV_LIMA_END
+! Nc
+      IF (JSV .EQ. NSV_LIMA_NC) THEN
+         YRECFM_T=TRIM(CLIMA_WARM_NAMES(1))//'T'
+      END IF
+! Nr
+      IF (JSV .EQ. NSV_LIMA_NR) THEN
+         YRECFM_T=TRIM(CLIMA_WARM_NAMES(2))//'T'
+      END IF
+! N CCN free
+      IF (JSV .GE. NSV_LIMA_CCN_FREE .AND. JSV .LT. NSV_LIMA_CCN_ACTI) THEN
+         WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_CCN_FREE + 1)
+         YRECFM_T=TRIM(CLIMA_WARM_NAMES(3))//INDICE//'T'
+      END IF
+! N CCN acti
+      IF (JSV .GE. NSV_LIMA_CCN_ACTI .AND. JSV .LT. NSV_LIMA_CCN_ACTI + NMOD_CCN) THEN
+         WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_CCN_ACTI + 1)
+         YRECFM_T=TRIM(CLIMA_WARM_NAMES(4))//INDICE//'T'
+      END IF
+! Scavenging
+      IF (JSV .EQ. NSV_LIMA_SCAVMASS) THEN
+         YRECFM_T=TRIM(CAERO_MASS(1))//'T'
+      END IF
+! Ni
+      IF (JSV .EQ. NSV_LIMA_NI) THEN
+         YRECFM_T=TRIM(CLIMA_COLD_NAMES(1))//'T'
+      END IF
+! N IFN free
+      IF (JSV .GE. NSV_LIMA_IFN_FREE .AND. JSV .LT. NSV_LIMA_IFN_NUCL) THEN
+         WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1)
+         YRECFM_T=TRIM(CLIMA_COLD_NAMES(2))//INDICE//'T'
+      END IF
+! N IFN nucl
+      IF (JSV .GE. NSV_LIMA_IFN_NUCL .AND. JSV .LT. NSV_LIMA_IFN_NUCL + NMOD_IFN) THEN
+         WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_NUCL + 1)
+         YRECFM_T=TRIM(CLIMA_COLD_NAMES(3))//INDICE//'T'
+      END IF
+! N IMM nucl
+      I = 0
+      IF (JSV .GE. NSV_LIMA_IMM_NUCL .AND. JSV .LT. NSV_LIMA_IMM_NUCL + NMOD_IMM) THEN
+         I = I + 1
+         WRITE(INDICE,'(I2.2)')(NINDICE_CCN_IMM(I))
+         YRECFM_T=TRIM(CLIMA_COLD_NAMES(4))//INDICE//'T'
+      END IF
+! Hom. freez. of CCN
+      IF (JSV .EQ. NSV_LIMA_HOM_HAZE) THEN
+         YRECFM_T=TRIM(CLIMA_COLD_NAMES(5))//'T'
+      END IF
+! time t
+      CALL FMREAD(HSONFILE,YRECFM_T,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,  &
+                  YCOMMENT,IRESP)
+      IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:)
+    END DO
+!
     DO JSV = NSV_ELECBEG,NSV_ELECEND  ! ELEC Scalar Variables
       YRECFM=TRIM(CELECNAMES(JSV-NSV_ELECBEG+1))//'T'
       CALL FMREAD(HSONFILE,YRECFM,CLUOUT,YDIR,ZWORK3D,IGRID,ILENCH,  &
diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90
index 25c056d34..8953122c4 100644
--- a/src/MNH/spawn_model2.f90
+++ b/src/MNH/spawn_model2.f90
@@ -187,6 +187,7 @@ END MODULE MODI_SPAWN_MODEL2
 !!      Modification 05/02/2015 (M.Moge) parallelization of SPAWNING
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!      J.Escobar   02/05/2016 : test ZZS_MAX in // 
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -277,6 +278,10 @@ USE MODD_2D_FRC
 USE MODI_GET_SIZEX_LB
 USE MODI_GET_SIZEY_LB
 !
+USE MODD_LIMA_PRECIP_SCAVENGING_n
+USE MODD_PARAM_LIMA
+USE MODD_PASPOL, ONLY : LPASPOL
+!
 USE MODD_MPIF
 USE MODD_VAR_ll
 !
@@ -380,6 +385,8 @@ INTEGER :: IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2       ! North-south LB arrays
 !
 CHARACTER(LEN=4)    :: YLBTYPE
 !
+INTEGER,DIMENSION(:,:),ALLOCATABLE   :: IJCOUNT 
+!
 REAL                :: ZZS_MAX, ZZS_MAX_ll
 !-------------------------------------------------------------------------------
 !
@@ -585,6 +592,18 @@ CCLOUD   =  HCLOUD
 CDCONV   = 'NONE'                 ! deep convection will have to be restarted
 CSCONV   = 'NONE'                 ! shallow convection will have to be restarted
 !
+! cas LIMA 
+!
+IF (HCLOUD=='LIMA') THEN
+  CCLOUD='LIMA'
+  NMOD_CCN=3
+  LSCAV=.FALSE.
+  LAERO_MASS=.FALSE.
+  NMOD_IFN=2
+  NMOD_IMM=1
+  LHHONI=.FALSE.
+ENDIF
+!
 CALL INI_NSV(2) ! NSV* are set equal for model 2 and model 1. 
                 ! NSV is set to the total number of SV for model 2
 !
@@ -656,6 +675,7 @@ IF (NSV_FF  > 0) LHORELAX_SVFF   = .TRUE.
 #endif
 IF (NSV_CS  > 0) LHORELAX_SVCS   = .TRUE.
 LHORELAX_SVLG   = .FALSE.
+IF (NSV_LIMA > 0) LHORELAX_SVLIMA = .TRUE.
 !
 !-------------------------------------------------------------------------------
 !
@@ -844,7 +864,7 @@ ELSE
 END IF
 !
 IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C2R2'  &
-         .OR. CCLOUD == 'KHKO' ) THEN
+         .OR. CCLOUD == 'KHKO' .OR. CCLOUD == 'LIMA') THEN
   ALLOCATE(XINPRC(IIU,IJU))
   ALLOCATE(XACPRC(IIU,IJU))
 ELSE
@@ -852,7 +872,7 @@ ELSE
   ALLOCATE(XACPRC(0,0))
 END IF
 !
-IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5') THEN
+IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5'.OR. CCLOUD == 'LIMA') THEN
   ALLOCATE(XINPRS(IIU,IJU))
   ALLOCATE(XACPRS(IIU,IJU))
 ELSE
@@ -860,7 +880,7 @@ ELSE
   ALLOCATE(XACPRS(0,0))
 END IF
 !
-IF (CCLOUD == 'C3R5' .OR. CCLOUD == 'ICE3' .OR. CCLOUD == 'ICE4' ) THEN
+IF (CCLOUD == 'C3R5' .OR. CCLOUD == 'ICE3' .OR. CCLOUD == 'ICE4'.OR. CCLOUD == 'LIMA' ) THEN
   ALLOCATE(XINPRG(IIU,IJU))
   ALLOCATE(XACPRG(IIU,IJU))
 ELSE
@@ -868,7 +888,7 @@ ELSE
   ALLOCATE(XACPRG(0,0))
 END IF
 !
-IF (CCLOUD == 'ICE4') THEN
+IF (CCLOUD == 'ICE4'.OR. CCLOUD == 'LIMA') THEN
   ALLOCATE(XINPRH(IIU,IJU))
   ALLOCATE(XACPRH(IIU,IJU))
 ELSE
@@ -876,6 +896,13 @@ ELSE
   ALLOCATE(XACPRH(0,0))
 END IF
 !
+IF ( CCLOUD=='LIMA' .AND. LSCAV ) THEN
+  ALLOCATE(XINPAP(IIU,IJU))
+  ALLOCATE(XACPAP(IIU,IJU))
+  XINPAP(:,:)=0.0
+  XACPAP(:,:)=0.0  
+END IF
+!
 !        4.8bis electric variables  
 !
 IF (CELEC /= 'NONE' ) THEN
diff --git a/src/MNH/test_nam_var.f90 b/src/MNH/test_nam_var.f90
index 0617298eb..95a94bc2d 100644
--- a/src/MNH/test_nam_var.f90
+++ b/src/MNH/test_nam_var.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/test_nam_var.f90,v $ $Revision: 1.2.4.1.18.1 $
 ! MASDEV4_7 init 2006/05/18 13:07:25
 !-----------------------------------------------------------------
 !############################
@@ -17,7 +17,8 @@ INTERFACE TEST_NAM_VAR
       SUBROUTINE TEST_NAM_VARC0(KLUOUT,HNAME,HVAR,            &
                                      HVALUE1,HVALUE2,HVALUE3, &
                                      HVALUE4,HVALUE5,HVALUE6, &
-                                     HVALUE7,HVALUE8,HVALUE9,HVALUE10   )
+                                     HVALUE7,HVALUE8,HVALUE9, &
+                                     HVALUE10,HVALUE11        )
 !
 INTEGER,          INTENT(IN)           ::KLUOUT   ! output listing logical unit
 CHARACTER(LEN=*) ,INTENT(IN)           ::HNAME    ! name of the variable to test
@@ -32,7 +33,8 @@ CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE6  ! sixth possible value
 CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE7  ! seventh possible value
 CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE8  ! eightth possible value
 CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE9  ! nineth possible value
-CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE10 ! tenth possible value             
+CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE10 ! tenth possible value
+CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE11 ! eleventh possible value             
 !
 END SUBROUTINE TEST_NAM_VARC0
 !
@@ -45,7 +47,8 @@ END MODULE MODI_TEST_NAM_VAR
       SUBROUTINE TEST_NAM_VARC0(KLUOUT,HNAME,HVAR,            &
                                      HVALUE1,HVALUE2,HVALUE3, &
                                      HVALUE4,HVALUE5,HVALUE6, &
-                                     HVALUE7,HVALUE8,HVALUE9,HVALUE10   )
+                                     HVALUE7,HVALUE8,HVALUE9, &
+                                     HVALUE10,HVALUE11        )
 !     #########################################################
 !
 !!****  *TEST_NAM_VARC0* - routine to test the value of a character var.
@@ -79,6 +82,7 @@ END MODULE MODI_TEST_NAM_VAR
 !!    -------------
 !!
 !!      original                                                     17/04/98
+!!      B.Vie 2016 : for LIMA add arguments
 !----------------------------------------------------------------------------
 !
 !*      0.    DECLARATIONS
@@ -101,6 +105,7 @@ CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE6  ! sixth possible value
 CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE7  ! seventh possible value
 CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE8  ! eightth possible value
 CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE9  ! nineth possible value
+CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE11 ! eleventh possible value
 CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE10 ! tenth possible value           
 !
 !*      0.2   Declarations of local variables
@@ -148,6 +153,10 @@ IF ( PRESENT (HVALUE10) ) THEN
   IF ( HVAR==HVALUE10 ) RETURN
 END IF
 !
+IF ( PRESENT (HVALUE11) ) THEN  
+  IF ( HVAR==HVALUE11 ) RETURN
+END IF
+!
 !
 !-------------------------------------------------------------------------------
 !
@@ -168,6 +177,7 @@ IF ( PRESENT (HVALUE7) ) WRITE (KLUOUT,*) '"',HVALUE7,'"'
 IF ( PRESENT (HVALUE8) ) WRITE (KLUOUT,*) '"',HVALUE8,'"'
 IF ( PRESENT (HVALUE9) ) WRITE (KLUOUT,*) '"',HVALUE9,'"'
 IF ( PRESENT (HVALUE10) ) WRITE (KLUOUT,*) '"',HVALUE10,'"'
+IF ( PRESENT (HVALUE11) ) WRITE (KLUOUT,*) '"',HVALUE11,'"'
 !
  !callabortstop
 CALL ABORT
diff --git a/src/MNH/two_wayn.f90 b/src/MNH/two_wayn.f90
index a213fdbcf..3ebfd396b 100644
--- a/src/MNH/two_wayn.f90
+++ b/src/MNH/two_wayn.f90
@@ -5,7 +5,8 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/two_wayn.f90,v $ $Revision: 1.3.2.4.2.2.2.3.8.1.2.3 $
+! masdev4_8 nesting 2008/06/30 12:08:25
 !-----------------------------------------------------------------
 !     ###################
       MODULE MODI_TWO_WAY_n
@@ -117,6 +118,7 @@ END MODULE MODI_TWO_WAY_n
 !!      J. Escobar   27/06/2011 correction for gridnesting with different SHAPE
 !!      Bosseur & Filippi 07/2013 Adds Forefire
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !------------------------------------------------------------------------------
 !
 !*      0.   DECLARATIONS
@@ -130,6 +132,7 @@ USE MODD_CONF
 USE MODD_NSV
 USE MODD_PARAM_ICE,        ONLY : LSEDIC
 USE MODD_PARAM_C2R2,       ONLY : LSEDC
+USE MODD_PARAM_LIMA,       ONLY : NSEDC => LSEDC
 !
 USE MODD_FIELD_n          ! modules relative to the inner (fine scale) model $n
 USE MODD_PRECIP_n          , ONLY : XINPRC,XINPRR,XINPRS,XINPRG,XINPRH
@@ -253,8 +256,9 @@ ELSE
   ALLOCATE(ZTSVM(0,0,0,0))
 ENDIF
 !
-IF (LUSERC .AND. ((LSEDIC .AND. CCLOUD(1:3) == 'ICE') .OR.  &
-       (LSEDC .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) )) THEN
+IF (LUSERC .AND. ( (LSEDIC .AND. CCLOUD(1:3) == 'ICE') .OR.                    &
+                   (LSEDC  .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) .OR.&
+                   (NSEDC  .AND. CCLOUD == 'LIMA')                       )) THEN
   ALLOCATE(ZTINPRC(IDIMX, IDIMY))
 ELSE
   ALLOCATE(ZTINPRC(0,0))
@@ -417,6 +421,25 @@ IF (NSV_C1R3_A(IMI) > 0) THEN
     END DO
   END DO
 END IF
+! LIMA scalar variables 
+IF (NSV_LIMA_A(IMI) > 0) THEN
+  ! nested model uses LIMA microphysical scheme
+  DO JVAR=1,NSV_LIMA_A(KMI)
+    ZTSVM(:,:,:,JVAR-1+NSV_LIMA_BEG_A(KMI)) = 0.
+    DO JX=1,IDXRATIO
+      DO JY=1,IDYRATIO
+        II1 = IIB+JX-1
+        II2 = IIE+JX-IDXRATIO
+        IJ1 = IJB+JY-1
+        IJ2 = IJE+JY-IDYRATIO
+        ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_LIMA_BEG_A(KMI)) = &
+             &ZTSVM(IIBC:IIEC,IJBC:IJEC,:,JVAR-1+NSV_LIMA_BEG_A(KMI))+&
+             &XRHODJ(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:)*&
+             &XSVT(II1:II2:IDXRATIO,IJ1:IJ2:IDYRATIO,:,JVAR-1+NSV_LIMA_BEG_A(IMI))
+      END DO
+    END DO
+  END DO
+END IF
 ! Electrical scalar variables 
 IF (NSV_ELEC_A(IMI) > 0) THEN
   ! nested model uses electrical scheme
@@ -669,8 +692,9 @@ END IF
     ZTINPRR(IIBC:IIEC,IJBC:IJEC)=ZTINPRR(IIBC:IIEC,IJBC:IJEC)/(IDXRATIO*IDYRATIO)
   END IF
 !
-   IF (LUSERC .AND. ((LSEDIC .AND. CCLOUD(1:3) == 'ICE') .OR.  &
-       (LSEDC .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) )) THEN
+  IF (LUSERC .AND. ((LSEDIC .AND. CCLOUD(1:3) == 'ICE')      .OR.              &
+                    (LSEDC .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) .OR.&
+                    (NSEDC .AND. CCLOUD == 'LIMA')                       )) THEN
     ZTINPRC(:,:) = 0.
     DO JX=1,IDXRATIO
       DO JY=1,IDYRATIO
@@ -900,8 +924,9 @@ IF (LINTER) THEN
   ELSE
     ALLOCATE(ZINPRR(0,0))
   END IF
-  IF (LUSERC .AND. ((LSEDIC .AND. CCLOUD(1:3) == 'ICE') .OR.  &
-     (LSEDC .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) )) THEN
+  IF (LUSERC .AND. ((LSEDIC .AND. CCLOUD(1:3) == 'ICE') .OR.                   &
+                    (LSEDC .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) .OR.&
+                    (NSEDC .AND. CCLOUD == 'LIMA')                       )) THEN
     ALLOCATE(ZINPRC(IXOR:IXEND,IYOR:IYEND))
   ELSE
     ALLOCATE(ZINPRC(0,0))
@@ -974,8 +999,10 @@ ENDDO
 IF (LUSERR) THEN
   CALL SET_LSFIELD_2WAY_ll(ZINPRR , ZTINPRR) 
 END IF
-IF (LUSERC .AND. ((LSEDIC .AND. CCLOUD(1:3) == 'ICE') .OR.  &
-     (LSEDC .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) )) THEN
+!
+IF (LUSERC .AND. ((LSEDIC .AND. CCLOUD(1:3) == 'ICE') .OR.                   &
+                  (LSEDC .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) .OR.&
+                  (NSEDC .AND. CCLOUD == 'LIMA')                       )) THEN
   CALL SET_LSFIELD_2WAY_ll(ZINPRC , ZTINPRC) 
 END IF
 IF (LUSERS) THEN
@@ -1107,8 +1134,9 @@ ENDIF
   IF (LUSERR) THEN
     PINPRR(IXOR:IXEND,IYOR:IYEND)=ZINPRR(IXOR:IXEND,IYOR:IYEND)
   ENDIF
-  IF (LUSERC .AND. ((LSEDIC .AND. CCLOUD(1:3) == 'ICE') .OR.  &
-       (LSEDC .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) )) THEN
+  IF (LUSERC .AND. ((LSEDIC .AND. CCLOUD(1:3) == 'ICE') .OR.                   &
+                    (LSEDC .AND. (CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO')) .OR.&
+                    (NSEDC .AND. CCLOUD == 'LIMA')                       )) THEN
     PINPRC(IXOR:IXEND,IYOR:IYEND)=ZINPRC(IXOR:IXEND,IYOR:IYEND)
   ENDIF
   IF (LUSERS) THEN
@@ -1167,6 +1195,12 @@ DO JVAR=NSV_C1R3BEG_A(KMI),NSV_C1R3END_A(KMI)
      -  ZK2W * PRHODJ(IXOR:IXEND,IYOR:IYEND,:) * (PSVM(IXOR:IXEND,IYOR:IYEND,:,JVAR) &
                  -ZSVM(IXOR:IXEND,IYOR:IYEND,:,JVAR)/ZRHODJ(IXOR:IXEND,IYOR:IYEND,:) )
 ENDDO
+! LIMA scalar variables
+DO JVAR=NSV_LIMA_BEG_A(KMI),NSV_LIMA_END_A(KMI)
+  PRSVS(IXOR:IXEND,IYOR:IYEND,:,JVAR) = PRSVS(IXOR:IXEND,IYOR:IYEND,:,JVAR) &
+     -  ZK2W * PRHODJ(IXOR:IXEND,IYOR:IYEND,:) * (PSVM(IXOR:IXEND,IYOR:IYEND,:,JVAR) &
+                 -ZSVM(IXOR:IXEND,IYOR:IYEND,:,JVAR)/ZRHODJ(IXOR:IXEND,IYOR:IYEND,:) )
+ENDDO
 ! Electrical scalar variables
 DO JVAR=NSV_ELECBEG_A(KMI),NSV_ELECEND_A(KMI)
   PRSVS(IXOR:IXEND,IYOR:IYEND,:,JVAR) = PRSVS(IXOR:IXEND,IYOR:IYEND,:,JVAR) &
diff --git a/src/MNH/update_nsv.f90 b/src/MNH/update_nsv.f90
index 332e4c31e..e5555891f 100644
--- a/src/MNH/update_nsv.f90
+++ b/src/MNH/update_nsv.f90
@@ -22,6 +22,7 @@ END MODULE MODI_UPDATE_NSV
 !!                   any MesoNH routine WITH or WITHOUT $n before using 
 !!                   the NSV_* variables.
 !!  Modify (Escobar ) 2/2014 : add Forefire var
+!!  Modify (Vie) 2016 : add LIMA
 USE MODD_CONF, ONLY : NVERB
 USE MODD_NSV
 IMPLICIT NONE 
@@ -46,6 +47,21 @@ NSV_C2R2END = NSV_C2R2END_A(KMI)
 NSV_C1R3    = NSV_C1R3_A(KMI)
 NSV_C1R3BEG = NSV_C1R3BEG_A(KMI)
 NSV_C1R3END = NSV_C1R3END_A(KMI)
+!
+NSV_LIMA          = NSV_LIMA_A(KMI)
+NSV_LIMA_BEG      = NSV_LIMA_BEG_A(KMI)
+NSV_LIMA_END      = NSV_LIMA_END_A(KMI)
+NSV_LIMA_NC       = NSV_LIMA_NC_A(KMI)
+NSV_LIMA_NR       = NSV_LIMA_NR_A(KMI)
+NSV_LIMA_CCN_FREE = NSV_LIMA_CCN_FREE_A(KMI)
+NSV_LIMA_CCN_ACTI = NSV_LIMA_CCN_ACTI_A(KMI)
+NSV_LIMA_SCAVMASS = NSV_LIMA_SCAVMASS_A(KMI)
+NSV_LIMA_NI       = NSV_LIMA_NI_A(KMI)
+NSV_LIMA_IFN_FREE = NSV_LIMA_IFN_FREE_A(KMI)
+NSV_LIMA_IFN_NUCL = NSV_LIMA_IFN_NUCL_A(KMI)
+NSV_LIMA_IMM_NUCL = NSV_LIMA_IMM_NUCL_A(KMI)
+NSV_LIMA_HOM_HAZE = NSV_LIMA_HOM_HAZE_A(KMI)
+!
 NSV_ELEC    = NSV_ELEC_A(KMI)
 NSV_ELECBEG = NSV_ELECBEG_A(KMI)
 NSV_ELECEND = NSV_ELECEND_A(KMI)
diff --git a/src/MNH/write_aircraft_balloon.f90 b/src/MNH/write_aircraft_balloon.f90
index 3060afd81..f71773a0c 100644
--- a/src/MNH/write_aircraft_balloon.f90
+++ b/src/MNH/write_aircraft_balloon.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/write_aircraft_balloon.f90,v $ $Revision: 1.2.2.3.2.1.2.2.10.1.2.2 $
 ! masdev4_7 BUG1 2007/06/15 17:47:18
 !-----------------------------------------------------------------
 !      ###########################
@@ -61,8 +61,7 @@ END MODULE MODI_WRITE_AIRCRAFT_BALLOON
 !!     Original 15/05/2000
 !!     10/01/2011 adding IMI, the model number
 !!     March, 2013 :  C.Lac : add vertical profiles
-!!              July, 2015 (O.Nuissier/F.Duffourg) Add microphysics diagnostic for
-!!                                      aircraft, ballon and profiler
+!!     Oct 2016 : G.Delautier LIMA
 !!
 !! --------------------------------------------------------------------------
 !       
@@ -84,6 +83,9 @@ USE MODD_DUST,            ONLY: CDUSTNAMES, LDUST, NMODE_DST
 USE MODD_SALT,            ONLY: CSALTNAMES
 USE MODD_NSV
 USE MODD_DIAG_IN_RUN
+USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES, CAERO_MASS
+USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES
+USE MODD_PARAM_LIMA     , ONLY: NINDICE_CCN_IMM,NMOD_CCN,NMOD_IFN,NMOD_IMM
 !
 USE MODE_MODELN_HANDLER
 USE MODE_DUST_PSD
@@ -211,9 +213,9 @@ IPROC = 20 + SIZE(TPFLYER%R,2) + SIZE(TPFLYER%SV,2) &
 IPROCZ = SIZE(TPFLYER%RTZ,2)+ SIZE(TPFLYER%RZ,2)+ SIZE(TPFLYER%RZ,3)+  SIZE(TPFLYER%CRARE,2)+ &
          SIZE(TPFLYER%CRARE_ATT,2)+ SIZE(TPFLYER%WZ,2) + SIZE(TPFLYER%FFZ,2)+ &
          SIZE(TPFLYER%IWCZ,2)+ SIZE(TPFLYER%LWCZ,2) + SIZE(TPFLYER%CIZ,2) + &
-         SIZE(TPFLYER%ZZ,2) + SIZE(TPFLYER%SPEEDCZ,2) + &
-         SIZE(TPFLYER%SPEEDRZ,2) + SIZE(TPFLYER%SPEEDSZ,2)+ &
-         SIZE(TPFLYER%SPEEDGZ,2)
+         SIZE(TPFLYER%ZZ,2)
+
+IF (NSV_LIMA_BEG/=NSV_LIMA_END) IPROCZ= IPROCZ+ SIZE(TPFLYER%CCZ,2) + SIZE(TPFLYER%CRZ,2)
 IF (SIZE(TPFLYER%TKE  )>0) IPROC = IPROC + 1
 IF (LDIAG_IN_RUN) IPROC = IPROC + 1
 IF (LORILAM) IPROC = IPROC + JPMODE*3
@@ -421,6 +423,43 @@ IF (SIZE(TPFLYER%SV,2)>=1) THEN
     YCOMMENT (JPROC) = ' '
     ZWORK6 (1,1,1,:,1,JPROC) = TPFLYER%SV(:,JSV)
   END DO
+! LIMA variables
+  DO JSV=NSV_LIMA_BEG,NSV_LIMA_END
+    JPROC = JPROC+1
+    YUNIT    (JPROC) = '/kg'
+    YCOMMENT (JPROC) = ' '
+    IF (JSV==NSV_LIMA_NC) YTITLE(JPROC)=TRIM(CLIMA_WARM_NAMES(1))//'T' 
+    IF (JSV==NSV_LIMA_NR) YTITLE(JPROC)=TRIM(CLIMA_WARM_NAMES(2))//'T' 
+    IF (JSV .GE. NSV_LIMA_CCN_FREE .AND. JSV .LT. NSV_LIMA_CCN_ACTI) THEN
+        WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_CCN_FREE + 1)
+        YTITLE(JPROC)=TRIM(CLIMA_WARM_NAMES(3))//INDICE//'T'
+    ENDIF
+    IF (JSV .GE. NSV_LIMA_CCN_ACTI .AND. JSV .LT. NSV_LIMA_CCN_ACTI + NMOD_CCN) THEN
+        WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_CCN_ACTI + 1)
+        YTITLE(JPROC)=TRIM(CLIMA_WARM_NAMES(4))//INDICE//'T'
+    ENDIF
+    IF (JSV .EQ. NSV_LIMA_SCAVMASS) THEN
+      YTITLE(JPROC)=TRIM(CAERO_MASS(1))//'T'
+      YUNIT    (JPROC) = 'kg/kg'
+    ENDIF
+    IF (JSV==NSV_LIMA_NI) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(1))//'T' 
+    IF (JSV .GE. NSV_LIMA_IFN_FREE .AND. JSV .LT. NSV_LIMA_IFN_NUCL) THEN
+        WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1)
+        YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(2))//INDICE//'T'
+    ENDIF
+    IF (JSV .GE. NSV_LIMA_IFN_NUCL .AND. JSV .LT. NSV_LIMA_IFN_NUCL + NMOD_IFN) THEN
+        WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_NUCL + 1)
+        YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(3))//INDICE//'T'
+    ENDIF
+    I = 0
+    IF (JSV .GE. NSV_LIMA_IMM_NUCL .AND. JSV .LT. NSV_LIMA_IMM_NUCL + NMOD_IMM) THEN
+        I = I + 1
+        WRITE(INDICE,'(I2.2)')(NINDICE_CCN_IMM(I))
+        YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(4))//INDICE//'T'
+    ENDIF
+    IF (JSV .EQ. NSV_LIMA_HOM_HAZE) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(5))//'T'
+    ZWORK6 (1,1,1,:,1,JPROC) = TPFLYER%SV(:,JSV)
+  END DO 
   ! electrical scalar variables
   DO JSV = NSV_ELECBEG,NSV_ELECEND
     JPROC = JPROC+1
@@ -622,35 +661,31 @@ DO IK=1, IKU
   YCOMMENTZ(JPROCZ) = 'Liquid water content'                
   ZWORKZ6 (1,1,IK,:,1,JPROCZ) = TPFLYER%LWCZ(:,IK)
 !
-  JPROCZ = JPROCZ + 1
-  YTITLEZ  (JPROCZ) = 'CIT'
-  YUNITZ   (JPROCZ) = '/m3'         
-  YCOMMENTZ(JPROCZ) = 'Ice concentration'                   
-  ZWORKZ6 (1,1,IK,:,1,JPROCZ) = TPFLYER%CIZ(:,IK)
-!
-  JPROCZ = JPROCZ + 1
-  YTITLEZ  (JPROCZ) = 'SPEEDC'
-  YUNITZ   (JPROCZ) = 'm/s'         
-  YCOMMENTZ(JPROCZ) = 'Cloud fall speed'                    
-  ZWORKZ6 (1,1,IK,:,1,JPROCZ) = TPFLYER%SPEEDCZ(:,IK)
-!
-  JPROCZ = JPROCZ + 1
-  YTITLEZ  (JPROCZ) = 'SPEEDR'
-  YUNITZ   (JPROCZ) = 'm/s'         
-  YCOMMENTZ(JPROCZ) = 'Rain fall speed'                    
-  ZWORKZ6 (1,1,IK,:,1,JPROCZ) = TPFLYER%SPEEDRZ(:,IK)
-!
-  JPROCZ = JPROCZ + 1
-  YTITLEZ  (JPROCZ) = 'SPEEDS'
-  YUNITZ   (JPROCZ) = 'm/s'         
-  YCOMMENTZ(JPROCZ) = 'Snow  fall speed'                    
-  ZWORKZ6 (1,1,IK,:,1,JPROCZ) = TPFLYER%SPEEDSZ(:,IK)
-!
-  JPROCZ = JPROCZ + 1
-  YTITLEZ  (JPROCZ) = 'SPEEDG'
-  YUNITZ   (JPROCZ) = 'm/s'         
-  YCOMMENTZ(JPROCZ) = 'Graupel fall speed'                    
-  ZWORKZ6 (1,1,IK,:,1,JPROCZ) = TPFLYER%SPEEDGZ(:,IK)
+  IF (NSV_LIMA_BEG/=NSV_LIMA_END) THEN
+    JPROCZ = JPROCZ + 1
+    YTITLEZ  (JPROCZ) = 'CIT'
+    YUNITZ   (JPROCZ) = '/m3'         
+    YCOMMENTZ(JPROCZ) = 'Ice concentration'                   
+    ZWORKZ6 (1,1,IK,:,1,JPROCZ) = TPFLYER%CIZ(:,IK)
+  ELSE
+    JPROCZ = JPROCZ + 1
+    YTITLEZ  (JPROCZ) = 'CCLOUDT'
+    YUNITZ   (JPROCZ) = '/kg'         
+    YCOMMENTZ(JPROCZ) = 'liquid cloud concentration'                   
+    ZWORKZ6 (1,1,IK,:,1,JPROCZ) = TPFLYER%CCZ(:,IK)
+!
+    JPROCZ = JPROCZ + 1
+    YTITLEZ  (JPROCZ) = 'CRAINT'
+    YUNITZ   (JPROCZ) = '/kg'         
+    YCOMMENTZ(JPROCZ) = 'Rain concentration'                   
+    ZWORKZ6 (1,1,IK,:,1,JPROCZ) = TPFLYER%CRZ(:,IK)
+!
+    JPROCZ = JPROCZ + 1
+    YTITLEZ  (JPROCZ) = 'CICET'
+    YUNITZ   (JPROCZ) = '/kg'         
+    YCOMMENTZ(JPROCZ) = 'Ice concentration'                   
+    ZWORKZ6 (1,1,IK,:,1,JPROCZ) = TPFLYER%CIZ(:,IK)
+ ENDIF
 !
   JPROCZ = JPROCZ + 1
   YTITLEZ  (JPROCZ) = 'RARE'
diff --git a/src/MNH/write_desfmn.f90 b/src/MNH/write_desfmn.f90
index 3bc5260d5..a52794462 100644
--- a/src/MNH/write_desfmn.f90
+++ b/src/MNH/write_desfmn.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$ $Date$
+! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/write_desfmn.f90,v $ $Revision: 1.2.2.1.2.1.2.2.10.1.2.4 $ $Date: 2014/02/14 09:15:53 $
 !-----------------------------------------------------------------
 !     #########################
       MODULE MODI_WRITE_DESFM_n
@@ -142,6 +142,7 @@ END MODULE MODI_WRITE_DESFM_n
 !!      Modification   V. Masson      01/2004  removes surface (externalization)
 !!      Modification   P. Tulet       01/2005  add dust, orilam
 !!      Modification                  05/2006  Remove EPS and OWRIGET
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -150,6 +151,7 @@ USE MODE_FM
 !
 USE MODD_PARAMETERS
 USE MODD_CONF
+USE MODD_DYN_n, ONLY : LHORELAX_SVLIMA
 !
 USE MODN_CONF
 USE MODN_DYN
@@ -175,6 +177,7 @@ USE MODN_CH_MNHC_n
 USE MODN_CH_SOLVER_n
 USE MODN_PARAM_C2R2
 USE MODN_PARAM_C1R3
+USE MODN_PARAM_LIMA
 USE MODN_ELEC
 USE MODN_SERIES
 USE MODN_SERIES_n 
@@ -214,7 +217,8 @@ LOGICAL                     ::  GHORELAX_UVWTH,                               &
 #ifdef MNH_FOREFIRE
                                 GHORELAX_SVFF,                                &
 #endif
-                                GHORELAX_SVCHEM, GHORELAX_SVC1R3,GHORELAX_SVELEC
+                                GHORELAX_SVCHEM, GHORELAX_SVC1R3,             &
+                                GHORELAX_SVELEC, GHORELAX_SVLIMA
 LOGICAL                     ::  GHORELAX_SVDST, GHORELAX_SVSLT,  GHORELAX_SVAER
 LOGICAL, DIMENSION(JPSVMAX) ::  GHORELAX_SV
 !
@@ -249,6 +253,7 @@ IF (CPROGRAM/='MESONH') THEN   ! impose default value for next simulation
   GHORELAX_SV(:) = LHORELAX_SV(:)
   GHORELAX_SVC2R2= LHORELAX_SVC2R2
   GHORELAX_SVC1R3= LHORELAX_SVC1R3
+  GHORELAX_SVLIMA= LHORELAX_SVLIMA
   GHORELAX_SVELEC= LHORELAX_SVELEC
   GHORELAX_SVCHEM= LHORELAX_SVCHEM
   GHORELAX_SVCHIC= LHORELAX_SVCHIC
@@ -272,6 +277,7 @@ IF (CPROGRAM/='MESONH') THEN   ! impose default value for next simulation
   LHORELAX_SV(:) = .FALSE.
   LHORELAX_SVC2R2= .FALSE.
   LHORELAX_SVC1R3= .FALSE.
+  LHORELAX_SVLIMA= .FALSE.
   LHORELAX_SVELEC= .FALSE.
   LHORELAX_SVCHEM= .FALSE.
   LHORELAX_SVCHIC= .FALSE.
@@ -388,6 +394,7 @@ IF(CCLOUD(1:3) == 'ICE')  WRITE(UNIT=ILUSEG,NML=NAM_PARAM_ICE)
 IF(CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') &
                      WRITE(UNIT=ILUSEG,NML=NAM_PARAM_C2R2)
 IF(CCLOUD == 'C3R5' ) WRITE(UNIT=ILUSEG,NML=NAM_PARAM_C1R3) 
+IF(CCLOUD == 'LIMA' ) WRITE(UNIT=ILUSEG,NML=NAM_PARAM_LIMA) 
 IF(CELEC /= 'NONE') WRITE(UNIT=ILUSEG,NML=NAM_ELEC) 
 IF(LSERIES) WRITE(UNIT=ILUSEG,NML=NAM_SERIES)
 IF(NMODEL_CLOUD/=NUNDEF) WRITE(UNIT=ILUSEG,NML=NAM_TURB_CLOUD)
@@ -549,7 +556,12 @@ IF (NVERB >= 5) THEN
       END IF
     END IF
 !
-    IF( CCLOUD == 'KHKO' ) THEN                                                   
+    IF( CCLOUD == 'LIMA' ) THEN
+      WRITE(UNIT=ILUOUT,FMT="('*********** LIMA SCHEME *********************')")
+      WRITE(UNIT=ILUOUT,NML=NAM_PARAM_LIMA)
+    END IF
+!
+    IF( CCLOUD == 'KHKO' ) THEN
       WRITE(UNIT=ILUOUT,FMT="('*********** KHKO SCHEME *********************')")
       WRITE(UNIT=ILUOUT,NML=NAM_PARAM_C2R2)
     END IF
@@ -581,6 +593,7 @@ IF (CPROGRAM /='MESONH') THEN !return to previous LHORELAX_
   LHORELAX_SV(:) = GHORELAX_SV(:)
   LHORELAX_SVC2R2= GHORELAX_SVC2R2
   LHORELAX_SVC1R3= GHORELAX_SVC1R3
+  LHORELAX_SVLIMA= GHORELAX_SVLIMA
   LHORELAX_SVELEC= GHORELAX_SVELEC
   LHORELAX_SVCHEM= GHORELAX_SVCHEM
   LHORELAX_SVCHIC= GHORELAX_SVCHIC
diff --git a/src/MNH/write_lbn.f90 b/src/MNH/write_lbn.f90
index 906d3aab2..d017f3d11 100644
--- a/src/MNH/write_lbn.f90
+++ b/src/MNH/write_lbn.f90
@@ -5,7 +5,8 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/write_lbn.f90,v $ $Revision: 1.2.2.4.2.2.2.2.10.1.2.2 $
+! masdev4_8 init 2008/06/30 12:13:35
 !-----------------------------------------------------------------
 !     ######################
       MODULE MODI_WRITE_LB_n
@@ -75,6 +76,7 @@ END MODULE MODI_WRITE_LB_n
 !!     M. Leriche  07/10    add NSV_* for ice phase chemistry
 !!     P. Tulet    09/14    modif SALT
 !!     J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
+!!    J.-P. Pinty  09/02/16 Add LIMA that is LBC for CCN and IFN
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -88,6 +90,8 @@ USE MODD_LUNIT_n
 USE MODD_PARAM_n
 USE MODD_TURB_n
 USE MODD_NSV
+USE MODD_PARAM_LIMA
+USE MODD_PARAM_n
 !
 USE MODE_FMWRIT
 USE MODE_ll
@@ -99,6 +103,8 @@ USE MODD_ICE_C1R3_DESCR,  ONLY: C1R3NAMES
 USE MODD_CH_M9_n,         ONLY: CNAMES, CICNAMES
 USE MODD_LG,              ONLY: CLGNAMES
 USE MODD_ELEC_DESCR,      ONLY: CELECNAMES
+USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES
+USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES
 USE MODD_CH_AEROSOL
 USE MODD_CH_AERO_n
 USE MODI_CH_AER_REALLFI_n
@@ -142,6 +148,7 @@ INTEGER  :: JK
 !         Integers, counters for dust modes
 INTEGER                          :: JMOM, IMOMENTS, JMODE, ISV_NAME_IDX
 INTEGER :: IMI ! Current model index
+CHARACTER(LEN=2)  :: INDICE ! to index CCN and IFN fields of LIMA scheme
 !-------------------------------------------------------------------------------
 !
 !*       1.    SOME INITIALIZATIONS
@@ -388,6 +395,51 @@ IF (NSV >=1) THEN
            & IGRID,ILENCH,YCOMMENT,IRESP)
     END IF
   END DO
+!
+! LIMA: CCN and IFN scalar variables
+!
+  IF (CCLOUD=='LIMA' ) THEN
+    DO JSV = NSV_LIMA_CCN_FREE,NSV_LIMA_CCN_FREE+NMOD_CCN-1
+      WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_CCN_FREE + 1)
+      IF(NSIZELBXSV_ll /= 0) THEN
+        YRECFM='LBX_'//TRIM(UPCASE(CLIMA_WARM_NAMES(3))//INDICE)
+        WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV,' (/KG)'
+        ILENCH=LEN(YCOMMENT)
+        CALL FMWRIT_LB(HFMFILE,YRECFM,CLUOUT,"LBX",XLBXSVM(:,:,:,JSV),IRIMX,NSIZELBXSV_ll,&
+           & IGRID,ILENCH,YCOMMENT,IRESP)
+      END IF
+!
+      IF(NSIZELBYSV_ll /= 0) THEN
+        YRECFM='LBY_'//TRIM(UPCASE(CLIMA_WARM_NAMES(3))//INDICE)
+        WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV,' (/KG)'
+        ILENCH=LEN(YCOMMENT)
+        CALL FMWRIT_LB(HFMFILE,YRECFM,CLUOUT,"LBY",XLBYSVM(:,:,:,JSV),IRIMY,NSIZELBYSV_ll,&
+           & IGRID,ILENCH,YCOMMENT,IRESP)
+      END IF
+    END DO
+!
+    DO JSV = NSV_LIMA_IFN_FREE,NSV_LIMA_IFN_FREE+NMOD_IFN-1
+      WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1)
+      IF(NSIZELBXSV_ll /= 0) THEN
+        YRECFM='LBX_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2))//INDICE)
+        WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV,' (/KG)'
+        ILENCH=LEN(YCOMMENT)
+        CALL FMWRIT_LB(HFMFILE,YRECFM,CLUOUT,"LBX",XLBXSVM(:,:,:,JSV),IRIMX,NSIZELBXSV_ll,&
+           & IGRID,ILENCH,YCOMMENT,IRESP)
+      END IF
+!
+      IF(NSIZELBYSV_ll /= 0) THEN
+        YRECFM='LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2))//INDICE)
+        WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV,' (/KG)'
+        ILENCH=LEN(YCOMMENT)
+        CALL FMWRIT_LB(HFMFILE,YRECFM,CLUOUT,"LBY",XLBYSVM(:,:,:,JSV),IRIMY,NSIZELBYSV_ll,&
+           & IGRID,ILENCH,YCOMMENT,IRESP)
+      END IF
+    END DO
+  END IF
+!
+! ELEC
+!
   DO JSV = NSV_ELECBEG,NSV_ELECEND
     IF(NSIZELBXSV_ll /= 0) THEN
       YRECFM='LBX_'//TRIM(CELECNAMES(JSV-NSV_ELECBEG+1))
diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90
index 0f3b963c8..6f05480ab 100644
--- a/src/MNH/write_lfifm1_for_diag.f90
+++ b/src/MNH/write_lfifm1_for_diag.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/write_lfifm1_for_diag.f90,v $ $Revision: 1.3.2.5.2.4.2.3.2.3.2.4 $
 ! masdev4_7 BUG1 2007/06/15 17:47:18
 !-----------------------------------------------------------------
 !################################
@@ -139,6 +139,7 @@ END MODULE MODI_WRITE_LFIFM1_FOR_DIAG
 !!       G.Delautier    2014 : remplace MODD_RAIN_C2R2_PARAM par MODD_RAIN_C2R2_KHKO_PARAM
 !!       C. Augros 2014 : new radar simulator (T matrice)
 !!       D.Ricard 2015 : add THETAES + POVOES  (LMOIST_ES=T)
+!!      Modification    01/2016  (JP Pinty) Add LIMA
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -181,8 +182,13 @@ USE MODD_ELEC_DESCR, ONLY : CELECNAMES
 USE MODD_RAIN_C2R2_KHKO_PARAM
 USE MODD_ICE_C1R3_PARAM
 USE MODD_PARAM_ICE,       ONLY : LSEDIC
-!USE MODD_PARAM_C2R2,      ONLY : LSEDC
-!USE MODD_PARAM_C1R3
+USE MODD_PARAM_LIMA,      ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM, NINDICE_CCN_IMM,&
+                                 LSCAV, LHHONI, LAERO_MASS,                    &
+                                 LLIMA_DIAG,                                   &
+                                 NSPECIE, XMDIAM_IFN, XSIGMA_IFN, ZFRAC=>XFRAC,&
+                                 XR_MEAN_CCN, XLOGSIG_CCN 
+USE MODD_PARAM_LIMA_WARM, ONLY : CLIMA_WARM_CONC, CAERO_MASS
+USE MODD_PARAM_LIMA_COLD, ONLY : CLIMA_COLD_CONC
 USE MODD_LG,              ONLY : CLGNAMES
 USE MODD_PASPOL,          ONLY : LPASPOL
 USE MODD_CONDSAMP,        ONLY : LCONDSAMP
@@ -316,6 +322,9 @@ INTEGER :: ILUOUT0 ! Logical unit number for output-listing
 CHARACTER(LEN=2)  :: INDICE
 INTEGER           :: I
 !
+! LIMA LIDAR
+REAL,DIMENSION(:,:,:,:), ALLOCATABLE :: ZTMP1, ZTMP2, ZTMP3, ZTMP4
+!
 !-------------------------------------------------------------------------------
 !
 !*       0.     ARRAYS BOUNDS INITIALIZATION
@@ -804,7 +813,7 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN
   CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   !
   IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR.&
-      CCLOUD == 'KHKO') THEN 
+      CCLOUD == 'KHKO' .OR. CCLOUD == 'LIMA') THEN 
     IF (SIZE(XINPRC) /= 0 ) THEN
       ZWORK21(:,:) = XINPRC(:,:)*3.6E6
       YRECFM      ='INPRC'
@@ -821,7 +830,7 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN
       CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
     END IF 
   END IF 
-  IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5') THEN                      
+  IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'LIMA') THEN
     ZWORK21(:,:)  = XINPRS(:,:)*3.6E6
     YRECFM      = 'INPRS'
     YCOMMENT    = 'X_Y_INstantaneaous PRecipitation rate for Snow (MM/H)'
@@ -926,7 +935,7 @@ IF (LVAR_PR ) THEN
   ZWORK31(:,:,:) = DZF(1,IKU,1,XZZ(:,:,:))
   DO JK = IKB,IKE
     !* Calcul de qtot
-    IF  (CCLOUD(1:3) == 'ICE' ) THEN
+    IF  (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'LIMA') THEN
       ZWORK23(IIB:IIE,IJB:IJE) = XRT(IIB:IIE,IJB:IJE,JK,1) + &
       XRT(IIB:IIE,IJB:IJE,JK,2) + XRT(IIB:IIE,IJB:IJE,JK,3) + &
       XRT(IIB:IIE,IJB:IJE,JK,4) + XRT(IIB:IIE,IJB:IJE,JK,5) + &
@@ -956,7 +965,7 @@ IF (LHU_FLX) THEN
   ZWORK35(:,:,:) = XRHODREF(:,:,:) * XRT(:,:,:,1)
   ZWORK31(:,:,:) = MXM(ZWORK35(:,:,:)) * XUT(:,:,:)
   ZWORK32(:,:,:) = MYM(ZWORK35(:,:,:)) * XVT(:,:,:)
-  IF  (CCLOUD(1:3) == 'ICE' ) THEN
+  IF  (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'LIMA') THEN
     ZWORK36(:,:,:) = ZWORK35(:,:,:) + XRHODREF(:,:,:) * (XRT(:,:,:,2) + &
     XRT(:,:,:,3) + XRT(:,:,:,4) + XRT(:,:,:,5) + XRT(:,:,:,6))
     ZWORK33(:,:,:) = MXM(ZWORK36(:,:,:)) * XUT(:,:,:)
@@ -993,7 +1002,7 @@ IF (LHU_FLX) THEN
       ENDIF
     ENDDO
   ENDDO
-  IF  (CCLOUD(1:3) == 'ICE' ) THEN
+  IF  (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'LIMA') THEN
     ZWORK23(:,:) = 0.
     ZWORK24(:,:) = 0.
     ZWORK26(:,:) = 0.
@@ -1056,7 +1065,7 @@ IF (LHU_FLX) THEN
   ILENCH=LEN(YCOMMENT)
   CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK25*(-1),IGRID,ILENCH,YCOMMENT,IRESP)
   !
-  IF  (CCLOUD(1:3) == 'ICE' ) THEN
+  IF  (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'LIMA') THEN
     !  composantes U et V du flux surfacique d'hydrométéores  
     YRECFM='UM92'
     YCOMMENT='(kg / s / m²)'
@@ -1099,7 +1108,7 @@ ENDIF
 !
 !* Moist variables
 !
-IF (LVAR_MRW) THEN
+IF (LVAR_MRW .OR. LLIMA_DIAG) THEN
   IF (NRR >=1) THEN
     IRR=0                                      ! Moist variables are written
     IGRID=1                                    ! individually in file
@@ -1229,7 +1238,96 @@ IF(LVAR_MRW) THEN
          YCOMMENT,IRESP)   
   END DO
 END IF
-
+!
+! microphysical LIMA scheme scalar variables
+!
+IF (LLIMA_DIAG) THEN
+   DO JSV = NSV_LIMA_BEG,NSV_LIMA_END
+! Nc
+      IF (JSV .EQ. NSV_LIMA_NC) THEN
+         YRECFM=TRIM(CLIMA_WARM_CONC(1))//'T'
+         WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/cm^3)'
+      END IF
+! Nr
+      IF (JSV .EQ. NSV_LIMA_NR) THEN
+         YRECFM=TRIM(CLIMA_WARM_CONC(2))//'T'
+         WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/cm^3)'
+      END IF
+! N CCN free
+      IF (JSV .GE. NSV_LIMA_CCN_FREE .AND. JSV .LT. NSV_LIMA_CCN_ACTI) THEN
+         WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_CCN_FREE + 1)
+         YRECFM=TRIM(CLIMA_WARM_CONC(3))//INDICE//'T'
+         WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/cm^3)'
+      END IF
+! N CCN acti
+      IF (JSV .GE. NSV_LIMA_CCN_ACTI .AND. JSV .LT. NSV_LIMA_CCN_ACTI + NMOD_CCN) THEN
+         WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_CCN_ACTI + 1)
+         YRECFM=TRIM(CLIMA_WARM_CONC(4))//INDICE//'T'
+         WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/cm^3)'
+      END IF
+! Scavenging
+      IF (JSV .EQ. NSV_LIMA_SCAVMASS) THEN
+         YRECFM=TRIM(CAERO_MASS(1))//'T'
+         WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (kg/cm^3)'
+      END IF
+! Ni
+      IF (JSV .EQ. NSV_LIMA_NI) THEN
+         YRECFM=TRIM(CLIMA_COLD_CONC(1))//'T'
+         WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/cm^3)'
+      END IF
+! N IFN free
+      IF (JSV .GE. NSV_LIMA_IFN_FREE .AND. JSV .LT. NSV_LIMA_IFN_NUCL) THEN
+         WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1)
+         YRECFM=TRIM(CLIMA_COLD_CONC(2))//INDICE//'T'
+         WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/cm^3)'
+      END IF
+! N IFN nucl
+      IF (JSV .GE. NSV_LIMA_IFN_NUCL .AND. JSV .LT. NSV_LIMA_IFN_NUCL + NMOD_IFN) THEN
+         WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_NUCL + 1)
+         YRECFM=TRIM(CLIMA_COLD_CONC(3))//INDICE//'T'
+         WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/cm^3)'
+      END IF
+! N IMM nucl
+      I = 0
+      IF (JSV .GE. NSV_LIMA_IMM_NUCL .AND. JSV .LT. NSV_LIMA_IMM_NUCL + NMOD_IMM) THEN
+         I = I + 1
+         WRITE(INDICE,'(I2.2)')(NINDICE_CCN_IMM(I))
+         YRECFM=TRIM(CLIMA_COLD_CONC(4))//INDICE//'T'
+         WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/cm^3)'
+      END IF
+! Hom. freez. of CCN
+      IF (JSV .EQ. NSV_LIMA_HOM_HAZE) THEN
+         YRECFM=TRIM(CLIMA_COLD_CONC(5))//'T'
+         WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/cm^3)'
+      END IF
+!
+!
+      ILENCH=LEN(YCOMMENT)
+      ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E-6*XRHODREF(:,:,:)
+      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,    &
+                  YCOMMENT,IRESP)
+   END DO
+!
+   IF (LUSERC) THEN
+      YRECFM= 'LWC'
+      YCOMMENT='X_Y_Z_LWC (g/m^3)'
+      ILENCH=LEN(YCOMMENT)
+      ZWORK31(:,:,:)=XRT(:,:,:,2)*1.E3*XRHODREF(:,:,:)
+      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
+                  YCOMMENT,IRESP)
+   END IF
+!
+   IF (LUSERI) THEN
+      YRECFM= 'IWC'
+      YCOMMENT='X_Y_Z_MRI (g/m^3)'
+      ILENCH=LEN(YCOMMENT)
+      ZWORK31(:,:,:)=XRT(:,:,:,4)*1.E3*XRHODREF(:,:,:)
+      CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK31,IGRID,ILENCH,  &
+                  YCOMMENT,IRESP)
+   END IF
+!
+END IF
+!
 ! chemical scalar variables in gas phase PPBV
 IF (LCHEMDIAG) THEN
   DO JSV = NSV_CHGSBEG,NSV_CHGSEND
@@ -2041,7 +2139,7 @@ IF (LTPZH .OR. LCOREF) THEN
     ZWORK33(:,:,:)=ZWORK31(:,:,:)
     ZWORK31(:,:,:)=(XMV/XMD)*ZWORK31(:,:,:)/(XPABST(:,:,:)-ZWORK31(:,:,:))
     ZWORK32(:,:,:)=100.*XRT(:,:,:,1)/ZWORK31(:,:,:)
-    IF (CCLOUD(1:3) =='ICE' .OR. CCLOUD =='C3R5')  THEN
+    IF (CCLOUD(1:3) =='ICE' .OR. CCLOUD =='C3R5' .OR. CCLOUD == 'LIMA')  THEN
       WHERE ( ZTEMP(:,:,:)< XTT)
         ZWORK31(:,:,:) = EXP( XALPI - XBETAI/ZTEMP(:,:,:) &
                        - XGAMI*ALOG(ZTEMP(:,:,:)) ) !saturation over ice
@@ -2588,14 +2686,15 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN
   IF (LUSERR) THEN
     ZWORK21(:,:) = XACPRR(:,:)*1E3      
   END IF
-  IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' ) THEN
+  IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'LIMA') THEN
     ZWORK21(:,:) = ZWORK21(:,:) + (XACPRS(:,:) + XACPRG(:,:))*1E3
     IF (SIZE(XINPRC) /= 0 ) &         
       ZWORK21(:,:) = ZWORK21(:,:) + XACPRC(:,:) *1E3
     IF (SIZE(XINPRH) /= 0 ) &        
       ZWORK21(:,:) = ZWORK21(:,:) + XACPRH(:,:) *1E3
   END IF
-  IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO' ) THEN
+  IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO' &
+                                             .OR. CCLOUD == 'LIMA' ) THEN
     IF (SIZE(XINPRC) /= 0 ) &         
       ZWORK21(:,:) = ZWORK21(:,:) + XACPRC(:,:) *1E3
   END IF
@@ -2603,7 +2702,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN
     ZWORK21(:,:) = ZWORK21(:,:) + XPACCONV(:,:)*1E3    
   END IF
   IF (LUSERR .OR. CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. &
-      CDCONV /= 'NONE') THEN
+                  CCLOUD == 'LIMA' .OR. CDCONV /= 'NONE') THEN
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   ELSE
     PRINT * ,'YOU WANT TO COMPUTE THE ACCUMULATED RAIN'
@@ -2639,14 +2738,15 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN
   IF (LUSERR) THEN
     ZWORK21(:,:) = XINPRR(:,:)*3.6E6      
   END IF
-  IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' ) THEN
+  IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'LIMA') THEN
     ZWORK21(:,:) = ZWORK21(:,:) + (XINPRS(:,:) + XINPRG(:,:))*3.6E6
     IF (SIZE(XINPRC) /= 0 ) &      
       ZWORK21(:,:) = ZWORK21(:,:) + XINPRC(:,:) *3.6E6       
     IF (SIZE(XINPRH) /= 0 ) &      
       ZWORK21(:,:) = ZWORK21(:,:) + XINPRH(:,:) *3.6E6       
   END IF
-  IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO' ) THEN
+  IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO' &
+                                             .OR. CCLOUD == 'LIMA' ) THEN
     IF (SIZE(XINPRC) /= 0 ) &         
       ZWORK21(:,:) = ZWORK21(:,:) + XINPRC(:,:) *3.6E6        
   END IF
@@ -2654,7 +2754,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN
     ZWORK21(:,:) = ZWORK21(:,:) + XPRCONV(:,:)*3.6E6  
   END IF
   IF (LUSERR .OR. CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. &
-      CDCONV /= 'NONE') THEN
+                  CCLOUD == 'LIMA' .OR. CDCONV /= 'NONE') THEN
     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK21,IGRID,ILENCH,YCOMMENT,IRESP)
   ELSE
     PRINT * ,'YOU WANT TO COMPUTE THE RAIN RATE'
@@ -2827,13 +2927,23 @@ IF(LRADAR .AND. LUSERR) THEN
     ALLOCATE(XCIT(IIU,IJU,IKU))    
     XCIT(:,:,:)=800.
     CALL INI_RADAR('PLAT')
+  ELSE IF (CCLOUD=='LIMA') THEN
+    DEALLOCATE(XCIT)
+    ALLOCATE(XCIT(IIU,IJU,IKU))    
+    XCIT(:,:,:)=XSVT(:,:,:,NSV_LIMA_NI)
+    CALL INI_RADAR('PLAT')
   END IF
 !       
   IF (NVERSION_RAD == 1) THEN 
 ! original version of radar diagnostics 
       WRITE(ILUOUT0,*) 'radar diagnostics from RADAR_RAIN_ICE routine'
+  IF (CCLOUD=='LIMA') THEN
+  CALL RADAR_RAIN_ICE (XRT, XCIT, XRHODREF, ZTEMP, ZWORK31, ZWORK32, &
+                       ZWORK33, ZWORK34,XSVT(:,:,:,NSV_LIMA_NR) )
+  ELSE          
   CALL RADAR_RAIN_ICE (XRT, XCIT, XRHODREF, ZTEMP, ZWORK31, ZWORK32, &
                                                          ZWORK33, ZWORK34 )
+  ENDIF                                                
 !
   YRECFM       ='RARE'
   YCOMMENT     ='X_Y_Z_RAdar REflectivity (dBZ)'
@@ -2933,12 +3043,12 @@ IF(LRADAR .AND. LUSERR) THEN
       ALLOCATE(ZWORK42_BIS(NBRAD,IIELV,NBAZIM,NBSTEPMAX+1,INBOUT))
     END IF
     !
-!    IF (CCLOUD=='LIMA') THEN
-!      CALL RADAR_SIMULATOR(XUT,XVT,XWT,XRT,XSVT(:,:,:,NSV_LIMA_NI),XRHODREF,&
-!                      ZTEMP,XPABST,ZWORK42,ZWORK43,XSVT(:,:,:,NSV_LIMA_NR))
-!    ELSE ! ICE3
+    IF (CCLOUD=='LIMA') THEN
+      CALL RADAR_SIMULATOR(XUT,XVT,XWT,XRT,XSVT(:,:,:,NSV_LIMA_NI),XRHODREF,&
+                      ZTEMP,XPABST,ZWORK42,ZWORK43,XSVT(:,:,:,NSV_LIMA_NR))
+    ELSE ! ICE3
       CALL RADAR_SIMULATOR(XUT,XVT,XWT,XRT,XCIT,XRHODREF,ZTEMP,XPABSM,ZWORK42,ZWORK43)      
-!    ENDIF
+    ENDIF
     ALLOCATE(YRAD(INBOUT))
     YRAD(1:9)=(/"ZHH","ZDR","KDP","CSR","ZER","ZEI","ZES","ZEG","VRU"/)
     ICURR=10
@@ -3044,27 +3154,48 @@ IF (LLIDAR) THEN
 !
   IF (LDUST) THEN
     IACCMODE=MIN(2,NMODE_DST)
+    ALLOCATE(ZTMP1(SIZE(XSVT,1), SIZE(XSVT,2), SIZE(XSVT,3), 1))
+    ALLOCATE(ZTMP2(SIZE(XSVT,1), SIZE(XSVT,2), SIZE(XSVT,3), 1))
+    ALLOCATE(ZTMP3(SIZE(XSVT,1), SIZE(XSVT,2), SIZE(XSVT,3), 1))
+    ZTMP1(:,:,:,1)=ZN0_DST(:,:,:,IACCMODE)
+    ZTMP2(:,:,:,1)=ZRG_DST(:,:,:,IACCMODE)
+    ZTMP3(:,:,:,1)=ZSIG_DST(:,:,:,IACCMODE)
     SELECT CASE ( CCLOUD )
     CASE('KESS','ICE2','ICE3','ICE4')
       CALL LIDAR(CCLOUD, YVIEW, XALT_LIDAR, XWVL_LIDAR, XZZ, XRHODREF, XCLDFR, &
-           XRT, ZWORK31, ZWORK32,                                  &
-           PDSTC=ZN0_DST(:,:,:,IACCMODE),                          &
-           PDSTD=ZRG_DST(:,:,:,IACCMODE),                          &
-           PDSTS=ZSIG_DST(:,:,:,IACCMODE) )
+                 XRT, ZWORK31, ZWORK32,                                        &
+                 PDSTC=ZTMP1,                                                  &
+                 PDSTD=ZTMP2,                                                  &
+                 PDSTS=ZTMP3)
     CASE('C2R2')
       CALL LIDAR(CCLOUD, YVIEW, XALT_LIDAR, XWVL_LIDAR, XZZ, XRHODREF, XCLDFR, &
-           XRT, ZWORK31, ZWORK32,                                  &
-           PCT=XSVT(:,:,:,NSV_C2R2BEG+1:NSV_C2R2END),              &
-           PDSTC=ZN0_DST(:,:,:,IACCMODE),                          &
-           PDSTD=ZRG_DST(:,:,:,IACCMODE),                          &
-           PDSTS=ZSIG_DST(:,:,:,IACCMODE) )
+                 XRT, ZWORK31, ZWORK32,                                        &
+                 PCT=XSVT(:,:,:,NSV_C2R2BEG+1:NSV_C2R2END),                    &
+                 PDSTC=ZTMP1,                                                  &
+                 PDSTD=ZTMP2,                                                  &
+                 PDSTS=ZTMP3)
     CASE('C3R5')
       CALL LIDAR(CCLOUD, YVIEW, XALT_LIDAR, XWVL_LIDAR, XZZ, XRHODREF, XCLDFR, &
-           XRT, ZWORK31, ZWORK32,                                  &
-           PCT=XSVT(:,:,:,NSV_C2R2BEG+1:NSV_C1R3END-1),            &
-           PDSTC=ZN0_DST(:,:,:,IACCMODE),                          &
-           PDSTD=ZRG_DST(:,:,:,IACCMODE),                          &
-           PDSTS=ZSIG_DST(:,:,:,IACCMODE) )
+                 XRT, ZWORK31, ZWORK32,                                        &
+                 PCT=XSVT(:,:,:,NSV_C2R2BEG+1:NSV_C1R3END-1),                  &
+                 PDSTC=ZTMP1,                                                  &
+                 PDSTD=ZTMP2,                                                  &
+                 PDSTS=ZTMP3)
+    CASE('LIMA')
+! PCT(2) = droplets (3)=drops (4)=ice crystals
+       ALLOCATE(ZTMP4(SIZE(XSVT,1), SIZE(XSVT,2), SIZE(XSVT,3), 4))
+       ZTMP4(:,:,:,1)=0.
+       ZTMP4(:,:,:,2)=XSVT(:,:,:,NSV_LIMA_NC)
+       ZTMP4(:,:,:,3)=XSVT(:,:,:,NSV_LIMA_NR)
+       ZTMP4(:,:,:,4)=XSVT(:,:,:,NSV_LIMA_NI)
+!
+       CALL LIDAR(CCLOUD, YVIEW, XALT_LIDAR, XWVL_LIDAR, XZZ, XRHODREF, XCLDFR,&
+            XRT, ZWORK31, ZWORK32,                                  &
+            PCT=ZTMP4,                            &
+            PDSTC=ZTMP1,                          &
+            PDSTD=ZTMP2,                          &
+            PDSTS=ZTMP3)
+!
     END SELECT
   ELSE
     SELECT CASE ( CCLOUD )
@@ -3079,8 +3210,24 @@ IF (LLIDAR) THEN
       CALL LIDAR(CCLOUD, YVIEW, XALT_LIDAR, XWVL_LIDAR, XZZ, XRHODREF, XCLDFR, &
            XRT, ZWORK31, ZWORK32,                                  &
            PCT=XSVT(:,:,:,NSV_C2R2BEG+1:NSV_C1R3END-1))
+    CASE('LIMA')
+! PCT(2) = droplets (3)=drops (4)=ice crystals
+       ALLOCATE(ZTMP4(SIZE(XSVT,1), SIZE(XSVT,2), SIZE(XSVT,3), 4))
+       ZTMP4(:,:,:,1)=0.
+       ZTMP4(:,:,:,2)=XSVT(:,:,:,NSV_LIMA_NC)
+       ZTMP4(:,:,:,3)=XSVT(:,:,:,NSV_LIMA_NR)
+       ZTMP4(:,:,:,4)=XSVT(:,:,:,NSV_LIMA_NI)
+!
+       CALL LIDAR(CCLOUD, YVIEW, XALT_LIDAR, XWVL_LIDAR, XZZ, XRHODREF, XCLDFR,&
+            XRT, ZWORK31, ZWORK32,                                  &
+            PCT=ZTMP4)
     END SELECT
   ENDIF
+!
+  IF( ALLOCATED(ZTMP1) ) DEALLOCATE(ZTMP1)
+  IF( ALLOCATED(ZTMP2) ) DEALLOCATE(ZTMP2)
+  IF( ALLOCATED(ZTMP3) ) DEALLOCATE(ZTMP3)
+  IF( ALLOCATED(ZTMP4) ) DEALLOCATE(ZTMP4)
 !
   YRECFM       ='LIDAR'
   YCOMMENT     ='X_Y_Z_Normalized_Lidar_Profile (1/m/sr)'
diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90
index bf3cba65a..376e3cf0d 100644
--- a/src/MNH/write_lfin.f90
+++ b/src/MNH/write_lfin.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /srv/cvsroot/MNH-VX-Y-Z/src/MNH/write_lfin.f90,v $ $Revision: 1.2.2.4.2.4.2.8.2.4.2.5 $
 ! masdev4_7 BUG1 2007/06/20 16:58:20
 !-----------------------------------------------------------------
 !     #########################
@@ -161,6 +161,7 @@ END MODULE MODI_WRITE_LFIFM_n
 !!       J.-P. Pinty   Jan 2015 add LNOx and flash map diagnostics
 !!       J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
 !!       J.escobar     04/08/2015 suit Pb with writ_lfin JSA increment , modif in ini_nsv to have good order initialization
+!!       Modification    01/2016  (JP Pinty) Add LIMA
 !!                   
 !-------------------------------------------------------------------------------
 !
@@ -222,6 +223,12 @@ USE MODD_PAST_FIELD_n
 USE MODD_ADV_n, ONLY: CUVW_ADV_SCHEME,XRTKEMS
 USE MODD_ELEC_FLASH
 !
+USE MODD_PARAM_LIMA     , ONLY: NMOD_CCN, LSCAV, LAERO_MASS,                &
+                                NMOD_IFN, NMOD_IMM, NINDICE_CCN_IMM, LHHONI
+USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES, CAERO_MASS
+USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES
+USE MODD_LIMA_PRECIP_SCAVENGING_n
+!
 USE MODE_FMWRIT
 USE MODE_ll
 USE MODE_IO_ll, ONLY: UPCASE,CLOSE_ll
@@ -302,6 +309,9 @@ INTEGER           :: INFO_ll
 INTEGER :: IKRAD
 INTEGER           :: JI,JJ,JK   ! loop index
 INTEGER           :: IIU,IJU,IKU,IIB,IJB,IKB,IIE,IJE,IKE ! Arrays bounds
+!
+CHARACTER(LEN=2)  :: INDICE
+INTEGER           :: I
 !-------------------------------------------------------------------------------
 !
 !*	0. Initialization
@@ -942,6 +952,106 @@ IF (NSV >=1) THEN
                 YCOMMENT,IRESP)
     JSA=JSA+1
   END DO
+!
+! microphysical LIMA variables
+!
+  DO JSV = NSV_LIMA_BEG,NSV_LIMA_END
+! Nc
+     IF (JSV .EQ. NSV_LIMA_NC) THEN
+        YRECFM=TRIM(CLIMA_WARM_NAMES(1))//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/kg)'
+     END IF
+! Nr
+     IF (JSV .EQ. NSV_LIMA_NR) THEN
+        YRECFM=TRIM(CLIMA_WARM_NAMES(2))//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/kg)'
+     END IF
+! N CCN free
+     IF (JSV .GE. NSV_LIMA_CCN_FREE .AND. JSV .LT. NSV_LIMA_CCN_ACTI) THEN
+        WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_CCN_FREE + 1)
+        YRECFM=TRIM(CLIMA_WARM_NAMES(3))//INDICE//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/kg)'
+     END IF
+! N CCN acti
+     IF (JSV .GE. NSV_LIMA_CCN_ACTI .AND. JSV .LT. NSV_LIMA_CCN_ACTI + NMOD_CCN) THEN
+        WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_CCN_ACTI + 1)
+        YRECFM=TRIM(CLIMA_WARM_NAMES(4))//INDICE//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/kg)'
+     END IF
+! Scavenging
+     IF (JSV .EQ. NSV_LIMA_SCAVMASS) THEN
+        YRECFM=TRIM(CAERO_MASS(1))//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (kg/kg)'
+     END IF
+! Ni
+     IF (JSV .EQ. NSV_LIMA_NI) THEN
+        YRECFM=TRIM(CLIMA_COLD_NAMES(1))//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/kg)'
+     END IF
+! N IFN free
+     IF (JSV .GE. NSV_LIMA_IFN_FREE .AND. JSV .LT. NSV_LIMA_IFN_NUCL) THEN
+        WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1)
+        YRECFM=TRIM(CLIMA_COLD_NAMES(2))//INDICE//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/kg)'
+     END IF
+! N IFN nucl
+     IF (JSV .GE. NSV_LIMA_IFN_NUCL .AND. JSV .LT. NSV_LIMA_IFN_NUCL + NMOD_IFN) THEN
+        WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_NUCL + 1)
+        YRECFM=TRIM(CLIMA_COLD_NAMES(3))//INDICE//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/kg)'
+     END IF
+! N IMM nucl
+     I = 0
+     IF (JSV .GE. NSV_LIMA_IMM_NUCL .AND. JSV .LT. NSV_LIMA_IMM_NUCL + NMOD_IMM) THEN
+        I = I + 1
+        WRITE(INDICE,'(I2.2)')(NINDICE_CCN_IMM(I))
+        YRECFM=TRIM(CLIMA_COLD_NAMES(4))//INDICE//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/kg)'
+     END IF
+! Hom. freez. of CCN
+     IF (JSV .EQ. NSV_LIMA_HOM_HAZE) THEN
+        YRECFM=TRIM(CLIMA_COLD_NAMES(5))//'T'
+        WRITE(YCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (/kg)'
+     END IF
+!
+!
+     ILENCH=LEN(YCOMMENT)
+     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,XSVT(:,:,:,JSV),IGRID,ILENCH,    &
+          YCOMMENT,IRESP)
+     JSA=JSA+1
+  END DO
+!
+  IF (LSCAV .AND. LAERO_MASS) THEN
+  IF (ASSOCIATED(XINPAP)) THEN
+  IF (SIZE(XINPAP) /= 0 ) THEN
+     ZWORK2D(:,:)  = XINPAP(:,:)
+     YRECFM      = 'INPAP'
+     YCOMMENT    = 'X_Y_INstantaneous Precipitating Aerosol Rate (kg/m2/s)'
+     IGRID       = 1
+     ILENCH      = LEN(YCOMMENT)
+     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D,IGRID,ILENCH, &
+                                             YCOMMENT,IRESP) ! unit conversion
+     ZWORK2D(:,:)  = XRHOLW*XINPRR(:,:)*XSVT(:,:,2,NSV_LIMA_SCAVMASS)/ &
+                                        max( 1.e-20,XRT(:,:,2,3) ) !~2=at ground level
+     YRECFM      = 'INPBP'
+     YCOMMENT    = 'X_Y_INstantaneous Precipitating Aerosol Rate (kg/m2/s)'
+     IGRID       = 1
+     ILENCH      = LEN(YCOMMENT)
+     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D,IGRID,ILENCH, &
+                                             YCOMMENT,IRESP) ! unit conversion
+!
+     ZWORK2D(:,:)  = XACPAP(:,:)
+     YRECFM      = 'ACPAP'
+     YCOMMENT    = 'X_Y_ACcumulated Precipitating Aerosol Rate (kg/m2)'
+     IGRID       = 1
+     ILENCH      = LEN(YCOMMENT)
+     CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D,IGRID,ILENCH, &
+                                             YCOMMENT,IRESP) ! unit conversion
+  END IF
+  END IF
+  END IF
+!
+!
   ! electrical scalar variables
   DO JSV = NSV_ELECBEG,NSV_ELECEND
     YRECFM=TRIM(CELECNAMES(JSV-NSV_ELECBEG+1))//'T'
diff --git a/src/MNH/write_profilern.f90 b/src/MNH/write_profilern.f90
index 4a03174e9..8f48f7b68 100644
--- a/src/MNH/write_profilern.f90
+++ b/src/MNH/write_profilern.f90
@@ -5,7 +5,7 @@
 !-----------------------------------------------------------------
 !--------------- special set of characters for RCS information
 !-----------------------------------------------------------------
-! $Source$ $Revision$
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/write_profilern.f90,v $ $Revision: 1.2.2.3.2.1.2.2.10.2.2.2 $
 ! masdev4_7 BUG1 2007/06/15 17:47:18
 !-----------------------------------------------------------------
 !      ###########################
@@ -59,8 +59,7 @@ END MODULE MODI_WRITE_PROFILER_n
 !!    MODIFICATIONS
 !!    -------------
 !!     Original 15/02/2002
-!!              July, 2015 (O.Nuissier/F.Duffourg) Add microphysics diagnostic for
-!!                                      aircraft, ballon and profiler
+!!     2016 : G.DELAUTIER : LIMA
 !!
 !! --------------------------------------------------------------------------
 !       
@@ -89,6 +88,9 @@ USE MODE_DUST_PSD
 USE MODE_AERO_PSD
 !
 USE MODI_WRITE_DIACHRO
+USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES, CAERO_MASS
+USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES
+USE MODD_PARAM_LIMA     , ONLY: NINDICE_CCN_IMM,NMOD_CCN,NMOD_IFN,NMOD_IMM
 !
 IMPLICIT NONE
 !
@@ -142,6 +144,8 @@ INTEGER :: JPROC    ! loop counter
 INTEGER :: JRR      ! loop counter
 INTEGER :: JSV      ! loop counter
 INTEGER :: IKU, IK  ! loop counter
+CHARACTER(LEN=2)  :: INDICE
+INTEGER           :: I
 !
 !----------------------------------------------------------------------------
 !
@@ -149,7 +153,7 @@ IF (TPROFILER%X(II)==XUNDEF) RETURN
 IF (TPROFILER%Y(II)==XUNDEF) RETURN
 IKU = SIZE(TPROFILER%W,2)    !nbre de niveaux sur la verticale SIZE(TPROFILER%W,2)
 !
-IPROC = 27 + SIZE(TPROFILER%R,4) + SIZE(TPROFILER%SV,4)
+IPROC = 22 + SIZE(TPROFILER%R,4) + SIZE(TPROFILER%SV,4)
 IF (LDIAG_IN_RUN) IPROC = IPROC + 13
 IF (LORILAM) IPROC = IPROC + JPMODE*3
 IF (LDUST) IPROC = IPROC + NMODE_DST*3
@@ -192,66 +196,6 @@ YCOMMENT (JPROC) = 'Radar reflectivity'
 ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%RARE(:,IK,II)
 !
 JPROC = JPROC + 1
-YTITLE   (JPROC) = 'SPEEDC'
-YUNIT    (JPROC) = 'm/s'
-YCOMMENT (JPROC) = 'Cloud sedimentation speed'
-ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%SPEEDC(:,IK,II)
-!
-JPROC = JPROC + 1
-YTITLE   (JPROC) = 'SPEEDR'
-YUNIT    (JPROC) = 'm/s'
-YCOMMENT (JPROC) = 'Rain sedimentation speed'
-ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%SPEEDR(:,IK,II)
-!
-JPROC = JPROC + 1
-YTITLE   (JPROC) = 'SPEEDS'
-YUNIT    (JPROC) = 'm/s'
-YCOMMENT (JPROC) = 'Snow sedimentation speed'
-ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%SPEEDS(:,IK,II)
-!
-JPROC = JPROC + 1
-YTITLE   (JPROC) = 'SPEEDG'
-YUNIT    (JPROC) = 'm/s'
-YCOMMENT (JPROC) = 'Graupel sedimentation speed'
-ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%SPEEDG(:,IK,II)
-!
-JPROC = JPROC + 1
-YTITLE   (JPROC) = 'SPEEDH'
-YUNIT    (JPROC) = 'm/s'
-YCOMMENT (JPROC) = 'Hail sedimentation speed'
-ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%SPEEDH(:,IK,II)
-!
-JPROC = JPROC + 1
-YTITLE   (JPROC) = 'INPRC3D'
-YUNIT    (JPROC) = 'mm/h'
-YCOMMENT (JPROC) = 'Cloud sedimentation rate'   
-ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%INPRC3D(:,IK,II)
-!
-JPROC = JPROC + 1
-YTITLE   (JPROC) = 'INPRR3D'
-YUNIT    (JPROC) = 'mm/h'
-YCOMMENT (JPROC) = 'Rain sedimentation rate'   
-ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%INPRR3D(:,IK,II)
-!
-JPROC = JPROC + 1
-YTITLE   (JPROC) = 'INPRS3D'
-YUNIT    (JPROC) = 'mm/h'
-YCOMMENT (JPROC) = 'Snow sedimentation rate'   
-ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%INPRS3D(:,IK,II)
-!
-JPROC = JPROC + 1
-YTITLE   (JPROC) = 'INPRG3D'
-YUNIT    (JPROC) = 'mm/h'
-YCOMMENT (JPROC) = 'Graupel sedimentation rate'   
-ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%INPRG3D(:,IK,II)
-!
-JPROC = JPROC + 1
-YTITLE   (JPROC) = 'INPRH3D'
-YUNIT    (JPROC) = 'mm/h'
-YCOMMENT (JPROC) = 'Hail sedimentation rate'   
-ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%INPRH3D(:,IK,II)
-!
-JPROC = JPROC + 1
 YTITLE   (JPROC) = 'P'
 YUNIT    (JPROC) = 'Pascal'
 YCOMMENT (JPROC) = 'Pressure' 
@@ -477,6 +421,41 @@ IF (SIZE(TPROFILER%SV,4)>=1) THEN
     YCOMMENT (JPROC) = ' '
     ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%SV(:,IK,II,JSV)
   END DO
+  ! LIMA variables
+  DO JSV=NSV_LIMA_BEG,NSV_LIMA_END
+    JPROC = JPROC+1
+    YUNIT    (JPROC) = '/kg'
+    YCOMMENT (JPROC) = ' '
+    IF (JSV==NSV_LIMA_NC) YTITLE(JPROC)=TRIM(CLIMA_WARM_NAMES(1))//'T' 
+    IF (JSV==NSV_LIMA_NR) YTITLE(JPROC)=TRIM(CLIMA_WARM_NAMES(2))//'T' 
+    IF (JSV .GE. NSV_LIMA_CCN_FREE .AND. JSV .LT. NSV_LIMA_CCN_ACTI) THEN
+        WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_CCN_FREE + 1)
+        YTITLE(JPROC)=TRIM(CLIMA_WARM_NAMES(3))//INDICE//'T'
+    ENDIF
+    IF (JSV .GE. NSV_LIMA_CCN_ACTI .AND. JSV .LT. NSV_LIMA_CCN_ACTI + NMOD_CCN) THEN
+        WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_CCN_ACTI + 1)
+        YTITLE(JPROC)=TRIM(CLIMA_WARM_NAMES(4))//INDICE//'T'
+    ENDIF
+    IF (JSV .EQ. NSV_LIMA_SCAVMASS) YTITLE(JPROC)=TRIM(CAERO_MASS(1))//'T'
+    IF (JSV==NSV_LIMA_NI) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(1))//'T' 
+    IF (JSV .GE. NSV_LIMA_IFN_FREE .AND. JSV .LT. NSV_LIMA_IFN_NUCL) THEN
+        WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1)
+        YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(2))//INDICE//'T'
+    ENDIF
+    IF (JSV .GE. NSV_LIMA_IFN_NUCL .AND. JSV .LT. NSV_LIMA_IFN_NUCL + NMOD_IFN) THEN
+        WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_NUCL + 1)
+        YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(3))//INDICE//'T'
+    ENDIF
+    I = 0
+    IF (JSV .GE. NSV_LIMA_IMM_NUCL .AND. JSV .LT. NSV_LIMA_IMM_NUCL + NMOD_IMM) THEN
+        I = I + 1
+        WRITE(INDICE,'(I2.2)')(NINDICE_CCN_IMM(I))
+        YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(4))//INDICE//'T'
+    ENDIF
+    IF (JSV .EQ. NSV_LIMA_HOM_HAZE) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(5))//'T'
+
+    ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%SV(:,IK,II,JSV)
+  END DO 
   ! electrical scalar variables
   DO JSV = NSV_ELECBEG,NSV_ELECEND
     JPROC = JPROC+1
-- 
GitLab