Index: XIOS/trunk/src/interface/c/icgenerate_rectilinear_domain.cpp
===================================================================
--- XIOS/trunk/src/interface/c/icgenerate_rectilinear_domain.cpp	(revision 786)
+++ XIOS/trunk/src/interface/c/icgenerate_rectilinear_domain.cpp	(revision 786)
@@ -0,0 +1,46 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, xios, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+#include <boost/multi_array.hpp>
+#include <boost/shared_ptr.hpp>
+
+#include "xios.hpp"
+
+#include "object_template.hpp"
+#include "group_template.hpp"
+#include "attribute_template.hpp"
+
+#include "icutil.hpp"
+#include "timer.hpp"
+#include "generate_rectilinear_domain.hpp"
+
+extern "C"
+{
+// /////////////////////////////// DÃ©finitions ////////////////////////////// //
+
+   // ----------------------- RedÃ©finition de types ----------------------------
+
+   typedef xios::CGenerateRectilinearDomain   * XGenDomainPtr;
+
+   // ------------------------ CrÃ©ation des handle -----------------------------
+   void cxios_generate_rectilinear_domain_handle_create(XGenDomainPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id;
+      if (!cstr2string(_id, _id_len, id)) return;
+      CTimer::get("XIOS").resume() ;
+      *_ret = xios::CGenerateRectilinearDomain::get(id);
+      CTimer::get("XIOS").suspend() ;
+   }
+
+   // -------------------- VÃ©rification des identifiants -----------------------
+   void cxios_generate_rectilinear_domain_valid_id(bool * _ret, const char * _id, int _id_len)
+   {
+      std::string id;
+      if (!cstr2string(_id, _id_len, id)) return;
+
+      CTimer::get("XIOS").resume() ;
+      *_ret = xios::CGenerateRectilinearDomain::has(id);
+      CTimer::get("XIOS").suspend() ;
+   }
+} // extern "C"
Index: XIOS/trunk/src/interface/c/icinterpolate.cpp
===================================================================
--- XIOS/trunk/src/interface/c/icinterpolate.cpp	(revision 786)
+++ XIOS/trunk/src/interface/c/icinterpolate.cpp	(revision 786)
@@ -0,0 +1,69 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, xios, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+#include <boost/multi_array.hpp>
+#include <boost/shared_ptr.hpp>
+
+#include "xios.hpp"
+
+#include "object_template.hpp"
+#include "group_template.hpp"
+#include "attribute_template.hpp"
+
+#include "icutil.hpp"
+#include "timer.hpp"
+#include "interpolate_domain.hpp"
+#include "interpolate_axis.hpp"
+
+extern "C"
+{
+// /////////////////////////////// DÃ©finitions ////////////////////////////// //
+
+   // ----------------------- RedÃ©finition de types ----------------------------
+
+   typedef xios::CInterpolateDomain    * XInterpolateDomainPtr;
+   typedef xios::CInterpolateAxis      * XInterpolateAxisPtr;
+
+   // ------------------------ CrÃ©ation des handle -----------------------------
+   void cxios_interpolate_domain_handle_create(XInterpolateDomainPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id;
+      if (!cstr2string(_id, _id_len, id)) return;
+      CTimer::get("XIOS").resume() ;
+      *_ret = xios::CInterpolateDomain::get(id);
+      CTimer::get("XIOS").suspend() ;
+   }
+
+   // -------------------- VÃ©rification des identifiants -----------------------
+   void cxios_interpolate_domain_valid_id(bool * _ret, const char * _id, int _id_len)
+   {
+      std::string id;
+      if (!cstr2string(_id, _id_len, id)) return;
+
+      CTimer::get("XIOS").resume() ;
+      *_ret = xios::CInterpolateDomain::has(id);
+      CTimer::get("XIOS").suspend() ;
+   }
+
+    // ------------------------ CrÃ©ation des handle -----------------------------
+   void cxios_interpolate_axis_handle_create(XInterpolateAxisPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id;
+      if (!cstr2string(_id, _id_len, id)) return;
+      CTimer::get("XIOS").resume() ;
+      *_ret = xios::CInterpolateAxis::get(id);
+      CTimer::get("XIOS").suspend() ;
+   }
+
+   // -------------------- VÃ©rification des identifiants -----------------------
+   void cxios_interpolate_axis_valid_id(bool * _ret, const char * _id, int _id_len)
+   {
+      std::string id;
+      if (!cstr2string(_id, _id_len, id)) return;
+
+      CTimer::get("XIOS").resume() ;
+      *_ret = xios::CInterpolateAxis::has(id);
+      CTimer::get("XIOS").suspend() ;
+   }
+} // extern "C"
Index: XIOS/trunk/src/interface/c/icinverse_axis.cpp
===================================================================
--- XIOS/trunk/src/interface/c/icinverse_axis.cpp	(revision 786)
+++ XIOS/trunk/src/interface/c/icinverse_axis.cpp	(revision 786)
@@ -0,0 +1,46 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, xios, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+#include <boost/multi_array.hpp>
+#include <boost/shared_ptr.hpp>
+
+#include "xios.hpp"
+
+#include "object_template.hpp"
+#include "group_template.hpp"
+#include "attribute_template.hpp"
+
+#include "icutil.hpp"
+#include "timer.hpp"
+#include "inverse_axis.hpp"
+
+extern "C"
+{
+// /////////////////////////////// DÃ©finitions ////////////////////////////// //
+
+   // ----------------------- RedÃ©finition de types ----------------------------
+
+   typedef xios::CInverseAxis      * XInverseAxisPtr;
+
+   // ------------------------ CrÃ©ation des handle -----------------------------
+   void cxios_inverse_axis_handle_create(XInverseAxisPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id;
+      if (!cstr2string(_id, _id_len, id)) return;
+      CTimer::get("XIOS").resume() ;
+      *_ret = xios::CInverseAxis::get(id);
+      CTimer::get("XIOS").suspend() ;
+   }
+
+   // -------------------- VÃ©rification des identifiants -----------------------
+   void cxios_inverse_axis_valid_id(bool * _ret, const char * _id, int _id_len)
+   {
+      std::string id;
+      if (!cstr2string(_id, _id_len, id)) return;
+
+      CTimer::get("XIOS").resume() ;
+      *_ret = xios::CInverseAxis::has(id);
+      CTimer::get("XIOS").suspend() ;
+   }
+} // extern "C"
Index: XIOS/trunk/src/interface/c/iczoom.cpp
===================================================================
--- XIOS/trunk/src/interface/c/iczoom.cpp	(revision 786)
+++ XIOS/trunk/src/interface/c/iczoom.cpp	(revision 786)
@@ -0,0 +1,68 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, xios, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+#include <boost/multi_array.hpp>
+#include <boost/shared_ptr.hpp>
+
+#include "xios.hpp"
+
+#include "object_template.hpp"
+#include "group_template.hpp"
+#include "attribute_template.hpp"
+
+#include "icutil.hpp"
+#include "timer.hpp"
+#include "zoom_axis.hpp"
+#include "zoom_domain.hpp"
+
+extern "C"
+{
+// /////////////////////////////// DÃ©finitions ////////////////////////////// //
+
+   // ----------------------- RedÃ©finition de types ----------------------------
+
+   typedef xios::CZoomAxis   * XZoomAxisPtr;
+   typedef xios::CZoomDomain * XZoomDomainPtr;
+   // ------------------------ CrÃ©ation des handle -----------------------------
+   void cxios_zoom_axis_handle_create (XZoomAxisPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id;
+      if (!cstr2string(_id, _id_len, id)) return;
+      CTimer::get("XIOS").resume() ;
+      *_ret = xios::CZoomAxis::get(id);
+      CTimer::get("XIOS").suspend() ;
+   }
+
+   // -------------------- VÃ©rification des identifiants -----------------------
+   void cxios_zoom_axis_valid_id (bool * _ret, const char * _id, int _id_len)
+   {
+      std::string id;
+      if (!cstr2string(_id, _id_len, id)) return;
+
+      CTimer::get("XIOS").resume() ;
+      *_ret = xios::CZoomAxis::has(id);
+      CTimer::get("XIOS").suspend() ;
+   }
+
+   // ------------------------ CrÃ©ation des handle -----------------------------
+   void cxios_zoom_domain_handle_create(XZoomDomainPtr * _ret, const char * _id, int _id_len)
+   {
+      std::string id;
+      if (!cstr2string(_id, _id_len, id)) return;
+      CTimer::get("XIOS").resume() ;
+      *_ret = xios::CZoomDomain::get(id);
+      CTimer::get("XIOS").suspend() ;
+   }
+
+   // -------------------- VÃ©rification des identifiants -----------------------
+   void cxios_zoom_domain_valid_id(bool * _ret, const char * _id, int _id_len)
+   {
+      std::string id;
+      if (!cstr2string(_id, _id_len, id)) return;
+
+      CTimer::get("XIOS").resume() ;
+      *_ret = xios::CZoomDomain::has(id);
+      CTimer::get("XIOS").suspend() ;
+   }
+} // extern "C"
Index: XIOS/trunk/src/interface/c/iczoom_axis.cpp
===================================================================
--- XIOS/trunk/src/interface/c/iczoom_axis.cpp	(revision 784)
+++ 	(revision )
@@ -1,46 +1,0 @@
-/* ************************************************************************** *
- *      Copyright Â© IPSL/LSCE, xios, Avril 2010 - Octobre 2011         *
- * ************************************************************************** */
-
-#include <boost/multi_array.hpp>
-#include <boost/shared_ptr.hpp>
-
-#include "xios.hpp"
-
-#include "object_template.hpp"
-#include "group_template.hpp"
-#include "attribute_template.hpp"
-
-#include "icutil.hpp"
-#include "timer.hpp"
-#include "zoom_axis.hpp"
-
-extern "C"
-{
-// /////////////////////////////// DÃ©finitions ////////////////////////////// //
-
-   // ----------------------- RedÃ©finition de types ----------------------------
-
-   typedef xios::CZoomAxis   * XZoomAxisPtr;
-
-   // ------------------------ CrÃ©ation des handle -----------------------------
-   void cxios_zoom_axis_handle_create (XZoomAxisPtr * _ret, const char * _id, int _id_len)
-   {
-      std::string id;
-      if (!cstr2string(_id, _id_len, id)) return;
-      CTimer::get("XIOS").resume() ;
-      *_ret = xios::CZoomAxis::get(id);
-      CTimer::get("XIOS").suspend() ;
-   }
-
-   // -------------------- VÃ©rification des identifiants -----------------------
-   void cxios_zoom_axis_valid_id (bool * _ret, const char * _id, int _id_len)
-   {
-      std::string id;
-      if (!cstr2string(_id, _id_len, id)) return;
-
-      CTimer::get("XIOS").resume() ;
-      *_ret = xios::CZoomAxis::has(id);
-      CTimer::get("XIOS").suspend() ;
-   }
-} // extern "C"
Index: XIOS/trunk/src/interface/c/iczoom_domain.cpp
===================================================================
--- XIOS/trunk/src/interface/c/iczoom_domain.cpp	(revision 784)
+++ 	(revision )
@@ -1,46 +1,0 @@
-/* ************************************************************************** *
- *      Copyright Â© IPSL/LSCE, xios, Avril 2010 - Octobre 2011         *
- * ************************************************************************** */
-
-#include <boost/multi_array.hpp>
-#include <boost/shared_ptr.hpp>
-
-#include "xios.hpp"
-
-#include "object_template.hpp"
-#include "group_template.hpp"
-#include "attribute_template.hpp"
-
-#include "icutil.hpp"
-#include "timer.hpp"
-#include "zoom_domain.hpp"
-
-extern "C"
-{
-// /////////////////////////////// DÃ©finitions ////////////////////////////// //
-
-   // ----------------------- RedÃ©finition de types ----------------------------
-
-   typedef xios::CZoomDomain      * XZoomDomainPtr;
-
-   // ------------------------ CrÃ©ation des handle -----------------------------
-   void cxios_zoom_domain_handle_create(XZoomDomainPtr * _ret, const char * _id, int _id_len)
-   {
-      std::string id;
-      if (!cstr2string(_id, _id_len, id)) return;
-      CTimer::get("XIOS").resume() ;
-      *_ret = xios::CZoomDomain::get(id);
-      CTimer::get("XIOS").suspend() ;
-   }
-
-   // -------------------- VÃ©rification des identifiants -----------------------
-   void cxios_zoom_domain_valid_id(bool * _ret, const char * _id, int _id_len)
-   {
-      std::string id;
-      if (!cstr2string(_id, _id_len, id)) return;
-
-      CTimer::get("XIOS").resume() ;
-      *_ret = xios::CZoomDomain::has(id);
-      CTimer::get("XIOS").suspend() ;
-   }
-} // extern "C"
Index: XIOS/trunk/src/interface/c_attr/icgenerate_rectilinear_domain_attr.cpp
===================================================================
--- XIOS/trunk/src/interface/c_attr/icgenerate_rectilinear_domain_attr.cpp	(revision 786)
+++ XIOS/trunk/src/interface/c_attr/icgenerate_rectilinear_domain_attr.cpp	(revision 786)
@@ -0,0 +1,202 @@
+/* ************************************************************************** *
+ *               Interface auto generated - do not modify                     *
+ * ************************************************************************** */
+
+#include <boost/multi_array.hpp>
+#include <boost/shared_ptr.hpp>
+#include "xios.hpp"
+#include "attribute_template.hpp"
+#include "object_template.hpp"
+#include "group_template.hpp"
+#include "icutil.hpp"
+#include "icdate.hpp"
+#include "timer.hpp"
+#include "node_type.hpp"
+
+extern "C"
+{
+  typedef xios::CGenerateRectilinearDomain* generate_rectilinear_domain_Ptr;
+
+  void cxios_set_generate_rectilinear_domain_bounds_lat_end(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double bounds_lat_end)
+  {
+    CTimer::get("XIOS").resume();
+    generate_rectilinear_domain_hdl->bounds_lat_end.setValue(bounds_lat_end);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_generate_rectilinear_domain_bounds_lat_end(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double* bounds_lat_end)
+  {
+    CTimer::get("XIOS").resume();
+    *bounds_lat_end = generate_rectilinear_domain_hdl->bounds_lat_end.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_generate_rectilinear_domain_bounds_lat_end(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = generate_rectilinear_domain_hdl->bounds_lat_end.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_generate_rectilinear_domain_bounds_lat_start(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double bounds_lat_start)
+  {
+    CTimer::get("XIOS").resume();
+    generate_rectilinear_domain_hdl->bounds_lat_start.setValue(bounds_lat_start);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_generate_rectilinear_domain_bounds_lat_start(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double* bounds_lat_start)
+  {
+    CTimer::get("XIOS").resume();
+    *bounds_lat_start = generate_rectilinear_domain_hdl->bounds_lat_start.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_generate_rectilinear_domain_bounds_lat_start(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = generate_rectilinear_domain_hdl->bounds_lat_start.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_generate_rectilinear_domain_bounds_lon_end(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double bounds_lon_end)
+  {
+    CTimer::get("XIOS").resume();
+    generate_rectilinear_domain_hdl->bounds_lon_end.setValue(bounds_lon_end);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_generate_rectilinear_domain_bounds_lon_end(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double* bounds_lon_end)
+  {
+    CTimer::get("XIOS").resume();
+    *bounds_lon_end = generate_rectilinear_domain_hdl->bounds_lon_end.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_generate_rectilinear_domain_bounds_lon_end(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = generate_rectilinear_domain_hdl->bounds_lon_end.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_generate_rectilinear_domain_bounds_lon_start(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double bounds_lon_start)
+  {
+    CTimer::get("XIOS").resume();
+    generate_rectilinear_domain_hdl->bounds_lon_start.setValue(bounds_lon_start);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_generate_rectilinear_domain_bounds_lon_start(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double* bounds_lon_start)
+  {
+    CTimer::get("XIOS").resume();
+    *bounds_lon_start = generate_rectilinear_domain_hdl->bounds_lon_start.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_generate_rectilinear_domain_bounds_lon_start(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = generate_rectilinear_domain_hdl->bounds_lon_start.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_generate_rectilinear_domain_lat_end(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double lat_end)
+  {
+    CTimer::get("XIOS").resume();
+    generate_rectilinear_domain_hdl->lat_end.setValue(lat_end);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_generate_rectilinear_domain_lat_end(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double* lat_end)
+  {
+    CTimer::get("XIOS").resume();
+    *lat_end = generate_rectilinear_domain_hdl->lat_end.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_generate_rectilinear_domain_lat_end(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = generate_rectilinear_domain_hdl->lat_end.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_generate_rectilinear_domain_lat_start(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double lat_start)
+  {
+    CTimer::get("XIOS").resume();
+    generate_rectilinear_domain_hdl->lat_start.setValue(lat_start);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_generate_rectilinear_domain_lat_start(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double* lat_start)
+  {
+    CTimer::get("XIOS").resume();
+    *lat_start = generate_rectilinear_domain_hdl->lat_start.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_generate_rectilinear_domain_lat_start(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = generate_rectilinear_domain_hdl->lat_start.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_generate_rectilinear_domain_lon_end(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double lon_end)
+  {
+    CTimer::get("XIOS").resume();
+    generate_rectilinear_domain_hdl->lon_end.setValue(lon_end);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_generate_rectilinear_domain_lon_end(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double* lon_end)
+  {
+    CTimer::get("XIOS").resume();
+    *lon_end = generate_rectilinear_domain_hdl->lon_end.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_generate_rectilinear_domain_lon_end(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = generate_rectilinear_domain_hdl->lon_end.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_generate_rectilinear_domain_lon_start(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double lon_start)
+  {
+    CTimer::get("XIOS").resume();
+    generate_rectilinear_domain_hdl->lon_start.setValue(lon_start);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_generate_rectilinear_domain_lon_start(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl, double* lon_start)
+  {
+    CTimer::get("XIOS").resume();
+    *lon_start = generate_rectilinear_domain_hdl->lon_start.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_generate_rectilinear_domain_lon_start(generate_rectilinear_domain_Ptr generate_rectilinear_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = generate_rectilinear_domain_hdl->lon_start.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+}
Index: XIOS/trunk/src/interface/c_attr/icinterpolate_axis_attr.cpp
===================================================================
--- XIOS/trunk/src/interface/c_attr/icinterpolate_axis_attr.cpp	(revision 786)
+++ XIOS/trunk/src/interface/c_attr/icinterpolate_axis_attr.cpp	(revision 786)
@@ -0,0 +1,67 @@
+/* ************************************************************************** *
+ *               Interface auto generated - do not modify                     *
+ * ************************************************************************** */
+
+#include <boost/multi_array.hpp>
+#include <boost/shared_ptr.hpp>
+#include "xios.hpp"
+#include "attribute_template.hpp"
+#include "object_template.hpp"
+#include "group_template.hpp"
+#include "icutil.hpp"
+#include "icdate.hpp"
+#include "timer.hpp"
+#include "node_type.hpp"
+
+extern "C"
+{
+  typedef xios::CInterpolateAxis* interpolate_axis_Ptr;
+
+  void cxios_set_interpolate_axis_order(interpolate_axis_Ptr interpolate_axis_hdl, int order)
+  {
+    CTimer::get("XIOS").resume();
+    interpolate_axis_hdl->order.setValue(order);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_interpolate_axis_order(interpolate_axis_Ptr interpolate_axis_hdl, int* order)
+  {
+    CTimer::get("XIOS").resume();
+    *order = interpolate_axis_hdl->order.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_interpolate_axis_order(interpolate_axis_Ptr interpolate_axis_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = interpolate_axis_hdl->order.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_interpolate_axis_type(interpolate_axis_Ptr interpolate_axis_hdl, const char * type, int type_size)
+  {
+    std::string type_str;
+    if (!cstr2string(type, type_size, type_str)) return;
+    CTimer::get("XIOS").resume();
+    interpolate_axis_hdl->type.setValue(type_str);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_interpolate_axis_type(interpolate_axis_Ptr interpolate_axis_hdl, char * type, int type_size)
+  {
+    CTimer::get("XIOS").resume();
+    if (!string_copy(interpolate_axis_hdl->type.getInheritedValue(), type, type_size))
+      ERROR("void cxios_get_interpolate_axis_type(interpolate_axis_Ptr interpolate_axis_hdl, char * type, int type_size)", << "Input string is too short");
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_interpolate_axis_type(interpolate_axis_Ptr interpolate_axis_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = interpolate_axis_hdl->type.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+}
Index: XIOS/trunk/src/interface/c_attr/icinterpolate_domain_attr.cpp
===================================================================
--- XIOS/trunk/src/interface/c_attr/icinterpolate_domain_attr.cpp	(revision 786)
+++ XIOS/trunk/src/interface/c_attr/icinterpolate_domain_attr.cpp	(revision 786)
@@ -0,0 +1,67 @@
+/* ************************************************************************** *
+ *               Interface auto generated - do not modify                     *
+ * ************************************************************************** */
+
+#include <boost/multi_array.hpp>
+#include <boost/shared_ptr.hpp>
+#include "xios.hpp"
+#include "attribute_template.hpp"
+#include "object_template.hpp"
+#include "group_template.hpp"
+#include "icutil.hpp"
+#include "icdate.hpp"
+#include "timer.hpp"
+#include "node_type.hpp"
+
+extern "C"
+{
+  typedef xios::CInterpolateDomain* interpolate_domain_Ptr;
+
+  void cxios_set_interpolate_domain_file(interpolate_domain_Ptr interpolate_domain_hdl, const char * file, int file_size)
+  {
+    std::string file_str;
+    if (!cstr2string(file, file_size, file_str)) return;
+    CTimer::get("XIOS").resume();
+    interpolate_domain_hdl->file.setValue(file_str);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_interpolate_domain_file(interpolate_domain_Ptr interpolate_domain_hdl, char * file, int file_size)
+  {
+    CTimer::get("XIOS").resume();
+    if (!string_copy(interpolate_domain_hdl->file.getInheritedValue(), file, file_size))
+      ERROR("void cxios_get_interpolate_domain_file(interpolate_domain_Ptr interpolate_domain_hdl, char * file, int file_size)", << "Input string is too short");
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_interpolate_domain_file(interpolate_domain_Ptr interpolate_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = interpolate_domain_hdl->file.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_interpolate_domain_order(interpolate_domain_Ptr interpolate_domain_hdl, int order)
+  {
+    CTimer::get("XIOS").resume();
+    interpolate_domain_hdl->order.setValue(order);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_interpolate_domain_order(interpolate_domain_Ptr interpolate_domain_hdl, int* order)
+  {
+    CTimer::get("XIOS").resume();
+    *order = interpolate_domain_hdl->order.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_interpolate_domain_order(interpolate_domain_Ptr interpolate_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = interpolate_domain_hdl->order.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+}
Index: XIOS/trunk/src/interface/c_attr/icinverse_axis_attr.cpp
===================================================================
--- XIOS/trunk/src/interface/c_attr/icinverse_axis_attr.cpp	(revision 786)
+++ XIOS/trunk/src/interface/c_attr/icinverse_axis_attr.cpp	(revision 786)
@@ -0,0 +1,18 @@
+/* ************************************************************************** *
+ *               Interface auto generated - do not modify                     *
+ * ************************************************************************** */
+
+#include <boost/multi_array.hpp>
+#include <boost/shared_ptr.hpp>
+#include "xios.hpp"
+#include "attribute_template.hpp"
+#include "object_template.hpp"
+#include "group_template.hpp"
+#include "icutil.hpp"
+#include "icdate.hpp"
+#include "timer.hpp"
+#include "node_type.hpp"
+
+extern "C"
+{
+  typedef xios::CInverseAxis* inverse_axis_Ptr;}
Index: XIOS/trunk/src/interface/fortran/generate_rectilinear_domain_interface.f90
===================================================================
--- XIOS/trunk/src/interface/fortran/generate_rectilinear_domain_interface.f90	(revision 786)
+++ XIOS/trunk/src/interface/fortran/generate_rectilinear_domain_interface.f90	(revision 786)
@@ -0,0 +1,22 @@
+MODULE GENERATE_RECTILINEAR_DOMAIN_INTERFACE
+   USE, INTRINSIC :: ISO_C_BINDING
+
+   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
+
+      SUBROUTINE cxios_generate_rectilinear_domain_handle_create(ret, idt, idt_size) BIND(C)
+         USE ISO_C_BINDING
+         INTEGER  (kind = C_INTPTR_T)               :: ret
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
+         INTEGER  (kind = C_INT)     , VALUE        :: idt_size
+      END SUBROUTINE cxios_generate_rectilinear_domain_handle_create
+
+      SUBROUTINE cxios_generate_rectilinear_domain_valid_id(ret, idt, idt_size) BIND(C)
+         USE ISO_C_BINDING
+         LOGICAL  (kind = C_BOOL)                   :: ret
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
+         INTEGER  (kind = C_INT)     , VALUE        :: idt_size
+      END SUBROUTINE cxios_generate_rectilinear_domain_valid_id
+
+   END INTERFACE
+
+END MODULE GENERATE_RECTILINEAR_DOMAIN_INTERFACE
Index: XIOS/trunk/src/interface/fortran/igenerate_rectilinear_domain.F90
===================================================================
--- XIOS/trunk/src/interface/fortran/igenerate_rectilinear_domain.F90	(revision 786)
+++ XIOS/trunk/src/interface/fortran/igenerate_rectilinear_domain.F90	(revision 786)
@@ -0,0 +1,30 @@
+#include "xios_fortran_prefix.hpp"
+
+MODULE IGENERATE_RECTILINEAR_DOMAIN
+   USE, INTRINSIC :: ISO_C_BINDING
+   USE GENERATE_RECTILINEAR_DOMAIN_INTERFACE
+
+   TYPE txios(generate_rectilinear_domain)
+      INTEGER(kind = C_INTPTR_T) :: daddr
+   END TYPE txios(generate_rectilinear_domain)
+
+   CONTAINS ! Fonctions disponibles pour les utilisateurs.
+
+   SUBROUTINE xios(get_generate_rectilinear_domain_handle)(idt,ret)
+      IMPLICIT NONE
+      CHARACTER(len = *), INTENT(IN) :: idt
+      TYPE(txios(generate_rectilinear_domain)) , INTENT(OUT):: ret
+      CALL cxios_generate_rectilinear_domain_handle_create(ret%daddr, idt, len(idt))
+   END SUBROUTINE xios(get_generate_rectilinear_domain_handle)
+
+   LOGICAL FUNCTION xios(is_valid_generate_rectilinear_domain)(idt)
+      IMPLICIT NONE
+      CHARACTER(len  = *)    , INTENT(IN) :: idt
+      LOGICAL  (kind = 1)                 :: val
+
+      CALL cxios_generate_rectilinear_domain_valid_id(val, idt, len(idt))
+      xios(is_valid_generate_rectilinear_domain) = val
+
+   END FUNCTION  xios(is_valid_generate_rectilinear_domain)
+
+END MODULE IGENERATE_RECTILINEAR_DOMAIN
Index: XIOS/trunk/src/interface/fortran/iinterpolate_axis.F90
===================================================================
--- XIOS/trunk/src/interface/fortran/iinterpolate_axis.F90	(revision 786)
+++ XIOS/trunk/src/interface/fortran/iinterpolate_axis.F90	(revision 786)
@@ -0,0 +1,30 @@
+#include "xios_fortran_prefix.hpp"
+
+MODULE IINTERPOLATE_AXIS
+   USE, INTRINSIC :: ISO_C_BINDING
+   USE INTERPOLATE_AXIS_INTERFACE
+
+   TYPE txios(interpolate_axis)
+      INTEGER(kind = C_INTPTR_T) :: daddr
+   END TYPE txios(interpolate_axis)
+
+   CONTAINS ! Fonctions disponibles pour les utilisateurs.
+
+   SUBROUTINE xios(get_interpolate_axis_handle)(idt,ret)
+      IMPLICIT NONE
+      CHARACTER(len = *), INTENT(IN) :: idt
+      TYPE(txios(interpolate_axis)) , INTENT(OUT):: ret
+      CALL cxios_interpolate_axis_handle_create(ret%daddr, idt, len(idt))
+   END SUBROUTINE xios(get_interpolate_axis_handle)
+
+   LOGICAL FUNCTION xios(is_valid_interpolate_axis)(idt)
+      IMPLICIT NONE
+      CHARACTER(len  = *)    , INTENT(IN) :: idt
+      LOGICAL  (kind = 1)                 :: val
+
+      CALL cxios_interpolate_axis_valid_id(val, idt, len(idt))
+      xios(is_valid_interpolate_axis) = val
+
+   END FUNCTION  xios(is_valid_interpolate_axis)
+
+END MODULE IINTERPOLATE_AXIS
Index: XIOS/trunk/src/interface/fortran/iinterpolate_domain.F90
===================================================================
--- XIOS/trunk/src/interface/fortran/iinterpolate_domain.F90	(revision 786)
+++ XIOS/trunk/src/interface/fortran/iinterpolate_domain.F90	(revision 786)
@@ -0,0 +1,30 @@
+#include "xios_fortran_prefix.hpp"
+
+MODULE IINTERPOLATE_DOMAIN
+   USE, INTRINSIC :: ISO_C_BINDING
+   USE INTERPOLATE_DOMAIN_INTERFACE
+
+   TYPE txios(interpolate_domain)
+      INTEGER(kind = C_INTPTR_T) :: daddr
+   END TYPE txios(interpolate_domain)
+
+   CONTAINS ! Fonctions disponibles pour les utilisateurs.
+
+   SUBROUTINE xios(get_interpolate_domain_handle)(idt,ret)
+      IMPLICIT NONE
+      CHARACTER(len = *), INTENT(IN) :: idt
+      TYPE(txios(interpolate_domain)) , INTENT(OUT):: ret
+      CALL cxios_interpolate_domain_handle_create(ret%daddr, idt, len(idt))
+   END SUBROUTINE xios(get_interpolate_domain_handle)
+
+   LOGICAL FUNCTION xios(is_valid_interpolate_domain)(idt)
+      IMPLICIT NONE
+      CHARACTER(len  = *)    , INTENT(IN) :: idt
+      LOGICAL  (kind = 1)                 :: val
+
+      CALL cxios_interpolate_domain_valid_id(val, idt, len(idt))
+      xios(is_valid_interpolate_domain) = val
+
+   END FUNCTION  xios(is_valid_interpolate_domain)
+
+END MODULE IINTERPOLATE_DOMAIN
Index: XIOS/trunk/src/interface/fortran/iinverse_axis.F90
===================================================================
--- XIOS/trunk/src/interface/fortran/iinverse_axis.F90	(revision 786)
+++ XIOS/trunk/src/interface/fortran/iinverse_axis.F90	(revision 786)
@@ -0,0 +1,30 @@
+#include "xios_fortran_prefix.hpp"
+
+MODULE IINVERSE_AXIS
+   USE, INTRINSIC :: ISO_C_BINDING
+   USE INVERSE_AXIS_INTERFACE
+
+   TYPE txios(inverse_axis)
+      INTEGER(kind = C_INTPTR_T) :: daddr
+   END TYPE txios(inverse_axis)
+
+   CONTAINS ! Fonctions disponibles pour les utilisateurs.
+
+   SUBROUTINE xios(get_inverse_axis_handle)(idt,ret)
+      IMPLICIT NONE
+      CHARACTER(len = *), INTENT(IN) :: idt
+      TYPE(txios(inverse_axis)) , INTENT(OUT):: ret
+      CALL cxios_inverse_axis_handle_create(ret%daddr, idt, len(idt))
+   END SUBROUTINE xios(get_inverse_axis_handle)
+
+   LOGICAL FUNCTION xios(is_valid_inverse_axis)(idt)
+      IMPLICIT NONE
+      CHARACTER(len  = *)    , INTENT(IN) :: idt
+      LOGICAL  (kind = 1)                 :: val
+
+      CALL cxios_inverse_axis_valid_id(val, idt, len(idt))
+      xios(is_valid_inverse_axis) = val
+
+   END FUNCTION  xios(is_valid_inverse_axis)
+
+END MODULE IINVERSE_AXIS
Index: XIOS/trunk/src/interface/fortran/interpolate_axis_interface.f90
===================================================================
--- XIOS/trunk/src/interface/fortran/interpolate_axis_interface.f90	(revision 786)
+++ XIOS/trunk/src/interface/fortran/interpolate_axis_interface.f90	(revision 786)
@@ -0,0 +1,22 @@
+MODULE INTERPOLATE_AXIS_INTERFACE
+   USE, INTRINSIC :: ISO_C_BINDING
+
+   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
+
+      SUBROUTINE cxios_interpolate_axis_handle_create(ret, idt, idt_size) BIND(C)
+         USE ISO_C_BINDING
+         INTEGER  (kind = C_INTPTR_T)               :: ret
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
+         INTEGER  (kind = C_INT)     , VALUE        :: idt_size
+      END SUBROUTINE cxios_interpolate_axis_handle_create
+
+      SUBROUTINE cxios_interpolate_axis_valid_id(ret, idt, idt_size) BIND(C)
+         USE ISO_C_BINDING
+         LOGICAL  (kind = C_BOOL)                   :: ret
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
+         INTEGER  (kind = C_INT)     , VALUE        :: idt_size
+      END SUBROUTINE cxios_interpolate_axis_valid_id
+
+   END INTERFACE
+
+END MODULE INTERPOLATE_AXIS_INTERFACE
Index: XIOS/trunk/src/interface/fortran/interpolate_domain_interface.f90
===================================================================
--- XIOS/trunk/src/interface/fortran/interpolate_domain_interface.f90	(revision 786)
+++ XIOS/trunk/src/interface/fortran/interpolate_domain_interface.f90	(revision 786)
@@ -0,0 +1,22 @@
+MODULE INTERPOLATE_DOMAIN_INTERFACE
+   USE, INTRINSIC :: ISO_C_BINDING
+
+   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
+
+      SUBROUTINE cxios_interpolate_domain_handle_create(ret, idt, idt_size) BIND(C)
+         USE ISO_C_BINDING
+         INTEGER  (kind = C_INTPTR_T)               :: ret
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
+         INTEGER  (kind = C_INT)     , VALUE        :: idt_size
+      END SUBROUTINE cxios_interpolate_domain_handle_create
+
+      SUBROUTINE cxios_interpolate_domain_valid_id(ret, idt, idt_size) BIND(C)
+         USE ISO_C_BINDING
+         LOGICAL  (kind = C_BOOL)                   :: ret
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
+         INTEGER  (kind = C_INT)     , VALUE        :: idt_size
+      END SUBROUTINE cxios_interpolate_domain_valid_id
+
+   END INTERFACE
+
+END MODULE INTERPOLATE_DOMAIN_INTERFACE
Index: XIOS/trunk/src/interface/fortran/inverse_axis_interface.f90
===================================================================
--- XIOS/trunk/src/interface/fortran/inverse_axis_interface.f90	(revision 786)
+++ XIOS/trunk/src/interface/fortran/inverse_axis_interface.f90	(revision 786)
@@ -0,0 +1,22 @@
+MODULE INVERSE_AXIS_INTERFACE
+   USE, INTRINSIC :: ISO_C_BINDING
+
+   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
+
+      SUBROUTINE cxios_inverse_axis_handle_create(ret, idt, idt_size) BIND(C)
+         USE ISO_C_BINDING
+         INTEGER  (kind = C_INTPTR_T)               :: ret
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
+         INTEGER  (kind = C_INT)     , VALUE        :: idt_size
+      END SUBROUTINE cxios_inverse_axis_handle_create
+
+      SUBROUTINE cxios_inverse_axis_valid_id(ret, idt, idt_size) BIND(C)
+         USE ISO_C_BINDING
+         LOGICAL  (kind = C_BOOL)                   :: ret
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
+         INTEGER  (kind = C_INT)     , VALUE        :: idt_size
+      END SUBROUTINE cxios_inverse_axis_valid_id
+
+   END INTERFACE
+
+END MODULE INVERSE_AXIS_INTERFACE
Index: XIOS/trunk/src/interface/fortran/ixios.F90
===================================================================
--- XIOS/trunk/src/interface/fortran/ixios.F90	(revision 784)
+++ XIOS/trunk/src/interface/fortran/ixios.F90	(revision 786)
@@ -75,4 +75,23 @@
 USE izoom_domain_attr, ONLY : xios(set_zoom_domain_attr), xios(get_zoom_domain_attr), xios(is_defined_zoom_domain_attr)
 
+USE iinterpolate_axis, ONLY : txios(interpolate_axis), xios(is_valid_interpolate_axis)
+
+USE iinterpolate_axis_attr, ONLY : xios(set_interpolate_axis_attr), xios(get_interpolate_axis_attr), &
+                                   xios(is_defined_interpolate_axis_attr)
+
+USE iinterpolate_domain, ONLY : txios(interpolate_domain), xios(is_valid_interpolate_domain)
+
+USE iinterpolate_domain_attr, ONLY : xios(set_interpolate_domain_attr), xios(get_interpolate_domain_attr), &
+                                     xios(is_defined_interpolate_domain_attr)
+
+USE iinverse_axis, ONLY : txios(inverse_axis), xios(is_valid_inverse_axis)
+
+USE iinverse_axis_attr, ONLY : xios(set_inverse_axis_attr), xios(get_inverse_axis_attr), xios(is_defined_inverse_axis_attr)
+
+USE igenerate_rectilinear_domain, ONLY : txios(generate_rectilinear_domain), xios(is_valid_generate_rectilinear_domain)
+
+USE igenerate_rectilinear_domain_attr, ONLY : xios(set_generate_rectilinear_domain_attr), xios(get_generate_rectilinear_domain_attr), &
+                                              xios(is_defined_generate_rectilinear_domain_attr)
+
 USE XIOS_INTERFACES, ONLY : xios(set_attr), xios(get_attr), xios(is_defined_attr), xios(get_handle), xios(add_child), &
                             xios(send_field), xios(send_scalar), xios(recv_field), xios(field_is_active), xios(getVar), xios(setVar)
Index: XIOS/trunk/src/interface/fortran/ixios_interfaces.F90
===================================================================
--- XIOS/trunk/src/interface/fortran/ixios_interfaces.F90	(revision 784)
+++ XIOS/trunk/src/interface/fortran/ixios_interfaces.F90	(revision 786)
@@ -59,4 +59,24 @@
 USE izoom_domain_attr, ONLY : xios(set_zoom_domain_attr_hdl), xios(get_zoom_domain_attr_hdl), xios(is_defined_zoom_domain_attr_hdl)
 
+USE iinterpolate_axis, ONLY : xios(get_interpolate_axis_handle)
+
+USE iinterpolate_axis_attr, ONLY : xios(set_interpolate_axis_attr_hdl), xios(get_interpolate_axis_attr_hdl), &
+                                   xios(is_defined_interpolate_axis_attr_hdl)
+
+USE iinterpolate_domain, ONLY : xios(get_interpolate_domain_handle)
+
+USE iinterpolate_domain_attr, ONLY : xios(set_interpolate_domain_attr_hdl), xios(get_interpolate_domain_attr_hdl), &
+                                     xios(is_defined_interpolate_domain_attr_hdl)
+
+USE iinverse_axis, ONLY : xios(get_inverse_axis_handle)
+
+USE iinverse_axis_attr, ONLY : xios(set_inverse_axis_attr_hdl), xios(get_inverse_axis_attr_hdl), xios(is_defined_inverse_axis_attr_hdl)
+
+USE igenerate_rectilinear_domain, ONLY : xios(get_generate_rectilinear_domain_handle)
+
+USE igenerate_rectilinear_domain_attr, ONLY : xios(set_generate_rectilinear_domain_attr_hdl), &
+                                              xios(get_generate_rectilinear_domain_attr_hdl), &
+                                              xios(is_defined_generate_rectilinear_domain_attr_hdl)
+
 USE ixml_tree, ONLY : xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),   &
                       xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield),          &
@@ -73,5 +93,7 @@
                    xios(set_grid_attr_hdl), xios(set_gridgroup_attr_hdl), xios(set_axis_attr_hdl) ,          &
                    xios(set_axisgroup_attr_hdl), xios(set_context_attr_hdl), xios(set_zoom_axis_attr_hdl),   &
-                   xios(set_zoom_domain_attr_hdl)
+                   xios(set_zoom_domain_attr_hdl), xios(set_interpolate_axis_attr_hdl),                      &
+                   xios(set_interpolate_domain_attr_hdl), xios(set_inverse_axis_attr_hdl),                   &
+                   xios(set_generate_rectilinear_domain_attr_hdl)
 END INTERFACE xios(set_attr)
 
@@ -82,5 +104,7 @@
                    xios(get_grid_attr_hdl), xios(get_gridgroup_attr_hdl), xios(get_axis_attr_hdl) ,          &
                    xios(get_axisgroup_attr_hdl), xios(get_context_attr_hdl), xios(get_zoom_axis_attr_hdl),   &
-                   xios(get_zoom_domain_attr_hdl)
+                   xios(get_zoom_domain_attr_hdl), xios(get_interpolate_axis_attr_hdl),                      &
+                   xios(get_interpolate_domain_attr_hdl), xios(get_inverse_axis_attr_hdl),                   &
+                   xios(get_generate_rectilinear_domain_attr_hdl)
 END INTERFACE xios(get_attr)
 
@@ -91,5 +115,7 @@
                    xios(is_defined_grid_attr_hdl), xios(is_defined_gridgroup_attr_hdl), xios(is_defined_axis_attr_hdl) ,          &
                    xios(is_defined_axisgroup_attr_hdl), xios(is_defined_context_attr_hdl),                                        &
-                   xios(is_defined_zoom_axis_attr_hdl), xios(is_defined_zoom_domain_attr_hdl)
+                   xios(is_defined_zoom_axis_attr_hdl), xios(is_defined_zoom_domain_attr_hdl),                                    &
+                   xios(is_defined_interpolate_axis_attr_hdl), xios(is_defined_interpolate_domain_attr_hdl),                      &
+                   xios(is_defined_inverse_axis_attr_hdl), xios(is_defined_generate_rectilinear_domain_attr_hdl)
 END INTERFACE xios(is_defined_attr)
 
@@ -99,6 +125,8 @@
                    xios(get_gridgroup_handle), xios(get_axis_handle), xios(get_axisgroup_handle),   &
                    xios(get_field_handle), xios(get_fieldgroup_handle),xios(get_variable_handle),   &
-                   xios(get_variablegroup_handle), xios(get_zoom_axis_handle),                  &
-                   xios(get_zoom_domain_handle)
+                   xios(get_variablegroup_handle), xios(get_zoom_axis_handle),                      &
+                   xios(get_zoom_domain_handle), xios(get_interpolate_axis_handle),                 &
+                   xios(get_interpolate_domain_handle), xios(get_inverse_axis_handle),              &
+                   xios(get_generate_rectilinear_domain_handle)
 END INTERFACE xios(get_handle)
 
Index: XIOS/trunk/src/interface/fortran_attr/generate_rectilinear_domain_interface_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/generate_rectilinear_domain_interface_attr.F90	(revision 786)
+++ XIOS/trunk/src/interface/fortran_attr/generate_rectilinear_domain_interface_attr.F90	(revision 786)
@@ -0,0 +1,165 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "../fortran/xios_fortran_prefix.hpp"
+
+MODULE generate_rectilinear_domain_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+
+  INTERFACE
+    ! Do not call directly / interface FORTRAN 2003 <-> C99
+
+    SUBROUTINE cxios_set_generate_rectilinear_domain_bounds_lat_end(generate_rectilinear_domain_hdl, bounds_lat_end) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)      , VALUE :: bounds_lat_end
+    END SUBROUTINE cxios_set_generate_rectilinear_domain_bounds_lat_end
+
+    SUBROUTINE cxios_get_generate_rectilinear_domain_bounds_lat_end(generate_rectilinear_domain_hdl, bounds_lat_end) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)             :: bounds_lat_end
+    END SUBROUTINE cxios_get_generate_rectilinear_domain_bounds_lat_end
+
+    FUNCTION cxios_is_defined_generate_rectilinear_domain_bounds_lat_end(generate_rectilinear_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_generate_rectilinear_domain_bounds_lat_end
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+    END FUNCTION cxios_is_defined_generate_rectilinear_domain_bounds_lat_end
+
+
+    SUBROUTINE cxios_set_generate_rectilinear_domain_bounds_lat_start(generate_rectilinear_domain_hdl, bounds_lat_start) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)      , VALUE :: bounds_lat_start
+    END SUBROUTINE cxios_set_generate_rectilinear_domain_bounds_lat_start
+
+    SUBROUTINE cxios_get_generate_rectilinear_domain_bounds_lat_start(generate_rectilinear_domain_hdl, bounds_lat_start) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)             :: bounds_lat_start
+    END SUBROUTINE cxios_get_generate_rectilinear_domain_bounds_lat_start
+
+    FUNCTION cxios_is_defined_generate_rectilinear_domain_bounds_lat_start(generate_rectilinear_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_generate_rectilinear_domain_bounds_lat_start
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+    END FUNCTION cxios_is_defined_generate_rectilinear_domain_bounds_lat_start
+
+
+    SUBROUTINE cxios_set_generate_rectilinear_domain_bounds_lon_end(generate_rectilinear_domain_hdl, bounds_lon_end) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)      , VALUE :: bounds_lon_end
+    END SUBROUTINE cxios_set_generate_rectilinear_domain_bounds_lon_end
+
+    SUBROUTINE cxios_get_generate_rectilinear_domain_bounds_lon_end(generate_rectilinear_domain_hdl, bounds_lon_end) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)             :: bounds_lon_end
+    END SUBROUTINE cxios_get_generate_rectilinear_domain_bounds_lon_end
+
+    FUNCTION cxios_is_defined_generate_rectilinear_domain_bounds_lon_end(generate_rectilinear_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_generate_rectilinear_domain_bounds_lon_end
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+    END FUNCTION cxios_is_defined_generate_rectilinear_domain_bounds_lon_end
+
+
+    SUBROUTINE cxios_set_generate_rectilinear_domain_bounds_lon_start(generate_rectilinear_domain_hdl, bounds_lon_start) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)      , VALUE :: bounds_lon_start
+    END SUBROUTINE cxios_set_generate_rectilinear_domain_bounds_lon_start
+
+    SUBROUTINE cxios_get_generate_rectilinear_domain_bounds_lon_start(generate_rectilinear_domain_hdl, bounds_lon_start) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)             :: bounds_lon_start
+    END SUBROUTINE cxios_get_generate_rectilinear_domain_bounds_lon_start
+
+    FUNCTION cxios_is_defined_generate_rectilinear_domain_bounds_lon_start(generate_rectilinear_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_generate_rectilinear_domain_bounds_lon_start
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+    END FUNCTION cxios_is_defined_generate_rectilinear_domain_bounds_lon_start
+
+
+    SUBROUTINE cxios_set_generate_rectilinear_domain_lat_end(generate_rectilinear_domain_hdl, lat_end) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)      , VALUE :: lat_end
+    END SUBROUTINE cxios_set_generate_rectilinear_domain_lat_end
+
+    SUBROUTINE cxios_get_generate_rectilinear_domain_lat_end(generate_rectilinear_domain_hdl, lat_end) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)             :: lat_end
+    END SUBROUTINE cxios_get_generate_rectilinear_domain_lat_end
+
+    FUNCTION cxios_is_defined_generate_rectilinear_domain_lat_end(generate_rectilinear_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_generate_rectilinear_domain_lat_end
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+    END FUNCTION cxios_is_defined_generate_rectilinear_domain_lat_end
+
+
+    SUBROUTINE cxios_set_generate_rectilinear_domain_lat_start(generate_rectilinear_domain_hdl, lat_start) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)      , VALUE :: lat_start
+    END SUBROUTINE cxios_set_generate_rectilinear_domain_lat_start
+
+    SUBROUTINE cxios_get_generate_rectilinear_domain_lat_start(generate_rectilinear_domain_hdl, lat_start) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)             :: lat_start
+    END SUBROUTINE cxios_get_generate_rectilinear_domain_lat_start
+
+    FUNCTION cxios_is_defined_generate_rectilinear_domain_lat_start(generate_rectilinear_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_generate_rectilinear_domain_lat_start
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+    END FUNCTION cxios_is_defined_generate_rectilinear_domain_lat_start
+
+
+    SUBROUTINE cxios_set_generate_rectilinear_domain_lon_end(generate_rectilinear_domain_hdl, lon_end) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)      , VALUE :: lon_end
+    END SUBROUTINE cxios_set_generate_rectilinear_domain_lon_end
+
+    SUBROUTINE cxios_get_generate_rectilinear_domain_lon_end(generate_rectilinear_domain_hdl, lon_end) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)             :: lon_end
+    END SUBROUTINE cxios_get_generate_rectilinear_domain_lon_end
+
+    FUNCTION cxios_is_defined_generate_rectilinear_domain_lon_end(generate_rectilinear_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_generate_rectilinear_domain_lon_end
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+    END FUNCTION cxios_is_defined_generate_rectilinear_domain_lon_end
+
+
+    SUBROUTINE cxios_set_generate_rectilinear_domain_lon_start(generate_rectilinear_domain_hdl, lon_start) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)      , VALUE :: lon_start
+    END SUBROUTINE cxios_set_generate_rectilinear_domain_lon_start
+
+    SUBROUTINE cxios_get_generate_rectilinear_domain_lon_start(generate_rectilinear_domain_hdl, lon_start) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+      REAL (KIND=C_DOUBLE)             :: lon_start
+    END SUBROUTINE cxios_get_generate_rectilinear_domain_lon_start
+
+    FUNCTION cxios_is_defined_generate_rectilinear_domain_lon_start(generate_rectilinear_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_generate_rectilinear_domain_lon_start
+      INTEGER (kind = C_INTPTR_T), VALUE :: generate_rectilinear_domain_hdl
+    END FUNCTION cxios_is_defined_generate_rectilinear_domain_lon_start
+
+  END INTERFACE
+
+END MODULE generate_rectilinear_domain_interface_attr
Index: XIOS/trunk/src/interface/fortran_attr/igenerate_rectilinear_domain_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/igenerate_rectilinear_domain_attr.F90	(revision 786)
+++ XIOS/trunk/src/interface/fortran_attr/igenerate_rectilinear_domain_attr.F90	(revision 786)
@@ -0,0 +1,324 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE igenerate_rectilinear_domain_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE igenerate_rectilinear_domain
+  USE generate_rectilinear_domain_interface_attr
+
+CONTAINS
+
+  SUBROUTINE xios(set_generate_rectilinear_domain_attr)  &
+    ( generate_rectilinear_domain_id, bounds_lat_end, bounds_lat_start, bounds_lon_end, bounds_lon_start  &
+    , lat_end, lat_start, lon_end, lon_start )
+
+    IMPLICIT NONE
+      TYPE(txios(generate_rectilinear_domain))  :: generate_rectilinear_domain_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::generate_rectilinear_domain_id
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_end
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_start
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_end
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_start
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lat_end
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lat_start
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lon_end
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lon_start
+
+      CALL xios(get_generate_rectilinear_domain_handle)(generate_rectilinear_domain_id,generate_rectilinear_domain_hdl)
+      CALL xios(set_generate_rectilinear_domain_attr_hdl_)   &
+      ( generate_rectilinear_domain_hdl, bounds_lat_end, bounds_lat_start, bounds_lon_end, bounds_lon_start  &
+      , lat_end, lat_start, lon_end, lon_start )
+
+  END SUBROUTINE xios(set_generate_rectilinear_domain_attr)
+
+  SUBROUTINE xios(set_generate_rectilinear_domain_attr_hdl)  &
+    ( generate_rectilinear_domain_hdl, bounds_lat_end, bounds_lat_start, bounds_lon_end, bounds_lon_start  &
+    , lat_end, lat_start, lon_end, lon_start )
+
+    IMPLICIT NONE
+      TYPE(txios(generate_rectilinear_domain)) , INTENT(IN) :: generate_rectilinear_domain_hdl
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_end
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_start
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_end
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_start
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lat_end
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lat_start
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lon_end
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lon_start
+
+      CALL xios(set_generate_rectilinear_domain_attr_hdl_)  &
+      ( generate_rectilinear_domain_hdl, bounds_lat_end, bounds_lat_start, bounds_lon_end, bounds_lon_start  &
+      , lat_end, lat_start, lon_end, lon_start )
+
+  END SUBROUTINE xios(set_generate_rectilinear_domain_attr_hdl)
+
+  SUBROUTINE xios(set_generate_rectilinear_domain_attr_hdl_)   &
+    ( generate_rectilinear_domain_hdl, bounds_lat_end_, bounds_lat_start_, bounds_lon_end_, bounds_lon_start_  &
+    , lat_end_, lat_start_, lon_end_, lon_start_ )
+
+    IMPLICIT NONE
+      TYPE(txios(generate_rectilinear_domain)) , INTENT(IN) :: generate_rectilinear_domain_hdl
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_end_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_start_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_end_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_start_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lat_end_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lat_start_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lon_end_
+      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lon_start_
+
+      IF (PRESENT(bounds_lat_end_)) THEN
+        CALL cxios_set_generate_rectilinear_domain_bounds_lat_end(generate_rectilinear_domain_hdl%daddr, bounds_lat_end_)
+      ENDIF
+
+      IF (PRESENT(bounds_lat_start_)) THEN
+        CALL cxios_set_generate_rectilinear_domain_bounds_lat_start(generate_rectilinear_domain_hdl%daddr, bounds_lat_start_)
+      ENDIF
+
+      IF (PRESENT(bounds_lon_end_)) THEN
+        CALL cxios_set_generate_rectilinear_domain_bounds_lon_end(generate_rectilinear_domain_hdl%daddr, bounds_lon_end_)
+      ENDIF
+
+      IF (PRESENT(bounds_lon_start_)) THEN
+        CALL cxios_set_generate_rectilinear_domain_bounds_lon_start(generate_rectilinear_domain_hdl%daddr, bounds_lon_start_)
+      ENDIF
+
+      IF (PRESENT(lat_end_)) THEN
+        CALL cxios_set_generate_rectilinear_domain_lat_end(generate_rectilinear_domain_hdl%daddr, lat_end_)
+      ENDIF
+
+      IF (PRESENT(lat_start_)) THEN
+        CALL cxios_set_generate_rectilinear_domain_lat_start(generate_rectilinear_domain_hdl%daddr, lat_start_)
+      ENDIF
+
+      IF (PRESENT(lon_end_)) THEN
+        CALL cxios_set_generate_rectilinear_domain_lon_end(generate_rectilinear_domain_hdl%daddr, lon_end_)
+      ENDIF
+
+      IF (PRESENT(lon_start_)) THEN
+        CALL cxios_set_generate_rectilinear_domain_lon_start(generate_rectilinear_domain_hdl%daddr, lon_start_)
+      ENDIF
+
+  END SUBROUTINE xios(set_generate_rectilinear_domain_attr_hdl_)
+
+  SUBROUTINE xios(get_generate_rectilinear_domain_attr)  &
+    ( generate_rectilinear_domain_id, bounds_lat_end, bounds_lat_start, bounds_lon_end, bounds_lon_start  &
+    , lat_end, lat_start, lon_end, lon_start )
+
+    IMPLICIT NONE
+      TYPE(txios(generate_rectilinear_domain))  :: generate_rectilinear_domain_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::generate_rectilinear_domain_id
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_end
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_start
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_end
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_start
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lat_end
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lat_start
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lon_end
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lon_start
+
+      CALL xios(get_generate_rectilinear_domain_handle)(generate_rectilinear_domain_id,generate_rectilinear_domain_hdl)
+      CALL xios(get_generate_rectilinear_domain_attr_hdl_)   &
+      ( generate_rectilinear_domain_hdl, bounds_lat_end, bounds_lat_start, bounds_lon_end, bounds_lon_start  &
+      , lat_end, lat_start, lon_end, lon_start )
+
+  END SUBROUTINE xios(get_generate_rectilinear_domain_attr)
+
+  SUBROUTINE xios(get_generate_rectilinear_domain_attr_hdl)  &
+    ( generate_rectilinear_domain_hdl, bounds_lat_end, bounds_lat_start, bounds_lon_end, bounds_lon_start  &
+    , lat_end, lat_start, lon_end, lon_start )
+
+    IMPLICIT NONE
+      TYPE(txios(generate_rectilinear_domain)) , INTENT(IN) :: generate_rectilinear_domain_hdl
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_end
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_start
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_end
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_start
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lat_end
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lat_start
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lon_end
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lon_start
+
+      CALL xios(get_generate_rectilinear_domain_attr_hdl_)  &
+      ( generate_rectilinear_domain_hdl, bounds_lat_end, bounds_lat_start, bounds_lon_end, bounds_lon_start  &
+      , lat_end, lat_start, lon_end, lon_start )
+
+  END SUBROUTINE xios(get_generate_rectilinear_domain_attr_hdl)
+
+  SUBROUTINE xios(get_generate_rectilinear_domain_attr_hdl_)   &
+    ( generate_rectilinear_domain_hdl, bounds_lat_end_, bounds_lat_start_, bounds_lon_end_, bounds_lon_start_  &
+    , lat_end_, lat_start_, lon_end_, lon_start_ )
+
+    IMPLICIT NONE
+      TYPE(txios(generate_rectilinear_domain)) , INTENT(IN) :: generate_rectilinear_domain_hdl
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_end_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_start_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_end_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_start_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lat_end_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lat_start_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lon_end_
+      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lon_start_
+
+      IF (PRESENT(bounds_lat_end_)) THEN
+        CALL cxios_get_generate_rectilinear_domain_bounds_lat_end(generate_rectilinear_domain_hdl%daddr, bounds_lat_end_)
+      ENDIF
+
+      IF (PRESENT(bounds_lat_start_)) THEN
+        CALL cxios_get_generate_rectilinear_domain_bounds_lat_start(generate_rectilinear_domain_hdl%daddr, bounds_lat_start_)
+      ENDIF
+
+      IF (PRESENT(bounds_lon_end_)) THEN
+        CALL cxios_get_generate_rectilinear_domain_bounds_lon_end(generate_rectilinear_domain_hdl%daddr, bounds_lon_end_)
+      ENDIF
+
+      IF (PRESENT(bounds_lon_start_)) THEN
+        CALL cxios_get_generate_rectilinear_domain_bounds_lon_start(generate_rectilinear_domain_hdl%daddr, bounds_lon_start_)
+      ENDIF
+
+      IF (PRESENT(lat_end_)) THEN
+        CALL cxios_get_generate_rectilinear_domain_lat_end(generate_rectilinear_domain_hdl%daddr, lat_end_)
+      ENDIF
+
+      IF (PRESENT(lat_start_)) THEN
+        CALL cxios_get_generate_rectilinear_domain_lat_start(generate_rectilinear_domain_hdl%daddr, lat_start_)
+      ENDIF
+
+      IF (PRESENT(lon_end_)) THEN
+        CALL cxios_get_generate_rectilinear_domain_lon_end(generate_rectilinear_domain_hdl%daddr, lon_end_)
+      ENDIF
+
+      IF (PRESENT(lon_start_)) THEN
+        CALL cxios_get_generate_rectilinear_domain_lon_start(generate_rectilinear_domain_hdl%daddr, lon_start_)
+      ENDIF
+
+  END SUBROUTINE xios(get_generate_rectilinear_domain_attr_hdl_)
+
+  SUBROUTINE xios(is_defined_generate_rectilinear_domain_attr)  &
+    ( generate_rectilinear_domain_id, bounds_lat_end, bounds_lat_start, bounds_lon_end, bounds_lon_start  &
+    , lat_end, lat_start, lon_end, lon_start )
+
+    IMPLICIT NONE
+      TYPE(txios(generate_rectilinear_domain))  :: generate_rectilinear_domain_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::generate_rectilinear_domain_id
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_end
+      LOGICAL(KIND=C_BOOL) :: bounds_lat_end_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_start
+      LOGICAL(KIND=C_BOOL) :: bounds_lat_start_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_end
+      LOGICAL(KIND=C_BOOL) :: bounds_lon_end_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_start
+      LOGICAL(KIND=C_BOOL) :: bounds_lon_start_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lat_end
+      LOGICAL(KIND=C_BOOL) :: lat_end_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lat_start
+      LOGICAL(KIND=C_BOOL) :: lat_start_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lon_end
+      LOGICAL(KIND=C_BOOL) :: lon_end_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lon_start
+      LOGICAL(KIND=C_BOOL) :: lon_start_tmp
+
+      CALL xios(get_generate_rectilinear_domain_handle)(generate_rectilinear_domain_id,generate_rectilinear_domain_hdl)
+      CALL xios(is_defined_generate_rectilinear_domain_attr_hdl_)   &
+      ( generate_rectilinear_domain_hdl, bounds_lat_end, bounds_lat_start, bounds_lon_end, bounds_lon_start  &
+      , lat_end, lat_start, lon_end, lon_start )
+
+  END SUBROUTINE xios(is_defined_generate_rectilinear_domain_attr)
+
+  SUBROUTINE xios(is_defined_generate_rectilinear_domain_attr_hdl)  &
+    ( generate_rectilinear_domain_hdl, bounds_lat_end, bounds_lat_start, bounds_lon_end, bounds_lon_start  &
+    , lat_end, lat_start, lon_end, lon_start )
+
+    IMPLICIT NONE
+      TYPE(txios(generate_rectilinear_domain)) , INTENT(IN) :: generate_rectilinear_domain_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_end
+      LOGICAL(KIND=C_BOOL) :: bounds_lat_end_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_start
+      LOGICAL(KIND=C_BOOL) :: bounds_lat_start_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_end
+      LOGICAL(KIND=C_BOOL) :: bounds_lon_end_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_start
+      LOGICAL(KIND=C_BOOL) :: bounds_lon_start_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lat_end
+      LOGICAL(KIND=C_BOOL) :: lat_end_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lat_start
+      LOGICAL(KIND=C_BOOL) :: lat_start_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lon_end
+      LOGICAL(KIND=C_BOOL) :: lon_end_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lon_start
+      LOGICAL(KIND=C_BOOL) :: lon_start_tmp
+
+      CALL xios(is_defined_generate_rectilinear_domain_attr_hdl_)  &
+      ( generate_rectilinear_domain_hdl, bounds_lat_end, bounds_lat_start, bounds_lon_end, bounds_lon_start  &
+      , lat_end, lat_start, lon_end, lon_start )
+
+  END SUBROUTINE xios(is_defined_generate_rectilinear_domain_attr_hdl)
+
+  SUBROUTINE xios(is_defined_generate_rectilinear_domain_attr_hdl_)   &
+    ( generate_rectilinear_domain_hdl, bounds_lat_end_, bounds_lat_start_, bounds_lon_end_, bounds_lon_start_  &
+    , lat_end_, lat_start_, lon_end_, lon_start_ )
+
+    IMPLICIT NONE
+      TYPE(txios(generate_rectilinear_domain)) , INTENT(IN) :: generate_rectilinear_domain_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_end_
+      LOGICAL(KIND=C_BOOL) :: bounds_lat_end__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_start_
+      LOGICAL(KIND=C_BOOL) :: bounds_lat_start__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_end_
+      LOGICAL(KIND=C_BOOL) :: bounds_lon_end__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_start_
+      LOGICAL(KIND=C_BOOL) :: bounds_lon_start__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lat_end_
+      LOGICAL(KIND=C_BOOL) :: lat_end__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lat_start_
+      LOGICAL(KIND=C_BOOL) :: lat_start__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lon_end_
+      LOGICAL(KIND=C_BOOL) :: lon_end__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: lon_start_
+      LOGICAL(KIND=C_BOOL) :: lon_start__tmp
+
+      IF (PRESENT(bounds_lat_end_)) THEN
+        bounds_lat_end__tmp = cxios_is_defined_generate_rectilinear_domain_bounds_lat_end(generate_rectilinear_domain_hdl%daddr)
+        bounds_lat_end_ = bounds_lat_end__tmp
+      ENDIF
+
+      IF (PRESENT(bounds_lat_start_)) THEN
+        bounds_lat_start__tmp = cxios_is_defined_generate_rectilinear_domain_bounds_lat_start(generate_rectilinear_domain_hdl%daddr)
+        bounds_lat_start_ = bounds_lat_start__tmp
+      ENDIF
+
+      IF (PRESENT(bounds_lon_end_)) THEN
+        bounds_lon_end__tmp = cxios_is_defined_generate_rectilinear_domain_bounds_lon_end(generate_rectilinear_domain_hdl%daddr)
+        bounds_lon_end_ = bounds_lon_end__tmp
+      ENDIF
+
+      IF (PRESENT(bounds_lon_start_)) THEN
+        bounds_lon_start__tmp = cxios_is_defined_generate_rectilinear_domain_bounds_lon_start(generate_rectilinear_domain_hdl%daddr)
+        bounds_lon_start_ = bounds_lon_start__tmp
+      ENDIF
+
+      IF (PRESENT(lat_end_)) THEN
+        lat_end__tmp = cxios_is_defined_generate_rectilinear_domain_lat_end(generate_rectilinear_domain_hdl%daddr)
+        lat_end_ = lat_end__tmp
+      ENDIF
+
+      IF (PRESENT(lat_start_)) THEN
+        lat_start__tmp = cxios_is_defined_generate_rectilinear_domain_lat_start(generate_rectilinear_domain_hdl%daddr)
+        lat_start_ = lat_start__tmp
+      ENDIF
+
+      IF (PRESENT(lon_end_)) THEN
+        lon_end__tmp = cxios_is_defined_generate_rectilinear_domain_lon_end(generate_rectilinear_domain_hdl%daddr)
+        lon_end_ = lon_end__tmp
+      ENDIF
+
+      IF (PRESENT(lon_start_)) THEN
+        lon_start__tmp = cxios_is_defined_generate_rectilinear_domain_lon_start(generate_rectilinear_domain_hdl%daddr)
+        lon_start_ = lon_start__tmp
+      ENDIF
+
+  END SUBROUTINE xios(is_defined_generate_rectilinear_domain_attr_hdl_)
+
+END MODULE igenerate_rectilinear_domain_attr
Index: XIOS/trunk/src/interface/fortran_attr/iinterpolate_axis_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/iinterpolate_axis_attr.F90	(revision 786)
+++ XIOS/trunk/src/interface/fortran_attr/iinterpolate_axis_attr.F90	(revision 786)
@@ -0,0 +1,159 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE iinterpolate_axis_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE iinterpolate_axis
+  USE interpolate_axis_interface_attr
+
+CONTAINS
+
+  SUBROUTINE xios(set_interpolate_axis_attr)  &
+    ( interpolate_axis_id, order, type )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_axis))  :: interpolate_axis_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::interpolate_axis_id
+      INTEGER  , OPTIONAL, INTENT(IN) :: order
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
+
+      CALL xios(get_interpolate_axis_handle)(interpolate_axis_id,interpolate_axis_hdl)
+      CALL xios(set_interpolate_axis_attr_hdl_)   &
+      ( interpolate_axis_hdl, order, type )
+
+  END SUBROUTINE xios(set_interpolate_axis_attr)
+
+  SUBROUTINE xios(set_interpolate_axis_attr_hdl)  &
+    ( interpolate_axis_hdl, order, type )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_axis)) , INTENT(IN) :: interpolate_axis_hdl
+      INTEGER  , OPTIONAL, INTENT(IN) :: order
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
+
+      CALL xios(set_interpolate_axis_attr_hdl_)  &
+      ( interpolate_axis_hdl, order, type )
+
+  END SUBROUTINE xios(set_interpolate_axis_attr_hdl)
+
+  SUBROUTINE xios(set_interpolate_axis_attr_hdl_)   &
+    ( interpolate_axis_hdl, order_, type_ )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_axis)) , INTENT(IN) :: interpolate_axis_hdl
+      INTEGER  , OPTIONAL, INTENT(IN) :: order_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_
+
+      IF (PRESENT(order_)) THEN
+        CALL cxios_set_interpolate_axis_order(interpolate_axis_hdl%daddr, order_)
+      ENDIF
+
+      IF (PRESENT(type_)) THEN
+        CALL cxios_set_interpolate_axis_type(interpolate_axis_hdl%daddr, type_, len(type_))
+      ENDIF
+
+  END SUBROUTINE xios(set_interpolate_axis_attr_hdl_)
+
+  SUBROUTINE xios(get_interpolate_axis_attr)  &
+    ( interpolate_axis_id, order, type )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_axis))  :: interpolate_axis_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::interpolate_axis_id
+      INTEGER  , OPTIONAL, INTENT(OUT) :: order
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
+
+      CALL xios(get_interpolate_axis_handle)(interpolate_axis_id,interpolate_axis_hdl)
+      CALL xios(get_interpolate_axis_attr_hdl_)   &
+      ( interpolate_axis_hdl, order, type )
+
+  END SUBROUTINE xios(get_interpolate_axis_attr)
+
+  SUBROUTINE xios(get_interpolate_axis_attr_hdl)  &
+    ( interpolate_axis_hdl, order, type )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_axis)) , INTENT(IN) :: interpolate_axis_hdl
+      INTEGER  , OPTIONAL, INTENT(OUT) :: order
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
+
+      CALL xios(get_interpolate_axis_attr_hdl_)  &
+      ( interpolate_axis_hdl, order, type )
+
+  END SUBROUTINE xios(get_interpolate_axis_attr_hdl)
+
+  SUBROUTINE xios(get_interpolate_axis_attr_hdl_)   &
+    ( interpolate_axis_hdl, order_, type_ )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_axis)) , INTENT(IN) :: interpolate_axis_hdl
+      INTEGER  , OPTIONAL, INTENT(OUT) :: order_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_
+
+      IF (PRESENT(order_)) THEN
+        CALL cxios_get_interpolate_axis_order(interpolate_axis_hdl%daddr, order_)
+      ENDIF
+
+      IF (PRESENT(type_)) THEN
+        CALL cxios_get_interpolate_axis_type(interpolate_axis_hdl%daddr, type_, len(type_))
+      ENDIF
+
+  END SUBROUTINE xios(get_interpolate_axis_attr_hdl_)
+
+  SUBROUTINE xios(is_defined_interpolate_axis_attr)  &
+    ( interpolate_axis_id, order, type )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_axis))  :: interpolate_axis_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::interpolate_axis_id
+      LOGICAL, OPTIONAL, INTENT(OUT) :: order
+      LOGICAL(KIND=C_BOOL) :: order_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: type
+      LOGICAL(KIND=C_BOOL) :: type_tmp
+
+      CALL xios(get_interpolate_axis_handle)(interpolate_axis_id,interpolate_axis_hdl)
+      CALL xios(is_defined_interpolate_axis_attr_hdl_)   &
+      ( interpolate_axis_hdl, order, type )
+
+  END SUBROUTINE xios(is_defined_interpolate_axis_attr)
+
+  SUBROUTINE xios(is_defined_interpolate_axis_attr_hdl)  &
+    ( interpolate_axis_hdl, order, type )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_axis)) , INTENT(IN) :: interpolate_axis_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: order
+      LOGICAL(KIND=C_BOOL) :: order_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: type
+      LOGICAL(KIND=C_BOOL) :: type_tmp
+
+      CALL xios(is_defined_interpolate_axis_attr_hdl_)  &
+      ( interpolate_axis_hdl, order, type )
+
+  END SUBROUTINE xios(is_defined_interpolate_axis_attr_hdl)
+
+  SUBROUTINE xios(is_defined_interpolate_axis_attr_hdl_)   &
+    ( interpolate_axis_hdl, order_, type_ )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_axis)) , INTENT(IN) :: interpolate_axis_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: order_
+      LOGICAL(KIND=C_BOOL) :: order__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: type_
+      LOGICAL(KIND=C_BOOL) :: type__tmp
+
+      IF (PRESENT(order_)) THEN
+        order__tmp = cxios_is_defined_interpolate_axis_order(interpolate_axis_hdl%daddr)
+        order_ = order__tmp
+      ENDIF
+
+      IF (PRESENT(type_)) THEN
+        type__tmp = cxios_is_defined_interpolate_axis_type(interpolate_axis_hdl%daddr)
+        type_ = type__tmp
+      ENDIF
+
+  END SUBROUTINE xios(is_defined_interpolate_axis_attr_hdl_)
+
+END MODULE iinterpolate_axis_attr
Index: XIOS/trunk/src/interface/fortran_attr/iinterpolate_domain_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/iinterpolate_domain_attr.F90	(revision 786)
+++ XIOS/trunk/src/interface/fortran_attr/iinterpolate_domain_attr.F90	(revision 786)
@@ -0,0 +1,159 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE iinterpolate_domain_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE iinterpolate_domain
+  USE interpolate_domain_interface_attr
+
+CONTAINS
+
+  SUBROUTINE xios(set_interpolate_domain_attr)  &
+    ( interpolate_domain_id, file, order )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_domain))  :: interpolate_domain_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::interpolate_domain_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: file
+      INTEGER  , OPTIONAL, INTENT(IN) :: order
+
+      CALL xios(get_interpolate_domain_handle)(interpolate_domain_id,interpolate_domain_hdl)
+      CALL xios(set_interpolate_domain_attr_hdl_)   &
+      ( interpolate_domain_hdl, file, order )
+
+  END SUBROUTINE xios(set_interpolate_domain_attr)
+
+  SUBROUTINE xios(set_interpolate_domain_attr_hdl)  &
+    ( interpolate_domain_hdl, file, order )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: file
+      INTEGER  , OPTIONAL, INTENT(IN) :: order
+
+      CALL xios(set_interpolate_domain_attr_hdl_)  &
+      ( interpolate_domain_hdl, file, order )
+
+  END SUBROUTINE xios(set_interpolate_domain_attr_hdl)
+
+  SUBROUTINE xios(set_interpolate_domain_attr_hdl_)   &
+    ( interpolate_domain_hdl, file_, order_ )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: file_
+      INTEGER  , OPTIONAL, INTENT(IN) :: order_
+
+      IF (PRESENT(file_)) THEN
+        CALL cxios_set_interpolate_domain_file(interpolate_domain_hdl%daddr, file_, len(file_))
+      ENDIF
+
+      IF (PRESENT(order_)) THEN
+        CALL cxios_set_interpolate_domain_order(interpolate_domain_hdl%daddr, order_)
+      ENDIF
+
+  END SUBROUTINE xios(set_interpolate_domain_attr_hdl_)
+
+  SUBROUTINE xios(get_interpolate_domain_attr)  &
+    ( interpolate_domain_id, file, order )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_domain))  :: interpolate_domain_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::interpolate_domain_id
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: file
+      INTEGER  , OPTIONAL, INTENT(OUT) :: order
+
+      CALL xios(get_interpolate_domain_handle)(interpolate_domain_id,interpolate_domain_hdl)
+      CALL xios(get_interpolate_domain_attr_hdl_)   &
+      ( interpolate_domain_hdl, file, order )
+
+  END SUBROUTINE xios(get_interpolate_domain_attr)
+
+  SUBROUTINE xios(get_interpolate_domain_attr_hdl)  &
+    ( interpolate_domain_hdl, file, order )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: file
+      INTEGER  , OPTIONAL, INTENT(OUT) :: order
+
+      CALL xios(get_interpolate_domain_attr_hdl_)  &
+      ( interpolate_domain_hdl, file, order )
+
+  END SUBROUTINE xios(get_interpolate_domain_attr_hdl)
+
+  SUBROUTINE xios(get_interpolate_domain_attr_hdl_)   &
+    ( interpolate_domain_hdl, file_, order_ )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: file_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: order_
+
+      IF (PRESENT(file_)) THEN
+        CALL cxios_get_interpolate_domain_file(interpolate_domain_hdl%daddr, file_, len(file_))
+      ENDIF
+
+      IF (PRESENT(order_)) THEN
+        CALL cxios_get_interpolate_domain_order(interpolate_domain_hdl%daddr, order_)
+      ENDIF
+
+  END SUBROUTINE xios(get_interpolate_domain_attr_hdl_)
+
+  SUBROUTINE xios(is_defined_interpolate_domain_attr)  &
+    ( interpolate_domain_id, file, order )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_domain))  :: interpolate_domain_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::interpolate_domain_id
+      LOGICAL, OPTIONAL, INTENT(OUT) :: file
+      LOGICAL(KIND=C_BOOL) :: file_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: order
+      LOGICAL(KIND=C_BOOL) :: order_tmp
+
+      CALL xios(get_interpolate_domain_handle)(interpolate_domain_id,interpolate_domain_hdl)
+      CALL xios(is_defined_interpolate_domain_attr_hdl_)   &
+      ( interpolate_domain_hdl, file, order )
+
+  END SUBROUTINE xios(is_defined_interpolate_domain_attr)
+
+  SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl)  &
+    ( interpolate_domain_hdl, file, order )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: file
+      LOGICAL(KIND=C_BOOL) :: file_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: order
+      LOGICAL(KIND=C_BOOL) :: order_tmp
+
+      CALL xios(is_defined_interpolate_domain_attr_hdl_)  &
+      ( interpolate_domain_hdl, file, order )
+
+  END SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl)
+
+  SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl_)   &
+    ( interpolate_domain_hdl, file_, order_ )
+
+    IMPLICIT NONE
+      TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: file_
+      LOGICAL(KIND=C_BOOL) :: file__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: order_
+      LOGICAL(KIND=C_BOOL) :: order__tmp
+
+      IF (PRESENT(file_)) THEN
+        file__tmp = cxios_is_defined_interpolate_domain_file(interpolate_domain_hdl%daddr)
+        file_ = file__tmp
+      ENDIF
+
+      IF (PRESENT(order_)) THEN
+        order__tmp = cxios_is_defined_interpolate_domain_order(interpolate_domain_hdl%daddr)
+        order_ = order__tmp
+      ENDIF
+
+  END SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl_)
+
+END MODULE iinterpolate_domain_attr
Index: XIOS/trunk/src/interface/fortran_attr/iinverse_axis_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/iinverse_axis_attr.F90	(revision 786)
+++ XIOS/trunk/src/interface/fortran_attr/iinverse_axis_attr.F90	(revision 786)
@@ -0,0 +1,109 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE iinverse_axis_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE iinverse_axis
+  USE inverse_axis_interface_attr
+
+CONTAINS
+
+  SUBROUTINE xios(set_inverse_axis_attr)  &
+    ( inverse_axis_id )
+
+    IMPLICIT NONE
+      TYPE(txios(inverse_axis))  :: inverse_axis_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::inverse_axis_id
+
+      CALL xios(get_inverse_axis_handle)(inverse_axis_id,inverse_axis_hdl)
+      CALL xios(set_inverse_axis_attr_hdl_)   &
+      ( inverse_axis_hdl )
+
+  END SUBROUTINE xios(set_inverse_axis_attr)
+
+  SUBROUTINE xios(set_inverse_axis_attr_hdl)  &
+    ( inverse_axis_hdl )
+
+    IMPLICIT NONE
+      TYPE(txios(inverse_axis)) , INTENT(IN) :: inverse_axis_hdl
+
+      CALL xios(set_inverse_axis_attr_hdl_)  &
+      ( inverse_axis_hdl )
+
+  END SUBROUTINE xios(set_inverse_axis_attr_hdl)
+
+  SUBROUTINE xios(set_inverse_axis_attr_hdl_)   &
+    ( inverse_axis_hdl )
+
+    IMPLICIT NONE
+      TYPE(txios(inverse_axis)) , INTENT(IN) :: inverse_axis_hdl
+
+  END SUBROUTINE xios(set_inverse_axis_attr_hdl_)
+
+  SUBROUTINE xios(get_inverse_axis_attr)  &
+    ( inverse_axis_id )
+
+    IMPLICIT NONE
+      TYPE(txios(inverse_axis))  :: inverse_axis_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::inverse_axis_id
+
+      CALL xios(get_inverse_axis_handle)(inverse_axis_id,inverse_axis_hdl)
+      CALL xios(get_inverse_axis_attr_hdl_)   &
+      ( inverse_axis_hdl )
+
+  END SUBROUTINE xios(get_inverse_axis_attr)
+
+  SUBROUTINE xios(get_inverse_axis_attr_hdl)  &
+    ( inverse_axis_hdl )
+
+    IMPLICIT NONE
+      TYPE(txios(inverse_axis)) , INTENT(IN) :: inverse_axis_hdl
+
+      CALL xios(get_inverse_axis_attr_hdl_)  &
+      ( inverse_axis_hdl )
+
+  END SUBROUTINE xios(get_inverse_axis_attr_hdl)
+
+  SUBROUTINE xios(get_inverse_axis_attr_hdl_)   &
+    ( inverse_axis_hdl )
+
+    IMPLICIT NONE
+      TYPE(txios(inverse_axis)) , INTENT(IN) :: inverse_axis_hdl
+
+  END SUBROUTINE xios(get_inverse_axis_attr_hdl_)
+
+  SUBROUTINE xios(is_defined_inverse_axis_attr)  &
+    ( inverse_axis_id )
+
+    IMPLICIT NONE
+      TYPE(txios(inverse_axis))  :: inverse_axis_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::inverse_axis_id
+
+      CALL xios(get_inverse_axis_handle)(inverse_axis_id,inverse_axis_hdl)
+      CALL xios(is_defined_inverse_axis_attr_hdl_)   &
+      ( inverse_axis_hdl )
+
+  END SUBROUTINE xios(is_defined_inverse_axis_attr)
+
+  SUBROUTINE xios(is_defined_inverse_axis_attr_hdl)  &
+    ( inverse_axis_hdl )
+
+    IMPLICIT NONE
+      TYPE(txios(inverse_axis)) , INTENT(IN) :: inverse_axis_hdl
+
+      CALL xios(is_defined_inverse_axis_attr_hdl_)  &
+      ( inverse_axis_hdl )
+
+  END SUBROUTINE xios(is_defined_inverse_axis_attr_hdl)
+
+  SUBROUTINE xios(is_defined_inverse_axis_attr_hdl_)   &
+    ( inverse_axis_hdl )
+
+    IMPLICIT NONE
+      TYPE(txios(inverse_axis)) , INTENT(IN) :: inverse_axis_hdl
+
+  END SUBROUTINE xios(is_defined_inverse_axis_attr_hdl_)
+
+END MODULE iinverse_axis_attr
Index: XIOS/trunk/src/interface/fortran_attr/interpolate_axis_interface_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/interpolate_axis_interface_attr.F90	(revision 786)
+++ XIOS/trunk/src/interface/fortran_attr/interpolate_axis_interface_attr.F90	(revision 786)
@@ -0,0 +1,53 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "../fortran/xios_fortran_prefix.hpp"
+
+MODULE interpolate_axis_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+
+  INTERFACE
+    ! Do not call directly / interface FORTRAN 2003 <-> C99
+
+    SUBROUTINE cxios_set_interpolate_axis_order(interpolate_axis_hdl, order) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: order
+    END SUBROUTINE cxios_set_interpolate_axis_order
+
+    SUBROUTINE cxios_get_interpolate_axis_order(interpolate_axis_hdl, order) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+      INTEGER (KIND=C_INT)             :: order
+    END SUBROUTINE cxios_get_interpolate_axis_order
+
+    FUNCTION cxios_is_defined_interpolate_axis_order(interpolate_axis_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_axis_order
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+    END FUNCTION cxios_is_defined_interpolate_axis_order
+
+
+    SUBROUTINE cxios_set_interpolate_axis_type(interpolate_axis_hdl, type, type_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: type
+      INTEGER  (kind = C_INT)     , VALUE        :: type_size
+    END SUBROUTINE cxios_set_interpolate_axis_type
+
+    SUBROUTINE cxios_get_interpolate_axis_type(interpolate_axis_hdl, type, type_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: type
+      INTEGER  (kind = C_INT)     , VALUE        :: type_size
+    END SUBROUTINE cxios_get_interpolate_axis_type
+
+    FUNCTION cxios_is_defined_interpolate_axis_type(interpolate_axis_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_axis_type
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+    END FUNCTION cxios_is_defined_interpolate_axis_type
+
+  END INTERFACE
+
+END MODULE interpolate_axis_interface_attr
Index: XIOS/trunk/src/interface/fortran_attr/interpolate_domain_interface_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/interpolate_domain_interface_attr.F90	(revision 786)
+++ XIOS/trunk/src/interface/fortran_attr/interpolate_domain_interface_attr.F90	(revision 786)
@@ -0,0 +1,53 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "../fortran/xios_fortran_prefix.hpp"
+
+MODULE interpolate_domain_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+
+  INTERFACE
+    ! Do not call directly / interface FORTRAN 2003 <-> C99
+
+    SUBROUTINE cxios_set_interpolate_domain_file(interpolate_domain_hdl, file, file_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: file
+      INTEGER  (kind = C_INT)     , VALUE        :: file_size
+    END SUBROUTINE cxios_set_interpolate_domain_file
+
+    SUBROUTINE cxios_get_interpolate_domain_file(interpolate_domain_hdl, file, file_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: file
+      INTEGER  (kind = C_INT)     , VALUE        :: file_size
+    END SUBROUTINE cxios_get_interpolate_domain_file
+
+    FUNCTION cxios_is_defined_interpolate_domain_file(interpolate_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_domain_file
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+    END FUNCTION cxios_is_defined_interpolate_domain_file
+
+
+    SUBROUTINE cxios_set_interpolate_domain_order(interpolate_domain_hdl, order) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: order
+    END SUBROUTINE cxios_set_interpolate_domain_order
+
+    SUBROUTINE cxios_get_interpolate_domain_order(interpolate_domain_hdl, order) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+      INTEGER (KIND=C_INT)             :: order
+    END SUBROUTINE cxios_get_interpolate_domain_order
+
+    FUNCTION cxios_is_defined_interpolate_domain_order(interpolate_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_domain_order
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl
+    END FUNCTION cxios_is_defined_interpolate_domain_order
+
+  END INTERFACE
+
+END MODULE interpolate_domain_interface_attr
Index: XIOS/trunk/src/interface/fortran_attr/inverse_axis_interface_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/inverse_axis_interface_attr.F90	(revision 786)
+++ XIOS/trunk/src/interface/fortran_attr/inverse_axis_interface_attr.F90	(revision 786)
@@ -0,0 +1,13 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "../fortran/xios_fortran_prefix.hpp"
+
+MODULE inverse_axis_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+
+  INTERFACE
+    ! Do not call directly / interface FORTRAN 2003 <-> C99
+  END INTERFACE
+
+END MODULE inverse_axis_interface_attr
