Index: /LMDZ6/trunk/libf/phylmd/cv3_routines.F90
===================================================================
--- /LMDZ6/trunk/libf/phylmd/cv3_routines.F90	(revision 3499)
+++ /LMDZ6/trunk/libf/phylmd/cv3_routines.F90	(revision 3500)
@@ -2962,11 +2962,24 @@
 
     IF (cvflag_ice) THEN                                                                                !!jygprl
-      DO il = 1, ncum                                                                                   !!jygprl
-        IF (i<=inb(il) .AND. lwork(il)) THEN                                                            !!jygprl
-          frac(il, i) = (frac_a(il,i)*wdtrainA(il,i)+frac_s(il,i)*(wdtrainS(il,i)+wdtrainM(il,i))) / &  !!jygprl
-                        max(wdtrainA(il,i)+wdtrainS(il,i)+wdtrainM(il,i),smallestreal)                  !!jygprl
-          fraci(il, i) = frac(il, i)                                                                    !!jygprl
-        END IF                                                                                          !!jygprl
-      END DO                                                                                            !!jygprl
+      IF (cvflag_prec_eject) THEN
+        DO il = 1, ncum                                                                                   !!jygprl
+          IF (i<=inb(il) .AND. lwork(il)) THEN                                                            !!jygprl
+            frac(il, i) = (frac_a(il,i)*wdtrainA(il,i)+frac_s(il,i)*(wdtrainS(il,i)+wdtrainM(il,i))) / &  !!jygprl
+                          max(wdtrainA(il,i)+wdtrainS(il,i)+wdtrainM(il,i),smallestreal)                  !!jygprl
+            fraci(il, i) = frac(il, i)                                                                    !!jygprl
+          END IF                                                                                          !!jygprl
+        END DO                                                                                            !!jygprl
+      ELSE  ! (cvflag_prec_eject)
+        DO il = 1, ncum                                                                                   !!jygprl
+          IF (i<=inb(il) .AND. lwork(il)) THEN                                                            !!jygprl
+          frac(il, inb(il)) = 1. - (t(il,inb(il))-243.15)/(263.15-243.15)
+          frac(il, inb(il)) = min(max(frac(il,inb(il)),0.), 1.)
+!       Ice fraction computed again here as a function of the temperature seen by unsaturated downdraughts
+!       (i.e. the cold pool temperature) for compatibility with earlier versions.
+          fraci(il, i) = 1. - (t(il,i)-243.15)/(263.15-243.15)
+          fraci(il, i) = min(max(fraci(il,i),0.0), 1.0)
+          END IF                                                                                          !!jygprl
+        END DO                                                                                            !!jygprl
+      ENDIF  ! (cvflag_prec_eject)
     END IF                                                                                              !!jygprl
 
