Index: LMDZ5/trunk/libf/phylmd/calcratqs.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/calcratqs.F90	(revision 2201)
+++ LMDZ5/trunk/libf/phylmd/calcratqs.F90	(revision 2205)
@@ -1,4 +1,4 @@
 SUBROUTINE calcratqs(klon,klev,prt_level,lunout,       &
-           iflag_ratqs,iflag_con,iflag_cldcon,pdtphys, &
+           iflag_ratqs,iflag_con,iflag_cldth,pdtphys, &
            ratqsbas,ratqshaut,tau_ratqs,fact_cldcon,   &
            ptconv,ptconvth,clwcon0th, rnebcon0th,      &
@@ -19,5 +19,5 @@
 ! Input
 integer,intent(in) :: klon,klev,prt_level,lunout
-integer,intent(in) :: iflag_con,iflag_cldcon,iflag_ratqs
+integer,intent(in) :: iflag_con,iflag_cldth,iflag_ratqs
 real,intent(in) :: pdtphys,ratqsbas,ratqshaut,fact_cldcon,tau_ratqs
 real, dimension(klon,klev+1),intent(in) :: paprs
@@ -43,5 +43,5 @@
 !   ----------------
 !   on ecrase le tableau ratqsc calcule par clouds_gno
-      if (iflag_cldcon.eq.1) then
+      if (iflag_cldth.eq.1) then
          do k=1,klev
          do i=1,klon
@@ -58,5 +58,5 @@
 !  par nversion de la fonction log normale
 !-----------------------------------------------------------------------
-      else if (iflag_cldcon.eq.4) then
+      else if (iflag_cldth.eq.4) then
          ptconvth(:,:)=.false.
          ratqsc(:,:)=0.
@@ -136,5 +136,5 @@
 !  -----------
 
-      if (iflag_cldcon.eq.1 .or.iflag_cldcon.eq.2.or.iflag_cldcon.eq.4) then
+      if (iflag_cldth.eq.1 .or.iflag_cldth.eq.2.or.iflag_cldth.eq.4) then
 
 ! On ajoute une constante au ratqsc*2 pour tenir compte de 
@@ -165,5 +165,5 @@
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
          ratqs(:,:)=max(ratqs(:,:),ratqss(:,:))
-      else if (iflag_cldcon<=6) then
+      else if (iflag_cldth<=6) then
 !   on ne prend que le ratqs stable pour fisrtilp
          ratqs(:,:)=ratqss(:,:)
@@ -174,5 +174,5 @@
              do i=1,klon
                 if (ratqsc(i,k).gt.1.e-10) then
-                   ratqs(i,k)=ratqs(i,k)*zfratqs2+(iflag_cldcon/100.)*ratqsc(i,k)*(1.-zfratqs2)
+                   ratqs(i,k)=ratqs(i,k)*zfratqs2+(iflag_cldth/100.)*ratqsc(i,k)*(1.-zfratqs2)
                 endif
                 ratqs(i,k)=min(ratqs(i,k)*zfratqs1+ratqss(i,k)*(1.-zfratqs1),0.5)
Index: LMDZ5/trunk/libf/phylmd/concvl.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/concvl.F90	(revision 2201)
+++ LMDZ5/trunk/libf/phylmd/concvl.F90	(revision 2205)
@@ -15,5 +15,6 @@
                   dd_t, dd_q, lalim_conv, wght_th, &                 ! RomP
                   evap, ep, epmlmMm, eplaMm, &                       ! RomP
-                  wdtrainA, wdtrainM, wght)                          ! RomP+RL
+                  wdtrainA, wdtrainM, wght, qtc, sigt, &
+                  tau_cld_cv, coefw_cld_cv)                           ! RomP+RL, AJ
 !RomP <<<
 ! **************************************************************
@@ -136,4 +137,6 @@
   REAL dplcldt(klon), dplcldr(klon)
   REAL qcondc(klon, klev)
+  REAL qtc(klon, klev)
+  REAL sigt(klon, klev)
   REAL wd(klon)
   REAL plim1(klon), plim2(klon), asupmax(klon, klev)
@@ -142,4 +145,5 @@
   REAL sigd(klon)
   REAL zx_t, zdelta, zx_qs, zcor
+  REAL tau_cld_cv, coefw_cld_cv
 
 !   INTEGER iflag_mix
@@ -204,4 +208,5 @@
 !$OMP THREADPRIVATE(itap, igout)
 
+
   include "YOMCST.h"
   include "YOMCST2.h"
@@ -412,5 +417,6 @@
                     da, phi, mp, phi2, d1a, dam, sij, wght, &           ! RomP+RL
                     clw, elij, evap, ep, epmlmMm, eplaMm, &             ! RomP+RL
-                    wdtrainA, wdtrainM)                                 ! RomP
+                    wdtrainA, wdtrainM, qtc, sigt, &
+                    tau_cld_cv, coefw_cld_cv)                           ! RomP,AJ
 !AC!+!RomP+jyg
   END IF
Index: LMDZ5/trunk/libf/phylmd/conf_phys_m.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/conf_phys_m.F90	(revision 2201)
+++ LMDZ5/trunk/libf/phylmd/conf_phys_m.F90	(revision 2205)
@@ -15,5 +15,5 @@
        solarlong0,seuil_inversion, &
        fact_cldcon, facttemps,ok_newmicro,iflag_radia,&
-       iflag_cldcon, &
+       iflag_cldth, &
        iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, &
        ok_ade, ok_aie, ok_cdnc, aerosol_couple, &
@@ -81,5 +81,5 @@
     REAL                 :: bl95_b0, bl95_b1
     real                 :: fact_cldcon, facttemps,ratqsbas,ratqshaut,tau_ratqs
-    integer              :: iflag_cldcon
+    integer              :: iflag_cldth
     integer              :: iflag_ratqs
 
@@ -101,4 +101,8 @@
     REAL,SAVE           :: freq_COSP_omp
     real,SAVE           :: fact_cldcon_omp, facttemps_omp,ratqsbas_omp
+    real,SAVE           :: tau_cld_cv_omp, coefw_cld_cv_omp
+    integer,SAVE        :: iflag_cld_cv_omp
+
+
     real,SAVE           :: ratqshaut_omp
     real,SAVE           :: tau_ratqs_omp
@@ -107,5 +111,5 @@
     integer,SAVE        :: iflag_rrtm_omp
     integer,SAVE        :: NSW_omp
-    integer,SAVE        :: iflag_cldcon_omp, ip_ebil_phy_omp
+    integer,SAVE        :: iflag_cldth_omp, ip_ebil_phy_omp
     integer,SAVE        :: iflag_ratqs_omp
 
@@ -887,11 +891,45 @@
 
     !
-    !Config Key  = iflag_cldcon 
+    !Config Key  = iflag_cldth 
     !Config Desc =  
     !Config Def  = 1
     !Config Help = 
     !
-    iflag_cldcon_omp = 1
-    call getin('iflag_cldcon',iflag_cldcon_omp)
+    iflag_cldth_omp = 1
+! On lit deux fois avec l'ancien et le nouveau nom 
+! pour assurer une retrocompatiblite.
+! A abandonner un jour
+    call getin('iflag_cldcon',iflag_cldth_omp)
+    call getin('iflag_cldth',iflag_cldth_omp)
+
+    !
+    !Config Key  = iflag_cld_cv
+    !Config Desc =
+    !Config Def  = 1
+    !Config Help =
+    !
+    iflag_cld_cv_omp = 1
+    call getin('iflag_cld_cv',iflag_cld_cv_omp)
+
+    !
+    !Config Key  = tau_cld_cv
+    !Config Desc =
+    !Config Def  = 10.
+    !Config Help =
+    !
+    tau_cld_cv_omp = 10.
+    call getin('tau_cld_cv',tau_cld_cv_omp)
+
+    !
+    !Config Key  = coefw_cld_cv
+    !Config Desc =
+    !Config Def  = 0.1
+    !Config Help =
+    !
+    coefw_cld_cv_omp = 0.1
+    call getin('coefw_cld_cv',coefw_cld_cv_omp)
+
+
+
 
     !
@@ -1935,5 +1973,8 @@
     iflag_rrtm = iflag_rrtm_omp
     NSW = NSW_omp
-    iflag_cldcon = iflag_cldcon_omp
+    iflag_cldth = iflag_cldth_omp
+    iflag_cld_cv = iflag_cld_cv_omp
+    tau_cld_cv = tau_cld_cv_omp
+    coefw_cld_cv = coefw_cld_cv_omp
     iflag_ratqs = iflag_ratqs_omp
     ip_ebil_phy = ip_ebil_phy_omp
@@ -2087,5 +2128,8 @@
     write(lunout,*)' reevap_ice = ', reevap_ice
     write(lunout,*)' iflag_pdf = ', iflag_pdf
-    write(lunout,*)' iflag_cldcon = ', iflag_cldcon
+    write(lunout,*)' iflag_cldth = ', iflag_cldth
+    write(lunout,*)' iflag_cld_cv = ', iflag_cld_cv
+    write(lunout,*)' tau_cld_cv = ', tau_cld_cv
+    write(lunout,*)' coefw_cld_cv = ', coefw_cld_cv
     write(lunout,*)' iflag_radia = ', iflag_radia
     write(lunout,*)' iflag_rrtm = ', iflag_rrtm
Index: LMDZ5/trunk/libf/phylmd/cv3_routines.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/cv3_routines.F90	(revision 2201)
+++ LMDZ5/trunk/libf/phylmd/cv3_routines.F90	(revision 2205)
@@ -1,4 +1,5 @@
 
 ! $Id$
+
 
 
@@ -2763,5 +2764,5 @@
                      cbmf, upwd, dnwd, dnwd0, ma, mip, &
                      tls, tps, qcondc, wd, &
-                     ftd, fqd)
+                     ftd, fqd, qnk, qtc, sigt, tau_cld_cv, coefw_cld_cv)
 
   IMPLICIT NONE
@@ -2800,4 +2801,5 @@
 !input/output:
       INTEGER iflag(nloc)
+      REAL,INTENT(in) :: tau_cld_cv, coefw_cld_cv
 !
 !outputs:
@@ -2811,4 +2813,5 @@
       REAL tls(nloc, nd), tps(nloc, nd)
       REAL qcondc(nloc, nd) ! cld
+      REAL qtc(nloc,nd), sigt(nloc,nd) ! cld
       REAL wd(nloc) ! gust
       REAL cbmf(nloc)
@@ -2830,5 +2833,6 @@
       REAL qcond(nloc, nd), nqcond(nloc, nd), wa(nloc, nd) ! cld
       REAL siga(nloc, nd), sax(nloc, nd), mac(nloc, nd) ! cld
-
+      REAL sument(nloc), sigment(nloc,nd), qtment(nloc,nd) ! cld
+      REAL qnk(nloc)
       REAL sumdq !jyg
 ! 
@@ -2861,4 +2865,8 @@
       qcondc(il, i) = 0.0 ! cld
       qcond(il, i) = 0.0 ! cld
+      qtc(il, i) = 0.0 ! cld
+      qtment(il, i) = 0.0 ! cld
+      sigment(il, i) = 0.0 ! cld
+      sigt(il, i) = 0.0 ! cld
       nqcond(il, i) = 0.0 ! cld
     END DO
@@ -3234,5 +3242,6 @@
 ! (saturated updrafts resulting from mixing)                                   ! cld
           qcond(il, i) = qcond(il, i) + (elij(il,k,i)-awat(il))                ! cld
-          nqcond(il, i) = nqcond(il, i) + 1. ! cld
+          qtment(il, i) = qtment(il, i) + qent(il,k,i)                         ! cld
+          nqcond(il, i) = nqcond(il, i) + 1.                                   ! cld
         END IF ! i
       END DO
@@ -3310,5 +3319,6 @@
 ! (saturated downdrafts resulting from mixing)                                 ! cld
           qcond(il, i) = qcond(il, i) + elij(il, k, i)                         ! cld
-          nqcond(il, i) = nqcond(il, i) + 1. ! cld
+          qtment(il, i) = qent(il,k,i) + qtment(il,i)                          ! cld
+          nqcond(il, i) = nqcond(il, i) + 1.                                   ! cld
         END IF ! cld
       END DO ! cld
@@ -3319,4 +3329,5 @@
       IF (i<=inb(il) .AND. nent(il,i)==0 .AND. iflag(il)<=1) THEN              ! cld
         qcond(il, i) = qcond(il, i) + (1.-ep(il,i))*clw(il, i)                 ! cld
+        qtment(il, i) = qent(il,k,i) + qtment(il,i)                          ! cld
         nqcond(il, i) = nqcond(il, i) + 1.                                     ! cld
       END IF                                                                   ! cld
@@ -3326,4 +3337,5 @@
       IF (i<=inb(il) .AND. nqcond(il,i)/=0 .AND. iflag(il)<=1) THEN            ! cld
         qcond(il, i) = qcond(il, i)/nqcond(il, i)                              ! cld
+        qtment(il, i) = qtment(il,i)/nqcond(il, i)                             ! cld
       END IF                                                                   ! cld
     END DO
@@ -3788,18 +3800,53 @@
       END IF                                                         ! cld
     END DO                                                           ! cld
-  END DO                                                             ! cld
-
-  DO i = 1, nl                                                       ! cld
+  END DO  
+                                                           ! cld
+  DO i = 1, nl  
+
+! 14/01/15 AJ je remets les parties manquantes cf JYG
+! Initialize sument to 0
+
+    DO il = 1,ncum
+     sument(il) = 0.
+    ENDDO
+
+! Sum mixed mass fluxes in sument
+
+    DO k = 1,nl
+      DO il = 1,ncum
+        IF  (k<=inb(il) .AND. i<=inb(il) .AND. iflag(il)<=1) THEN   ! cld
+          sument(il) =sument(il) + abs(ment(il,k,i))
+        ENDIF
+      ENDDO     ! il
+    ENDDO       ! k
+
+! 14/01/15 AJ delta n'a rien à faire là...                                                 
     DO il = 1, ncum                                                  ! cld
       IF (wa(il,i)>0.0 .AND. iflag(il)<=1) &                         ! cld
-        siga(il, i) = mac(il, i)/wa(il, i) &                         ! cld
-        *rrd*tvp(il, i)/p(il, i)/100./delta                          ! cld
+        siga(il, i) = mac(il, i)/(coefw_cld_cv*wa(il, i)) &          ! cld
+        *rrd*tvp(il, i)/p(il, i)/100.                                ! cld
+
       siga(il, i) = min(siga(il,i), 1.0)                             ! cld
-! IM cf. FH                                                          
+
+! IM cf. FH 
+! 14/01/15 AJ ne correspond pas à ce qui a été codé par JYG et SB           
+                                                         
       IF (iflag_clw==0) THEN                                         ! cld
         qcondc(il, i) = siga(il, i)*clw(il, i)*(1.-ep(il,i)) &       ! cld
           +(1.-siga(il,i))*qcond(il, i)                              ! cld
+
+
+        sigment(il,i)=sument(il)*tau_cld_cv/(ph(il,i)-ph(il,i+1))    ! cld
+        sigment(il, i) = min(1.e-4+sigment(il,i), 1.0 - siga(il,i))  ! cld
+        qtc(il, i) = (siga(il,i)*qnk(il)+sigment(il,i)*qtment(il,i)) & ! cld
+                     /(siga(il,i)+sigment(il,i))                     ! cld
+        sigt(il,i) = sigment(il, i) + siga(il, i)
+
+!        qtc(il, i) = siga(il,i)*qnk(il)+(1.-siga(il,i))*qtment(il,i) ! cld
+      print*,'BIGAUSSIAN CONV',siga(il,i),sigment(il,i),qtc(il,i)  
+      		
       ELSE IF (iflag_clw==1) THEN                                    ! cld
         qcondc(il, i) = qcond(il, i)                                 ! cld
+        qtc(il,i) = qtment(il,i)                                     ! cld
       END IF                                                         ! cld
 
Index: LMDZ5/trunk/libf/phylmd/cva_driver.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/cva_driver.F90	(revision 2201)
+++ LMDZ5/trunk/libf/phylmd/cva_driver.F90	(revision 2205)
@@ -24,5 +24,6 @@
                       da1, phi1, mp1, phi21, d1a1, dam1, sigij1, wghti1, & ! RomP, RL
                       clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, &        ! RomP, RL
-                      wdtrainA1, wdtrainM1)                                ! RomP
+                      wdtrainA1, wdtrainM1, qtc, sigt, tau_cld_cv, &
+                      coefw_cld_cv)                                        ! RomP, AJ
 ! **************************************************************
 ! *
@@ -55,4 +56,6 @@
 ! iflag_ice_thermo Integer        Input        accounting for ice thermodynamics (0/1)
 ! iflag_clos    Integer        Input        version of closure (0/1)
+! tau_cld_cv    Real           Input        characteristic time of dissipation of mixing fluxes
+! coefw_cld_cv  Real           Input        coefficient for updraft velocity in convection
 ! ok_conserv_q  Logical        Input        when true corrections for water conservation are swtiched on
 ! delt          Real           Input        time step
@@ -119,5 +122,6 @@
 ! phi1          Real           Output     used in tracer transport (cvltr)
 ! mp1           Real           Output     used in tracer transport (cvltr)
-                                         
+! qtc           Real           Output     specific humidity in convection
+! sigt          Real           Output     surface fraction in adiabatic updrafts                                         
 ! phi21         Real           Output     used in tracer transport (cvltr)
                                          
@@ -163,4 +167,6 @@
   INTEGER iflag_clos
   LOGICAL ok_conserv_q
+  REAL tau_cld_cv
+  REAL coefw_cld_cv
   REAL delt
   REAL t1(len, nd)
@@ -479,4 +485,6 @@
   REAL ftra(nloc, klev, ntra), traent(nloc, klev, klev, ntra)
   REAL qcondc(nloc, klev)      ! cld
+  REAL qtc(nloc, klev)         ! cld
+  REAL sigt(nloc, klev)        ! cld
   REAL wd(nloc)                ! gust
   REAL Plim1(nloc), plim2(nloc)
@@ -980,5 +988,5 @@
                      cbmf, upwd, dnwd, dnwd0, ma, mip, &
                      tls, tps, qcondc, wd, &
-                     ftd, fqd)
+                     ftd, fqd, qnk, qtc, sigt, tau_cld_cv, coefw_cld_cv)
     END IF
 
Index: LMDZ5/trunk/libf/phylmd/fisrtilp.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/fisrtilp.F90	(revision 2201)
+++ LMDZ5/trunk/libf/phylmd/fisrtilp.F90	(revision 2205)
@@ -8,5 +8,5 @@
      frac_impa, frac_nucl, beta,                        &
      prfl, psfl, rhcl, zqta, fraca,                     &
-     ztv, zpspsk, ztla, zthl, iflag_cldcon,             &
+     ztv, zpspsk, ztla, zthl, iflag_cldth,             &
      iflag_ice_thermo)
 
@@ -82,5 +82,5 @@
   INTEGER ninter ! sous-intervals pour la precipitation
   INTEGER ncoreczq  
-  INTEGER iflag_cldcon
+  INTEGER iflag_cldth
   INTEGER iflag_ice_thermo
   PARAMETER (ninter=5)
@@ -545,5 +545,5 @@
            enddo
 
-           if (iflag_cldcon>=5) then
+           if (iflag_cldth>=5) then
 
               call cloudth(klon,klev,k,ztv, &
@@ -559,11 +559,11 @@
            endif
 
-           if (iflag_cldcon <= 4) then
+           if (iflag_cldth <= 4) then
               lognormale = .true.
-           elseif (iflag_cldcon >= 6) then
+           elseif (iflag_cldth >= 6) then
               ! lognormale en l'absence des thermiques
               lognormale = fraca(:,k) < 1e-10
            else
-              ! Dans le cas iflag_cldcon=5, on prend systématiquement la
+              ! Dans le cas iflag_cldth=5, on prend systématiquement la
               ! bi-gaussienne
               lognormale = .false.
Index: LMDZ5/trunk/libf/phylmd/nuage.h
===================================================================
--- LMDZ5/trunk/libf/phylmd/nuage.h	(revision 2201)
+++ LMDZ5/trunk/libf/phylmd/nuage.h	(revision 2205)
@@ -5,9 +5,11 @@
       REAL exposant_glace
       REAL rei_min,rei_max
+      REAL tau_cld_cv,coefw_cld_cv
 
-      INTEGER iflag_t_glace
+      INTEGER iflag_t_glace,iflag_cld_cv
 
       common /nuagecom/ rad_froid,rad_chau1, rad_chau2,t_glace_max,     &
      &                  t_glace_min,exposant_glace,rei_min,rei_max,     &
-     &                  iflag_t_glace
+     &                  tau_cld_cv,coefw_cld_cv,                        &
+     &                  iflag_t_glace,iflag_cld_cv
 !$OMP THREADPRIVATE(/nuagecom/)
Index: LMDZ5/trunk/libf/phylmd/phys_state_var_mod.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/phys_state_var_mod.F90	(revision 2201)
+++ LMDZ5/trunk/libf/phylmd/phys_state_var_mod.F90	(revision 2205)
@@ -60,4 +60,6 @@
       REAL, ALLOCATABLE, SAVE :: clwcon(:,:),rnebcon(:,:)
 !$OMP THREADPRIVATE(clwcon,rnebcon)
+      REAL, ALLOCATABLE, SAVE :: qtc_cv(:,:),sigt_cv(:,:)
+!$OMP THREADPRIVATE(qtc_cv,sigt_cv)
       REAL, ALLOCATABLE, SAVE :: ratqs(:,:)
 !$OMP THREADPRIVATE(ratqs)
@@ -416,4 +418,5 @@
 !!! Rom P <<<
       ALLOCATE(clwcon(klon,klev),rnebcon(klon,klev))
+      ALLOCATE(qtc_cv(klon,klev),sigt_cv(klon,klev))
       ALLOCATE(ratqs(klon,klev))
       ALLOCATE(pbl_tke(klon,klev+1,nbsrf+1))
@@ -566,4 +569,5 @@
       deallocate(zthe, zpic, zval)
       deallocate(rugoro, t_ancien, q_ancien, clwcon, rnebcon)
+      deallocate(qtc_cv,sigt_cv)
       deallocate(        u_ancien, v_ancien                 )
       deallocate(        tr_ancien)                           !RomP
Index: LMDZ5/trunk/libf/phylmd/physiq.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/physiq.F90	(revision 2201)
+++ LMDZ5/trunk/libf/phylmd/physiq.F90	(revision 2205)
@@ -636,7 +636,7 @@
   !$OMP THREADPRIVATE(fact_cldcon,facttemps)
 
-  integer iflag_cldcon
-  save iflag_cldcon
-  !$OMP THREADPRIVATE(iflag_cldcon)
+  integer iflag_cldth
+  save iflag_cldth
+  !$OMP THREADPRIVATE(iflag_cldth)
   logical ptconv(klon,klev)
   !IM cf. AM 081204 BEG
@@ -913,5 +913,5 @@
           solarlong0,seuil_inversion, &
           fact_cldcon, facttemps,ok_newmicro,iflag_radia, &
-          iflag_cldcon,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, &
+          iflag_cldth,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, &
           ok_ade, ok_aie, ok_cdnc, aerosol_couple,  &
           flag_aerosol, flag_aerosol_strat, new_aod, &
@@ -1014,6 +1014,6 @@
      print*,'CYCLE_DIURNE', cycle_diurne
      !
-     IF (iflag_con.EQ.2.AND.iflag_cldcon.GT.-1) THEN
-        abort_message = 'Tiedtke needs iflag_cldcon=-2 or -1'
+     IF (iflag_con.EQ.2.AND.iflag_cldth.GT.-1) THEN
+        abort_message = 'Tiedtke needs iflag_cldth=-2 or -1'
         CALL abort_gcm (modname,abort_message,1)
      ENDIF
@@ -1130,5 +1130,5 @@
                 ,alp_bl_prescr, ale_bl_prescr)
            ! 11/09/06 rajout initialisation ALE et ALP du wake et PBL(YU)
-           !        print*,'apres ini_wake iflag_cldcon=', iflag_cldcon
+           !        print*,'apres ini_wake iflag_cldth=', iflag_cldth
         endif
 
@@ -2170,5 +2170,6 @@
              ftd,fqd,lalim_conv,wght_th, &
              ev, ep,epmlmMm,eplaMm, &
-             wdtrainA,wdtrainM,wght_cvfd)
+             wdtrainA,wdtrainM,wght_cvfd,qtc_cv,sigt_cv, &
+             tau_cld_cv,coefw_cld_cv)
         ! RomP <<<
 
@@ -2220,6 +2221,12 @@
      !   calcul des proprietes des nuages convectifs
      clwcon0(:,:)=fact_cldcon*clwcon0(:,:)
+     IF (iflag_cld_cv <= 1) THEN
      call clouds_gno &
           (klon,klev,q_seri,zqsat,clwcon0,ptconv,ratqsc,rnebcon0)
+     ELSE
+     call clouds_bigauss &
+          (klon,klev,q_seri,zqsat,qtc_cv,sigt_cv,ptconv,ratqsc,rnebcon0)
+     ENDIF
+
 
      ! =================================================================== c
@@ -2454,5 +2461,5 @@
   END IF
 
-  !      print*,'apres callwake iflag_cldcon=', iflag_cldcon
+  !      print*,'apres callwake iflag_cldth=', iflag_cldth
   !
   !===================================================================
@@ -2775,5 +2782,5 @@
   ! water distribution
   CALL  calcratqs(klon,klev,prt_level,lunout,        &
-       iflag_ratqs,iflag_con,iflag_cldcon,pdtphys,  &
+       iflag_ratqs,iflag_con,iflag_cldth,pdtphys,  &
        ratqsbas,ratqshaut,tau_ratqs,fact_cldcon,   &
        ptconv,ptconvth,clwcon0th, rnebcon0th,     &
@@ -2797,5 +2804,5 @@
        frac_impa, frac_nucl, beta_prec_fisrt, &
        prfl, psfl, rhcl,  &
-       zqasc, fraca,ztv,zpspsk,ztla,zthl,iflag_cldcon, &
+       zqasc, fraca,ztv,zpspsk,ztla,zthl,iflag_cldth, &
        iflag_ice_thermo)
   !
@@ -2853,10 +2860,10 @@
   !
   !IM cf FH
-  !     IF (iflag_cldcon.eq.-1) THEN ! seulement pour Tiedtke
-  IF (iflag_cldcon.le.-1) THEN ! seulement pour Tiedtke
+  !     IF (iflag_cldth.eq.-1) THEN ! seulement pour Tiedtke
+  IF (iflag_cldth.le.-1) THEN ! seulement pour Tiedtke
      snow_tiedtke=0.
      !     print*,'avant calcul de la pseudo precip '
-     !     print*,'iflag_cldcon',iflag_cldcon
-     if (iflag_cldcon.eq.-1) then
+     !     print*,'iflag_cldth',iflag_cldth
+     if (iflag_cldth.eq.-1) then
         rain_tiedtke=rain_con
      else
@@ -2891,5 +2898,5 @@
      ENDDO
 
-  ELSE IF (iflag_cldcon.ge.3) THEN
+  ELSE IF (iflag_cldth.ge.3) THEN
      !  On prend pour les nuages convectifs le max du calcul de la
      !  convection et du calcul du pas de temps precedent diminue d'un facteur
@@ -2978,5 +2985,5 @@
      !   On prend la somme des fractions nuageuses et des contenus en eau
 
-     if (iflag_cldcon>=5) then
+     if (iflag_cldth>=5) then
 
         do k=1,klev
