Index: LMDZ5/trunk/libf/phylmd/conf_phys.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/conf_phys.F90	(revision 1523)
+++ LMDZ5/trunk/libf/phylmd/conf_phys.F90	(revision 1525)
@@ -129,4 +129,5 @@
   REAL,SAVE :: rad_froid_omp, rad_chau1_omp, rad_chau2_omp
   REAL,SAVE :: t_glace_min_omp, t_glace_max_omp
+  REAL,SAVE :: rei_min_omp, rei_max_omp
   REAL,SAVE :: inertie_sol_omp,inertie_sno_omp,inertie_ice_omp
   REAL,SAVE :: qsol0_omp
@@ -858,4 +859,21 @@
   call getin('t_glace_max',t_glace_max_omp)
 
+!Config Key  = rei_min
+!Config Desc =  
+!Config Def  = 3.5
+!Config Help = 
+!
+  rei_min_omp = 3.5
+  call getin('rei_min',rei_min_omp)
+
+!
+!Config Key  = rei_max
+!Config Desc =  
+!Config Def  = 61.29
+!Config Help = 
+!
+  rei_max_omp = 61.29
+  call getin('rei_max',rei_max_omp)
+
 !
 !Config Key  = top_height
@@ -1503,4 +1521,6 @@
     t_glace_min = t_glace_min_omp
     t_glace_max = t_glace_max_omp
+    rei_min = rei_min_omp
+    rei_max = rei_max_omp
     top_height = top_height_omp
     overlap = overlap_omp
@@ -1688,4 +1708,6 @@
   write(numout,*)' t_glace_min = ',t_glace_min
   write(numout,*)' t_glace_max = ',t_glace_max
+  write(numout,*)' rei_min = ',rei_min
+  write(numout,*)' rei_max = ',rei_max
   write(numout,*)' overlap = ',overlap 
   write(numout,*)' cdmmax = ',cdmmax 
Index: LMDZ5/trunk/libf/phylmd/newmicro.F
===================================================================
--- LMDZ5/trunk/libf/phylmd/newmicro.F	(revision 1523)
+++ LMDZ5/trunk/libf/phylmd/newmicro.F	(revision 1525)
@@ -155,8 +155,25 @@
       REAL diff_paprs(klon, klev), zfice1, zfice2(klon, klev)
       REAL rad_chaud_tab(klon, klev), zflwp_var, zfiwp_var
+      REAL d_rei_dt
 
 ! Abderrahmane oct 2009
       Real reliq(klon, klev), reice(klon, klev)
 
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! FH : 2011/05/24
+!
+! rei = ( rei_max - rei_min ) * T(°C) / 81.4 + rei_max
+! to be used for a temperature in celcius T(°C) < 0
+! rei=rei_min for T(°C) < -81.4
+!
+! Calcul de la pente de la relation entre rayon effective des cristaux
+! et la température.
+! Pour retrouver les résultats numériques de la version d'origine,
+! on impose 0.71 quand on est proche de 0.71
+
+      d_rei_dt=(rei_max-rei_min)/81.4
+      if (abs(d_rei_dt-0.71)<1.e-4) d_rei_dt=0.71
+!      print*,'d_rei_dT ',d_rei_dt,rei_min,rei_max
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 c
 c Calculer l'epaisseur optique et l'emmissivite des nuages
@@ -294,6 +311,6 @@
                   
                      tc = t(i,k)-273.15
-                     rei = 0.71*tc + 61.29 
-                     if (tc.le.-81.4) rei = 3.5 
+                     rei = d_rei_dt*tc + rei_max
+                     if (tc.le.-81.4) rei = rei_min
                      if (zflwp_var.eq.0.) radius = 1. 
                      if (zfiwp_var.eq.0. .or. rei.le.0.) rei = 1. 
@@ -321,7 +338,8 @@
 c     asymptotical value of 3.5 microns at T<-81.4 C added to be 
 c     consistent with observations of Heymsfield et al. 1986]:
+c  2011/05/24 : rei_min = 3.5 becomes a free parameter as well as rei_max=61.29
                   tc = t(i,k)-273.15
-                  rei = 0.71*tc + 61.29 
-                  if (tc.le.-81.4) rei = 3.5 
+                  rei = d_rei_dt*tc + rei_max
+                  if (tc.le.-81.4) rei = rei_min
 c     -- cloud optical thickness :
                
Index: LMDZ5/trunk/libf/phylmd/nuage.h
===================================================================
--- LMDZ5/trunk/libf/phylmd/nuage.h	(revision 1523)
+++ LMDZ5/trunk/libf/phylmd/nuage.h	(revision 1525)
@@ -3,6 +3,7 @@
 !
       REAL rad_froid, rad_chau1, rad_chau2, t_glace_max, t_glace_min
+      REAL rei_min,rei_max
 
       common /nuagecom/ rad_froid,rad_chau1, rad_chau2,t_glace_max,     &
-     &                  t_glace_min
+     &                  t_glace_min,rei_min,rei_max
 !$OMP THREADPRIVATE(/nuagecom/)
Index: LMDZ5/trunk/libf/phylmd/physiq.F
===================================================================
--- LMDZ5/trunk/libf/phylmd/physiq.F	(revision 1523)
+++ LMDZ5/trunk/libf/phylmd/physiq.F	(revision 1525)
@@ -2920,5 +2920,14 @@
          enddo
 
+         else if (iflag_coupl==5) then
+         do k=1,klev
+            do i=1,klon
+               cldfra(i,k)=min(cldfra(i,k)+rnebcon(i,k),1.)
+               cldliq(i,k)=cldliq(i,k)+rnebcon(i,k)*clwcon(i,k)
+            enddo
+         enddo
+
          else
+
 ! Si on est sur un point touche par la convection profonde et pas
 ! par les thermiques, on prend la couverture nuageuse et l'eau nuageuse
Index: LMDZ5/trunk/libf/phylmd/thermcell_main.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/thermcell_main.F90	(revision 1523)
+++ LMDZ5/trunk/libf/phylmd/thermcell_main.F90	(revision 1525)
@@ -753,5 +753,5 @@
       enddo
 
-      if (iflag_coupl==3 .or. iflag_coupl==4) then
+      if (iflag_coupl>=3 .and. iflag_coupl<=5) then
       do ig=1,ngrid
 !valeur integree de alp_bl * 0.5:
