Index: XMLIO_V2/dev/dev_rv/src/XMLIO/c_interface.f03
===================================================================
--- XMLIO_V2/dev/dev_rv/src/XMLIO/c_interface.f03	(revision 137)
+++ XMLIO_V2/dev/dev_rv/src/XMLIO/c_interface.f03	(revision 138)
@@ -23,5 +23,5 @@
    INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
 
-      SUBROUTINE xios_handle_create(ret, dtype, idt, idt_size) bind(C)
+      SUBROUTINE xios_handle_create(ret, dtype, idt, idt_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT)                :: ret
@@ -71,4 +71,38 @@
    END TYPE XDuration
 
+   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
+
+      SUBROUTINE xios_set_timestep(ts_year, ts_month, ts_day,          &
+                                   ts_hour, ts_minute, ts_second) BIND(C)
+         import C_DOUBLE
+         REAL (kind = C_DOUBLE), VALUE :: ts_year, ts_month, ts_day,   &
+                                          ts_hour, ts_minute, ts_second
+      END SUBROUTINE xios_set_timestep
+
+      SUBROUTINE xios_update_calendar(step) BIND(C)
+         import C_INT
+         INTEGER  (kind = C_INT), VALUE :: step
+      END SUBROUTINE xios_update_calendar
+
+   END INTERFACE
+
+   CONTAINS ! Fonctions disponibles pour les utilisateurs.
+
+   SUBROUTINE set_timestep(timestep)
+      TYPE(XDuration), INTENT(IN):: timestep
+
+      CALL xios_set_timestep(timestep%year, timestep%month , timestep%day,   &
+                             timestep%hour, timestep%minute, timestep%second)
+   END SUBROUTINE set_timestep
+
+   SUBROUTINE update_calendar(step)
+      INTEGER, INTENT(IN):: step
+      IF (step < 1) THEN
+         PRINT *, "L'argument 'step' ne peut Ãªtre nÃ©gatif ou nul"
+         STOP
+      END IF
+      CALL xios_update_calendar(step)
+   END SUBROUTINE update_calendar
+
 END MODULE ICALENDAR
 
@@ -82,5 +116,5 @@
    INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
 
-      SUBROUTINE xios_xml_tree_add(parent_, parent_type, child_, child_type, child_id, child_id_size) bind(C)
+      SUBROUTINE xios_xml_tree_add(parent_, parent_type, child_, child_type, child_id, child_id_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: parent_
@@ -92,5 +126,5 @@
       END SUBROUTINE xios_xml_tree_add
 
-      SUBROUTINE  xios_xml_tree_show(filename, filename_size) bind(C)
+      SUBROUTINE  xios_xml_tree_show(filename, filename_size) BIND(C)
          import C_CHAR, C_INT
          CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename
@@ -101,5 +135,5 @@
       ! Attribut des Ã©lÃ©ments de type field et field_group !
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-      SUBROUTINE  xios_xml_set_field_name(field, ftype, fname, fname_size) bind(C)
+      SUBROUTINE  xios_xml_set_field_name(field, ftype, fname, fname_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: field, ftype
@@ -108,5 +142,5 @@
       END SUBROUTINE xios_xml_set_field_name
 
-      SUBROUTINE  xios_xml_set_field_sname(field, ftype, fsname, fsname_size) bind(C)
+      SUBROUTINE  xios_xml_set_field_sname(field, ftype, fsname, fsname_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: field, ftype
@@ -115,5 +149,5 @@
       END SUBROUTINE xios_xml_set_field_sname
 
-      SUBROUTINE  xios_xml_set_field_lname(field, ftype, flname, flname_size) bind(C)
+      SUBROUTINE  xios_xml_set_field_lname(field, ftype, flname, flname_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: field, ftype
@@ -122,5 +156,5 @@
       END SUBROUTINE xios_xml_set_field_lname
 
-      SUBROUTINE  xios_xml_set_field_unit(field, ftype, funit, funit_size) bind(C)
+      SUBROUTINE  xios_xml_set_field_unit(field, ftype, funit, funit_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: field, ftype
@@ -129,5 +163,5 @@
       END SUBROUTINE xios_xml_set_field_unit
 
-      SUBROUTINE  xios_xml_set_field_operation(field, ftype, foperation, foperation_size) bind(C)
+      SUBROUTINE  xios_xml_set_field_operation(field, ftype, foperation, foperation_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: field, ftype
@@ -136,5 +170,5 @@
       END SUBROUTINE xios_xml_set_field_operation
 
-      SUBROUTINE  xios_xml_set_field_freq_op(field, ftype, year, month, day, hour, minute, second) bind(C)
+      SUBROUTINE  xios_xml_set_field_freq_op(field, ftype, year, month, day, hour, minute, second) BIND(C)
          import C_DOUBLE, C_INT
          INTEGER (kind = C_INT), VALUE  :: field, ftype
@@ -142,5 +176,5 @@
       END SUBROUTINE xios_xml_set_field_freq_op
 
-      SUBROUTINE  xios_xml_set_field_level(field, ftype, flevel) bind(C)
+      SUBROUTINE  xios_xml_set_field_level(field, ftype, flevel) BIND(C)
          import C_INT
          INTEGER (kind = C_INT), VALUE  :: field, ftype
@@ -148,5 +182,5 @@
       END SUBROUTINE xios_xml_set_field_level
 
-      SUBROUTINE  xios_xml_set_field_prec(field, ftype, fprec) bind(C)
+      SUBROUTINE  xios_xml_set_field_prec(field, ftype, fprec) BIND(C)
          import C_INT
          INTEGER (kind = C_INT), VALUE  :: field, ftype
@@ -154,5 +188,5 @@
       END SUBROUTINE xios_xml_set_field_prec
 
-      SUBROUTINE  xios_xml_set_field_enabled(field, ftype, fenabled) bind(C)
+      SUBROUTINE  xios_xml_set_field_enabled(field, ftype, fenabled) BIND(C)
          import C_INT, C_BOOL
          INTEGER (kind = C_INT), VALUE  :: field, ftype
@@ -160,5 +194,5 @@
       END SUBROUTINE xios_xml_set_field_enabled
 
-      SUBROUTINE  xios_xml_set_field_dref(field, ftype, fdref, fdref_size) bind(C)
+      SUBROUTINE  xios_xml_set_field_dref(field, ftype, fdref, fdref_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: field, ftype
@@ -167,5 +201,5 @@
       END SUBROUTINE xios_xml_set_field_dref
 
-      SUBROUTINE  xios_xml_set_field_aref(field, ftype, faref, faref_size) bind(C)
+      SUBROUTINE  xios_xml_set_field_aref(field, ftype, faref, faref_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: field, ftype
@@ -174,5 +208,5 @@
       END SUBROUTINE xios_xml_set_field_aref
 
-      SUBROUTINE  xios_xml_set_field_gref(field, ftype, fgref, fgref_size) bind(C)
+      SUBROUTINE  xios_xml_set_field_gref(field, ftype, fgref, fgref_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: field, ftype
@@ -181,5 +215,5 @@
       END SUBROUTINE xios_xml_set_field_gref
 
-      SUBROUTINE  xios_xml_set_field_zref(field, ftype, fzref, fzref_size) bind(C)
+      SUBROUTINE  xios_xml_set_field_zref(field, ftype, fzref, fzref_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: field, ftype
@@ -188,5 +222,5 @@
       END SUBROUTINE xios_xml_set_field_zref
 
-      SUBROUTINE  xios_xml_set_field_fref(field, ftype, ffref, ffref_size) bind(C)
+      SUBROUTINE  xios_xml_set_field_fref(field, ftype, ffref, ffref_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: field, ftype
@@ -199,5 +233,5 @@
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-      SUBROUTINE  xios_xml_set_file_name(file_, ftype, fname, fname_size) bind(C)
+      SUBROUTINE  xios_xml_set_file_name(file_, ftype, fname, fname_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: file_, ftype
@@ -206,5 +240,5 @@
       END SUBROUTINE xios_xml_set_file_name
 
-      SUBROUTINE  xios_xml_set_file_description(file_, ftype, fdescription, fdescription_size) bind(C)
+      SUBROUTINE  xios_xml_set_file_description(file_, ftype, fdescription, fdescription_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: file_, ftype
@@ -213,5 +247,5 @@
       END SUBROUTINE xios_xml_set_file_description
 
-      SUBROUTINE  xios_xml_set_file_output_freq(file_, ftype, year, month, day, hour, minute, second) bind(C)
+      SUBROUTINE  xios_xml_set_file_output_freq(file_, ftype, year, month, day, hour, minute, second) BIND(C)
          import C_DOUBLE, C_INT
          INTEGER (kind = C_INT), VALUE :: file_, ftype
@@ -219,5 +253,5 @@
       END SUBROUTINE xios_xml_set_file_output_freq
 
-      SUBROUTINE  xios_xml_set_file_olevel(file_, ftype, folevel) bind(C)
+      SUBROUTINE  xios_xml_set_file_olevel(file_, ftype, folevel) BIND(C)
          import C_INT
          INTEGER (kind = C_INT), VALUE :: file_, ftype
@@ -225,5 +259,5 @@
       END SUBROUTINE xios_xml_set_file_olevel
 
-      SUBROUTINE  xios_xml_set_file_enabled(file_, ftype, fenabled) bind(C)
+      SUBROUTINE  xios_xml_set_file_enabled(file_, ftype, fenabled) BIND(C)
          import C_INT, C_BOOL
          INTEGER (kind = C_INT), VALUE  :: file_, ftype
@@ -234,5 +268,5 @@
       ! Attribut des Ã©lÃ©ments de type grid et grid_group !
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-      SUBROUTINE  xios_xml_set_grid_name(grid, ftype, gname, gname_size) bind(C)
+      SUBROUTINE  xios_xml_set_grid_name(grid, ftype, gname, gname_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: grid, ftype
@@ -241,5 +275,5 @@
       END SUBROUTINE xios_xml_set_grid_name
 
-      SUBROUTINE  xios_xml_set_grid_description(grid, ftype, gdescription, gdescription_size) bind(C)
+      SUBROUTINE  xios_xml_set_grid_description(grid, ftype, gdescription, gdescription_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: grid, ftype
@@ -248,5 +282,5 @@
       END SUBROUTINE xios_xml_set_grid_description
 
-      SUBROUTINE  xios_xml_set_grid_dref(grid, ftype, dref, dref_size) bind(C)
+      SUBROUTINE  xios_xml_set_grid_dref(grid, ftype, dref, dref_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: grid, ftype
@@ -255,5 +289,5 @@
       END SUBROUTINE xios_xml_set_grid_dref
 
-      SUBROUTINE  xios_xml_set_grid_aref(grid, ftype, aref, aref_size) bind(C)
+      SUBROUTINE  xios_xml_set_grid_aref(grid, ftype, aref, aref_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: grid, ftype
@@ -265,5 +299,5 @@
       ! Attribut des Ã©lÃ©ments de type axis et axis_group !
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-      SUBROUTINE  xios_xml_set_axis_name(axis, ftype, aname, aname_size) bind(C)
+      SUBROUTINE  xios_xml_set_axis_name(axis, ftype, aname, aname_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: axis, ftype
@@ -272,5 +306,5 @@
       END SUBROUTINE xios_xml_set_axis_name
 
-      SUBROUTINE  xios_xml_set_axis_sname(axis, ftype, asname, asname_size) bind(C)
+      SUBROUTINE  xios_xml_set_axis_sname(axis, ftype, asname, asname_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: axis, ftype
@@ -279,5 +313,5 @@
       END SUBROUTINE xios_xml_set_axis_sname
 
-      SUBROUTINE  xios_xml_set_axis_lname(axis, ftype, alname, alname_size) bind(C)
+      SUBROUTINE  xios_xml_set_axis_lname(axis, ftype, alname, alname_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: axis, ftype
@@ -286,5 +320,5 @@
       END SUBROUTINE xios_xml_set_axis_lname
 
-      SUBROUTINE  xios_xml_set_axis_unit(axis, ftype, aunit, aunit_size) bind(C)
+      SUBROUTINE  xios_xml_set_axis_unit(axis, ftype, aunit, aunit_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: axis, ftype
@@ -293,5 +327,5 @@
       END SUBROUTINE xios_xml_set_axis_unit
 
-      SUBROUTINE  xios_xml_set_axis_value(axis, ftype, avalue, avalue_size) bind(C)
+      SUBROUTINE  xios_xml_set_axis_value(axis, ftype, avalue, avalue_size) BIND(C)
          import C_DOUBLE, C_INT
          INTEGER  (kind = C_INT), VALUE      :: axis, ftype
@@ -304,5 +338,5 @@
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-      SUBROUTINE  xios_xml_set_domain_name(domain, ftype, dname, dname_size) bind(C)
+      SUBROUTINE  xios_xml_set_domain_name(domain, ftype, dname, dname_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: domain, ftype
@@ -311,5 +345,5 @@
       END SUBROUTINE xios_xml_set_domain_name
 
-      SUBROUTINE  xios_xml_set_domain_sname(domain, ftype, dsname, dsname_size) bind(C)
+      SUBROUTINE  xios_xml_set_domain_sname(domain, ftype, dsname, dsname_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: domain, ftype
@@ -318,5 +352,5 @@
       END SUBROUTINE xios_xml_set_domain_sname
 
-      SUBROUTINE  xios_xml_set_domain_lname(domain, ftype, dlname, dlname_size) bind(C)
+      SUBROUTINE  xios_xml_set_domain_lname(domain, ftype, dlname, dlname_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: domain, ftype
@@ -325,45 +359,45 @@
       END SUBROUTINE xios_xml_set_domain_lname
 
-      SUBROUTINE  xios_xml_set_domain_niglo(domain, ftype, niglo) bind(C)
+      SUBROUTINE  xios_xml_set_domain_niglo(domain, ftype, niglo) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE :: domain, ftype, niglo
       END SUBROUTINE xios_xml_set_domain_niglo
 
-      SUBROUTINE  xios_xml_set_domain_njglo(domain, ftype, njglo) bind(C)
+      SUBROUTINE  xios_xml_set_domain_njglo(domain, ftype, njglo) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE :: domain, ftype, njglo
       END SUBROUTINE xios_xml_set_domain_njglo
 
-      SUBROUTINE  xios_xml_set_domain_ibegin(domain, ftype, ibegin) bind(C)
+      SUBROUTINE  xios_xml_set_domain_ibegin(domain, ftype, ibegin) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE :: domain, ftype, ibegin
       END SUBROUTINE xios_xml_set_domain_ibegin
 
-      SUBROUTINE  xios_xml_set_domain_iend(domain, ftype, iend) bind(C)
+      SUBROUTINE  xios_xml_set_domain_iend(domain, ftype, iend) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE :: domain, ftype, iend
       END SUBROUTINE xios_xml_set_domain_iend
 
-      SUBROUTINE  xios_xml_set_domain_ni(domain, ftype, ni) bind(C)
+      SUBROUTINE  xios_xml_set_domain_ni(domain, ftype, ni) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE :: domain, ftype, ni
       END SUBROUTINE xios_xml_set_domain_ni
 
-      SUBROUTINE  xios_xml_set_domain_jbegin(domain, ftype, jbegin) bind(C)
+      SUBROUTINE  xios_xml_set_domain_jbegin(domain, ftype, jbegin) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE :: domain, ftype, jbegin
       END SUBROUTINE xios_xml_set_domain_jbegin
 
-      SUBROUTINE  xios_xml_set_domain_jend(domain, ftype, jend) bind(C)
+      SUBROUTINE  xios_xml_set_domain_jend(domain, ftype, jend) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE :: domain, ftype, jend
       END SUBROUTINE xios_xml_set_domain_jend
 
-      SUBROUTINE  xios_xml_set_domain_nj(domain, ftype, nj) bind(C)
+      SUBROUTINE  xios_xml_set_domain_nj(domain, ftype, nj) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE :: domain, ftype, nj
       END SUBROUTINE xios_xml_set_domain_nj
 
-      SUBROUTINE  xios_xml_set_domain_mask(domain, ftype, mask, maskXsize, maskYsize) bind(C)
+      SUBROUTINE  xios_xml_set_domain_mask(domain, ftype, mask, maskXsize, maskYsize) BIND(C)
          import C_BOOL, C_INT
          INTEGER  (kind = C_INT), VALUE       :: domain, ftype
@@ -372,35 +406,35 @@
       END SUBROUTINE xios_xml_set_domain_mask
 
-      SUBROUTINE  xios_xml_set_domain_ddim(domain, ftype, dadim) bind(C)
+      SUBROUTINE  xios_xml_set_domain_ddim(domain, ftype, dadim) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE :: domain, ftype, dadim
       END SUBROUTINE xios_xml_set_domain_ddim
 
-      SUBROUTINE  xios_xml_set_domain_dni(domain, ftype, dni) bind(C)
+      SUBROUTINE  xios_xml_set_domain_dni(domain, ftype, dni) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE :: domain, ftype, dni
       END SUBROUTINE xios_xml_set_domain_dni
 
-      SUBROUTINE  xios_xml_set_domain_dnj(domain, ftype, dnj) bind(C)
+      SUBROUTINE  xios_xml_set_domain_dnj(domain, ftype, dnj) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE :: domain, ftype, dnj
       END SUBROUTINE xios_xml_set_domain_dnj
 
-      SUBROUTINE  xios_xml_set_domain_dibegin(domain, ftype, dibegin) bind(C)
+      SUBROUTINE  xios_xml_set_domain_dibegin(domain, ftype, dibegin) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE :: domain, ftype, dibegin
       END SUBROUTINE xios_xml_set_domain_dibegin
 
-      SUBROUTINE  xios_xml_set_domain_djbegin(domain, ftype, djbegin) bind(C)
+      SUBROUTINE  xios_xml_set_domain_djbegin(domain, ftype, djbegin) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE :: domain, ftype, djbegin
       END SUBROUTINE xios_xml_set_domain_djbegin
 
-      SUBROUTINE  xios_xml_set_domain_dnindex(domain, ftype, dnindex) bind(C)
+      SUBROUTINE  xios_xml_set_domain_dnindex(domain, ftype, dnindex) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE :: domain, ftype, dnindex
       END SUBROUTINE xios_xml_set_domain_dnindex
 
-      SUBROUTINE  xios_xml_set_domain_diindex(domain, ftype, diindex, diindex_size) bind(C)
+      SUBROUTINE  xios_xml_set_domain_diindex(domain, ftype, diindex, diindex_size) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE      :: domain, ftype
@@ -409,5 +443,5 @@
       END SUBROUTINE xios_xml_set_domain_diindex
 
-      SUBROUTINE  xios_xml_set_domain_djindex(domain, ftype, djindex, djindex_size) bind(C)
+      SUBROUTINE  xios_xml_set_domain_djindex(domain, ftype, djindex, djindex_size) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE      :: domain, ftype
@@ -416,5 +450,5 @@
       END SUBROUTINE xios_xml_set_domain_djindex
 
-      SUBROUTINE  xios_xml_set_domain_lonvalue(domain, ftype, lonvalue, lonvalue_xsize, lonvalue_ysize) bind(C)
+      SUBROUTINE  xios_xml_set_domain_lonvalue(domain, ftype, lonvalue, lonvalue_xsize, lonvalue_ysize) BIND(C)
          import C_DOUBLE, C_INT
          INTEGER  (kind = C_INT), VALUE      :: domain, ftype
@@ -423,5 +457,5 @@
       END SUBROUTINE xios_xml_set_domain_lonvalue
 
-      SUBROUTINE  xios_xml_set_domain_latvalue(domain, ftype, latvalue, latvalue_xsize, lonvalue_ysize) bind(C)
+      SUBROUTINE  xios_xml_set_domain_latvalue(domain, ftype, latvalue, latvalue_xsize, lonvalue_ysize) BIND(C)
          import C_DOUBLE, C_INT
          INTEGER  (kind = C_INT), VALUE      :: domain, ftype
@@ -430,5 +464,5 @@
       END SUBROUTINE xios_xml_set_domain_latvalue
 
-      SUBROUTINE  xios_xml_set_domain_domtype(domain, ftype, domtype, domtype_size) bind(C)
+      SUBROUTINE  xios_xml_set_domain_domtype(domain, ftype, domtype, domtype_size) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT), VALUE         :: domain, ftype
@@ -829,5 +863,5 @@
    INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
 
-      SUBROUTINE xios_xml_Parse_File(filename, filename_size) bind(C)
+      SUBROUTINE xios_xml_Parse_File(filename, filename_size) BIND(C)
          import C_CHAR, C_INT
          CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename
@@ -835,5 +869,5 @@
       END SUBROUTINE xios_xml_Parse_File
 
-      SUBROUTINE xios_xml_Parse_String(xmlcontent, xmlcontent_size) bind(C)
+      SUBROUTINE xios_xml_Parse_String(xmlcontent, xmlcontent_size) BIND(C)
          import C_CHAR, C_INT
          CHARACTER(kind = C_CHAR), DIMENSION(*) :: xmlcontent
@@ -868,5 +902,5 @@
    INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
 
-      SUBROUTINE xios_context_set_current(context, withswap) bind(C)
+      SUBROUTINE xios_context_set_current(context, withswap) BIND(C)
          import C_BOOL, C_INT
          INTEGER  (kind = C_INT), VALUE :: context
@@ -874,10 +908,11 @@
       END SUBROUTINE xios_context_set_current
 
-      SUBROUTINE xios_context_create(context, context_id, context_id_size, calendar_type) bind(C)
+      SUBROUTINE xios_context_create(context, context_id, context_id_size, calendar_type, &
+                                     year, month, day, hour, minute, second) BIND(C)
          import C_CHAR, C_INT
          INTEGER  (kind = C_INT)                :: context
          CHARACTER(kind = C_CHAR), DIMENSION(*) :: context_id
          INTEGER  (kind = C_INT), VALUE         :: context_id_size
-         INTEGER  (kind = C_INT), VALUE         :: calendar_type
+         INTEGER  (kind = C_INT), VALUE         :: calendar_type, year, month, day, hour, minute, second
       END SUBROUTINE xios_context_create
 
@@ -905,10 +940,19 @@
 
    ! CrÃ©er un nouveau contexte Ã  partir d'un id, d'un type de calendrier et d'une date.
-   SUBROUTINE context_create(context_hdl, context_id, calendar_type)
-      USE IXHANDLE
-      TYPE(XHandle), INTENT(OUT)     :: context_hdl
-      CHARACTER(len = *), INTENT(IN) :: context_id
-      INTEGER, INTENT(IN)            :: calendar_type
-      CALL xios_context_create(context_hdl%daddr, context_id, len(context_id), calendar_type)
+   SUBROUTINE context_create(context_hdl, context_id, calendar_type, init_date)
+      USE IXHANDLE
+      USE ICALENDAR
+      TYPE(XHandle), INTENT(OUT)        :: context_hdl
+      CHARACTER(len = *), INTENT(IN)    :: context_id
+      INTEGER, INTENT(IN)               :: calendar_type
+      TYPE(XDate), INTENT(IN), OPTIONAL :: init_date
+      IF (PRESENT(init_date)) THEN
+         CALL xios_context_create(context_hdl%daddr, context_id, len(context_id), calendar_type, &
+                                  init_date%year, init_date%month, init_date%day,                &
+                                  init_date%hour, init_date%minute, init_date%second)
+      ELSE
+         CALL xios_context_create(context_hdl%daddr, context_id, len(context_id), calendar_type, &
+                                  0, 1, 1, 0, 0, 0)
+      END IF
       IF (context_hdl%daddr .EQ. 0) THEN
          PRINT *, "(F2003 interface) Impossible de crÃ©er le context !"
@@ -934,9 +978,21 @@
    INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
 
-      SUBROUTINE xios_dtreatment_start(context_hdl, filetype) bind(C)
+      SUBROUTINE xios_dtreatment_start(context_hdl, filetype) BIND(C)
          import C_INT
          INTEGER  (kind = C_INT), VALUE  :: context_hdl
          INTEGER  (kind = C_INT), VALUE  :: filetype
       END SUBROUTINE xios_dtreatment_start
+
+      SUBROUTINE xios_dtreatment_end() BIND(C)
+         ! Sans argument
+      END SUBROUTINE xios_dtreatment_end
+
+      SUBROUTINE xios_write_data(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C)
+         import C_INT, C_CHAR, C_PTR, C_FLOAT, C_DOUBLE, C_BOOL
+         CHARACTER(kind = C_CHAR), DIMENSION(*) :: fieldid
+         INTEGER  (kind = C_INT),  VALUE        :: fieldid_size
+         REAL(kind = C_DOUBLE), DIMENSION(*)    :: data_k8
+         INTEGER  (kind = C_INT), VALUE         :: data_Xsize, data_Ysize, data_Zsize
+      END SUBROUTINE xios_write_data
 
    END INTERFACE
@@ -963,4 +1019,38 @@
    END SUBROUTINE dtreatment_start
 
+   SUBROUTINE dtreatment_end(context_hdl)
+      USE ICONTEXT
+      USE IXHANDLE
+      TYPE(XHandle), INTENT(IN), VALUE :: context_hdl
+      IF ((context_hdl%dtype .NE. ECONTEXT) .OR. (context_hdl%daddr .EQ. 0)) THEN
+         PRINT *, "(F2003 interface) Impossible de traiter un contexte invalide !"
+         STOP
+      END IF
+      CALL context_set_current(context_hdl)
+      CALL xios_dtreatment_end()
+   END SUBROUTINE dtreatment_end
+
+   SUBROUTINE write_data (fieldid,                         &
+                          data1d_k8, data2d_k8, data3d_k8)
+      CHARACTER(len = *), INTENT(IN)                     :: fieldid
+      REAL(kind = 8), DIMENSION(*), OPTIONAL, INTENT(IN) :: data1d_k8(:), data2d_k8(:,:), data3d_k8(:,:,:)
+      IF((.NOT. PRESENT(data1d_k8)) .AND. &
+         (.NOT. PRESENT(data2d_k8)) .AND. &
+         (.NOT. PRESENT(data3d_k8))) THEN
+         PRINT *, "(F2003 interface) Veuillez spÃ©cifier des donnÃ©es Ã  Ã©crire !"
+         STOP
+      END IF
+      IF (PRESENT (data1d_k8)) THEN
+         CALL xios_write_data(fieldid, len(fieldid), data1d_k8, &
+                              size(data1d_k8, 1), -1, -1)
+      ELSE IF (PRESENT (data2d_k8)) THEN
+         CALL xios_write_data(fieldid, len(fieldid), data2d_k8, &
+                              size(data2d_k8, 1), size(data2d_k8, 2), -1)
+      ELSE IF (PRESENT (data3d_k8)) THEN
+         CALL xios_write_data(fieldid, len(fieldid), data3d_k8, &
+                              size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3))
+      END IF
+   END SUBROUTINE
+
 END MODULE IDATATREATMENT
 
