Index: XMLIO_V2/dev/common/src/xmlio/fortran/fieldgroup_interface.f90
===================================================================
--- XMLIO_V2/dev/common/src/xmlio/fortran/fieldgroup_interface.f90	(revision 274)
+++ XMLIO_V2/dev/common/src/xmlio/fortran/fieldgroup_interface.f90	(revision 275)
@@ -98,10 +98,10 @@
       END SUBROUTINE xios_set_fieldgroup_default_value
       
-      SUBROUTINE xios_domaingroup_handle_create(ret, idt, idt_size) BIND(C)
+      SUBROUTINE xios_fieldgroup_handle_create(ret, idt, idt_size) BIND(C)
          import C_CHAR, C_INTPTR_T, C_INT
          INTEGER  (kind = C_INTPTR_T)               :: ret
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
          INTEGER  (kind = C_INT)     , VALUE        :: idt_size
-      END SUBROUTINE xios_domaingroup_handle_create
+      END SUBROUTINE xios_fieldgroup_handle_create
    
    END INTERFACE
Index: XMLIO_V2/dev/common/src/xmlio/fortran/file_interface.f90
===================================================================
--- XMLIO_V2/dev/common/src/xmlio/fortran/file_interface.f90	(revision 274)
+++ XMLIO_V2/dev/common/src/xmlio/fortran/file_interface.f90	(revision 275)
@@ -17,4 +17,11 @@
          INTEGER  (kind = C_INT)     , VALUE        :: description_size
       END SUBROUTINE xios_set_file_description
+      
+      SUBROUTINE xios_set_file_name_suffix(file_hdl, name_suffix, name_suffix_size) BIND(C)
+         USE ISO_C_BINDING
+         INTEGER  (kind = C_INTPTR_T), VALUE        :: file_hdl
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name_suffix
+         INTEGER  (kind = C_INT)     , VALUE        :: name_suffix_size
+      END SUBROUTINE xios_set_file_name_suffix
 
       SUBROUTINE xios_set_file_output_freq(file_hdl, output_freq, output_freq_size) BIND(C)
Index: XMLIO_V2/dev/common/src/xmlio/fortran/filegroup_interface.f90
===================================================================
--- XMLIO_V2/dev/common/src/xmlio/fortran/filegroup_interface.f90	(revision 274)
+++ XMLIO_V2/dev/common/src/xmlio/fortran/filegroup_interface.f90	(revision 275)
@@ -17,4 +17,11 @@
          INTEGER  (kind = C_INT)     , VALUE        :: description_size
       END SUBROUTINE xios_set_filegroup_description
+      
+      SUBROUTINE xios_set_filegroup_name_suffix(filegroup_hdl, name_suffix ,name_suffix_size) BIND(C)
+         USE ISO_C_BINDING
+         INTEGER  (kind = C_INTPTR_T), VALUE        :: filegroup_hdl
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name_suffix
+         INTEGER  (kind = C_INT)     , VALUE        :: name_suffix_size
+      END SUBROUTINE xios_set_filegroup_name_suffix
 
       SUBROUTINE xios_set_filegroup_output_freq(filegroup_hdl, output_freq ,output_freq_size) BIND(C)
Index: XMLIO_V2/dev/common/src/xmlio/fortran/icfile.cpp
===================================================================
--- XMLIO_V2/dev/common/src/xmlio/fortran/icfile.cpp	(revision 274)
+++ XMLIO_V2/dev/common/src/xmlio/fortran/icfile.cpp	(revision 275)
@@ -41,4 +41,12 @@
    } 
    
+   void xios_set_file_name_suffix(XFilePtr file_hdl, const char * name_suffix, int name_suffix_size)
+   {
+      std::string name_suffix_str; 
+      if (!cstr2string(name_suffix, name_suffix_size, name_suffix_str)) return;
+
+      file_hdl->name_suffix.setValue(name_suffix_str);
+   } 
+   
    void xios_set_file_output_freq(XFilePtr file_hdl, const char * output_freq, int output_freq_size)
    {
@@ -76,4 +84,12 @@
 
       filegroup_hdl->description.setValue(description_str);
+   } 
+   
+   void xios_set_filegroup_name_suffix(XFileGroupPtr filegroup_hdl, const char * name_suffix, int name_suffix_size)
+   {
+      std::string name_suffix_str; 
+      if (!cstr2string(name_suffix, name_suffix_size, name_suffix_str)) return;
+
+      filegroup_hdl->name_suffix.setValue(name_suffix_str);
    } 
    
Index: XMLIO_V2/dev/common/src/xmlio/fortran/idata.f90
===================================================================
--- XMLIO_V2/dev/common/src/xmlio/fortran/idata.f90	(revision 274)
+++ XMLIO_V2/dev/common/src/xmlio/fortran/idata.f90	(revision 275)
@@ -70,4 +70,8 @@
    END INTERFACE
    
+   INTERFACE write_data
+      MODULE PROCEDURE write_data_k81,write_data_k82,write_data_k83,write_data_k41,write_data_k42,write_data_k43
+   END INTERFACE
+   
    CONTAINS ! Fonctions disponibles pour les utilisateurs.
 
@@ -78,5 +82,5 @@
    
    SUBROUTINE dtreatment_start(context_hdl, filetype, comm_client_server, comm_server)
-      TYPE(XContextHandle), INTENT(IN), VALUE    :: context_hdl
+      TYPE(XContextHandle), INTENT(IN)           :: context_hdl
       INTEGER             , INTENT(IN), OPTIONAL :: filetype , comm_client_server , comm_server
       INTEGER                                    :: filetype_, comm_client_server_, comm_server_
@@ -101,5 +105,5 @@
    
    SUBROUTINE dtreatment_end(context_hdl)
-      TYPE(XContextHandle), INTENT(IN), VALUE :: context_hdl
+      TYPE(XContextHandle), INTENT(IN), OPTIONAL :: context_hdl
       CALL context_set_current(context_hdl)
       CALL xios_dtreatment_end()
Index: XMLIO_V2/dev/common/src/xmlio/fortran/idomain.f90
===================================================================
--- XMLIO_V2/dev/common/src/xmlio/fortran/idomain.f90	(revision 274)
+++ XMLIO_V2/dev/common/src/xmlio/fortran/idomain.f90	(revision 275)
@@ -25,15 +25,15 @@
    
    SUBROUTINE set_domaingroup_attributes_id                                                                        &
-   ( domaingroup_id, name_, standard_name_, long_name_, domaingroup_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_,  &
+   ( domaingroup_id, name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_,       &
      ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_,                   &
      zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_,                 &
      zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_, lonvalue_, latvalue_)
       IMPLICIT NONE
-      TYPE(XDomainGroupHandle)                                   :: domaingroup_hdl
+      TYPE(XDomainGroupHandle)                              :: domaingroup_hdl
       CHARACTER(len = *)                       , INTENT(IN) :: domaingroup_id
       CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: name_
       CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: standard_name_
       CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: long_name_
-      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: domaingroup_group_ref_
+      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: domain_group_ref_
       INTEGER                        , OPTIONAL, INTENT(IN) :: ni_glo_
       INTEGER                        , OPTIONAL, INTENT(IN) :: nj_glo_
@@ -66,5 +66,5 @@
       CALL domaingroup_handle_create(domaingroup_hdl, domaingroup_id)
       CALL set_domaingroup_attributes_hdl                                                                          &
-   ( domaingroup_hdl, name_, standard_name_, long_name_, domaingroup_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_, &
+   ( domaingroup_hdl, name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_,      &
      ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_,                   &
      zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_,                 &
@@ -74,5 +74,5 @@
    
    SUBROUTINE set_domaingroup_attributes_hdl                                                                       &
-   ( domaingroup_hdl,name_, standard_name_, long_name_, domaingroup_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_,  &
+   ( domaingroup_hdl,name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_,       &
      ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_,                   &
      zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_,                 &
@@ -83,5 +83,5 @@
       CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: standard_name_
       CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: long_name_
-      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: domaingroup_group_ref_
+      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: domain_group_ref_
       INTEGER                          , OPTIONAL, INTENT(IN) :: ni_glo_
       INTEGER                          , OPTIONAL, INTENT(IN) :: nj_glo_
@@ -122,6 +122,6 @@
          CALL xios_set_domaingroup_long_name(domaingroup_hdl%daddr, long_name_, len(long_name_))
        END IF
-      IF (PRESENT(domaingroup_group_ref_)) THEN
-         CALL xios_set_domaingroup_domaingroup_group_ref(domaingroup_hdl%daddr, domaingroup_group_ref_, len(domaingroup_group_ref_))
+      IF (PRESENT(domain_group_ref_)) THEN
+         CALL xios_set_domaingroup_domain_group_ref(domaingroup_hdl%daddr, domain_group_ref_, len(domain_group_ref_))
       END IF
       IF (PRESENT(ni_glo_))           THEN
Index: XMLIO_V2/dev/common/src/xmlio/fortran/ifield.f90
===================================================================
--- XMLIO_V2/dev/common/src/xmlio/fortran/ifield.f90	(revision 274)
+++ XMLIO_V2/dev/common/src/xmlio/fortran/ifield.f90	(revision 275)
@@ -26,5 +26,5 @@
    SUBROUTINE set_fieldgroup_attributes_id                                                 &
    (fieldgroup_id, name_, standard_name_, long_name_, unit_, operation_, freq_op_, level_, &
-    prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, fieldgroup_ref_, default_value_)
+    prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, field_ref_, default_value_)
     
       IMPLICIT NONE
@@ -43,5 +43,5 @@
       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: axis_ref_
       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: grid_ref_
-      CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: fieldgroup_ref_
+      CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: field_ref_
       REAL(kind=8)           , OPTIONAL, INTENT(IN) :: default_value_
         
@@ -49,5 +49,5 @@
       CALL set_fieldgroup_attributes_hdl                                                          &
          (fieldgroup_hdl, name_, standard_name_, long_name_, unit_, operation_, freq_op_, level_, &
-          prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, fieldgroup_ref_, default_value_)
+          prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, field_ref_, default_value_)
 
    END SUBROUTINE set_fieldgroup_attributes_id
@@ -55,5 +55,5 @@
    SUBROUTINE set_fieldgroup_attributes_hdl                                                 &
    (fieldgroup_hdl, name_, standard_name_, long_name_, unit_, operation_, freq_op_, level_, &
-    prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, fieldgroup_ref_, default_value_)
+    prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, field_ref_, default_value_)
       IMPLICIT NONE
       TYPE(XFieldgroupHandle)          , INTENT(IN) :: fieldgroup_hdl
@@ -71,5 +71,5 @@
       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: axis_ref_
       CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: grid_ref_
-      CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: fieldgroup_ref_
+      CHARACTER(len = *)     , OPTIONAL, INTENT(IN) :: field_ref_
       REAL(kind=8)           , OPTIONAL, INTENT(IN) :: default_value_
       
@@ -111,6 +111,6 @@
          CALL xios_set_fieldgroup_grid_ref(fieldgroup_hdl%daddr, grid_ref_, len(grid_ref_))
       END IF
-      IF (PRESENT(fieldgroup_ref_))      THEN
-         CALL xios_set_fieldgroup_fieldgroup_ref(fieldgroup_hdl%daddr, fieldgroup_ref_, len(fieldgroup_ref_))
+      IF (PRESENT(field_ref_))      THEN
+         CALL xios_set_fieldgroup_field_ref(fieldgroup_hdl%daddr, field_ref_, len(field_ref_))
       END IF
       IF (PRESENT(default_value_))  THEN
Index: XMLIO_V2/dev/common/src/xmlio/fortran/ifile.f90
===================================================================
--- XMLIO_V2/dev/common/src/xmlio/fortran/ifile.f90	(revision 274)
+++ XMLIO_V2/dev/common/src/xmlio/fortran/ifile.f90	(revision 275)
@@ -24,5 +24,5 @@
    CONTAINS ! Fonctions disponibles pour les utilisateurs.
    
-   SUBROUTINE set_file_attributes_id(file_id, name_ , description_, output_freq_, output_level_, enabled_)
+   SUBROUTINE set_file_attributes_id(file_id, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_)
       IMPLICIT NONE
       TYPE(XFileHandle)                        :: file_hdl
@@ -30,4 +30,5 @@
       CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_
       CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_
+      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix_
       CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_
       INTEGER           , OPTIONAL, INTENT(IN) :: output_level_
@@ -35,12 +36,13 @@
       
       CALL file_handle_create(file_hdl, file_id)
-      CALL set_file_attributes_hdl(file_hdl, name_ , description_, output_freq_, output_level_, enabled_)
+      CALL set_file_attributes_hdl(file_hdl, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_)
       
    END SUBROUTINE set_file_attributes_id
    
-   SUBROUTINE set_file_attributes_hdl(file_hdl, name_ , description_, output_freq_, output_level_, enabled_)
+   SUBROUTINE set_file_attributes_hdl(file_hdl, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_)
       TYPE(XFileHandle)           , INTENT(IN) :: file_hdl
       CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_
       CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_
+      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix_
       CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_
       INTEGER           , OPTIONAL, INTENT(IN) :: output_level_
@@ -54,4 +56,7 @@
       IF (PRESENT(description_))  THEN
          CALL xios_set_file_description(file_hdl%daddr, description_, len(description_))
+      END IF
+      IF (PRESENT(name_suffix_))  THEN
+         CALL xios_set_file_name_suffix(file_hdl%daddr, name_suffix_, len(name_suffix_))
       END IF
       IF (PRESENT(output_freq_))  THEN
@@ -67,5 +72,5 @@
    END SUBROUTINE set_file_attributes_hdl
    
-   SUBROUTINE set_filegroup_attributes_id(filegroup_id, name_ , description_, output_freq_, output_level_, enabled_)
+   SUBROUTINE set_filegroup_attributes_id(filegroup_id, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_)
       IMPLICIT NONE
       TYPE(XFileGroupHandle)                   :: filegroup_hdl
@@ -73,4 +78,5 @@
       CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_
       CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_
+      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix_
       CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_
       INTEGER           , OPTIONAL, INTENT(IN) :: output_level_
@@ -78,13 +84,14 @@
       
       CALL filegroup_handle_create(filegroup_hdl, filegroup_id)
-      CALL set_filegroup_attributes_hdl(filegroup_hdl, name_ , description_, output_freq_, output_level_, enabled_)
+      CALL set_filegroup_attributes_hdl(filegroup_hdl, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_)
       
    END SUBROUTINE set_filegroup_attributes_id
    
-   SUBROUTINE set_filegroup_attributes_hdl(filegroup_hdl, name_ , description_, output_freq_, output_level_, enabled_)
+   SUBROUTINE set_filegroup_attributes_hdl(filegroup_hdl, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_)
       IMPLICIT NONE
       TYPE(XFileGroupHandle)      , INTENT(IN) :: filegroup_hdl
       CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_
       CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_
+      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix_
       CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_
       INTEGER           , OPTIONAL, INTENT(IN) :: output_level_
@@ -98,4 +105,7 @@
       IF (PRESENT(description_))  THEN
          CALL xios_set_filegroup_description(filegroup_hdl%daddr, description_, len(description_))
+      END IF
+      IF (PRESENT(name_suffix_))  THEN
+         CALL xios_set_filegroup_name_suffix(filegroup_hdl%daddr, name_suffix_, len(name_suffix_))
       END IF
       IF (PRESENT(output_freq_))  THEN
