Index: trunk/LMDZ.COMMON/libf/dyn3d/gcm.F90
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3d/gcm.F90	(revision 2478)
+++ trunk/LMDZ.COMMON/libf/dyn3d/gcm.F90	(revision 2507)
@@ -24,5 +24,6 @@
                              raz_date,anneeref,starttime,dayref,    &
                              ok_dyn_ins,ok_dyn_ave,iecri,periodav,  &
-                             less1day,fractday,ndynstep,nsplit_phys
+                             less1day,fractday,ndynstep,nsplit_phys,&
+			     ecritstart
   USE mod_const_mpi, ONLY: COMM_LMDZ
   use cpdet_mod, only: ini_cpdet
@@ -299,9 +300,9 @@
 
   !
-  ! on remet le calendrier à zero si demande
+  ! on remet le calendrier a zero si demande
   !
   IF (start_time /= starttime) then
      WRITE(lunout,*)' GCM: Attention l''heure de depart lue dans le' &
-     ,' fichier restart ne correspond pas à celle lue dans le run.def'
+     ,' fichier restart ne correspond pas a celle lue dans le run.def'
      IF (raz_date == 1) then
         WRITE(lunout,*)'Je prends l''heure lue dans run.def'
@@ -468,7 +469,18 @@
 
 
+! If we want to save multiple restart at different time (ecritstart.GT.0)
+! We will write in restart the initial day of the simulation and put all
+! the different time in the Time variable
+! However, if we write only one restart, we save the last day of the 
+! simulation and put the remaining time (which is 0 if we do fulls days)
+! in the Time variable
+
   if (planet_type=="mars") then
+    if (ecritstart.GT.0) then
     ! For Mars we transmit day_ini
-    CALL dynredem0("restart.nc", day_ini, phis)
+      CALL dynredem0("restart.nc", day_ini, phis)
+    else
+      CALL dynredem0("restart.nc", day_end, phis)
+    endif
   else
     CALL dynredem0("restart.nc", day_end, phis)
Index: trunk/LMDZ.COMMON/libf/dyn3d/leapfrog.F
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3d/leapfrog.F	(revision 2478)
+++ trunk/LMDZ.COMMON/libf/dyn3d/leapfrog.F	(revision 2507)
@@ -31,5 +31,5 @@
      .			statcl,conser,apdiss,purmats,tidal,ok_strato
       USE temps_mod, ONLY: jD_ref,jH_ref,itaufin,day_ini,day_ref,
-     .			start_time,dt,hour_ini
+     .			start_time,dt,hour_ini,day_end
 
       IMPLICIT NONE
@@ -278,5 +278,5 @@
             abort_message = 'PK non strictement decroissante'
             call abort_gcm(modname,abort_message,1)
-c           write(*,*) "ATTENTION, Test PK deconnecté..."
+c           write(*,*) "ATTENTION, Test PK deconnecte..."
           endif
         enddo
@@ -500,5 +500,5 @@
        IF ((planet_type.eq."titan").and.(tidal)) then
 c-----------------------------------------------------------------------
-c   Marées gravitationnelles causées par Saturne
+c   Marees gravitationnelles causees par Saturne
 c   B. Charnay (28/10/2010)
 c   ----------------------------------------------------------
@@ -579,5 +579,5 @@
 c+jld
 
-c  Diagnostique de conservation de l'énergie : initialisation
+c  Diagnostique de conservation de l'energie : initialisation
          IF (ip_ebil_dyn.ge.1 ) THEN 
           ztit='bil dyn'
@@ -635,5 +635,5 @@
          ENDIF
 
-c  Diagnostique de conservation de l'énergie : difference
+c  Diagnostique de conservation de l'energie : difference
          IF (ip_ebil_dyn.ge.1 ) THEN 
           ztit='bil phys'
@@ -907,6 +907,13 @@
             IF (lrestart) THEN
               if (planet_type=="mars") then
-                CALL dynredem1("restart.nc",REAL(itau)/REAL(day_step),
-     &                         vcov,ucov,teta,q,masse,ps)
+		if(ecritstart.GT.0) then
+		 CALL dynredem1("restart.nc",
+     & 	                      REAL(itau)/REAL(day_step),
+     &                        vcov,ucov,teta,q,masse,ps)
+		else
+		 CALL dynredem1("restart.nc",
+     & 	           REAL(itau)/REAL(day_step)-(day_end-day_ini),
+     &                        vcov,ucov,teta,q,masse,ps)
+		endif
               else
                 CALL dynredem1("restart.nc",start_time,
@@ -1053,6 +1060,13 @@
               IF (lrestart) THEN
                 if (planet_type=="mars") then
-                  CALL dynredem1("restart.nc",REAL(itau)/REAL(day_step),
+                  if(ecritstart.GT.0) then
+                  	CALL dynredem1("restart.nc",
+     & 		               REAL(itau)/REAL(day_step),
      &                         vcov,ucov,teta,q,masse,ps)
+				  else
+		  	CALL dynredem1("restart.nc",
+     & 		REAL(itau)/REAL(day_step)-(day_end-day_ini),
+     &                         vcov,ucov,teta,q,masse,ps)
+				  endif
                 else
                   CALL dynredem1("restart.nc",start_time,
