Index: trunk/LMDZ.COMMON/libf/dyn3d/conf_gcm.F90
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3d/conf_gcm.F90	(revision 3614)
+++ trunk/LMDZ.COMMON/libf/dyn3d/conf_gcm.F90	(revision 3615)
@@ -176,7 +176,9 @@
 !Config  Help = Heure de depart de la simulation
 !Config         en jour
-  starttime = 0
-  CALL getin('starttime',starttime)
-      
+  if (raz_date/=0) then ! should only be used when manually reseting dates
+    starttime = 0
+    CALL getin('starttime',starttime)
+  endif
+  
   ! Mars: time of start for run in "start.nc" (when there are multiple time
   !       steps stored in the file)
Index: trunk/LMDZ.COMMON/libf/dyn3d/gcm.F90
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3d/gcm.F90	(revision 3614)
+++ trunk/LMDZ.COMMON/libf/dyn3d/gcm.F90	(revision 3615)
@@ -315,21 +315,16 @@
   IF(dtvr.NE.zdtvr) THEN
      WRITE(lunout,*) &
-          'WARNING!!! changement de pas de temps',dtvr,'>',zdtvr
+          'WARNING!!! time step change: ',dtvr,'>',zdtvr
   ENDIF
   dtvr=zdtvr
 
   !
-  ! 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 a celle lue dans le run.def'
-     IF (raz_date == 1) then
-        WRITE(lunout,*)'Je prends l''heure lue dans run.def'
-        start_time = starttime
-     ELSE
-        call abort_gcm("gcm", "'Je m''arrete'", 1)
-     ENDIF
+  ! reset calendar if requested
+  !
+  IF (raz_date == 1) then
+    WRITE(lunout,*)'Reinitializing to start time from run.def'
+    start_time = starttime
   ENDIF
+
   IF (raz_date == 1) THEN
      annee_ref = anneeref
Index: trunk/LMDZ.COMMON/libf/dyn3d/leapfrog.F
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3d/leapfrog.F	(revision 3614)
+++ trunk/LMDZ.COMMON/libf/dyn3d/leapfrog.F	(revision 3615)
@@ -919,5 +919,5 @@
 		endif
               else
-                CALL dynredem1("restart.nc",start_time,
+                CALL dynredem1("restart.nc",JH_cur,
      &                         vcov,ucov,teta,q,masse,ps)
               endif
@@ -1072,5 +1072,5 @@
 				  endif
                 else
-                  CALL dynredem1("restart.nc",start_time,
+                  CALL dynredem1("restart.nc",JH_cur,
      &                         vcov,ucov,teta,q,masse,ps)
                 endif
Index: trunk/LMDZ.COMMON/libf/dyn3d_common/dynredem.F90
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3d_common/dynredem.F90	(revision 3614)
+++ trunk/LMDZ.COMMON/libf/dyn3d_common/dynredem.F90	(revision 3615)
@@ -410,4 +410,5 @@
   if (start_file_type=="earth") then
     tab_cntrl(31) = REAL(itau_dyn + itaufin)
+    tab_cntrl(32) = time
   else
     tab_cntrl(31) = 0
Index: trunk/LMDZ.COMMON/libf/dyn3dpar/conf_gcm.F90
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3dpar/conf_gcm.F90	(revision 3614)
+++ trunk/LMDZ.COMMON/libf/dyn3dpar/conf_gcm.F90	(revision 3615)
@@ -198,6 +198,8 @@
 !Config  Help = Heure de depart de la simulation
 !Config         en jour
-  starttime = 0
-  CALL getin('starttime',starttime)
+  if (raz_date/=0) then ! should only be used when manually reseting dates
+    starttime = 0
+    CALL getin('starttime',starttime)
+  endif
 
   ! Mars: time of start for run in "start.nc" (when there are multiple time
Index: trunk/LMDZ.COMMON/libf/dyn3dpar/dynredem_p.F90
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3dpar/dynredem_p.F90	(revision 3614)
+++ trunk/LMDZ.COMMON/libf/dyn3dpar/dynredem_p.F90	(revision 3615)
@@ -427,4 +427,5 @@
   if (start_file_type=="earth") then
     tab_cntrl(31) = REAL(itau_dyn + itaufin)
+    tab_cntrl(32) = time
   else
     tab_cntrl(31) = 0
Index: trunk/LMDZ.COMMON/libf/dyn3dpar/gcm.F
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3dpar/gcm.F	(revision 3614)
+++ trunk/LMDZ.COMMON/libf/dyn3dpar/gcm.F	(revision 3615)
@@ -334,21 +334,16 @@
         IF(dtvr.NE.zdtvr) THEN
          WRITE(lunout,*)
-     .    'WARNING!!! changement de pas de temps',dtvr,'>',zdtvr
+     .    'WARNING!!! time step change: ',dtvr,'>',zdtvr
         ENDIF
       dtvr=zdtvr
 
 C
-C on remet le calendrier a zero si demande
-c
-      IF (start_time /= starttime) then
-        WRITE(lunout,*)' GCM: Attention l''heure de depart lue dans le'
-     &,' 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'
-          start_time = starttime
-        ELSE
-          call abort_gcm("gcm", "'Je m''arrete'", 1)
-        ENDIF
+C reset calendar if requested
+c
+      IF (raz_date == 1) then
+        WRITE(lunout,*)'Reinitializing to start time from run.def'
+        start_time = starttime
       ENDIF
+
       IF (raz_date == 1) THEN
         annee_ref = anneeref
Index: trunk/LMDZ.COMMON/libf/dyn3dpar/leapfrog_p.F
===================================================================
--- trunk/LMDZ.COMMON/libf/dyn3dpar/leapfrog_p.F	(revision 3614)
+++ trunk/LMDZ.COMMON/libf/dyn3dpar/leapfrog_p.F	(revision 3615)
@@ -1831,5 +1831,5 @@
 		endif
               else
-                CALL dynredem1_p("restart.nc",start_time,
+                CALL dynredem1_p("restart.nc",JH_cur,
      &                           vcov,ucov,teta,q,masse,ps)
               endif
@@ -2054,5 +2054,5 @@
 		endif
                 else
-                  CALL dynredem1_p("restart.nc",start_time,
+                  CALL dynredem1_p("restart.nc",JH_cur,
      &                               vcov,ucov,teta,q,masse,ps)
                 endif
Index: trunk/LMDZ.VENUS/deftank/field_def_physics.xml
===================================================================
--- trunk/LMDZ.VENUS/deftank/field_def_physics.xml	(revision 3614)
+++ trunk/LMDZ.VENUS/deftank/field_def_physics.xml	(revision 3615)
@@ -194,4 +194,7 @@
                    long_name="Mean molecular mass" 
                    unit="g/mol" />
+            <field id="Cp"
+                   long_name="Specific heat" 
+                   unit="J/K/kg" />
             <field id="rho"
                    long_name="Atmospheric density" 
Index: trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F
===================================================================
--- trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F	(revision 3614)
+++ trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F	(revision 3615)
@@ -135,35 +135,35 @@
 c Variables argument:
 c
-      INTEGER nlon
-      INTEGER nlev
-      INTEGER nqmax
-      REAL rjourvrai
-      REAL gmtime
-      REAL pdtphys
-      LOGICAL debut, lafin
-      REAL paprs(klon,klev+1)
-      REAL pplay(klon,klev)
-      REAL pphi(klon,klev)
-      REAL pphis(klon)
-      REAL presnivs(klev)
+      INTEGER,INTENT(IN) :: nlon
+      INTEGER,INTENT(IN) :: nlev
+      INTEGER,INTENT(IN) :: nqmax
+      REAL,INTENT(IN) :: rjourvrai
+      REAL,INTENT(IN) :: gmtime
+      REAL,INTENT(IN) :: pdtphys
+      LOGICAL,INTENT(IN) :: debut, lafin
+      REAL,INTENT(IN) :: paprs(klon,klev+1)
+      REAL,INTENT(IN) :: pplay(klon,klev)
+      REAL,INTENT(IN) :: pphi(klon,klev)
+      REAL,INTENT(IN) :: pphis(klon)
+      REAL,INTENT(IN) :: presnivs(klev)
 
 ! ADAPTATION GCM POUR CP(T)
       REAL ppk(klon,klev)
 
-      REAL u(klon,klev)
-      REAL v(klon,klev)
-      REAL t(klon,klev)
-      REAL qx(klon,klev,nqmax)
+      REAL,INTENT(IN) :: u(klon,klev)
+      REAL,INTENT(IN) :: v(klon,klev)
+      REAL,INTENT(IN) :: t(klon,klev)
+      REAL,INTENT(IN) :: qx(klon,klev,nqmax)
 
       REAL d_u_dyn(klon,klev)
       REAL d_t_dyn(klon,klev)
 
-      REAL flxmw(klon,klev)
-
-      REAL d_u(klon,klev)
-      REAL d_v(klon,klev)
-      REAL d_t(klon,klev)
-      REAL d_qx(klon,klev,nqmax)
-      REAL d_ps(klon)
+      REAL,INTENT(IN) :: flxmw(klon,klev)
+
+      REAL,INTENT(OUT) :: d_u(klon,klev)
+      REAL,INTENT(OUT) :: d_v(klon,klev)
+      REAL,INTENT(OUT) :: d_t(klon,klev)
+      REAL,INTENT(OUT) :: d_qx(klon,klev,nqmax)
+      REAL,INTENT(OUT) :: d_ps(klon)
 
       logical ok_hf
@@ -1036,4 +1036,13 @@
       if(callthermos) then
          call concentrations2(pplay,t_seri,tr_seri, nqmax)
+      else
+        ! one still needs to recompute cp and rho which depend on temperature
+        ! (rnew, mmean and akknew remain already initialized constants) 
+        do ig=1,klon
+          do j=1,klev
+            cpnew(ig,j)=cpdet(t(ig,j))
+            rho(ig,j)=pplay(ig,j)/(rnew(ig,j)*t(ig,j))
+          enddo
+        enddo
       endif
 
@@ -2145,4 +2154,5 @@
       CALL send_xios_field("Kz",ycoefh)
       CALL send_xios_field("mmean",mmean)
+      CALL send_xios_field("Cp",cpnew)
       CALL send_xios_field("rho",rho)
       CALL send_xios_field("BV2",zn2)
