Index: trunk/LMDZ.PLUTO/libf/phypluto/callkeys_mod.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/callkeys_mod.F90	(revision 3890)
+++ trunk/LMDZ.PLUTO/libf/phypluto/callkeys_mod.F90	(revision 3894)
@@ -62,6 +62,6 @@
       logical,save :: cooling
 !$OMP THREADPRIVATE(cooling)
-      logical,save :: source_haze,hazeconservch4
-!$OMP THREADPRIVATE(source_haze,hazeconservch4)
+      logical,save :: source_haze,hazeconservch4,haze_ch4proffix
+!$OMP THREADPRIVATE(source_haze,hazeconservch4,haze_ch4proffix)
       logical,save :: ch4lag,tsurfmax
 !$OMP THREADPRIVATE(ch4lag,tsurfmax)
Index: trunk/LMDZ.PLUTO/libf/phypluto/hazecloud.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/hazecloud.F90	(revision 3890)
+++ trunk/LMDZ.PLUTO/libf/phypluto/hazecloud.F90	(revision 3894)
@@ -1,4 +1,4 @@
       subroutine hazecloud(ngrid,nlayer,nq,ptimestep,zday, &
-          pplay,pplev,pq,pdq,pdist_sol,mu0,pfluxuv,zdqhaze, &
+          pplay,pplev,zzlay,pq,pdq,pdist_sol,mu0,pfluxuv,zdqhaze, &
           zdqphot_prec,zdqphot_ch4,zdqconv_prec,declin)
           !zdqhaze_col)
@@ -6,7 +6,8 @@
       use comgeomfi_h
       use comcstfi_mod, only: pi, g
-      use tracer_h, only: igcm_haze, igcm_ch4_gas, igcm_prec_haze, noms, mmol
+      use tracer_h, only: igcm_haze, igcm_ch4_gas, igcm_n2, igcm_prec_haze, noms, mmol
       use geometry_mod, only: longitude, latitude ! in radians
-      use callkeys_mod, only: hazeconservch4, diurnal, tcon_ch4, k_ch4, ncratio_ch4
+      use callkeys_mod, only: hazeconservch4, haze_ch4proffix, diurnal, tcon_ch4, k_ch4, ncratio_ch4
+      use datafile_mod, only: datadir
 
       implicit none
@@ -50,4 +51,5 @@
       REAL zday
       REAL pplay(ngrid,nlayer),pplev(ngrid,nlayer+1)
+      REAL,INTENT(IN) :: zzlay(ngrid,nlayer) ! Mid-layer altitude
       REAL,INTENT(IN) :: pq(ngrid,nlayer,nq)
       REAL,INTENT(IN) :: pdq(ngrid,nlayer,nq)
@@ -86,4 +88,10 @@
       REAL tcon   ! Time constant: conversion in aerosol
       REAL avogadro ! avogadro constant
+
+      integer Nfine,ifine
+      parameter(Nfine=701)
+      character(len=100) :: file_path
+      real,save :: levdat(Nfine),vmrdat(Nfine)
+      real :: vmrch4(ngrid,nlayer) ! vmr ch4 from vmrch4_proffix
 
       REAL longit
@@ -157,4 +165,15 @@
 !---
 
+      ! If fixed profile of CH4 gas
+      if (haze_ch4proffix) then
+         file_path=trim(datadir)//'/gas_prop/vmr_ch4.txt'
+         open(115,file=file_path,form='formatted')
+         do ifine=1,Nfine
+           read(115,*) levdat(ifine), vmrdat(ifine)
+         enddo
+         close(115)
+      endif
+      vmrch4(:,:)=0.
+
 !! Time constant of conversion in aerosol [second]
 !! To be explore: 1.E3; 1.E5; 1.E7; 1.E9
@@ -189,20 +208,23 @@
         fluxlym_ipm(nlayer+1)= flym_ipm(ig)
 
+        !! Interpolate on the model vertical grid
+        if (haze_ch4proffix) then
+            CALL interp_line(levdat,vmrdat,Nfine, &
+                 zzlay(ig,:)/1000.,vmrch4(ig,:),nlayer)
+        endif
+
         DO l=nlayer,1,-1
           !! Actualisation tracer ch4 and prec_haze
-
-          !IF (ngrid.eq.1) THEN
-          !! option zq_ch4 = cte
-          !    zq_ch4(ig,l)=0.01*0.5*16./28.  ! Temporaire
-          !ELSE
-          zq_ch4(ig,l)=pq(ig,l,igcm_ch4_gas)+     &
-                                pdq(ig,l,igcm_ch4_gas)*ptimestep
-          !ENDIF
+          if (haze_ch4proffix) then
+            zq_ch4(ig,l)=vmrch4(ig,l)*mmol(igcm_ch4_gas) / &
+                         (100.*mmol(igcm_n2))
+          else
+            zq_ch4(ig,l)=pq(ig,l,igcm_ch4_gas) + &
+                         pdq(ig,l,igcm_ch4_gas)*ptimestep
+          endif
+          
           if (zq_ch4(ig,l).lt.0.) then
                 zq_ch4(ig,l)=0.
           endif
-
-          !! option zq_ch4 = cte
-!          zq_ch4(ig,l)=0.1*16./28.  ! Temporaire
 
           zq_prec(ig,l)=pq(ig,l,igcm_prec_haze)+    &
@@ -254,5 +276,5 @@
                                           zdqconv_prec(ig,:)
 
-           else if (noms(iq).eq."ch4_gas".and.(.not.hazeconservch4)) then
+           else if (noms(iq).eq."ch4_gas".and.(.not.hazeconservch4).and.(.not.haze_ch4proffix)) then
               zdqhaze(ig,:,igcm_ch4_gas)= zdqphot_ch4(ig,:)
            endif
Index: trunk/LMDZ.PLUTO/libf/phypluto/inifis_mod.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/inifis_mod.F90	(revision 3890)
+++ trunk/LMDZ.PLUTO/libf/phypluto/inifis_mod.F90	(revision 3894)
@@ -827,4 +827,8 @@
      if (is_master)write(*,*)trim(rname)//&
      "hazconservch4 = ",hazeconservch4
+     if (is_master) write(*,*) "Production of haze with CH4 fix profile?"
+     haze_ch4proffix=.false. ! default value
+     call getin_p("haze_ch4proffix",haze_ch4proffix)
+     if (is_master) write(*,*)" haze_ch4proffix = ",haze_ch4proffix
      if (is_master)write(*,*)trim(rname)//&
      "Production of haze (fast version) ?"
Index: trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90	(revision 3890)
+++ trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90	(revision 3894)
@@ -1527,5 +1527,5 @@
                pdqmufi_prod(:,:,:) = 0.
                call hazecloud(ngrid,nlayer,nq,ptimestep,zday,                        &
-                              pplay,pplev,pq,pdq,dist_star,mu0,zfluxuv,pdqmufi_prod, &
+                              pplay,pplev,zzlay,pq,pdq,dist_star,mu0,zfluxuv,pdqmufi_prod, &
                               zdqphot_prec,zdqphot_ch4,zdqconv_prec,declin)
                pdq(:,:,:) = pdq(:,:,:) + pdqmufi_prod(:,:,:) ! Should be updated
@@ -1550,5 +1550,5 @@
                else
                   call hazecloud(ngrid,nlayer,nq,ptimestep,zday,       &
-                     pplay,pplev,pq,pdq,dist_star,mu0,zfluxuv,zdqhaze, &
+                     pplay,pplev,zzlay,pq,pdq,dist_star,mu0,zfluxuv,zdqhaze, &
                      zdqphot_prec,zdqphot_ch4,zdqconv_prec,declin)
                endif
