Index: XIOS/trunk/src/interface/fortran_attr/axis_interface_attr.f90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/axis_interface_attr.f90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/axis_interface_attr.f90	(revision 326)
@@ -0,0 +1,101 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+
+MODULE axis_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  
+  INTERFACE ! Do not call directly / interface FORTRAN 2003 <-> C99
+    
+    
+    SUBROUTINE cxios_set_axis_long_name(axis_hdl, long_name, long_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: long_name
+      INTEGER  (kind = C_INT)     , VALUE        :: long_name_size
+    END SUBROUTINE cxios_set_axis_long_name
+    
+    SUBROUTINE cxios_get_axis_long_name(axis_hdl, long_name, long_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: long_name
+      INTEGER  (kind = C_INT)     , VALUE        :: long_name_size
+    END SUBROUTINE cxios_get_axis_long_name
+    
+    
+    SUBROUTINE cxios_set_axis_name(axis_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_set_axis_name
+    
+    SUBROUTINE cxios_get_axis_name(axis_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_get_axis_name
+    
+    
+    SUBROUTINE cxios_set_axis_size(axis_hdl, size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: size
+    END SUBROUTINE cxios_set_axis_size
+    
+    SUBROUTINE cxios_get_axis_size(axis_hdl, size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
+      INTEGER (KIND=C_INT)             :: size
+    END SUBROUTINE cxios_get_axis_size
+    
+    
+    SUBROUTINE cxios_set_axis_standard_name(axis_hdl, standard_name, standard_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
+      INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
+    END SUBROUTINE cxios_set_axis_standard_name
+    
+    SUBROUTINE cxios_get_axis_standard_name(axis_hdl, standard_name, standard_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
+      INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
+    END SUBROUTINE cxios_get_axis_standard_name
+    
+    
+    SUBROUTINE cxios_set_axis_unit(axis_hdl, unit, unit_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: unit
+      INTEGER  (kind = C_INT)     , VALUE        :: unit_size
+    END SUBROUTINE cxios_set_axis_unit
+    
+    SUBROUTINE cxios_get_axis_unit(axis_hdl, unit, unit_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: unit
+      INTEGER  (kind = C_INT)     , VALUE        :: unit_size
+    END SUBROUTINE cxios_get_axis_unit
+    
+    
+    SUBROUTINE cxios_set_axis_value(axis_hdl, value, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: axis_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: value
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_set_axis_value
+    
+    SUBROUTINE cxios_get_axis_value(axis_hdl, value, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: axis_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: value
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_get_axis_value
+    
+    
+    END INTERFACE
+  
+END MODULE axis_interface_attr
Index: XIOS/trunk/src/interface/fortran_attr/axisgroup_interface_attr.f90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/axisgroup_interface_attr.f90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/axisgroup_interface_attr.f90	(revision 326)
@@ -0,0 +1,116 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+
+MODULE axisgroup_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  
+  INTERFACE ! Do not call directly / interface FORTRAN 2003 <-> C99
+    
+    
+    SUBROUTINE cxios_set_axisgroup_group_ref(axisgroup_hdl, group_ref, group_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: group_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: group_ref_size
+    END SUBROUTINE cxios_set_axisgroup_group_ref
+    
+    SUBROUTINE cxios_get_axisgroup_group_ref(axisgroup_hdl, group_ref, group_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: group_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: group_ref_size
+    END SUBROUTINE cxios_get_axisgroup_group_ref
+    
+    
+    SUBROUTINE cxios_set_axisgroup_long_name(axisgroup_hdl, long_name, long_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: long_name
+      INTEGER  (kind = C_INT)     , VALUE        :: long_name_size
+    END SUBROUTINE cxios_set_axisgroup_long_name
+    
+    SUBROUTINE cxios_get_axisgroup_long_name(axisgroup_hdl, long_name, long_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: long_name
+      INTEGER  (kind = C_INT)     , VALUE        :: long_name_size
+    END SUBROUTINE cxios_get_axisgroup_long_name
+    
+    
+    SUBROUTINE cxios_set_axisgroup_name(axisgroup_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_set_axisgroup_name
+    
+    SUBROUTINE cxios_get_axisgroup_name(axisgroup_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_get_axisgroup_name
+    
+    
+    SUBROUTINE cxios_set_axisgroup_size(axisgroup_hdl, size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: size
+    END SUBROUTINE cxios_set_axisgroup_size
+    
+    SUBROUTINE cxios_get_axisgroup_size(axisgroup_hdl, size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl
+      INTEGER (KIND=C_INT)             :: size
+    END SUBROUTINE cxios_get_axisgroup_size
+    
+    
+    SUBROUTINE cxios_set_axisgroup_standard_name(axisgroup_hdl, standard_name, standard_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
+      INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
+    END SUBROUTINE cxios_set_axisgroup_standard_name
+    
+    SUBROUTINE cxios_get_axisgroup_standard_name(axisgroup_hdl, standard_name, standard_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
+      INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
+    END SUBROUTINE cxios_get_axisgroup_standard_name
+    
+    
+    SUBROUTINE cxios_set_axisgroup_unit(axisgroup_hdl, unit, unit_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: unit
+      INTEGER  (kind = C_INT)     , VALUE        :: unit_size
+    END SUBROUTINE cxios_set_axisgroup_unit
+    
+    SUBROUTINE cxios_get_axisgroup_unit(axisgroup_hdl, unit, unit_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: unit
+      INTEGER  (kind = C_INT)     , VALUE        :: unit_size
+    END SUBROUTINE cxios_get_axisgroup_unit
+    
+    
+    SUBROUTINE cxios_set_axisgroup_value(axisgroup_hdl, value, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: axisgroup_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: value
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_set_axisgroup_value
+    
+    SUBROUTINE cxios_get_axisgroup_value(axisgroup_hdl, value, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: axisgroup_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: value
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_get_axisgroup_value
+    
+    
+    END INTERFACE
+  
+END MODULE axisgroup_interface_attr
Index: XIOS/trunk/src/interface/fortran_attr/context_interface_attr.f90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/context_interface_attr.f90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/context_interface_attr.f90	(revision 326)
@@ -0,0 +1,73 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+
+MODULE context_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  
+  INTERFACE ! Do not call directly / interface FORTRAN 2003 <-> C99
+    
+    
+    SUBROUTINE cxios_set_context_calendar_type(context_hdl, calendar_type, calendar_type_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: calendar_type
+      INTEGER  (kind = C_INT)     , VALUE        :: calendar_type_size
+    END SUBROUTINE cxios_set_context_calendar_type
+    
+    SUBROUTINE cxios_get_context_calendar_type(context_hdl, calendar_type, calendar_type_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: calendar_type
+      INTEGER  (kind = C_INT)     , VALUE        :: calendar_type_size
+    END SUBROUTINE cxios_get_context_calendar_type
+    
+    
+    SUBROUTINE cxios_set_context_output_dir(context_hdl, output_dir, output_dir_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: output_dir
+      INTEGER  (kind = C_INT)     , VALUE        :: output_dir_size
+    END SUBROUTINE cxios_set_context_output_dir
+    
+    SUBROUTINE cxios_get_context_output_dir(context_hdl, output_dir, output_dir_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: output_dir
+      INTEGER  (kind = C_INT)     , VALUE        :: output_dir_size
+    END SUBROUTINE cxios_get_context_output_dir
+    
+    
+    SUBROUTINE cxios_set_context_start_date(context_hdl, start_date, start_date_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: start_date
+      INTEGER  (kind = C_INT)     , VALUE        :: start_date_size
+    END SUBROUTINE cxios_set_context_start_date
+    
+    SUBROUTINE cxios_get_context_start_date(context_hdl, start_date, start_date_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: start_date
+      INTEGER  (kind = C_INT)     , VALUE        :: start_date_size
+    END SUBROUTINE cxios_get_context_start_date
+    
+    
+    SUBROUTINE cxios_set_context_timestep(context_hdl, timestep, timestep_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: timestep
+      INTEGER  (kind = C_INT)     , VALUE        :: timestep_size
+    END SUBROUTINE cxios_set_context_timestep
+    
+    SUBROUTINE cxios_get_context_timestep(context_hdl, timestep, timestep_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: timestep
+      INTEGER  (kind = C_INT)     , VALUE        :: timestep_size
+    END SUBROUTINE cxios_get_context_timestep
+    
+    
+    END INTERFACE
+  
+END MODULE context_interface_attr
Index: XIOS/trunk/src/interface/fortran_attr/domain_interface_attr.f90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/domain_interface_attr.f90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/domain_interface_attr.f90	(revision 326)
@@ -0,0 +1,436 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+
+MODULE domain_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  
+  INTERFACE ! Do not call directly / interface FORTRAN 2003 <-> C99
+    
+    
+    SUBROUTINE cxios_set_domain_data_dim(domain_hdl, data_dim) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: data_dim
+    END SUBROUTINE cxios_set_domain_data_dim
+    
+    SUBROUTINE cxios_get_domain_data_dim(domain_hdl, data_dim) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: data_dim
+    END SUBROUTINE cxios_get_domain_data_dim
+    
+    
+    SUBROUTINE cxios_set_domain_data_i_index(domain_hdl, data_i_index, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: data_i_index
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_set_domain_data_i_index
+    
+    SUBROUTINE cxios_get_domain_data_i_index(domain_hdl, data_i_index, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: data_i_index
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_get_domain_data_i_index
+    
+    
+    SUBROUTINE cxios_set_domain_data_ibegin(domain_hdl, data_ibegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: data_ibegin
+    END SUBROUTINE cxios_set_domain_data_ibegin
+    
+    SUBROUTINE cxios_get_domain_data_ibegin(domain_hdl, data_ibegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: data_ibegin
+    END SUBROUTINE cxios_get_domain_data_ibegin
+    
+    
+    SUBROUTINE cxios_set_domain_data_j_index(domain_hdl, data_j_index, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: data_j_index
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_set_domain_data_j_index
+    
+    SUBROUTINE cxios_get_domain_data_j_index(domain_hdl, data_j_index, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: data_j_index
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_get_domain_data_j_index
+    
+    
+    SUBROUTINE cxios_set_domain_data_jbegin(domain_hdl, data_jbegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: data_jbegin
+    END SUBROUTINE cxios_set_domain_data_jbegin
+    
+    SUBROUTINE cxios_get_domain_data_jbegin(domain_hdl, data_jbegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: data_jbegin
+    END SUBROUTINE cxios_get_domain_data_jbegin
+    
+    
+    SUBROUTINE cxios_set_domain_data_n_index(domain_hdl, data_n_index) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: data_n_index
+    END SUBROUTINE cxios_set_domain_data_n_index
+    
+    SUBROUTINE cxios_get_domain_data_n_index(domain_hdl, data_n_index) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: data_n_index
+    END SUBROUTINE cxios_get_domain_data_n_index
+    
+    
+    SUBROUTINE cxios_set_domain_data_ni(domain_hdl, data_ni) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: data_ni
+    END SUBROUTINE cxios_set_domain_data_ni
+    
+    SUBROUTINE cxios_get_domain_data_ni(domain_hdl, data_ni) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: data_ni
+    END SUBROUTINE cxios_get_domain_data_ni
+    
+    
+    SUBROUTINE cxios_set_domain_data_nj(domain_hdl, data_nj) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: data_nj
+    END SUBROUTINE cxios_set_domain_data_nj
+    
+    SUBROUTINE cxios_get_domain_data_nj(domain_hdl, data_nj) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: data_nj
+    END SUBROUTINE cxios_get_domain_data_nj
+    
+    
+    SUBROUTINE cxios_set_domain_domain_group_ref(domain_hdl, domain_group_ref, domain_group_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_group_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: domain_group_ref_size
+    END SUBROUTINE cxios_set_domain_domain_group_ref
+    
+    SUBROUTINE cxios_get_domain_domain_group_ref(domain_hdl, domain_group_ref, domain_group_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_group_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: domain_group_ref_size
+    END SUBROUTINE cxios_get_domain_domain_group_ref
+    
+    
+    SUBROUTINE cxios_set_domain_ibegin(domain_hdl, ibegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: ibegin
+    END SUBROUTINE cxios_set_domain_ibegin
+    
+    SUBROUTINE cxios_get_domain_ibegin(domain_hdl, ibegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: ibegin
+    END SUBROUTINE cxios_get_domain_ibegin
+    
+    
+    SUBROUTINE cxios_set_domain_iend(domain_hdl, iend) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: iend
+    END SUBROUTINE cxios_set_domain_iend
+    
+    SUBROUTINE cxios_get_domain_iend(domain_hdl, iend) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: iend
+    END SUBROUTINE cxios_get_domain_iend
+    
+    
+    SUBROUTINE cxios_set_domain_jbegin(domain_hdl, jbegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: jbegin
+    END SUBROUTINE cxios_set_domain_jbegin
+    
+    SUBROUTINE cxios_get_domain_jbegin(domain_hdl, jbegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: jbegin
+    END SUBROUTINE cxios_get_domain_jbegin
+    
+    
+    SUBROUTINE cxios_set_domain_jend(domain_hdl, jend) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: jend
+    END SUBROUTINE cxios_set_domain_jend
+    
+    SUBROUTINE cxios_get_domain_jend(domain_hdl, jend) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: jend
+    END SUBROUTINE cxios_get_domain_jend
+    
+    
+    SUBROUTINE cxios_set_domain_latvalue(domain_hdl, latvalue, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: latvalue
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_set_domain_latvalue
+    
+    SUBROUTINE cxios_get_domain_latvalue(domain_hdl, latvalue, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: latvalue
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_get_domain_latvalue
+    
+    
+    SUBROUTINE cxios_set_domain_long_name(domain_hdl, long_name, long_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: long_name
+      INTEGER  (kind = C_INT)     , VALUE        :: long_name_size
+    END SUBROUTINE cxios_set_domain_long_name
+    
+    SUBROUTINE cxios_get_domain_long_name(domain_hdl, long_name, long_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: long_name
+      INTEGER  (kind = C_INT)     , VALUE        :: long_name_size
+    END SUBROUTINE cxios_get_domain_long_name
+    
+    
+    SUBROUTINE cxios_set_domain_lonvalue(domain_hdl, lonvalue, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: lonvalue
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_set_domain_lonvalue
+    
+    SUBROUTINE cxios_get_domain_lonvalue(domain_hdl, lonvalue, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: lonvalue
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_get_domain_lonvalue
+    
+    
+    SUBROUTINE cxios_set_domain_mask(domain_hdl, mask, extent1, extent2) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask
+      INTEGER (kind = C_INT), VALUE  :: extent1
+      INTEGER (kind = C_INT), VALUE  :: extent2
+    END SUBROUTINE cxios_set_domain_mask
+    
+    SUBROUTINE cxios_get_domain_mask(domain_hdl, mask, extent1, extent2) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask
+      INTEGER (kind = C_INT), VALUE  :: extent1
+      INTEGER (kind = C_INT), VALUE  :: extent2
+    END SUBROUTINE cxios_get_domain_mask
+    
+    
+    SUBROUTINE cxios_set_domain_name(domain_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_set_domain_name
+    
+    SUBROUTINE cxios_get_domain_name(domain_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_get_domain_name
+    
+    
+    SUBROUTINE cxios_set_domain_ni(domain_hdl, ni) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: ni
+    END SUBROUTINE cxios_set_domain_ni
+    
+    SUBROUTINE cxios_get_domain_ni(domain_hdl, ni) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: ni
+    END SUBROUTINE cxios_get_domain_ni
+    
+    
+    SUBROUTINE cxios_set_domain_ni_glo(domain_hdl, ni_glo) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: ni_glo
+    END SUBROUTINE cxios_set_domain_ni_glo
+    
+    SUBROUTINE cxios_get_domain_ni_glo(domain_hdl, ni_glo) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: ni_glo
+    END SUBROUTINE cxios_get_domain_ni_glo
+    
+    
+    SUBROUTINE cxios_set_domain_nj(domain_hdl, nj) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: nj
+    END SUBROUTINE cxios_set_domain_nj
+    
+    SUBROUTINE cxios_get_domain_nj(domain_hdl, nj) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: nj
+    END SUBROUTINE cxios_get_domain_nj
+    
+    
+    SUBROUTINE cxios_set_domain_nj_glo(domain_hdl, nj_glo) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: nj_glo
+    END SUBROUTINE cxios_set_domain_nj_glo
+    
+    SUBROUTINE cxios_get_domain_nj_glo(domain_hdl, nj_glo) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: nj_glo
+    END SUBROUTINE cxios_get_domain_nj_glo
+    
+    
+    SUBROUTINE cxios_set_domain_standard_name(domain_hdl, standard_name, standard_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
+      INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
+    END SUBROUTINE cxios_set_domain_standard_name
+    
+    SUBROUTINE cxios_get_domain_standard_name(domain_hdl, standard_name, standard_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
+      INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
+    END SUBROUTINE cxios_get_domain_standard_name
+    
+    
+    SUBROUTINE cxios_set_domain_zoom_ibegin(domain_hdl, zoom_ibegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_ibegin
+    END SUBROUTINE cxios_set_domain_zoom_ibegin
+    
+    SUBROUTINE cxios_get_domain_zoom_ibegin(domain_hdl, zoom_ibegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: zoom_ibegin
+    END SUBROUTINE cxios_get_domain_zoom_ibegin
+    
+    
+    SUBROUTINE cxios_set_domain_zoom_ibegin_loc(domain_hdl, zoom_ibegin_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_ibegin_loc
+    END SUBROUTINE cxios_set_domain_zoom_ibegin_loc
+    
+    SUBROUTINE cxios_get_domain_zoom_ibegin_loc(domain_hdl, zoom_ibegin_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: zoom_ibegin_loc
+    END SUBROUTINE cxios_get_domain_zoom_ibegin_loc
+    
+    
+    SUBROUTINE cxios_set_domain_zoom_jbegin(domain_hdl, zoom_jbegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_jbegin
+    END SUBROUTINE cxios_set_domain_zoom_jbegin
+    
+    SUBROUTINE cxios_get_domain_zoom_jbegin(domain_hdl, zoom_jbegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: zoom_jbegin
+    END SUBROUTINE cxios_get_domain_zoom_jbegin
+    
+    
+    SUBROUTINE cxios_set_domain_zoom_jbegin_loc(domain_hdl, zoom_jbegin_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_jbegin_loc
+    END SUBROUTINE cxios_set_domain_zoom_jbegin_loc
+    
+    SUBROUTINE cxios_get_domain_zoom_jbegin_loc(domain_hdl, zoom_jbegin_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: zoom_jbegin_loc
+    END SUBROUTINE cxios_get_domain_zoom_jbegin_loc
+    
+    
+    SUBROUTINE cxios_set_domain_zoom_ni(domain_hdl, zoom_ni) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_ni
+    END SUBROUTINE cxios_set_domain_zoom_ni
+    
+    SUBROUTINE cxios_get_domain_zoom_ni(domain_hdl, zoom_ni) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: zoom_ni
+    END SUBROUTINE cxios_get_domain_zoom_ni
+    
+    
+    SUBROUTINE cxios_set_domain_zoom_ni_loc(domain_hdl, zoom_ni_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_ni_loc
+    END SUBROUTINE cxios_set_domain_zoom_ni_loc
+    
+    SUBROUTINE cxios_get_domain_zoom_ni_loc(domain_hdl, zoom_ni_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: zoom_ni_loc
+    END SUBROUTINE cxios_get_domain_zoom_ni_loc
+    
+    
+    SUBROUTINE cxios_set_domain_zoom_nj(domain_hdl, zoom_nj) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_nj
+    END SUBROUTINE cxios_set_domain_zoom_nj
+    
+    SUBROUTINE cxios_get_domain_zoom_nj(domain_hdl, zoom_nj) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: zoom_nj
+    END SUBROUTINE cxios_get_domain_zoom_nj
+    
+    
+    SUBROUTINE cxios_set_domain_zoom_nj_loc(domain_hdl, zoom_nj_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_nj_loc
+    END SUBROUTINE cxios_set_domain_zoom_nj_loc
+    
+    SUBROUTINE cxios_get_domain_zoom_nj_loc(domain_hdl, zoom_nj_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: zoom_nj_loc
+    END SUBROUTINE cxios_get_domain_zoom_nj_loc
+    
+    
+    END INTERFACE
+  
+END MODULE domain_interface_attr
Index: XIOS/trunk/src/interface/fortran_attr/domaingroup_interface_attr.f90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/domaingroup_interface_attr.f90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/domaingroup_interface_attr.f90	(revision 326)
@@ -0,0 +1,451 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+
+MODULE domaingroup_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  
+  INTERFACE ! Do not call directly / interface FORTRAN 2003 <-> C99
+    
+    
+    SUBROUTINE cxios_set_domaingroup_data_dim(domaingroup_hdl, data_dim) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: data_dim
+    END SUBROUTINE cxios_set_domaingroup_data_dim
+    
+    SUBROUTINE cxios_get_domaingroup_data_dim(domaingroup_hdl, data_dim) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: data_dim
+    END SUBROUTINE cxios_get_domaingroup_data_dim
+    
+    
+    SUBROUTINE cxios_set_domaingroup_data_i_index(domaingroup_hdl, data_i_index, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: data_i_index
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_set_domaingroup_data_i_index
+    
+    SUBROUTINE cxios_get_domaingroup_data_i_index(domaingroup_hdl, data_i_index, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: data_i_index
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_get_domaingroup_data_i_index
+    
+    
+    SUBROUTINE cxios_set_domaingroup_data_ibegin(domaingroup_hdl, data_ibegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: data_ibegin
+    END SUBROUTINE cxios_set_domaingroup_data_ibegin
+    
+    SUBROUTINE cxios_get_domaingroup_data_ibegin(domaingroup_hdl, data_ibegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: data_ibegin
+    END SUBROUTINE cxios_get_domaingroup_data_ibegin
+    
+    
+    SUBROUTINE cxios_set_domaingroup_data_j_index(domaingroup_hdl, data_j_index, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: data_j_index
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_set_domaingroup_data_j_index
+    
+    SUBROUTINE cxios_get_domaingroup_data_j_index(domaingroup_hdl, data_j_index, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: data_j_index
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_get_domaingroup_data_j_index
+    
+    
+    SUBROUTINE cxios_set_domaingroup_data_jbegin(domaingroup_hdl, data_jbegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: data_jbegin
+    END SUBROUTINE cxios_set_domaingroup_data_jbegin
+    
+    SUBROUTINE cxios_get_domaingroup_data_jbegin(domaingroup_hdl, data_jbegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: data_jbegin
+    END SUBROUTINE cxios_get_domaingroup_data_jbegin
+    
+    
+    SUBROUTINE cxios_set_domaingroup_data_n_index(domaingroup_hdl, data_n_index) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: data_n_index
+    END SUBROUTINE cxios_set_domaingroup_data_n_index
+    
+    SUBROUTINE cxios_get_domaingroup_data_n_index(domaingroup_hdl, data_n_index) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: data_n_index
+    END SUBROUTINE cxios_get_domaingroup_data_n_index
+    
+    
+    SUBROUTINE cxios_set_domaingroup_data_ni(domaingroup_hdl, data_ni) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: data_ni
+    END SUBROUTINE cxios_set_domaingroup_data_ni
+    
+    SUBROUTINE cxios_get_domaingroup_data_ni(domaingroup_hdl, data_ni) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: data_ni
+    END SUBROUTINE cxios_get_domaingroup_data_ni
+    
+    
+    SUBROUTINE cxios_set_domaingroup_data_nj(domaingroup_hdl, data_nj) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: data_nj
+    END SUBROUTINE cxios_set_domaingroup_data_nj
+    
+    SUBROUTINE cxios_get_domaingroup_data_nj(domaingroup_hdl, data_nj) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: data_nj
+    END SUBROUTINE cxios_get_domaingroup_data_nj
+    
+    
+    SUBROUTINE cxios_set_domaingroup_domain_group_ref(domaingroup_hdl, domain_group_ref, domain_group_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_group_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: domain_group_ref_size
+    END SUBROUTINE cxios_set_domaingroup_domain_group_ref
+    
+    SUBROUTINE cxios_get_domaingroup_domain_group_ref(domaingroup_hdl, domain_group_ref, domain_group_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_group_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: domain_group_ref_size
+    END SUBROUTINE cxios_get_domaingroup_domain_group_ref
+    
+    
+    SUBROUTINE cxios_set_domaingroup_group_ref(domaingroup_hdl, group_ref, group_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: group_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: group_ref_size
+    END SUBROUTINE cxios_set_domaingroup_group_ref
+    
+    SUBROUTINE cxios_get_domaingroup_group_ref(domaingroup_hdl, group_ref, group_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: group_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: group_ref_size
+    END SUBROUTINE cxios_get_domaingroup_group_ref
+    
+    
+    SUBROUTINE cxios_set_domaingroup_ibegin(domaingroup_hdl, ibegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: ibegin
+    END SUBROUTINE cxios_set_domaingroup_ibegin
+    
+    SUBROUTINE cxios_get_domaingroup_ibegin(domaingroup_hdl, ibegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: ibegin
+    END SUBROUTINE cxios_get_domaingroup_ibegin
+    
+    
+    SUBROUTINE cxios_set_domaingroup_iend(domaingroup_hdl, iend) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: iend
+    END SUBROUTINE cxios_set_domaingroup_iend
+    
+    SUBROUTINE cxios_get_domaingroup_iend(domaingroup_hdl, iend) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: iend
+    END SUBROUTINE cxios_get_domaingroup_iend
+    
+    
+    SUBROUTINE cxios_set_domaingroup_jbegin(domaingroup_hdl, jbegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: jbegin
+    END SUBROUTINE cxios_set_domaingroup_jbegin
+    
+    SUBROUTINE cxios_get_domaingroup_jbegin(domaingroup_hdl, jbegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: jbegin
+    END SUBROUTINE cxios_get_domaingroup_jbegin
+    
+    
+    SUBROUTINE cxios_set_domaingroup_jend(domaingroup_hdl, jend) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: jend
+    END SUBROUTINE cxios_set_domaingroup_jend
+    
+    SUBROUTINE cxios_get_domaingroup_jend(domaingroup_hdl, jend) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: jend
+    END SUBROUTINE cxios_get_domaingroup_jend
+    
+    
+    SUBROUTINE cxios_set_domaingroup_latvalue(domaingroup_hdl, latvalue, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: latvalue
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_set_domaingroup_latvalue
+    
+    SUBROUTINE cxios_get_domaingroup_latvalue(domaingroup_hdl, latvalue, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: latvalue
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_get_domaingroup_latvalue
+    
+    
+    SUBROUTINE cxios_set_domaingroup_long_name(domaingroup_hdl, long_name, long_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: long_name
+      INTEGER  (kind = C_INT)     , VALUE        :: long_name_size
+    END SUBROUTINE cxios_set_domaingroup_long_name
+    
+    SUBROUTINE cxios_get_domaingroup_long_name(domaingroup_hdl, long_name, long_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: long_name
+      INTEGER  (kind = C_INT)     , VALUE        :: long_name_size
+    END SUBROUTINE cxios_get_domaingroup_long_name
+    
+    
+    SUBROUTINE cxios_set_domaingroup_lonvalue(domaingroup_hdl, lonvalue, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: lonvalue
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_set_domaingroup_lonvalue
+    
+    SUBROUTINE cxios_get_domaingroup_lonvalue(domaingroup_hdl, lonvalue, extent1) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: lonvalue
+      INTEGER (kind = C_INT), VALUE  :: extent1
+    END SUBROUTINE cxios_get_domaingroup_lonvalue
+    
+    
+    SUBROUTINE cxios_set_domaingroup_mask(domaingroup_hdl, mask, extent1, extent2) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask
+      INTEGER (kind = C_INT), VALUE  :: extent1
+      INTEGER (kind = C_INT), VALUE  :: extent2
+    END SUBROUTINE cxios_set_domaingroup_mask
+    
+    SUBROUTINE cxios_get_domaingroup_mask(domaingroup_hdl, mask, extent1, extent2) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask
+      INTEGER (kind = C_INT), VALUE  :: extent1
+      INTEGER (kind = C_INT), VALUE  :: extent2
+    END SUBROUTINE cxios_get_domaingroup_mask
+    
+    
+    SUBROUTINE cxios_set_domaingroup_name(domaingroup_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_set_domaingroup_name
+    
+    SUBROUTINE cxios_get_domaingroup_name(domaingroup_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_get_domaingroup_name
+    
+    
+    SUBROUTINE cxios_set_domaingroup_ni(domaingroup_hdl, ni) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: ni
+    END SUBROUTINE cxios_set_domaingroup_ni
+    
+    SUBROUTINE cxios_get_domaingroup_ni(domaingroup_hdl, ni) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: ni
+    END SUBROUTINE cxios_get_domaingroup_ni
+    
+    
+    SUBROUTINE cxios_set_domaingroup_ni_glo(domaingroup_hdl, ni_glo) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: ni_glo
+    END SUBROUTINE cxios_set_domaingroup_ni_glo
+    
+    SUBROUTINE cxios_get_domaingroup_ni_glo(domaingroup_hdl, ni_glo) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: ni_glo
+    END SUBROUTINE cxios_get_domaingroup_ni_glo
+    
+    
+    SUBROUTINE cxios_set_domaingroup_nj(domaingroup_hdl, nj) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: nj
+    END SUBROUTINE cxios_set_domaingroup_nj
+    
+    SUBROUTINE cxios_get_domaingroup_nj(domaingroup_hdl, nj) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: nj
+    END SUBROUTINE cxios_get_domaingroup_nj
+    
+    
+    SUBROUTINE cxios_set_domaingroup_nj_glo(domaingroup_hdl, nj_glo) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: nj_glo
+    END SUBROUTINE cxios_set_domaingroup_nj_glo
+    
+    SUBROUTINE cxios_get_domaingroup_nj_glo(domaingroup_hdl, nj_glo) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: nj_glo
+    END SUBROUTINE cxios_get_domaingroup_nj_glo
+    
+    
+    SUBROUTINE cxios_set_domaingroup_standard_name(domaingroup_hdl, standard_name, standard_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
+      INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
+    END SUBROUTINE cxios_set_domaingroup_standard_name
+    
+    SUBROUTINE cxios_get_domaingroup_standard_name(domaingroup_hdl, standard_name, standard_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
+      INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
+    END SUBROUTINE cxios_get_domaingroup_standard_name
+    
+    
+    SUBROUTINE cxios_set_domaingroup_zoom_ibegin(domaingroup_hdl, zoom_ibegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_ibegin
+    END SUBROUTINE cxios_set_domaingroup_zoom_ibegin
+    
+    SUBROUTINE cxios_get_domaingroup_zoom_ibegin(domaingroup_hdl, zoom_ibegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: zoom_ibegin
+    END SUBROUTINE cxios_get_domaingroup_zoom_ibegin
+    
+    
+    SUBROUTINE cxios_set_domaingroup_zoom_ibegin_loc(domaingroup_hdl, zoom_ibegin_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_ibegin_loc
+    END SUBROUTINE cxios_set_domaingroup_zoom_ibegin_loc
+    
+    SUBROUTINE cxios_get_domaingroup_zoom_ibegin_loc(domaingroup_hdl, zoom_ibegin_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: zoom_ibegin_loc
+    END SUBROUTINE cxios_get_domaingroup_zoom_ibegin_loc
+    
+    
+    SUBROUTINE cxios_set_domaingroup_zoom_jbegin(domaingroup_hdl, zoom_jbegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_jbegin
+    END SUBROUTINE cxios_set_domaingroup_zoom_jbegin
+    
+    SUBROUTINE cxios_get_domaingroup_zoom_jbegin(domaingroup_hdl, zoom_jbegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: zoom_jbegin
+    END SUBROUTINE cxios_get_domaingroup_zoom_jbegin
+    
+    
+    SUBROUTINE cxios_set_domaingroup_zoom_jbegin_loc(domaingroup_hdl, zoom_jbegin_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_jbegin_loc
+    END SUBROUTINE cxios_set_domaingroup_zoom_jbegin_loc
+    
+    SUBROUTINE cxios_get_domaingroup_zoom_jbegin_loc(domaingroup_hdl, zoom_jbegin_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: zoom_jbegin_loc
+    END SUBROUTINE cxios_get_domaingroup_zoom_jbegin_loc
+    
+    
+    SUBROUTINE cxios_set_domaingroup_zoom_ni(domaingroup_hdl, zoom_ni) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_ni
+    END SUBROUTINE cxios_set_domaingroup_zoom_ni
+    
+    SUBROUTINE cxios_get_domaingroup_zoom_ni(domaingroup_hdl, zoom_ni) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: zoom_ni
+    END SUBROUTINE cxios_get_domaingroup_zoom_ni
+    
+    
+    SUBROUTINE cxios_set_domaingroup_zoom_ni_loc(domaingroup_hdl, zoom_ni_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_ni_loc
+    END SUBROUTINE cxios_set_domaingroup_zoom_ni_loc
+    
+    SUBROUTINE cxios_get_domaingroup_zoom_ni_loc(domaingroup_hdl, zoom_ni_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: zoom_ni_loc
+    END SUBROUTINE cxios_get_domaingroup_zoom_ni_loc
+    
+    
+    SUBROUTINE cxios_set_domaingroup_zoom_nj(domaingroup_hdl, zoom_nj) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_nj
+    END SUBROUTINE cxios_set_domaingroup_zoom_nj
+    
+    SUBROUTINE cxios_get_domaingroup_zoom_nj(domaingroup_hdl, zoom_nj) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: zoom_nj
+    END SUBROUTINE cxios_get_domaingroup_zoom_nj
+    
+    
+    SUBROUTINE cxios_set_domaingroup_zoom_nj_loc(domaingroup_hdl, zoom_nj_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: zoom_nj_loc
+    END SUBROUTINE cxios_set_domaingroup_zoom_nj_loc
+    
+    SUBROUTINE cxios_get_domaingroup_zoom_nj_loc(domaingroup_hdl, zoom_nj_loc) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: zoom_nj_loc
+    END SUBROUTINE cxios_get_domaingroup_zoom_nj_loc
+    
+    
+    END INTERFACE
+  
+END MODULE domaingroup_interface_attr
Index: XIOS/trunk/src/interface/fortran_attr/field_interface_attr.f90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/field_interface_attr.f90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/field_interface_attr.f90	(revision 326)
@@ -0,0 +1,230 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+
+MODULE field_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  
+  INTERFACE ! Do not call directly / interface FORTRAN 2003 <-> C99
+    
+    
+    SUBROUTINE cxios_set_field_axis_ref(field_hdl, axis_ref, axis_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: axis_ref_size
+    END SUBROUTINE cxios_set_field_axis_ref
+    
+    SUBROUTINE cxios_get_field_axis_ref(field_hdl, axis_ref, axis_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: axis_ref_size
+    END SUBROUTINE cxios_get_field_axis_ref
+    
+    
+    SUBROUTINE cxios_set_field_default_value(field_hdl, default_value) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      REAL (KIND=C_DOUBLE)      , VALUE :: default_value
+    END SUBROUTINE cxios_set_field_default_value
+    
+    SUBROUTINE cxios_get_field_default_value(field_hdl, default_value) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      REAL (KIND=C_DOUBLE)             :: default_value
+    END SUBROUTINE cxios_get_field_default_value
+    
+    
+    SUBROUTINE cxios_set_field_domain_ref(field_hdl, domain_ref, domain_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: domain_ref_size
+    END SUBROUTINE cxios_set_field_domain_ref
+    
+    SUBROUTINE cxios_get_field_domain_ref(field_hdl, domain_ref, domain_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: domain_ref_size
+    END SUBROUTINE cxios_get_field_domain_ref
+    
+    
+    SUBROUTINE cxios_set_field_enabled(field_hdl, enabled) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      LOGICAL (KIND=C_BOOL)      , VALUE :: enabled
+    END SUBROUTINE cxios_set_field_enabled
+    
+    SUBROUTINE cxios_get_field_enabled(field_hdl, enabled) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      LOGICAL (KIND=C_BOOL)             :: enabled
+    END SUBROUTINE cxios_get_field_enabled
+    
+    
+    SUBROUTINE cxios_set_field_field_ref(field_hdl, field_ref, field_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: field_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: field_ref_size
+    END SUBROUTINE cxios_set_field_field_ref
+    
+    SUBROUTINE cxios_get_field_field_ref(field_hdl, field_ref, field_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: field_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: field_ref_size
+    END SUBROUTINE cxios_get_field_field_ref
+    
+    
+    SUBROUTINE cxios_set_field_freq_offset(field_hdl, freq_offset, freq_offset_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: freq_offset
+      INTEGER  (kind = C_INT)     , VALUE        :: freq_offset_size
+    END SUBROUTINE cxios_set_field_freq_offset
+    
+    SUBROUTINE cxios_get_field_freq_offset(field_hdl, freq_offset, freq_offset_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: freq_offset
+      INTEGER  (kind = C_INT)     , VALUE        :: freq_offset_size
+    END SUBROUTINE cxios_get_field_freq_offset
+    
+    
+    SUBROUTINE cxios_set_field_freq_op(field_hdl, freq_op, freq_op_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: freq_op
+      INTEGER  (kind = C_INT)     , VALUE        :: freq_op_size
+    END SUBROUTINE cxios_set_field_freq_op
+    
+    SUBROUTINE cxios_get_field_freq_op(field_hdl, freq_op, freq_op_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: freq_op
+      INTEGER  (kind = C_INT)     , VALUE        :: freq_op_size
+    END SUBROUTINE cxios_get_field_freq_op
+    
+    
+    SUBROUTINE cxios_set_field_grid_ref(field_hdl, grid_ref, grid_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: grid_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: grid_ref_size
+    END SUBROUTINE cxios_set_field_grid_ref
+    
+    SUBROUTINE cxios_get_field_grid_ref(field_hdl, grid_ref, grid_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: grid_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: grid_ref_size
+    END SUBROUTINE cxios_get_field_grid_ref
+    
+    
+    SUBROUTINE cxios_set_field_level(field_hdl, level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: level
+    END SUBROUTINE cxios_set_field_level
+    
+    SUBROUTINE cxios_get_field_level(field_hdl, level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      INTEGER (KIND=C_INT)             :: level
+    END SUBROUTINE cxios_get_field_level
+    
+    
+    SUBROUTINE cxios_set_field_long_name(field_hdl, long_name, long_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: long_name
+      INTEGER  (kind = C_INT)     , VALUE        :: long_name_size
+    END SUBROUTINE cxios_set_field_long_name
+    
+    SUBROUTINE cxios_get_field_long_name(field_hdl, long_name, long_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: long_name
+      INTEGER  (kind = C_INT)     , VALUE        :: long_name_size
+    END SUBROUTINE cxios_get_field_long_name
+    
+    
+    SUBROUTINE cxios_set_field_name(field_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_set_field_name
+    
+    SUBROUTINE cxios_get_field_name(field_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_get_field_name
+    
+    
+    SUBROUTINE cxios_set_field_operation(field_hdl, operation, operation_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: operation
+      INTEGER  (kind = C_INT)     , VALUE        :: operation_size
+    END SUBROUTINE cxios_set_field_operation
+    
+    SUBROUTINE cxios_get_field_operation(field_hdl, operation, operation_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: operation
+      INTEGER  (kind = C_INT)     , VALUE        :: operation_size
+    END SUBROUTINE cxios_get_field_operation
+    
+    
+    SUBROUTINE cxios_set_field_prec(field_hdl, prec) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: prec
+    END SUBROUTINE cxios_set_field_prec
+    
+    SUBROUTINE cxios_get_field_prec(field_hdl, prec) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      INTEGER (KIND=C_INT)             :: prec
+    END SUBROUTINE cxios_get_field_prec
+    
+    
+    SUBROUTINE cxios_set_field_standard_name(field_hdl, standard_name, standard_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
+      INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
+    END SUBROUTINE cxios_set_field_standard_name
+    
+    SUBROUTINE cxios_get_field_standard_name(field_hdl, standard_name, standard_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
+      INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
+    END SUBROUTINE cxios_get_field_standard_name
+    
+    
+    SUBROUTINE cxios_set_field_unit(field_hdl, unit, unit_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: unit
+      INTEGER  (kind = C_INT)     , VALUE        :: unit_size
+    END SUBROUTINE cxios_set_field_unit
+    
+    SUBROUTINE cxios_get_field_unit(field_hdl, unit, unit_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: unit
+      INTEGER  (kind = C_INT)     , VALUE        :: unit_size
+    END SUBROUTINE cxios_get_field_unit
+    
+    
+    END INTERFACE
+  
+END MODULE field_interface_attr
Index: XIOS/trunk/src/interface/fortran_attr/fieldgroup_interface_attr.f90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/fieldgroup_interface_attr.f90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/fieldgroup_interface_attr.f90	(revision 326)
@@ -0,0 +1,245 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+
+MODULE fieldgroup_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  
+  INTERFACE ! Do not call directly / interface FORTRAN 2003 <-> C99
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_axis_ref(fieldgroup_hdl, axis_ref, axis_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: axis_ref_size
+    END SUBROUTINE cxios_set_fieldgroup_axis_ref
+    
+    SUBROUTINE cxios_get_fieldgroup_axis_ref(fieldgroup_hdl, axis_ref, axis_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: axis_ref_size
+    END SUBROUTINE cxios_get_fieldgroup_axis_ref
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_default_value(fieldgroup_hdl, default_value) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      REAL (KIND=C_DOUBLE)      , VALUE :: default_value
+    END SUBROUTINE cxios_set_fieldgroup_default_value
+    
+    SUBROUTINE cxios_get_fieldgroup_default_value(fieldgroup_hdl, default_value) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      REAL (KIND=C_DOUBLE)             :: default_value
+    END SUBROUTINE cxios_get_fieldgroup_default_value
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_domain_ref(fieldgroup_hdl, domain_ref, domain_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: domain_ref_size
+    END SUBROUTINE cxios_set_fieldgroup_domain_ref
+    
+    SUBROUTINE cxios_get_fieldgroup_domain_ref(fieldgroup_hdl, domain_ref, domain_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: domain_ref_size
+    END SUBROUTINE cxios_get_fieldgroup_domain_ref
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_enabled(fieldgroup_hdl, enabled) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      LOGICAL (KIND=C_BOOL)      , VALUE :: enabled
+    END SUBROUTINE cxios_set_fieldgroup_enabled
+    
+    SUBROUTINE cxios_get_fieldgroup_enabled(fieldgroup_hdl, enabled) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      LOGICAL (KIND=C_BOOL)             :: enabled
+    END SUBROUTINE cxios_get_fieldgroup_enabled
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_field_ref(fieldgroup_hdl, field_ref, field_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: field_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: field_ref_size
+    END SUBROUTINE cxios_set_fieldgroup_field_ref
+    
+    SUBROUTINE cxios_get_fieldgroup_field_ref(fieldgroup_hdl, field_ref, field_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: field_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: field_ref_size
+    END SUBROUTINE cxios_get_fieldgroup_field_ref
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_freq_offset(fieldgroup_hdl, freq_offset, freq_offset_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: freq_offset
+      INTEGER  (kind = C_INT)     , VALUE        :: freq_offset_size
+    END SUBROUTINE cxios_set_fieldgroup_freq_offset
+    
+    SUBROUTINE cxios_get_fieldgroup_freq_offset(fieldgroup_hdl, freq_offset, freq_offset_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: freq_offset
+      INTEGER  (kind = C_INT)     , VALUE        :: freq_offset_size
+    END SUBROUTINE cxios_get_fieldgroup_freq_offset
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_freq_op(fieldgroup_hdl, freq_op, freq_op_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: freq_op
+      INTEGER  (kind = C_INT)     , VALUE        :: freq_op_size
+    END SUBROUTINE cxios_set_fieldgroup_freq_op
+    
+    SUBROUTINE cxios_get_fieldgroup_freq_op(fieldgroup_hdl, freq_op, freq_op_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: freq_op
+      INTEGER  (kind = C_INT)     , VALUE        :: freq_op_size
+    END SUBROUTINE cxios_get_fieldgroup_freq_op
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_grid_ref(fieldgroup_hdl, grid_ref, grid_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: grid_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: grid_ref_size
+    END SUBROUTINE cxios_set_fieldgroup_grid_ref
+    
+    SUBROUTINE cxios_get_fieldgroup_grid_ref(fieldgroup_hdl, grid_ref, grid_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: grid_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: grid_ref_size
+    END SUBROUTINE cxios_get_fieldgroup_grid_ref
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_group_ref(fieldgroup_hdl, group_ref, group_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: group_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: group_ref_size
+    END SUBROUTINE cxios_set_fieldgroup_group_ref
+    
+    SUBROUTINE cxios_get_fieldgroup_group_ref(fieldgroup_hdl, group_ref, group_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: group_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: group_ref_size
+    END SUBROUTINE cxios_get_fieldgroup_group_ref
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_level(fieldgroup_hdl, level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: level
+    END SUBROUTINE cxios_set_fieldgroup_level
+    
+    SUBROUTINE cxios_get_fieldgroup_level(fieldgroup_hdl, level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      INTEGER (KIND=C_INT)             :: level
+    END SUBROUTINE cxios_get_fieldgroup_level
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_long_name(fieldgroup_hdl, long_name, long_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: long_name
+      INTEGER  (kind = C_INT)     , VALUE        :: long_name_size
+    END SUBROUTINE cxios_set_fieldgroup_long_name
+    
+    SUBROUTINE cxios_get_fieldgroup_long_name(fieldgroup_hdl, long_name, long_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: long_name
+      INTEGER  (kind = C_INT)     , VALUE        :: long_name_size
+    END SUBROUTINE cxios_get_fieldgroup_long_name
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_name(fieldgroup_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_set_fieldgroup_name
+    
+    SUBROUTINE cxios_get_fieldgroup_name(fieldgroup_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_get_fieldgroup_name
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_operation(fieldgroup_hdl, operation, operation_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: operation
+      INTEGER  (kind = C_INT)     , VALUE        :: operation_size
+    END SUBROUTINE cxios_set_fieldgroup_operation
+    
+    SUBROUTINE cxios_get_fieldgroup_operation(fieldgroup_hdl, operation, operation_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: operation
+      INTEGER  (kind = C_INT)     , VALUE        :: operation_size
+    END SUBROUTINE cxios_get_fieldgroup_operation
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_prec(fieldgroup_hdl, prec) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: prec
+    END SUBROUTINE cxios_set_fieldgroup_prec
+    
+    SUBROUTINE cxios_get_fieldgroup_prec(fieldgroup_hdl, prec) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      INTEGER (KIND=C_INT)             :: prec
+    END SUBROUTINE cxios_get_fieldgroup_prec
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_standard_name(fieldgroup_hdl, standard_name, standard_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
+      INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
+    END SUBROUTINE cxios_set_fieldgroup_standard_name
+    
+    SUBROUTINE cxios_get_fieldgroup_standard_name(fieldgroup_hdl, standard_name, standard_name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: standard_name
+      INTEGER  (kind = C_INT)     , VALUE        :: standard_name_size
+    END SUBROUTINE cxios_get_fieldgroup_standard_name
+    
+    
+    SUBROUTINE cxios_set_fieldgroup_unit(fieldgroup_hdl, unit, unit_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: unit
+      INTEGER  (kind = C_INT)     , VALUE        :: unit_size
+    END SUBROUTINE cxios_set_fieldgroup_unit
+    
+    SUBROUTINE cxios_get_fieldgroup_unit(fieldgroup_hdl, unit, unit_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: unit
+      INTEGER  (kind = C_INT)     , VALUE        :: unit_size
+    END SUBROUTINE cxios_get_fieldgroup_unit
+    
+    
+    END INTERFACE
+  
+END MODULE fieldgroup_interface_attr
Index: XIOS/trunk/src/interface/fortran_attr/file_interface_attr.f90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/file_interface_attr.f90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/file_interface_attr.f90	(revision 326)
@@ -0,0 +1,144 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+
+MODULE file_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  
+  INTERFACE ! Do not call directly / interface FORTRAN 2003 <-> C99
+    
+    
+    SUBROUTINE cxios_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)     , VALUE        :: description_size
+    END SUBROUTINE cxios_set_file_description
+    
+    SUBROUTINE cxios_get_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)     , VALUE        :: description_size
+    END SUBROUTINE cxios_get_file_description
+    
+    
+    SUBROUTINE cxios_set_file_enabled(file_hdl, enabled) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      LOGICAL (KIND=C_BOOL)      , VALUE :: enabled
+    END SUBROUTINE cxios_set_file_enabled
+    
+    SUBROUTINE cxios_get_file_enabled(file_hdl, enabled) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      LOGICAL (KIND=C_BOOL)             :: enabled
+    END SUBROUTINE cxios_get_file_enabled
+    
+    
+    SUBROUTINE cxios_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)     , VALUE        :: name_size
+    END SUBROUTINE cxios_set_file_name
+    
+    SUBROUTINE cxios_get_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)     , VALUE        :: name_size
+    END SUBROUTINE cxios_get_file_name
+    
+    
+    SUBROUTINE cxios_set_file_name_suffix(file_hdl, name_suffix, name_suffix_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name_suffix
+      INTEGER  (kind = C_INT)     , VALUE        :: name_suffix_size
+    END SUBROUTINE cxios_set_file_name_suffix
+    
+    SUBROUTINE cxios_get_file_name_suffix(file_hdl, name_suffix, name_suffix_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name_suffix
+      INTEGER  (kind = C_INT)     , VALUE        :: name_suffix_size
+    END SUBROUTINE cxios_get_file_name_suffix
+    
+    
+    SUBROUTINE cxios_set_file_output_freq(file_hdl, output_freq, output_freq_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: output_freq
+      INTEGER  (kind = C_INT)     , VALUE        :: output_freq_size
+    END SUBROUTINE cxios_set_file_output_freq
+    
+    SUBROUTINE cxios_get_file_output_freq(file_hdl, output_freq, output_freq_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: output_freq
+      INTEGER  (kind = C_INT)     , VALUE        :: output_freq_size
+    END SUBROUTINE cxios_get_file_output_freq
+    
+    
+    SUBROUTINE cxios_set_file_output_level(file_hdl, output_level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: output_level
+    END SUBROUTINE cxios_set_file_output_level
+    
+    SUBROUTINE cxios_get_file_output_level(file_hdl, output_level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      INTEGER (KIND=C_INT)             :: output_level
+    END SUBROUTINE cxios_get_file_output_level
+    
+    
+    SUBROUTINE cxios_set_file_split_freq(file_hdl, split_freq, split_freq_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: split_freq
+      INTEGER  (kind = C_INT)     , VALUE        :: split_freq_size
+    END SUBROUTINE cxios_set_file_split_freq
+    
+    SUBROUTINE cxios_get_file_split_freq(file_hdl, split_freq, split_freq_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: split_freq
+      INTEGER  (kind = C_INT)     , VALUE        :: split_freq_size
+    END SUBROUTINE cxios_get_file_split_freq
+    
+    
+    SUBROUTINE cxios_set_file_sync_freq(file_hdl, sync_freq, sync_freq_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: sync_freq
+      INTEGER  (kind = C_INT)     , VALUE        :: sync_freq_size
+    END SUBROUTINE cxios_set_file_sync_freq
+    
+    SUBROUTINE cxios_get_file_sync_freq(file_hdl, sync_freq, sync_freq_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: sync_freq
+      INTEGER  (kind = C_INT)     , VALUE        :: sync_freq_size
+    END SUBROUTINE cxios_get_file_sync_freq
+    
+    
+    SUBROUTINE cxios_set_file_type(file_hdl, type, type_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: type
+      INTEGER  (kind = C_INT)     , VALUE        :: type_size
+    END SUBROUTINE cxios_set_file_type
+    
+    SUBROUTINE cxios_get_file_type(file_hdl, type, type_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: type
+      INTEGER  (kind = C_INT)     , VALUE        :: type_size
+    END SUBROUTINE cxios_get_file_type
+    
+    
+    END INTERFACE
+  
+END MODULE file_interface_attr
Index: XIOS/trunk/src/interface/fortran_attr/filegroup_interface_attr.f90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/filegroup_interface_attr.f90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/filegroup_interface_attr.f90	(revision 326)
@@ -0,0 +1,159 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+
+MODULE filegroup_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  
+  INTERFACE ! Do not call directly / interface FORTRAN 2003 <-> C99
+    
+    
+    SUBROUTINE cxios_set_filegroup_description(filegroup_hdl, description, description_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: description
+      INTEGER  (kind = C_INT)     , VALUE        :: description_size
+    END SUBROUTINE cxios_set_filegroup_description
+    
+    SUBROUTINE cxios_get_filegroup_description(filegroup_hdl, description, description_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: description
+      INTEGER  (kind = C_INT)     , VALUE        :: description_size
+    END SUBROUTINE cxios_get_filegroup_description
+    
+    
+    SUBROUTINE cxios_set_filegroup_enabled(filegroup_hdl, enabled) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      LOGICAL (KIND=C_BOOL)      , VALUE :: enabled
+    END SUBROUTINE cxios_set_filegroup_enabled
+    
+    SUBROUTINE cxios_get_filegroup_enabled(filegroup_hdl, enabled) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      LOGICAL (KIND=C_BOOL)             :: enabled
+    END SUBROUTINE cxios_get_filegroup_enabled
+    
+    
+    SUBROUTINE cxios_set_filegroup_group_ref(filegroup_hdl, group_ref, group_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: group_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: group_ref_size
+    END SUBROUTINE cxios_set_filegroup_group_ref
+    
+    SUBROUTINE cxios_get_filegroup_group_ref(filegroup_hdl, group_ref, group_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: group_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: group_ref_size
+    END SUBROUTINE cxios_get_filegroup_group_ref
+    
+    
+    SUBROUTINE cxios_set_filegroup_name(filegroup_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_set_filegroup_name
+    
+    SUBROUTINE cxios_get_filegroup_name(filegroup_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_get_filegroup_name
+    
+    
+    SUBROUTINE cxios_set_filegroup_name_suffix(filegroup_hdl, name_suffix, name_suffix_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name_suffix
+      INTEGER  (kind = C_INT)     , VALUE        :: name_suffix_size
+    END SUBROUTINE cxios_set_filegroup_name_suffix
+    
+    SUBROUTINE cxios_get_filegroup_name_suffix(filegroup_hdl, name_suffix, name_suffix_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name_suffix
+      INTEGER  (kind = C_INT)     , VALUE        :: name_suffix_size
+    END SUBROUTINE cxios_get_filegroup_name_suffix
+    
+    
+    SUBROUTINE cxios_set_filegroup_output_freq(filegroup_hdl, output_freq, output_freq_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: output_freq
+      INTEGER  (kind = C_INT)     , VALUE        :: output_freq_size
+    END SUBROUTINE cxios_set_filegroup_output_freq
+    
+    SUBROUTINE cxios_get_filegroup_output_freq(filegroup_hdl, output_freq, output_freq_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: output_freq
+      INTEGER  (kind = C_INT)     , VALUE        :: output_freq_size
+    END SUBROUTINE cxios_get_filegroup_output_freq
+    
+    
+    SUBROUTINE cxios_set_filegroup_output_level(filegroup_hdl, output_level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: output_level
+    END SUBROUTINE cxios_set_filegroup_output_level
+    
+    SUBROUTINE cxios_get_filegroup_output_level(filegroup_hdl, output_level) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      INTEGER (KIND=C_INT)             :: output_level
+    END SUBROUTINE cxios_get_filegroup_output_level
+    
+    
+    SUBROUTINE cxios_set_filegroup_split_freq(filegroup_hdl, split_freq, split_freq_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: split_freq
+      INTEGER  (kind = C_INT)     , VALUE        :: split_freq_size
+    END SUBROUTINE cxios_set_filegroup_split_freq
+    
+    SUBROUTINE cxios_get_filegroup_split_freq(filegroup_hdl, split_freq, split_freq_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: split_freq
+      INTEGER  (kind = C_INT)     , VALUE        :: split_freq_size
+    END SUBROUTINE cxios_get_filegroup_split_freq
+    
+    
+    SUBROUTINE cxios_set_filegroup_sync_freq(filegroup_hdl, sync_freq, sync_freq_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: sync_freq
+      INTEGER  (kind = C_INT)     , VALUE        :: sync_freq_size
+    END SUBROUTINE cxios_set_filegroup_sync_freq
+    
+    SUBROUTINE cxios_get_filegroup_sync_freq(filegroup_hdl, sync_freq, sync_freq_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: sync_freq
+      INTEGER  (kind = C_INT)     , VALUE        :: sync_freq_size
+    END SUBROUTINE cxios_get_filegroup_sync_freq
+    
+    
+    SUBROUTINE cxios_set_filegroup_type(filegroup_hdl, type, type_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: type
+      INTEGER  (kind = C_INT)     , VALUE        :: type_size
+    END SUBROUTINE cxios_set_filegroup_type
+    
+    SUBROUTINE cxios_get_filegroup_type(filegroup_hdl, type, type_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: type
+      INTEGER  (kind = C_INT)     , VALUE        :: type_size
+    END SUBROUTINE cxios_get_filegroup_type
+    
+    
+    END INTERFACE
+  
+END MODULE filegroup_interface_attr
Index: XIOS/trunk/src/interface/fortran_attr/grid_interface_attr.f90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/grid_interface_attr.f90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/grid_interface_attr.f90	(revision 326)
@@ -0,0 +1,73 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+
+MODULE grid_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  
+  INTERFACE ! Do not call directly / interface FORTRAN 2003 <-> C99
+    
+    
+    SUBROUTINE cxios_set_grid_axis_ref(grid_hdl, axis_ref, axis_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: axis_ref_size
+    END SUBROUTINE cxios_set_grid_axis_ref
+    
+    SUBROUTINE cxios_get_grid_axis_ref(grid_hdl, axis_ref, axis_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: axis_ref_size
+    END SUBROUTINE cxios_get_grid_axis_ref
+    
+    
+    SUBROUTINE cxios_set_grid_description(grid_hdl, description, description_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: description
+      INTEGER  (kind = C_INT)     , VALUE        :: description_size
+    END SUBROUTINE cxios_set_grid_description
+    
+    SUBROUTINE cxios_get_grid_description(grid_hdl, description, description_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: description
+      INTEGER  (kind = C_INT)     , VALUE        :: description_size
+    END SUBROUTINE cxios_get_grid_description
+    
+    
+    SUBROUTINE cxios_set_grid_domain_ref(grid_hdl, domain_ref, domain_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: domain_ref_size
+    END SUBROUTINE cxios_set_grid_domain_ref
+    
+    SUBROUTINE cxios_get_grid_domain_ref(grid_hdl, domain_ref, domain_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: domain_ref_size
+    END SUBROUTINE cxios_get_grid_domain_ref
+    
+    
+    SUBROUTINE cxios_set_grid_name(grid_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_set_grid_name
+    
+    SUBROUTINE cxios_get_grid_name(grid_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_get_grid_name
+    
+    
+    END INTERFACE
+  
+END MODULE grid_interface_attr
Index: XIOS/trunk/src/interface/fortran_attr/gridgroup_interface_attr.f90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/gridgroup_interface_attr.f90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/gridgroup_interface_attr.f90	(revision 326)
@@ -0,0 +1,88 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+
+MODULE gridgroup_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  
+  INTERFACE ! Do not call directly / interface FORTRAN 2003 <-> C99
+    
+    
+    SUBROUTINE cxios_set_gridgroup_axis_ref(gridgroup_hdl, axis_ref, axis_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: axis_ref_size
+    END SUBROUTINE cxios_set_gridgroup_axis_ref
+    
+    SUBROUTINE cxios_get_gridgroup_axis_ref(gridgroup_hdl, axis_ref, axis_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: axis_ref_size
+    END SUBROUTINE cxios_get_gridgroup_axis_ref
+    
+    
+    SUBROUTINE cxios_set_gridgroup_description(gridgroup_hdl, description, description_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: description
+      INTEGER  (kind = C_INT)     , VALUE        :: description_size
+    END SUBROUTINE cxios_set_gridgroup_description
+    
+    SUBROUTINE cxios_get_gridgroup_description(gridgroup_hdl, description, description_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: description
+      INTEGER  (kind = C_INT)     , VALUE        :: description_size
+    END SUBROUTINE cxios_get_gridgroup_description
+    
+    
+    SUBROUTINE cxios_set_gridgroup_domain_ref(gridgroup_hdl, domain_ref, domain_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: domain_ref_size
+    END SUBROUTINE cxios_set_gridgroup_domain_ref
+    
+    SUBROUTINE cxios_get_gridgroup_domain_ref(gridgroup_hdl, domain_ref, domain_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: domain_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: domain_ref_size
+    END SUBROUTINE cxios_get_gridgroup_domain_ref
+    
+    
+    SUBROUTINE cxios_set_gridgroup_group_ref(gridgroup_hdl, group_ref, group_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: group_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: group_ref_size
+    END SUBROUTINE cxios_set_gridgroup_group_ref
+    
+    SUBROUTINE cxios_get_gridgroup_group_ref(gridgroup_hdl, group_ref, group_ref_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: group_ref
+      INTEGER  (kind = C_INT)     , VALUE        :: group_ref_size
+    END SUBROUTINE cxios_get_gridgroup_group_ref
+    
+    
+    SUBROUTINE cxios_set_gridgroup_name(gridgroup_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_set_gridgroup_name
+    
+    SUBROUTINE cxios_get_gridgroup_name(gridgroup_hdl, name, name_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: name
+      INTEGER  (kind = C_INT)     , VALUE        :: name_size
+    END SUBROUTINE cxios_get_gridgroup_name
+    
+    
+    END INTERFACE
+  
+END MODULE gridgroup_interface_attr
Index: XIOS/trunk/src/interface/fortran_attr/iaxis_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/iaxis_attr.F90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/iaxis_attr.F90	(revision 326)
@@ -0,0 +1,165 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE iaxis_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE iaxis
+  USE axis_interface_attr
+  
+CONTAINS
+  
+  SUBROUTINE xios(set_axis_attr)  &
+    ( axis_id, long_name, name, size, standard_name, unit, value )
+    
+    IMPLICIT NONE
+      TYPE(txios(axis))  :: axis_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::axis_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      INTEGER  , OPTIONAL, INTENT(IN) :: size
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: value(:)
+      
+      CALL xios(get_axis_handle)(axis_id,axis_hdl)
+      CALL xios(set_axis_attr_hdl_)   &
+      ( axis_hdl, long_name, name, size, standard_name, unit, value )
+    
+  END SUBROUTINE xios(set_axis_attr)
+  
+  SUBROUTINE xios(set_axis_attr_hdl)  &
+    ( axis_hdl, long_name, name, size, standard_name, unit, value )
+    
+    IMPLICIT NONE
+      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      INTEGER  , OPTIONAL, INTENT(IN) :: size
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: value(:)
+      
+      CALL xios(set_axis_attr_hdl_)  &
+      ( axis_hdl, long_name, name, size, standard_name, unit, value )
+    
+  END SUBROUTINE xios(set_axis_attr_hdl)
+  
+  SUBROUTINE xios(set_axis_attr_hdl_)   &
+    ( axis_hdl, long_name_, name_, size_, standard_name_, unit_, value_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
+      INTEGER  , OPTIONAL, INTENT(IN) :: size_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: value_(:)
+      
+      IF (PRESENT(long_name_)) THEN
+        CALL cxios_set_axis_long_name(axis_hdl%daddr, long_name_, len(long_name_))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_set_axis_name(axis_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(size_)) THEN
+        CALL cxios_set_axis_size(axis_hdl%daddr, size_)
+      ENDIF
+      
+      IF (PRESENT(standard_name_)) THEN
+        CALL cxios_set_axis_standard_name(axis_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+      
+      IF (PRESENT(unit_)) THEN
+        CALL cxios_set_axis_unit(axis_hdl%daddr, unit_, len(unit_))
+      ENDIF
+      
+      IF (PRESENT(value_)) THEN
+        CALL cxios_set_axis_value(axis_hdl%daddr, value_,size(value_,1))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(set_axis_attr_hdl_)
+  
+  SUBROUTINE xios(get_axis_attr)  &
+    ( axis_id, long_name, name, size, standard_name, unit, value )
+    
+    IMPLICIT NONE
+      TYPE(txios(axis))  :: axis_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::axis_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: size
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: value(:)
+      
+      CALL xios(get_axis_handle)(axis_id,axis_hdl)
+      CALL xios(get_axis_attr_hdl_)   &
+      ( axis_hdl, long_name, name, size, standard_name, unit, value )
+    
+  END SUBROUTINE xios(get_axis_attr)
+  
+  SUBROUTINE xios(get_axis_attr_hdl)  &
+    ( axis_hdl, long_name, name, size, standard_name, unit, value )
+    
+    IMPLICIT NONE
+      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: size
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: value(:)
+      
+      CALL xios(get_axis_attr_hdl_)  &
+      ( axis_hdl, long_name, name, size, standard_name, unit, value )
+    
+  END SUBROUTINE xios(get_axis_attr_hdl)
+  
+  SUBROUTINE xios(get_axis_attr_hdl_)   &
+    ( axis_hdl, long_name_, name_, size_, standard_name_, unit_, value_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: size_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: value_(:)
+      
+      IF (PRESENT(long_name_)) THEN
+        CALL cxios_get_axis_long_name(axis_hdl%daddr, long_name_, len(long_name_))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_get_axis_name(axis_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(size_)) THEN
+        CALL cxios_get_axis_size(axis_hdl%daddr, size_)
+      ENDIF
+      
+      IF (PRESENT(standard_name_)) THEN
+        CALL cxios_get_axis_standard_name(axis_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+      
+      IF (PRESENT(unit_)) THEN
+        CALL cxios_get_axis_unit(axis_hdl%daddr, unit_, len(unit_))
+      ENDIF
+      
+      IF (PRESENT(value_)) THEN
+        CALL cxios_get_axis_value(axis_hdl%daddr, value_,size(value_,1))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(get_axis_attr_hdl_)
+  
+END MODULE iaxis_attr
Index: XIOS/trunk/src/interface/fortran_attr/iaxisgroup_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/iaxisgroup_attr.F90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/iaxisgroup_attr.F90	(revision 326)
@@ -0,0 +1,179 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE iaxisgroup_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE iaxis
+  USE axisgroup_interface_attr
+  
+CONTAINS
+  
+  SUBROUTINE xios(set_axisgroup_attr)  &
+    ( axisgroup_id, group_ref, long_name, name, size, standard_name, unit, value )
+    
+    IMPLICIT NONE
+      TYPE(txios(axisgroup))  :: axisgroup_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::axisgroup_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      INTEGER  , OPTIONAL, INTENT(IN) :: size
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: value(:)
+      
+      CALL xios(get_axisgroup_handle)(axisgroup_id,axisgroup_hdl)
+      CALL xios(set_axisgroup_attr_hdl_)   &
+      ( axisgroup_hdl, group_ref, long_name, name, size, standard_name, unit, value )
+    
+  END SUBROUTINE xios(set_axisgroup_attr)
+  
+  SUBROUTINE xios(set_axisgroup_attr_hdl)  &
+    ( axisgroup_hdl, group_ref, long_name, name, size, standard_name, unit, value )
+    
+    IMPLICIT NONE
+      TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      INTEGER  , OPTIONAL, INTENT(IN) :: size
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: value(:)
+      
+      CALL xios(set_axisgroup_attr_hdl_)  &
+      ( axisgroup_hdl, group_ref, long_name, name, size, standard_name, unit, value )
+    
+  END SUBROUTINE xios(set_axisgroup_attr_hdl)
+  
+  SUBROUTINE xios(set_axisgroup_attr_hdl_)   &
+    ( axisgroup_hdl, group_ref_, long_name_, name_, size_, standard_name_, unit_, value_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
+      INTEGER  , OPTIONAL, INTENT(IN) :: size_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: value_(:)
+      
+      IF (PRESENT(group_ref_)) THEN
+        CALL cxios_set_axisgroup_group_ref(axisgroup_hdl%daddr, group_ref_, len(group_ref_))
+      ENDIF
+      
+      IF (PRESENT(long_name_)) THEN
+        CALL cxios_set_axisgroup_long_name(axisgroup_hdl%daddr, long_name_, len(long_name_))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_set_axisgroup_name(axisgroup_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(size_)) THEN
+        CALL cxios_set_axisgroup_size(axisgroup_hdl%daddr, size_)
+      ENDIF
+      
+      IF (PRESENT(standard_name_)) THEN
+        CALL cxios_set_axisgroup_standard_name(axisgroup_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+      
+      IF (PRESENT(unit_)) THEN
+        CALL cxios_set_axisgroup_unit(axisgroup_hdl%daddr, unit_, len(unit_))
+      ENDIF
+      
+      IF (PRESENT(value_)) THEN
+        CALL cxios_set_axisgroup_value(axisgroup_hdl%daddr, value_,size(value_,1))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(set_axisgroup_attr_hdl_)
+  
+  SUBROUTINE xios(get_axisgroup_attr)  &
+    ( axisgroup_id, group_ref, long_name, name, size, standard_name, unit, value )
+    
+    IMPLICIT NONE
+      TYPE(txios(axisgroup))  :: axisgroup_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::axisgroup_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: size
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: value(:)
+      
+      CALL xios(get_axisgroup_handle)(axisgroup_id,axisgroup_hdl)
+      CALL xios(get_axisgroup_attr_hdl_)   &
+      ( axisgroup_hdl, group_ref, long_name, name, size, standard_name, unit, value )
+    
+  END SUBROUTINE xios(get_axisgroup_attr)
+  
+  SUBROUTINE xios(get_axisgroup_attr_hdl)  &
+    ( axisgroup_hdl, group_ref, long_name, name, size, standard_name, unit, value )
+    
+    IMPLICIT NONE
+      TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: size
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: value(:)
+      
+      CALL xios(get_axisgroup_attr_hdl_)  &
+      ( axisgroup_hdl, group_ref, long_name, name, size, standard_name, unit, value )
+    
+  END SUBROUTINE xios(get_axisgroup_attr_hdl)
+  
+  SUBROUTINE xios(get_axisgroup_attr_hdl_)   &
+    ( axisgroup_hdl, group_ref_, long_name_, name_, size_, standard_name_, unit_, value_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: size_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: value_(:)
+      
+      IF (PRESENT(group_ref_)) THEN
+        CALL cxios_get_axisgroup_group_ref(axisgroup_hdl%daddr, group_ref_, len(group_ref_))
+      ENDIF
+      
+      IF (PRESENT(long_name_)) THEN
+        CALL cxios_get_axisgroup_long_name(axisgroup_hdl%daddr, long_name_, len(long_name_))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_get_axisgroup_name(axisgroup_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(size_)) THEN
+        CALL cxios_get_axisgroup_size(axisgroup_hdl%daddr, size_)
+      ENDIF
+      
+      IF (PRESENT(standard_name_)) THEN
+        CALL cxios_get_axisgroup_standard_name(axisgroup_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+      
+      IF (PRESENT(unit_)) THEN
+        CALL cxios_get_axisgroup_unit(axisgroup_hdl%daddr, unit_, len(unit_))
+      ENDIF
+      
+      IF (PRESENT(value_)) THEN
+        CALL cxios_get_axisgroup_value(axisgroup_hdl%daddr, value_,size(value_,1))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(get_axisgroup_attr_hdl_)
+  
+END MODULE iaxisgroup_attr
Index: XIOS/trunk/src/interface/fortran_attr/icontext_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/icontext_attr.F90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/icontext_attr.F90	(revision 326)
@@ -0,0 +1,137 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE icontext_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE icontext
+  USE context_interface_attr
+  
+CONTAINS
+  
+  SUBROUTINE xios(set_context_attr)  &
+    ( context_id, calendar_type, output_dir, start_date, timestep )
+    
+    IMPLICIT NONE
+      TYPE(txios(context))  :: context_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::context_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: timestep
+      
+      CALL xios(get_context_handle)(context_id,context_hdl)
+      CALL xios(set_context_attr_hdl_)   &
+      ( context_hdl, calendar_type, output_dir, start_date, timestep )
+    
+  END SUBROUTINE xios(set_context_attr)
+  
+  SUBROUTINE xios(set_context_attr_hdl)  &
+    ( context_hdl, calendar_type, output_dir, start_date, timestep )
+    
+    IMPLICIT NONE
+      TYPE(txios(context)) , INTENT(IN) :: context_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: timestep
+      
+      CALL xios(set_context_attr_hdl_)  &
+      ( context_hdl, calendar_type, output_dir, start_date, timestep )
+    
+  END SUBROUTINE xios(set_context_attr_hdl)
+  
+  SUBROUTINE xios(set_context_attr_hdl_)   &
+    ( context_hdl, calendar_type_, output_dir_, start_date_, timestep_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(context)) , INTENT(IN) :: context_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: timestep_
+      
+      IF (PRESENT(calendar_type_)) THEN
+        CALL cxios_set_context_calendar_type(context_hdl%daddr, calendar_type_, len(calendar_type_))
+      ENDIF
+      
+      IF (PRESENT(output_dir_)) THEN
+        CALL cxios_set_context_output_dir(context_hdl%daddr, output_dir_, len(output_dir_))
+      ENDIF
+      
+      IF (PRESENT(start_date_)) THEN
+        CALL cxios_set_context_start_date(context_hdl%daddr, start_date_, len(start_date_))
+      ENDIF
+      
+      IF (PRESENT(timestep_)) THEN
+        CALL cxios_set_context_timestep(context_hdl%daddr, timestep_, len(timestep_))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(set_context_attr_hdl_)
+  
+  SUBROUTINE xios(get_context_attr)  &
+    ( context_id, calendar_type, output_dir, start_date, timestep )
+    
+    IMPLICIT NONE
+      TYPE(txios(context))  :: context_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::context_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: calendar_type
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: timestep
+      
+      CALL xios(get_context_handle)(context_id,context_hdl)
+      CALL xios(get_context_attr_hdl_)   &
+      ( context_hdl, calendar_type, output_dir, start_date, timestep )
+    
+  END SUBROUTINE xios(get_context_attr)
+  
+  SUBROUTINE xios(get_context_attr_hdl)  &
+    ( context_hdl, calendar_type, output_dir, start_date, timestep )
+    
+    IMPLICIT NONE
+      TYPE(txios(context)) , INTENT(IN) :: context_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: calendar_type
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: timestep
+      
+      CALL xios(get_context_attr_hdl_)  &
+      ( context_hdl, calendar_type, output_dir, start_date, timestep )
+    
+  END SUBROUTINE xios(get_context_attr_hdl)
+  
+  SUBROUTINE xios(get_context_attr_hdl_)   &
+    ( context_hdl, calendar_type_, output_dir_, start_date_, timestep_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(context)) , INTENT(IN) :: context_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: calendar_type_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: timestep_
+      
+      IF (PRESENT(calendar_type_)) THEN
+        CALL cxios_get_context_calendar_type(context_hdl%daddr, calendar_type_, len(calendar_type_))
+      ENDIF
+      
+      IF (PRESENT(output_dir_)) THEN
+        CALL cxios_get_context_output_dir(context_hdl%daddr, output_dir_, len(output_dir_))
+      ENDIF
+      
+      IF (PRESENT(start_date_)) THEN
+        CALL cxios_get_context_start_date(context_hdl%daddr, start_date_, len(start_date_))
+      ENDIF
+      
+      IF (PRESENT(timestep_)) THEN
+        CALL cxios_get_context_timestep(context_hdl%daddr, timestep_, len(timestep_))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(get_context_attr_hdl_)
+  
+END MODULE icontext_attr
Index: XIOS/trunk/src/interface/fortran_attr/idomain_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/idomain_attr.F90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/idomain_attr.F90	(revision 326)
@@ -0,0 +1,555 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE idomain_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE idomain
+  USE domain_interface_attr
+  
+CONTAINS
+  
+  SUBROUTINE xios(set_domain_attr)  &
+    ( domain_id, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni  &
+    , data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name, lonvalue, mask  &
+    , name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  &
+    , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+    IMPLICIT NONE
+      TYPE(txios(domain))  :: domain_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::domain_id
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_dim
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_ibegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_j_index(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_jbegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_n_index
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_ni
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref
+      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: iend
+      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: jend
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue(:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue(:)
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni_glo
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj_glo
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_loc
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_loc
+      
+      CALL xios(get_domain_handle)(domain_id,domain_hdl)
+      CALL xios(set_domain_attr_hdl_)   &
+      ( domain_hdl, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni  &
+      , data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name, lonvalue, mask  &
+      , name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  &
+      , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+  END SUBROUTINE xios(set_domain_attr)
+  
+  SUBROUTINE xios(set_domain_attr_hdl)  &
+    ( domain_hdl, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni  &
+    , data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name, lonvalue, mask  &
+    , name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  &
+    , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+    IMPLICIT NONE
+      TYPE(txios(domain)) , INTENT(IN) :: domain_hdl
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_dim
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_ibegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_j_index(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_jbegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_n_index
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_ni
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref
+      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: iend
+      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: jend
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue(:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue(:)
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni_glo
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj_glo
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_loc
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_loc
+      
+      CALL xios(set_domain_attr_hdl_)  &
+      ( domain_hdl, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni  &
+      , data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name, lonvalue, mask  &
+      , name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  &
+      , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+  END SUBROUTINE xios(set_domain_attr_hdl)
+  
+  SUBROUTINE xios(set_domain_attr_hdl_)   &
+    ( domain_hdl, data_dim_, data_i_index_, data_ibegin_, data_j_index_, data_jbegin_, data_n_index_  &
+    , data_ni_, data_nj_, domain_group_ref_, ibegin_, iend_, jbegin_, jend_, latvalue_, long_name_  &
+    , lonvalue_, mask_, name_, ni_, ni_glo_, nj_, nj_glo_, standard_name_, zoom_ibegin_, zoom_ibegin_loc_  &
+    , zoom_jbegin_, zoom_jbegin_loc_, zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(domain)) , INTENT(IN) :: domain_hdl
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_dim_
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_ibegin_
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_j_index_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_jbegin_
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_n_index_
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_ni_
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref_
+      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin_
+      INTEGER  , OPTIONAL, INTENT(IN) :: iend_
+      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin_
+      INTEGER  , OPTIONAL, INTENT(IN) :: jend_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_(:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_(:)
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask__tmp(:,:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni_
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni_glo_
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj_
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj_glo_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_loc_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_loc_
+      
+      IF (PRESENT(data_dim_)) THEN
+        CALL cxios_set_domain_data_dim(domain_hdl%daddr, data_dim_)
+      ENDIF
+      
+      IF (PRESENT(data_i_index_)) THEN
+        CALL cxios_set_domain_data_i_index(domain_hdl%daddr, data_i_index_,size(data_i_index_,1))
+      ENDIF
+      
+      IF (PRESENT(data_ibegin_)) THEN
+        CALL cxios_set_domain_data_ibegin(domain_hdl%daddr, data_ibegin_)
+      ENDIF
+      
+      IF (PRESENT(data_j_index_)) THEN
+        CALL cxios_set_domain_data_j_index(domain_hdl%daddr, data_j_index_,size(data_j_index_,1))
+      ENDIF
+      
+      IF (PRESENT(data_jbegin_)) THEN
+        CALL cxios_set_domain_data_jbegin(domain_hdl%daddr, data_jbegin_)
+      ENDIF
+      
+      IF (PRESENT(data_n_index_)) THEN
+        CALL cxios_set_domain_data_n_index(domain_hdl%daddr, data_n_index_)
+      ENDIF
+      
+      IF (PRESENT(data_ni_)) THEN
+        CALL cxios_set_domain_data_ni(domain_hdl%daddr, data_ni_)
+      ENDIF
+      
+      IF (PRESENT(data_nj_)) THEN
+        CALL cxios_set_domain_data_nj(domain_hdl%daddr, data_nj_)
+      ENDIF
+      
+      IF (PRESENT(domain_group_ref_)) THEN
+        CALL cxios_set_domain_domain_group_ref(domain_hdl%daddr, domain_group_ref_, len(domain_group_ref_))
+      ENDIF
+      
+      IF (PRESENT(ibegin_)) THEN
+        CALL cxios_set_domain_ibegin(domain_hdl%daddr, ibegin_)
+      ENDIF
+      
+      IF (PRESENT(iend_)) THEN
+        CALL cxios_set_domain_iend(domain_hdl%daddr, iend_)
+      ENDIF
+      
+      IF (PRESENT(jbegin_)) THEN
+        CALL cxios_set_domain_jbegin(domain_hdl%daddr, jbegin_)
+      ENDIF
+      
+      IF (PRESENT(jend_)) THEN
+        CALL cxios_set_domain_jend(domain_hdl%daddr, jend_)
+      ENDIF
+      
+      IF (PRESENT(latvalue_)) THEN
+        CALL cxios_set_domain_latvalue(domain_hdl%daddr, latvalue_,size(latvalue_,1))
+      ENDIF
+      
+      IF (PRESENT(long_name_)) THEN
+        CALL cxios_set_domain_long_name(domain_hdl%daddr, long_name_, len(long_name_))
+      ENDIF
+      
+      IF (PRESENT(lonvalue_)) THEN
+        CALL cxios_set_domain_lonvalue(domain_hdl%daddr, lonvalue_,size(lonvalue_,1))
+      ENDIF
+      
+      IF (PRESENT(mask_)) THEN
+        ALLOCATE(mask__tmp(size(mask_,1),size(mask_,2)))
+        mask__tmp=mask_
+        CALL cxios_set_domain_mask(domain_hdl%daddr, mask__tmp,size(mask_,1),size(mask_,2))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_set_domain_name(domain_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(ni_)) THEN
+        CALL cxios_set_domain_ni(domain_hdl%daddr, ni_)
+      ENDIF
+      
+      IF (PRESENT(ni_glo_)) THEN
+        CALL cxios_set_domain_ni_glo(domain_hdl%daddr, ni_glo_)
+      ENDIF
+      
+      IF (PRESENT(nj_)) THEN
+        CALL cxios_set_domain_nj(domain_hdl%daddr, nj_)
+      ENDIF
+      
+      IF (PRESENT(nj_glo_)) THEN
+        CALL cxios_set_domain_nj_glo(domain_hdl%daddr, nj_glo_)
+      ENDIF
+      
+      IF (PRESENT(standard_name_)) THEN
+        CALL cxios_set_domain_standard_name(domain_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+      
+      IF (PRESENT(zoom_ibegin_)) THEN
+        CALL cxios_set_domain_zoom_ibegin(domain_hdl%daddr, zoom_ibegin_)
+      ENDIF
+      
+      IF (PRESENT(zoom_ibegin_loc_)) THEN
+        CALL cxios_set_domain_zoom_ibegin_loc(domain_hdl%daddr, zoom_ibegin_loc_)
+      ENDIF
+      
+      IF (PRESENT(zoom_jbegin_)) THEN
+        CALL cxios_set_domain_zoom_jbegin(domain_hdl%daddr, zoom_jbegin_)
+      ENDIF
+      
+      IF (PRESENT(zoom_jbegin_loc_)) THEN
+        CALL cxios_set_domain_zoom_jbegin_loc(domain_hdl%daddr, zoom_jbegin_loc_)
+      ENDIF
+      
+      IF (PRESENT(zoom_ni_)) THEN
+        CALL cxios_set_domain_zoom_ni(domain_hdl%daddr, zoom_ni_)
+      ENDIF
+      
+      IF (PRESENT(zoom_ni_loc_)) THEN
+        CALL cxios_set_domain_zoom_ni_loc(domain_hdl%daddr, zoom_ni_loc_)
+      ENDIF
+      
+      IF (PRESENT(zoom_nj_)) THEN
+        CALL cxios_set_domain_zoom_nj(domain_hdl%daddr, zoom_nj_)
+      ENDIF
+      
+      IF (PRESENT(zoom_nj_loc_)) THEN
+        CALL cxios_set_domain_zoom_nj_loc(domain_hdl%daddr, zoom_nj_loc_)
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(set_domain_attr_hdl_)
+  
+  SUBROUTINE xios(get_domain_attr)  &
+    ( domain_id, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni  &
+    , data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name, lonvalue, mask  &
+    , name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  &
+    , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+    IMPLICIT NONE
+      TYPE(txios(domain))  :: domain_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::domain_id
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ibegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_j_index(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_jbegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_n_index
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ni
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: iend
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jend
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue(:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue(:)
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni_glo
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj_glo
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_loc
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_loc
+      
+      CALL xios(get_domain_handle)(domain_id,domain_hdl)
+      CALL xios(get_domain_attr_hdl_)   &
+      ( domain_hdl, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni  &
+      , data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name, lonvalue, mask  &
+      , name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  &
+      , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+  END SUBROUTINE xios(get_domain_attr)
+  
+  SUBROUTINE xios(get_domain_attr_hdl)  &
+    ( domain_hdl, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni  &
+    , data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name, lonvalue, mask  &
+    , name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  &
+    , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+    IMPLICIT NONE
+      TYPE(txios(domain)) , INTENT(IN) :: domain_hdl
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ibegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_j_index(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_jbegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_n_index
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ni
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: iend
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jend
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue(:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue(:)
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni_glo
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj_glo
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_loc
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_loc
+      
+      CALL xios(get_domain_attr_hdl_)  &
+      ( domain_hdl, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index, data_ni  &
+      , data_nj, domain_group_ref, ibegin, iend, jbegin, jend, latvalue, long_name, lonvalue, mask  &
+      , name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc, zoom_jbegin, zoom_jbegin_loc  &
+      , zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+  END SUBROUTINE xios(get_domain_attr_hdl)
+  
+  SUBROUTINE xios(get_domain_attr_hdl_)   &
+    ( domain_hdl, data_dim_, data_i_index_, data_ibegin_, data_j_index_, data_jbegin_, data_n_index_  &
+    , data_ni_, data_nj_, domain_group_ref_, ibegin_, iend_, jbegin_, jend_, latvalue_, long_name_  &
+    , lonvalue_, mask_, name_, ni_, ni_glo_, nj_, nj_glo_, standard_name_, zoom_ibegin_, zoom_ibegin_loc_  &
+    , zoom_jbegin_, zoom_jbegin_loc_, zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(domain)) , INTENT(IN) :: domain_hdl
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ibegin_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_j_index_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_jbegin_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_n_index_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ni_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: iend_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jend_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_(:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_(:)
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask__tmp(:,:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni_glo_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj_glo_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_loc_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_loc_
+      
+      IF (PRESENT(data_dim_)) THEN
+        CALL cxios_get_domain_data_dim(domain_hdl%daddr, data_dim_)
+      ENDIF
+      
+      IF (PRESENT(data_i_index_)) THEN
+        CALL cxios_get_domain_data_i_index(domain_hdl%daddr, data_i_index_,size(data_i_index_,1))
+      ENDIF
+      
+      IF (PRESENT(data_ibegin_)) THEN
+        CALL cxios_get_domain_data_ibegin(domain_hdl%daddr, data_ibegin_)
+      ENDIF
+      
+      IF (PRESENT(data_j_index_)) THEN
+        CALL cxios_get_domain_data_j_index(domain_hdl%daddr, data_j_index_,size(data_j_index_,1))
+      ENDIF
+      
+      IF (PRESENT(data_jbegin_)) THEN
+        CALL cxios_get_domain_data_jbegin(domain_hdl%daddr, data_jbegin_)
+      ENDIF
+      
+      IF (PRESENT(data_n_index_)) THEN
+        CALL cxios_get_domain_data_n_index(domain_hdl%daddr, data_n_index_)
+      ENDIF
+      
+      IF (PRESENT(data_ni_)) THEN
+        CALL cxios_get_domain_data_ni(domain_hdl%daddr, data_ni_)
+      ENDIF
+      
+      IF (PRESENT(data_nj_)) THEN
+        CALL cxios_get_domain_data_nj(domain_hdl%daddr, data_nj_)
+      ENDIF
+      
+      IF (PRESENT(domain_group_ref_)) THEN
+        CALL cxios_get_domain_domain_group_ref(domain_hdl%daddr, domain_group_ref_, len(domain_group_ref_))
+      ENDIF
+      
+      IF (PRESENT(ibegin_)) THEN
+        CALL cxios_get_domain_ibegin(domain_hdl%daddr, ibegin_)
+      ENDIF
+      
+      IF (PRESENT(iend_)) THEN
+        CALL cxios_get_domain_iend(domain_hdl%daddr, iend_)
+      ENDIF
+      
+      IF (PRESENT(jbegin_)) THEN
+        CALL cxios_get_domain_jbegin(domain_hdl%daddr, jbegin_)
+      ENDIF
+      
+      IF (PRESENT(jend_)) THEN
+        CALL cxios_get_domain_jend(domain_hdl%daddr, jend_)
+      ENDIF
+      
+      IF (PRESENT(latvalue_)) THEN
+        CALL cxios_get_domain_latvalue(domain_hdl%daddr, latvalue_,size(latvalue_,1))
+      ENDIF
+      
+      IF (PRESENT(long_name_)) THEN
+        CALL cxios_get_domain_long_name(domain_hdl%daddr, long_name_, len(long_name_))
+      ENDIF
+      
+      IF (PRESENT(lonvalue_)) THEN
+        CALL cxios_get_domain_lonvalue(domain_hdl%daddr, lonvalue_,size(lonvalue_,1))
+      ENDIF
+      
+      IF (PRESENT(mask_)) THEN
+        ALLOCATE(mask__tmp(size(mask_,1),size(mask_,2)))
+        CALL cxios_get_domain_mask(domain_hdl%daddr, mask__tmp,size(mask_,1),size(mask_,2))
+        mask_=mask__tmp
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_get_domain_name(domain_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(ni_)) THEN
+        CALL cxios_get_domain_ni(domain_hdl%daddr, ni_)
+      ENDIF
+      
+      IF (PRESENT(ni_glo_)) THEN
+        CALL cxios_get_domain_ni_glo(domain_hdl%daddr, ni_glo_)
+      ENDIF
+      
+      IF (PRESENT(nj_)) THEN
+        CALL cxios_get_domain_nj(domain_hdl%daddr, nj_)
+      ENDIF
+      
+      IF (PRESENT(nj_glo_)) THEN
+        CALL cxios_get_domain_nj_glo(domain_hdl%daddr, nj_glo_)
+      ENDIF
+      
+      IF (PRESENT(standard_name_)) THEN
+        CALL cxios_get_domain_standard_name(domain_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+      
+      IF (PRESENT(zoom_ibegin_)) THEN
+        CALL cxios_get_domain_zoom_ibegin(domain_hdl%daddr, zoom_ibegin_)
+      ENDIF
+      
+      IF (PRESENT(zoom_ibegin_loc_)) THEN
+        CALL cxios_get_domain_zoom_ibegin_loc(domain_hdl%daddr, zoom_ibegin_loc_)
+      ENDIF
+      
+      IF (PRESENT(zoom_jbegin_)) THEN
+        CALL cxios_get_domain_zoom_jbegin(domain_hdl%daddr, zoom_jbegin_)
+      ENDIF
+      
+      IF (PRESENT(zoom_jbegin_loc_)) THEN
+        CALL cxios_get_domain_zoom_jbegin_loc(domain_hdl%daddr, zoom_jbegin_loc_)
+      ENDIF
+      
+      IF (PRESENT(zoom_ni_)) THEN
+        CALL cxios_get_domain_zoom_ni(domain_hdl%daddr, zoom_ni_)
+      ENDIF
+      
+      IF (PRESENT(zoom_ni_loc_)) THEN
+        CALL cxios_get_domain_zoom_ni_loc(domain_hdl%daddr, zoom_ni_loc_)
+      ENDIF
+      
+      IF (PRESENT(zoom_nj_)) THEN
+        CALL cxios_get_domain_zoom_nj(domain_hdl%daddr, zoom_nj_)
+      ENDIF
+      
+      IF (PRESENT(zoom_nj_loc_)) THEN
+        CALL cxios_get_domain_zoom_nj_loc(domain_hdl%daddr, zoom_nj_loc_)
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(get_domain_attr_hdl_)
+  
+END MODULE idomain_attr
Index: XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90	(revision 326)
@@ -0,0 +1,571 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE idomaingroup_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE idomain
+  USE domaingroup_interface_attr
+  
+CONTAINS
+  
+  SUBROUTINE xios(set_domaingroup_attr)  &
+    ( domaingroup_id, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index  &
+    , data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  &
+    , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc  &
+    , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+    IMPLICIT NONE
+      TYPE(txios(domaingroup))  :: domaingroup_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::domaingroup_id
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_dim
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_ibegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_j_index(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_jbegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_n_index
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_ni
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref
+      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: iend
+      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: jend
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue(:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue(:)
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni_glo
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj_glo
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_loc
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_loc
+      
+      CALL xios(get_domaingroup_handle)(domaingroup_id,domaingroup_hdl)
+      CALL xios(set_domaingroup_attr_hdl_)   &
+      ( domaingroup_hdl, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index  &
+      , data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  &
+      , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc  &
+      , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+  END SUBROUTINE xios(set_domaingroup_attr)
+  
+  SUBROUTINE xios(set_domaingroup_attr_hdl)  &
+    ( domaingroup_hdl, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index  &
+    , data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  &
+    , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc  &
+    , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+    IMPLICIT NONE
+      TYPE(txios(domaingroup)) , INTENT(IN) :: domaingroup_hdl
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_dim
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_ibegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_j_index(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_jbegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_n_index
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_ni
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref
+      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: iend
+      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: jend
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue(:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue(:)
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni_glo
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj_glo
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_loc
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_loc
+      
+      CALL xios(set_domaingroup_attr_hdl_)  &
+      ( domaingroup_hdl, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index  &
+      , data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  &
+      , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc  &
+      , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+  END SUBROUTINE xios(set_domaingroup_attr_hdl)
+  
+  SUBROUTINE xios(set_domaingroup_attr_hdl_)   &
+    ( domaingroup_hdl, data_dim_, data_i_index_, data_ibegin_, data_j_index_, data_jbegin_, data_n_index_  &
+    , data_ni_, data_nj_, domain_group_ref_, group_ref_, ibegin_, iend_, jbegin_, jend_, latvalue_  &
+    , long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_, nj_glo_, standard_name_, zoom_ibegin_  &
+    , zoom_ibegin_loc_, zoom_jbegin_, zoom_jbegin_loc_, zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_  &
+     )
+    
+    IMPLICIT NONE
+      TYPE(txios(domaingroup)) , INTENT(IN) :: domaingroup_hdl
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_dim_
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_ibegin_
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_j_index_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_jbegin_
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_n_index_
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_ni_
+      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_
+      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin_
+      INTEGER  , OPTIONAL, INTENT(IN) :: iend_
+      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin_
+      INTEGER  , OPTIONAL, INTENT(IN) :: jend_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_(:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_(:)
+      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask__tmp(:,:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni_
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni_glo_
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj_
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj_glo_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_ni_loc_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_
+      INTEGER  , OPTIONAL, INTENT(IN) :: zoom_nj_loc_
+      
+      IF (PRESENT(data_dim_)) THEN
+        CALL cxios_set_domaingroup_data_dim(domaingroup_hdl%daddr, data_dim_)
+      ENDIF
+      
+      IF (PRESENT(data_i_index_)) THEN
+        CALL cxios_set_domaingroup_data_i_index(domaingroup_hdl%daddr, data_i_index_,size(data_i_index_,1))
+      ENDIF
+      
+      IF (PRESENT(data_ibegin_)) THEN
+        CALL cxios_set_domaingroup_data_ibegin(domaingroup_hdl%daddr, data_ibegin_)
+      ENDIF
+      
+      IF (PRESENT(data_j_index_)) THEN
+        CALL cxios_set_domaingroup_data_j_index(domaingroup_hdl%daddr, data_j_index_,size(data_j_index_,1))
+      ENDIF
+      
+      IF (PRESENT(data_jbegin_)) THEN
+        CALL cxios_set_domaingroup_data_jbegin(domaingroup_hdl%daddr, data_jbegin_)
+      ENDIF
+      
+      IF (PRESENT(data_n_index_)) THEN
+        CALL cxios_set_domaingroup_data_n_index(domaingroup_hdl%daddr, data_n_index_)
+      ENDIF
+      
+      IF (PRESENT(data_ni_)) THEN
+        CALL cxios_set_domaingroup_data_ni(domaingroup_hdl%daddr, data_ni_)
+      ENDIF
+      
+      IF (PRESENT(data_nj_)) THEN
+        CALL cxios_set_domaingroup_data_nj(domaingroup_hdl%daddr, data_nj_)
+      ENDIF
+      
+      IF (PRESENT(domain_group_ref_)) THEN
+        CALL cxios_set_domaingroup_domain_group_ref(domaingroup_hdl%daddr, domain_group_ref_, len(domain_group_ref_))
+      ENDIF
+      
+      IF (PRESENT(group_ref_)) THEN
+        CALL cxios_set_domaingroup_group_ref(domaingroup_hdl%daddr, group_ref_, len(group_ref_))
+      ENDIF
+      
+      IF (PRESENT(ibegin_)) THEN
+        CALL cxios_set_domaingroup_ibegin(domaingroup_hdl%daddr, ibegin_)
+      ENDIF
+      
+      IF (PRESENT(iend_)) THEN
+        CALL cxios_set_domaingroup_iend(domaingroup_hdl%daddr, iend_)
+      ENDIF
+      
+      IF (PRESENT(jbegin_)) THEN
+        CALL cxios_set_domaingroup_jbegin(domaingroup_hdl%daddr, jbegin_)
+      ENDIF
+      
+      IF (PRESENT(jend_)) THEN
+        CALL cxios_set_domaingroup_jend(domaingroup_hdl%daddr, jend_)
+      ENDIF
+      
+      IF (PRESENT(latvalue_)) THEN
+        CALL cxios_set_domaingroup_latvalue(domaingroup_hdl%daddr, latvalue_,size(latvalue_,1))
+      ENDIF
+      
+      IF (PRESENT(long_name_)) THEN
+        CALL cxios_set_domaingroup_long_name(domaingroup_hdl%daddr, long_name_, len(long_name_))
+      ENDIF
+      
+      IF (PRESENT(lonvalue_)) THEN
+        CALL cxios_set_domaingroup_lonvalue(domaingroup_hdl%daddr, lonvalue_,size(lonvalue_,1))
+      ENDIF
+      
+      IF (PRESENT(mask_)) THEN
+        ALLOCATE(mask__tmp(size(mask_,1),size(mask_,2)))
+        mask__tmp=mask_
+        CALL cxios_set_domaingroup_mask(domaingroup_hdl%daddr, mask__tmp,size(mask_,1),size(mask_,2))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_set_domaingroup_name(domaingroup_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(ni_)) THEN
+        CALL cxios_set_domaingroup_ni(domaingroup_hdl%daddr, ni_)
+      ENDIF
+      
+      IF (PRESENT(ni_glo_)) THEN
+        CALL cxios_set_domaingroup_ni_glo(domaingroup_hdl%daddr, ni_glo_)
+      ENDIF
+      
+      IF (PRESENT(nj_)) THEN
+        CALL cxios_set_domaingroup_nj(domaingroup_hdl%daddr, nj_)
+      ENDIF
+      
+      IF (PRESENT(nj_glo_)) THEN
+        CALL cxios_set_domaingroup_nj_glo(domaingroup_hdl%daddr, nj_glo_)
+      ENDIF
+      
+      IF (PRESENT(standard_name_)) THEN
+        CALL cxios_set_domaingroup_standard_name(domaingroup_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+      
+      IF (PRESENT(zoom_ibegin_)) THEN
+        CALL cxios_set_domaingroup_zoom_ibegin(domaingroup_hdl%daddr, zoom_ibegin_)
+      ENDIF
+      
+      IF (PRESENT(zoom_ibegin_loc_)) THEN
+        CALL cxios_set_domaingroup_zoom_ibegin_loc(domaingroup_hdl%daddr, zoom_ibegin_loc_)
+      ENDIF
+      
+      IF (PRESENT(zoom_jbegin_)) THEN
+        CALL cxios_set_domaingroup_zoom_jbegin(domaingroup_hdl%daddr, zoom_jbegin_)
+      ENDIF
+      
+      IF (PRESENT(zoom_jbegin_loc_)) THEN
+        CALL cxios_set_domaingroup_zoom_jbegin_loc(domaingroup_hdl%daddr, zoom_jbegin_loc_)
+      ENDIF
+      
+      IF (PRESENT(zoom_ni_)) THEN
+        CALL cxios_set_domaingroup_zoom_ni(domaingroup_hdl%daddr, zoom_ni_)
+      ENDIF
+      
+      IF (PRESENT(zoom_ni_loc_)) THEN
+        CALL cxios_set_domaingroup_zoom_ni_loc(domaingroup_hdl%daddr, zoom_ni_loc_)
+      ENDIF
+      
+      IF (PRESENT(zoom_nj_)) THEN
+        CALL cxios_set_domaingroup_zoom_nj(domaingroup_hdl%daddr, zoom_nj_)
+      ENDIF
+      
+      IF (PRESENT(zoom_nj_loc_)) THEN
+        CALL cxios_set_domaingroup_zoom_nj_loc(domaingroup_hdl%daddr, zoom_nj_loc_)
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(set_domaingroup_attr_hdl_)
+  
+  SUBROUTINE xios(get_domaingroup_attr)  &
+    ( domaingroup_id, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index  &
+    , data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  &
+    , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc  &
+    , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+    IMPLICIT NONE
+      TYPE(txios(domaingroup))  :: domaingroup_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::domaingroup_id
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ibegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_j_index(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_jbegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_n_index
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ni
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: iend
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jend
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue(:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue(:)
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni_glo
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj_glo
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_loc
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_loc
+      
+      CALL xios(get_domaingroup_handle)(domaingroup_id,domaingroup_hdl)
+      CALL xios(get_domaingroup_attr_hdl_)   &
+      ( domaingroup_hdl, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index  &
+      , data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  &
+      , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc  &
+      , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+  END SUBROUTINE xios(get_domaingroup_attr)
+  
+  SUBROUTINE xios(get_domaingroup_attr_hdl)  &
+    ( domaingroup_hdl, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index  &
+    , data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  &
+    , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc  &
+    , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+    IMPLICIT NONE
+      TYPE(txios(domaingroup)) , INTENT(IN) :: domaingroup_hdl
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ibegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_j_index(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_jbegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_n_index
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ni
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: iend
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jend
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue(:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue(:)
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_tmp(:,:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni_glo
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj_glo
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_loc
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_loc
+      
+      CALL xios(get_domaingroup_attr_hdl_)  &
+      ( domaingroup_hdl, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_n_index  &
+      , data_ni, data_nj, domain_group_ref, group_ref, ibegin, iend, jbegin, jend, latvalue, long_name  &
+      , lonvalue, mask, name, ni, ni_glo, nj, nj_glo, standard_name, zoom_ibegin, zoom_ibegin_loc  &
+      , zoom_jbegin, zoom_jbegin_loc, zoom_ni, zoom_ni_loc, zoom_nj, zoom_nj_loc )
+    
+  END SUBROUTINE xios(get_domaingroup_attr_hdl)
+  
+  SUBROUTINE xios(get_domaingroup_attr_hdl_)   &
+    ( domaingroup_hdl, data_dim_, data_i_index_, data_ibegin_, data_j_index_, data_jbegin_, data_n_index_  &
+    , data_ni_, data_nj_, domain_group_ref_, group_ref_, ibegin_, iend_, jbegin_, jend_, latvalue_  &
+    , long_name_, lonvalue_, mask_, name_, ni_, ni_glo_, nj_, nj_glo_, standard_name_, zoom_ibegin_  &
+    , zoom_ibegin_loc_, zoom_jbegin_, zoom_jbegin_loc_, zoom_ni_, zoom_ni_loc_, zoom_nj_, zoom_nj_loc_  &
+     )
+    
+    IMPLICIT NONE
+      TYPE(txios(domaingroup)) , INTENT(IN) :: domaingroup_hdl
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ibegin_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_j_index_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_jbegin_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_n_index_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ni_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_group_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: iend_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jend_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_(:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_(:)
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_(:,:)
+      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask__tmp(:,:)
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni_glo_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj_glo_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ibegin_loc_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_jbegin_loc_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_ni_loc_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: zoom_nj_loc_
+      
+      IF (PRESENT(data_dim_)) THEN
+        CALL cxios_get_domaingroup_data_dim(domaingroup_hdl%daddr, data_dim_)
+      ENDIF
+      
+      IF (PRESENT(data_i_index_)) THEN
+        CALL cxios_get_domaingroup_data_i_index(domaingroup_hdl%daddr, data_i_index_,size(data_i_index_,1))
+      ENDIF
+      
+      IF (PRESENT(data_ibegin_)) THEN
+        CALL cxios_get_domaingroup_data_ibegin(domaingroup_hdl%daddr, data_ibegin_)
+      ENDIF
+      
+      IF (PRESENT(data_j_index_)) THEN
+        CALL cxios_get_domaingroup_data_j_index(domaingroup_hdl%daddr, data_j_index_,size(data_j_index_,1))
+      ENDIF
+      
+      IF (PRESENT(data_jbegin_)) THEN
+        CALL cxios_get_domaingroup_data_jbegin(domaingroup_hdl%daddr, data_jbegin_)
+      ENDIF
+      
+      IF (PRESENT(data_n_index_)) THEN
+        CALL cxios_get_domaingroup_data_n_index(domaingroup_hdl%daddr, data_n_index_)
+      ENDIF
+      
+      IF (PRESENT(data_ni_)) THEN
+        CALL cxios_get_domaingroup_data_ni(domaingroup_hdl%daddr, data_ni_)
+      ENDIF
+      
+      IF (PRESENT(data_nj_)) THEN
+        CALL cxios_get_domaingroup_data_nj(domaingroup_hdl%daddr, data_nj_)
+      ENDIF
+      
+      IF (PRESENT(domain_group_ref_)) THEN
+        CALL cxios_get_domaingroup_domain_group_ref(domaingroup_hdl%daddr, domain_group_ref_, len(domain_group_ref_))
+      ENDIF
+      
+      IF (PRESENT(group_ref_)) THEN
+        CALL cxios_get_domaingroup_group_ref(domaingroup_hdl%daddr, group_ref_, len(group_ref_))
+      ENDIF
+      
+      IF (PRESENT(ibegin_)) THEN
+        CALL cxios_get_domaingroup_ibegin(domaingroup_hdl%daddr, ibegin_)
+      ENDIF
+      
+      IF (PRESENT(iend_)) THEN
+        CALL cxios_get_domaingroup_iend(domaingroup_hdl%daddr, iend_)
+      ENDIF
+      
+      IF (PRESENT(jbegin_)) THEN
+        CALL cxios_get_domaingroup_jbegin(domaingroup_hdl%daddr, jbegin_)
+      ENDIF
+      
+      IF (PRESENT(jend_)) THEN
+        CALL cxios_get_domaingroup_jend(domaingroup_hdl%daddr, jend_)
+      ENDIF
+      
+      IF (PRESENT(latvalue_)) THEN
+        CALL cxios_get_domaingroup_latvalue(domaingroup_hdl%daddr, latvalue_,size(latvalue_,1))
+      ENDIF
+      
+      IF (PRESENT(long_name_)) THEN
+        CALL cxios_get_domaingroup_long_name(domaingroup_hdl%daddr, long_name_, len(long_name_))
+      ENDIF
+      
+      IF (PRESENT(lonvalue_)) THEN
+        CALL cxios_get_domaingroup_lonvalue(domaingroup_hdl%daddr, lonvalue_,size(lonvalue_,1))
+      ENDIF
+      
+      IF (PRESENT(mask_)) THEN
+        ALLOCATE(mask__tmp(size(mask_,1),size(mask_,2)))
+        CALL cxios_get_domaingroup_mask(domaingroup_hdl%daddr, mask__tmp,size(mask_,1),size(mask_,2))
+        mask_=mask__tmp
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_get_domaingroup_name(domaingroup_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(ni_)) THEN
+        CALL cxios_get_domaingroup_ni(domaingroup_hdl%daddr, ni_)
+      ENDIF
+      
+      IF (PRESENT(ni_glo_)) THEN
+        CALL cxios_get_domaingroup_ni_glo(domaingroup_hdl%daddr, ni_glo_)
+      ENDIF
+      
+      IF (PRESENT(nj_)) THEN
+        CALL cxios_get_domaingroup_nj(domaingroup_hdl%daddr, nj_)
+      ENDIF
+      
+      IF (PRESENT(nj_glo_)) THEN
+        CALL cxios_get_domaingroup_nj_glo(domaingroup_hdl%daddr, nj_glo_)
+      ENDIF
+      
+      IF (PRESENT(standard_name_)) THEN
+        CALL cxios_get_domaingroup_standard_name(domaingroup_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+      
+      IF (PRESENT(zoom_ibegin_)) THEN
+        CALL cxios_get_domaingroup_zoom_ibegin(domaingroup_hdl%daddr, zoom_ibegin_)
+      ENDIF
+      
+      IF (PRESENT(zoom_ibegin_loc_)) THEN
+        CALL cxios_get_domaingroup_zoom_ibegin_loc(domaingroup_hdl%daddr, zoom_ibegin_loc_)
+      ENDIF
+      
+      IF (PRESENT(zoom_jbegin_)) THEN
+        CALL cxios_get_domaingroup_zoom_jbegin(domaingroup_hdl%daddr, zoom_jbegin_)
+      ENDIF
+      
+      IF (PRESENT(zoom_jbegin_loc_)) THEN
+        CALL cxios_get_domaingroup_zoom_jbegin_loc(domaingroup_hdl%daddr, zoom_jbegin_loc_)
+      ENDIF
+      
+      IF (PRESENT(zoom_ni_)) THEN
+        CALL cxios_get_domaingroup_zoom_ni(domaingroup_hdl%daddr, zoom_ni_)
+      ENDIF
+      
+      IF (PRESENT(zoom_ni_loc_)) THEN
+        CALL cxios_get_domaingroup_zoom_ni_loc(domaingroup_hdl%daddr, zoom_ni_loc_)
+      ENDIF
+      
+      IF (PRESENT(zoom_nj_)) THEN
+        CALL cxios_get_domaingroup_zoom_nj(domaingroup_hdl%daddr, zoom_nj_)
+      ENDIF
+      
+      IF (PRESENT(zoom_nj_loc_)) THEN
+        CALL cxios_get_domaingroup_zoom_nj_loc(domaingroup_hdl%daddr, zoom_nj_loc_)
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(get_domaingroup_attr_hdl_)
+  
+END MODULE idomaingroup_attr
Index: XIOS/trunk/src/interface/fortran_attr/ifield_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/ifield_attr.F90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/ifield_attr.F90	(revision 326)
@@ -0,0 +1,309 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE ifield_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE ifield
+  USE field_interface_attr
+  
+CONTAINS
+  
+  SUBROUTINE xios(set_field_attr)  &
+    ( field_id, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref  &
+    , level, long_name, name, operation, prec, standard_name, unit )
+    
+    IMPLICIT NONE
+      TYPE(txios(field))  :: field_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::field_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
+      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_offset
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref
+      INTEGER  , OPTIONAL, INTENT(IN) :: level
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation
+      INTEGER  , OPTIONAL, INTENT(IN) :: prec
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
+      
+      CALL xios(get_field_handle)(field_id,field_hdl)
+      CALL xios(set_field_attr_hdl_)   &
+      ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref  &
+      , level, long_name, name, operation, prec, standard_name, unit )
+    
+  END SUBROUTINE xios(set_field_attr)
+  
+  SUBROUTINE xios(set_field_attr_hdl)  &
+    ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref  &
+    , level, long_name, name, operation, prec, standard_name, unit )
+    
+    IMPLICIT NONE
+      TYPE(txios(field)) , INTENT(IN) :: field_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
+      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_offset
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref
+      INTEGER  , OPTIONAL, INTENT(IN) :: level
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation
+      INTEGER  , OPTIONAL, INTENT(IN) :: prec
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
+      
+      CALL xios(set_field_attr_hdl_)  &
+      ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref  &
+      , level, long_name, name, operation, prec, standard_name, unit )
+    
+  END SUBROUTINE xios(set_field_attr_hdl)
+  
+  SUBROUTINE xios(set_field_attr_hdl_)   &
+    ( field_hdl, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_  &
+    , grid_ref_, level_, long_name_, name_, operation_, prec_, standard_name_, unit_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(field)) , INTENT(IN) :: field_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_
+      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled_
+      LOGICAL (KIND=C_BOOL) :: enabled__tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_offset_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref_
+      INTEGER  , OPTIONAL, INTENT(IN) :: level_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_
+      INTEGER  , OPTIONAL, INTENT(IN) :: prec_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_
+      
+      IF (PRESENT(axis_ref_)) THEN
+        CALL cxios_set_field_axis_ref(field_hdl%daddr, axis_ref_, len(axis_ref_))
+      ENDIF
+      
+      IF (PRESENT(default_value_)) THEN
+        CALL cxios_set_field_default_value(field_hdl%daddr, default_value_)
+      ENDIF
+      
+      IF (PRESENT(domain_ref_)) THEN
+        CALL cxios_set_field_domain_ref(field_hdl%daddr, domain_ref_, len(domain_ref_))
+      ENDIF
+      
+      IF (PRESENT(enabled_)) THEN
+        enabled__tmp=enabled_
+        CALL cxios_set_field_enabled(field_hdl%daddr, enabled__tmp)
+      ENDIF
+      
+      IF (PRESENT(field_ref_)) THEN
+        CALL cxios_set_field_field_ref(field_hdl%daddr, field_ref_, len(field_ref_))
+      ENDIF
+      
+      IF (PRESENT(freq_offset_)) THEN
+        CALL cxios_set_field_freq_offset(field_hdl%daddr, freq_offset_, len(freq_offset_))
+      ENDIF
+      
+      IF (PRESENT(freq_op_)) THEN
+        CALL cxios_set_field_freq_op(field_hdl%daddr, freq_op_, len(freq_op_))
+      ENDIF
+      
+      IF (PRESENT(grid_ref_)) THEN
+        CALL cxios_set_field_grid_ref(field_hdl%daddr, grid_ref_, len(grid_ref_))
+      ENDIF
+      
+      IF (PRESENT(level_)) THEN
+        CALL cxios_set_field_level(field_hdl%daddr, level_)
+      ENDIF
+      
+      IF (PRESENT(long_name_)) THEN
+        CALL cxios_set_field_long_name(field_hdl%daddr, long_name_, len(long_name_))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_set_field_name(field_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(operation_)) THEN
+        CALL cxios_set_field_operation(field_hdl%daddr, operation_, len(operation_))
+      ENDIF
+      
+      IF (PRESENT(prec_)) THEN
+        CALL cxios_set_field_prec(field_hdl%daddr, prec_)
+      ENDIF
+      
+      IF (PRESENT(standard_name_)) THEN
+        CALL cxios_set_field_standard_name(field_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+      
+      IF (PRESENT(unit_)) THEN
+        CALL cxios_set_field_unit(field_hdl%daddr, unit_, len(unit_))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(set_field_attr_hdl_)
+  
+  SUBROUTINE xios(get_field_attr)  &
+    ( field_id, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref  &
+    , level, long_name, name, operation, prec, standard_name, unit )
+    
+    IMPLICIT NONE
+      TYPE(txios(field))  :: field_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::field_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: freq_offset
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: freq_op
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref
+      INTEGER  , OPTIONAL, INTENT(OUT) :: level
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation
+      INTEGER  , OPTIONAL, INTENT(OUT) :: prec
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit
+      
+      CALL xios(get_field_handle)(field_id,field_hdl)
+      CALL xios(get_field_attr_hdl_)   &
+      ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref  &
+      , level, long_name, name, operation, prec, standard_name, unit )
+    
+  END SUBROUTINE xios(get_field_attr)
+  
+  SUBROUTINE xios(get_field_attr_hdl)  &
+    ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref  &
+    , level, long_name, name, operation, prec, standard_name, unit )
+    
+    IMPLICIT NONE
+      TYPE(txios(field)) , INTENT(IN) :: field_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: freq_offset
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: freq_op
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref
+      INTEGER  , OPTIONAL, INTENT(OUT) :: level
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation
+      INTEGER  , OPTIONAL, INTENT(OUT) :: prec
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit
+      
+      CALL xios(get_field_attr_hdl_)  &
+      ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref  &
+      , level, long_name, name, operation, prec, standard_name, unit )
+    
+  END SUBROUTINE xios(get_field_attr_hdl)
+  
+  SUBROUTINE xios(get_field_attr_hdl_)   &
+    ( field_hdl, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_  &
+    , grid_ref_, level_, long_name_, name_, operation_, prec_, standard_name_, unit_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(field)) , INTENT(IN) :: field_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled_
+      LOGICAL (KIND=C_BOOL) :: enabled__tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: freq_offset_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: freq_op_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: level_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: prec_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit_
+      
+      IF (PRESENT(axis_ref_)) THEN
+        CALL cxios_get_field_axis_ref(field_hdl%daddr, axis_ref_, len(axis_ref_))
+      ENDIF
+      
+      IF (PRESENT(default_value_)) THEN
+        CALL cxios_get_field_default_value(field_hdl%daddr, default_value_)
+      ENDIF
+      
+      IF (PRESENT(domain_ref_)) THEN
+        CALL cxios_get_field_domain_ref(field_hdl%daddr, domain_ref_, len(domain_ref_))
+      ENDIF
+      
+      IF (PRESENT(enabled_)) THEN
+        CALL cxios_get_field_enabled(field_hdl%daddr, enabled__tmp)
+        enabled_=enabled__tmp
+      ENDIF
+      
+      IF (PRESENT(field_ref_)) THEN
+        CALL cxios_get_field_field_ref(field_hdl%daddr, field_ref_, len(field_ref_))
+      ENDIF
+      
+      IF (PRESENT(freq_offset_)) THEN
+        CALL cxios_get_field_freq_offset(field_hdl%daddr, freq_offset_, len(freq_offset_))
+      ENDIF
+      
+      IF (PRESENT(freq_op_)) THEN
+        CALL cxios_get_field_freq_op(field_hdl%daddr, freq_op_, len(freq_op_))
+      ENDIF
+      
+      IF (PRESENT(grid_ref_)) THEN
+        CALL cxios_get_field_grid_ref(field_hdl%daddr, grid_ref_, len(grid_ref_))
+      ENDIF
+      
+      IF (PRESENT(level_)) THEN
+        CALL cxios_get_field_level(field_hdl%daddr, level_)
+      ENDIF
+      
+      IF (PRESENT(long_name_)) THEN
+        CALL cxios_get_field_long_name(field_hdl%daddr, long_name_, len(long_name_))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_get_field_name(field_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(operation_)) THEN
+        CALL cxios_get_field_operation(field_hdl%daddr, operation_, len(operation_))
+      ENDIF
+      
+      IF (PRESENT(prec_)) THEN
+        CALL cxios_get_field_prec(field_hdl%daddr, prec_)
+      ENDIF
+      
+      IF (PRESENT(standard_name_)) THEN
+        CALL cxios_get_field_standard_name(field_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+      
+      IF (PRESENT(unit_)) THEN
+        CALL cxios_get_field_unit(field_hdl%daddr, unit_, len(unit_))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(get_field_attr_hdl_)
+  
+END MODULE ifield_attr
Index: XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90	(revision 326)
@@ -0,0 +1,325 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE ifieldgroup_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE ifield
+  USE fieldgroup_interface_attr
+  
+CONTAINS
+  
+  SUBROUTINE xios(set_fieldgroup_attr)  &
+    ( fieldgroup_id, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op  &
+    , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit )
+    
+    IMPLICIT NONE
+      TYPE(txios(fieldgroup))  :: fieldgroup_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::fieldgroup_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
+      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_offset
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref
+      INTEGER  , OPTIONAL, INTENT(IN) :: level
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation
+      INTEGER  , OPTIONAL, INTENT(IN) :: prec
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
+      
+      CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl)
+      CALL xios(set_fieldgroup_attr_hdl_)   &
+      ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op  &
+      , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit )
+    
+  END SUBROUTINE xios(set_fieldgroup_attr)
+  
+  SUBROUTINE xios(set_fieldgroup_attr_hdl)  &
+    ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op  &
+    , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit )
+    
+    IMPLICIT NONE
+      TYPE(txios(fieldgroup)) , INTENT(IN) :: fieldgroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
+      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_offset
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref
+      INTEGER  , OPTIONAL, INTENT(IN) :: level
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation
+      INTEGER  , OPTIONAL, INTENT(IN) :: prec
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
+      
+      CALL xios(set_fieldgroup_attr_hdl_)  &
+      ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op  &
+      , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit )
+    
+  END SUBROUTINE xios(set_fieldgroup_attr_hdl)
+  
+  SUBROUTINE xios(set_fieldgroup_attr_hdl_)   &
+    ( fieldgroup_hdl, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_  &
+    , freq_op_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_, standard_name_  &
+    , unit_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(fieldgroup)) , INTENT(IN) :: fieldgroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_
+      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled_
+      LOGICAL (KIND=C_BOOL) :: enabled__tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_offset_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_
+      INTEGER  , OPTIONAL, INTENT(IN) :: level_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_
+      INTEGER  , OPTIONAL, INTENT(IN) :: prec_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_
+      
+      IF (PRESENT(axis_ref_)) THEN
+        CALL cxios_set_fieldgroup_axis_ref(fieldgroup_hdl%daddr, axis_ref_, len(axis_ref_))
+      ENDIF
+      
+      IF (PRESENT(default_value_)) THEN
+        CALL cxios_set_fieldgroup_default_value(fieldgroup_hdl%daddr, default_value_)
+      ENDIF
+      
+      IF (PRESENT(domain_ref_)) THEN
+        CALL cxios_set_fieldgroup_domain_ref(fieldgroup_hdl%daddr, domain_ref_, len(domain_ref_))
+      ENDIF
+      
+      IF (PRESENT(enabled_)) THEN
+        enabled__tmp=enabled_
+        CALL cxios_set_fieldgroup_enabled(fieldgroup_hdl%daddr, enabled__tmp)
+      ENDIF
+      
+      IF (PRESENT(field_ref_)) THEN
+        CALL cxios_set_fieldgroup_field_ref(fieldgroup_hdl%daddr, field_ref_, len(field_ref_))
+      ENDIF
+      
+      IF (PRESENT(freq_offset_)) THEN
+        CALL cxios_set_fieldgroup_freq_offset(fieldgroup_hdl%daddr, freq_offset_, len(freq_offset_))
+      ENDIF
+      
+      IF (PRESENT(freq_op_)) THEN
+        CALL cxios_set_fieldgroup_freq_op(fieldgroup_hdl%daddr, freq_op_, len(freq_op_))
+      ENDIF
+      
+      IF (PRESENT(grid_ref_)) THEN
+        CALL cxios_set_fieldgroup_grid_ref(fieldgroup_hdl%daddr, grid_ref_, len(grid_ref_))
+      ENDIF
+      
+      IF (PRESENT(group_ref_)) THEN
+        CALL cxios_set_fieldgroup_group_ref(fieldgroup_hdl%daddr, group_ref_, len(group_ref_))
+      ENDIF
+      
+      IF (PRESENT(level_)) THEN
+        CALL cxios_set_fieldgroup_level(fieldgroup_hdl%daddr, level_)
+      ENDIF
+      
+      IF (PRESENT(long_name_)) THEN
+        CALL cxios_set_fieldgroup_long_name(fieldgroup_hdl%daddr, long_name_, len(long_name_))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_set_fieldgroup_name(fieldgroup_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(operation_)) THEN
+        CALL cxios_set_fieldgroup_operation(fieldgroup_hdl%daddr, operation_, len(operation_))
+      ENDIF
+      
+      IF (PRESENT(prec_)) THEN
+        CALL cxios_set_fieldgroup_prec(fieldgroup_hdl%daddr, prec_)
+      ENDIF
+      
+      IF (PRESENT(standard_name_)) THEN
+        CALL cxios_set_fieldgroup_standard_name(fieldgroup_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+      
+      IF (PRESENT(unit_)) THEN
+        CALL cxios_set_fieldgroup_unit(fieldgroup_hdl%daddr, unit_, len(unit_))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(set_fieldgroup_attr_hdl_)
+  
+  SUBROUTINE xios(get_fieldgroup_attr)  &
+    ( fieldgroup_id, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op  &
+    , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit )
+    
+    IMPLICIT NONE
+      TYPE(txios(fieldgroup))  :: fieldgroup_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::fieldgroup_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: freq_offset
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: freq_op
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref
+      INTEGER  , OPTIONAL, INTENT(OUT) :: level
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation
+      INTEGER  , OPTIONAL, INTENT(OUT) :: prec
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit
+      
+      CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl)
+      CALL xios(get_fieldgroup_attr_hdl_)   &
+      ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op  &
+      , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit )
+    
+  END SUBROUTINE xios(get_fieldgroup_attr)
+  
+  SUBROUTINE xios(get_fieldgroup_attr_hdl)  &
+    ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op  &
+    , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit )
+    
+    IMPLICIT NONE
+      TYPE(txios(fieldgroup)) , INTENT(IN) :: fieldgroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: freq_offset
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: freq_op
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref
+      INTEGER  , OPTIONAL, INTENT(OUT) :: level
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation
+      INTEGER  , OPTIONAL, INTENT(OUT) :: prec
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit
+      
+      CALL xios(get_fieldgroup_attr_hdl_)  &
+      ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op  &
+      , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit )
+    
+  END SUBROUTINE xios(get_fieldgroup_attr_hdl)
+  
+  SUBROUTINE xios(get_fieldgroup_attr_hdl_)   &
+    ( fieldgroup_hdl, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_  &
+    , freq_op_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_, standard_name_  &
+    , unit_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(fieldgroup)) , INTENT(IN) :: fieldgroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled_
+      LOGICAL (KIND=C_BOOL) :: enabled__tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: freq_offset_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: freq_op_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: level_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: prec_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit_
+      
+      IF (PRESENT(axis_ref_)) THEN
+        CALL cxios_get_fieldgroup_axis_ref(fieldgroup_hdl%daddr, axis_ref_, len(axis_ref_))
+      ENDIF
+      
+      IF (PRESENT(default_value_)) THEN
+        CALL cxios_get_fieldgroup_default_value(fieldgroup_hdl%daddr, default_value_)
+      ENDIF
+      
+      IF (PRESENT(domain_ref_)) THEN
+        CALL cxios_get_fieldgroup_domain_ref(fieldgroup_hdl%daddr, domain_ref_, len(domain_ref_))
+      ENDIF
+      
+      IF (PRESENT(enabled_)) THEN
+        CALL cxios_get_fieldgroup_enabled(fieldgroup_hdl%daddr, enabled__tmp)
+        enabled_=enabled__tmp
+      ENDIF
+      
+      IF (PRESENT(field_ref_)) THEN
+        CALL cxios_get_fieldgroup_field_ref(fieldgroup_hdl%daddr, field_ref_, len(field_ref_))
+      ENDIF
+      
+      IF (PRESENT(freq_offset_)) THEN
+        CALL cxios_get_fieldgroup_freq_offset(fieldgroup_hdl%daddr, freq_offset_, len(freq_offset_))
+      ENDIF
+      
+      IF (PRESENT(freq_op_)) THEN
+        CALL cxios_get_fieldgroup_freq_op(fieldgroup_hdl%daddr, freq_op_, len(freq_op_))
+      ENDIF
+      
+      IF (PRESENT(grid_ref_)) THEN
+        CALL cxios_get_fieldgroup_grid_ref(fieldgroup_hdl%daddr, grid_ref_, len(grid_ref_))
+      ENDIF
+      
+      IF (PRESENT(group_ref_)) THEN
+        CALL cxios_get_fieldgroup_group_ref(fieldgroup_hdl%daddr, group_ref_, len(group_ref_))
+      ENDIF
+      
+      IF (PRESENT(level_)) THEN
+        CALL cxios_get_fieldgroup_level(fieldgroup_hdl%daddr, level_)
+      ENDIF
+      
+      IF (PRESENT(long_name_)) THEN
+        CALL cxios_get_fieldgroup_long_name(fieldgroup_hdl%daddr, long_name_, len(long_name_))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_get_fieldgroup_name(fieldgroup_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(operation_)) THEN
+        CALL cxios_get_fieldgroup_operation(fieldgroup_hdl%daddr, operation_, len(operation_))
+      ENDIF
+      
+      IF (PRESENT(prec_)) THEN
+        CALL cxios_get_fieldgroup_prec(fieldgroup_hdl%daddr, prec_)
+      ENDIF
+      
+      IF (PRESENT(standard_name_)) THEN
+        CALL cxios_get_fieldgroup_standard_name(fieldgroup_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+      
+      IF (PRESENT(unit_)) THEN
+        CALL cxios_get_fieldgroup_unit(fieldgroup_hdl%daddr, unit_, len(unit_))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(get_fieldgroup_attr_hdl_)
+  
+END MODULE ifieldgroup_attr
Index: XIOS/trunk/src/interface/fortran_attr/ifile_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/ifile_attr.F90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/ifile_attr.F90	(revision 326)
@@ -0,0 +1,225 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE ifile_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE ifile
+  USE file_interface_attr
+  
+CONTAINS
+  
+  SUBROUTINE xios(set_file_attr)  &
+    ( file_id, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  &
+    , type )
+    
+    IMPLICIT NONE
+      TYPE(txios(file))  :: file_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::file_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
+      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_suffix
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_freq
+      INTEGER  , OPTIONAL, INTENT(IN) :: output_level
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: sync_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
+      
+      CALL xios(get_file_handle)(file_id,file_hdl)
+      CALL xios(set_file_attr_hdl_)   &
+      ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  &
+      , type )
+    
+  END SUBROUTINE xios(set_file_attr)
+  
+  SUBROUTINE xios(set_file_attr_hdl)  &
+    ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  &
+    , type )
+    
+    IMPLICIT NONE
+      TYPE(txios(file)) , INTENT(IN) :: file_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
+      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_suffix
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_freq
+      INTEGER  , OPTIONAL, INTENT(IN) :: output_level
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: sync_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
+      
+      CALL xios(set_file_attr_hdl_)  &
+      ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  &
+      , type )
+    
+  END SUBROUTINE xios(set_file_attr_hdl)
+  
+  SUBROUTINE xios(set_file_attr_hdl_)   &
+    ( file_hdl, description_, enabled_, name_, name_suffix_, output_freq_, output_level_, split_freq_  &
+    , sync_freq_, type_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(file)) , INTENT(IN) :: file_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_
+      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled_
+      LOGICAL (KIND=C_BOOL) :: enabled__tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_suffix_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_freq_
+      INTEGER  , OPTIONAL, INTENT(IN) :: output_level_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: sync_freq_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_
+      
+      IF (PRESENT(description_)) THEN
+        CALL cxios_set_file_description(file_hdl%daddr, description_, len(description_))
+      ENDIF
+      
+      IF (PRESENT(enabled_)) THEN
+        enabled__tmp=enabled_
+        CALL cxios_set_file_enabled(file_hdl%daddr, enabled__tmp)
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_set_file_name(file_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(name_suffix_)) THEN
+        CALL cxios_set_file_name_suffix(file_hdl%daddr, name_suffix_, len(name_suffix_))
+      ENDIF
+      
+      IF (PRESENT(output_freq_)) THEN
+        CALL cxios_set_file_output_freq(file_hdl%daddr, output_freq_, len(output_freq_))
+      ENDIF
+      
+      IF (PRESENT(output_level_)) THEN
+        CALL cxios_set_file_output_level(file_hdl%daddr, output_level_)
+      ENDIF
+      
+      IF (PRESENT(split_freq_)) THEN
+        CALL cxios_set_file_split_freq(file_hdl%daddr, split_freq_, len(split_freq_))
+      ENDIF
+      
+      IF (PRESENT(sync_freq_)) THEN
+        CALL cxios_set_file_sync_freq(file_hdl%daddr, sync_freq_, len(sync_freq_))
+      ENDIF
+      
+      IF (PRESENT(type_)) THEN
+        CALL cxios_set_file_type(file_hdl%daddr, type_, len(type_))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(set_file_attr_hdl_)
+  
+  SUBROUTINE xios(get_file_attr)  &
+    ( file_id, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  &
+    , type )
+    
+    IMPLICIT NONE
+      TYPE(txios(file))  :: file_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::file_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_suffix
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_freq
+      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: sync_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
+      
+      CALL xios(get_file_handle)(file_id,file_hdl)
+      CALL xios(get_file_attr_hdl_)   &
+      ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  &
+      , type )
+    
+  END SUBROUTINE xios(get_file_attr)
+  
+  SUBROUTINE xios(get_file_attr_hdl)  &
+    ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  &
+    , type )
+    
+    IMPLICIT NONE
+      TYPE(txios(file)) , INTENT(IN) :: file_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_suffix
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_freq
+      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: sync_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
+      
+      CALL xios(get_file_attr_hdl_)  &
+      ( file_hdl, description, enabled, name, name_suffix, output_freq, output_level, split_freq, sync_freq  &
+      , type )
+    
+  END SUBROUTINE xios(get_file_attr_hdl)
+  
+  SUBROUTINE xios(get_file_attr_hdl_)   &
+    ( file_hdl, description_, enabled_, name_, name_suffix_, output_freq_, output_level_, split_freq_  &
+    , sync_freq_, type_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(file)) , INTENT(IN) :: file_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled_
+      LOGICAL (KIND=C_BOOL) :: enabled__tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_suffix_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_freq_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: sync_freq_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_
+      
+      IF (PRESENT(description_)) THEN
+        CALL cxios_get_file_description(file_hdl%daddr, description_, len(description_))
+      ENDIF
+      
+      IF (PRESENT(enabled_)) THEN
+        CALL cxios_get_file_enabled(file_hdl%daddr, enabled__tmp)
+        enabled_=enabled__tmp
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_get_file_name(file_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(name_suffix_)) THEN
+        CALL cxios_get_file_name_suffix(file_hdl%daddr, name_suffix_, len(name_suffix_))
+      ENDIF
+      
+      IF (PRESENT(output_freq_)) THEN
+        CALL cxios_get_file_output_freq(file_hdl%daddr, output_freq_, len(output_freq_))
+      ENDIF
+      
+      IF (PRESENT(output_level_)) THEN
+        CALL cxios_get_file_output_level(file_hdl%daddr, output_level_)
+      ENDIF
+      
+      IF (PRESENT(split_freq_)) THEN
+        CALL cxios_get_file_split_freq(file_hdl%daddr, split_freq_, len(split_freq_))
+      ENDIF
+      
+      IF (PRESENT(sync_freq_)) THEN
+        CALL cxios_get_file_sync_freq(file_hdl%daddr, sync_freq_, len(sync_freq_))
+      ENDIF
+      
+      IF (PRESENT(type_)) THEN
+        CALL cxios_get_file_type(file_hdl%daddr, type_, len(type_))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(get_file_attr_hdl_)
+  
+END MODULE ifile_attr
Index: XIOS/trunk/src/interface/fortran_attr/ifilegroup_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/ifilegroup_attr.F90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/ifilegroup_attr.F90	(revision 326)
@@ -0,0 +1,239 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE ifilegroup_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE ifile
+  USE filegroup_interface_attr
+  
+CONTAINS
+  
+  SUBROUTINE xios(set_filegroup_attr)  &
+    ( filegroup_id, description, enabled, group_ref, name, name_suffix, output_freq, output_level  &
+    , split_freq, sync_freq, type )
+    
+    IMPLICIT NONE
+      TYPE(txios(filegroup))  :: filegroup_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::filegroup_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
+      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_suffix
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_freq
+      INTEGER  , OPTIONAL, INTENT(IN) :: output_level
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: sync_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
+      
+      CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl)
+      CALL xios(set_filegroup_attr_hdl_)   &
+      ( filegroup_hdl, description, enabled, group_ref, name, name_suffix, output_freq, output_level  &
+      , split_freq, sync_freq, type )
+    
+  END SUBROUTINE xios(set_filegroup_attr)
+  
+  SUBROUTINE xios(set_filegroup_attr_hdl)  &
+    ( filegroup_hdl, description, enabled, group_ref, name, name_suffix, output_freq, output_level  &
+    , split_freq, sync_freq, type )
+    
+    IMPLICIT NONE
+      TYPE(txios(filegroup)) , INTENT(IN) :: filegroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
+      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_suffix
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_freq
+      INTEGER  , OPTIONAL, INTENT(IN) :: output_level
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: sync_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
+      
+      CALL xios(set_filegroup_attr_hdl_)  &
+      ( filegroup_hdl, description, enabled, group_ref, name, name_suffix, output_freq, output_level  &
+      , split_freq, sync_freq, type )
+    
+  END SUBROUTINE xios(set_filegroup_attr_hdl)
+  
+  SUBROUTINE xios(set_filegroup_attr_hdl_)   &
+    ( filegroup_hdl, description_, enabled_, group_ref_, name_, name_suffix_, output_freq_, output_level_  &
+    , split_freq_, sync_freq_, type_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(filegroup)) , INTENT(IN) :: filegroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_
+      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled_
+      LOGICAL (KIND=C_BOOL) :: enabled__tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_suffix_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_freq_
+      INTEGER  , OPTIONAL, INTENT(IN) :: output_level_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: sync_freq_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_
+      
+      IF (PRESENT(description_)) THEN
+        CALL cxios_set_filegroup_description(filegroup_hdl%daddr, description_, len(description_))
+      ENDIF
+      
+      IF (PRESENT(enabled_)) THEN
+        enabled__tmp=enabled_
+        CALL cxios_set_filegroup_enabled(filegroup_hdl%daddr, enabled__tmp)
+      ENDIF
+      
+      IF (PRESENT(group_ref_)) THEN
+        CALL cxios_set_filegroup_group_ref(filegroup_hdl%daddr, group_ref_, len(group_ref_))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_set_filegroup_name(filegroup_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(name_suffix_)) THEN
+        CALL cxios_set_filegroup_name_suffix(filegroup_hdl%daddr, name_suffix_, len(name_suffix_))
+      ENDIF
+      
+      IF (PRESENT(output_freq_)) THEN
+        CALL cxios_set_filegroup_output_freq(filegroup_hdl%daddr, output_freq_, len(output_freq_))
+      ENDIF
+      
+      IF (PRESENT(output_level_)) THEN
+        CALL cxios_set_filegroup_output_level(filegroup_hdl%daddr, output_level_)
+      ENDIF
+      
+      IF (PRESENT(split_freq_)) THEN
+        CALL cxios_set_filegroup_split_freq(filegroup_hdl%daddr, split_freq_, len(split_freq_))
+      ENDIF
+      
+      IF (PRESENT(sync_freq_)) THEN
+        CALL cxios_set_filegroup_sync_freq(filegroup_hdl%daddr, sync_freq_, len(sync_freq_))
+      ENDIF
+      
+      IF (PRESENT(type_)) THEN
+        CALL cxios_set_filegroup_type(filegroup_hdl%daddr, type_, len(type_))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(set_filegroup_attr_hdl_)
+  
+  SUBROUTINE xios(get_filegroup_attr)  &
+    ( filegroup_id, description, enabled, group_ref, name, name_suffix, output_freq, output_level  &
+    , split_freq, sync_freq, type )
+    
+    IMPLICIT NONE
+      TYPE(txios(filegroup))  :: filegroup_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::filegroup_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_suffix
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_freq
+      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: sync_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
+      
+      CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl)
+      CALL xios(get_filegroup_attr_hdl_)   &
+      ( filegroup_hdl, description, enabled, group_ref, name, name_suffix, output_freq, output_level  &
+      , split_freq, sync_freq, type )
+    
+  END SUBROUTINE xios(get_filegroup_attr)
+  
+  SUBROUTINE xios(get_filegroup_attr_hdl)  &
+    ( filegroup_hdl, description, enabled, group_ref, name, name_suffix, output_freq, output_level  &
+    , split_freq, sync_freq, type )
+    
+    IMPLICIT NONE
+      TYPE(txios(filegroup)) , INTENT(IN) :: filegroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
+      LOGICAL (KIND=C_BOOL) :: enabled_tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_suffix
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_freq
+      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: sync_freq
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
+      
+      CALL xios(get_filegroup_attr_hdl_)  &
+      ( filegroup_hdl, description, enabled, group_ref, name, name_suffix, output_freq, output_level  &
+      , split_freq, sync_freq, type )
+    
+  END SUBROUTINE xios(get_filegroup_attr_hdl)
+  
+  SUBROUTINE xios(get_filegroup_attr_hdl_)   &
+    ( filegroup_hdl, description_, enabled_, group_ref_, name_, name_suffix_, output_freq_, output_level_  &
+    , split_freq_, sync_freq_, type_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(filegroup)) , INTENT(IN) :: filegroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled_
+      LOGICAL (KIND=C_BOOL) :: enabled__tmp
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_suffix_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_freq_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: sync_freq_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_
+      
+      IF (PRESENT(description_)) THEN
+        CALL cxios_get_filegroup_description(filegroup_hdl%daddr, description_, len(description_))
+      ENDIF
+      
+      IF (PRESENT(enabled_)) THEN
+        CALL cxios_get_filegroup_enabled(filegroup_hdl%daddr, enabled__tmp)
+        enabled_=enabled__tmp
+      ENDIF
+      
+      IF (PRESENT(group_ref_)) THEN
+        CALL cxios_get_filegroup_group_ref(filegroup_hdl%daddr, group_ref_, len(group_ref_))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_get_filegroup_name(filegroup_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      IF (PRESENT(name_suffix_)) THEN
+        CALL cxios_get_filegroup_name_suffix(filegroup_hdl%daddr, name_suffix_, len(name_suffix_))
+      ENDIF
+      
+      IF (PRESENT(output_freq_)) THEN
+        CALL cxios_get_filegroup_output_freq(filegroup_hdl%daddr, output_freq_, len(output_freq_))
+      ENDIF
+      
+      IF (PRESENT(output_level_)) THEN
+        CALL cxios_get_filegroup_output_level(filegroup_hdl%daddr, output_level_)
+      ENDIF
+      
+      IF (PRESENT(split_freq_)) THEN
+        CALL cxios_get_filegroup_split_freq(filegroup_hdl%daddr, split_freq_, len(split_freq_))
+      ENDIF
+      
+      IF (PRESENT(sync_freq_)) THEN
+        CALL cxios_get_filegroup_sync_freq(filegroup_hdl%daddr, sync_freq_, len(sync_freq_))
+      ENDIF
+      
+      IF (PRESENT(type_)) THEN
+        CALL cxios_get_filegroup_type(filegroup_hdl%daddr, type_, len(type_))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(get_filegroup_attr_hdl_)
+  
+END MODULE ifilegroup_attr
Index: XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90	(revision 326)
@@ -0,0 +1,137 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE igrid_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE igrid
+  USE grid_interface_attr
+  
+CONTAINS
+  
+  SUBROUTINE xios(set_grid_attr)  &
+    ( grid_id, axis_ref, description, domain_ref, name )
+    
+    IMPLICIT NONE
+      TYPE(txios(grid))  :: grid_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::grid_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      
+      CALL xios(get_grid_handle)(grid_id,grid_hdl)
+      CALL xios(set_grid_attr_hdl_)   &
+      ( grid_hdl, axis_ref, description, domain_ref, name )
+    
+  END SUBROUTINE xios(set_grid_attr)
+  
+  SUBROUTINE xios(set_grid_attr_hdl)  &
+    ( grid_hdl, axis_ref, description, domain_ref, name )
+    
+    IMPLICIT NONE
+      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      
+      CALL xios(set_grid_attr_hdl_)  &
+      ( grid_hdl, axis_ref, description, domain_ref, name )
+    
+  END SUBROUTINE xios(set_grid_attr_hdl)
+  
+  SUBROUTINE xios(set_grid_attr_hdl_)   &
+    ( grid_hdl, axis_ref_, description_, domain_ref_, name_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
+      
+      IF (PRESENT(axis_ref_)) THEN
+        CALL cxios_set_grid_axis_ref(grid_hdl%daddr, axis_ref_, len(axis_ref_))
+      ENDIF
+      
+      IF (PRESENT(description_)) THEN
+        CALL cxios_set_grid_description(grid_hdl%daddr, description_, len(description_))
+      ENDIF
+      
+      IF (PRESENT(domain_ref_)) THEN
+        CALL cxios_set_grid_domain_ref(grid_hdl%daddr, domain_ref_, len(domain_ref_))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_set_grid_name(grid_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(set_grid_attr_hdl_)
+  
+  SUBROUTINE xios(get_grid_attr)  &
+    ( grid_id, axis_ref, description, domain_ref, name )
+    
+    IMPLICIT NONE
+      TYPE(txios(grid))  :: grid_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::grid_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      
+      CALL xios(get_grid_handle)(grid_id,grid_hdl)
+      CALL xios(get_grid_attr_hdl_)   &
+      ( grid_hdl, axis_ref, description, domain_ref, name )
+    
+  END SUBROUTINE xios(get_grid_attr)
+  
+  SUBROUTINE xios(get_grid_attr_hdl)  &
+    ( grid_hdl, axis_ref, description, domain_ref, name )
+    
+    IMPLICIT NONE
+      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      
+      CALL xios(get_grid_attr_hdl_)  &
+      ( grid_hdl, axis_ref, description, domain_ref, name )
+    
+  END SUBROUTINE xios(get_grid_attr_hdl)
+  
+  SUBROUTINE xios(get_grid_attr_hdl_)   &
+    ( grid_hdl, axis_ref_, description_, domain_ref_, name_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
+      
+      IF (PRESENT(axis_ref_)) THEN
+        CALL cxios_get_grid_axis_ref(grid_hdl%daddr, axis_ref_, len(axis_ref_))
+      ENDIF
+      
+      IF (PRESENT(description_)) THEN
+        CALL cxios_get_grid_description(grid_hdl%daddr, description_, len(description_))
+      ENDIF
+      
+      IF (PRESENT(domain_ref_)) THEN
+        CALL cxios_get_grid_domain_ref(grid_hdl%daddr, domain_ref_, len(domain_ref_))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_get_grid_name(grid_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(get_grid_attr_hdl_)
+  
+END MODULE igrid_attr
Index: XIOS/trunk/src/interface/fortran_attr/igridgroup_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/igridgroup_attr.F90	(revision 326)
+++ XIOS/trunk/src/interface/fortran_attr/igridgroup_attr.F90	(revision 326)
@@ -0,0 +1,151 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE igridgroup_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE igrid
+  USE gridgroup_interface_attr
+  
+CONTAINS
+  
+  SUBROUTINE xios(set_gridgroup_attr)  &
+    ( gridgroup_id, axis_ref, description, domain_ref, group_ref, name )
+    
+    IMPLICIT NONE
+      TYPE(txios(gridgroup))  :: gridgroup_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::gridgroup_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      
+      CALL xios(get_gridgroup_handle)(gridgroup_id,gridgroup_hdl)
+      CALL xios(set_gridgroup_attr_hdl_)   &
+      ( gridgroup_hdl, axis_ref, description, domain_ref, group_ref, name )
+    
+  END SUBROUTINE xios(set_gridgroup_attr)
+  
+  SUBROUTINE xios(set_gridgroup_attr_hdl)  &
+    ( gridgroup_hdl, axis_ref, description, domain_ref, group_ref, name )
+    
+    IMPLICIT NONE
+      TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
+      
+      CALL xios(set_gridgroup_attr_hdl_)  &
+      ( gridgroup_hdl, axis_ref, description, domain_ref, group_ref, name )
+    
+  END SUBROUTINE xios(set_gridgroup_attr_hdl)
+  
+  SUBROUTINE xios(set_gridgroup_attr_hdl_)   &
+    ( gridgroup_hdl, axis_ref_, description_, domain_ref_, group_ref_, name_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
+      
+      IF (PRESENT(axis_ref_)) THEN
+        CALL cxios_set_gridgroup_axis_ref(gridgroup_hdl%daddr, axis_ref_, len(axis_ref_))
+      ENDIF
+      
+      IF (PRESENT(description_)) THEN
+        CALL cxios_set_gridgroup_description(gridgroup_hdl%daddr, description_, len(description_))
+      ENDIF
+      
+      IF (PRESENT(domain_ref_)) THEN
+        CALL cxios_set_gridgroup_domain_ref(gridgroup_hdl%daddr, domain_ref_, len(domain_ref_))
+      ENDIF
+      
+      IF (PRESENT(group_ref_)) THEN
+        CALL cxios_set_gridgroup_group_ref(gridgroup_hdl%daddr, group_ref_, len(group_ref_))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_set_gridgroup_name(gridgroup_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(set_gridgroup_attr_hdl_)
+  
+  SUBROUTINE xios(get_gridgroup_attr)  &
+    ( gridgroup_id, axis_ref, description, domain_ref, group_ref, name )
+    
+    IMPLICIT NONE
+      TYPE(txios(gridgroup))  :: gridgroup_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::gridgroup_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      
+      CALL xios(get_gridgroup_handle)(gridgroup_id,gridgroup_hdl)
+      CALL xios(get_gridgroup_attr_hdl_)   &
+      ( gridgroup_hdl, axis_ref, description, domain_ref, group_ref, name )
+    
+  END SUBROUTINE xios(get_gridgroup_attr)
+  
+  SUBROUTINE xios(get_gridgroup_attr_hdl)  &
+    ( gridgroup_hdl, axis_ref, description, domain_ref, group_ref, name )
+    
+    IMPLICIT NONE
+      TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
+      
+      CALL xios(get_gridgroup_attr_hdl_)  &
+      ( gridgroup_hdl, axis_ref, description, domain_ref, group_ref, name )
+    
+  END SUBROUTINE xios(get_gridgroup_attr_hdl)
+  
+  SUBROUTINE xios(get_gridgroup_attr_hdl_)   &
+    ( gridgroup_hdl, axis_ref_, description_, domain_ref_, group_ref_, name_ )
+    
+    IMPLICIT NONE
+      TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
+      
+      IF (PRESENT(axis_ref_)) THEN
+        CALL cxios_get_gridgroup_axis_ref(gridgroup_hdl%daddr, axis_ref_, len(axis_ref_))
+      ENDIF
+      
+      IF (PRESENT(description_)) THEN
+        CALL cxios_get_gridgroup_description(gridgroup_hdl%daddr, description_, len(description_))
+      ENDIF
+      
+      IF (PRESENT(domain_ref_)) THEN
+        CALL cxios_get_gridgroup_domain_ref(gridgroup_hdl%daddr, domain_ref_, len(domain_ref_))
+      ENDIF
+      
+      IF (PRESENT(group_ref_)) THEN
+        CALL cxios_get_gridgroup_group_ref(gridgroup_hdl%daddr, group_ref_, len(group_ref_))
+      ENDIF
+      
+      IF (PRESENT(name_)) THEN
+        CALL cxios_get_gridgroup_name(gridgroup_hdl%daddr, name_, len(name_))
+      ENDIF
+      
+      
+    
+  END SUBROUTINE xios(get_gridgroup_attr_hdl_)
+  
+END MODULE igridgroup_attr
