Index: LMDZ6/trunk/libf/phylmd/lmdz_lscp.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/lmdz_lscp.F90	(revision 4868)
+++ LMDZ6/trunk/libf/phylmd/lmdz_lscp.F90	(revision 4869)
@@ -110,5 +110,5 @@
 USE lmdz_lscp_ini, ONLY : iflag_autoconversion, ffallv_con, ffallv_lsc
 USE lmdz_lscp_ini, ONLY : RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RG
-USE lmdz_lscp_ini, ONLY : ok_poprecip
+USE lmdz_lscp_ini, ONLY : ok_poprecip, ok_bug_fonte_lscp
 
 IMPLICIT NONE
@@ -630,13 +630,14 @@
                     zrflcld(i)=zrflcld(i)+zmelt*ziflcld(i)
                     zrfl(i)=zrflclr(i)+zrflcld(i)
-
+                    IF (ok_bug_fonte_lscp) THEN
                     ziflclr(i)=ziflclr(i)*(1.-zmelt)
                     ziflcld(i)=ziflcld(i)*(1.-zmelt)
                     zifl(i)=ziflclr(i)+ziflcld(i)
-
+                    ENDIF
                 ELSE
                     zrfl(i)=zrfl(i)+zmelt*zifl(i)
-
+                    IF (ok_bug_fonte_lscp) THEN
                     zifl(i)=zifl(i)*(1.-zmelt)
+                    ENDIF
                 ENDIF
 
@@ -648,5 +649,14 @@
                 zt(i)=zt(i)-zifl(i)*zmelt*(RG*dtime)/(paprs(i,k)-paprs(i,k+1)) &
                 *RLMLT/RCPD/(1.0+RVTMP2*(zq(i)+zmqc(i)))
-                
+               
+                IF (.NOT. ok_bug_fonte_lscp) THEN
+                IF (iflag_evap_prec.GE.4) THEN
+                    ziflclr(i)=ziflclr(i)*(1.-zmelt)
+                    ziflcld(i)=ziflcld(i)*(1.-zmelt)
+                    zifl(i)=ziflclr(i)+ziflcld(i)
+                ELSE
+                    zifl(i)=zifl(i)*(1.-zmelt)
+                ENDIF
+                ENDIF
 
             ELSE
Index: LMDZ6/trunk/libf/phylmd/lmdz_lscp_ini.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/lmdz_lscp_ini.F90	(revision 4868)
+++ LMDZ6/trunk/libf/phylmd/lmdz_lscp_ini.F90	(revision 4869)
@@ -8,4 +8,7 @@
   REAL RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RG, RPI
   !$OMP THREADPRIVATE(RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RG, RPI)
+  
+  LOGICAL, SAVE, PROTECTED :: ok_bug_fonte_lscp=.true. ! maintains bug on temperature adjustment associated with snow melting
+  !$OMP THREADPRIVATE(ok_bug_fonte_lscp)
 
   REAL, SAVE, PROTECTED :: seuil_neb=0.001      ! cloud fraction threshold: a cloud really exists when exceeded
@@ -317,4 +320,5 @@
     CALL getin_p('snow_fallspeed_clr',snow_fallspeed_clr)
     CALL getin_p('snow_fallspeed_cld',snow_fallspeed_cld)
+    CALL getin_p('ok_bug_fonte_lscp',ok_bug_fonte_lscp)
 
 
@@ -367,4 +371,5 @@
     WRITE(lunout,*) 'lscp_ini, snow_fallspeed_clr:', snow_fallspeed_clr
     WRITE(lunout,*) 'lscp_ini, snow_fallspeed_cld:', snow_fallspeed_cld
+    WRITE(lunout,*) 'lscp_ini, ok_bug_fonte_lscp:', ok_bug_fonte_lscp
 
 
