Index: trunk/LMDZ.PLUTO/libf/dynphy_lonlat/phypluto/newstart.F
===================================================================
--- trunk/LMDZ.PLUTO/libf/dynphy_lonlat/phypluto/newstart.F	(revision 3635)
+++ trunk/LMDZ.PLUTO/libf/dynphy_lonlat/phypluto/newstart.F	(revision 3640)
@@ -4019,5 +4019,5 @@
       call physdem1("restartfi.nc",nsoilmx,ngridmx,llm,nqtot,
      &                dtphys,real(day_ini),
-     &                tsurf,tsoil,ithfi,emis,q2,qsurf)
+     &                tsurf,tsoil,ithfi,emis,albfi,q2,qsurf)
 !     &                cloudfrac,totalfrac,hice,
 !     &                rnat,pctsrf_sic,tslab,tsea_ice,sea_ice)
Index: trunk/LMDZ.PLUTO/libf/phypluto/phyredem.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/phyredem.F90	(revision 3635)
+++ trunk/LMDZ.PLUTO/libf/phypluto/phyredem.F90	(revision 3640)
@@ -115,5 +115,5 @@
   
   ! Write surface albedo
-  call put_field("albedodat","Albedo of bare ground",alb)
+  !call put_field("albedodat","Albedo of bare ground",alb)
   
   ! Subgrid topogaphy variables
@@ -131,5 +131,5 @@
 subroutine physdem1(filename,nsoil,ngrid,nlay,nq, &
                     phystep,time,tsurf,tsoil,inertiesoil, &
-                    emis,q2,qsurf)
+                    emis,alb,q2,qsurf)
   ! write time-dependent variable to restart file
   use iostart, only : open_restartphy, close_restartphy, & 
@@ -149,4 +149,5 @@
   real,intent(in) :: tsoil(ngrid,nsoil)
   real,intent(in) :: emis(ngrid)
+  real,intent(in) :: alb(ngrid)
   real,intent(in) :: inertiesoil(ngrid,nsoil)
   real,intent(in) :: q2(ngrid,nlay+1)
@@ -173,4 +174,7 @@
   ! Emissivity of the surface
   call put_field("emis","Surface emissivity",emis)
+
+  ! Albedo of the surface
+  call put_field("albedodat","Albedo of bare ground",alb)
   
   ! Planetary Boundary Layer
Index: trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90	(revision 3635)
+++ trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90	(revision 3640)
@@ -2098,6 +2098,6 @@
 
                call physdem1("restartfi.nc",nsoilmx,ngrid,nlayer,nq, &
-                           ptimestep,ztime_fin,                    &
-                           tsurf,tsoil,therm_inertia,emis,q2,qsurf)
+                           ptimestep,ztime_fin,tsurf,                &
+                           tsoil,therm_inertia,emis,albedo,q2,qsurf)
             endif
 
Index: trunk/LMDZ.PLUTO/libf/phypluto/soil.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/soil.F90	(revision 3635)
+++ trunk/LMDZ.PLUTO/libf/phypluto/soil.F90	(revision 3640)
@@ -9,4 +9,5 @@
       use planete_mod, only: year_day
       use geometry_mod, only: longitude, latitude ! in radians
+      use callkeys_mod, only: changeti
 
       implicit none
@@ -55,11 +56,25 @@
       !       and not changed by soil.F
 
-      ALLOCATE(mthermdiff(ngrid,0:nsoil-1)) ! mid-layer thermal diffusivity
-      ALLOCATE(thermdiff(ngrid,nsoil-1))    ! inter-layer thermal diffusivity
-      ALLOCATE(coefq(0:nsoil-1))              ! q_{k+1/2} coefficients
-      ALLOCATE(coefd(ngrid,nsoil-1))        ! d_k coefficients
-      ALLOCATE(alph(ngrid,nsoil-1))         ! alpha_k coefficients
-      ALLOCATE(beta(ngrid,nsoil-1))         ! beta_k coefficients
+        ALLOCATE(mthermdiff(ngrid,0:nsoil-1)) ! mid-layer thermal diffusivity
+        ALLOCATE(thermdiff(ngrid,nsoil-1))    ! inter-layer thermal diffusivity
+        ALLOCATE(coefq(0:nsoil-1))              ! q_{k+1/2} coefficients
+        ALLOCATE(coefd(ngrid,nsoil-1))        ! d_k coefficients
+        ALLOCATE(alph(ngrid,nsoil-1))         ! alpha_k coefficients
+        ALLOCATE(beta(ngrid,nsoil-1))         ! beta_k coefficients
 
+        ! 0.05 Build coefficients mu, q_{k+1/2}, d_k, alpha_k and capcal
+        ! mu
+        mu=mlayer(0)/(mlayer(1)-mlayer(0))
+
+        ! q_{1/2}
+        coefq(0)=volcapa*layer(1)/timestep
+        ! q_{k+1/2}
+        do ik=1,nsoil-1
+          coefq(ik)=volcapa*(layer(ik+1)-layer(ik)) &
+                      /timestep
+        enddo
+      endif
+
+      if (firstcall.or.changeti) then
 ! 0.1 Build mthermdiff(:), the mid-layer thermal diffusivities
       do ig=1,ngrid
@@ -80,16 +95,5 @@
       enddo
 
-! 0.3 Build coefficients mu, q_{k+1/2}, d_k, alpha_k and capcal
-      ! mu
-      mu=mlayer(0)/(mlayer(1)-mlayer(0))
-
-      ! q_{1/2}
-      coefq(0)=volcapa*layer(1)/timestep
-	! q_{k+1/2}
-        do ik=1,nsoil-1
-          coefq(ik)=volcapa*(layer(ik+1)-layer(ik)) &
-                      /timestep
-	enddo
-
+! 0.3 Build coefficients d_k, alpha_k and capcal
       do ig=1,ngrid
 	! d_k
@@ -118,6 +122,7 @@
       enddo ! of do ig=1,ngrid
 
-      else ! of if (firstcall)
+      endif ! of if (firstcall)
 
+      if (.not.firstcall) then
 
 !  1. Compute soil temperatures
