Index: trunk/LMDZ.MARS/libf/phymars/physiq.F
===================================================================
--- trunk/LMDZ.MARS/libf/phymars/physiq.F	(revision 333)
+++ trunk/LMDZ.MARS/libf/phymars/physiq.F	(revision 334)
@@ -198,4 +198,6 @@
       REAL nuice(ngridmx,nlayermx)   ! Estimated effective variance
                                      !   of the size distribution
+      REAL surfdust(ngridmx,nlayermx) ! dust surface area (micron2/cm3, if photochemistry)
+      REAL surfice(ngridmx,nlayermx)  !  ice surface area (micron2/cm3, if photochemistry)
 
 c     Variables used by the slope model
@@ -306,4 +308,5 @@
       real rho(ngridmx,nlayermx)  ! density
       real vmr(ngridmx,nlayermx)  ! volume mixing ratio
+      !real colden(ngridmx,nqmx)   ! vertical column                      !FL
       REAL mtot(ngridmx)          ! Total mass of water vapor (kg/m2)
       REAL icetot(ngridmx)        ! Total mass of water ice (kg/m2)
@@ -918,5 +921,7 @@
      &                pq,pdq,zdqcloud,zdqscloud,zdtcloud,
      &                nq,naerkind,tau,
-     &                ccn,rdust,rice,nuice)
+     &                ccn,rdust,rice,nuice,
+     &                surfdust,surfice)
+
            if (activice) then
 c Temperature variation due to latent heat release
@@ -955,8 +960,8 @@
 c        --------------
          IF (photochem .or. thermochem) then
-          call calchim(ptimestep,pplay,pplev,pt,pdt,dist_sol,mu0,
-     &      zzlay,zday,pq,pdq,rice,
-     &      zdqchim,zdqschim,zdqcloud,zdqscloud)
-!NB: Photochemistry includes condensation of H2O2
+            call calchim(ptimestep,pplay,pplev,pt,pdt,dist_sol,mu0,
+     $                   zzlev,zzlay,zday,pq,pdq,zdqchim,zdqschim,
+     $                   zdqcloud,zdqscloud,tauref,co2ice,
+     $                   pu,pdu,pv,pdv,surfdust,surfice)
 
            ! increment values of tracers:
@@ -1409,8 +1414,20 @@
      .                     "Volume mixing ratio","mol/mol",3,vmr)
                    endif
-                enddo
-             endif ! of if (thermochem.or.photochem)
-
-           endif ! of if (tracer)
+!                   do ig = 1,ngrid
+!                      colden(ig,iq) = 0.                             !FL
+!                   end do
+!                   do l=1,nlayer                                     !FL
+!                      do ig=1,ngrid                                  !FL
+!                         colden(ig,iq) = colden(ig,iq) + zq(ig,l,iq) !FL
+!     $                                  *(pplev(ig,l)-pplev(ig,l+1)) !FL
+!     $                                  *6.022e22/(mmol(iq)*g)       !FL
+!                      end do                                         !FL
+!                   end do                                            !FL
+!                   call wstats(ngrid,"c_"//trim(noms(iq)),           !FL
+!     $                         "column","mol cm-2",2,colden(1,iq))   !FL
+                end do
+             end if ! of if (thermochem.or.photochem)
+
+           end if ! of if (tracer)
 
            IF(lastcall) THEN
@@ -1533,4 +1550,13 @@
          call WRITEDIAGFI(ngrid,"co2col","CO2 column","kg.m-2",2,
      &                  co2col)
+!!!!! FL
+!            do iq = 1,nq
+!               if (noms(iq) .ne. "dust_mass" .and.
+!     $             noms(iq) .ne. "dust_number") then
+!               call writediagfi(ngrid,"c_"//trim(noms(iq)),         
+!     $                         "column","mol cm-2",2,colden(1,iq))
+!               end if
+!            end do
+!!!!! FL
          endif ! of if (tracer.and.(igcm_co2.ne.0))
 
Index: trunk/LMDZ.MARS/libf/phymars/watercloud.F
===================================================================
--- trunk/LMDZ.MARS/libf/phymars/watercloud.F	(revision 333)
+++ trunk/LMDZ.MARS/libf/phymars/watercloud.F	(revision 334)
@@ -3,5 +3,6 @@
      &                pq,pdq,pdqcloud,pdqscloud,pdtcloud,
      &                nq,naersize,tau,
-     &                ccn,rdust,rice,nuice)
+     &                ccn,rdust,rice,nuice,
+     &                surfdust,surfice)
       IMPLICIT NONE
 
@@ -70,4 +71,7 @@
                                !   of the size distribution
 
+      REAL surfdust(ngrid,nlay)   ! dust surface area (micron2/cm3, if photochemistry)
+      REAL surfice(ngrid,nlay)    !  ice surface area (micron2/cm3, if photochemistry)
+
 c   local:
 c   ------
@@ -85,4 +89,5 @@
       REAL masse (ngridmx,nlayermx)
       REAL epaisseur (ngridmx,nlayermx)
+      REAL npart(ngridmx,nlayermx)    !  Cloud condensation nuclei (#.cm-3)
 !      REAL rfinal        ! Ice crystal radius after condensation(m)
       REAL*8 seq           ! Equilibrium saturation ration (accounting for curvature effect)
@@ -179,4 +184,30 @@
       enddo ! of dol=1,nlay
 
+      if (photochem) then
+c        computation of dust and ice surface area (micron2/cm3)
+c        for heterogeneous chemistry
+
+         do l = 1,nlay
+            do ig = 1,ngrid
+c                                                                      
+c              npart: number density of ccn in #/cm3    
+c                                                     
+               npart(ig,l) = 1.e-6*ccn(ig,l)  
+     $                       *masse(ig,l)/epaisseur(ig,l) 
+c
+c              dust and ice surface area
+c                                                                  
+               surfdust(ig,l) = npart(ig,l)*4.*pi*1.e12*rdust(ig,l)**2
+c                                                                  
+               if (rice(ig,l) .ge. rdust(ig,l)) then                   
+                  surfice(ig,l)  = npart(ig,l)*4.*pi*1.e12*rice(ig,l)**2
+                  surfdust(ig,l) = 0.
+               else                                                    
+                  surfice(ig,l) = 0.                                 
+               end if                                             
+            end do      ! of do ig=1,ngrid
+         end do         ! of do l=1,nlay
+      end if            ! of photochem
+c
       pdqscloud(1:ngrid,1:nq)=0
       pdqcloud(1:ngrid,1:nlay,1:nq)=0
