Index: trunk/LMDZ.PLUTO/libf/phypluto/ch4cloud.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/ch4cloud.F90	(revision 3947)
+++ trunk/LMDZ.PLUTO/libf/phypluto/ch4cloud.F90	(revision 3948)
@@ -6,6 +6,7 @@
       use comgeomfi_h
       use comcstfi_mod, only: pi, g, cpp
-      use tracer_h, only: igcm_ch4_gas, igcm_ch4_ice, rho_ch4_ice, lw_ch4
-      use callkeys_mod, only: Nmix_ch4
+      use tracer_h, only: igcm_ch4_gas, igcm_ch4_ice, & 
+             rho_ch4_ice,lw_ch4,micro_indx
+      use callkeys_mod, only: Nmix_ch4, callmufi
 
       IMPLICIT NONE
@@ -74,4 +75,5 @@
       REAL zqsat(ngrid,nlay)    ! saturation
       REAL zt(ngrid,nlay)       ! local value of temperature
+      REAL nmix(ngrid,nlay)     ! Profil of Nmix
 
       REAL vecnull(ngrid*nlay)
@@ -134,17 +136,40 @@
 !    On effectue qqes calculs preliminaires sur les couches :
 
+      zt(:,:)=pt(:,:)+ pdt(:,:)*ptimestep
+      zq(:,:,i_ch4)=pq(:,:,i_ch4)+pdq(:,:,i_ch4)*ptimestep
+      zq(:,:,i_ice)=pq(:,:,i_ice)+pdq(:,:,i_ice)*ptimestep
+
+      if (callmufi) then
+        zq(:,:,micro_indx(1))=pq(:,:,micro_indx(1))+ &
+                    pdq(:,:,micro_indx(1))*ptimestep
+        zq(:,:,micro_indx(3))=pq(:,:,micro_indx(3))+ &
+                    pdq(:,:,micro_indx(3))*ptimestep
+      endif
+
       do l=1,nlay
         do ig=1,ngrid
-          zt(ig,l)=pt(ig,l)+ pdt(ig,l)*ptimestep
-          zq(ig,l,i_ch4)=pq(ig,l,i_ch4)+pdq(ig,l,i_ch4)*ptimestep
           zq(ig,l,i_ch4)=max(zq(ig,l,i_ch4),1.E-30)
-          zq(ig,l,i_ice)=pq(ig,l,i_ice)+pdq(ig,l,i_ice)*ptimestep
           zq(ig,l,i_ice)=max(zq(ig,l,i_ice),0.)
         enddo
       enddo
+      if (callmufi) then
+       do l=1,nlay
+        do ig=1,ngrid
+          zq(ig,l,micro_indx(1))=max(zq(ig,l,micro_indx(1)),1.E-30)
+          zq(ig,l,micro_indx(3))=max(zq(ig,l,micro_indx(3)),1.E-30)
+        enddo
+       enddo
+      endif
 
       pdqscloud(1:ngrid,1:nq)=0
       pdqcloud(1:ngrid,1:nlay,1:nq)=0
       pdtcloud(1:ngrid,1:nlay)=0
+
+      ! Nmix profile
+      if (callmufi) then
+         nmix(:,:)=zq(ig,l,micro_indx(1))+zq(ig,l,micro_indx(3))
+      else
+         nmix(:,:)=Nmix_ch4
+      endif
 
 !    ----------------------------------------------
@@ -208,6 +233,6 @@
                 zq(ig,l,i_ice)= &
                  zq(ig,l,i_ice)+pdqcloud(ig,l,i_ice)*ptimestep
-                rice_ch4(ig,l)=max( CBRT ( (zq(ig,l,i_ice)/rho_ch4_ice  &
-               +Nmix_ch4*(4./3.)*pi*rnuclei**3.)/(Nmix_ch4*4./3.*pi)),  &
+                rice_ch4(ig,l)=max( CBRT ( (zq(ig,l,i_ice)/rho_ch4_ice &
+            +nmix(ig,l)*(4./3.)*pi*rnuclei**3.)/(nmix(ig,l)*4./3.*pi)), &
                                              rnuclei)
              end if
