diff --git a/src/MNH/aircraft_balloon_evol.f90 b/src/MNH/aircraft_balloon_evol.f90
index bef5953058dc20e597ea1b5c0cdae28eb81816e8..09721c7ce98d77897bff54f041ca9f3dd0f64471 100644
--- a/src/MNH/aircraft_balloon_evol.f90
+++ b/src/MNH/aircraft_balloon_evol.f90
@@ -127,6 +127,7 @@ END MODULE MODI_AIRCRAFT_BALLOON_EVOL
 !!     Dec,12, 2008 (M. Leriche) move ZTDIST out from if.not.(tpflyer%fly)
 !!     Dec,15, 2008 (V. Masson) correct do while aircraft move
 !!     March, 2013 (O.Caumont) add radar reflectivities
+!!     April, 2014 (C.Lac) allow RARE calculation only if CCLOUD=ICE3
 !!
 !! --------------------------------------------------------------------------
 !       
@@ -292,6 +293,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,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
 INTEGER                        :: JJ    ! loop counter for quadrature
@@ -317,6 +319,7 @@ IF(.NOT. ALLOCATED(XSVW_FLUX)) &
 ALLOCATE(XSVW_FLUX(SIZE(PSV,1),SIZE(PSV,2),SIZE(PSV,3),SIZE(PSV,4)))
 CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
 !
+ZR = 0.
 !
 !*      1.0  initialization of processor test
 !            --------------------------------
@@ -962,12 +965,18 @@ IF ( TPFLYER%FLY) THEN
         !
         DO JLOOP=1,SIZE(PR,4)
           TPFLYER%R   (IN,JLOOP) = FLYER_INTERP(PR(:,:,:,JLOOP))
+          IF (JLOOP>=2) ZR(:,:,:) = ZR(:,:,:) + PR(:,:,:,JLOOP)
         END DO
         DO JLOOP=1,SIZE(PSV,4)
           TPFLYER%SV  (IN,JLOOP) = FLYER_INTERP(PSV(:,:,:,JLOOP))
         END DO
-        TPFLYER%RTZ  (IN,:) = FLYER_INTERPZ(PR(:,:,:,2)+PR(:,:,:,3)+PR(:,:,:,4)+PR(:,:,:,5)+PR(:,:,:,6))
+        TPFLYER%RTZ  (IN,:) = FLYER_INTERPZ(ZR(:,:,:))
         TPFLYER%FFZ  (IN,:) = FLYER_INTERPZ(SQRT(PU**2+PV**2))                               
+        ! initialization CRARE and CRARE_ATT
+        TPFLYER%CRARE(IN,:) = 0.
+        TPFLYER%CRARE_ATT(IN,:) = 0.
+
+      IF (SIZE(PR,4) == 6 ) THEN ! only for ICE3
         ZTEMPZ(:)=FLYER_INTERPZ(PTH(II:II+1,IJ:IJ+1,:) * ZEXN(:,:,:))
         ZRHODREFZ(:)=FLYER_INTERPZ(PRHODREF(:,:,:))
         ZCIT(:)=FLYER_INTERPZ(PCIT(:,:,:))
@@ -979,9 +988,7 @@ IF ( TPFLYER%FLY) THEN
           ZRZ(JK,7)=FLYER_INTERP_2D(PR(:,:,JK,2)*(1.-PSEA(:,:)))  ! becomes cloud mixing ratio over land
         END DO
         ALLOCATE(ZAELOC(IKU))
-        ! initialization CRARE and CRARE_ATT
-        TPFLYER%CRARE(IN,:) = 0.
-        TPFLYER%CRARE_ATT(IN,:) = 0.
+        !
         ZAELOC(:)=0.
         ! initialization of quadrature points and weights
         ALLOCATE(ZX(JPTS_GAULAG),ZW(JPTS_GAULAG))
@@ -1146,7 +1153,7 @@ IF ( TPFLYER%FLY) THEN
           TPFLYER%CRARE_ATT(IN,:)=XUNDEF
         END WHERE
         DEALLOCATE(ZX,ZW,ZRTMIN)
-
+      END IF ! end LOOP ICE3
         ! vertical wind
         TPFLYER%WZ  (IN,:) = FLYER_INTERPZ(ZWM(:,:,:))
         IF (SIZE(PTKE)>0) TPFLYER%TKE  (IN)    = FLYER_INTERP(PTKE)
diff --git a/src/MNH/endstep.f90 b/src/MNH/endstep.f90
index 2332e98ec7797153d95d590e7b6080a797c26fd3..f0fb8d93445843978f02d5adfee400e6337372ed 100644
--- a/src/MNH/endstep.f90
+++ b/src/MNH/endstep.f90
@@ -188,7 +188,8 @@ END MODULE MODI_ENDSTEP
 !!                 10/2006  (Maric, Lac)  modification for PPM schemes
 !!                 10/2009  (C.Lac)       Correction on FIT temporal scheme for variables
 !!                                         advected with PPM
-!!                 04/2013  (C.Lac)       FIT for all the variables                   
+!!                 04/2013  (C.Lac)       FIT for all the variables     
+!!                 04/2014  (C.Lac)       Check on the positivity of XSVT
 !------------------------------------------------------------------------------
 !
 !*      0.   DECLARATIONS
@@ -206,9 +207,12 @@ USE MODD_NSV, ONLY : XSVMIN, NSV_CHEMBEG, NSV_CHEMEND, &
 USE MODD_CH_AEROSOL, ONLY : LORILAM
 USE MODD_DUST,       ONLY : LDUST
 USE MODD_PARAM_C2R2, ONLY : LACTIT
+USE MODD_LBC_n, ONLY : CLBCX, CLBCY
 USE MODI_BUDGET
 USE MODI_SHUMAN
 !
+USE MODE_ll
+!
 IMPLICIT NONE
 !
 !*      0.1  DECLARATIONS OF ARGUMENTS
@@ -262,10 +266,17 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT):: PLBYRM,PLBYSVM            !
 !
 INTEGER:: JSV                  ! loop counters
 INTEGER :: IKU
+INTEGER :: IIB, IIE  ! index of first and last inner mass points along x
+INTEGER :: IJB, IJE  ! index of first and last inner mass points along y
 !
 !------------------------------------------------------------------------------
 !
+IIB = 1 + JPHEXT
+IIE = SIZE(PUT,1) - JPHEXT
+IJB = 1 + JPHEXT
+IJE = SIZE(PUT,2) - JPHEXT
 IKU=SIZE(XZHAT)
+!
 !*      1.   ASSELIN FILTER
 !
 IF (HUVW_ADV_SCHEME(1:3)=='CEN') THEN
@@ -304,6 +315,33 @@ IF (SIZE(PTKET,1) /= 0) PTKET(:,:,:)=PTKES(:,:,:)
 !
 PSVT(:,:,:,1:KSV)=PSVS(:,:,:,1:KSV)
 !
+IF (LWEST_ll( ) .AND. CLBCX(1)=='OPEN') THEN
+ DO JSV=1,KSV
+   PSVT(IIB,:,:,JSV)=MAX(PSVT(IIB,:,:,JSV),XSVMIN(JSV))
+   PSVT(IIB-1,:,:,JSV)=MAX(PSVT(IIB-1,:,:,JSV),XSVMIN(JSV))
+ END DO
+END IF
+!
+IF (LEAST_ll( ) .AND. CLBCX(2)=='OPEN') THEN
+ DO JSV=1,KSV
+   PSVT(IIE,:,:,JSV)=MAX(PSVT(IIE,:,:,JSV),XSVMIN(JSV))
+   PSVT(IIE+1,:,:,JSV)=MAX(PSVT(IIE+1,:,:,JSV),XSVMIN(JSV))
+ END DO
+END IF
+!
+IF (LSOUTH_ll( ) .AND. CLBCY(1)=='OPEN') THEN
+ DO JSV=1,KSV
+   PSVT(:,IJB,:,JSV)=MAX(PSVT(:,IJB,:,JSV),XSVMIN(JSV))
+   PSVT(:,IJB-1,:,JSV)=MAX(PSVT(:,IJB-1,:,JSV),XSVMIN(JSV))
+ END DO
+END IF
+!
+IF (LNORTH_ll( ) .AND. CLBCY(2)=='OPEN') THEN
+ DO JSV=1,KSV
+   PSVT(:,IJE,:,JSV)=MAX(PSVT(:,IJE,:,JSV),XSVMIN(JSV))
+   PSVT(:,IJE+1,:,JSV)=MAX(PSVT(:,IJE+1,:,JSV),XSVMIN(JSV))
+ END DO
+END IF
 !------------------------------------------------------------------------------
 !
 !*      4.   TEMPORAL ADVANCE OF THE LARGE SCALE FIELDS
diff --git a/src/MNH/profilern.f90 b/src/MNH/profilern.f90
index 7f7e1008c2c3f1f0e197fad8d1b2a40f7dfa3c35..9f275853ff924379970480951e05f2026d6eacf1 100644
--- a/src/MNH/profilern.f90
+++ b/src/MNH/profilern.f90
@@ -92,6 +92,7 @@ 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                         
 !!
 !! --------------------------------------------------------------------------
 !       
@@ -184,10 +185,8 @@ INTEGER                    :: ILUOUT      ! logical unit
 INTEGER                    :: IRESP       ! return code
 INTEGER                    :: I           ! loop for stations
 !
-! ++ CL
 REAL,DIMENSION(SIZE(PTH,1),SIZE(PTH,2),SIZE(PTH,3))  :: ZTEMP,ZRARE,ZWORK32,ZTHV
 REAL,DIMENSION(SIZE(PTH,1),SIZE(PTH,2),SIZE(PTH,3))  :: ZWORK33,ZWORK34
-! -- CL
 !----------------------------------------------------------------------------
 !
 !*      2.   PRELIMINARIES
@@ -358,7 +357,7 @@ END IF
 !            --------------
 !
 ZTEMP(:,:,:)=PTH(:,:,:)*(PP(:,:,:)/ XP00) **(XRD/XCPD)
-CALL RADAR_RAIN_ICE (PR, PCIT, PRHODREF, ZTEMP, ZRARE, ZWORK32, &
+IF (SIZE(PR,4) == 6) CALL RADAR_RAIN_ICE (PR, PCIT, PRHODREF, ZTEMP, ZRARE, ZWORK32, &
                                                          ZWORK33, ZWORK34 )
 ! Theta_v
 ZTHV(:,:,:) = PTH(:,:,:) / (1.+WATER_SUM(PR(:,:,:,:)))*(1.+XRV/XRD*PR(:,:,:,1))