Index: LMDZ6/trunk/libf/phylmd/thermcell_down.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/thermcell_down.F90	(revision 4437)
+++ LMDZ6/trunk/libf/phylmd/thermcell_down.F90	(revision 4438)
@@ -65,19 +65,17 @@
 
    ! lmax : indice tel que fu(kmax+1)=0
-   
    ! Dans ce cas, pas besoin d'initialiser tracd(lmax) ( =trac(lmax) )
-
-   print*,'ON PASSE BIEN PAR LA CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
    ! Boucle pour le downdraft
    do ilay=nlay,1,-1
       do ig=1,ngrid
-         if (ilay.le.lmax(ig) .and. lmax(ig)>1) then
+         !if ( lmax(ig) > nlay - 2 ) stop "les thermiques montent trop haut"
+         if (ilay.le.lmax(ig) .and. lmax(ig)>1 ) then
             fdn(ig,ilay)=fdn(ig,ilay+1)+edn(ig,ilay)-ddn(ig,ilay)
-            if ( 1 == 0 ) then
-               tracd(ig,ilay)=( fdn(ig,ilay+1)*tracd(ig,ilay+1) + edn(ig,ilay)*trac(ig,ilay) ) / (fdn(ig,ilay)+ddn(ig,ilay))
+            if ( fdn(ig,ilay)+ddn(ig,ilay) > 0. ) then
+               www=fdn(ig,ilay+1)/ (fdn(ig,ilay)+ddn(ig,ilay))
             else
-               www=fdn(ig,ilay+1)/ (fdn(ig,ilay)+ddn(ig,ilay))
-               tracd(ig,ilay)=www*tracd(ig,ilay+1) + (1.-www)*trac(ig,ilay)
+               www=0.
             endif
+            tracd(ig,ilay)=www*tracd(ig,ilay+1) + (1.-www)*trac(ig,ilay)
          endif
       enddo 
@@ -90,12 +88,12 @@
          if (ilay.lt.lmax(ig) .and. lmax(ig)>1) then
             fup(ig,ilay+1)=fup(ig,ilay)+eup(ig,ilay)-dup(ig,ilay)
+            if (fup(ig,ilay+1)+dup(ig,ilay) > 0.) then
+               www=fup(ig,ilay)/(fup(ig,ilay+1)+dup(ig,ilay))
+            else
+               www=0.
+            endif
             if (ilay == 1 ) then
                tracu(ig,ilay)=trac(ig,ilay)
             else
-               !tracu(ig,ilay)=( fup(ig,ilay)*tracu(ig,ilay-1) + eup(ig,ilay)*trac(ig,ilay) ) / (fup(ig,ilay+1)+dup(ig,ilay))
-               !eup(ig,ilay)=fup(ig,ilay+1)-fup(ig,ilay)+dup(ig,ilay)
-               !tracu(ig,ilay)=( fup(ig,ilay)*tracu(ig,ilay-1) + (fup(ig,ilay+1)-fup(ig,ilay)+dup(ig,ilay))*trac(ig,ilay) ) / (fup(ig,ilay+1)+dup(ig,ilay))
-               www=fup(ig,ilay)/(fup(ig,ilay+1)+dup(ig,ilay))
-               !1-www=(fup(ig,ilay+1)+dup(ig,ilay)-fup(ig,ilay))/(fup(ig,ilay+1)+dup(ig,ilay))
                tracu(ig,ilay)=www*tracu(ig,ilay-1)+(1.-www)*trac(ig,ilay)
             endif
@@ -182,5 +180,4 @@
 
    else if (iflag_impl==1) then
-     write(*,*) 'SCHEMA IMPLICITE EN COURS DE DEVELOPPEMENT !'
      do ilay=1,nlay
        do ig=1,ngrid
Index: LMDZ6/trunk/libf/phylmd/thermcell_main.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/thermcell_main.F90	(revision 4437)
+++ LMDZ6/trunk/libf/phylmd/thermcell_main.F90	(revision 4438)
@@ -502,6 +502,5 @@
 !------------------------------------------------------------------
       IF (iflag_thermals_down .GT. 0) THEN
-        print*,'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
-        print*,'WARNING !!! routine thermcell_down en cours de developpement'
+        if (debut) print*,'WARNING !!! routine thermcell_down en cours de developpement'
         entrdn=entrdn_coef*detr0
         detrdn=detrdn_coef*entr0 
