Index: trunk/LMDZ.MARS/libf/phymars/conf_phys.F
===================================================================
--- trunk/LMDZ.MARS/libf/phymars/conf_phys.F	(revision 3912)
+++ trunk/LMDZ.MARS/libf/phymars/conf_phys.F	(revision 3913)
@@ -889,10 +889,4 @@
         endif
 
-         if (activice .and. .not. microphys) then
-           print*,'if activice is used, then microphys must be used!'
-           call abort_physic(modname,
-     &          "activice requires microphys",1)
-         endif
-
 ! Instantaneous scavenging by CO2
 ! -> expected to be replaced by scavenging with microphysics (flag scavenging) one day
Index: trunk/LMDZ.MARS/libf/phymars/updaterad.F90
===================================================================
--- trunk/LMDZ.MARS/libf/phymars/updaterad.F90	(revision 3912)
+++ trunk/LMDZ.MARS/libf/phymars/updaterad.F90	(revision 3913)
@@ -39,6 +39,4 @@
 real, parameter :: rccnmax  = 500.e-6
 
-
-
 real, parameter :: ndust_threshold  = 1.
 real, parameter :: qdust_threshold  = 1.e-20
@@ -50,9 +48,6 @@
 real, parameter :: rdustmax  = 500.e-6  
 
-
 real, parameter :: rdust0 = 0.8e-6
 
-
-      
 
 contains
@@ -150,6 +145,8 @@
 ! Update ice radius from a typical profile if microphys == false
 subroutine updaterice_typ(qice,tau,pzlay,rice)
+
 use tracer_mod, only: rho_ice
-USE comcstfi_h
+USE comcstfi_h, only: pi
+
 implicit none
 
@@ -158,12 +155,13 @@
 real, intent(in)  :: pzlay ! altitude at the middle of the layers
 real, intent(out) :: rice
-real rccn,nccn ! radius  and number of ice crystals
+real :: rccn, nccn ! radius  and number of ice crystals
 
 !   Typical CCN profile following Montmessin et al. 2004
-!   (N0=2e6 m-3 has been converted into N0=1.3e8 kg-1, otherwise the equation for rice is not homogeneous...)
-     nccn  = 1.3e+8*max(tau,0.001)/0.1*exp(-pzlay/10000.)
+!   (N0=2e6 m-3 has been converted into N0=1.3e8 kg-1 using a typical atmospheric density,
+!   otherwise the equation for rice is not homogeneous...)
+     nccn = 1.3e+8*max(tau,0.001)/0.1*exp(-pzlay/10000.)
 !   The previously used profile was not correct:
 !   Nccn=( epaisseur/masse ) * 2.e+6/0.1*max(tau,0.001)*exp(-pzlay/10000.)
-     
+
 if (nccn .le. 1) then
 
@@ -174,6 +172,6 @@
 ! Typical dust radius profile:
   rccn = max(rdust0*exp(-pzlay/18000.),1.e-9)
-  rice  = qice * 0.75 / pi / rho_ice / nccn + rccn*rccn*rccn
-       
+  rice = qice * 0.75 / pi / rho_ice / nccn + rccn*rccn*rccn
+
   if (rice .le. r3icemin) then
     rice = ricemin
@@ -185,5 +183,5 @@
 
 endif
- 
+
 end subroutine updaterice_typ
 !============================================================================
Index: trunk/LMDZ.MARS/libf/phymars/updatereffrad_mod.F
===================================================================
--- trunk/LMDZ.MARS/libf/phymars/updatereffrad_mod.F	(revision 3912)
+++ trunk/LMDZ.MARS/libf/phymars/updatereffrad_mod.F	(revision 3913)
@@ -40,8 +40,8 @@
 c     to be a log-normal distribution, with effective radius "reffrad" and
 c     variance "nueffrad".
-c   At firstcall, "rice" and "nuice" are not known, because
-c     the H2O ice microphysical scheme is called after the radiative
-c     transfer in physiq.F. That's why we assess the size of the 
-c     water-ice particles at firstcall (see part 1.2 below).
+c   At firstcall or without microphysics, "rice" and "nuice" are not known,
+c     because the H2O ice microphysical scheme ("aeropacity.F") is called after
+c     the radiative transfer. That's why we assess the size of the water-ice
+c     particles (see part 1.2 below).
 c
 c   author:   
@@ -58,5 +58,4 @@
 c     Inputs/outputs:
 c     ------
-
       INTEGER, INTENT(in) :: ngrid,nlayer
 c     Ice geometric mean radius (m)
@@ -83,29 +82,12 @@
 c     Local variables:
 c     ---------------
-
       INTEGER :: ig,l          ! 3D grid indices
       INTEGER :: iaer          ! Aerosol index
-
-c     Number of cloud condensation nuclei near the surface
-c     (only used at firstcall). This value is taken from 
-c     Montmessin et al. 2004 JGR 109 E10004 p5 (2E6 part m-3), and
-c     converted to part kg-1 using a typical atmospheric density.
-
-      REAL, PARAMETER :: ccn0 = 1.3E8, threshold = 1e-30 ! limit value
-      
-c     For microphysics only:      
-      REAL Mo,No                       ! Mass and number of ccn
-      REAL rhocloud(ngrid,nlayer)  ! Cloud density (kg.m-3)
+      REAL, PARAMETER :: threshold = 1e-30 ! limit value
+      REAL :: Nccnco2, Qccnco2, Niceco2, Nccnco2_h2o, Qccnco2_h2o
+c     For microphysics only:
+      REAL :: rhocloud(ngrid,nlayer) ! Cloud density (kg.m-3)
 c     For CO2 microphysics only:
-      REAL :: rhocloudco2(ngrid, nlayer) ! co2 cloud density
-
-      LOGICAL,SAVE :: firstcall=.true.
-      REAL Nccnco2, Qccnco2, Niceco2
-      REAL Nccnco2_h2o, Qccnco2_h2o
-      REAL CBRT
-      EXTERNAL CBRT
-
-
-!$OMP THREADPRIVATE(firstcall)
+      REAL :: rhocloudco2(ngrid,nlayer) ! co2 cloud density
 
 c==================================================================
@@ -156,18 +138,11 @@
 c       1.2 Water-ice particles
 c       -----------------------
-
         IF (water.AND.activice) THEN 
          IF (microphys) THEN
-        
+
 c    At firstcall, the true number and true mass of cloud condensation nuclei are not known.
 c    Indeed it is scaled on the prescribed dust opacity via a 'tauscaling' coefficient
-c    computed after radiative transfer. If tauscaling is not in startfi, we make an assumption for its value.
-
-          IF (firstcall) THEN
-            !IF (minval(tauscaling).lt.0) tauscaling(:) = 1.e-3 ! default value when non-read in startfi is -1
-            !IF (freedust)                tauscaling(:) = 1.    ! if freedust, enforce no rescaling at all
-            firstcall = .false.
-          ENDIF
- 
+c    computed after radiative transfer.
+c    Therefore, 'tauscaling' is read in startfi for the first call (=1 if not found).
           DO l=1,nlayer
             DO ig=1,ngrid
@@ -180,21 +155,22 @@
             ENDDO
           ENDDO
-          
+
         ELSE ! if not microphys
-         
+
+c    Without microphysics, we use a typical value for 'tau' (0.2) to assess
+c    the number of cloud condensation nuclei near the surface.
           DO l=1,nlayer
             DO ig=1,ngrid    
-              call updaterice_typ(pq(ig,l,igcm_h2o_ice),
-     &                          tau(ig,1),pplay(ig,l),rice(ig,l)) 
+              call updaterice_typ(pq(ig,l,igcm_h2o_ice),0.2,
+     &                            pplay(ig,l),rice(ig,l)) 
               nuice(ig,l) = nuice_ref
             ENDDO
           ENDDO
- 
+
         ENDIF ! of if microphys
        ENDIF ! of if (water.AND.activice)
 
-
 c       1.3 CO2-ice particles
-
+c       ---------------------
         IF (co2clouds.AND.activeco2ice) THEN
           DO l=1,nlayer
