Index: /XIOS/branchs/xios-1.0/src/test/parse_xml.f90
===================================================================
--- /XIOS/branchs/xios-1.0/src/test/parse_xml.f90	(revision 575)
+++ /XIOS/branchs/xios-1.0/src/test/parse_xml.f90	(revision 576)
@@ -11,7 +11,2 @@
 
 END PROGRAM parse_xml
-
-
-  
-
-  
Index: /XIOS/trunk/src/interface/c/icdata.cpp
===================================================================
--- /XIOS/trunk/src/interface/c/icdata.cpp	(revision 575)
+++ /XIOS/trunk/src/interface/c/icdata.cpp	(revision 576)
@@ -39,4 +39,12 @@
 
    // -------------------- Traitement des donnÃ©es ------------------------------
+
+   // This function is not exported to the public Fortran interface,
+   // it is only used from the parse_xml.exe standalone test tool.
+   void cxios_init(void)
+   {
+     CXios::initialize();
+   }
+
    void cxios_init_server(void)
    {
Index: /XIOS/trunk/src/interface/fortran/date_interface.F90
===================================================================
--- /XIOS/trunk/src/interface/fortran/date_interface.F90	(revision 575)
+++ /XIOS/trunk/src/interface/fortran/date_interface.F90	(revision 576)
@@ -3,8 +3,11 @@
 MODULE DATE_INTERFACE
    USE, INTRINSIC :: ISO_C_BINDING
+   USE IDURATION, only : txios(duration)
 
    TYPE, BIND(C) :: txios(date)
       INTEGER(kind = C_INT) :: year, month, day, hour, minute, second
    END TYPE txios(date)
+
+   PRIVATE :: txios(duration)
 
    INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
@@ -18,6 +21,6 @@
       TYPE(txios(date)) FUNCTION cxios_date_add_duration(date, dur) BIND(C)
          USE ISO_C_BINDING
-         USE IDURATION, only : txios(duration)
          IMPORT :: txios(date)
+         IMPORT :: txios(duration)
          TYPE(txios(date)), VALUE :: date
          TYPE(txios(duration)), VALUE :: dur
@@ -26,6 +29,6 @@
       TYPE(txios(date)) FUNCTION cxios_date_sub_duration(date, dur) BIND(C)
          USE ISO_C_BINDING
-         USE IDURATION, only : txios(duration)
          IMPORT :: txios(date)
+         IMPORT :: txios(duration)
          TYPE(txios(date)), VALUE :: date
          TYPE(txios(duration)), VALUE :: dur
@@ -34,6 +37,6 @@
       TYPE(txios(duration)) FUNCTION cxios_date_sub(date1, date2) BIND(C)
          USE ISO_C_BINDING
-         USE IDURATION, only : txios(duration)
          IMPORT :: txios(date)
+         IMPORT :: txios(duration)
          TYPE(txios(date)), VALUE :: date1, date2
       END FUNCTION cxios_date_sub
Index: /XIOS/trunk/src/interface/fortran/ixios.F90
===================================================================
--- /XIOS/trunk/src/interface/fortran/ixios.F90	(revision 575)
+++ /XIOS/trunk/src/interface/fortran/ixios.F90	(revision 576)
@@ -3,228 +3,70 @@
 MODULE XIOS
 
-USE icalendar, ONLY : xios(define_calendar), xios(set_timestep), xios(set_start_date), xios(set_time_origin), &
+USE icalendar, ONLY : xios(define_calendar), xios(set_timestep), xios(set_start_date), xios(set_time_origin),   &
                       xios(get_calendar_type), xios(get_timestep), xios(get_start_date), xios(get_time_origin), &
-                      xios(update_calendar), xios(get_current_date), &
+                      xios(update_calendar), xios(get_current_date),                                            &
                       xios(get_year_length_in_seconds), xios(get_day_length_in_seconds)
 
-USE icontext, ONLY : txios(context), xios(get_context_handle), xios(set_current_context),    &
-                     xios(is_valid_context)
+USE icontext, ONLY : txios(context), xios(set_current_context), xios(is_valid_context)
 
-USE icontext_attr, ONLY : xios(set_context_attr), xios(set_context_attr_hdl), &
-                          xios(get_context_attr), xios(get_context_attr_hdl), &
-                          xios(is_defined_context_attr), xios(is_defined_context_attr_hdl)
+USE icontext_attr, ONLY : xios(set_context_attr), xios(get_context_attr), xios(is_defined_context_attr)
 
-USE idata, ONLY : xios(initialize),xios(init_server), xios(finalize), xios(context_initialize),  &
-                  xios(context_is_initialized), xios(close_context_definition),xios(solve_inheritance),       &
-                  xios(context_finalize), xios(send_field_r8_1d), xios(send_field_r8_2d), &
-                  xios(send_field_r8_3d), xios(send_field_r4_1d), xios(send_field_r4_2d), &
-                  xios(send_field_r4_3d), xios(getVar_k8), xios(getVar_k4), xios(getVar_int), &
-                  xios(getVar_logic), xios(getVar_char), xios(setVar_k8), xios(setVar_k4), xios(setVar_int), &
-                  xios(setVar_logic), xios(setVar_char)
+USE idata, ONLY : xios(initialize), xios(init_server), xios(finalize), xios(context_initialize), xios(context_is_initialized), &
+                  xios(close_context_definition), xios(context_finalize), xios(solve_inheritance)
 
-USE idate, ONLY : txios(date), &
-                  xios(date_convert_to_seconds), &
-                  xios(date_add_duration), xios(date_sub_duration), xios(date_sub), &
-                  xios(date_eq), xios(date_neq), xios(date_lt), xios(date_le), xios(date_gt), xios(date_ge), &
+USE idomain, ONLY : txios(domain), txios(domaingroup), xios(is_valid_domain), xios(is_valid_domaingroup)
+
+USE idomain_attr, ONLY : xios(set_domain_attr), xios(get_domain_attr), xios(is_defined_domain_attr)
+
+USE idomaingroup_attr, ONLY : xios(set_domaingroup_attr), xios(get_domaingroup_attr), xios(is_defined_domaingroup_attr)
+
+USE iduration, ONLY: txios(duration),                                                                            &
+                     xios(year), xios(month), xios(day), xios(hour), xios(minute), xios(second), xios(timestep), &
+                     xios(duration_add), xios(duration_sub), xios(duration_mult), xios(duration_neg),            &
+                     xios(duration_eq), xios(duration_neq),                                                      &
+                     OPERATOR(+), OPERATOR(-), OPERATOR(*)
+
+USE idate, ONLY : txios(date),                                                                                &
+                  xios(date_convert_to_seconds),                                                              &
+                  xios(date_add_duration), xios(date_sub_duration), xios(date_sub),                           &
+                  xios(date_eq), xios(date_neq), xios(date_lt), xios(date_le), xios(date_gt), xios(date_ge),  &
                   xios(date_get_second_of_year), xios(date_get_day_of_year), xios(date_get_fraction_of_year), &
-                  xios(date_get_second_of_day), xios(date_get_fraction_of_day), &
-                  OPERATOR(+), OPERATOR(-), &
-                  OPERATOR(==), OPERATOR(/=), OPERATOR(<), OPERATOR(<=), OPERATOR(>), OPERATOR(>=), &
+                  xios(date_get_second_of_day), xios(date_get_fraction_of_day),                               &
+                  OPERATOR(+), OPERATOR(-),                                                                   &
+                  OPERATOR(==), OPERATOR(/=), OPERATOR(<), OPERATOR(<=), OPERATOR(>), OPERATOR(>=),           &
                   ASSIGNMENT(=)
 
-USE idomain, ONLY : txios(domain), txios(domaingroup), xios(get_domain_handle),  &
-                    xios(get_domaingroup_handle),xios(is_valid_domain),     &
-                    xios(is_valid_domaingroup)
+USE ifield, ONLY : txios(field), txios(fieldgroup), xios(is_valid_field), xios(is_valid_fieldgroup)
 
-USE idomain_attr, ONLY :  xios(set_domain_attr), xios(set_domain_attr_hdl),  &
-                          xios(get_domain_attr), xios(get_domain_attr_hdl), &
-                          xios(is_defined_domain_attr), xios(is_defined_domain_attr_hdl)
+USE ifield_attr, ONLY : xios(set_field_attr), xios(get_field_attr), xios(is_defined_field_attr)
 
-USE idomaingroup_attr, ONLY : xios(set_domaingroup_attr), xios(set_domaingroup_attr_hdl),  &
-                              xios(get_domaingroup_attr), xios(get_domaingroup_attr_hdl), &
-                              xios(is_defined_domaingroup_attr), xios(is_defined_domaingroup_attr_hdl)
+USE ifieldgroup_attr, ONLY : xios(set_fieldgroup_attr), xios(get_fieldgroup_attr), xios(is_defined_fieldgroup_attr)
 
-USE iduration, ONLY: txios(duration), &
-                     xios(year), xios(month), xios(day), xios(hour), xios(minute), xios(second), xios(timestep), &
-                     xios(duration_add), xios(duration_sub), xios(duration_mult), xios(duration_neg), &
-                     xios(duration_eq), xios(duration_neq), &
-                     OPERATOR(+), OPERATOR(-), OPERATOR(*)
+USE ivariable, ONLY : txios(variable), txios(variablegroup), xios(is_valid_variable), xios(is_valid_variablegroup)
 
-USE ifield, ONLY : txios(field), txios(fieldgroup), xios(get_field_handle),  &
-                   xios(get_fieldgroup_handle), xios(is_valid_field),        &
-                   xios(is_valid_fieldgroup),xios(field_is_active_id),xios(field_is_active_hdl)
+USE ivariable_attr, ONLY : xios(set_variable_attr), xios(get_variable_attr), xios(is_defined_variable_attr)
 
-USE ifield_attr, ONLY : xios(set_field_attr),xios(set_field_attr_hdl),    &
-                        xios(get_field_attr),xios(get_field_attr_hdl), &
-                        xios(is_defined_field_attr),xios(is_defined_field_attr_hdl)
+USE ivariablegroup_attr, ONLY : xios(set_variablegroup_attr), xios(get_variablegroup_attr), xios(is_defined_variablegroup_attr)
 
-USE ifieldgroup_attr, ONLY : xios(set_fieldgroup_attr), xios(set_fieldgroup_attr_hdl),  &
-                             xios(get_fieldgroup_attr), xios(get_fieldgroup_attr_hdl), &
-                             xios(is_defined_fieldgroup_attr), xios(is_defined_fieldgroup_attr_hdl)
+USE ifile, ONLY : txios(file), txios(filegroup), xios(is_valid_file), xios(is_valid_filegroup)
 
-USE ivariable, ONLY : txios(variable), txios(variablegroup), xios(get_variable_handle),  &
-                   xios(get_variablegroup_handle), xios(is_valid_variable),        &
-                   xios(is_valid_variablegroup)
+USE ifile_attr, ONLY : xios(set_file_attr), xios(get_file_attr), xios(is_defined_file_attr)
 
-USE ivariable_attr, ONLY : xios(set_variable_attr),xios(set_variable_attr_hdl),    &
-                        xios(get_variable_attr),xios(get_variable_attr_hdl), &
-                        xios(is_defined_variable_attr),xios(is_defined_variable_attr_hdl)
+USE ifilegroup_attr, ONLY : xios(set_filegroup_attr), xios(get_filegroup_attr), xios(is_defined_filegroup_attr)
 
-USE ivariablegroup_attr, ONLY : xios(set_variablegroup_attr), xios(set_variablegroup_attr_hdl),  &
-                             xios(get_variablegroup_attr), xios(get_variablegroup_attr_hdl), &
-                             xios(is_defined_variablegroup_attr), xios(is_defined_variablegroup_attr_hdl)
+USE igrid, ONLY : txios(grid), txios(gridgroup), xios(is_valid_grid), xios(is_valid_gridgroup)
 
-USE ifile, ONLY : txios(file), txios(filegroup), xios(get_file_handle),    &
-                  xios(get_filegroup_handle), xios(is_valid_file), xios(is_valid_filegroup)
+USE igrid_attr, ONLY : xios(set_grid_attr), xios(get_grid_attr), xios(is_defined_grid_attr)
 
-USE ifile_attr, ONLY : xios(set_file_attr),xios(set_file_attr_hdl), &
-                       xios(get_file_attr),xios(get_file_attr_hdl), &
-                       xios(is_defined_file_attr),xios(is_defined_file_attr_hdl)
+USE igridgroup_attr, ONLY : xios(set_gridgroup_attr), xios(get_gridgroup_attr), xios(is_defined_gridgroup_attr)
 
-USE ifilegroup_attr, ONLY : xios(set_filegroup_attr), xios(set_filegroup_attr_hdl), &
-                            xios(get_filegroup_attr), xios(get_filegroup_attr_hdl), &
-                            xios(is_defined_filegroup_attr), xios(is_defined_filegroup_attr_hdl)
+USE iaxis, ONLY : txios(axis), txios(axisgroup), xios(is_valid_axis), xios(is_valid_axisgroup)
 
-USE igrid, ONLY : txios(grid), txios(gridgroup), xios(get_grid_handle),     &
-                  xios(get_gridgroup_handle), xios(is_valid_grid), xios(is_valid_gridgroup)
+USE iaxis_attr, ONLY : xios(set_axis_attr), xios(get_axis_attr), xios(is_defined_axis_attr)
 
-USE igrid_attr, ONLY : xios(set_grid_attr_hdl), xios(set_grid_attr), &
-                       xios(get_grid_attr_hdl), xios(get_grid_attr), &
-                       xios(is_defined_grid_attr_hdl), xios(is_defined_grid_attr)
+USE iaxisgroup_attr, ONLY : xios(set_axisgroup_attr), xios(get_axisgroup_attr), xios(is_defined_axisgroup_attr)
 
-USE igridgroup_attr, ONLY : xios(set_gridgroup_attr), xios(set_gridgroup_attr_hdl),  &
-                            xios(get_gridgroup_attr), xios(get_gridgroup_attr_hdl), &
-                            xios(is_defined_gridgroup_attr), xios(is_defined_gridgroup_attr_hdl)
-
-USE iaxis, ONLY : txios(axis), txios(axisgroup), xios(get_axis_handle),     &
-                  xios(get_axisgroup_handle), xios(is_valid_axis), xios(is_valid_axisgroup)
-
-USE iaxis_attr, ONLY :  xios(set_axis_attr), xios(set_axis_attr_hdl), &
-                        xios(get_axis_attr), xios(get_axis_attr_hdl), &
-                        xios(is_defined_axis_attr), xios(is_defined_axis_attr_hdl)
-
-USE iaxisgroup_attr, ONLY : xios(set_axisgroup_attr), xios(set_axisgroup_attr_hdl), &
-                            xios(get_axisgroup_attr), xios(get_axisgroup_attr_hdl), &
-                            xios(is_defined_axisgroup_attr), xios(is_defined_axisgroup_attr_hdl)
-
-USE ixml_tree, ONLY : xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),          &
-                     xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield),                  &
-                     xios(add_axisgroup), xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup),         &
-                     xios(add_domaingroup), xios(add_fieldgrouptofile), xios(add_variablegrouptofile),            &
-                     xios(add_variablegrouptofield)
-
-PRIVATE
-
-
-INTERFACE xios(set_attr)
-  MODULE PROCEDURE xios(set_domaingroup_attr_hdl), xios(set_domain_attr_hdl), xios(set_fieldgroup_attr_hdl), &
-                   xios(set_field_attr_hdl),xios(set_variable_attr_hdl), xios(set_variablegroup_attr_hdl),   &
-                   xios(set_file_attr_hdl), xios(set_filegroup_attr_hdl),                                    &
-                   xios(set_grid_attr_hdl), xios(set_gridgroup_attr_hdl), xios(set_axis_attr_hdl) ,          &
-                   xios(set_axisgroup_attr_hdl), xios(set_context_attr_hdl)
-END INTERFACE xios(set_attr)
-
-INTERFACE xios(get_attr)
-  MODULE PROCEDURE xios(get_domaingroup_attr_hdl), xios(get_domain_attr_hdl), xios(get_fieldgroup_attr_hdl), &
-                   xios(get_field_attr_hdl), xios(get_variable_attr_hdl), xios(get_variablegroup_attr_hdl),  &
-                   xios(get_file_attr_hdl), xios(get_filegroup_attr_hdl),                                    &
-                   xios(get_grid_attr_hdl), xios(get_gridgroup_attr_hdl), xios(get_axis_attr_hdl) ,          &
-                   xios(get_axisgroup_attr_hdl), xios(get_context_attr_hdl)
-END INTERFACE xios(get_attr)
-
-INTERFACE xios(is_defined_attr)
-  MODULE PROCEDURE xios(is_defined_domaingroup_attr_hdl), xios(is_defined_domain_attr_hdl), xios(is_defined_fieldgroup_attr_hdl), &
-                   xios(is_defined_field_attr_hdl), xios(is_defined_variable_attr_hdl), xios(is_defined_variablegroup_attr_hdl),  &
-                   xios(is_defined_file_attr_hdl), xios(is_defined_filegroup_attr_hdl),                                           &
-                   xios(is_defined_grid_attr_hdl), xios(is_defined_gridgroup_attr_hdl), xios(is_defined_axis_attr_hdl) ,          &
-                   xios(is_defined_axisgroup_attr_hdl), xios(is_defined_context_attr_hdl)
-END INTERFACE xios(is_defined_attr)
-
-INTERFACE xios(get_handle)
-  MODULE PROCEDURE  xios(get_context_handle), xios(get_domain_handle), xios(get_domaingroup_handle),        &
-                    xios(get_file_handle), xios(get_filegroup_handle), xios(get_grid_handle),               &
-                    xios(get_gridgroup_handle), xios(get_axis_handle), xios(get_axisgroup_handle),          &
-                    xios(get_field_handle), xios(get_fieldgroup_handle),xios(get_variable_handle),          &
-                    xios(get_variablegroup_handle)
-END INTERFACE xios(get_handle)
-
-INTERFACE xios(add_child)
-  MODULE PROCEDURE xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),                &
-                   xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield), xios(add_axisgroup),  &
-                   xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup), xios(add_domaingroup),            &
-                   xios(add_fieldgrouptofile), xios(add_variablegrouptofile),xios(add_variablegrouptofield)
-END INTERFACE xios(add_child)
-
-
-INTERFACE xios(send_field)
-  MODULE PROCEDURE  xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d),              &
-                    xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d)
-END INTERFACE xios(send_field)
-
-INTERFACE xios(field_is_active)
-  MODULE PROCEDURE xios(field_is_active_id),xios(field_is_active_hdl)
-END INTERFACE
-
-INTERFACE xios(getVar)
-  MODULE PROCEDURE xios(getVar_k8), xios(getVar_k4), xios(getVar_int), xios(getVar_logic), xios(getVar_char)
-END INTERFACE xios(getVar)
-
-INTERFACE xios(setVar)
-  MODULE PROCEDURE xios(setVar_k8), xios(setVar_k4), xios(setVar_int), xios(setVar_logic), xios(setVar_char)
-END INTERFACE xios(setVar)
-
- PUBLIC :: txios(domain), txios(domaingroup),txios(field), txios(fieldgroup),txios(file), txios(filegroup), &
-          txios(grid), txios(gridgroup), txios(axis), txios(axisgroup),txios(context), txios(date),         &
-          txios(duration), txios(variable)
-
- PUBLIC :: xios(set_attr), xios(set_domain_attr), xios(set_domaingroup_attr), xios(set_fieldgroup_attr), &
-          xios(set_field_attr), xios(set_file_attr), xios(set_filegroup_attr),          &
-          xios(set_grid_attr), xios(set_gridgroup_attr), xios(set_axis_attr) ,          &
-          xios(set_axisgroup_attr), xios(set_context_attr)
-
- PUBLIC :: xios(get_attr), xios(get_domain_attr), xios(get_domaingroup_attr), xios(get_fieldgroup_attr), &
-          xios(get_field_attr), xios(get_file_attr), xios(get_filegroup_attr),          &
-          xios(get_grid_attr), xios(get_gridgroup_attr), xios(get_axis_attr) ,          &
-          xios(get_axisgroup_attr), xios(get_context_attr)
-
-PUBLIC :: xios(is_defined_attr), xios(is_defined_domain_attr), xios(is_defined_domaingroup_attr), xios(is_defined_fieldgroup_attr), &
-          xios(is_defined_field_attr), xios(is_defined_file_attr), xios(is_defined_filegroup_attr),          &
-          xios(is_defined_grid_attr), xios(is_defined_gridgroup_attr), xios(is_defined_axis_attr) ,          &
-          xios(is_defined_axisgroup_attr), xios(is_defined_context_attr)
-
- PUBLIC :: xios(get_handle)
- PUBLIC :: xios(add_child)
-
- PUBLIC :: xios(is_valid_context),xios(is_valid_domain), xios(is_valid_domaingroup),xios(is_valid_field),        &
-           xios(is_valid_fieldgroup), xios(is_valid_file), xios(is_valid_filegroup), xios(is_valid_grid),         &
-           xios(is_valid_gridgroup), xios(is_valid_axis), xios(is_valid_axisgroup), xios(is_valid_variable),      &
-           xios(is_valid_variablegroup)
-
- PUBLIC :: xios(set_current_context)
- PUBLIC :: xios(initialize), xios(init_server), xios(finalize), xios(context_initialize),xios(context_is_initialized), &
-           xios(solve_inheritance), xios(close_context_definition), xios(context_finalize), xios(send_field),          &
-           xios(field_is_active)
-
- PUBLIC :: xios(define_calendar), xios(set_timestep), xios(set_start_date), xios(set_time_origin), &
-           xios(get_calendar_type), xios(get_timestep), xios(get_start_date), xios(get_time_origin), &
-           xios(update_calendar), xios(get_current_date), &
-           xios(get_year_length_in_seconds), xios(get_day_length_in_seconds)
-
- PUBLIC :: xios(year), xios(month), xios(day), xios(hour), xios(minute), xios(second), xios(timestep), &
-           xios(duration_add), xios(duration_sub), xios(duration_mult), xios(duration_neg), &
-           xios(duration_eq), xios(duration_neq)
-
- PUBLIC :: xios(date_convert_to_seconds), &
-           xios(date_add_duration), xios(date_sub_duration), xios(date_sub), &
-           xios(date_eq), xios(date_neq), xios(date_lt), xios(date_le), xios(date_gt), xios(date_ge), &
-           xios(date_get_second_of_year), xios(date_get_day_of_year), xios(date_get_fraction_of_year), &
-           xios(date_get_second_of_day), xios(date_get_fraction_of_day)
-
- PUBLIC :: OPERATOR(+), OPERATOR(-), OPERATOR(*), &
-           OPERATOR(==), OPERATOR(/=), OPERATOR(<), OPERATOR(<=), OPERATOR(>), OPERATOR(>=), &
-           ASSIGNMENT(=)
-
- PUBLIC :: xios(getVar)
- PUBLIC :: xios(setVar)
+USE XIOS_INTERFACES, ONLY : xios(set_attr), xios(get_attr), xios(is_defined_attr), xios(get_handle), &
+                            xios(add_child), xios(send_field), xios(field_is_active), xios(getVar), xios(setVar)
 
 END MODULE XIOS
Index: /XIOS/trunk/src/interface/fortran/ixios_interfaces.F90
===================================================================
--- /XIOS/trunk/src/interface/fortran/ixios_interfaces.F90	(revision 576)
+++ /XIOS/trunk/src/interface/fortran/ixios_interfaces.F90	(revision 576)
@@ -0,0 +1,118 @@
+#include "xios_fortran_prefix.hpp"
+
+MODULE XIOS_INTERFACES
+
+USE icontext, ONLY : xios(get_context_handle)
+
+USE icontext_attr, ONLY : xios(set_context_attr_hdl), xios(get_context_attr_hdl), xios(is_defined_context_attr_hdl)
+
+USE idata, ONLY : xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d),                    &
+                  xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d),                    &
+                  xios(getVar_k8), xios(getVar_k4), xios(getVar_int), xios(getVar_logic), xios(getVar_char), &
+                  xios(setVar_k8), xios(setVar_k4), xios(setVar_int), xios(setVar_logic), xios(setVar_char)
+
+USE idomain, ONLY : xios(get_domain_handle), xios(get_domaingroup_handle)
+
+USE idomain_attr, ONLY : xios(set_domain_attr_hdl), xios(get_domain_attr_hdl), xios(is_defined_domain_attr_hdl)
+
+USE idomaingroup_attr, ONLY : xios(set_domaingroup_attr_hdl), xios(get_domaingroup_attr_hdl), xios(is_defined_domaingroup_attr_hdl)
+
+USE ifield, ONLY : xios(get_field_handle), xios(get_fieldgroup_handle), xios(field_is_active_id), xios(field_is_active_hdl)
+
+USE ifield_attr, ONLY : xios(set_field_attr_hdl), xios(get_field_attr_hdl), xios(is_defined_field_attr_hdl)
+
+USE ifieldgroup_attr, ONLY : xios(set_fieldgroup_attr_hdl), xios(get_fieldgroup_attr_hdl), xios(is_defined_fieldgroup_attr_hdl)
+
+USE ivariable, ONLY : xios(get_variable_handle), xios(get_variablegroup_handle)
+
+USE ivariable_attr, ONLY : xios(set_variable_attr_hdl), xios(get_variable_attr_hdl), xios(is_defined_variable_attr_hdl)
+
+USE ivariablegroup_attr, ONLY : xios(set_variablegroup_attr_hdl), xios(get_variablegroup_attr_hdl), xios(is_defined_variablegroup_attr_hdl)
+
+USE ifile, ONLY : xios(get_file_handle), xios(get_filegroup_handle)
+
+USE ifile_attr, ONLY : xios(set_file_attr_hdl), xios(get_file_attr_hdl), xios(is_defined_file_attr_hdl)
+
+USE ifilegroup_attr, ONLY : xios(set_filegroup_attr_hdl), xios(get_filegroup_attr_hdl), xios(is_defined_filegroup_attr_hdl)
+
+USE igrid, ONLY : xios(get_grid_handle), xios(get_gridgroup_handle)
+
+USE igrid_attr, ONLY : xios(set_grid_attr_hdl), xios(get_grid_attr_hdl), xios(is_defined_grid_attr_hdl)
+
+USE igridgroup_attr, ONLY : xios(set_gridgroup_attr_hdl), xios(get_gridgroup_attr_hdl), xios(is_defined_gridgroup_attr_hdl)
+
+USE iaxis, ONLY : xios(get_axis_handle), xios(get_axisgroup_handle)
+
+USE iaxis_attr, ONLY : xios(set_axis_attr_hdl), xios(get_axis_attr_hdl), xios(is_defined_axis_attr_hdl)
+
+USE iaxisgroup_attr, ONLY : xios(set_axisgroup_attr_hdl), xios(get_axisgroup_attr_hdl), xios(is_defined_axisgroup_attr_hdl)
+
+USE ixml_tree, ONLY : xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),   &
+                      xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield),          &
+                      xios(add_axisgroup), xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup), &
+                      xios(add_domaingroup), xios(add_fieldgrouptofile), xios(add_variablegrouptofile),    &
+                      xios(add_variablegrouptofield)
+
+PRIVATE
+
+INTERFACE xios(set_attr)
+  MODULE PROCEDURE xios(set_domaingroup_attr_hdl), xios(set_domain_attr_hdl), xios(set_fieldgroup_attr_hdl), &
+                   xios(set_field_attr_hdl),xios(set_variable_attr_hdl), xios(set_variablegroup_attr_hdl),   &
+                   xios(set_file_attr_hdl), xios(set_filegroup_attr_hdl),                                    &
+                   xios(set_grid_attr_hdl), xios(set_gridgroup_attr_hdl), xios(set_axis_attr_hdl) ,          &
+                   xios(set_axisgroup_attr_hdl), xios(set_context_attr_hdl)
+END INTERFACE xios(set_attr)
+
+INTERFACE xios(get_attr)
+  MODULE PROCEDURE xios(get_domaingroup_attr_hdl), xios(get_domain_attr_hdl), xios(get_fieldgroup_attr_hdl), &
+                   xios(get_field_attr_hdl), xios(get_variable_attr_hdl), xios(get_variablegroup_attr_hdl),  &
+                   xios(get_file_attr_hdl), xios(get_filegroup_attr_hdl),                                    &
+                   xios(get_grid_attr_hdl), xios(get_gridgroup_attr_hdl), xios(get_axis_attr_hdl) ,          &
+                   xios(get_axisgroup_attr_hdl), xios(get_context_attr_hdl)
+END INTERFACE xios(get_attr)
+
+INTERFACE xios(is_defined_attr)
+  MODULE PROCEDURE xios(is_defined_domaingroup_attr_hdl), xios(is_defined_domain_attr_hdl), xios(is_defined_fieldgroup_attr_hdl), &
+                   xios(is_defined_field_attr_hdl), xios(is_defined_variable_attr_hdl), xios(is_defined_variablegroup_attr_hdl),  &
+                   xios(is_defined_file_attr_hdl), xios(is_defined_filegroup_attr_hdl),                                           &
+                   xios(is_defined_grid_attr_hdl), xios(is_defined_gridgroup_attr_hdl), xios(is_defined_axis_attr_hdl) ,          &
+                   xios(is_defined_axisgroup_attr_hdl), xios(is_defined_context_attr_hdl)
+END INTERFACE xios(is_defined_attr)
+
+INTERFACE xios(get_handle)
+  MODULE PROCEDURE xios(get_context_handle), xios(get_domain_handle), xios(get_domaingroup_handle), &
+                   xios(get_file_handle), xios(get_filegroup_handle), xios(get_grid_handle),        &
+                   xios(get_gridgroup_handle), xios(get_axis_handle), xios(get_axisgroup_handle),   &
+                   xios(get_field_handle), xios(get_fieldgroup_handle),xios(get_variable_handle),   &
+                   xios(get_variablegroup_handle)
+END INTERFACE xios(get_handle)
+
+INTERFACE xios(add_child)
+  MODULE PROCEDURE xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),                &
+                   xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield), xios(add_axisgroup),  &
+                   xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup), xios(add_domaingroup),            &
+                   xios(add_fieldgrouptofile), xios(add_variablegrouptofile),xios(add_variablegrouptofield)
+END INTERFACE xios(add_child)
+
+
+INTERFACE xios(send_field)
+  MODULE PROCEDURE xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d), &
+                   xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d)
+END INTERFACE xios(send_field)
+
+INTERFACE xios(field_is_active)
+  MODULE PROCEDURE xios(field_is_active_id),xios(field_is_active_hdl)
+END INTERFACE xios(field_is_active)
+
+INTERFACE xios(getVar)
+  MODULE PROCEDURE xios(getVar_k8), xios(getVar_k4), xios(getVar_int), xios(getVar_logic), xios(getVar_char)
+END INTERFACE xios(getVar)
+
+INTERFACE xios(setVar)
+  MODULE PROCEDURE xios(setVar_k8), xios(setVar_k4), xios(setVar_int), xios(setVar_logic), xios(setVar_char)
+END INTERFACE xios(setVar)
+
+PUBLIC :: xios(set_attr), xios(get_attr), xios(is_defined_attr), xios(get_handle), &
+          xios(add_child), xios(send_field), xios(field_is_active), xios(getVar), xios(setVar)
+
+END MODULE XIOS_INTERFACES
Index: OS/trunk/src/test/parse_xml.cpp
===================================================================
--- /XIOS/trunk/src/test/parse_xml.cpp	(revision 575)
+++ 	(revision )
@@ -1,10 +1,0 @@
-#include "cxios.hpp"
-
-
-using namespace std ;
-using namespace xios ;
-
-int main (int argc, char ** argv, char ** UNUSED (env))
-{
-  CXios::initialize() ;
-}
Index: /XIOS/trunk/src/test/parse_xml.f90
===================================================================
--- /XIOS/trunk/src/test/parse_xml.f90	(revision 576)
+++ /XIOS/trunk/src/test/parse_xml.f90	(revision 576)
@@ -0,0 +1,12 @@
+PROGRAM parse_xml
+  USE, INTRINSIC :: ISO_C_BINDING
+  IMPLICIT NONE
+
+  INTERFACE
+    SUBROUTINE xios_init() BIND(C, name='cxios_init')
+    END SUBROUTINE
+  END INTERFACE
+
+  CALL xios_init() ! This will parse the XML file and report any parsing error
+
+END PROGRAM parse_xml
