Index: LMDZ6/trunk/libf/phylmd/lmdz_call_lscp.f90
===================================================================
--- LMDZ6/trunk/libf/phylmd/lmdz_call_lscp.f90	(revision 6020)
+++ LMDZ6/trunk/libf/phylmd/lmdz_call_lscp.f90	(revision 6021)
@@ -19,5 +19,6 @@
                         sigma2_icefracturb, sigma2_icefracturbth, &
                         mean_icefracturb, mean_icefracturbth, &
-                        radocond, radicefrac, rain, snow, &
+                        radocond, radicefrac, rain_lsc, snow_lsc, &
+                        rain_fall, snow_fall, &
                         frac_impa, frac_nucl, beta, &
                         pfrac_impa, pfrac_nucl, pfrac_1nucl, &
@@ -124,4 +125,6 @@
       REAL, DIMENSION(klon, klev), INTENT(INOUT)   :: pfrac_nucl   ! product of nucleation scavenging coeff.
       REAL, DIMENSION(klon, klev), INTENT(INOUT)   :: pfrac_1nucl  ! product of nucleation scavenging coeff. (alpha=1)
+      REAL, DIMENSION(klon), INTENT(INOUT)   :: rain_fall    ! total surface rainfall [kg/m2/s]
+      REAL, DIMENSION(klon), INTENT(INOUT)   :: snow_fall    ! total surface snowfall [kg/m2/s]
 
       ! INPUT/OUTPUT condensation and ice supersaturation
@@ -158,6 +161,6 @@
       REAL, DIMENSION(klon, klev), INTENT(OUT)  :: radicefrac       ! ice fraction of condensed water for radiation scheme
       REAL, DIMENSION(klon, klev), INTENT(OUT)  :: rhcl             ! clear-sky relative humidity [-]
-      REAL, DIMENSION(klon), INTENT(OUT)  :: rain             ! surface large-scale rainfall [kg/s/m2]
-      REAL, DIMENSION(klon), INTENT(OUT)  :: snow             ! surface large-scale snowfall [kg/s/m2]
+      REAL, DIMENSION(klon), INTENT(OUT)  :: rain_lsc             ! surface large-scale rainfall [kg/s/m2]
+      REAL, DIMENSION(klon), INTENT(OUT)  :: snow_lsc             ! surface large-scale snowfall [kg/s/m2]
       REAL, DIMENSION(klon, klev + 1), INTENT(OUT)  :: prfl             ! large-scale rainfall flux in the column [kg/s/m2]
       REAL, DIMENSION(klon, klev + 1), INTENT(OUT)  :: psfl             ! large-scale snowfall flux in the column [kg/s/m2]
@@ -276,5 +279,5 @@
                    sigma2_icefracturb, sigma2_icefracturbth, &
                    mean_icefracturb, mean_icefracturbth, &
-                   radocond, radicefrac, rain, snow, &
+                   radocond, radicefrac, rain_lsc, snow_lsc, &
                    frac_impa, frac_nucl, beta, &
                    prfl, psfl, rhcl, &
@@ -303,5 +306,5 @@
                        temp, qt, ptconv, ratqs, sigma_qtherm, &
                        d_t, d_q, d_ql, d_qi, rneb, rneblsvol, radocond, &
-                       rain, snow, &
+                       rain_lsc, snow_lsc, &
                        pfrac_impa, pfrac_nucl, pfrac_1nucl, &
                        frac_impa, frac_nucl, beta, &
@@ -318,6 +321,6 @@
 
       ! rain and snow are set to 0 when negative
-      WHERE (rain < 0) rain = 0.
-      WHERE (snow < 0) snow = 0.
+      WHERE (rain_lsc < 0) rain_lsc = 0.
+      WHERE (snow_lsc < 0) snow_lsc = 0.
 
       ! so-called 'numerical rain' is computed when qlnew=ql+dql>qlmax and qinew=qi+dqi>qimax
@@ -346,4 +349,11 @@
       END IF
 
+      ! Total precipitation 
+      DO i = 1, klon
+         rain_fall(i) = rain_fall(i) + rain_lsc(i)
+         snow_fall(i) = snow_fall(i) + snow_lsc(i)
+      ENDDO
+
+
 !===============================================================================
 ! Add tendencies
Index: LMDZ6/trunk/libf/phylmd/physiq_mod.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 6020)
+++ LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 6021)
@@ -3565,4 +3565,11 @@
     CALL prt_enerbil('convection',itap)
 
+    ! total precipitation (rain_lsc and snow_lsc will be added in call_lscp)
+    DO i = 1, klon
+       rain_fall(i) = rain_con(i)
+       snow_fall(i) = snow_con(i)         
+    ENDDO
+
+
     !-------------------------------------------------------------------------
 
@@ -3961,4 +3968,5 @@
      mean_icefracturb,mean_icefracturbth,               &
      radocond, radicefrac, rain_lsc, snow_lsc,          &
+     rain_fall, snow_fall,                              &
      frac_impa, frac_nucl, beta,                        &
      pfrac_impa, pfrac_nucl, pfrac_1nucl,               &
@@ -4167,11 +4175,4 @@
        ENDDO
     ENDIF
-    !
-    ! Precipitation totale
-    !
-    DO i = 1, klon
-       rain_fall(i) = rain_con(i) + rain_lsc(i)
-       snow_fall(i) = snow_con(i) + snow_lsc(i)
-    ENDDO
     !
     ! Calculer l'humidite relative pour diagnostique
@@ -4200,6 +4201,6 @@
           zx_rh(i,k) = q_seri(i,k)/zx_qs
           IF (iflag_ice_thermo .GT. 0) THEN
-             zx_rhl(i,k) = q_seri(i,k)/(qsatl(zx_t)/pplay(i,k))
-             zx_rhi(i,k) = q_seri(i,k)/(qsats(zx_t)/pplay(i,k))
+             zx_rhl(i,k) = MIN(q_seri(i,k)/(qsatl(zx_t)/pplay(i,k)),1.)
+             zx_rhi(i,k) = zx_rhl(i,k)*qsatl(zx_t)/qsats(zx_t)
           ENDIF
           zqsat(i,k)=zx_qs
