Index: LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gcm.F
===================================================================
--- LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gcm.F	(revision 1200)
+++ LMDZ4/branches/LMDZ4-dev/libf/dyn3dpar/gcm.F	(revision 1201)
@@ -1,4 +1,4 @@
 !
-! $Header$
+! $Id$
 !
 c
@@ -113,6 +113,4 @@
       real time_step, t_wrt, t_ops
 
-c      REAL rdayvrai,rdaym_ini,rday_ecri
-c      LOGICAL first
 
       LOGICAL call_iniphys
@@ -133,10 +131,10 @@
 
       character (len=80) :: dynhist_file, dynhistave_file
-      character (len=20) ::modname
-      character (len=80) ::abort_message
-
-C Calendrier
-      LOGICAL true_calendar
-      PARAMETER (true_calendar = .false.)
+      character (len=20) :: modname
+      character (len=80) :: abort_message
+! locales pour gestion du temps
+      INTEGER :: an, mois, jour
+      REAL :: heure
+
 
 c-----------------------------------------------------------------------
@@ -165,15 +163,5 @@
 
 
-c-----------------------------------------------------------------------
-c   Choix du calendrier
-c   -------------------
-
-#ifdef CPP_IOIPSL
-      if (true_calendar) then
-        call ioconf_calendar('gregorian')
-      else
-        call ioconf_calendar('360d')
-      endif
-#endif
+
 c----------------------------------------------------------------------
 c  lecture des fichiers gcm.def ou run.def
@@ -221,4 +209,26 @@
 #endif
       endif ! of if (planet_type.eq."earth")
+
+c-----------------------------------------------------------------------
+c   Choix du calendrier
+c   -------------------
+
+c      calend = 'earth_365d'
+
+#ifdef CPP_IOIPSL
+      if (calend == 'earth_360d') then
+        call ioconf_calendar('360d')
+        write(lunout,*)'CALENDRIER CHOISI: Terrestre a 360 jours/an'
+      else if (calend == 'earth_365d') then
+        call ioconf_calendar('noleap')
+        write(lunout,*)'CALENDRIER CHOISI: Terrestre a 365 jours/an'
+      else if (calend == 'earth_366d') then
+        call ioconf_calendar('gregorian')
+        write(lunout,*)'CALENDRIER CHOISI: Terrestre bissextile'
+      else
+        abort_message = 'Mauvais choix de calendrier'
+        call abort_gcm(modname,abort_message,1)
+      endif
+#endif
 
       IF (config_inca /= 'none') THEN
@@ -306,5 +316,5 @@
       if (annee_ref .ne. anneeref .or. day_ref .ne. dayref) then
         write(lunout,*)
-     .  ' Attention les dates initiales lues dans le fichier'
+     .  'GCM: Attention les dates initiales lues dans le fichier'
         write(lunout,*)
      .  ' restart ne correspondent pas a celles lues dans '
@@ -312,14 +322,14 @@
         if (raz_date .ne. 1) then
           write(lunout,*)
-     .    ' On garde les dates du fichier restart'
+     .    'GCM: On garde les dates du fichier restart'
         else
           annee_ref = anneeref
           day_ref = dayref
-          day_ini = dayref
+          day_ini = 1
           itau_dyn = 0
           itau_phy = 0
           time_0 = 0.
           write(lunout,*)
-     .   ' On reinitialise a la date lue dans gcm.def'
+     .   'GCM: On reinitialise a la date lue dans gcm.def'
         endif
       ELSE
@@ -327,7 +337,20 @@
       endif
 
-#ifdef CPP_IOIPSL 
-      call ioconf_startdate(annee_ref,0,day_ref,0.) 
-#endif 
+      mois = 1
+      heure = 0.
+      call ymds2ju(annee_ref, mois, day_ref, heure, jD_ref)
+      jH_ref = jD_ref - int(jD_ref)
+      jD_ref = int(jD_ref)
+
+#ifdef CPP_IOIPSL
+      call ioconf_startdate(annee_ref,0,day_ref, 0.)
+#endif
+
+      write(lunout,*)'DEBUG'
+      write(lunout,*)'annee_ref, mois, day_ref, heure, jD_ref'
+      write(lunout,*)annee_ref, mois, day_ref, heure, jD_ref
+      call ju2ymds(jD_ref+jH_ref,an, mois, jour, heure)
+      write(lunout,*)'jD_ref+jH_ref,an, mois, jour, heure'
+      write(lunout,*)jD_ref+jH_ref,an, mois, jour, heure
 
 c  nombre d'etats dans les fichiers demarrage et histoire
@@ -413,4 +436,10 @@
       WRITE(lunout,300)day_ini,day_end
  300  FORMAT('1'/,15x,'run du jour',i7,2x,'au jour',i7//)
+      call ju2ymds(jD_ref+day_ini-1,an, mois, jour, heure)
+      write (lunout,301)jour, mois, an
+      call ju2ymds(jD_ref+day_end-1,an, mois, jour, heure)
+      write (lunout,302)jour, mois, an
+ 301  FORMAT('1'/,15x,'run du ', i2,'/',i2,'/',i4)
+ 302  FORMAT('1'/,15x,'    au ', i2,'/',i2,'/',i4)
 
 !#ifdef CPP_IOIPSL
