Index: /LMDZ.3.3/trunk/libf/phylmd/conlmd.F
===================================================================
--- /LMDZ.3.3/trunk/libf/phylmd/conlmd.F	(revision 41)
+++ /LMDZ.3.3/trunk/libf/phylmd/conlmd.F	(revision 42)
@@ -126,10 +126,8 @@
       INTEGER nb ! nombre de sous-fractions a considere
       PARAMETER (nb=1)
-ccc      PARAMETER (nb=5)
 ccc      PARAMETER (nb=3)
 c
       REAL ratqs ! largeur de la distribution pour vapeur d'eau
-      PARAMETER (ratqs=0.2)
-c
+      PARAMETER (ratqs=0.05)
 c
       REAL w_q(klon,klev)
@@ -167,8 +165,6 @@
       DATA frac / 1.0 /
       DATA opt_cld / 4 /
-ccc      DATA frac    / 1.0, 0.75, 0.50, 0.25, 0.05 /
-ccc      DATA opt_cld / 3,   3,    3,    3,    3 /
 ccc      DATA frac    / 1.0, 0.50, 0.25/
-ccc      DATA opt_cld / 3,   3,    3/
+ccc      DATA opt_cld / 4,   4,    4/
 c
       DATA appel1er /.TRUE./
@@ -248,5 +244,6 @@
          zflo = t(i,k) + zgamdz - t(i,k+1)
          zsat = (q(i,k)-zqs1)*zdp1 + (q(i,k+1)-zqs2)*zdp2
-         IF (zflo.GT.0.0 .AND. zsat.GT.0.0) afaire(i) = .TRUE.
+         IF (zflo.GT.0.0) afaire(i) = .TRUE.
+c erreur         IF (zflo.GT.0.0 .AND. zsat.GT.0.0) afaire(i) = .TRUE.
       ENDDO
       ENDDO
@@ -339,5 +336,5 @@
       PARAMETER (new_top=.FALSE.)
       LOGICAL evap_prec ! evaporation de pluie au-dessous de convection
-      PARAMETER (evap_prec=.FALSE.)
+      PARAMETER (evap_prec=.TRUE.)
       REAL coef_eva
       PARAMETER (coef_eva=1.0E-05)
@@ -350,9 +347,14 @@
       REAL toliq(klon) ! rapport entre l'eau nuageuse et l'eau precipitante
       REAL dpmin, tomax !Epaisseur faible, rapport eau liquide plus grande
-      PARAMETER (dpmin=0.1, tomax=0.2)
+      PARAMETER (dpmin=0.15, tomax=0.97)
       REAL dpmax, tomin !Epaisseur grande, rapport eau liquide plus faible
-      PARAMETER (dpmax=0.6, tomin=0.1)
+      PARAMETER (dpmax=0.30, tomin=0.05)
+      REAL deep_sig, deep_to ! au dela de deep_sig, utiliser deep_to
+      PARAMETER (deep_sig=0.50, deep_to=0.05)
       LOGICAL exigent ! implique un calcul supplementaire pour Qs
       PARAMETER (exigent=.FALSE.)
+c
+      INTEGER kbase
+      PARAMETER (kbase=0)
 c
 c Variables locales:
@@ -479,6 +481,6 @@
       DO i = 1, klon
       IF (possible(i)) THEN
-         k1(i) = 0
-         k2(i) = 1
+         k1(i) = kbase
+         k2(i) = k1(i) + 1
       ENDIF
       ENDDO
@@ -688,4 +690,5 @@
      .                 *(tomax-tomin)/(dpmax-dpmin)
       toliq(i) = MAX(tomin,MIN(tomax,toliq(i)))
+      IF (pplay(i,k2(i))/paprs(i,1) .LE. deep_sig) toliq(i) = deep_to
       IF (old_tau) toliq(i) = 1.0
       ENDIF
@@ -787,5 +790,6 @@
       ELSE IF (opt_cld.EQ.4) THEN
 c
-         nexpo = 1 ! distribution lineaire
+         nexpo = 3
+ccc         nexpo = 1 ! distribution lineaire
 c
          DO i = 1, klon
@@ -927,9 +931,12 @@
       k1max = 1
       DO i = 1, klon
-      IF (todo(i) .AND. k1(i).GT.1) THEN
+      IF (todo(i) .AND. k1(i).GT.(kbase+1)) THEN
          k = k1(i)
          zflo(i) = zt(i,k-1) + zgamdz(i,k-1) - zt(i,k)
          zsat(i) = zqmqsdp(i,k) + zqmqsdp(i,k-1)
-         IF (zflo(i).LE.0.0 .OR. zsat(i).LE.0.0) THEN
+csc voici l'ancienne ligne:
+csc         IF (zflo(i).LE.0.0 .OR. zsat(i).LE.0.0) THEN
+csc sylvain: il faut RESPECTER les 2 criteres:
+         IF (zflo(i).GT.0.0 .AND. zsat(i).GT.0.0) THEN
             etendre(i) = .TRUE.
             k1(i) = k1(i) - 1
@@ -940,6 +947,6 @@
       ENDDO
 c
-      IF (k1max.GT.1) THEN
-      DO k = k1max, 1, -1
+      IF (k1max.GT.(kbase+1)) THEN
+      DO k = k1max, kbase+1, -1
       DO i = 1, klon
       IF (etendre(i) .AND. k.LT.k1(i) .AND. aller(i)) THEN
@@ -1095,5 +1102,5 @@
       PARAMETER (opt_cld=4) ! valeur possible: 0, 1, 2, 3 ou 4
       LOGICAL evap_prec ! evaporation de pluie au-dessous de convection
-      PARAMETER (evap_prec=.FALSE.)
+      PARAMETER (evap_prec=.TRUE.)
       REAL coef_eva
       PARAMETER (coef_eva=1.0E-05)
@@ -1106,7 +1113,9 @@
       REAL toliq(klon) ! rapport entre l'eau nuageuse et l'eau precipitante
       REAL dpmin, tomax !Epaisseur faible, rapport eau liquide plus grande
-      PARAMETER (dpmin=0.1, tomax=0.2)
+      PARAMETER (dpmin=0.15, tomax=0.97)
       REAL dpmax, tomin !Epaisseur grande, rapport eau liquide plus faible
-      PARAMETER (dpmax=0.6, tomin=0.1)
+      PARAMETER (dpmax=0.30, tomin=0.05)
+      REAL deep_sig, deep_to ! au dela de deep_sig, utiliser deep_to
+      PARAMETER (deep_sig=0.50, deep_to=0.05)
 c
 c Variables locales:
@@ -1383,4 +1392,5 @@
      .             *(tomax-tomin)/(dpmax-dpmin)
       toliq(i) = MAX(tomin,MIN(tomax,toliq(i)))
+      IF (pplay(i,kh(i))/paprs(i,1) .LE. deep_sig) toliq(i) = deep_to
       IF (old_tau) toliq(i) = 1.0
       ENDIF
@@ -1497,5 +1507,6 @@
       ELSE IF (opt_cld.EQ.4) THEN
 c
-         nexpo = 1 ! distribution lineaire
+         nexpo = 3
+ccc         nexpo = 1 ! distribution lineaire
 c
          DO i = 1, klon
@@ -1708,4 +1719,8 @@
 #include "YOETHF.h"
 #include "FCTTRE.h"
+c
+      DO i = 1, klon
+         zcond(i) = 0.0
+      ENDDO
 C
       DO 210 i=1, klon
