diff --git a/src/MNH/aircraft_balloon_evol.f90 b/src/MNH/aircraft_balloon_evol.f90
index 21552784ad055e87fbce0afc5a2994ef7e9e44fe..0f47accb881f03e038a0a80441231187f9675d64 100644
--- a/src/MNH/aircraft_balloon_evol.f90
+++ b/src/MNH/aircraft_balloon_evol.f90
@@ -931,7 +931,9 @@ USE MODD_PARAM_LIMA,       ONLY: LSNOW_T_L => LSNOW_T,
                                  XALPHAG_L => XALPHAG, XNUG_L => XNUG, XALPHAI_L => XALPHAI, XNUI_L => XNUI, &
                                  XRTMIN_L => XRTMIN, XALPHAC_L => XALPHAC, XNUC_L => XNUC
 USE MODD_PARAM_LIMA_COLD,  ONLY: XAI_L => XAI, XBI_L => XBI, XLBEXS_L => XLBEXS,XLBS_L => XLBS,XCCS_L => XCCS,    &
-                                 XAS_L => XAS, XBS_L => XBS, XCXS_L => XCXS, XLBDAS_MAX, XLBDAS_MIN, XNS_L => XNS
+                                 XAS_L => XAS, XBS_L => XBS, XCXS_L => XCXS,                                      &
+                                 XLBDAS_MAX_L => XLBDAS_MAX, XLBDAS_MIN_L => XLBDAS_MIN,                          &
+                                 XNS_L => XNS, XTRANS_MP_GAMMAS_L=>XTRANS_MP_GAMMAS
 USE MODD_PARAM_LIMA_MIXED, ONLY: XLBEXG_L => XLBEXG, XLBG_L => XLBG, XCCG_L => XCCG, XAG_L => XAG, XBG_L => XBG, XCXG_L => XCXG
 USE MODD_PARAM_LIMA_WARM,  ONLY: XAC_L => XAC, XAR_L => XAR, XBC_L => XBC, XBR_L => XBR
 USE MODD_PARAM_n,          ONLY: CCLOUD, CSURF
@@ -945,7 +947,9 @@ USE MODD_RAIN_ICE_DESCR,   ONLY: XALPHAR_I => XALPHAR, XNUR_I => XNUR, XLBEXR_I
                                  XLBG_I => XLBG, XCCG_I => XCCG, XAG_I => XAG, XBG_I => XBG, XCXG_I => XCXG, &
                                  XALPHAI_I => XALPHAI, XNUI_I => XNUI, XLBEXI_I => XLBEXI,                   &
                                  XLBI_I => XLBI, XAI_I => XAI, XBI_I => XBI,                                 &
-                                 XNS_I => XNS, XRTMIN_I => XRTMIN, XCONC_LAND, XCONC_SEA
+                                 XNS_I => XNS, XRTMIN_I => XRTMIN, XCONC_LAND, XCONC_SEA,                    &
+                                 XLBDAS_MAX_I => XLBDAS_MAX, XLBDAS_MIN_I => XLBDAS_MIN,                     &
+                                 XTRANS_MP_GAMMAS_I => XTRANS_MP_GAMMAS
 
 USE MODE_FGAU,             ONLY: GAULAG
 USE MODE_FSCATTER,         ONLY: BHMIE, MOMG, MG, QEPSI, QEPSW
@@ -1230,12 +1234,18 @@ IF (CCLOUD=="LIMA" .OR. CCLOUD=="ICE3" ) THEN ! only for ICE3 and LIMA
               ZLB=( ZA*ZCC*MOMG(ZALPHA,ZNU,ZB) )**(-ZLBEX)
             ENDIF
         END SELECT
-        ZLBDA=ZLB*(ZRHODREFZ(JK)*ZRZ(JK,JLOOP))**ZLBEX
-        IF ( JLOOP ==  5 .AND. ( (CCLOUD=='LIMA'.AND.LSNOW_T_L) .OR. &
-                                 (CCLOUD=='ICE3'.AND.LSNOW_T_I) ) ) THEN
-            ZLBDA = MAX(MIN(XLBDAS_MAX, 10**(14.554-0.0423*(ZTEMPZ(JK)+273.15))),XLBDAS_MIN)
+        IF ( JLOOP ==  5 .AND. CCLOUD=='LIMA'.AND.LSNOW_T_L ) THEN
+          IF (ZTEMPZ(JK)>XTT-10.) THEN
+            ZLBDA = MAX(MIN(XLBDAS_MAX_L, 10**(14.554-0.0423*ZTEMPZ(JK))),XLBDAS_MIN_L)*XTRANS_MP_GAMMAS_L
           ELSE
-            ZLBDA = MAX(MIN(XLBDAS_MAX, 10**(6.226-0.0106*(ZTEMPZ(JK)+273.15))),XLBDAS_MIN)
+            ZLBDA = MAX(MIN(XLBDAS_MAX_L, 10**(6.226-0.0106*ZTEMPZ(JK))),XLBDAS_MIN_L)*XTRANS_MP_GAMMAS_L
+          END IF
+          ZN=ZNS*ZRHODREFZ(JK)*ZRZ(JK,JLOOP)*ZLBDA**ZB
+        ELSE IF (JLOOP.EQ.5 .AND. (CCLOUD=='ICE3'.AND.LSNOW_T_I) ) THEN
+          IF (ZTEMPZ(JK)>XTT-10.) THEN
+            ZLBDA = MAX(MIN(XLBDAS_MAX_I, 10**(14.554-0.0423*ZTEMPZ(JK))),XLBDAS_MIN_I)*XTRANS_MP_GAMMAS_I
+          ELSE
+            ZLBDA = MAX(MIN(XLBDAS_MAX_I, 10**(6.226-0.0106*ZTEMPZ(JK))),XLBDAS_MIN_I)*XTRANS_MP_GAMMAS_I
           END IF
           ZN=ZNS*ZRHODREFZ(JK)*ZRZ(JK,JLOOP)*ZLBDA**ZB
         ELSE
diff --git a/src/MNH/ch_monitorn.f90 b/src/MNH/ch_monitorn.f90
index b225ac270ce8058284c1c08224e26e2484159e55..b920b35daa6280d5fa94dc1b384b2a5745a0fef3 100644
--- a/src/MNH/ch_monitorn.f90
+++ b/src/MNH/ch_monitorn.f90
@@ -652,7 +652,6 @@ SELECT CASE (CCH_TDISCRETIZATION)
 END SELECT
 !
 !
-IF (LEN_TRIM(CSPEC_BU_DIAG)/=0.OR.LEN_TRIM(CSPEC_DIAG)/=0) GSPLIT=.FALSE.  ! Modif. for DIAG
 IF (CPROGRAM=='DIAG  ') GSPLIT=.FALSE.  ! Modif. for DIAG
 !
 !
diff --git a/src/MNH/lidar.f90 b/src/MNH/lidar.f90
index be6756c48b54a2549553ce70e6dc6b068d66b30a..e838af284ef178dbc183326e7d8163ecd2e515be 100644
--- a/src/MNH/lidar.f90
+++ b/src/MNH/lidar.f90
@@ -17,7 +17,7 @@ REAL,                     INTENT(IN) :: PALT    ! Altitude of the lidar source
 REAL,                     INTENT(IN) :: PWVL    ! Wavelength of the lidar source
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PZZ     ! Altitude
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PRHO    ! Air density
-REAL, DIMENSION(:,:,:),   INTENT(IN) :: PT      ! Air temperature (C)
+REAL, DIMENSION(:,:,:),   INTENT(IN) :: PT      ! Air temperature
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PCLDFR  ! Cloud fraction
 REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT     ! Moist variables at t
 REAL, DIMENSION(:,:,:),  INTENT(OUT) :: PLIDAROUT ! Lidar output
@@ -101,10 +101,11 @@ USE MODD_PARAM_C2R2,      ONLY : YALPHAC=>XALPHAC,YNUC=>XNUC, &
                                  YALPHAR=>XALPHAR,YNUR=>XNUR
 USE MODD_PARAM_ICE,        ONLY: WSNOW_T=>LSNOW_T
 USE MODD_RAIN_ICE_DESCR,  ONLY : XCCR, WLBEXR=>XLBEXR, XLBR, &
-                                 XCCS, XCXS,   XLBEXS, XLBS, XNS, &
+                                 XCCS, XCXS,   XLBEXS, XLBS, WNS=>XNS, WBS=>XBS, &
                                  XCCG, XCXG,   XLBEXG, XLBG, &
                                  XCCH, XCXH,   XLBEXH, XLBH, &
-                                 WRTMIN=>XRTMIN
+                                 WRTMIN=>XRTMIN,   &
+                                 WLBDAS_MAX=>XLBDAS_MAX,WLBDAS_MIN=>XLBDAS_MIN,WTRANS_MP_GAMMAS=>XTRANS_MP_GAMMAS
 USE MODD_ICE_C1R3_DESCR,  ONLY : XLBEXI,                      &
                                  YRTMIN=>XRTMIN, YCTMIN=>XCTMIN
 !
@@ -114,8 +115,8 @@ USE MODD_PARAM_LIMA,      ONLY : URTMIN=>XRTMIN, UCTMIN=>XCTMIN, &
                                  UALPHAI=>XALPHAI,UNUI=>XNUI, &
                                  USNOW_T=>LSNOW_T
 USE MODD_PARAM_LIMA_COLD, ONLY : UCCS=>XCCS, UCXS=>XCXS, ULBEXS=>XLBEXS, & 
-                                                ULBS=>XLBS, UNS=>XNS,    &
-                                 XLBDAS_MAX,XLBDAS_MIN,  UBS=>XBS
+                                                ULBS=>XLBS, UNS=>XNS, UBS=>XBS,   &
+                                 ULBDAS_MAX=>XLBDAS_MAX,ULBDAS_MIN=>XLBDAS_MIN,UTRANS_MP_GAMMAS=>XTRANS_MP_GAMMAS
 USE MODD_PARAM_LIMA_MIXED,ONLY : UCCG=>XCCG, UCXG=>XCXG, ULBEXG=>XLBEXG, &
                                                          ULBG=>XLBG
 
@@ -134,7 +135,7 @@ REAL,                     INTENT(IN) :: PALT    ! Altitude of the lidar source
 REAL,                     INTENT(IN) :: PWVL    ! Wavelength of the lidar source
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PZZ     ! Altitude
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PRHO    ! Air density
-REAL, DIMENSION(:,:,:),   INTENT(IN) :: PT      ! Air temperature (C)
+REAL, DIMENSION(:,:,:),   INTENT(IN) :: PT      ! Air temperature
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PCLDFR  ! Cloud fraction
 REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT     ! Moist variables at t
 REAL, DIMENSION(:,:,:),  INTENT(OUT) :: PLIDAROUT ! Lidar output
@@ -273,7 +274,7 @@ SELECT CASE ( HCLOUD )
     ZCXS    = XCXS
     ZLBEXS  = XLBEXS
     ZLBS    = XLBS
-    ZNS     = XNS
+    ZNS     = WNS
     ZCCG    = XCCG
     ZCXG    = XCXG
     ZLBEXG  = XLBEXG
@@ -530,14 +531,20 @@ SELECT CASE ( HCLOUD )
 !
             YDSD = 'MONOD'
             ZIWC    = PRHO(JI,JJ,JK)*PRT(JI,JJ,JK,5)
-            IF ( (HCLOUD=='LIMA' .AND. USNOW_T) .OR. &
-                 (HCLOUD=='ICE3' .AND. WSNOW_T) ) THEN
-               IF (PT(JI,JJ,JK)>-10.) THEN
-                  ZLBDAS = MAX(MIN(XLBDAS_MAX, 10**(14.554-0.0423*(PT(JI,JJ,JK)+273.15))),XLBDAS_MIN)
+            IF (HCLOUD=='LIMA' .AND. USNOW_T) THEN
+               IF (PT(JI,JJ,JK)>263.15) THEN
+                  ZLBDAS = MAX(MIN(ULBDAS_MAX, 10**(14.554-0.0423*PT(JI,JJ,JK))),ULBDAS_MIN)*UTRANS_MP_GAMMAS
                ELSE
-                  ZLBDAS = MAX(MIN(XLBDAS_MAX, 10**(6.226-0.0106*(PT(JI,JJ,JK)+273.15))),XLBDAS_MIN)
+                  ZLBDAS = MAX(MIN(ULBDAS_MAX, 10**(6.226-0.0106*PT(JI,JJ,JK))),ULBDAS_MIN)*UTRANS_MP_GAMMAS
                END IF
                ZCONC=ZNS*ZIWC*ZLBDAS**UBS
+            ELSE IF (HCLOUD=='ICE3' .AND. WSNOW_T) THEN
+               IF (PT(JI,JJ,JK)>263.15) THEN
+                  ZLBDAS = MAX(MIN(WLBDAS_MAX, 10**(14.554-0.0423*PT(JI,JJ,JK))),WLBDAS_MIN)*WTRANS_MP_GAMMAS
+               ELSE
+                  ZLBDAS = MAX(MIN(WLBDAS_MAX, 10**(6.226-0.0106*PT(JI,JJ,JK))),WLBDAS_MIN)*WTRANS_MP_GAMMAS
+               END IF
+               ZCONC=ZNS*ZIWC*ZLBDAS**WBS
             ELSE
                ZLBDAS  = ZLBS*(ZIWC)**ZLBEXS
                ZCONC   = ZCCS*(ZLBDAS)**ZCXS
diff --git a/src/MNH/profilern.f90 b/src/MNH/profilern.f90
index 0b8083a90ca0eccec04eb651ff5b41b7b3d77f83..904d5c71a3468f9d40cdc0b7a5fe79b5267b40a5 100644
--- a/src/MNH/profilern.f90
+++ b/src/MNH/profilern.f90
@@ -100,7 +100,9 @@ USE MODD_PARAM_LIMA,       ONLY: LSNOW_T_L => LSNOW_T,
                                  XRTMIN_L => XRTMIN, XALPHAC_L => XALPHAC, XNUC_L => XNUC
 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, XLBDAS_MAX, XLBDAS_MIN, XNS_L => XNS
+                                 XAS_L => XAS, XBS_L => XBS, XCXS_L => XCXS,                                                   &
+                                 XLBDAS_MAX_L => XLBDAS_MAX, XLBDAS_MIN_L => XLBDAS_MIN,                                       &
+                                 XNS_L => XNS, XTRANS_MP_GAMMAS_L=>XTRANS_MP_GAMMAS
 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_WARM,  ONLY: XLBEXR_L => XLBEXR, XLBR_L => XLBR, XBR_L => XBR, XAR_L => XAR, &
@@ -118,7 +120,9 @@ USE MODD_RAIN_ICE_DESCR,   ONLY: XALPHAR_I => XALPHAR, XNUR_I => XNUR, XLBEXR_I
                                  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,                               &
-                                 XNS_I => XNS, XRTMIN_I => XRTMIN, XCONC_LAND, XCONC_SEA
+                                 XNS_I => XNS, XRTMIN_I => XRTMIN, XCONC_LAND, XCONC_SEA,                                  &
+                                 XLBDAS_MAX_I => XLBDAS_MAX, XLBDAS_MIN_I => XLBDAS_MIN,                                   &
+                                 XTRANS_MP_GAMMAS_I => XTRANS_MP_GAMMAS
 !
 USE MODE_FGAU,             ONLY: GAULAG
 USE MODE_FSCATTER,         ONLY: BHMIE, QEPSI, QEPSW, MG, MOMG
@@ -584,12 +588,18 @@ PROFILER: DO JP = 1, NUMBPROFILER_LOC
                 ZLB=( ZA*ZCC*MOMG(ZALPHA,ZNU,ZB) )**(-ZLBEX)
               END IF
           END SELECT
-          IF ( JLOOP ==  5 .AND. ( (CCLOUD=='LIMA'.AND.LSNOW_T_L).OR. &
-                                   (CCLOUD=='ICE3'.AND.LSNOW_T_I) ) ) THEN
-            IF (ZTEMPZ(JK)>-10.) THEN
-              ZLBDA = MAX(MIN(XLBDAS_MAX, 10**(14.554-0.0423*(ZTEMPZ(JK)+273.15))),XLBDAS_MIN)
+          IF ( JLOOP ==  5 .AND. CCLOUD=='LIMA'.AND.LSNOW_T_L ) THEN
+            IF (ZTEMPZ(JK)>XTT-10.) THEN
+              ZLBDA = MAX(MIN(XLBDAS_MAX_L, 10**(14.554-0.0423*ZTEMPZ(JK))),XLBDAS_MIN_L)*XTRANS_MP_GAMMAS_L
             ELSE
-              ZLBDA = MAX(MIN(XLBDAS_MAX, 10**(6.226-0.0106*(ZTEMPZ(JK)+273.15))),XLBDAS_MIN)
+              ZLBDA = MAX(MIN(XLBDAS_MAX_L, 10**(6.226-0.0106*ZTEMPZ(JK))),XLBDAS_MIN_L)*XTRANS_MP_GAMMAS_L
+            END IF
+            ZN=ZNS*ZRHODREFZ(JK)*ZRZ(JK,JLOOP)*ZLBDA**ZB
+          ELSE IF (JLOOP.EQ.5 .AND. (CCLOUD=='ICE3'.AND.LSNOW_T_I) ) THEN
+            IF (ZTEMPZ(JK)>XTT-10.) THEN
+              ZLBDA = MAX(MIN(XLBDAS_MAX_I, 10**(14.554-0.0423*ZTEMPZ(JK))),XLBDAS_MIN_I)*XTRANS_MP_GAMMAS_I
+            ELSE
+              ZLBDA = MAX(MIN(XLBDAS_MAX_I, 10**(6.226-0.0106*ZTEMPZ(JK))),XLBDAS_MIN_I)*XTRANS_MP_GAMMAS_I
             END IF
             ZN=ZNS*ZRHODREFZ(JK)*ZRZ(JK,JLOOP)*ZLBDA**ZB
           ELSE
diff --git a/src/MNH/radar_scattering.f90 b/src/MNH/radar_scattering.f90
index 2aa752e759dc9864de5a4b3cb350e0e26b833a25..6be39ef8d042385fe7c97c358f57857bcf23722e 100644
--- a/src/MNH/radar_scattering.f90
+++ b/src/MNH/radar_scattering.f90
@@ -116,12 +116,14 @@ USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XDR_I=>XDR,XLBEXR
                                XLBH_I=>XLBH,XCCH_I=>XCCH,XAH_I=>XAH,XBH_I=>XBH,XCXH_I=>XCXH,XCH_I=>XCH,&
                                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,&
-                               XRTMIN_I=>XRTMIN
+                               XRTMIN_I=>XRTMIN,        &
+                               XLBDAS_MAX_I=>XLBDAS_MAX,XLBDAS_MIN_I=>XLBDAS_MIN,XTRANS_MP_GAMMAS_I=>XTRANS_MP_GAMMAS
 !!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,XNS_L=>XNS,XAS_L=>XAS,XBS_L=>XBS,&
-                                XCXS_L=>XCXS,XCS_L=>XCS,XLBDAS_MIN,XLBDAS_MAX
+                                XCXS_L=>XCXS,XCS_L=>XCS,&
+                                XLBDAS_MAX_L=>XLBDAS_MAX,XLBDAS_MIN_L=>XLBDAS_MIN,XTRANS_MP_GAMMAS_L=>XTRANS_MP_GAMMAS
 
 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,&
@@ -1287,11 +1289,22 @@ DO JI=1,INBRAD
                     ZDMELT_FACT=6.*ZAS/(XPI*.92*XRHOLW)
                     ZEXP=2.*ZBS !XBS = 1.9 in ini_radar.f90 (bj tab 2.1 p24)
                     !dans ini_rain_ice.f90 :
-                    IF ( (GLIMA .AND. LSNOW_T_L) .OR. (.NOT.GLIMA .AND. LSNOW_T_I) ) THEN
-                       IF (PT_RAY(JI,JEL,JAZ,JL,JH,JV)>-10.) THEN
-                          ZLBDA = MAX(MIN(XLBDAS_MAX, 10**(14.554-0.0423*(PT_RAY(JI,JEL,JAZ,JL,JH,JV)+273.15))),XLBDAS_MIN)
+                    IF (GLIMA .AND. LSNOW_T_L) THEN
+                       IF (PT_RAY(JI,JEL,JAZ,JL,JH,JV)>263.15) THEN
+                          ZLBDA = MAX(MIN(XLBDAS_MAX_L, 10**(14.554-0.0423*PT_RAY(JI,JEL,JAZ,JL,JH,JV))),XLBDAS_MIN_L) &
+                                  *XTRANS_MP_GAMMAS_L
                        ELSE
-                          ZLBDA = MAX(MIN(XLBDAS_MAX, 10**(6.226-0.0106*(PT_RAY(JI,JEL,JAZ,JL,JH,JV)+273.15))),XLBDAS_MIN)
+                          ZLBDA = MAX(MIN(XLBDAS_MAX_L, 10**(6.226-0.0106*PT_RAY(JI,JEL,JAZ,JL,JH,JV))),XLBDAS_MIN_L) &
+                                  *XTRANS_MP_GAMMAS_L
+                       END IF
+                       ZN=ZNS*ZM*ZLBDA**ZBS
+                    ELSE IF (.NOT.GLIMA .AND. LSNOW_T_I) THEN
+                       IF (PT_RAY(JI,JEL,JAZ,JL,JH,JV)>263.15) THEN
+                          ZLBDA = MAX(MIN(XLBDAS_MAX_I, 10**(14.554-0.0423*PT_RAY(JI,JEL,JAZ,JL,JH,JV))),XLBDAS_MIN_I) &
+                                  *XTRANS_MP_GAMMAS_I
+                       ELSE
+                          ZLBDA = MAX(MIN(XLBDAS_MAX_I, 10**(6.226-0.0106*PT_RAY(JI,JEL,JAZ,JL,JH,JV))),XLBDAS_MIN_I) &
+                                  *XTRANS_MP_GAMMAS_I
                        END IF
                        ZN=ZNS*ZM*ZLBDA**ZBS
                     ELSE
diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90
index 0f2ceab346b4416ee5aa1546b9a018094fec621c..b00e4fff99a132b790f2ed8738286b87e05363e9 100644
--- a/src/MNH/read_exsegn.f90
+++ b/src/MNH/read_exsegn.f90
@@ -301,7 +301,7 @@ END MODULE MODI_READ_EXSEG_n
 !  P. Wautelet 09/03/2021: simplify allocation of scalar variable names
 !  P. Wautelet 09/03/2021: move some chemistry initializations to ini_nsv
 !  P. Wautelet 10/03/2021: move scalar variable name initializations to ini_nsv
-!  R. Honnert  23/04/2021: add ADAP mixing length and delete HRIO and BOUT from CMF_UPDRAFT
+!  R. Honnert  23/04/2021: add HM21 mixing length and delete HRIO and BOUT from CMF_UPDRAFT
 !  S. Riette   11/05/2021  HighLow cloud
 !  A. Costes      12/2021: add Blaze fire model
 !  P. Wautelet 27/04/2022: add namelist for profilers
@@ -916,7 +916,7 @@ CALL TEST_NAM_VAR(ILUOUT,'CLBCY(1)',CLBCY(1),'CYCL','WALL','OPEN')
 CALL TEST_NAM_VAR(ILUOUT,'CLBCY(2)',CLBCY(2),'CYCL','WALL','OPEN')
 !
 CALL TEST_NAM_VAR(ILUOUT,'CTURBDIM',CTURBDIM,'1DIM','3DIM')
-CALL TEST_NAM_VAR(ILUOUT,'CTURBLEN',CTURBLEN,'DELT','BL89','RM17','DEAR','BLKR','ADAP')
+CALL TEST_NAM_VAR(ILUOUT,'CTURBLEN',CTURBLEN,'DELT','BL89','RM17','DEAR','BLKR','HM21')
 CALL TEST_NAM_VAR(ILUOUT,'CTOM',CTOM,'NONE','TM06')
 CALL TEST_NAM_VAR(ILUOUT,'CSUBG_AUCV',CSUBG_AUCV,'NONE','CLFR','SIGM','PDF','ADJU')
 CALL TEST_NAM_VAR(ILUOUT,'CSUBG_AUCV_RI',CSUBG_AUCV_RI,'NONE','CLFR','ADJU')
@@ -1670,7 +1670,7 @@ ELSE
   END IF
 END IF
 !
-IF(CTURBLEN=='RM17' .OR. CTURBLEN=='ADAP') THEN
+IF(CTURBLEN=='RM17' .OR. CTURBLEN=='HM21') THEN
   XCEDIS=0.34
 ELSE
   XCEDIS=0.84
diff --git a/src/PHYEX/micro/ini_lima_cold_mixed.f90 b/src/PHYEX/micro/ini_lima_cold_mixed.f90
index e8af15d58d1d3803bc3d0a555402fb5fe8e3eaf1..2e3d956a46102eb75e5707369aed815f7f9bb798 100644
--- a/src/PHYEX/micro/ini_lima_cold_mixed.f90
+++ b/src/PHYEX/micro/ini_lima_cold_mixed.f90
@@ -343,8 +343,8 @@ IF (GFLAG) THEN
   WRITE(UNIT=ILUOUT0,FMT='(" XLBEXH =",E13.6," XLBH =",E13.6)') XLBEXH,XLBH
 END IF
 !
-XLBDAS_MAX = 500000. ! used only before transforming lambda for non MP PSD
-XLBDAS_MIN = 1000. *1.E-10
+XLBDAS_MAX = 1.E7 ! (eq to r~1E-7kg/kg) (for non MP PSD, use conversion XTRANS_MP_GAMMAS)
+XLBDAS_MIN = 1.   ! (eq to r~0.18kg/kg) (for non MP PSD, use conversion XTRANS_MP_GAMMAS)
 XLBDAG_MAX = 100000.0
 !
 ZCONC_MAX  = 1.E6 ! Maximal concentration for falling particules set to 1 per cc
diff --git a/src/PHYEX/micro/ini_rain_ice.f90 b/src/PHYEX/micro/ini_rain_ice.f90
index 38f8fed026c66cf7102942d0cb5d9ed0d25fc317..2f3b2b1c4aee01a9703c23f5351d0c27835246ec 100644
--- a/src/PHYEX/micro/ini_rain_ice.f90
+++ b/src/PHYEX/micro/ini_rain_ice.f90
@@ -442,11 +442,11 @@ XLBH   = ( XAH*XCCH*MOMG(XALPHAH,XNUH,XBH) )**(-XLBEXH)
 XLBDAS_MAX = 100000.0
 !
 ZCONC_MAX  = 1.E6 ! Maximal concentration for falling particules set to 1 per cc
-#if defined(REPRO48) || defined(REPRO55)
 IF(XCCS>0. .AND. XCXS>0. )XLBDAS_MAX = ( ZCONC_MAX/XCCS )**(1./XCXS)
+#if defined(REPRO48) || defined(REPRO55)
 #else
-XLBDAS_MAX = 1.E6
-XLBDAS_MIN = 1000.
+IF (LSNOW_T) XLBDAS_MAX = 1.E6
+XLBDAS_MIN = 1.E-10
 #endif
 !
 XCONC_SEA=1E8 ! 100/cm3
diff --git a/src/PHYEX/micro/lima.f90 b/src/PHYEX/micro/lima.f90
index 9859c4bd02f194d19caae1e7e1cbd7c522344a7c..0ed11fe4885abca003bda12c21d85a861f293d43 100644
--- a/src/PHYEX/micro/lima.f90
+++ b/src/PHYEX/micro/lima.f90
@@ -419,6 +419,8 @@ ZHOMFT(:,:,:)   = 0.
 ZHOMFS(:,:,:)   = 0.
 
 if ( lbu_enable ) then
+  Z_RR_CVRC(:,:,:) = 0.
+  Z_CR_CVRC(:,:,:) = 0.
   allocate( ZTOT_CR_BRKU (size( ptht, 1), size( ptht, 2), size( ptht, 3) ) ); ZTOT_CR_BRKU(:,:,:) = 0.
   allocate( ZTOT_TH_HONR (size( ptht, 1), size( ptht, 2), size( ptht, 3) ) ); ZTOT_TH_HONR(:,:,:) = 0.
   allocate( ZTOT_RR_HONR (size( ptht, 1), size( ptht, 2), size( ptht, 3) ) ); ZTOT_RR_HONR(:,:,:) = 0.
@@ -679,6 +681,13 @@ ZT(:,:,:)   = ZTHT(:,:,:) * ZEXN(:,:,:)
 !               -------------
 !
 !
+PINPRC=0.
+PINDEP=0.
+PINPRR=0.
+PINPRI=0.
+PINPRS=0.
+PINPRG=0.
+PINPRH=0.
 if ( lbu_enable ) then
   if ( lbudget_th )                         call Budget_store_init( tbudgets(NBUDGET_TH), 'SEDI', zths(:, :, :) * prhodj(:, :, :) )
   if ( lbudget_rc .and. lwarm .and. lsedc ) call Budget_store_init( tbudgets(NBUDGET_RC), 'SEDI', zrcs(:, :, :) * prhodj(:, :, :) )
@@ -767,8 +776,6 @@ IF (LWARM .AND. LDEPOC) THEN
 END IF
 !
 !
-!!$Z_RR_CVRC(:,:,:) = 0.
-!!$Z_CR_CVRC(:,:,:) = 0.
 !!$IF (LWARM .AND. LRAIN) THEN
 !!$   if( lbu_enable ) then
 !!$    if ( lbudget_rc ) call Budget_store_init( tbudgets(NBUDGET_RC),                    'R2C1', zrcs(:, :, :) * prhodj(:, :, :) )
diff --git a/src/PHYEX/micro/lima_collisional_ice_breakup.f90 b/src/PHYEX/micro/lima_collisional_ice_breakup.f90
index 3c22bf960b56fca62f3387524493a3a62438cdf8..a6848d14345bcdf23a70338347f5b8ab66940e7b 100644
--- a/src/PHYEX/micro/lima_collisional_ice_breakup.f90
+++ b/src/PHYEX/micro/lima_collisional_ice_breakup.f90
@@ -128,7 +128,8 @@ REAL                               :: ZFACT1_XNDEBRIS, ZFACT2_XNDEBRIS
 !
 !-------------------------------------------------------------------------------
 
-GCIBU(:) = LCIBU .AND. (PRST(:)>XRTMIN(5)) .AND. (PRGT(:)>XRTMIN(6)) .AND. LDCOMPUTE(:)
+GCIBU(:) = LCIBU        .AND. PRST(:)>XRTMIN(5) .AND. PRGT(:)>XRTMIN(6) .AND. &
+           LDCOMPUTE(:) .AND. PCST(:)>XCTMIN(5) .AND. PCGT(:)>XCTMIN(6)
 ICIBU    = COUNT( GCIBU(:) )
 !
 P_RI_CIBU(:)=0.
diff --git a/src/PHYEX/micro/lima_conversion_melting_snow.f90 b/src/PHYEX/micro/lima_conversion_melting_snow.f90
index 454df3eba33b2ef1b975c33c3de003a0c6ac9c64..ef46c794f37aee347aa52ea5bf8c338502b53801 100644
--- a/src/PHYEX/micro/lima_conversion_melting_snow.f90
+++ b/src/PHYEX/micro/lima_conversion_melting_snow.f90
@@ -64,7 +64,7 @@ END MODULE MODI_LIMA_CONVERSION_MELTING_SNOW
 !              ------------
 !
 USE MODD_CST,              ONLY : XTT, XMV, XMD, XLVTT, XCPV, XCL, XESTT, XRV
-USE MODD_PARAM_LIMA,       ONLY : XRTMIN, XNUS, XALPHAS
+USE MODD_PARAM_LIMA,       ONLY : XRTMIN, XCTMIN, XNUS, XALPHAS
 USE MODD_PARAM_LIMA_MIXED, ONLY : XFSCVMG
 USE MODD_PARAM_LIMA_COLD,  ONLY : X0DEPS, XEX0DEPS, X1DEPS, XEX1DEPS, XBS, XFVELOS
 !
@@ -104,7 +104,7 @@ P_RS_CMEL(:)=0.
 P_CS_CMEL(:)=0.
 !
 ZW(:) = 0.0
-WHERE( (PRST(:)>XRTMIN(5)) .AND. (PT(:)>XTT) .AND. LDCOMPUTE(:) )
+WHERE( PRST(:)>XRTMIN(5) .AND. PCST(:)>XCTMIN(5) .AND. PT(:)>XTT .AND. LDCOMPUTE(:) )
    ZW(:) = PRVT(:)*PPRES(:)/((XMV/XMD)+PRVT(:)) ! Vapor pressure
    ZW(:) = PKA(:)*(XTT-PT(:)) +                                 &
               ( PDV(:)*(XLVTT + ( XCPV - XCL ) * ( PT(:) - XTT )) &
diff --git a/src/PHYEX/micro/lima_droplets_accretion.f90 b/src/PHYEX/micro/lima_droplets_accretion.f90
index c7a4232fdaf6fc57a7051f15d3c2c6e58afea091..d183953cd21da3563c87d7fc851af9bd76d10539 100644
--- a/src/PHYEX/micro/lima_droplets_accretion.f90
+++ b/src/PHYEX/micro/lima_droplets_accretion.f90
@@ -116,6 +116,7 @@ ZW4(:) = 0.0
 IF ( LKHKO ) THEN
 !
    GACCR(:) = PRRT(:)>XRTMIN(3) .AND. &
+              PCRT(:)>XCTMIN(3) .AND. &
               PRCT(:)>XRTMIN(2) .AND. &
               PCCT(:)>XCTMIN(2)
 !
@@ -130,8 +131,8 @@ IF ( LKHKO ) THEN
    END WHERE
 !
 ELSE IF (NMOM_C.EQ.1 .AND. NMOM_R.EQ.1) THEN
-   GACCR(:) = PRRT(:)>XRTMIN(3) .AND. &
-              PRCT(:)>XRTMIN(2)
+   GACCR(:) = PRRT(:)>XRTMIN(3) .AND. PCRT(:)>XCTMIN(3) .AND. &
+              PRCT(:)>XRTMIN(2) .AND. PCCT(:)>XCTMIN(2)
    WHERE ( GACCR(:) )
       P_RC_ACCR(:) = - XFCACCR * PRCT(:)    &
                    * PLBDR(:)**XEXCACCR     &
diff --git a/src/PHYEX/micro/lima_droplets_hom_freezing.f90 b/src/PHYEX/micro/lima_droplets_hom_freezing.f90
index 58e12b5f14f1739266ea459c622a3b40a75b81a9..b33d7a3501fdf56c3925db691f50a11af30b2e5f 100644
--- a/src/PHYEX/micro/lima_droplets_hom_freezing.f90
+++ b/src/PHYEX/micro/lima_droplets_hom_freezing.f90
@@ -98,7 +98,7 @@ P_TH_HONC(:) = 0.
 P_RC_HONC(:) = 0.
 P_CC_HONC(:) = 0.
 !
-WHERE ( (PT(:)<XTT-35.0) .AND. (PCCT(:)>XCTMIN(2)) .AND. (PRCT(:)>XRTMIN(2)) )
+WHERE ( PT(:)<XTT-35.0 .AND. PCCT(:)>XCTMIN(2) .AND. PRCT(:)>XRTMIN(2) )
    ZTCELSIUS(:) = PT(:)-XTT                                    ! T [°C]
    !
    ZZW(:) = 0.0
diff --git a/src/PHYEX/micro/lima_droplets_riming_snow.f90 b/src/PHYEX/micro/lima_droplets_riming_snow.f90
index b9d76536589f3b8752802dc34b3efcc8eb41433e..cd46682388de1ab48cd16f98169998029eb2dca6 100644
--- a/src/PHYEX/micro/lima_droplets_riming_snow.f90
+++ b/src/PHYEX/micro/lima_droplets_riming_snow.f90
@@ -76,7 +76,7 @@ END MODULE MODI_LIMA_DROPLETS_RIMING_SNOW
 !              ------------
 !
 USE MODD_CST,              ONLY : XTT
-USE MODD_PARAM_LIMA,       ONLY : XRTMIN, XCEXVT, XNUS, XALPHAS, LMURAKAMI
+USE MODD_PARAM_LIMA,       ONLY : XRTMIN, XCTMIN, XCEXVT, XNUS, XALPHAS, LMURAKAMI
 USE MODD_PARAM_LIMA_MIXED, ONLY : NGAMINC, XRIMINTP1, XRIMINTP2, XGAMINC_RIM1, XGAMINC_RIM2, XGAMINC_RIM4, &
                                   XCRIMSS, XEXCRIMSS, XSRIMCG, XEXSRIMCG, XSRIMCG2, XSRIMCG3, XEXSRIMCG2, &
                                   XHMLINTP1, XHMLINTP2, XGAMINC_HMC, XHM_FACTS, XHMTMIN, XHMTMAX
@@ -129,7 +129,8 @@ DO JI = 1, SIZE(PRCT)
 !*       Cloud droplet riming of the aggregates  
 !        --------------------------------------
 !
-   IF ( PRCT(JI)>XRTMIN(2) .AND. PRST(JI)>XRTMIN(5) .AND. PT(JI)<XTT .AND. LDCOMPUTE(JI) ) THEN
+   IF ( PRCT(JI)>XRTMIN(2) .AND. PRST(JI)>XRTMIN(5) .AND. PT(JI)<XTT .AND. &
+        PCCT(JI)>XCTMIN(2) .AND. PCST(JI)>XCTMIN(5) .AND. LDCOMPUTE(JI) ) THEN
 !
       ZVEC1(JI) = PLBDS(JI)
       ZVEC1W(JI)= ( XFVELOS**XALPHAS + PLBDS(JI)**XALPHAS ) ** (1./XALPHAS) ! modified equivalent lambda
@@ -200,8 +201,8 @@ DO JI = 1, SIZE(PRCT)
 !*       Hallett-Mossop ice production (HMS)  
 !        -----------------------------------
 !
-   IF ( PT(JI)<XHMTMAX .AND. PT(JI)>XHMTMIN .AND.                      &
-        PRST(JI)>XRTMIN(5) .AND. PRCT(JI)>XRTMIN(2) .AND. LDCOMPUTE(JI) ) THEN
+   IF ( PRST(JI)>XRTMIN(5) .AND. PRCT(JI)>XRTMIN(2) .AND. PT(JI)<XHMTMAX .AND. PT(JI)>XHMTMIN .AND. &
+        PCST(JI)>XCTMIN(5) .AND. PCCT(JI)>XCTMIN(2) .AND. LDCOMPUTE(JI) ) THEN
 !
       ZVEC1(JI) = PLBDC(JI)
       ZVEC2(JI) = MAX( 1.0001, MIN( REAL(NGAMINC)-0.0001,           &
diff --git a/src/PHYEX/micro/lima_drops_self_collection.f90 b/src/PHYEX/micro/lima_drops_self_collection.f90
index 042cde0842bf74116c47e156ce7d85ed03d5522a..3f064dfcdc0f19a5124562e4d8a5658f2a31a7c5 100644
--- a/src/PHYEX/micro/lima_drops_self_collection.f90
+++ b/src/PHYEX/micro/lima_drops_self_collection.f90
@@ -105,12 +105,12 @@ ZW1(:) = 0.0
 ZW2(:) = 0.0
 ZW3(:) = 0.0
 !
-WHERE (PCRT(:)>XCTMIN(3) .AND. (ZW4(:)>1.E-4) .AND. LDCOMPUTE(:))  ! analytical integration
+WHERE ( PCRT(:)>XCTMIN(3) .AND. ZW4(:)>1.E-4 .AND. LDCOMPUTE(:))  ! analytical integration
    ZW1(:) = XSCBU2 * PCRT(:)**2 / PLBDR3(:)                        ! D>100 10-6 m
    ZW3(:) = ZW1(:)*ZSCBU(:)
 END WHERE
 !
-WHERE (PCRT(:)>XCTMIN(3) .AND. (ZW4(:)<=1.E-4) .AND. LDCOMPUTE(:))
+WHERE ( PCRT(:)>XCTMIN(3) .AND. ZW4(:)<=1.E-4 .AND. LDCOMPUTE(:))
    ZW2(:) = XSCBU3 *(PCRT(:) / PLBDR3(:))**2                       ! D<100 10-6 m
    ZW3(:) = ZW2(:)
 END WHERE
diff --git a/src/PHYEX/micro/lima_graupel.f90 b/src/PHYEX/micro/lima_graupel.f90
index 00ad1646afd9a083366e53b0bcab3406a243666e..8c96d2e0957a34003e2c4ff6ff5bf10b7bebcda1 100644
--- a/src/PHYEX/micro/lima_graupel.f90
+++ b/src/PHYEX/micro/lima_graupel.f90
@@ -146,7 +146,7 @@ END MODULE MODI_LIMA_GRAUPEL
 !              ------------
 !
 USE MODD_CST,              ONLY : XTT, XMD, XMV, XRD, XRV, XLVTT, XLMTT, XESTT, XCL, XCI, XCPV
-USE MODD_PARAM_LIMA,       ONLY : XRTMIN, XCEXVT, LHAIL
+USE MODD_PARAM_LIMA,       ONLY : XRTMIN, XCTMIN, XCEXVT, LHAIL
 USE MODD_PARAM_LIMA_MIXED, ONLY : XCXG, XDG, X0DEPG, X1DEPG, NGAMINC,                             &
                                   XFCDRYG, XFIDRYG, XCOLIG, XCOLSG, XCOLEXIG, XCOLEXSG,           &
                                   XFSDRYG, XLBSDRYG1, XLBSDRYG2, XLBSDRYG3, XKER_SDRYG,           &
@@ -323,7 +323,7 @@ END WHERE
 !*           1.b Collection of rs in the dry mode
 !            ------------------------------------
 !
-GDRY(:) = PRST(:)>XRTMIN(5) .AND. PRGT(:)>XRTMIN(6) .AND. LDCOMPUTE(:)
+GDRY(:) = PRST(:)>XRTMIN(5) .AND. PCST(:)>XCTMIN(5) .AND. PRGT(:)>XRTMIN(6) .AND. PCGT(:)>XCTMIN(6) .AND. LDCOMPUTE(:)
 !
 WHERE( GDRY )
 !
@@ -389,7 +389,7 @@ END WHERE
 !*           1.c  Collection of rr in the dry mode
 !            -------------------------------------
 !
-GDRY(:) = PRRT(:)>XRTMIN(3) .AND. PRGT(:)>XRTMIN(6) .AND. LDCOMPUTE(:)
+GDRY(:) = PRRT(:)>XRTMIN(3) .AND. PCRT(:)>XCTMIN(3) .AND. PRGT(:)>XRTMIN(6) .AND. PCGT(:)>XCTMIN(6) .AND. LDCOMPUTE(:)
 !
 WHERE( GDRY )
 !
@@ -462,7 +462,7 @@ ZRDRYG(:) = ZZW1(:) + ZZW2(:) + ZZW3(:) + ZZW4(:)
 !            ------------------------------
 !
 ZZW(:) = 0.0
-WHERE( PRGT(:)>XRTMIN(6) .AND. LDCOMPUTE(:) )
+WHERE( PRGT(:)>XRTMIN(6) .AND. PCGT(:)>XCTMIN(6) .AND. LDCOMPUTE(:) )
    ZZW5(:) = ZZW2(:) / (XCOLIG*EXP(XCOLEXIG*(PT(:)-XTT)) ) ! RIWETG
    ZZW6(:) = ZZW3(:) / (XCOLSG*EXP(XCOLEXSG*(PT(:)-XTT)) ) ! RSWETG
    ZZW6N(:)= ZZW3N(:)/ (XCOLSG*EXP(XCOLEXSG*(PT(:)-XTT)) ) ! NSWETG
@@ -488,7 +488,7 @@ END WHERE
 ZZW(:) = 0.0
 NHAIL = 0.
 IF (LHAIL) NHAIL = 1. 
-WHERE( LDCOMPUTE(:) .AND. PRGT(:)>XRTMIN(6) .AND. PT(:)<XTT .AND. &
+WHERE( LDCOMPUTE(:) .AND. PRGT(:)>XRTMIN(6) .AND. PCGT(:)>XCTMIN(6) .AND. PT(:)<XTT .AND. &
        (ZRDRYG(:)-ZZW2(:)-ZZW3(:))>=(ZRWETG(:)-ZZW5(:)-ZZW6(:)) .AND. ZRWETG(:)-ZZW5(:)-ZZW6(:)>0.0 ) 
 !
 ! Mass of rain and cloud droplets frozen by graupel in wet mode : RCWETG + RRWETG = RWETG - RIWETG - RSWETG
@@ -517,7 +517,7 @@ END WHERE
 !            1.g Dry mode
 !            ------------
 !
-WHERE( LDCOMPUTE(:) .AND. PRGT(:)>XRTMIN(6) .AND. PT(:)<XTT .AND.                  &
+WHERE( LDCOMPUTE(:) .AND. PRGT(:)>XRTMIN(6) .AND. PCGT(:)>XCTMIN(6) .AND. PT(:)<XTT .AND.                  &
        (ZRDRYG(:)-ZZW2(:)-ZZW3(:))<(ZRWETG(:)-ZZW5(:)-ZZW6(:)) .AND. ZRDRYG(:)>0.0 )
    !
    P_RC_DRYG(:) = - ZZW1(:)
@@ -540,7 +540,7 @@ END WHERE
 ! BVIE test ZRDRYG<ZZW ?????????????????????????
 !GDRY(:) = (PT(:)<XHMTMAX) .AND. (PT(:)>XHMTMIN)    .AND. (ZRDRYG(:)<ZZW(:))&
 GDRY(:) = PT(:)<XHMTMAX .AND. PT(:)>XHMTMIN .AND. PRGT(:)>XRTMIN(6) .AND. PRCT(:)>XRTMIN(2) .AND. LDCOMPUTE(:) .AND. &
-          (ZRDRYG(:)-ZZW2(:)-ZZW3(:))<(ZRWETG(:)-ZZW5(:)-ZZW6(:))
+          PCGT(:)>XCTMIN(6) .AND. PCCT(:)>XCTMIN(2) .AND. (ZRDRYG(:)-ZZW2(:)-ZZW3(:))<(ZRWETG(:)-ZZW5(:)-ZZW6(:))
 
 ZZX(:)=9999.
 ZVEC1(:)=0.
@@ -571,7 +571,7 @@ END WHERE
 !        -------------------
 !
 ZZX(:) = 0.0
-WHERE( (PRGT(:)>XRTMIN(6)) .AND. (PT(:)>XTT) .AND. LDCOMPUTE(:) )
+WHERE( PRGT(:)>XRTMIN(6) .AND. PCGT(:)>XCTMIN(6) .AND. PT(:)>XTT .AND. LDCOMPUTE(:) )
    ZZX(:) = PRVT(:)*PPRES(:)/((XMV/XMD)+PRVT(:)) ! Vapor pressure
    ZZX(:) = PKA(:)*(XTT-PT(:)) +                                 &
               ( PDV(:)*(XLVTT + ( XCPV - XCL ) * ( PT(:) - XTT )) &
diff --git a/src/PHYEX/micro/lima_rain_accr_snow.f90 b/src/PHYEX/micro/lima_rain_accr_snow.f90
index 7be5e1b4c13a52e8649a1bacf8f686c0f959700a..a63ac24a4b9c776d316c18074682e61dddff53ed 100644
--- a/src/PHYEX/micro/lima_rain_accr_snow.f90
+++ b/src/PHYEX/micro/lima_rain_accr_snow.f90
@@ -70,7 +70,7 @@ END MODULE MODI_LIMA_RAIN_ACCR_SNOW
 !              ------------
 !
 USE MODD_CST,              ONLY : XTT
-USE MODD_PARAM_LIMA,       ONLY : XRTMIN, XCEXVT
+USE MODD_PARAM_LIMA,       ONLY : XRTMIN, XCTMIN, XCEXVT
 USE MODD_PARAM_LIMA_WARM,  ONLY : XBR
 USE MODD_PARAM_LIMA_COLD,  ONLY : XBS, XTRANS_MP_GAMMAS
 USE MODD_PARAM_LIMA_MIXED, ONLY : NACCLBDAS, XACCINTP1S, XACCINTP2S,             &
@@ -134,6 +134,12 @@ ZZW3(:) = 0.
 ZZW4(:) = 0.
 ZZW5(:) = 0.
 !
+ZZWC1(:) = 0.
+ZZWC2(:) = 0.
+ZZWC3(:) = 0.
+ZZWC4(:) = 0.
+ZZWC5(:) = 0.
+!
 IVEC1(:) = 0
 IVEC2(:) = 0
 ZVEC1(:) = 0.
@@ -145,7 +151,8 @@ ZVEC3(:) = 0.
 !
 !
 GACC(:) = .False.
-GACC(:) = (PRRT(:)>XRTMIN(3)) .AND. (PRST(:)>XRTMIN(5)) .AND. (PT(:)<XTT) .AND. LDCOMPUTE(:)
+GACC(:) = (PRRT(:)>XRTMIN(3)) .AND. (PRST(:)>XRTMIN(5)) .AND. (PT(:)<XTT) .AND. LDCOMPUTE(:) .AND. &
+          (PCRT(:)>XCTMIN(3)) .AND. (PCST(:)>XCTMIN(5))
 !
 WHERE( GACC )
 !
@@ -288,7 +295,7 @@ WHERE( GACC )
               XLBSACCR2/( PLBDR(:)    * PLBDS(:)    ) + &
               XLBSACCR3/(               PLBDS(:)**2 ) )
 !
-   ZZWC5(:)= XFNSACCRG * ZZW3(:) * PCRT(:) *             & ! RSACCRG
+   ZZWC5(:)= XFNSACCRG * ZZWC3(:) * PCRT(:) *            & ! RSACCRG
              PCST(:) * PRHODREF(:)**(1-XCEXVT) * &
             ( XLBNSACCR1/( PLBDR(:)**2               ) + &
               XLBNSACCR2/( PLBDR(:)    * PLBDS(:)    ) + &
@@ -303,7 +310,6 @@ WHERE( GACC )
 !
 END WHERE
 !
-!
 !-------------------------------------------------------------------------------
 !
 CONTAINS
diff --git a/src/PHYEX/micro/lima_rain_freezing.f90 b/src/PHYEX/micro/lima_rain_freezing.f90
index a5a9225bc78a8382920f419595afa8b0c4b87b65..a6c9504a1cef696a5003a099c293a41060ed4fa7 100644
--- a/src/PHYEX/micro/lima_rain_freezing.f90
+++ b/src/PHYEX/micro/lima_rain_freezing.f90
@@ -65,7 +65,7 @@ END MODULE MODI_LIMA_RAIN_FREEZING
 !              ------------
 !
 USE MODD_CST,              ONLY : XTT
-USE MODD_PARAM_LIMA,       ONLY : XRTMIN, XCEXVT
+USE MODD_PARAM_LIMA,       ONLY : XRTMIN, XCTMIN, XCEXVT
 USE MODD_PARAM_LIMA_MIXED, ONLY : XICFRR, XEXICFRR, XRCFRI, XEXRCFRI
 !
 IMPLICIT NONE
@@ -111,7 +111,8 @@ P_CI_CFRZ(:)=0.
 ZW1(:)=0.
 ZW2(:)=0.
 !
-WHERE( (PRIT(:)>XRTMIN(4)) .AND. (PRRT(:)>XRTMIN(3)) .AND. (PT(:)<XTT) .AND. LDCOMPUTE(:) )
+WHERE( PRIT(:)>XRTMIN(4) .AND. PRRT(:)>XRTMIN(3) .AND. PT(:)<XTT .AND. &
+       PCIT(:)>XCTMIN(4) .AND. PCRT(:)>XCTMIN(3) .AND. LDCOMPUTE(:) )
 !
    ZW1(:) = XICFRR * PRIT(:) * PCRT(:)                    & ! RICFRRG
                                      * PLBDR(:)**XEXICFRR         &
diff --git a/src/PHYEX/micro/radar_rain_ice.f90 b/src/PHYEX/micro/radar_rain_ice.f90
index c8ff0e2d5852f8aa36322e6ea2ae6718cf2ee9be..cf97a981ade422f5d257a46c93a48cf234056ce1 100644
--- a/src/PHYEX/micro/radar_rain_ice.f90
+++ b/src/PHYEX/micro/radar_rain_ice.f90
@@ -112,13 +112,14 @@ USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XLBEXR_I=>XLBEXR,
                                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
+                               XALPHAH_I=>XALPHAH,XNUH_I=>XNUH,XCXH_I=>XCXH,XDH_I=>XDH,XCH_I=>XCH,XBH_I=>XBH,        &
+                               XLBDAS_MAX_I=>XLBDAS_MAX,XLBDAS_MIN_I=>XLBDAS_MIN,XTRANS_MP_GAMMAS_I=>XTRANS_MP_GAMMAS
 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,XNS_L=>XNS,&
                                 XAS_L=>XAS,XBS_L=>XBS,XCXS_L=>XCXS,XCS_L=>XCS,XDS_L=>XDS,&
-                                XLBDAS_MIN,XLBDAS_MAX
+                                XLBDAS_MAX_L=>XLBDAS_MAX,XLBDAS_MIN_L=>XLBDAS_MIN,XTRANS_MP_GAMMAS_L=>XTRANS_MP_GAMMAS
 
 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,&
@@ -335,41 +336,43 @@ END IF
 !
 IF (SIZE(PRT,4) >= 5) THEN
    IF ( (CCLOUD=='LIMA' .AND. LSNOW_T_L) ) THEN
-    ZDMELT_FACT = ( (6.0*XAS_L)/(XPI*XRHOLW) )**(2.0)
-    ZEXP = 2.0*XBS_L
-    WHERE(PTEMP(:,:,:)>-10. .AND. PRT(:,:,:,5).GT.XRTMIN_L(5))
-       ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX, 10**(14.554-0.0423*(PTEMP(:,:,:)+273.15))),XLBDAS_MIN)
-    END WHERE
-    WHERE(PTEMP(:,:,:)<=-10 .AND. PRT(:,:,:,5).GT.XRTMIN_L(5))
-       ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX, 10**(6.226-0.0106*(PTEMP(:,:,:)+273.15))),XLBDAS_MIN)
-    END WHERE
-    IF (NMOM_S.GE.2) THEN
-      ZN(:,:,:)=PCST(:,:,:)
-    ELSE
-      ZN(:,:,:)=XNS_L*PRHODREF(:,:,:)*PRT(:,:,:,5)*ZLBDA(:,:,:)**XBS_L
-    END IF
-    WHERE( PRT(:,:,:,5).GT.XRTMIN_L(5) )
-      ZW(:,:,:) = ZEQICE*ZDMELT_FACT                                             &
-                  *1.E18*ZN(:,:,:)*(ZLBDA(:,:,:)**(-ZEXP))*MOMG(XALPHAS_L,XNUS_L,ZEXP)
-      PVDOP(:,:,:) = PVDOP(:,:,:)+ZEQICE*ZDMELT_FACT*MOMG(XALPHAS_L,XNUS_L,ZEXP+XDS_L) &
-                     *1.E18*ZN(:,:,:)*XCS_L*(ZLBDA(:,:,:)**(-ZEXP-XDS_L))
-      PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
-    END WHERE
+      ZDMELT_FACT = ( (6.0*XAS_L)/(XPI*XRHOLW) )**(2.0)
+      ZEXP = 2.0*XBS_L
+      WHERE(PTEMP(:,:,:)>263.15 .AND. PRT(:,:,:,5).GT.XRTMIN_L(5))
+         ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX_L, 10**(14.554-0.0423*PTEMP(:,:,:))),XLBDAS_MIN_L)*XTRANS_MP_GAMMAS_L
+      END WHERE
+      WHERE(PTEMP(:,:,:)<=263.15 .AND. PRT(:,:,:,5).GT.XRTMIN_L(5))
+         ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX_L, 10**(6.226 -0.0106*PTEMP(:,:,:))),XLBDAS_MIN_L)*XTRANS_MP_GAMMAS_L
+      END WHERE
+      IF (NMOM_S.GE.2) THEN
+         ZN(:,:,:)=PCST(:,:,:)
+      ELSE
+         WHERE( PRT(:,:,:,5).GT.XRTMIN_L(5) )
+            ZN(:,:,:)=XNS_L*PRHODREF(:,:,:)*PRT(:,:,:,5)*ZLBDA(:,:,:)**XBS_L
+         END WHERE
+      END IF
+      WHERE( PRT(:,:,:,5).GT.XRTMIN_L(5) )
+         ZW(:,:,:) = ZEQICE*ZDMELT_FACT                                             &
+              *1.E18*PRHODREF(:,:,:)*ZN(:,:,:)*(ZLBDA(:,:,:)**(-ZEXP))*MOMG(XALPHAS_L,XNUS_L,ZEXP)
+         PVDOP(:,:,:) = PVDOP(:,:,:)+ZEQICE*ZDMELT_FACT*MOMG(XALPHAS_L,XNUS_L,ZEXP+XDS_L) &
+              *1.E18*PRHODREF(:,:,:)*ZN(:,:,:)*XCS_L*(ZLBDA(:,:,:)**(-ZEXP-XDS_L))
+         PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
+      END WHERE
    ELSEIF ( (CCLOUD=='ICE3' .AND. LSNOW_T_I) ) THEN
     ZDMELT_FACT = ( (6.0*XAS_I)/(XPI*XRHOLW) )**(2.0)
     ZEXP = 2.0*XBS_I
-    WHERE(PTEMP(:,:,:)>-10. .AND. PRT(:,:,:,5).GT.XRTMIN_I(5))
-       ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX, 10**(14.554-0.0423*(PTEMP(:,:,:)+273.15))),XLBDAS_MIN)
+    WHERE(PTEMP(:,:,:)>263.15 .AND. PRT(:,:,:,5).GT.XRTMIN_I(5))
+       ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX_I, 10**(14.554-0.0423*PTEMP(:,:,:))),XLBDAS_MIN_I)*XTRANS_MP_GAMMAS_I
     END WHERE
-    WHERE(PTEMP(:,:,:)<=-10 .AND. PRT(:,:,:,5).GT.XRTMIN_I(5))
-       ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX, 10**(6.226-0.0106*(PTEMP(:,:,:)+273.15))),XLBDAS_MIN)
+    WHERE(PTEMP(:,:,:)<=263.15 .AND. PRT(:,:,:,5).GT.XRTMIN_I(5))
+       ZLBDA(:,:,:) = MAX(MIN(XLBDAS_MAX_I, 10**(6.226- 0.0106*PTEMP(:,:,:))),XLBDAS_MIN_I)*XTRANS_MP_GAMMAS_I
     END WHERE
     ZN(:,:,:)=XNS_I*PRHODREF(:,:,:)*PRT(:,:,:,5)*ZLBDA(:,:,:)**XBS_I
     WHERE( PRT(:,:,:,5).GT.XRTMIN_I(5) )
       ZW(:,:,:) = ZEQICE*ZDMELT_FACT                                             &
-                  *1.E18*ZN(:,:,:)*(ZLBDA(:,:,:)**(-ZEXP))*MOMG(XALPHAS_I,XNUS_I,ZEXP)
+                  *1.E18*PRHODREF(:,:,:)*ZN(:,:,:)*(ZLBDA(:,:,:)**(-ZEXP))*MOMG(XALPHAS_I,XNUS_I,ZEXP)
       PVDOP(:,:,:) = PVDOP(:,:,:)+ZEQICE*ZDMELT_FACT*MOMG(XALPHAS_I,XNUS_I,ZEXP+XDS_I) &
-                     *1.E18*ZN(:,:,:)*XCS_I*(ZLBDA(:,:,:)**(-ZEXP-XDS_I))
+                     *1.E18*PRHODREF(:,:,:)*ZN(:,:,:)*XCS_I*(ZLBDA(:,:,:)**(-ZEXP-XDS_I))
       PRARE(:,:,:) = PRARE(:,:,:) + ZW(:,:,:)
     END WHERE
   ELSEIF (CCLOUD=='LIMA') THEN
diff --git a/src/PHYEX/turb/turb.f90 b/src/PHYEX/turb/turb.f90
index dd5029524d292cc0350d5121c4a5c42984aef2d2..2a8a60e323301d8d5ffcdb501c46ef57fe56c552 100644
--- a/src/PHYEX/turb/turb.f90
+++ b/src/PHYEX/turb/turb.f90
@@ -532,7 +532,7 @@ ZEXPL = 1.- TURBN%XIMPL
 ZRVORD= CST%XRV / CST%XRD
 !
 !Copy data into ZTHLM and ZRM only if needed
-IF (TURBN%CTURBLEN=='BL89' .OR. TURBN%CTURBLEN=='RM17' .OR. TURBN%CTURBLEN=='ADAP' .OR. TURBN%LRMC01) THEN
+IF (TURBN%CTURBLEN=='BL89' .OR. TURBN%CTURBLEN=='RM17' .OR. TURBN%CTURBLEN=='HM21' .OR. TURBN%LRMC01) THEN
   ZTHLM(IIJB:IIJE,1:IKT) = PTHLT(IIJB:IIJE,1:IKT)
   ZRM(IIJB:IIJE,1:IKT,:) = PRT(IIJB:IIJE,1:IKT,:)
 END IF
@@ -749,7 +749,7 @@ SELECT CASE (TURBN%CTURBLEN)
 !*      3.3 Grey-zone combined RM17 & Deardorff mixing lengths
 !           --------------------------------------------------
 
-  CASE ('ADAP')
+  CASE ('HM21')
     CALL GZ_U_UW_PHY(D,PUT,PDZZ,ZWORK1)
     CALL MZF_PHY(D,ZWORK1,ZWORK2)
     CALL MXF_PHY(D,ZWORK2,ZDUDZ)
@@ -852,8 +852,8 @@ IF (TURBN%LRMC01) THEN
   CALL RMC01(D,CST,CSTURB,TURBN%CTURBLEN,PZZ,PDXX,PDYY,PDZZ,PDIRCOSZW,PSBL_DEPTH,ZLMO,ZLM,ZLEPS)
 END IF
 !
-!RMC01 is only applied on RM17 in ADAP
-IF (TURBN%CTURBLEN=='ADAP') THEN
+!RMC01 is only applied on RM17 in HM21
+IF (TURBN%CTURBLEN=='HM21') THEN
   !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
   ZLEPS(IIJB:IIJE,1:IKT) = MIN(ZLEPS(IIJB:IIJE,1:IKT),ZLMW(IIJB:IIJE,1:IKT)*TURBN%XCADAP)
   !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
@@ -1955,7 +1955,7 @@ ELSE
 !
 !*         3.1 BL89 mixing length
 !           ------------------
-  CASE ('BL89','RM17','ADAP')
+  CASE ('BL89','RM17','HM21')
     ZSHEAR(:,:)=0.
     CALL BL89(D,CST,CSTURB,PZZ,PDZZ,PTHVREF,ZTHLM,KRR,ZRM,PTKET,ZSHEAR,ZLM_CLOUD,OOCEAN,HPROGRAM)
 !