Index: /LMDZ5/trunk/libf/phylmd/cloudth_mod.F90
===================================================================
--- /LMDZ5/trunk/libf/phylmd/cloudth_mod.F90	(revision 2910)
+++ /LMDZ5/trunk/libf/phylmd/cloudth_mod.F90	(revision 2911)
@@ -860,6 +860,6 @@
       ! Change the width of the PDF used for vertical subgrid scale heterogeneity
       ! (J Jouhaud, JL Dufresne, JB Madeleine)
-      REAL,SAVE :: vert_alpha
-      !$OMP THREADPRIVATE(vert_alpha)
+      REAL,SAVE :: vert_alpha, vert_alpha_th
+      !$OMP THREADPRIVATE(vert_alpha, vert_alpha_th)
       LOGICAL, SAVE :: firstcall = .TRUE.
       !$OMP THREADPRIVATE(firstcall)
@@ -897,4 +897,9 @@
         CALL getin_p('cloudth_vert_alpha',vert_alpha)
         WRITE(*,*) 'cloudth_vert_alpha = ', vert_alpha
+        ! The factor used for the thermal is equal to that of the environment
+        !   if nothing is explicitly specified in the def file
+        vert_alpha_th=vert_alpha
+        CALL getin_p('cloudth_vert_alpha_th',vert_alpha_th)
+        WRITE(*,*) 'cloudth_vert_alpha_th = ', vert_alpha_th
         firstcall=.FALSE.
       ENDIF
@@ -1001,5 +1006,5 @@
       qltot(ind1,ind2)=fraca(ind1,ind2)*qlth(ind1,ind2)+(1.-1.*fraca(ind1,ind2))*qlenv(ind1,ind2)
 
-      ELSE IF (iflag_cloudth_vert == 3) THEN
+      ELSE IF (iflag_cloudth_vert >= 3) THEN
 
 !-------------------------------------------------------------------------------
@@ -1010,6 +1015,11 @@
 !      deltasenv=aenv*ratqs(ind1,ind2)*zqsatenv(ind1,ind2)
 !      deltasth=ath*ratqs(ind1,ind2)*zqsatth(ind1,ind2)
-      deltasenv=aenv*vert_alpha*sigma1s
-      deltasth=ath*vert_alpha*sigma2s
+      IF (iflag_cloudth_vert == 3) THEN
+        deltasenv=aenv*vert_alpha*sigma1s
+        deltasth=ath*vert_alpha_th*sigma2s
+      ELSE IF (iflag_cloudth_vert == 4) THEN
+        deltasenv=vert_alpha*sigma1s
+        deltasth=vert_alpha_th*sigma2s
+      ENDIF
       
       xenv1=-(senv+deltasenv)/(sqrt(2.)*sigma1s)
@@ -1053,5 +1063,5 @@
 
 
-      ENDIF ! of if (iflag_cloudth_vert==1 or 3)
+      ENDIF ! of if (iflag_cloudth_vert==1 or 3 or 4)
 
       if (cenv(ind1,ind2).lt.1.e-10.or.cth(ind1,ind2).lt.1.e-10) then
Index: /LMDZ5/trunk/libf/phylmd/fisrtilp.F90
===================================================================
--- /LMDZ5/trunk/libf/phylmd/fisrtilp.F90	(revision 2910)
+++ /LMDZ5/trunk/libf/phylmd/fisrtilp.F90	(revision 2911)
@@ -702,5 +702,5 @@
                    qcloud,ctot,zpspsk,paprs,ztla,zthl, &
                    ratqs,zqs,t)
-              elseif (iflag_cloudth_vert==3) then
+              elseif (iflag_cloudth_vert>=3) then
                call cloudth_v3(klon,klev,k,ztv, &
                    zq,zqta,fraca, &
