Index: LMDZ6/trunk/libf/phylmd/lmdz_cloudth.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/lmdz_cloudth.F90	(revision 5207)
+++ LMDZ6/trunk/libf/phylmd/lmdz_cloudth.F90	(revision 5208)
@@ -583,5 +583,5 @@
      &           ztv,po,zqta,fraca, & 
      &           qcloud,ctot,ctot_vol,zpspsk,paprs,pplay,ztla,zthl, &
-     &           ratqs,zqs,t, &
+     &           ratqs,sigma_qtherm,zqs,t, &
      &           cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv)
 
@@ -617,5 +617,5 @@
       real, dimension(ngrid,klev), intent(in) :: ztla
       real, dimension(ngrid,klev), intent(inout) :: zthl
-      real, dimension(ngrid,klev), intent(in) :: ratqs
+      real, dimension(ngrid,klev), intent(in) :: ratqs,sigma_qtherm
       real, dimension(ngrid), intent(in) :: zqs
       real, dimension(ngrid,klev), intent(in) :: t
@@ -655,5 +655,5 @@
      &           ztv,po,zqta,fraca, & 
      &           qcloud,ctot,ctot_vol,zpspsk,paprs,pplay,ztla,zthl, &
-     &           ratqs,zqs,t, &
+     &           ratqs,sigma_qtherm,zqs,t, &
      &           cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv)
       RETURN
@@ -810,5 +810,5 @@
      &           ztv,po,zqta,fraca, & 
      &           qcloud,ctot,ctot_vol,zpspsk,paprs,pplay,ztla,zthl, &
-     &           ratqs,zqs,t, &
+     &           ratqs,sigma_qtherm,zqs,t, &
      &           cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv)
 
@@ -872,5 +872,5 @@
       REAL Tbef,zdelta,qsatbef,zcor
       REAL qlbef  
-      REAL ratqs(ngrid,klev) ! determine la largeur de distribution de vapeur
+      REAL ratqs(ngrid,klev),sigma_qtherm(ngrid,klev) ! determine la largeur de distribution de vapeur
       ! Change the width of the PDF used for vertical subgrid scale heterogeneity
       ! (J Jouhaud, JL Dufresne, JB Madeleine)
@@ -978,8 +978,12 @@
       ENDIF
       sigma1s = sigma1s_fraca + sigma1s_ratqs
-      IF (iflag_ratqs.eq.11) then
+      sigma2s=(sigma2s_factor*(((sth-senv)**2)**0.5)/((fraca(ind1,ind2)+0.02)**sigma2s_power))+0.002*zqta(ind1,ind2)
+      IF (iflag_ratqs.eq.10.or.iflag_ratqs.eq.11) then
          sigma1s = ratqs(ind1,ind2)*po(ind1)*aenv
+         IF (iflag_ratqs.eq.10.and.sigma_qtherm(ind1,ind2).ne.0) then
+            sigma2s = sigma_qtherm(ind1,ind2)*ath
+         ENDIF
       ENDIF
-      sigma2s=(sigma2s_factor*(((sth-senv)**2)**0.5)/((fraca(ind1,ind2)+0.02)**sigma2s_power))+0.002*zqta(ind1,ind2)
+      
 !      tests
 !      sigma1s=(0.92**0.5)*(fraca(ind1,ind2)**0.5)/(1-fraca(ind1,ind2))*((sth-senv)**2)**0.5+ratqs(ind1,ind2)*po(ind1)
Index: LMDZ6/trunk/libf/phylmd/lmdz_lscp.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/lmdz_lscp.F90	(revision 5207)
+++ LMDZ6/trunk/libf/phylmd/lmdz_lscp.F90	(revision 5208)
@@ -7,5 +7,5 @@
 !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 SUBROUTINE lscp(klon,klev,dtime,missing_val,            &
-     paprs,pplay,temp,qt,qice_save,ptconv,ratqs,        &
+     paprs,pplay,temp,qt,qice_save,ptconv,ratqs,sigma_qtherm, &
      d_t, d_q, d_ql, d_qi, rneb, rneblsvol,             &
      pfraclr, pfracld,                                  &
@@ -157,6 +157,7 @@
   !------------------------
   
-  REAL, DIMENSION(klon,klev),      INTENT(INOUT)   :: thl              ! liquid potential temperature [K]
-  REAL, DIMENSION(klon,klev),      INTENT(INOUT)   :: ratqs            ! function of pressure that sets the large-scale
+  REAL, DIMENSION(klon,klev),      INTENT(INOUT)   :: thl          ! liquid potential temperature [K]
+  REAL, DIMENSION(klon,klev),      INTENT(INOUT)   :: ratqs,sigma_qtherm        ! function of pressure that sets the large-scale
+
 
   ! INPUT/OUTPUT condensation and ice supersaturation
@@ -814,5 +815,5 @@
                          zq,qta,fraca,                                     &
                          qcloud,ctot,ctot_vol,pspsk,paprs,pplay,tla,thl, &
-                         ratqs,zqs,temp, &
+                         ratqs,sigma_qtherm,zqs,temp, &
                          cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv)
 
Index: LMDZ6/trunk/libf/phylmd/lmdz_lscp_old.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/lmdz_lscp_old.F90	(revision 5207)
+++ LMDZ6/trunk/libf/phylmd/lmdz_lscp_old.F90	(revision 5208)
@@ -4,5 +4,5 @@
 MODULE lmdz_lscp_old
 CONTAINS
-SUBROUTINE fisrtilp(klon,klev,dtime,paprs,pplay,t,q,ptconv,ratqs, &
+SUBROUTINE fisrtilp(klon,klev,dtime,paprs,pplay,t,q,ptconv,ratqs,sigma_qtherm, &
      d_t, d_q, d_ql, d_qi, rneb,rneblsvol,radliq, rain, snow,          &
      pfrac_impa, pfrac_nucl, pfrac_1nucl,               &
@@ -79,5 +79,5 @@
   !
   !  Input/output
-  REAL, DIMENSION(klon,klev),      INTENT(INOUT):: ratqs  ! determine la largeur de distribution de vapeur
+  REAL, DIMENSION(klon,klev),      INTENT(INOUT):: ratqs,sigma_qtherm  ! determine la largeur de distribution de vapeur
   !
   ! Principaux outputs:
@@ -795,5 +795,5 @@
                    zq,zqta,fraca, &
                    qcloud,ctot,ctot_vol,zpspsk,paprs,pplay,ztla,zthl, &
-                   ratqs,zqs,t, &
+                   ratqs,sigma_qtherm,zqs,t, &
                    cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv)
               !----------------------------------
Index: LMDZ6/trunk/libf/phylmd/lmdz_ratqs_main.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/lmdz_ratqs_main.F90	(revision 5207)
+++ LMDZ6/trunk/libf/phylmd/lmdz_ratqs_main.F90	(revision 5208)
@@ -13,5 +13,5 @@
            omega,tke,tke_dissip,lmix,wprime, &
            t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area,&
-           ratqs,ratqsc,ratqs_inter_)
+           ratqs,ratqsc,ratqs_inter_,sigma_qtherm)
 
 
@@ -52,5 +52,5 @@
 
 ! Output
-real, dimension(klon,klev),intent(inout) :: ratqs,ratqsc,ratqs_inter_
+real, dimension(klon,klev),intent(inout) :: ratqs,ratqsc,ratqs_inter_,sigma_qtherm
 
 logical, dimension(klon,klev),intent(inout) :: ptconvth
@@ -194,14 +194,10 @@
       
           if (iflag_ratqs .EQ. 10) then 
-             ! interactive ratqs in presence of cold pools     
+             print*,'avant ratqs_inter'
+            ! interactive ratqs with several sources
              call ratqs_inter(klon,klev,iflag_ratqs,pdtphys,paprs, &
                        ratqsbas,wake_deltaq,wake_s,q_seri,qtc_cv, sigt_cv, &
                        fm_therm,entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp,sigd, &
-                       ratqs_inter_)
-             do k=1,klev
-                do i=1,klon
-                    ratqs_inter_(i,k)=ratqs_inter_(i,k)-0.5*ratqs_inter_(i,k)*(tanh((ratqsp0-pplay(i,k))/ratqsdp)+1.)
-                enddo
-             enddo
+                       ratqs_inter_,sigma_qtherm)
              ratqss=ratqss+ratqs_inter_
           else if (iflag_ratqs .EQ. 11) then
@@ -211,5 +207,5 @@
                        ratqsbas,wake_deltaq,wake_s,q_seri,qtc_cv, sigt_cv, &
                        fm_therm,entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp,sigd, &
-                       ratqs_inter_)
+                       ratqs_inter_,sigma_qtherm)
              ratqss=ratqss+ratqs_inter_
           else if (iflag_ratqs .EQ. 12) then
Index: LMDZ6/trunk/libf/phylmd/lmdz_ratqs_multi.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/lmdz_ratqs_multi.F90	(revision 5207)
+++ LMDZ6/trunk/libf/phylmd/lmdz_ratqs_multi.F90	(revision 5208)
@@ -28,5 +28,5 @@
            ratqsbas, wake_deltaq, wake_s, q_seri,qtc_cv, sigt_cv,     &
            fm_therm,entr_therm,detr_therm,detrain_cv,fm_cv,fqd,fqcomp,sigd, &
-           ratqs_inter_)
+           ratqs_inter_,sigma_qtherm)
 
 USE lmdz_ratqs_ini, ONLY : a_ratqs_cv,tau_var,fac_tau,tau_cumul,a_ratqs_wake, dqimpl
@@ -70,5 +70,5 @@
 real, dimension(klon) :: max_sigd, max_dqconv,max_sigt
 real, dimension(klon,klev) :: zoa,zocarrea,pdocarreadj,pocarre,po,pdoadj,varq_therm
-real, dimension(klon,klev) :: var_moy, var_var, var_desc_th,var_det_conv,var_desc_prec,var_desc_conv,sigma_therm
+real, dimension(klon,klev) :: var_moy, var_var, var_desc_th,var_det_conv,var_desc_prec,var_desc_conv,sigma_qtherm
 
 lev_out=0.
@@ -198,8 +198,8 @@
            if(q_seri(i,k).ge.1E-7) then
                ratqs_inter_(i,k) = abs(povariance(i,k))**0.5/q_seri(i,k)    
-               sigma_therm(i,k) = abs(varq_therm(i,k))**0.5     ! sigma dans les thermiques
+               sigma_qtherm(i,k) = abs(varq_therm(i,k))**0.5     ! sigma dans les thermiques
            else 
                ratqs_inter_(i,k) = 0.  
-               sigma_therm(i,k) = 0.
+               sigma_qtherm(i,k) = 0.
            endif
         enddo
Index: LMDZ6/trunk/libf/phylmd/phys_state_var_mod.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/phys_state_var_mod.F90	(revision 5207)
+++ LMDZ6/trunk/libf/phylmd/phys_state_var_mod.F90	(revision 5208)
@@ -479,6 +479,6 @@
 !$OMP THREADPRIVATE(ale_bl_trig)
 
-      REAL,SAVE,ALLOCATABLE :: ratqs_inter_(:,:)
-!$OMP THREADPRIVATE(ratqs_inter_)
+      REAL,SAVE,ALLOCATABLE :: ratqs_inter_(:,:),sigma_qtherm(:,:)
+!$OMP THREADPRIVATE(ratqs_inter_,sigma_qtherm)
 
 #ifdef ISO
@@ -773,5 +773,5 @@
 
       ALLOCATE(ale_bl_trig(klon))
-      ALLOCATE(ratqs_inter_(klon,klev))
+      ALLOCATE(ratqs_inter_(klon,klev),sigma_qtherm(klon,klev))
       IF (ok_gwd_rando) THEN
         ALLOCATE(du_gwd_rando(klon, klev))
@@ -942,5 +942,5 @@
       if (.not. ok_hines .and. ok_gwd_rando) DEALLOCATE(du_gwd_front)
       DEALLOCATE(ale_bl_trig)
-      DEALLOCATE(ratqs_inter_)
+      DEALLOCATE(ratqs_inter_,sigma_qtherm)
 
       if (activate_ocean_skin >= 1) then
Index: LMDZ6/trunk/libf/phylmd/physiq_mod.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 5207)
+++ LMDZ6/trunk/libf/phylmd/physiq_mod.F90	(revision 5208)
@@ -1838,5 +1838,5 @@
                mr_ozone_cosp0,cldtau_cosp0, cldemi_cosp0)
 #endif
-      endif  ! ok_cosp
+      ENDIF 
 
        !
@@ -3841,5 +3841,5 @@
          omega,pbl_tke(:,:,is_ave),pbl_eps(:,:,is_ave),l_mix_ave,wprime_ave, &
          t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area, &
-         ratqs,ratqsc,ratqs_inter_)
+         ratqs,ratqsc,ratqs_inter_,sigma_qtherm)
 
     !
@@ -3862,5 +3862,5 @@
 
     CALL lscp(klon,klev,phys_tstep,missing_val,paprs,pplay, &
-         t_seri, q_seri,qs_ini,ptconv,ratqs, &
+         t_seri, q_seri,qs_ini,ptconv,ratqs,sigma_qtherm, &
          d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol, & 
          pfraclr, pfracld, cldfraliq, sigma2_icefracturb, mean_icefracturb,  &
@@ -3886,5 +3886,5 @@
 
     CALL fisrtilp(klon,klev,phys_tstep,paprs,pplay, &
-         t_seri, q_seri,ptconv,ratqs, &
+         t_seri, q_seri,ptconv,ratqs,sigma_qtherm, &
          d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol, radocond, &
          rain_lsc, snow_lsc, &
