Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/axisgroup_interface.f90
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/axisgroup_interface.f90	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/axisgroup_interface.f90	(revision 269)
@@ -6,7 +6,7 @@
       SUBROUTINE xios_set_axisgroup_name(axisgroup_hdl, name, name_size) BIND(C)
          USE ISO_C_BINDING
-         INTEGER  (kind = C_INTPTR_T), VALUE       :: axisgroup_hdl
+         INTEGER  (kind = C_INTPTR_T), VALUE        :: axisgroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
-         INTEGER  (kind = C_INT)     , VALUE       :: name_size
+         INTEGER  (kind = C_INT)     , VALUE        :: name_size
       END SUBROUTINE xios_set_axisgroup_name
 
@@ -46,5 +46,5 @@
   
       SUBROUTINE xios_axisgroup_handle_create(ret, idt, idt_size) BIND(C)
-         import C_CHAR, C_INTPTR_T, C_INT
+         USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T)               :: ret
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/context_interface.f90
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/context_interface.f90	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/context_interface.f90	(revision 269)
@@ -8,5 +8,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: context_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: calendar_type
-         INTEGER  (kind = C_INT)                    :: calendar_type_size
+         INTEGER  (kind = C_INT)     , VALUE        :: calendar_type_size
       END SUBROUTINE xios_set_context_calendar_type
 
@@ -15,5 +15,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: context_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: start_date
-         INTEGER  (kind = C_INT)                    :: start_date_size
+         INTEGER  (kind = C_INT)     , VALUE        :: start_date_size
       END SUBROUTINE xios_set_context_start_date
 
@@ -22,5 +22,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: context_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: output_dir
-         INTEGER  (kind = C_INT)                    :: output_dir_size
+         INTEGER  (kind = C_INT)     , VALUE        :: output_dir_size
       END SUBROUTINE xios_set_context_output_dir
       
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/domain_interface.f90
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/domain_interface.f90	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/domain_interface.f90	(revision 269)
@@ -8,5 +8,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: domain_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
-         INTEGER  (kind = C_INT)                    :: name_size
+         INTEGER  (kind = C_INT)     , VALUE        :: name_size
       END SUBROUTINE xios_set_domain_name
 
@@ -15,5 +15,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: domain_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
-         INTEGER  (kind = C_INT)                    :: standard_name_size
+         INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
       END SUBROUTINE xios_set_domain_standard_name
 
@@ -22,5 +22,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: domain_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: long_name
-         INTEGER  (kind = C_INT)                    :: long_name_size
+         INTEGER  (kind = C_INT)     , VALUE        :: long_name_size
       END SUBROUTINE xios_set_domain_long_name
 
@@ -29,5 +29,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: domain_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_group_ref
-         INTEGER  (kind = C_INT)                    :: domain_group_ref_size
+         INTEGER  (kind = C_INT)     , VALUE        :: domain_group_ref_size
       END SUBROUTINE xios_set_domain_domain_group_ref
 
@@ -35,5 +35,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: ni_glo
+         INTEGER (kind = C_INT)     , VALUE :: ni_glo
       END SUBROUTINE xios_set_domain_ni_glo
 
@@ -41,5 +41,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: nj_glo
+         INTEGER (kind = C_INT)     , VALUE :: nj_glo
       END SUBROUTINE xios_set_domain_nj_glo
 
@@ -47,5 +47,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: ibegin
+         INTEGER (kind = C_INT)     , VALUE :: ibegin
       END SUBROUTINE xios_set_domain_ibegin
 
@@ -53,5 +53,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: iend
+         INTEGER (kind = C_INT)     , VALUE :: iend
       END SUBROUTINE xios_set_domain_iend
 
@@ -59,5 +59,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: ni
+         INTEGER (kind = C_INT)     , VALUE :: ni
       END SUBROUTINE xios_set_domain_ni
 
@@ -65,5 +65,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: jbegin
+         INTEGER (kind = C_INT)     , VALUE :: jbegin
       END SUBROUTINE xios_set_domain_jbegin
 
@@ -71,5 +71,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: jend
+         INTEGER (kind = C_INT)     , VALUE :: jend
       END SUBROUTINE xios_set_domain_jend
 
@@ -77,5 +77,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: nj
+         INTEGER (kind = C_INT)     , VALUE :: nj
       END SUBROUTINE xios_set_domain_nj
 
@@ -84,6 +84,6 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: domain_hdl
          LOGICAL(kind = C_BOOL)     , DIMENSION(*) :: mask
-         INTEGER (kind = C_INT)                    :: mask_extent1
-         INTEGER (kind = C_INT)                    :: mask_extent2
+         INTEGER (kind = C_INT)     , VALUE        :: mask_extent1
+         INTEGER (kind = C_INT)     , VALUE        :: mask_extent2
       END SUBROUTINE xios_set_domain_mask
 
@@ -91,5 +91,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: data_dim
+         INTEGER (kind = C_INT)     , VALUE :: data_dim
       END SUBROUTINE xios_set_domain_data_dim
 
@@ -97,5 +97,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: data_ni
+         INTEGER (kind = C_INT)     , VALUE :: data_ni
       END SUBROUTINE xios_set_domain_data_ni
 
@@ -103,5 +103,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: data_nj
+         INTEGER (kind = C_INT)     , VALUE :: data_nj
       END SUBROUTINE xios_set_domain_data_nj
 
@@ -109,5 +109,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: data_ibegin
+         INTEGER (kind = C_INT)     , VALUE :: data_ibegin
       END SUBROUTINE xios_set_domain_data_ibegin
 
@@ -115,5 +115,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: data_jbegin
+         INTEGER (kind = C_INT)     , VALUE :: data_jbegin
       END SUBROUTINE xios_set_domain_data_jbegin
 
@@ -121,5 +121,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: zoom_ni
+         INTEGER (kind = C_INT)     , VALUE :: zoom_ni
       END SUBROUTINE xios_set_domain_zoom_ni
 
@@ -127,5 +127,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: zoom_nj
+         INTEGER (kind = C_INT)     , VALUE :: zoom_nj
       END SUBROUTINE xios_set_domain_zoom_nj
 
@@ -133,5 +133,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: zoom_ibegin
+         INTEGER (kind = C_INT)     , VALUE :: zoom_ibegin
       END SUBROUTINE xios_set_domain_zoom_ibegin
 
@@ -139,5 +139,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: zoom_jbegin
+         INTEGER (kind = C_INT)     , VALUE :: zoom_jbegin
       END SUBROUTINE xios_set_domain_zoom_jbegin
 
@@ -145,5 +145,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: zoom_ni_loc
+         INTEGER (kind = C_INT)     , VALUE :: zoom_ni_loc
       END SUBROUTINE xios_set_domain_zoom_ni_loc
 
@@ -151,5 +151,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: zoom_nj_loc
+         INTEGER (kind = C_INT)     , VALUE :: zoom_nj_loc
       END SUBROUTINE xios_set_domain_zoom_nj_loc
 
@@ -157,5 +157,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: zoom_ibegin_loc
+         INTEGER (kind = C_INT)     , VALUE :: zoom_ibegin_loc
       END SUBROUTINE xios_set_domain_zoom_ibegin_loc
 
@@ -163,5 +163,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: zoom_jbegin_loc
+         INTEGER (kind = C_INT)     , VALUE :: zoom_jbegin_loc
       END SUBROUTINE xios_set_domain_zoom_jbegin_loc
 
@@ -169,5 +169,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
-         INTEGER (kind = C_INT)             :: data_n_index
+         INTEGER (kind = C_INT)     , VALUE :: data_n_index
       END SUBROUTINE xios_set_domain_data_n_index
 
@@ -176,5 +176,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: domain_hdl
          INTEGER (kind = C_INT)     , DIMENSION(*) :: data_i_index
-         INTEGER (kind = C_INT)                     :: data_i_index_extent1
+         INTEGER (kind = C_INT)     , VALUE        :: data_i_index_extent1
       END SUBROUTINE xios_set_domain_data_i_index
 
@@ -183,5 +183,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: domain_hdl
          INTEGER (kind = C_INT)     , DIMENSION(*) :: data_j_index
-         INTEGER (kind = C_INT)                    :: data_j_index_extent1
+         INTEGER (kind = C_INT)     , VALUE        :: data_j_index_extent1
       END SUBROUTINE xios_set_domain_data_j_index
 
@@ -190,5 +190,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: domain_hdl
          REAL    (kind = C_DOUBLE)  , DIMENSION(*) :: lonvalue
-         INTEGER (kind = C_INT)                    :: lonvalue_extent1
+         INTEGER (kind = C_INT)     , VALUE        :: lonvalue_extent1
       END SUBROUTINE xios_set_domain_lonvalue
 
@@ -197,5 +197,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: domain_hdl
          REAL    (kind = C_DOUBLE)  , DIMENSION(*) :: latvalue
-         INTEGER (kind = C_INT)                    :: latvalue_extent1
+         INTEGER (kind = C_INT)     , VALUE        :: latvalue_extent1
       END SUBROUTINE xios_set_domain_latvalue
        
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/domaingroup_interface.f90
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/domaingroup_interface.f90	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/domaingroup_interface.f90	(revision 269)
@@ -8,5 +8,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: domaingroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
-         INTEGER  (kind = C_INT)                    :: name_size
+         INTEGER  (kind = C_INT)     , VALUE        :: name_size
       END SUBROUTINE xios_set_domaingroup_name
 
@@ -15,5 +15,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: domaingroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
-         INTEGER  (kind = C_INT)                    :: standard_name_size
+         INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
       END SUBROUTINE xios_set_domaingroup_standard_name
 
@@ -22,5 +22,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: domaingroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: long_name
-         INTEGER  (kind = C_INT)                    :: long_name_size
+         INTEGER  (kind = C_INT)     , VALUE        :: long_name_size
       END SUBROUTINE xios_set_domaingroup_long_name
 
@@ -29,5 +29,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: domaingroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_group_ref
-         INTEGER  (kind = C_INT)                    :: domain_group_ref_size
+         INTEGER  (kind = C_INT)     , VALUE        :: domain_group_ref_size
       END SUBROUTINE xios_set_domaingroup_domain_group_ref
 
@@ -35,5 +35,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: ni_glo
+         INTEGER (kind = C_INT)     , VALUE :: ni_glo
       END SUBROUTINE xios_set_domaingroup_ni_glo
 
@@ -41,5 +41,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: nj_glo
+         INTEGER (kind = C_INT)     , VALUE :: nj_glo
       END SUBROUTINE xios_set_domaingroup_nj_glo
 
@@ -47,5 +47,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: ibegin
+         INTEGER (kind = C_INT)     , VALUE :: ibegin
       END SUBROUTINE xios_set_domaingroup_ibegin
 
@@ -53,5 +53,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: iend
+         INTEGER (kind = C_INT)     , VALUE :: iend
       END SUBROUTINE xios_set_domaingroup_iend
 
@@ -59,5 +59,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: ni
+         INTEGER (kind = C_INT)     , VALUE :: ni
       END SUBROUTINE xios_set_domaingroup_ni
 
@@ -65,5 +65,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: jbegin
+         INTEGER (kind = C_INT)     , VALUE :: jbegin
       END SUBROUTINE xios_set_domaingroup_jbegin
 
@@ -71,5 +71,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: jend
+         INTEGER (kind = C_INT)     , VALUE :: jend
       END SUBROUTINE xios_set_domaingroup_jend
 
@@ -77,5 +77,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: nj
+         INTEGER (kind = C_INT)     , VALUE :: nj
       END SUBROUTINE xios_set_domaingroup_nj
 
@@ -84,6 +84,6 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: domaingroup_hdl
          LOGICAL(kind = C_BOOL)     , DIMENSION(*) :: mask
-         INTEGER (kind = C_INT)                    :: mask_extent1
-         INTEGER (kind = C_INT)                    :: mask_extent2
+         INTEGER (kind = C_INT)     , VALUE        :: mask_extent1
+         INTEGER (kind = C_INT)     , VALUE        :: mask_extent2
       END SUBROUTINE xios_set_domaingroup_mask
 
@@ -91,5 +91,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: data_dim
+         INTEGER (kind = C_INT)     , VALUE :: data_dim
       END SUBROUTINE xios_set_domaingroup_data_dim
 
@@ -97,5 +97,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: data_ni
+         INTEGER (kind = C_INT)     , VALUE :: data_ni
       END SUBROUTINE xios_set_domaingroup_data_ni
 
@@ -103,5 +103,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: data_nj
+         INTEGER (kind = C_INT)     , VALUE :: data_nj
       END SUBROUTINE xios_set_domaingroup_data_nj
 
@@ -109,5 +109,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: data_ibegin
+         INTEGER (kind = C_INT)     , VALUE :: data_ibegin
       END SUBROUTINE xios_set_domaingroup_data_ibegin
 
@@ -115,5 +115,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: data_jbegin
+         INTEGER (kind = C_INT)     , VALUE  :: data_jbegin
       END SUBROUTINE xios_set_domaingroup_data_jbegin
 
@@ -121,5 +121,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: zoom_ni
+         INTEGER (kind = C_INT)     , VALUE :: zoom_ni
       END SUBROUTINE xios_set_domaingroup_zoom_ni
 
@@ -127,5 +127,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: zoom_nj
+         INTEGER (kind = C_INT)     , VALUE :: zoom_nj
       END SUBROUTINE xios_set_domaingroup_zoom_nj
 
@@ -133,5 +133,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: zoom_ibegin
+         INTEGER (kind = C_INT)     , VALUE :: zoom_ibegin
       END SUBROUTINE xios_set_domaingroup_zoom_ibegin
 
@@ -139,5 +139,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: zoom_jbegin
+         INTEGER (kind = C_INT)     , VALUE :: zoom_jbegin
       END SUBROUTINE xios_set_domaingroup_zoom_jbegin
 
@@ -145,5 +145,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: zoom_ni_loc
+         INTEGER (kind = C_INT)     , VALUE :: zoom_ni_loc
       END SUBROUTINE xios_set_domaingroup_zoom_ni_loc
 
@@ -151,5 +151,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: zoom_nj_loc
+         INTEGER (kind = C_INT)     , VALUE :: zoom_nj_loc
       END SUBROUTINE xios_set_domaingroup_zoom_nj_loc
 
@@ -157,5 +157,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: zoom_ibegin_loc
+         INTEGER (kind = C_INT)     , VALUE :: zoom_ibegin_loc
       END SUBROUTINE xios_set_domaingroup_zoom_ibegin_loc
 
@@ -163,5 +163,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: zoom_jbegin_loc
+         INTEGER (kind = C_INT)     , VALUE :: zoom_jbegin_loc
       END SUBROUTINE xios_set_domaingroup_zoom_jbegin_loc
 
@@ -169,5 +169,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
-         INTEGER (kind = C_INT)             :: data_n_index
+         INTEGER (kind = C_INT)     , VALUE :: data_n_index
       END SUBROUTINE xios_set_domaingroup_data_n_index
 
@@ -176,5 +176,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: domaingroup_hdl
          INTEGER (kind = C_INT)     , DIMENSION(*) :: data_i_index
-         INTEGER (kind = C_INT)                     :: data_i_index_extent1
+         INTEGER (kind = C_INT)     , VALUE        :: data_i_index_extent1
       END SUBROUTINE xios_set_domaingroup_data_i_index
 
@@ -183,5 +183,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: domaingroup_hdl
          INTEGER (kind = C_INT)     , DIMENSION(*) :: data_j_index
-         INTEGER (kind = C_INT)                    :: data_j_index_extent1
+         INTEGER (kind = C_INT)     , VALUE        :: data_j_index_extent1
       END SUBROUTINE xios_set_domaingroup_data_j_index
 
@@ -190,5 +190,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: domaingroup_hdl
          REAL    (kind = C_DOUBLE)  , DIMENSION(*) :: lonvalue
-         INTEGER (kind = C_INT)                    :: lonvalue_extent1
+         INTEGER (kind = C_INT)     , VALUE        :: lonvalue_extent1
       END SUBROUTINE xios_set_domaingroup_lonvalue
 
@@ -197,5 +197,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: domaingroup_hdl
          REAL    (kind = C_DOUBLE)  , DIMENSION(*) :: latvalue
-         INTEGER (kind = C_INT)                    :: latvalue_extent1
+         INTEGER (kind = C_INT)     , VALUE        :: latvalue_extent1
       END SUBROUTINE xios_set_domaingroup_latvalue
       
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/field_interface.f90
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/field_interface.f90	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/field_interface.f90	(revision 269)
@@ -8,5 +8,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
-         INTEGER  (kind = C_INT)                    :: name_size
+         INTEGER  (kind = C_INT)     , VALUE        :: name_size
       END SUBROUTINE xios_set_field_name
 
@@ -15,5 +15,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
-         INTEGER  (kind = C_INT)                    :: standard_name_size
+         INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
       END SUBROUTINE xios_set_field_standard_name
 
@@ -22,5 +22,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: field_hdl
          CHARACTER(kind = C_CHAR)   , DIMENSION(*) :: long_name
-         INTEGER (kind = C_INT)                    :: long_name_size
+         INTEGER (kind = C_INT)     , VALUE        :: long_name_size
       END SUBROUTINE xios_set_field_long_name
 
@@ -29,5 +29,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: unit
-         INTEGER  (kind = C_INT)                    :: unit_size
+         INTEGER  (kind = C_INT)     , VALUE        :: unit_size
       END SUBROUTINE xios_set_field_unit
 
@@ -36,5 +36,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: operation
-         INTEGER  (kind = C_INT)                    :: operation_size
+         INTEGER  (kind = C_INT)     , VALUE        :: operation_size
       END SUBROUTINE xios_set_field_operation
 
@@ -43,5 +43,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: freq_op
-         INTEGER  (kind = C_INT)                    :: freq_op_size
+         INTEGER  (kind = C_INT)     , VALUE        :: freq_op_size
       END SUBROUTINE xios_set_field_freq_op
 
@@ -49,5 +49,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
-         INTEGER (kind = C_INT)             :: level
+         INTEGER (kind = C_INT)     , VALUE :: level
       END SUBROUTINE xios_set_field_level
 
@@ -55,5 +55,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
-         INTEGER (kind = C_INT)             :: prec
+         INTEGER (kind = C_INT)     , VALUE :: prec
       END SUBROUTINE xios_set_field_prec
 
@@ -61,5 +61,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
-         LOGICAL (kind = C_BOOL)            :: enabled
+         LOGICAL (kind = C_BOOL)    , VALUE :: enabled
          END SUBROUTINE xios_set_field_enabled
 
@@ -68,5 +68,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_ref
-         INTEGER  (kind = C_INT)                    :: domain_ref_size
+         INTEGER  (kind = C_INT)     , VALUE        :: domain_ref_size
       END SUBROUTINE xios_set_field_domain_ref
 
@@ -75,5 +75,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_ref
-         INTEGER  (kind = C_INT)                    :: axis_ref_size
+         INTEGER  (kind = C_INT)     , VALUE        :: axis_ref_size
       END SUBROUTINE xios_set_field_axis_ref
 
@@ -82,5 +82,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: grid_ref
-         INTEGER  (kind = C_INT)                    :: grid_ref_size
+         INTEGER  (kind = C_INT)     , VALUE        :: grid_ref_size
       END SUBROUTINE xios_set_field_grid_ref
 
@@ -89,5 +89,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: field_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: field_ref
-         INTEGER  (kind = C_INT)                    :: field_ref_size
+         INTEGER  (kind = C_INT)     , VALUE        :: field_ref_size
       END SUBROUTINE xios_set_field_field_ref
 
@@ -95,9 +95,9 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
-         REAL    (kind = C_DOUBLE)          :: default_value
+         REAL    (kind = C_DOUBLE)  , VALUE :: default_value
       END SUBROUTINE xios_set_field_default_value
    
       SUBROUTINE xios_field_handle_create(ret, idt, idt_size) BIND(C)
-         import C_CHAR, C_INTPTR_T, C_INT
+         USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T)               :: ret
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/fieldgroup_interface.f90
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/fieldgroup_interface.f90	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/fieldgroup_interface.f90	(revision 269)
@@ -8,5 +8,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: fieldgroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
-         INTEGER  (kind = C_INT)                    :: name_size
+         INTEGER  (kind = C_INT)     , VALUE        :: name_size
       END SUBROUTINE xios_set_fieldgroup_name
 
@@ -15,5 +15,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: fieldgroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
-         INTEGER  (kind = C_INT)                    :: standard_name_size
+         INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
       END SUBROUTINE xios_set_fieldgroup_standard_name
 
@@ -22,5 +22,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: fieldgroup_hdl
          CHARACTER(kind = C_CHAR)   , DIMENSION(*) :: long_name
-         INTEGER (kind = C_INT)                    :: long_name_size
+         INTEGER (kind = C_INT)     , VALUE        :: long_name_size
       END SUBROUTINE xios_set_fieldgroup_long_name
 
@@ -29,5 +29,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: fieldgroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: unit
-         INTEGER  (kind = C_INT)                    :: unit_size
+         INTEGER  (kind = C_INT)     , VALUE        :: unit_size
       END SUBROUTINE xios_set_fieldgroup_unit
 
@@ -36,5 +36,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: fieldgroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: operation
-         INTEGER  (kind = C_INT)                    :: operation_size
+         INTEGER  (kind = C_INT)     , VALUE        :: operation_size
       END SUBROUTINE xios_set_fieldgroup_operation
 
@@ -43,5 +43,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: fieldgroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: freq_op
-         INTEGER  (kind = C_INT)                    :: freq_op_size
+         INTEGER  (kind = C_INT)     , VALUE        :: freq_op_size
       END SUBROUTINE xios_set_fieldgroup_freq_op
 
@@ -49,5 +49,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
-         INTEGER (kind = C_INT)             :: level
+         INTEGER (kind = C_INT)     , VALUE :: level
       END SUBROUTINE xios_set_fieldgroup_level
 
@@ -55,5 +55,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
-         INTEGER (kind = C_INT)             :: prec
+         INTEGER (kind = C_INT)     , VALUE :: prec
       END SUBROUTINE xios_set_fieldgroup_prec
 
@@ -61,5 +61,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
-         LOGICAL (kind = C_BOOL)            :: enabled
+         LOGICAL (kind = C_BOOL)    , VALUE :: enabled
          END SUBROUTINE xios_set_fieldgroup_enabled
 
@@ -68,5 +68,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: fieldgroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_ref
-         INTEGER  (kind = C_INT)                    :: domain_ref_size
+         INTEGER  (kind = C_INT)     , VALUE        :: domain_ref_size
       END SUBROUTINE xios_set_fieldgroup_domain_ref
 
@@ -75,5 +75,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: fieldgroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_ref
-         INTEGER  (kind = C_INT)                    :: axis_ref_size
+         INTEGER  (kind = C_INT)     , VALUE        :: axis_ref_size
       END SUBROUTINE xios_set_fieldgroup_axis_ref
 
@@ -82,5 +82,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: fieldgroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: grid_ref
-         INTEGER  (kind = C_INT)                    :: grid_ref_size
+         INTEGER  (kind = C_INT)     , VALUE        :: grid_ref_size
       END SUBROUTINE xios_set_fieldgroup_grid_ref
 
@@ -89,5 +89,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: fieldgroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: field_ref
-         INTEGER  (kind = C_INT)                    :: field_ref_size
+         INTEGER  (kind = C_INT)     , VALUE        :: field_ref_size
       END SUBROUTINE xios_set_fieldgroup_field_ref
 
@@ -95,5 +95,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
-         REAL    (kind = C_DOUBLE)          :: default_value
+         REAL    (kind = C_DOUBLE)  , VALUE :: default_value
       END SUBROUTINE xios_set_fieldgroup_default_value
       
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/file_interface.f90
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/file_interface.f90	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/file_interface.f90	(revision 269)
@@ -6,14 +6,14 @@
       SUBROUTINE xios_set_file_name(file_hdl, name, name_size) BIND(C)
          USE ISO_C_BINDING
-         INTEGER  (kind = C_INTPTR_T), VALUE       :: file_hdl
-         CHARACTER(kind = C_CHAR)   , DIMENSION(*) :: name
-         INTEGER  (kind = C_INT)                   :: name_size
+         INTEGER  (kind = C_INTPTR_T), VALUE        :: file_hdl
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+         INTEGER  (kind = C_INT)     , VALUE        :: name_size
       END SUBROUTINE xios_set_file_name
 
       SUBROUTINE xios_set_file_description(file_hdl, description, description_size) BIND(C)
          USE ISO_C_BINDING
-         INTEGER  (kind = C_INTPTR_T), VALUE       :: file_hdl
-         CHARACTER(kind = C_CHAR)   , DIMENSION(*) :: description
-         INTEGER  (kind = C_INT)                   :: description_size
+         INTEGER  (kind = C_INTPTR_T), VALUE        :: file_hdl
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: description
+         INTEGER  (kind = C_INT)     , VALUE        :: description_size
       END SUBROUTINE xios_set_file_description
 
@@ -22,5 +22,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: file_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: output_freq
-         INTEGER  (kind = C_INT)                    :: output_freq_size
+         INTEGER  (kind = C_INT)     , VALUE        :: output_freq_size
       END SUBROUTINE xios_set_file_output_freq
 
@@ -28,5 +28,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
-         INTEGER (kind = C_INT)             :: output_level
+         INTEGER (kind = C_INT)     , VALUE :: output_level
       END SUBROUTINE xios_set_file_output_level
 
@@ -34,5 +34,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
-         LOGICAL (kind = C_BOOL)            :: enabled
+         LOGICAL (kind = C_BOOL)    , VALUE :: enabled
       END SUBROUTINE xios_set_file_enabled
    
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/filegroup_interface.f90
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/filegroup_interface.f90	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/filegroup_interface.f90	(revision 269)
@@ -8,5 +8,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: filegroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
-         INTEGER  (kind = C_INT)                    :: name_size
+         INTEGER  (kind = C_INT)     , VALUE        :: name_size
       END SUBROUTINE xios_set_filegroup_name
 
@@ -15,5 +15,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: filegroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: description
-         INTEGER  (kind = C_INT)                    :: description_size
+         INTEGER  (kind = C_INT)     , VALUE        :: description_size
       END SUBROUTINE xios_set_filegroup_description
 
@@ -22,5 +22,5 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: filegroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: output_freq
-         INTEGER  (kind = C_INT)                    :: output_freq_size
+         INTEGER  (kind = C_INT)     , VALUE        :: output_freq_size
       END SUBROUTINE xios_set_filegroup_output_freq
 
@@ -28,5 +28,5 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
-         INTEGER (kind = C_INT)             :: output_level
+         INTEGER (kind = C_INT)     , VALUE :: output_level
       END SUBROUTINE xios_set_filegroup_output_level
 
@@ -34,9 +34,9 @@
          USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
-         LOGICAL (kind = C_BOOL)            :: enabled
+         LOGICAL (kind = C_BOOL)    , VALUE :: enabled
       END SUBROUTINE xios_set_filegroup_enabled
       
       SUBROUTINE xios_filegroup_handle_create(ret, idt, idt_size) BIND(C)
-         import C_CHAR, C_INTPTR_T, C_INT
+         USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T)               :: ret
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/grid_interface.f90
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/grid_interface.f90	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/grid_interface.f90	(revision 269)
@@ -8,5 +8,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: grid_hdl
          CHARACTER(kind = C_CHAR)   , DIMENSION(*) :: name
-         INTEGER (kind = C_INT)                    :: name_size
+         INTEGER (kind = C_INT)     , VALUE        :: name_size
       END SUBROUTINE xios_set_grid_name
 
@@ -15,5 +15,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: grid_hdl
          CHARACTER(kind = C_CHAR)   , DIMENSION(*) :: description
-         INTEGER (kind = C_INT)                    :: description_size
+         INTEGER (kind = C_INT)     , VALUE        :: description_size
       END SUBROUTINE xios_set_grid_description
 
@@ -22,5 +22,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: grid_hdl
          CHARACTER(kind = C_CHAR)   , DIMENSION(*) :: domain_ref
-         INTEGER (kind = C_INT)                    :: domain_ref_size
+         INTEGER (kind = C_INT)     , VALUE        :: domain_ref_size
       END SUBROUTINE xios_set_grid_domain_ref
 
@@ -29,9 +29,9 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: grid_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_ref
-         INTEGER  (kind = C_INT)                    :: axis_ref_size
+         INTEGER  (kind = C_INT)     , VALUE        :: axis_ref_size
       END SUBROUTINE xios_set_grid_axis_ref
       
       SUBROUTINE xios_grid_handle_create(ret, idt, idt_size) BIND(C)
-         import C_CHAR, C_INTPTR_T, C_INT
+         USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T)               :: ret
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/gridgroup_interface.f90
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/gridgroup_interface.f90	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/gridgroup_interface.f90	(revision 269)
@@ -8,5 +8,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: gridgroup_hdl
          CHARACTER(kind = C_CHAR)   , DIMENSION(*) :: name
-         INTEGER (kind = C_INT)                    :: name_size
+         INTEGER (kind = C_INT)     , VALUE        :: name_size
       END SUBROUTINE xios_set_gridgroup_name
 
@@ -15,5 +15,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: gridgroup_hdl
          CHARACTER(kind = C_CHAR)   , DIMENSION(*) :: description
-         INTEGER (kind = C_INT)                    :: description_size
+         INTEGER (kind = C_INT)     , VALUE        :: description_size
       END SUBROUTINE xios_set_gridgroup_description
 
@@ -22,5 +22,5 @@
          INTEGER (kind = C_INTPTR_T), VALUE        :: gridgroup_hdl
          CHARACTER(kind = C_CHAR)   , DIMENSION(*) :: domain_ref
-         INTEGER (kind = C_INT)                    :: domain_ref_size
+         INTEGER (kind = C_INT)     , VALUE        :: domain_ref_size
       END SUBROUTINE xios_set_gridgroup_domain_ref
 
@@ -29,9 +29,9 @@
          INTEGER  (kind = C_INTPTR_T), VALUE        :: gridgroup_hdl
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_ref
-         INTEGER  (kind = C_INT)                    :: axis_ref_size
+         INTEGER  (kind = C_INT)     , VALUE        :: axis_ref_size
       END SUBROUTINE xios_set_gridgroup_axis_ref
       
       SUBROUTINE xios_domaingroup_handle_create(ret, idt, idt_size) BIND(C)
-         import C_CHAR, C_INTPTR_T, C_INT
+         USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T)               :: ret
          CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/iaxis.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/iaxis.cpp	(revision 267)
+++ 	(revision )
@@ -1,96 +1,0 @@
-/* ************************************************************************** *
- *      Copyright Â© IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         *
- * ************************************************************************** */
-
-extern "C"
-{
-// /////////////////////////////// DÃ©finitions ////////////////////////////// //
-
-   // ----------------------- RedÃ©finition de types ----------------------------
-   
-   typedef void * XAxisPtr, XAxisGroupPtr;
-
-   // ------------------------- Attributs des axes -----------------------------
-   void xios_set_axis_name 
-      (XAxisPtr axis_hdl, const char * name , long int name_size)
-   {
-
-   }
-
-   void xios_set_axis_standard_name
-      (XAxisPtr axis_hdl, const char * standard_name , long int standard_name_size)
-   {
-
-   }
-    
-   void xios_set_axis_long_name 
-      (XAxisPtr axis_hdl, const char * long_name , long int long_name_size)
-   {
-
-   }
-
-   void xios_set_axis_unit 
-      (XAxisPtr axis_hdl, const char * unit , long int unit_size)
-   {
-
-   }
-    
-   void xios_set_axis_size(void * axis_hdl, long int size)
-   {
-
-   }
-
-   void xios_set_axis_zvalue 
-      (XAxisPtr axis_hdl, const double * zvalue , long intzvalue_extent1)
-   {
-
-   }
-   
-   // -------------------- Attributs des groupe d'axes -------------------------
-   void xios_set_axisgroup_name 
-      (XAxisGroupPtr axisgroup_hdl, const char * name , long int name_size)
-   {
-
-   }
-
-   void xios_set_axisgroup_standard_name
-      (XAxisGroupPtr axisgroup_hdl, const char * standard_name , long int standard_name_size)
-   {
-
-   }
-    
-   void xios_set_axisgroup_long_name 
-      (XAxisGroupPtr axisgroup_hdl, const char * long_name , long int long_name_size)
-   {
-
-   }
-
-   void xios_set_axisgroup_unit 
-      (XAxisGroupPtr axisgroup_hdl, const char * unit , long int unit_size)
-   {
-
-   }
-    
-   void xios_set_axisgroup_size(XAxisGroupPtr axisgroup_hdl, long int size)
-   {
-
-   }
-
-   void xios_set_axisgroup_zvalue 
-      (XAxisGroupPtr axisgroup_hdl, const double * zvalue , long int zvalue_extent1)
-   {
-
-   }
-   
-   // ------------------------ CrÃ©ation des handle -----------------------------
-   void xios_axis_handle_create (XAxisPtr * _ret, const char * _id, long int _id_len)
-   {
-      
-   }
-   
-   void xios_axisgroup_handle_create (XAxisGroupPtr * _ret, const char * _id, long int _id_len)
-   {
-      
-   }
-   
-} // extern "C"
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icaxis.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icaxis.cpp	(revision 269)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icaxis.cpp	(revision 269)
@@ -0,0 +1,126 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+#include <boost/multi_array.hpp>
+#include <boost/shared_ptr.hpp>
+
+#include "xmlioserver.hpp"
+
+#include "attribute_template_impl.hpp"
+#include "object_template_impl.hpp"
+#include "group_template_impl.hpp"
+
+#include "icutil.hpp"
+
+extern "C"
+{
+// /////////////////////////////// DÃ©finitions ////////////////////////////// //
+
+   // ----------------------- RedÃ©finition de types ----------------------------
+   
+   typedef void * XAxisPtr, * XAxisGroupPtr;
+
+   // ------------------------- Attributs des axes -----------------------------
+   void xios_set_axis_name 
+      (XAxisPtr axis_hdl, const char * name , int name_size)
+   {
+      std::string name_str; 
+      if (!cstr2string(name, name_size, name_str)) return; 
+   }
+
+   void xios_set_axis_standard_name
+      (XAxisPtr axis_hdl, const char * standard_name , int standard_name_size)
+   {
+      std::string standard_name_str; 
+      if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return; 
+   }
+    
+   void xios_set_axis_long_name 
+      (XAxisPtr axis_hdl, const char * long_name , int long_name_size)
+   {
+      std::string long_name_str; 
+      if (!cstr2string(long_name, long_name_size, long_name_str)) return; 
+   }
+
+   void xios_set_axis_unit 
+      (XAxisPtr axis_hdl, const char * unit , int unit_size)
+   {
+      std::string unit_str; 
+      if (!cstr2string(unit, unit_size, unit_str)) return;
+   }
+    
+   void xios_set_axis_size(void * axis_hdl, int size)
+   {
+
+   }
+
+   void xios_set_axis_zvalue 
+      (XAxisPtr axis_hdl, const double * zvalue , int zvalue_extent1)
+   {
+      boost::shared_ptr<boost::multi_array<double, 1> > zvalue_val
+         (new boost::multi_array<double, 1>(boost::extents [zvalue_extent1],
+                                  	    boost::fortran_storage_order()));
+      std::copy(zvalue, &(zvalue[zvalue_val->num_elements()]), zvalue_val->data()); 
+
+   }
+   
+   // -------------------- Attributs des groupes d'axes -------------------------
+   
+   void xios_set_axisgroup_name 
+      (XAxisGroupPtr axisgroup_hdl, const char * name , int name_size)
+   {
+      std::string name_str; 
+      if (!cstr2string(name, name_size, name_str)) return; 
+   }
+
+   void xios_set_axisgroup_standard_name
+      (XAxisGroupPtr axisgroup_hdl, const char * standard_name , int standard_name_size)
+   {
+      std::string standard_name_str; 
+      if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return;
+   }
+    
+   void xios_set_axisgroup_long_name 
+      (XAxisGroupPtr axisgroup_hdl, const char * long_name , int long_name_size)
+   {
+      std::string long_name_str; 
+      if (!cstr2string(long_name, long_name_size, long_name_str)) return; 
+   }
+
+   void xios_set_axisgroup_unit 
+      (XAxisGroupPtr axisgroup_hdl, const char * unit , int unit_size)
+   {
+      std::string unit_str; 
+      if (!cstr2string(unit, unit_size, unit_str)) return;
+   }
+    
+   void xios_set_axisgroup_size(XAxisGroupPtr axisgroup_hdl, int size)
+   {
+
+   }
+
+   void xios_set_axisgroup_zvalue 
+      (XAxisGroupPtr axisgroup_hdl, const double * zvalue , int zvalue_extent1)
+   {
+      boost::shared_ptr<boost::multi_array<double, 1> > zvalue_val
+         (new boost::multi_array<double, 1>(boost::extents [zvalue_extent1],
+                                  	    boost::fortran_storage_order()));
+      std::copy(zvalue, &(zvalue[zvalue_val->num_elements()]), zvalue_val->data()); 
+   }
+   
+   // ------------------------ CrÃ©ation des handle -----------------------------
+   
+   void xios_axis_handle_create (XAxisPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id; 
+      if (!cstr2string(_id, _id_len, id)) return;
+   }
+   
+   void xios_axisgroup_handle_create (XAxisGroupPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id; 
+      if (!cstr2string(_id, _id_len, id)) return;
+   }
+   
+} // extern "C"
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/iccontext.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/iccontext.cpp	(revision 269)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/iccontext.cpp	(revision 269)
@@ -0,0 +1,71 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+#include "icutil.hpp"
+
+extern "C"
+{
+// /////////////////////////////// DÃ©finitions ////////////////////////////// //
+
+   // ----------------------- RedÃ©finition de types ----------------------------
+
+   typedef enum { D360 = 0 , ALLLEAP, NOLEAP, JULIAN, GREGORIAN } XCalendarType ;
+
+   typedef void * XContextPtr;
+
+   // ------------------------- Attributs des contextes ------------------------
+   
+   
+   void xios_set_context_calendar_type(XContextPtr context_hdl, const char * calendar_type, int calendar_type_size)
+   {
+      std::string calendar_type_str; 
+      if (!cstr2string(calendar_type, calendar_type_size, calendar_type_str)) return; 
+   }
+   
+   void xios_set_context_start_date(XContextPtr context_hdl, const char * start_date, int start_date_size)
+   {
+      std::string start_date_str; 
+      if (!cstr2string(start_date, start_date_size, start_date_str)) return; 
+   }
+   
+   void xios_set_context_output_dir(XContextPtr context_hdl, const char * output_dir, int output_dir_size)
+   {
+      std::string output_dir_str; 
+      if (!cstr2string(output_dir, output_dir_size, output_dir_str)) return; 
+   }
+   
+   // ------------------------ CrÃ©ation des handle -----------------------------
+   
+   void xios_context_handle_create (XContextPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id; 
+      if (!cstr2string(_id, _id_len, id)) return;
+   }
+   
+   // ------------------------ Changements de contextes ------------------------
+   
+   void xios_context_set_current(XContextPtr context, bool withswap)
+   {
+   
+   }
+   
+   // ------------------------ CrÃ©ation de contexte ----------------------------
+   
+   void xios_context_create(XContextPtr * context,
+                            const char  * context_id,
+                            int           context_id_size,
+                            XCalendarType calendar_type,
+                            int           year,
+                            int           month,
+                            int           day,
+                            int           hour,
+                            int           minute,
+                            int           second)
+   {
+      std::string context_id_str; 
+      if (!cstr2string(context_id, context_id_size, context_id_str)) return;
+   
+   }
+   
+} // extern "C"
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icdata.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icdata.cpp	(revision 269)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icdata.cpp	(revision 269)
@@ -0,0 +1,94 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+#include <boost/multi_array.hpp>
+#include <boost/shared_ptr.hpp>
+
+#include "icutil.hpp"
+
+extern "C"
+{
+// /////////////////////////////// DÃ©finitions ////////////////////////////// //
+
+   // ----------------------- RedÃ©finition de types ----------------------------
+   
+   typedef enum { NETCDF4 = 0 } XFileType;
+   
+   typedef void * XContextPtr;
+
+   // -------------------- Traitement des donnÃ©es ------------------------------
+   
+   void xios_dtreatment_start(XContextPtr * context_hdl, XFileType filetype, int comm_client_server, int comm_server)
+   {
+   
+   }
+   
+   void xios_dtreatment_end(void)
+   {
+   
+   }
+   
+   // ---------------------- Ecriture des donnÃ©es ------------------------------
+   
+   void xios_write_data_k81(const char * fieldid, int fieldid_size, double * data_k8, int data_Xsize)
+   {
+      std::string fieldid_str; 
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
+      
+      boost::const_multi_array_ref<double, 1> array_(data_k8, 
+          boost::extents [data_Xsize],
+          boost::fortran_storage_order());      
+   }
+   
+   void xios_write_data_k82(const char * fieldid, int fieldid_size, double * data_k8, int data_Xsize, int data_Ysize)
+   {
+      std::string fieldid_str; 
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+      
+      boost::const_multi_array_ref<double, 2> array_(data_k8, 
+          boost::extents [data_Xsize][data_Ysize],
+          boost::fortran_storage_order());
+   }
+   
+   void xios_write_data_k83(const char * fieldid, int fieldid_size, double * data_k8, int data_Xsize, int data_Ysize, int data_Zsize)
+   {
+      std::string fieldid_str; 
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
+      
+      boost::const_multi_array_ref<double, 3> array_(data_k8, 
+          boost::extents [data_Xsize][data_Ysize][data_Zsize],
+          boost::fortran_storage_order());
+   }
+   
+   void xios_write_data_k41(const char * fieldid, int fieldid_size, float * data_k4, int data_Xsize)
+   {
+      std::string fieldid_str; 
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
+      
+      boost::const_multi_array_ref<float, 1> array_(data_k4, 
+          boost::extents [data_Xsize],
+          boost::fortran_storage_order());
+   }
+   
+   void xios_write_data_k42(const char * fieldid, int fieldid_size, float * data_k4, int data_Xsize, int data_Ysize)
+   {
+      std::string fieldid_str; 
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
+      
+      boost::const_multi_array_ref<float, 2> array_(data_k4, 
+          boost::extents [data_Xsize][data_Ysize],
+          boost::fortran_storage_order());
+   }
+   
+   void xios_write_data_k43(const char * fieldid, int fieldid_size, float * data_k4, int data_Xsize, int data_Ysize, int data_Zsize)
+   {
+      std::string fieldid_str; 
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
+      
+      boost::const_multi_array_ref<float, 3> array_(data_k4, 
+          boost::extents [data_Xsize][data_Ysize][data_Zsize],
+          boost::fortran_storage_order());
+   } 
+
+} // extern "C"
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icdate.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icdate.cpp	(revision 269)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icdate.cpp	(revision 269)
@@ -0,0 +1,22 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+#include "icutil.hpp"
+
+extern "C"
+{
+// /////////////////////////////// DÃ©finitions ////////////////////////////// //
+
+   void xios_set_timestep(double ts_year, double ts_month,  double ts_day,
+                          double ts_hour, double ts_minute, double ts_second)
+   {
+   
+   }
+   
+   void xios_update_calendar(int step)
+   {
+   
+   }
+
+} // extern "C"
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icdomain.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icdomain.cpp	(revision 269)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icdomain.cpp	(revision 269)
@@ -0,0 +1,385 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+#include <boost/multi_array.hpp>
+#include <boost/shared_ptr.hpp>
+
+#include "icutil.hpp"
+
+extern "C"
+{
+// /////////////////////////////// DÃ©finitions ////////////////////////////// //
+
+   // ----------------------- RedÃ©finition de types ----------------------------
+   
+   typedef void * XDomainPtr, * XDomainGroupPtr;
+
+   // ------------------------- Attributs des axes -----------------------------
+   
+   void xios_set_domain_name(XDomainPtr domain_hdl, const char * name, int name_size)
+   {
+      std::string name_str; 
+      if (!cstr2string(name, name_size, name_str)) return; 
+   }
+   
+   void xios_set_domain_standard_name(XDomainPtr domain_hdl, const char * standard_name, int standard_name_size)
+   {
+      std::string standard_name_str; 
+      if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return; 
+   }
+   
+   void xios_set_domain_long_name(XDomainPtr domain_hdl, const char * long_name, int long_name_size)
+   {
+      std::string long_name_str; 
+      if (!cstr2string(long_name, long_name_size, long_name_str)) return; 
+   }
+   
+   void xios_set_domain_domain_group_ref(XDomainPtr domain_hdl, const char * domain_group_ref, int domain_group_ref_size)
+   {
+      std::string domain_group_ref_str; 
+      if (!cstr2string(domain_group_ref, domain_group_ref_size, domain_group_ref_str)) return; 
+   }
+   
+   void xios_set_domain_ni_glo(XDomainPtr domain_hdl, int ni_glo)
+   {
+   
+   }
+   
+   void xios_set_domain_nj_glo(XDomainPtr domain_hdl, int nj_glo)
+   {
+   
+   }
+   
+   void xios_set_domain_ibegin(XDomainPtr domain_hdl, int ibegin)
+   {
+   
+   }
+   
+   void xios_set_domain_iend(XDomainPtr domain_hdl, int iend)
+   {
+   
+   }
+   
+   void xios_set_domain_ni(XDomainPtr domain_hdl, int ni)
+   {
+   
+   }
+   
+   void xios_set_domain_jbegin(XDomainPtr domain_hdl, int jbegin)
+   {
+   
+   }
+   
+   void xios_set_domain_jend(XDomainPtr domain_hdl, int jend)
+   {
+   
+   }
+   
+   void xios_set_domain_nj(XDomainPtr domain_hdl, int nj)
+   {
+   
+   }
+   
+   void xios_set_domain_mask(XDomainPtr domain_hdl, bool * mask, int mask_extent1, int mask_extent2)
+   {
+      boost::shared_ptr<boost::multi_array<bool, 2> > mask_val
+         (new boost::multi_array<bool, 2>(boost::extents [mask_extent1][mask_extent2],
+                                  	  boost::fortran_storage_order()));
+      std::copy(mask, &(mask[mask_val->num_elements()]), mask_val->data()); 
+   }
+   
+   void xios_set_domain_data_dim(XDomainPtr domain_hdl, int data_dim)
+   {
+   
+   }
+   
+   void xios_set_domain_data_ni(XDomainPtr domain_hdl, int data_ni)
+   {
+   
+   }
+   
+   void xios_set_domain_data_nj(XDomainPtr domain_hdl, int data_nj)
+   {
+   
+   }
+   
+   void xios_set_domain_data_ibegin(XDomainPtr domain_hdl, int data_ibegin)
+   {
+   
+   }
+   
+   void xios_set_domain_data_jbegin(XDomainPtr domain_hdl, int data_jbegin)
+   {
+   
+   }
+   
+   void xios_set_domain_zoom_ni(XDomainPtr domain_hdl, int zoom_ni)
+   {
+   
+   }
+   
+   void xios_set_domain_zoom_nj(XDomainPtr domain_hdl, int zoom_nj)
+   {
+   
+   }
+   
+   void xios_set_domain_zoom_ibegin(XDomainPtr domain_hdl, int zoom_ibegin)
+   {
+   
+   }
+    
+   void xios_set_domain_zoom_jbegin(XDomainPtr domain_hdl, int zoom_jbegin)
+   {
+   
+   }
+   
+   void xios_set_domain_zoom_ni_loc(XDomainPtr domain_hdl, int zoom_ni_loc)
+   {
+   
+   }
+   
+   void xios_set_domain_zoom_nj_loc(XDomainPtr domain_hdl, int zoom_nj_loc)
+   {
+   
+   }
+   
+   void xios_set_domain_zoom_ibegin_loc(XDomainPtr domain_hdl, int zoom_ibegin_loc)
+   {
+   
+   }
+   
+   void xios_set_domain_zoom_jbegin_loc(XDomainPtr domain_hdl, int zoom_jbegin_loc)
+   {
+   
+   }
+   
+   void xios_set_domain_data_n_index(XDomainPtr domain_hdl, int data_n_index)
+   {
+   
+   }
+   
+   void xios_set_domain_data_i_index(XDomainPtr domain_hdl, int * data_i_index, int data_i_index_extent1)
+   {
+      boost::shared_ptr<boost::multi_array<int, 1> > data_i_index_val
+         (new boost::multi_array<int, 1>(boost::extents [data_i_index_extent1],
+                                  	 boost::fortran_storage_order()));
+      std::copy(data_i_index, &(data_i_index[data_i_index_val->num_elements()]), data_i_index_val->data()); 
+   }
+   
+   void xios_set_domain_data_j_index(XDomainPtr domain_hdl, int * data_j_index, int data_j_index_extent1)
+   {
+      boost::shared_ptr<boost::multi_array<int, 1> > data_j_index_val
+         (new boost::multi_array<int, 1>(boost::extents [data_j_index_extent1],
+                                  	 boost::fortran_storage_order()));
+      std::copy(data_j_index, &(data_j_index[data_j_index_val->num_elements()]), data_j_index_val->data()); 
+   }
+    
+   void xios_set_domain_lonvalue(XDomainPtr domain_hdl, double * lonvalue, int lonvalue_extent1)
+   {
+      boost::shared_ptr<boost::multi_array<double, 1> > lonvalue_val
+         (new boost::multi_array<double, 1>(boost::extents [lonvalue_extent1],
+                                  	    boost::fortran_storage_order()));
+      std::copy(lonvalue, &(lonvalue[lonvalue_val->num_elements()]), lonvalue_val->data());
+   }
+   
+   void xios_set_domain_latvalue(XDomainPtr domain_hdl, double * latvalue, int latvalue_extent1)
+   {
+      boost::shared_ptr<boost::multi_array<double, 1> > latvalue_val
+         (new boost::multi_array<double, 1>(boost::extents [latvalue_extent1],
+                                  	    boost::fortran_storage_order()));
+      std::copy(latvalue, &(latvalue[latvalue_val->num_elements()]), latvalue_val->data());
+   }   
+   
+   // -------------------- Attributs des groupes d'axes ------------------------
+   
+   
+   void xios_set_domaingroup_name(XDomainGroupPtr domaingroup_hdl, const char * name, int name_size)
+   {
+      std::string name_str; 
+      if (!cstr2string(name, name_size, name_str)) return; 
+   }
+   
+   void xios_set_domaingroup_standard_name(XDomainGroupPtr domaingroup_hdl, const char * standard_name, int standard_name_size)
+   {
+      std::string standard_name_str; 
+      if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return;
+   }
+   
+   void xios_set_domaingroup_long_name(XDomainGroupPtr domaingroup_hdl, const char * long_name, int long_name_size)
+   {
+      std::string long_name_str; 
+      if (!cstr2string(long_name, long_name_size, long_name_str)) return; 
+   }
+   
+   void xios_set_domaingroup_domain_group_ref(XDomainGroupPtr domaingroup_hdl, const char * domain_group_ref, int domain_group_ref_size)
+   {
+      std::string domain_group_ref_str; 
+      if (!cstr2string(domain_group_ref, domain_group_ref_size, domain_group_ref_str)) return;
+   }
+   
+   void xios_set_domaingroup_ni_glo(XDomainGroupPtr domaingroup_hdl, int ni_glo)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_nj_glo(XDomainGroupPtr domaingroup_hdl, int nj_glo)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_ibegin(XDomainGroupPtr domaingroup_hdl, int ibegin)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_iend(XDomainGroupPtr domaingroup_hdl, int iend)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_ni(XDomainGroupPtr domaingroup_hdl, int ni)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_jbegin(XDomainGroupPtr domaingroup_hdl, int jbegin)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_jend(XDomainGroupPtr domaingroup_hdl, int jend)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_nj(XDomainGroupPtr domaingroup_hdl, int nj)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_mask(XDomainGroupPtr domaingroup_hdl, bool * mask, int mask_extent1, int mask_extent2)
+   {
+      boost::shared_ptr<boost::multi_array<bool, 2> > mask_val
+         (new boost::multi_array<bool, 2>(boost::extents [mask_extent1][mask_extent2],
+                                  	  boost::fortran_storage_order()));
+      std::copy(mask, &(mask[mask_val->num_elements()]), mask_val->data()); 
+   }
+   
+   void xios_set_domaingroup_data_dim(XDomainGroupPtr domaingroup_hdl, int data_dim)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_data_ni(XDomainGroupPtr domaingroup_hdl, int data_ni)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_data_nj(XDomainGroupPtr domaingroup_hdl, int data_nj)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_data_ibegin(XDomainGroupPtr domaingroup_hdl, int data_ibegin)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_data_jbegin(XDomainGroupPtr domaingroup_hdl, int data_jbegin)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_zoom_ni(XDomainGroupPtr domaingroup_hdl, int zoom_ni)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_zoom_nj(XDomainGroupPtr domaingroup_hdl, int zoom_nj)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_zoom_ibegin(XDomainGroupPtr domaingroup_hdl, int zoom_ibegin)
+   {
+   
+   }
+    
+   void xios_set_domaingroup_zoom_jbegin(XDomainGroupPtr domaingroup_hdl, int zoom_jbegin)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_zoom_ni_loc(XDomainGroupPtr domaingroup_hdl, int zoom_ni_loc)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_zoom_nj_loc(XDomainGroupPtr domaingroup_hdl, int zoom_nj_loc)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_zoom_ibegin_loc(XDomainGroupPtr domaingroup_hdl, int zoom_ibegin_loc)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_zoom_jbegin_loc(XDomainGroupPtr domaingroup_hdl, int zoom_jbegin_loc)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_data_n_index(XDomainGroupPtr domaingroup_hdl, int data_n_index)
+   {
+   
+   }
+   
+   void xios_set_domaingroup_data_i_index(XDomainGroupPtr domaingroup_hdl, int * data_i_index, int data_i_index_extent1)
+   {
+      boost::shared_ptr<boost::multi_array<int, 1> > data_i_index_val
+         (new boost::multi_array<int, 1>(boost::extents [data_i_index_extent1],
+                                  	  boost::fortran_storage_order()));
+      std::copy(data_i_index, &(data_i_index[data_i_index_val->num_elements()]), data_i_index_val->data()); 
+   }
+   
+   void xios_set_domaingroup_data_j_index(XDomainGroupPtr domaingroup_hdl, int * data_j_index, int data_j_index_extent1)
+   {
+      boost::shared_ptr<boost::multi_array<int, 1> > data_j_index_val
+         (new boost::multi_array<int, 1>(boost::extents [data_j_index_extent1],
+                                  	  boost::fortran_storage_order()));
+      std::copy(data_j_index, &(data_j_index[data_j_index_val->num_elements()]), data_j_index_val->data()); 
+   }
+    
+   void xios_set_domaingroup_lonvalue(XDomainGroupPtr domaingroup_hdl, double * lonvalue, int lonvalue_extent1)
+   {
+      boost::shared_ptr<boost::multi_array<double, 1> > lonvalue_val
+         (new boost::multi_array<double, 1>(boost::extents [lonvalue_extent1],
+                                  	    boost::fortran_storage_order()));
+      std::copy(lonvalue, &(lonvalue[lonvalue_val->num_elements()]), lonvalue_val->data());
+   }
+   
+   void xios_set_domaingroup_latvalue(XDomainGroupPtr domaingroup_hdl, double * latvalue, int latvalue_extent1)
+   {
+      boost::shared_ptr<boost::multi_array<double, 1> > latvalue_val
+         (new boost::multi_array<double, 1>(boost::extents [latvalue_extent1],
+                                  	    boost::fortran_storage_order()));
+      std::copy(latvalue, &(latvalue[latvalue_val->num_elements()]), latvalue_val->data());
+   }  
+   
+   // ------------------------ CrÃ©ation des handle -----------------------------
+   
+   void xios_domain_handle_create (XDomainPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id; 
+      if (!cstr2string(_id, _id_len, id)) return;
+   }
+   
+   void xios_domaingroup_handle_create (XDomainGroupPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id; 
+      if (!cstr2string(_id, _id_len, id)) return;
+   }
+   
+} // extern "C"
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icfield.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icfield.cpp	(revision 269)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icfield.cpp	(revision 269)
@@ -0,0 +1,193 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+#include "icutil.hpp"
+
+extern "C"
+{
+// /////////////////////////////// DÃ©finitions ////////////////////////////// //
+
+   // ----------------------- RedÃ©finition de types ----------------------------
+   
+   typedef void * XFieldPtr, * XFieldGroupPtr;
+
+   // ------------------------- Attributs des champs ---------------------------
+   
+   void xios_set_field_name(XFieldPtr field_hdl, const char * name, int name_size)
+   {
+      std::string name_str; 
+      if (!cstr2string(name, name_size, name_str)) return; 
+   }
+   
+   void xios_set_field_standard_name(XFieldPtr field_hdl, const char * standard_name, int standard_name_size)
+   {
+      std::string standard_name_str; 
+      if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return; 
+   }
+   
+   void xios_set_field_long_name(XFieldPtr field_hdl, const char * long_name, int long_name_size)
+   {
+      std::string long_name_str; 
+      if (!cstr2string(long_name, long_name_size, long_name_str)) return;  
+   }
+   
+   void xios_set_field_unit(XFieldPtr field_hdl, const char * unit, int unit_size)
+   {
+      std::string unit_str; 
+      if (!cstr2string(unit, unit_size, unit_str)) return; 
+   }
+   
+   void xios_set_field_operation(XFieldPtr field_hdl, const char * operation, int operation_size) 
+   {
+      std::string operation_str; 
+      if (!cstr2string(operation, operation_size, operation_str)) return; 
+   }
+   
+   void xios_set_field_freq_op(XFieldPtr field_hdl, const char * freq_op, int freq_op_size)
+   {
+      std::string freq_op_str; 
+      if (!cstr2string(freq_op, freq_op_size, freq_op_str)) return; 
+   }
+   
+   void xios_set_field_level(XFieldPtr field_hdl, int level)
+   {
+      
+   }
+   
+   void xios_set_field_prec(XFieldPtr field_hdl, int prec)
+   {
+      
+   }
+   
+   void xios_set_field_enabled(XFieldPtr field_hdl, bool enabled)
+   {
+      
+   }
+   
+   void xios_set_field_domain_ref(XFieldPtr field_hdl,  const char * domain_ref, int domain_ref_size)
+   {
+      std::string domain_ref_str; 
+      if (!cstr2string(domain_ref, domain_ref_size, domain_ref_str)) return; 
+   }
+   
+   void xios_set_field_axis_ref(XFieldPtr field_hdl,  const char * axis_ref,  int axis_ref_size)
+   {
+      std::string axis_ref_str; 
+      if (!cstr2string(axis_ref, axis_ref_size, axis_ref_str)) return; 
+   }
+   
+   void xios_set_field_grid_ref(XFieldPtr field_hdl,  const char * grid_ref, int grid_ref_size)
+   {
+      std::string grid_ref_str; 
+      if (!cstr2string(grid_ref, grid_ref_size, grid_ref_str)) return; 
+   }
+   
+   void xios_set_field_field_ref(XFieldPtr field_hdl,  const char * field_ref,  int field_ref_size)
+   {
+      std::string field_ref_str; 
+      if (!cstr2string(field_ref, field_ref_size, field_ref_str)) return; 
+   }
+   
+   void xios_set_field_default_value(XFieldPtr field_hdl, double default_value)
+   {
+      
+   }  
+   
+   // -------------------- Attributs des groupes de champs ---------------------
+  
+   void xios_set_fieldgroup_name(XFieldGroupPtr fieldgroup_hdl, const char * name, int name_size)
+   {
+      std::string name_str; 
+      if (!cstr2string(name, name_size, name_str)) return;  
+   }
+   
+   void xios_set_fieldgroup_standard_name(XFieldGroupPtr fieldgroup_hdl, const char * standard_name, int standard_name_size)
+   {
+      std::string standard_name_str; 
+      if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return;
+   }
+   
+   void xios_set_fieldgroup_long_name(XFieldGroupPtr fieldgroup_hdl, const char * long_name, int long_name_size)
+   {
+      std::string long_name_str; 
+      if (!cstr2string(long_name, long_name_size, long_name_str)) return;
+   }
+   
+   void xios_set_fieldgroup_unit(XFieldGroupPtr fieldgroup_hdl, const char * unit, int unit_size)
+   {
+      std::string unit_str; 
+      if (!cstr2string(unit, unit_size, unit_str)) return;
+   }
+   
+   void xios_set_fieldgroup_operation(XFieldGroupPtr fieldgroup_hdl, const char * operation, int operation_size) 
+   {
+      std::string operation_str; 
+      if (!cstr2string(operation, operation_size, operation_str)) return; 
+   }
+   
+   void xios_set_fieldgroup_freq_op(XFieldGroupPtr fieldgroup_hdl, const char * freq_op, int freq_op_size)
+   {
+      std::string freq_op_str; 
+      if (!cstr2string(freq_op, freq_op_size, freq_op_str)) return;
+   }
+   
+   void xios_set_fieldgroup_level(XFieldGroupPtr fieldgroup_hdl, int level)
+   {
+      
+   }
+   
+   void xios_set_fieldgroup_prec(XFieldGroupPtr fieldgroup_hdl, int prec)
+   {
+      
+   }
+   
+   void xios_set_fieldgroup_enabled(XFieldGroupPtr fieldgroup_hdl, bool enabled)
+   {
+      
+   }
+   
+   void xios_set_fieldgroup_domain_ref(XFieldGroupPtr fieldgroup_hdl,  const char * domain_ref, int domain_ref_size)
+   {
+      std::string domain_ref_str; 
+      if (!cstr2string(domain_ref, domain_ref_size, domain_ref_str)) return; 
+   }
+   
+   void xios_set_fieldgroup_axis_ref(XFieldGroupPtr fieldgroup_hdl,  const char * axis_ref,  int axis_ref_size)
+   {
+      std::string axis_ref_str; 
+      if (!cstr2string(axis_ref, axis_ref_size, axis_ref_str)) return; 
+   }
+   
+   void xios_set_fieldgroup_grid_ref(XFieldGroupPtr fieldgroup_hdl,  const char * grid_ref, int grid_ref_size)
+   {
+      std::string grid_ref_str; 
+      if (!cstr2string(grid_ref, grid_ref_size, grid_ref_str)) return;
+   }
+   
+   void xios_set_fieldgroup_field_ref(XFieldGroupPtr fieldgroup_hdl,  const char * field_ref,  int field_ref_size)
+   {
+      std::string field_ref_str; 
+      if (!cstr2string(field_ref, field_ref_size, field_ref_str)) return; 
+   }
+   
+   void xios_set_fieldgroup_default_value(XFieldGroupPtr fieldgroup_hdl, double default_value)
+   {
+      
+   }  
+   
+   // ------------------------ CrÃ©ation des handle -----------------------------
+   
+   void xios_field_handle_create (XFieldPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id; 
+      if (!cstr2string(_id, _id_len, id)) return;
+   }
+   
+   void xios_fieldgroup_handle_create (XFieldGroupPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id; 
+      if (!cstr2string(_id, _id_len, id)) return;
+   }
+   
+} // extern "C"
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icfile.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icfile.cpp	(revision 269)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icfile.cpp	(revision 269)
@@ -0,0 +1,89 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+#include "icutil.hpp"
+
+extern "C"
+{
+// /////////////////////////////// DÃ©finitions ////////////////////////////// //
+
+   // ----------------------- RedÃ©finition de types ----------------------------
+   
+   typedef void * XFilePtr, * XFileGroupPtr;
+
+   // ------------------------- Attributs des axes -----------------------------
+   
+   void xios_set_file_name(XFilePtr file_hdl, const char * name, int name_size)
+   {
+      std::string name_str; 
+      if (!cstr2string(name, name_size, name_str)) return; 
+   }
+   
+   void xios_set_file_description(XFilePtr file_hdl, const char * description, int description_size)
+   {
+      std::string description_str; 
+      if (!cstr2string(description, description_size, description_str)) return; 
+   } 
+   
+   void xios_set_file_output_freq(XFilePtr file_hdl, const char * output_freq, int output_freq_size)
+   {
+      std::string output_freq_str; 
+      if (!cstr2string(output_freq, output_freq_size, output_freq_str)) return; 
+   }
+   
+   void xios_set_file_output_level(XFilePtr file_hdl, int output_level)
+   {
+   
+   }
+   
+   void xios_set_file_enabled(XFilePtr file_hdl, bool enabled)
+   {
+   
+   }
+   
+   // -------------------- Attributs des groupes d'axes ------------------------
+   
+   void xios_set_filegroup_name(XFileGroupPtr filegroup_hdl, const char * name, int name_size)
+   {
+      std::string name_str; 
+      if (!cstr2string(name, name_size, name_str)) return; 
+   }
+   
+   void xios_set_filegroup_description(XFileGroupPtr filegroup_hdl, const char * description, int description_size)
+   {
+      std::string description_str; 
+      if (!cstr2string(description, description_size, description_str)) return; 
+   } 
+   
+   void xios_set_filegroup_output_freq(XFileGroupPtr filegroup_hdl, const char * output_freq, int output_freq_size)
+   {
+      std::string output_freq_str; 
+      if (!cstr2string(output_freq, output_freq_size, output_freq_str)) return; 
+   }
+   
+   void xios_set_filegroup_output_level(XFileGroupPtr filegroup_hdl, int output_level)
+   {
+   
+   }
+   
+   void xios_set_filegroup_enabled(XFileGroupPtr filegroup_hdl, bool enabled)
+   {
+   
+   }
+   
+   // ------------------------ CrÃ©ation des handle -----------------------------
+   
+   void xios_file_handle_create (XFilePtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id; 
+      if (!cstr2string(_id, _id_len, id)) return;
+   }
+   
+   void xios_filegroup_handle_create (XFileGroupPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id; 
+      if (!cstr2string(_id, _id_len, id)) return;
+   }
+   
+} // extern "C"
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icgrid.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icgrid.cpp	(revision 269)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icgrid.cpp	(revision 269)
@@ -0,0 +1,82 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+#include "icutil.hpp"
+
+extern "C"
+{
+// /////////////////////////////// DÃ©finitions ////////////////////////////// //
+
+   // ----------------------- RedÃ©finition de types ----------------------------
+   
+   typedef void * XGridPtr, * XGridGroupPtr;
+
+   // ------------------------- Attributs des axes -----------------------------
+   
+   void xios_set_grid_name(XGridPtr grid_hdl, const char * name,  int name_size)
+   {
+      std::string name_str; 
+      if (!cstr2string(name, name_size, name_str)) return; 
+   }
+   
+   void xios_set_grid_description(XGridPtr grid_hdl, const char * description,  int description_size)
+   {
+      std::string description_str; 
+      if (!cstr2string(description, description_size, description_str)) return;
+   }
+   
+   void xios_set_grid_domain_ref(XGridPtr grid_hdl, const char * domain_ref,  int domain_ref_size)
+   {
+      std::string domain_ref_str; 
+      if (!cstr2string(domain_ref, domain_ref_size, domain_ref_str)) return; 
+   }
+   
+   void xios_set_grid_axis_ref(XGridPtr grid_hdl, const char * axis_ref,  int axis_ref_size)
+   {
+      std::string axis_ref_str; 
+      if (!cstr2string(axis_ref, axis_ref_size, axis_ref_str)) return; 
+   }
+   
+   // -------------------- Attributs des groupes de grilles --------------------
+   
+   void xios_set_gridgroup_name(XGridGroupPtr gridgroup_hdl, const char * name,  int name_size)
+   {
+      std::string name_str; 
+      if (!cstr2string(name, name_size, name_str)) return; 
+   }
+   
+   void xios_set_gridgroup_description(XGridGroupPtr gridgroup_hdl, const char * description,  int description_size)
+   {
+      std::string description_str; 
+      if (!cstr2string(description, description_size, description_str)) return;
+   }
+   
+   void xios_set_gridgroup_domain_ref(XGridGroupPtr gridgroup_hdl, const char * domain_ref,  int domain_ref_size)
+   {
+      std::string domain_ref_str; 
+      if (!cstr2string(domain_ref, domain_ref_size, domain_ref_str)) return; 
+   }
+   
+   void xios_set_gridgroup_axis_ref(XGridGroupPtr gridgroup_hdl, const char * axis_ref,  int axis_ref_size)
+   {
+      std::string axis_ref_str; 
+      if (!cstr2string(axis_ref, axis_ref_size, axis_ref_str)) return; 
+   }
+   
+   // ------------------------ CrÃ©ation des handle -----------------------------
+  
+   void xios_grid_handle_create (XGridPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id; 
+      if (!cstr2string(_id, _id_len, id)) return;
+   }
+   
+   void xios_gridgroup_handle_create (XGridGroupPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id; 
+      if (!cstr2string(_id, _id_len, id)) return;
+   }
+  
+   
+} // extern "C"
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icutil.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icutil.hpp	(revision 269)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icutil.hpp	(revision 269)
@@ -0,0 +1,31 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+
+#ifndef __ICUTIL_HPP__
+#define __ICUTIL_HPP__
+
+#include <string>
+
+// ///////////////////////// DÃ©finitions/DÃ©clarations /////////////////////// //
+
+inline bool cstr2string(const char * cstr, int cstr_size, std::string & str)
+{
+  std::string valtemp;
+  std::size_t d, f = 0;
+  if (cstr_size != -1) 
+  { 
+     valtemp.append (cstr, cstr_size);
+     d = valtemp.find_first_not_of(' ');
+     f = valtemp.find_last_not_of (' ');
+     str = valtemp.substr(d, f-d+1); 
+     return (true);
+  }
+  else
+  {
+     return (false);
+  }  
+}
+
+#endif // __ICUTIL_HPP__
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icxml_tree.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icxml_tree.cpp	(revision 269)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/icxml_tree.cpp	(revision 269)
@@ -0,0 +1,90 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+#include "icutil.hpp"
+
+extern "C"
+{
+// /////////////////////////////// DÃ©finitions ////////////////////////////// //
+
+   // ----------------------- RedÃ©finition de types ----------------------------
+   
+   typedef void * XAxisPtr  , * XAxisGroupPtr;
+   typedef void * XDomainPtr, * XDomainGroupPtr;
+   typedef void * XGridPtr  , * XGridGroupPtr;
+   typedef void * XFieldPtr , * XFieldGroupPtr;
+   typedef void * XFilePtr  , * XFileGroupPtr;
+   
+   // ----------------------- Ajout d'enfant Ã  un parent -----------------------
+   
+   void xios_xml_tree_add_field(XFieldGroupPtr  parent_, XFieldPtr * child_, const char * child_id, int child_id_size)
+   {
+      std::string child_id_str; 
+      if (!cstr2string(child_id, child_id_size, child_id_str)) return; 
+   }
+   
+   void xios_xml_tree_add_grid(XGridGroupPtr   parent_, XGridPtr * child_, const char * child_id, int child_id_size)
+   {
+      std::string child_id_str; 
+      if (!cstr2string(child_id, child_id_size, child_id_str)) return; 
+   }
+   
+   void xios_xml_tree_add_file(XFileGroupPtr   parent_, XFilePtr * child_, const char * child_id, int child_id_size)
+   {
+      std::string child_id_str; 
+      if (!cstr2string(child_id, child_id_size, child_id_str)) return; 
+   }
+   
+   void xios_xml_tree_add_axis(XAxisGroupPtr   parent_, XAxisPtr * child_, const char * child_id, int child_id_size)
+   {
+      std::string child_id_str; 
+      if (!cstr2string(child_id, child_id_size, child_id_str)) return; 
+   }
+   
+   void xios_xml_tree_add_domain(XDomainGroupPtr parent_, XDomainPtr * child_, const char * child_id, int child_id_size) 
+   {
+      std::string child_id_str; 
+      if (!cstr2string(child_id, child_id_size, child_id_str)) return; 
+   }
+   
+   
+   void xios_xml_tree_add_fieldtofile(XFilePtr parent_, XFieldPtr * child_, const char * child_id, int child_id_size)
+   {
+      std::string child_id_str; 
+      if (!cstr2string(child_id, child_id_size, child_id_str)) return; 
+   }
+   
+   void xios_xml_tree_add_fieldgrouptofile(XFilePtr parent_, XFieldGroupPtr * child_, const char * child_id, int child_id_size)
+   {
+      std::string child_id_str; 
+      if (!cstr2string(child_id, child_id_size, child_id_str)) return; 
+   }
+   
+   
+   // ----------------------- Affichage de l'arborescence ----------------------
+   
+   void xios_xml_tree_show   (const char * filename, int filename_size) 
+   {
+      std::string filename_str; 
+      if (!cstr2string(filename, filename_size, filename_str)) return; 
+   }
+     
+   
+   // ----------------------- Parsing de document xml --------------------------
+   
+   void xios_xml_parse_file  (const char * filename  , int filename_size)
+   {
+      std::string filename_str; 
+      if (!cstr2string(filename, filename_size, filename_str)) return; 
+   }
+   
+   void xios_xml_parse_string(const char * xmlcontent, int xmlcontent_size)
+   {
+      std::string xmlcontent_str; 
+      if (!cstr2string(xmlcontent, xmlcontent_size, xmlcontent_str)) return; 
+   }
+   
+
+
+} // extern "C"
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/idata.f90
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/idata.f90	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/idata.f90	(revision 269)
@@ -6,5 +6,5 @@
    
       SUBROUTINE xios_dtreatment_start(context_hdl, filetype, comm_client_server, comm_server) BIND(C)
-         IMPORT C_INTPTR_T, C_INT
+         USE ISO_C_BINDING
          INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
          INTEGER (kind = C_INT)     , VALUE :: filetype, comm_client_server, comm_server
@@ -16,5 +16,5 @@
 
       SUBROUTINE xios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C)
-         IMPORT C_INT, C_CHAR, C_DOUBLE
+         USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
          REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
@@ -24,5 +24,5 @@
       
       SUBROUTINE xios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize) BIND(C)
-         IMPORT C_INT, C_CHAR, C_DOUBLE
+         USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
          REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
@@ -32,5 +32,5 @@
       
       SUBROUTINE xios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C)
-         IMPORT C_INT, C_CHAR, C_DOUBLE
+         USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
          REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
@@ -40,5 +40,5 @@
       
       SUBROUTINE xios_write_data_k41(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C)
-         IMPORT C_INT, C_CHAR, C_FLOAT
+         USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
          REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
@@ -48,5 +48,5 @@
       
       SUBROUTINE xios_write_data_k42(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize) BIND(C)
-         IMPORT C_INT, C_CHAR, C_FLOAT
+         USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
          REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
@@ -56,5 +56,5 @@
       
       SUBROUTINE xios_write_data_k43(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize) BIND(C)
-         IMPORT C_INT, C_CHAR, C_FLOAT
+         USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
          REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/idate.f90
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/idate.f90	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/idate.f90	(revision 269)
@@ -17,5 +17,5 @@
       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, &
+         REAL (kind = C_DOUBLE), VALUE :: ts_year, ts_month , ts_day   , &
                                           ts_hour, ts_minute, ts_second
       END SUBROUTINE xios_set_timestep
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/ixml_tree.f90
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/ixml_tree.f90	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/fortran/ixml_tree.f90	(revision 269)
@@ -10,5 +10,5 @@
      
       SUBROUTINE xios_xml_tree_add_field(parent_, child_, child_id, child_id_size) BIND(C)
-         import C_CHAR, C_INT, C_INTPTR_T
+         USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
          INTEGER  (kind = C_INTPTR_T)               :: child_
@@ -18,5 +18,5 @@
       
       SUBROUTINE xios_xml_tree_add_grid(parent_, child_, child_id, child_id_size) BIND(C)
-         import C_CHAR, C_INT, C_INTPTR_T
+         USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
          INTEGER  (kind = C_INTPTR_T)               :: child_
@@ -26,5 +26,5 @@
       
       SUBROUTINE xios_xml_tree_add_file(parent_, child_, child_id, child_id_size) BIND(C)
-         import C_CHAR, C_INT, C_INTPTR_T
+         USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
          INTEGER  (kind = C_INTPTR_T)               :: child_
@@ -34,5 +34,5 @@
       
       SUBROUTINE xios_xml_tree_add_axis(parent_, child_, child_id, child_id_size) BIND(C)
-         import C_CHAR, C_INT, C_INTPTR_T
+         USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
          INTEGER  (kind = C_INTPTR_T)               :: child_
@@ -42,5 +42,5 @@
       
       SUBROUTINE xios_xml_tree_add_domain(parent_, child_, child_id, child_id_size) BIND(C)
-         import C_CHAR, C_INT, C_INTPTR_T
+         USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
          INTEGER  (kind = C_INTPTR_T)               :: child_
@@ -50,5 +50,5 @@
       
       SUBROUTINE xios_xml_tree_add_fieldtofile(parent_, child_, child_id, child_id_size) BIND(C)
-         import C_CHAR, C_INT, C_INTPTR_T
+         USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
          INTEGER  (kind = C_INTPTR_T)               :: child_
@@ -58,5 +58,5 @@
       
       SUBROUTINE xios_xml_tree_add_fieldgrouptofile(parent_, child_, child_id, child_id_size) BIND(C)
-         import C_CHAR, C_INT, C_INTPTR_T
+         USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_
          INTEGER  (kind = C_INTPTR_T)               :: child_
@@ -66,5 +66,5 @@
 
       SUBROUTINE xios_xml_tree_show(filename, filename_size) BIND(C)
-         import C_CHAR, C_INT
+         USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename
          INTEGER  (kind = C_INT) , VALUE        :: filename_size
@@ -72,5 +72,5 @@
 
       SUBROUTINE xios_xml_parse_file(filename, filename_size) BIND(C)
-         import C_CHAR, C_INT
+         USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename
          INTEGER  (kind = C_INT) , VALUE        :: filename_size
@@ -78,5 +78,5 @@
 
       SUBROUTINE xios_xml_parse_string(xmlcontent, xmlcontent_size) BIND(C)
-         import C_CHAR, C_INT
+         USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR), DIMENSION(*) :: xmlcontent
          INTEGER  (kind = C_INT) , VALUE        :: xmlcontent_size
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/mpi/mpi_interface.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/mpi/mpi_interface.cpp	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/mpi/mpi_interface.cpp	(revision 269)
@@ -253,5 +253,5 @@
    // ------------------------- Communication 'complexe' -----------------------
          
-   void CMPIManager::SendLinearBuffer(MPI_Comm _comm, int _dest_rank, CLinearBuffer & _lbuffer, MPI_Request & _request)
+   /*void CMPIManager::SendLinearBuffer(MPI_Comm _comm, int _dest_rank, CLinearBuffer & _lbuffer, MPI_Request & _request)
    {
       CMPIManager::Send(_comm, _dest_rank, _lbuffer, _lbuffer.getUsedSize(), _request);
@@ -279,5 +279,5 @@
       CMPIManager::Receive(comm, src_rank, buff.getData(data_begin));
       _cbuffer.updateNbRequests(data_begin, data_begin + data_size);
-   }
+   }*/
 
    // ---------------------- MÃ©moire (non fonctionnel ....) --------------------
Index: XMLIO_V2/dev/dev_rv/src4/xmlio/mpi/mpi_interface.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src4/xmlio/mpi/mpi_interface.hpp	(revision 267)
+++ XMLIO_V2/dev/dev_rv/src4/xmlio/mpi/mpi_interface.hpp	(revision 269)
@@ -100,8 +100,8 @@
          public : // Communication 'complexe'
          
-            static void SendLinearBuffer(MPI_Comm _comm, int _dest_rank, CLinearBuffer & _lbuffer, MPI_Request & _request);
+            /*static void SendLinearBuffer(MPI_Comm _comm, int _dest_rank, CLinearBuffer & _lbuffer, MPI_Request & _request);
             static void ReceiveLinearBuffer(MPI_Comm _comm, int _src_rank, CLinearBuffer & _lbuffer);
             static boost::shared_ptr<CLinearBuffer> ReceiveLinearBuffer(MPI_Comm _comm, int _src_rank);
-            static void ReceiveCircularBuffer(MPI_Comm _comm, int _src_rank, CCircularBuffer & _cbuffer);
+            static void ReceiveCircularBuffer(MPI_Comm _comm, int _src_rank, CCircularBuffer & _cbuffer);*/
 
          public : // MÃ©moire (non fonctionnel ....)
