Index: LMDZ5/trunk/libf/phylmd/cv3p_mixing.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/cv3p_mixing.F90	(revision 2899)
+++ LMDZ5/trunk/libf/phylmd/cv3p_mixing.F90	(revision 2900)
@@ -14,4 +14,6 @@
 
   USE print_control_mod, ONLY: mydebug=>debug , lunout, prt_level
+  USE ioipsl_getin_p_mod, ONLY: getin_p
+  USE add_phys_tend_mod, ONLY: fl_cor_ebil
 
   IMPLICIT NONE
@@ -70,4 +72,6 @@
   REAL                               :: Tm         !Mixed draught temperature
   LOGICAL, DIMENSION (nloc)          :: lwork
+  LOGICAL, SAVE                      :: ok_entrain=.TRUE.
+!$OMP THREADPRIVATE(ok_entrain)
 
   REAL amxupcrit, df, ff
@@ -110,5 +114,6 @@
             fmax, gammas, qqa1, qqa2, Qcoef1max, Qcoef2max
 !>jyg
-
+!
+    CALL getin_p('ok_entrain',ok_entrain)
   END IF
 
@@ -165,58 +170,64 @@
   DO i = minorig + 1, nl
 
-    DO j = minorig, nl
-      DO il = 1, ncum
-        IF ((i>=icb(il)) .AND. (i<=inb(il)) .AND. (j>=(icb(il)-1)) &
-                         .AND. (j<=inb(il))) THEN
-
-          rti = qnk(il) - ep(il, i)*clw(il, i)
-          bf2 = 1. + lv(il, j)*lv(il, j)*rs(il, j)/(rrv*t(il,j)*t(il,j)*cpd)
-!jyg(from aj)<
-          IF (cvflag_ice) THEN
-! print*,cvflag_ice,'cvflag_ice dans do 700'
-            IF (t(il,j)<=263.15) THEN
-              bf2 = 1. + (lf(il,j)+lv(il,j))*(lv(il,j)+frac(il,j)* &
-                   lf(il,j))*rs(il, j)/(rrv*t(il,j)*t(il,j)*cpd)
-            END IF
-          END IF
-!>jyg
-          anum = h(il, j) - hp(il, i) + (cpv-cpd)*t(il, j)*(rti-rr(il,j))
-          denom = h(il, i) - hp(il, i) + (cpd-cpv)*(rr(il,i)-rti)*t(il, j)
-          dei = denom
-          IF (abs(dei)<0.01) dei = 0.01
-          Sij(il, i, j) = anum/dei
-          Sij(il, i, i) = 1.0
-          altem = Sij(il, i, j)*rr(il, i) + (1.-Sij(il,i,j))*rti - rs(il, j)
-          altem = altem/bf2
-          cwat = clw(il, j)*(1.-ep(il,j))
-          stemp = Sij(il, i, j)
-          IF ((stemp<0.0 .OR. stemp>1.0 .OR. altem>cwat) .AND. j>i) THEN
+    IF (ok_entrain) THEN
+      DO j = minorig, nl
+        DO il = 1, ncum
+          IF ((i>=icb(il)) .AND. (i<=inb(il)) .AND. (j>=(icb(il)-1)) &
+                           .AND. (j<=inb(il))) THEN
+
+            rti = qnk(il) - ep(il, i)*clw(il, i)
+            bf2 = 1. + lv(il, j)*lv(il, j)*rs(il, j)/(rrv*t(il,j)*t(il,j)*cpd)
 !jyg(from aj)<
             IF (cvflag_ice) THEN
-              anum = anum - (lv(il,j)+frac(il,j)*lf(il,j))*(rti-rs(il,j)-cwat*bf2)
-              denom = denom + (lv(il,j)+frac(il,j)*lf(il,j))*(rr(il,i)-rti)
-            ELSE
-              anum = anum - lv(il, j)*(rti-rs(il,j)-cwat*bf2)
-              denom = denom + lv(il, j)*(rr(il,i)-rti)
+! print*,cvflag_ice,'cvflag_ice dans do 700'
+              IF (t(il,j)<=263.15) THEN
+                bf2 = 1. + (lf(il,j)+lv(il,j))*(lv(il,j)+frac(il,j)* &
+                     lf(il,j))*rs(il, j)/(rrv*t(il,j)*t(il,j)*cpd)
+              END IF
             END IF
 !>jyg
-            IF (abs(denom)<0.01) denom = 0.01
-            Sij(il, i, j) = anum/denom
+            anum = h(il, j) - hp(il, i) + (cpv-cpd)*t(il, j)*(rti-rr(il,j))
+            denom = h(il, i) - hp(il, i) + (cpd-cpv)*(rr(il,i)-rti)*t(il, j)
+            dei = denom
+            IF (abs(dei)<0.01) dei = 0.01
+            Sij(il, i, j) = anum/dei
+            Sij(il, i, i) = 1.0
             altem = Sij(il, i, j)*rr(il, i) + (1.-Sij(il,i,j))*rti - rs(il, j)
-            altem = altem - (bf2-1.)*cwat
-          END IF
-          IF (Sij(il,i,j)>0.0) THEN
+            altem = altem/bf2
+            cwat = clw(il, j)*(1.-ep(il,j))
+            stemp = Sij(il, i, j)
+            IF ((stemp<0.0 .OR. stemp>1.0 .OR. altem>cwat) .AND. j>i) THEN
+!jyg(from aj)<
+              IF (cvflag_ice) THEN
+                anum = anum - (lv(il,j)+frac(il,j)*lf(il,j))*(rti-rs(il,j)-cwat*bf2)
+                denom = denom + (lv(il,j)+frac(il,j)*lf(il,j))*(rr(il,i)-rti)
+              ELSE
+                anum = anum - lv(il, j)*(rti-rs(il,j)-cwat*bf2)
+                denom = denom + lv(il, j)*(rr(il,i)-rti)
+              END IF
+!>jyg
+              IF (abs(denom)<0.01) denom = 0.01
+              Sij(il, i, j) = anum/denom
+              altem = Sij(il, i, j)*rr(il, i) + (1.-Sij(il,i,j))*rti - rs(il, j)
+              altem = altem - (bf2-1.)*cwat
+            END IF
+            IF (Sij(il,i,j)>0.0) THEN
 !!!                 Ment(il,i,j)=m(il,i)
-            Ment(il, i, j) = 1.
-            elij(il, i, j) = altem
-            elij(il, i, j) = amax1(0.0, elij(il,i,j))
-            nent(il, i) = nent(il, i) + 1
-          END IF
-
-          Sij(il, i, j) = amax1(0.0, Sij(il,i,j))
-          Sij(il, i, j) = amin1(1.0, Sij(il,i,j))
-        END IF ! new
-      END DO
-    END DO
+              Ment(il, i, j) = 1.
+              elij(il, i, j) = altem
+              elij(il, i, j) = amax1(0.0, elij(il,i,j))
+              nent(il, i) = nent(il, i) + 1
+            END IF
+
+            Sij(il, i, j) = amax1(0.0, Sij(il,i,j))
+            Sij(il, i, j) = amin1(1.0, Sij(il,i,j))
+          END IF ! new
+        END DO
+      END DO
+    ELSE  ! (ok_entrain)
+      DO il = 1,ncum
+        nent(il,i) = 0
+      ENDDO
+    ENDIF ! (ok_entrain)
 
 !jygdebug<
