Index: LMDZ6/trunk/libf/phylmd/Dust/phytracr_spl_mod.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/Dust/phytracr_spl_mod.F90	(revision 3976)
+++ LMDZ6/trunk/libf/phylmd/Dust/phytracr_spl_mod.F90	(revision 3977)
@@ -1249,5 +1249,5 @@
       if (debutphy) then
 #ifdef IOPHYS_DUST
-         CALL iophys_ini
+         CALL iophys_ini(pdtphys)
 #endif
          nbreg_ind=1
Index: LMDZ6/trunk/libf/phylmd/acama_gwd_rando_m.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/acama_gwd_rando_m.F90	(revision 3976)
+++ LMDZ6/trunk/libf/phylmd/acama_gwd_rando_m.F90	(revision 3977)
@@ -138,5 +138,5 @@
     ENDIF
     firstcall=.false.
-!    CALL iophys_ini
+!    CALL iophys_ini(dtime)
   ENDIF
 
Index: LMDZ6/trunk/libf/phylmd/dyn1d/old_lmdz1d.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/dyn1d/old_lmdz1d.F90	(revision 3976)
+++ LMDZ6/trunk/libf/phylmd/dyn1d/old_lmdz1d.F90	(revision 3977)
@@ -1033,5 +1033,5 @@
 !
 !=====================================================================
-       CALL iophys_ini
+       CALL iophys_ini(timestep)
 ! START OF THE TEMPORAL LOOP :
 !=====================================================================
Index: LMDZ6/trunk/libf/phylmd/dyn1d/scm.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/dyn1d/scm.F90	(revision 3976)
+++ LMDZ6/trunk/libf/phylmd/dyn1d/scm.F90	(revision 3977)
@@ -789,5 +789,5 @@
 !=====================================================================
 #ifdef OUTPUT_PHYS_SCM
-       CALL iophys_ini
+       CALL iophys_ini(timestep)
 #endif
 
Index: LMDZ6/trunk/libf/phylmd/iophys.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/iophys.F90	(revision 3976)
+++ LMDZ6/trunk/libf/phylmd/iophys.F90	(revision 3977)
@@ -56,4 +56,5 @@
 
 
+
       CALL Gather(px,xglo)
 !$OMP MASTER
@@ -109,5 +110,5 @@
 
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-      SUBROUTINE iophys_ini
+      SUBROUTINE iophys_ini(timestep)
       USE mod_phys_lmdz_para, ONLY: is_mpi_root
       USE vertical_layers_mod, ONLY: presnivs
@@ -115,4 +116,8 @@
       USE dimphy, ONLY: klev
       USE mod_grid_phy_lmdz, ONLY: klon_glo
+      USE temps_mod, ONLY : day_ini,annee_ref,day_ref
+      USE temps_mod, ONLY : jD_ref,jH_ref,start_time, calend
+      USE comconst_mod, ONLY: daysec
+
 
       IMPLICIT NONE
@@ -136,7 +141,11 @@
 real pi
 INTEGER nlat_eff
+INTEGER jour0,mois0,an0
+REAL timestep,t0
+CHARACTER(len=20) :: calendrier
 
 !   Arguments:
 !   ----------
+
 
 !$OMP MASTER
@@ -152,6 +161,21 @@
 ENDIF
 pi=2.*asin(1.)
-call iotd_ini('phys.nc   ', &
-size(lon_reg),nlat_eff,klev,lon_reg(:)*180./pi,lat_reg*180./pi,presnivs)
+
+! print*,'day_ini,annee_ref,day_ref',day_ini,annee_ref,day_ref
+! print*,'jD_ref,jH_ref,start_time, calend',jD_ref,jH_ref,start_time, calend
+
+! Attention : les lignes ci dessous supposent un calendrier en 360 jours
+! Pourrait être retravaillé
+
+jour0=day_ref-30*(day_ref/30)
+mois0=day_ref/30+1
+an0=annee_ref
+t0=(day_ini-1)*daysec
+calendrier=calend
+
+if ( calendrier == "earth_360d" ) calendrier="360d"
+
+call iotd_ini('phys.nc', &
+size(lon_reg),nlat_eff,klev,lon_reg(:)*180./pi,lat_reg*180./pi,presnivs,jour0,mois0,an0,t0,timestep,calendrier)
     ENDIF
 !$OMP END MASTER
Index: LMDZ6/trunk/libf/phylmd/iotd.h
===================================================================
--- LMDZ6/trunk/libf/phylmd/iotd.h	(revision 3976)
+++ LMDZ6/trunk/libf/phylmd/iotd.h	(revision 3977)
@@ -12,5 +12,6 @@
       integer imax,jmax,lmax,nid
       INTEGER dim_coord(4)
-      real iotd_ts
+      real iotd_ts,iotd_t0
 
-      common/ecritd_c/imax,jmax,lmax,nid,dim_coord,iotd_ts
+      common/ecritd_c/imax,jmax,lmax,nid,dim_coord,iotd_t0,iotd_ts
+!$OMP THREADPRIVATE(/ecritd_c/)
Index: LMDZ6/trunk/libf/phylmd/iotd_ecrit.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/iotd_ecrit.F90	(revision 3976)
+++ LMDZ6/trunk/libf/phylmd/iotd_ecrit.F90	(revision 3977)
@@ -74,5 +74,5 @@
 
 
-! Compute/write/extend 'Time' coordinate (date given in days)
+! Compute/write/extend 'time' coordinate (date given in days)
 ! (done every "first call" (at given time level) to writediagfi)
 ! Note: date is incremented as 1 step ahead of physics time
@@ -84,5 +84,5 @@
         endif
 
-!      print*,'nom ',nom,firstnom
+       !print*,'nom ',nom,firstnom
 
 !! Quand on tombe sur la premiere variable on ajoute un pas de temps
@@ -93,14 +93,15 @@
 
 !!          print*,'ntime ',ntime
-           date=ntime
+           date=iotd_t0+ntime*iotd_ts
+           print*,'iotd_ecrit ',iotd_ts,ntime, date
 !          date= float (zitau +1)/float (day_step)
 
            ! compute corresponding date (in days and fractions thereof)
-           ! Get NetCDF ID of 'Time' variable
+           ! Get NetCDF ID of 'time' variable
 
            ierr=NF_SYNC(nid)
 
-           ierr= NF_INQ_VARID(nid,"Time",varid)
-           ! Write (append) the new date to the 'Time' array
+           ierr= NF_INQ_VARID(nid,"time",varid)
+           ! Write (append) the new date to the 'time' array
 
 
Index: LMDZ6/trunk/libf/phylmd/iotd_ini.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/iotd_ini.F90	(revision 3976)
+++ LMDZ6/trunk/libf/phylmd/iotd_ini.F90	(revision 3977)
@@ -1,3 +1,3 @@
-      SUBROUTINE iotd_ini(fichnom,iim,jjm,llm,prlonv,prlatu,pcoordv)
+      SUBROUTINE iotd_ini(fichnom,iim,jjm,llm,prlon,prlat,pcoordv,jour0,mois0,an0,t0,timestep,calendrier)
       IMPLICIT NONE
 
@@ -23,32 +23,40 @@
 
       integer iim,jjm,llm
-      real prlonv(iim),prlatu(jjm),pcoordv(llm),timestep
+      real prlon(iim),prlat(jjm),pcoordv(llm),timestep,t0
       INTEGER id_FOCE
+      INTEGER jour0,mois0,an0
+      CHARACTER*(*) calendrier
 
       integer corner(4),edges(4),ndim
       real  px(1000)
       character (len=10) :: nom
+      real*4 rlon(iim),rlat(jjm),coordv(llm)
 
 !   Local:
 !   ------
+      CHARACTER*3,DIMENSION(12) :: cmois=(/'JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC'/)
+      CHARACTER*10 date0
+      CHARACTER*11 date0b
+
       INTEGER ierr
 
       integer :: nvarid
       integer, dimension(2) :: id  
-      integer :: varid
 
-      character*10 fichnom
-      real*4 rlonv(iim),rlatu(jjm),coordv(llm)
+      character*(*) fichnom
 
       real pi
 
-      print*,'INIIO prlonv ',prlonv
+      iotd_ts=timestep
+      iotd_t0=t0
+      print*,'iotd_ini, ',timestep,iotd_ts
       imax=iim
       jmax=jjm
       lmax=llm
+      ! Utile pour passer en real*4 pour les ecritures
+      rlon=prlon
+      rlat=prlat
+      coordv=pcoordv
 
-      rlonv=prlonv
-      rlatu=prlatu
-      coordv=pcoordv
 
 !-----------------------------------------------------------------------
@@ -59,19 +67,15 @@
 ! Define dimensions
     
-         ! Create the NetCDF file
-         ierr=NF_CREATE(fichnom, NF_CLOBBER, nid)
-         ! Define the 'Time' dimension
-         ierr=nf_def_dim(nid,"Time",NF_UNLIMITED,dim_coord(4))
-         ! Define the 'Time' variable
-         ierr=NF_DEF_VAR(nid, "Time", NF_FLOAT, 1, dim_coord(4),varid)
-!        ! Add a long_name attribute
-!        ierr=NF_PUT_ATT_TEXT(nid, varid, "long_name",4,"Time")
-!        ! Add a units attribute
-         ierr=NF_PUT_ATT_TEXT(nid, varid,'units',29,"days since 0000-00-0 00:00:00")
-         ! Switch out of NetCDF Define mode
+      ! Create the NetCDF file
+      ierr=NF_CREATE(fichnom, NF_CLOBBER, nid)
+      ierr=NF_DEF_DIM(nid, "lon", iim, dim_coord(1))
+      ierr=NF_DEF_DIM(nid, "lat", jjm, dim_coord(2))
+      ierr=NF_DEF_DIM(nid, "lev", llm, dim_coord(3))
+      ierr=NF_DEF_DIM(nid,"time",NF_UNLIMITED,dim_coord(4))
+      ierr = NF_PUT_ATT_TEXT(nid,NF_GLOBAL,'Conventions',6,"CF-1.1")
+      !ierr = NF_PUT_ATT_TEXT(nid,NF_GLOBAL,'file_name',TRIM(fname))
+      ierr=NF_ENDDEF(nid)
 
-      ierr=NF_DEF_DIM(nid, "longitude", iim, dim_coord(1))
-      ierr=NF_DEF_DIM(nid, "latitude", jjm, dim_coord(2))
-      ierr=NF_DEF_DIM(nid, "altitude", llm, dim_coord(3))
+      ! Switch out of NetCDF Define mode
 
 
@@ -79,29 +83,27 @@
 !
 !  Contol parameters for this run
-! --------------------------
+! ---- longitude -----------
 
       ierr=NF_REDEF(nid)
-      ierr=NF_DEF_VAR(nid,"longitude", NF_FLOAT, 1, dim_coord(1),nvarid)
-!     ierr=NF_PUT_ATT_TEXT(nid,nvarid,"long_name", 14,
-!    .      "East longitude")
-!     ierr=NF_PUT_ATT_TEXT(nid,nvarid,'units',12,"degrees_east")
+      ierr=NF_DEF_VAR(nid,"lon", NF_FLOAT, 1, dim_coord(1),nvarid)
+      ierr = NF_PUT_ATT_TEXT(nid,nvarid,'axis',1,'X')
+      ierr=NF_PUT_ATT_TEXT(nid,nvarid,'units',12,"degrees_east")
       ierr=NF_ENDDEF(nid)
-      ierr=NF_PUT_VAR_REAL(nid,nvarid,rlonv)
+      ierr=NF_PUT_VAR_REAL(nid,nvarid,rlon)
        print*,ierr
 
-! --------------------------
+! ---- latitude ------------
       ierr=NF_REDEF(nid)
-      ierr=NF_DEF_VAR(nid, "latitude", NF_FLOAT, 1, dim_coord(2),nvarid)
-!     ierr=NF_PUT_ATT_TEXT(nid,nvarid,'units',13,"degrees_north")
-!     ierr=NF_PUT_ATT_TEXT(nid,nvarid,"long_name", 14,"North latitude")
+      ierr=NF_DEF_VAR(nid, "lat", NF_FLOAT, 1, dim_coord(2),nvarid)
+      ierr = NF_PUT_ATT_TEXT(nid,nvarid,'axis',1,'Y')
+      ierr=NF_PUT_ATT_TEXT(nid,nvarid,'units',13,"degrees_north")
       ierr=NF_ENDDEF(nid)
-      ierr=NF_PUT_VAR_REAL(nid,nvarid,rlatu)
+      ierr=NF_PUT_VAR_REAL(nid,nvarid,rlat)
 !
-! --------------------------
+! ---- vertical ------------
       ierr=NF_REDEF(nid)
-      ierr=NF_DEF_VAR(nid, "altitude", NF_FLOAT, 1,dim_coord(3),nvarid)
-      ierr=NF_PUT_ATT_TEXT(nid,nvarid,"long_name",10,"pseudo-alt")
-!     ierr=NF_PUT_ATT_TEXT(nid,nvarid,'units',2,"km")
-      if ( pcoordv(2)>pcoordv(1) ) then
+      ierr=NF_DEF_VAR(nid, "lev", NF_FLOAT, 1,dim_coord(3),nvarid)
+      ierr=NF_PUT_ATT_TEXT(nid,nvarid,"long_name",10,"vert level")
+      if ( coordv(2)>coordv(1) ) then
          ierr=NF_PUT_ATT_TEXT(nid,nvarid,"long_name",10,"pseudo-alt")
          ierr=NF_PUT_ATT_TEXT(nid,nvarid,'positive',2,"up")
@@ -111,6 +113,26 @@
       endif
       ierr=NF_ENDDEF(nid)
+      ierr=NF_PUT_VAR_REAL(nid,nvarid,coordv)
 
-      ierr=NF_PUT_VAR_REAL(nid,nvarid,coordv)
 !
+! ---- time ----------------
+      ierr=NF_REDEF(nid)
+      ! Define the 'time' variable
+      ierr=NF_DEF_VAR(nid, "time", NF_FLOAT, 1, dim_coord(4),nvarid)
+!     ! Add attributes
+      ierr = NF_PUT_ATT_TEXT(nid,nvarid,'axis',1,'T')
+      ierr = NF_PUT_ATT_TEXT(nid,nvarid,'standard_name',4,'time')
+      WRITE(date0,'(i4.4,"-",i2.2,"-",i2.2)') an0,mois0,jour0
+      ierr=NF_PUT_ATT_TEXT(nid, nvarid,'units',33, &
+     & "seconds since "//date0//" 00:00:00")
+      ierr = NF_PUT_ATT_TEXT(nid,nvarid,'calendar',9,calendrier)
+      !ierr = NF_PUT_ATT_TEXT(nid,nvarid,'calendar',4,'360d')
+      ierr = NF_PUT_ATT_TEXT(nid,nvarid,'title',4,'Time')
+      ierr = NF_PUT_ATT_TEXT(nid,nvarid,'long_name',9,'Time axis')
+      WRITE(date0b,'(i4.4,"-",a3,"-",i2.2)') an0,cmois(mois0),jour0
+      ierr = NF_PUT_ATT_TEXT(nid,nvarid,'time_origin',20, &
+     &        date0b//' 00:00:00')
+      ierr=NF_ENDDEF(nid)
+
+
       END
Index: LMDZ6/trunk/libf/phylmd/yamada_c.F90
===================================================================
--- LMDZ6/trunk/libf/phylmd/yamada_c.F90	(revision 3976)
+++ LMDZ6/trunk/libf/phylmd/yamada_c.F90	(revision 3977)
@@ -139,5 +139,5 @@
 #define IOPHYS
 #ifdef IOPHYS
-!        call iophys_ini
+!        call iophys_ini(timestep)
 #endif
         firstcall=.false.
