Index: trunk/LMDZ.PLUTO/libf/phypluto/callkeys_mod.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/callkeys_mod.F90	(revision 3651)
+++ trunk/LMDZ.PLUTO/libf/phypluto/callkeys_mod.F90	(revision 3652)
@@ -73,6 +73,6 @@
       logical,save :: condmetsurf,condcosurf,vertdiff
 !$OMP THREADPRIVATE(condmetsurf,condcosurf,vertdiff)
-      logical,save :: convergeps,conservn2,condensn2,no_n2frost
-!$OMP THREADPRIVATE(convergeps,conservn2,condensn2,no_n2frost)
+      logical,save :: convergeps,conservn2,condensn2,no_n2frost,no_ch4frost
+!$OMP THREADPRIVATE(convergeps,conservn2,condensn2,no_n2frost,no_ch4frost)
       logical,save :: conservch4
 !$OMP THREADPRIVATE(conservch4)
Index: trunk/LMDZ.PLUTO/libf/phypluto/ch4surf.F
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/ch4surf.F	(revision 3651)
+++ trunk/LMDZ.PLUTO/libf/phypluto/ch4surf.F	(revision 3652)
@@ -2,5 +2,5 @@
      &   pdtsurf,pplev,pdpsurf,pq,pdq,pqsurf,pdqsurf,pdqch4,pdqsch4)
   
-      use callkeys_mod, only: dayfrac, thresh_non2
+      use callkeys_mod, only: dayfrac, thresh_non2, no_ch4frost
       use comcstfi_mod, only: g, r
       use comgeomfi_h 
@@ -93,16 +93,24 @@
       DO ig=1,ngrid
 
-         !! Take into account activity coefficient
-         gamm(ig)=499.9-21.8*ztsurf(ig)+0.249*ztsurf(ig)**2
-     &             -1.3*(zq_ch4(ig)*
-     &             mmol(igcm_n2)/mmol(igcm_ch4_gas)*100.-0.6)/0.3
-         gamm(ig)=max(gamm(ig),1.)
-         !qsat(ig)=qsat(ig)*gamm(ig)
+          !! Take into account activity coefficient
+!         gamm(ig)=499.9-21.8*ztsurf(ig)+0.249*ztsurf(ig)**2
+!     &             -1.3*(zq_ch4(ig)*
+!     &             mmol(igcm_n2)/mmol(igcm_ch4_gas)*100.-0.6)/0.3
+!         gamm(ig)=max(gamm(ig),1.)
+!         qsat(ig)=qsat(ig)*gamm(ig)
 
-         rho = zpsrf(ig) / (r *  tsurf(ig) )
-         !! Condensation Flux
-         pdqsch4(ig)=(-rho*uv*cdrag*(qsat(ig)-zq_ch4(ig)))
+         !! option to not form any CH4 frost
+         if (no_ch4frost.and.pqsurf(ig,igcm_ch4_ice).lt.5000.) then
 
-         if (dayfrac.gt.0.and.zq_n2surf(ig).gt.thresh_non2) then
+           pdqch4(ig)=0.
+           pdqsch4(ig)=0.
+
+         else
+
+           rho = zpsrf(ig) / (r *  tsurf(ig) )
+           !! Condensation Flux
+           pdqsch4(ig)=(-rho*uv*cdrag*(qsat(ig)-zq_ch4(ig)))
+
+           if (dayfrac.gt.0.and.zq_n2surf(ig).gt.thresh_non2) then
             if (dayfrac.gt.1.) then
                pdqsch4(ig)=min(pdqsch4(ig),0.)
@@ -112,33 +120,35 @@
                endif
             endif
-         endif
+           endif
                       
-         !! Conserve mass if reservoir depleted                   
-         if ((-pdqsch4(ig)*ptimestep).gt.
+           !! Conserve mass if reservoir depleted                   
+           if ((-pdqsch4(ig)*ptimestep).gt.
      &                          (pqsurf(ig,igcm_ch4_ice))) then
             pdqsch4(ig)=-pqsurf(ig,igcm_ch4_ice)/ptimestep
+           endif
+
+           if (pdqsch4(ig)*ptimestep.gt.zq_ch4(ig)*zpsrf(ig)/g) then
+            pdqsch4(ig)=zq_ch4(ig)/ptimestep*zpsrf(ig)/g
+           endif
+
+           !! Security to avoid large changes in temperatures due to
+           !latent heat                   
+           if (lw_ch4*pdqsch4(ig)*ptimestep/capcal(ig).gt.1.) then
+            pdqsch4(ig)=1./(lw_ch4*ptimestep)*capcal(ig)
+           endif
+           if (lw_ch4*pdqsch4(ig)*ptimestep/capcal(ig).lt.-1.) then
+            pdqsch4(ig)=-1./(lw_ch4*ptimestep)*capcal(ig)
+           endif
+           !if (pdqsch4(ig)*ptimestep.gt.0.25) then
+           !   pdqsch4(ig)=0.25/ptimestep
+           !endif
+           !if (pdqsch4(ig)*ptimestep.lt.-0.25) then
+           !   pdqsch4(ig)=-0.25/ptimestep
+           !endif
+
+           !! Atm tendency
+           pdqch4(ig)=-pdqsch4(ig)*g/zpsrf(ig) 
+
          endif
-
-         if (pdqsch4(ig)*ptimestep.gt.zq_ch4(ig)*zpsrf(ig)/g) then
-            pdqsch4(ig)=zq_ch4(ig)/ptimestep*zpsrf(ig)/g
-         endif
-
-         !! Security to avoid large changes in temperatures due to
-         !latent heat                   
-         if (lw_ch4*pdqsch4(ig)*ptimestep/capcal(ig).gt.1.) then
-            pdqsch4(ig)=1./(lw_ch4*ptimestep)*capcal(ig)
-         endif
-         if (lw_ch4*pdqsch4(ig)*ptimestep/capcal(ig).lt.-1.) then
-            pdqsch4(ig)=-1./(lw_ch4*ptimestep)*capcal(ig)
-         endif
-         !if (pdqsch4(ig)*ptimestep.gt.0.25) then
-         !   pdqsch4(ig)=0.25/ptimestep
-         !endif
-         !if (pdqsch4(ig)*ptimestep.lt.-0.25) then
-         !   pdqsch4(ig)=-0.25/ptimestep
-         !endif
-
-         !! Atm tendency
-         pdqch4(ig)=-pdqsch4(ig)*g/zpsrf(ig) 
 
       ENDDO
Index: trunk/LMDZ.PLUTO/libf/phypluto/inifis_mod.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/inifis_mod.F90	(revision 3651)
+++ trunk/LMDZ.PLUTO/libf/phypluto/inifis_mod.F90	(revision 3652)
@@ -599,4 +599,10 @@
      if (is_master)write(*,*)trim(rname)//&
       " condmetsurf = ",condmetsurf
+     if (is_master)write(*,*)trim(rname)//&
+      "call no CH4 frost formation?"
+     no_ch4frost=.false. ! default value
+     call getin_p("no_ch4frost",no_ch4frost)
+     if (is_master)write(*,*)trim(rname)//&
+      "no_ch4frost = ",no_ch4frost
 
      if (is_master)write(*,*)trim(rname)//&
