Index: LMDZ5/trunk/libf/phylmd/cloudth.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/cloudth.F90	(revision 2585)
+++ LMDZ5/trunk/libf/phylmd/cloudth.F90	(revision 2586)
@@ -5,5 +5,4 @@
 
 
-      USE IOIPSL, ONLY : getin
       IMPLICIT NONE
 
@@ -55,5 +54,5 @@
       REAL sth,senv,sigma1s,sigma2s,xth,xenv
       REAL Tbef,zdelta,qsatbef,zcor
-      REAL alpha,qlbef  
+      REAL qlbef  
       REAL ratqs(ngrid,klev) ! determine la largeur de distribution de vapeur
       
@@ -171,15 +170,8 @@
       cenv(ind1,ind2)=0.5*(1.+1.*erf(xenv)) 
       ctot(ind1,ind2)=fraca(ind1,ind2)*cth(ind1,ind2)+(1.-1.*fraca(ind1,ind2))*cenv(ind1,ind2)   
-!      ctot(ind1,ind2)=alpha*cth(ind1,ind2)+(1.-1.*alpha)*cenv(ind1,ind2) 
-
-
 
       qlth(ind1,ind2)=sigma2s*((exp(-1.*xth**2)/sqrt2pi)+xth*sqrt(2.)*cth(ind1,ind2))
       qlenv(ind1,ind2)=sigma1s*((exp(-1.*xenv**2)/sqrt2pi)+xenv*sqrt(2.)*cenv(ind1,ind2))   
       qltot(ind1,ind2)=fraca(ind1,ind2)*qlth(ind1,ind2)+(1.-1.*fraca(ind1,ind2))*qlenv(ind1,ind2)
-!      qltot(ind1,ind2)=alpha*qlth(ind1,ind2)+(1.-1.*alpha)*qlenv(ind1,ind2)
-     
-
-!      print*,senv,sth,sigma1s,sigma2s,fraca(ind1,ind2),'senv et sth et sig1 et sig2 et alpha'
 
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -255,8 +247,4 @@
      &           ratqs,zqs,t)
 
-
-      IMPLICIT NONE
-
-
 !===========================================================================
 ! Auteur : Arnaud Octavio Jam (LMD/CNRS)
@@ -265,4 +253,8 @@
 !===========================================================================
 
+
+      USE ioipsl_getin_p_mod, ONLY : getin_p
+
+      IMPLICIT NONE
 
 #include "YOMCST.h"
@@ -307,6 +299,10 @@
       REAL IntJ,IntI1,IntI2,IntI3,coeffqlenv,coeffqlth
       REAL Tbef,zdelta,qsatbef,zcor
-      REAL alpha,qlbef  
+      REAL qlbef  
       REAL ratqs(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)
+      REAL,SAVE :: vert_alpha
+      LOGICAL, SAVE :: firstcall = .TRUE.
       
       REAL zpdf_sig(ngrid),zpdf_k(ngrid),zpdf_delta(ngrid)
@@ -314,8 +310,4 @@
       REAL zqs(ngrid), qcloud(ngrid)
       REAL erf
-
-
-
-
 
 !------------------------------------------------------------------------------
@@ -342,5 +334,10 @@
       sqrtpi=sqrt(pi)
 
-
+      IF (firstcall) THEN
+        vert_alpha=0.5
+        CALL getin_p('cloudth_vert_alpha',vert_alpha)
+        WRITE(*,*) 'cloudth_vert_alpha = ', vert_alpha
+        firstcall=.FALSE.
+      ENDIF
 
 !-------------------------------------------------------------------------------
@@ -412,17 +409,9 @@
       cenv(ind1,ind2)=0.5*(1.+1.*erf(xenv)) 
       ctot(ind1,ind2)=fraca(ind1,ind2)*cth(ind1,ind2)+(1.-1.*fraca(ind1,ind2))*cenv(ind1,ind2)   
-!      ctot(ind1,ind2)=alpha*cth(ind1,ind2)+(1.-1.*alpha)*cenv(ind1,ind2) 
-
-
 
       qlth(ind1,ind2)=sigma2s*((exp(-1.*xth**2)/sqrt2pi)+xth*sqrt(2.)*cth(ind1,ind2))
       qlenv(ind1,ind2)=sigma1s*((exp(-1.*xenv**2)/sqrt2pi)+xenv*sqrt(2.)*cenv(ind1,ind2))   
       qltot(ind1,ind2)=fraca(ind1,ind2)*qlth(ind1,ind2)+(1.-1.*fraca(ind1,ind2))*qlenv(ind1,ind2)
-!      qltot(ind1,ind2)=alpha*qlth(ind1,ind2)+(1.-1.*alpha)*qlenv(ind1,ind2)
      
-
-!      print*,senv,sth,sigma1s,sigma2s,fraca(ind1,ind2),'senv et sth et sig1 et sig2 et alpha'
-
-
        IF (iflag_cloudth_vert == 1) THEN
 !-------------------------------------------------------------------------------
@@ -476,6 +465,6 @@
 !      deltasenv=aenv*ratqs(ind1,ind2)*zqsatenv(ind1,ind2)
 !      deltasth=ath*ratqs(ind1,ind2)*zqsatth(ind1,ind2)
-      deltasenv=aenv*0.5*sigma1s
-      deltasth=ath*0.5*sigma2s
+      deltasenv=aenv*vert_alpha*sigma1s
+      deltasth=ath*vert_alpha*sigma2s
       
       xenv1=-(senv+deltasenv)/(sqrt(2.)*sigma1s)
