Index: XIOS/trunk/src/interface/c/icdata.cpp
===================================================================
--- XIOS/trunk/src/interface/c/icdata.cpp	(revision 2099)
+++ XIOS/trunk/src/interface/c/icdata.cpp	(revision 2131)
@@ -438,5 +438,5 @@
 
   
-   void cxios_write_data_k81_hdl(CField* field, double* data_k8, int data_Xsize)
+   void cxios_write_data_k81_hdl(CField* field, double* data_k8, int data_Xsize, int tileid)
    TRY
    {
@@ -449,5 +449,5 @@
 
       CArray<double, 1> data(data_k8, shape(data_Xsize), neverDeleteData);
-      field->setData(data);
+      field->setData(data, tileid);
 
       CTimer::get("XIOS send field").suspend();
@@ -456,10 +456,10 @@
    CATCH_DUMP_STACK
    
-   void cxios_write_data_k81(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize)
-   TRY
-   {
-      std::string fieldid_str;
-      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
-      cxios_write_data_k81_hdl(CField::get(fieldid_str), data_k8, data_Xsize) ;
+   void cxios_write_data_k81(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int tileid)
+   TRY
+   {
+      std::string fieldid_str;
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+      cxios_write_data_k81_hdl(CField::get(fieldid_str), data_k8, data_Xsize, tileid) ;
     
    }
@@ -468,5 +468,5 @@
 
 
-   void cxios_write_data_k82_hdl(CField* field, double* data_k8, int data_Xsize, int data_Ysize)
+   void cxios_write_data_k82_hdl(CField* field, double* data_k8, int data_Xsize, int data_Ysize, int tileid)
    TRY
    {
@@ -479,26 +479,26 @@
 
       CArray<double, 2>data(data_k8, shape(data_Xsize, data_Ysize), neverDeleteData);
-      field->setData(data);
-
-      CTimer::get("XIOS send field").suspend();
-      CTimer::get("XIOS").suspend();
-   }
-   CATCH_DUMP_STACK
-
-   void cxios_write_data_k82(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize)
-   TRY
-   {
-      std::string fieldid_str;
-      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
-      cxios_write_data_k82_hdl(CField::get(fieldid_str), data_k8, data_Xsize, data_Ysize) ;
-   }
-   CATCH_DUMP_STACK
-
-
-
-
-
-
-   void cxios_write_data_k83_hdl(CField* field, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize)
+      field->setData(data, tileid);
+
+      CTimer::get("XIOS send field").suspend();
+      CTimer::get("XIOS").suspend();
+   }
+   CATCH_DUMP_STACK
+
+   void cxios_write_data_k82(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize, int tileid)
+   TRY
+   {
+      std::string fieldid_str;
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+      cxios_write_data_k82_hdl(CField::get(fieldid_str), data_k8, data_Xsize, data_Ysize, tileid) ;
+   }
+   CATCH_DUMP_STACK
+
+
+
+
+
+
+   void cxios_write_data_k83_hdl(CField* field, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize, int tileid)
    TRY
    {
@@ -511,5 +511,5 @@
 
       CArray<double, 3>data(data_k8, shape(data_Xsize, data_Ysize, data_Zsize), neverDeleteData);
-      field->setData(data);
+      field->setData(data, tileid);
 
       CTimer::get("XIOS send field").suspend();
@@ -518,21 +518,21 @@
    CATCH_DUMP_STACK
    
-   void cxios_write_data_k83(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize)
-   TRY
-   {
-      std::string fieldid_str;
-      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
-      cxios_write_data_k83_hdl(CField::get(fieldid_str), data_k8, data_Xsize, data_Ysize, data_Zsize) ;
-
-
-   }
-   CATCH_DUMP_STACK
-
-
-
-
-
-
-   void cxios_write_data_k84_hdl(CField* field, double* data_k8, int data_0size, int data_1size, int data_2size, int data_3size)
+   void cxios_write_data_k83(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize, int tileid)
+   TRY
+   {
+      std::string fieldid_str;
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+      cxios_write_data_k83_hdl(CField::get(fieldid_str), data_k8, data_Xsize, data_Ysize, data_Zsize, tileid) ;
+
+
+   }
+   CATCH_DUMP_STACK
+
+
+
+
+
+
+   void cxios_write_data_k84_hdl(CField* field, double* data_k8, int data_0size, int data_1size, int data_2size, int data_3size, int tileid)
    TRY
    {
@@ -545,20 +545,22 @@
 
       CArray<double, 4>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData);
-      field->setData(data);
-
-      CTimer::get("XIOS send field").suspend();
-      CTimer::get("XIOS").suspend();
-   }
-   CATCH_DUMP_STACK
-
-   void cxios_write_data_k84(const char* fieldid, int fieldid_size, double* data_k8, int data_0size, int data_1size, int data_2size, int data_3size)
-   TRY
-   {
-      std::string fieldid_str;
-      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
-
-      CTimer::get("XIOS").resume();
-      CTimer::get("XIOS send field").resume();
-      cxios_write_data_k84_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size) ;
+      field->setData(data, tileid);
+
+      CTimer::get("XIOS send field").suspend();
+      CTimer::get("XIOS").suspend();
+   }
+   CATCH_DUMP_STACK
+
+   void cxios_write_data_k84(const char* fieldid, int fieldid_size, double* data_k8,
+                             int data_0size, int data_1size, int data_2size,
+                             int data_3size, int tileid)
+   TRY
+   {
+      std::string fieldid_str;
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+
+      CTimer::get("XIOS").resume();
+      CTimer::get("XIOS send field").resume();
+      cxios_write_data_k84_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, tileid) ;
    }
    CATCH_DUMP_STACK
@@ -570,5 +572,5 @@
    void cxios_write_data_k85_hdl(CField* field, double* data_k8,
                              int data_0size, int data_1size, int data_2size,
-                             int data_3size, int data_4size)
+                             int data_3size, int data_4size, int tileid)
    TRY
    {
@@ -581,5 +583,5 @@
 
       CArray<double, 5>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData);
-      field->setData(data);
+      field->setData(data, tileid);
 
       CTimer::get("XIOS send field").suspend();
@@ -590,10 +592,10 @@
    void cxios_write_data_k85(const char* fieldid, int fieldid_size, double* data_k8,
                              int data_0size, int data_1size, int data_2size,
-                             int data_3size, int data_4size)
-   TRY
-   {
-      std::string fieldid_str;
-      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
-      cxios_write_data_k85_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size) ;
+                             int data_3size, int data_4size, int tileid)
+   TRY
+   {
+      std::string fieldid_str;
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+      cxios_write_data_k85_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size, tileid) ;
 
    }
@@ -604,5 +606,5 @@
    void cxios_write_data_k86_hdl(CField* field, double* data_k8,
                              int data_0size, int data_1size, int data_2size,
-                             int data_3size, int data_4size, int data_5size)
+                             int data_3size, int data_4size, int data_5size, int tileid)
    TRY
    {
@@ -616,5 +618,5 @@
 
       CArray<double, 6>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData);
-      field->setData(data);
+      field->setData(data, tileid);
 
       CTimer::get("XIOS send field").suspend();
@@ -625,10 +627,10 @@
    void cxios_write_data_k86(const char* fieldid, int fieldid_size, double* data_k8,
                              int data_0size, int data_1size, int data_2size,
-                             int data_3size, int data_4size, int data_5size)
-   TRY
-   {
-      std::string fieldid_str;
-      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
-      cxios_write_data_k86_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size) ;
+                             int data_3size, int data_4size, int data_5size, int tileid)
+   TRY
+   {
+      std::string fieldid_str;
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+      cxios_write_data_k86_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, tileid) ;
 
   }
@@ -641,5 +643,5 @@
                              int data_0size, int data_1size, int data_2size,
                              int data_3size, int data_4size, int data_5size,
-                             int data_6size)
+                             int data_6size, int tileid)
    TRY
    {
@@ -652,5 +654,5 @@
 
       CArray<double, 7>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData);
-      field->setData(data);
+      field->setData(data, tileid);
 
       CTimer::get("XIOS send field").suspend();
@@ -662,10 +664,11 @@
                              int data_0size, int data_1size, int data_2size,
                              int data_3size, int data_4size, int data_5size,
-                             int data_6size)
-   TRY
-   {
-      std::string fieldid_str;
-      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
-      cxios_write_data_k87_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size) ;
+                             int data_6size, int tileid)
+   TRY
+   {
+      std::string fieldid_str;
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+      cxios_write_data_k87_hdl(CField::get(fieldid_str), data_k8, data_0size, data_1size, data_2size, data_3size, data_4size,
+                               data_5size, data_6size, tileid) ;
    }
    CATCH_DUMP_STACK
@@ -704,5 +707,5 @@
    
    
-   void cxios_write_data_k41_hdl(CField* field, float* data_k4, int data_Xsize)
+   void cxios_write_data_k41_hdl(CField* field, float* data_k4, int data_Xsize, int tileid)
    TRY
    {
@@ -717,22 +720,22 @@
       CArray<double, 1> data(data_Xsize);
       data = data_tmp;
-      field->setData(data);
-
-      CTimer::get("XIOS send field").suspend();
-      CTimer::get("XIOS").suspend();
-   }
-   CATCH_DUMP_STACK
-
-   void cxios_write_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize)
-   TRY
-   {
-      std::string fieldid_str;
-      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
-      cxios_write_data_k41_hdl(CField::get(fieldid_str), data_k4, data_Xsize);
-   }
-   CATCH_DUMP_STACK
-
-
-   void cxios_write_data_k42_hdl(CField* field, float* data_k4, int data_Xsize, int data_Ysize)
+      field->setData(data, tileid);
+
+      CTimer::get("XIOS send field").suspend();
+      CTimer::get("XIOS").suspend();
+   }
+   CATCH_DUMP_STACK
+
+   void cxios_write_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int tileid)
+   TRY
+   {
+      std::string fieldid_str;
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+      cxios_write_data_k41_hdl(CField::get(fieldid_str), data_k4, data_Xsize, tileid);
+   }
+   CATCH_DUMP_STACK
+
+
+   void cxios_write_data_k42_hdl(CField* field, float* data_k4, int data_Xsize, int data_Ysize, int tileid)
    TRY
    {
@@ -747,24 +750,24 @@
       CArray<double, 2> data(data_Xsize, data_Ysize);
       data = data_tmp;
-      field->setData(data);
-
-      CTimer::get("XIOS send field").suspend();
-      CTimer::get("XIOS").suspend();
-   }
-   CATCH_DUMP_STACK
-
-   void cxios_write_data_k42(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize)
-   TRY
-   {
-      std::string fieldid_str;
-      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
-      cxios_write_data_k42_hdl(CField::get(fieldid_str), data_k4, data_Xsize,data_Ysize);
-   }
-   CATCH_DUMP_STACK
-
-
-
-
-   void cxios_write_data_k43_hdl(CField* field, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize)
+      field->setData(data, tileid);
+
+      CTimer::get("XIOS send field").suspend();
+      CTimer::get("XIOS").suspend();
+   }
+   CATCH_DUMP_STACK
+
+   void cxios_write_data_k42(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int tileid)
+   TRY
+   {
+      std::string fieldid_str;
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+      cxios_write_data_k42_hdl(CField::get(fieldid_str), data_k4, data_Xsize,data_Ysize, tileid);
+   }
+   CATCH_DUMP_STACK
+
+
+
+
+   void cxios_write_data_k43_hdl(CField* field, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize, int tileid)
    TRY
    {
@@ -779,5 +782,5 @@
       CArray<double, 3> data(data_Xsize, data_Ysize, data_Zsize);
       data = data_tmp;
-      field->setData(data);
+      field->setData(data, tileid);
 
       CTimer::get("XIOS send field").suspend();
@@ -786,10 +789,10 @@
    CATCH_DUMP_STACK
    
-   void cxios_write_data_k43(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize)
-   TRY
-   {
-      std::string fieldid_str;
-      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
-      cxios_write_data_k43_hdl(CField::get(fieldid_str), data_k4, data_Xsize,data_Ysize, data_Zsize);
+   void cxios_write_data_k43(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize, int tileid)
+   TRY
+   {
+      std::string fieldid_str;
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+      cxios_write_data_k43_hdl(CField::get(fieldid_str), data_k4, data_Xsize,data_Ysize, data_Zsize, tileid);
     }
    CATCH_DUMP_STACK
@@ -799,5 +802,5 @@
    void cxios_write_data_k44_hdl(CField* field, float* data_k4,
                              int data_0size, int data_1size, int data_2size,
-                             int data_3size)
+                             int data_3size, int tileid)
    TRY
    {
@@ -812,5 +815,5 @@
       CArray<double, 4> data(data_0size, data_1size, data_2size, data_3size);
       data = data_tmp;
-      field->setData(data);
+      field->setData(data, tileid);
 
       CTimer::get("XIOS send field").suspend();
@@ -821,10 +824,10 @@
    void cxios_write_data_k44(const char* fieldid, int fieldid_size, float* data_k4,
                              int data_0size, int data_1size, int data_2size,
-                             int data_3size)
-   TRY
-   {
-      std::string fieldid_str;
-      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
-      cxios_write_data_k44_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size) ;
+                             int data_3size, int tileid)
+   TRY
+   {
+      std::string fieldid_str;
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+      cxios_write_data_k44_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, tileid) ;
     }
    CATCH_DUMP_STACK
@@ -835,5 +838,5 @@
    void cxios_write_data_k45_hdl(CField* field, float* data_k4,
                              int data_0size, int data_1size, int data_2size,
-                             int data_3size, int data_4size)
+                             int data_3size, int data_4size, int tileid)
    TRY
    {
@@ -848,5 +851,5 @@
       CArray<double, 5> data(data_0size, data_1size, data_2size, data_3size, data_4size);
       data = data_tmp;
-      field->setData(data);
+      field->setData(data, tileid);
 
       CTimer::get("XIOS send field").suspend();
@@ -857,10 +860,10 @@
    void cxios_write_data_k45(const char* fieldid, int fieldid_size, float* data_k4,
                              int data_0size, int data_1size, int data_2size,
-                             int data_3size, int data_4size)
-   TRY
-   {
-      std::string fieldid_str;
-      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
-      cxios_write_data_k45_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size) ;
+                             int data_3size, int data_4size, int tileid)
+   TRY
+   {
+      std::string fieldid_str;
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+      cxios_write_data_k45_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size, tileid) ;
     }
    CATCH_DUMP_STACK
@@ -870,5 +873,5 @@
    void cxios_write_data_k46_hdl(CField* field, float* data_k4,
                              int data_0size, int data_1size, int data_2size,
-                             int data_3size, int data_4size, int data_5size)
+                             int data_3size, int data_4size, int data_5size, int tileid)
    TRY
    {
@@ -883,5 +886,5 @@
       CArray<double, 6> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size);
       data = data_tmp;
-      field->setData(data);
+      field->setData(data, tileid);
 
       CTimer::get("XIOS send field").suspend();
@@ -892,10 +895,10 @@
    void cxios_write_data_k46(const char* fieldid, int fieldid_size, float* data_k4,
                              int data_0size, int data_1size, int data_2size,
-                             int data_3size, int data_4size, int data_5size)
-   TRY
-   {
-      std::string fieldid_str;
-      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
-      cxios_write_data_k46_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size) ;
+                             int data_3size, int data_4size, int data_5size, int tileid)
+   TRY
+   {
+      std::string fieldid_str;
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+      cxios_write_data_k46_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, tileid) ;
     }
    CATCH_DUMP_STACK
@@ -905,5 +908,5 @@
                              int data_0size, int data_1size, int data_2size,
                              int data_3size, int data_4size, int data_5size,
-                             int data_6size)
+                             int data_6size, int tileid)
    TRY
    {
@@ -918,5 +921,5 @@
       CArray<double, 7> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size);
       data = data_tmp;
-      field->setData(data);
+      field->setData(data, tileid);
 
       CTimer::get("XIOS send field").suspend();
@@ -928,10 +931,11 @@
                              int data_0size, int data_1size, int data_2size,
                              int data_3size, int data_4size, int data_5size,
-                             int data_6size)
-   TRY
-   {
-      std::string fieldid_str;
-      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
-      cxios_write_data_k47_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size) ;
+                             int data_6size, int tileid)
+   TRY
+   {
+      std::string fieldid_str;
+      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return;
+      cxios_write_data_k47_hdl(CField::get(fieldid_str), data_k4, data_0size, data_1size, data_2size, data_3size, data_4size,
+                                data_5size, data_6size, tileid) ;
     }
    CATCH_DUMP_STACK
Index: XIOS/trunk/src/interface/c_attr/icdomain_attr.cpp
===================================================================
--- XIOS/trunk/src/interface/c_attr/icdomain_attr.cpp	(revision 2099)
+++ XIOS/trunk/src/interface/c_attr/icdomain_attr.cpp	(revision 2131)
@@ -905,4 +905,27 @@
 
 
+  void cxios_set_domain_ntiles(domain_Ptr domain_hdl, int ntiles)
+  {
+    CTimer::get("XIOS").resume();
+    domain_hdl->ntiles.setValue(ntiles);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domain_ntiles(domain_Ptr domain_hdl, int* ntiles)
+  {
+    CTimer::get("XIOS").resume();
+    *ntiles = domain_hdl->ntiles.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domain_ntiles(domain_Ptr domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domain_hdl->ntiles.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_domain_nvertex(domain_Ptr domain_hdl, int nvertex)
   {
@@ -1000,4 +1023,204 @@
 
 
+  void cxios_set_domain_tile_data_ibegin(domain_Ptr domain_hdl, int* tile_data_ibegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_ibegin, shape(extent[0]), neverDeleteData);
+    domain_hdl->tile_data_ibegin.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domain_tile_data_ibegin(domain_Ptr domain_hdl, int* tile_data_ibegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_ibegin, shape(extent[0]), neverDeleteData);
+    tmp=domain_hdl->tile_data_ibegin.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domain_tile_data_ibegin(domain_Ptr domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domain_hdl->tile_data_ibegin.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_domain_tile_data_jbegin(domain_Ptr domain_hdl, int* tile_data_jbegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_jbegin, shape(extent[0]), neverDeleteData);
+    domain_hdl->tile_data_jbegin.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domain_tile_data_jbegin(domain_Ptr domain_hdl, int* tile_data_jbegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_jbegin, shape(extent[0]), neverDeleteData);
+    tmp=domain_hdl->tile_data_jbegin.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domain_tile_data_jbegin(domain_Ptr domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domain_hdl->tile_data_jbegin.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_domain_tile_data_ni(domain_Ptr domain_hdl, int* tile_data_ni, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_ni, shape(extent[0]), neverDeleteData);
+    domain_hdl->tile_data_ni.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domain_tile_data_ni(domain_Ptr domain_hdl, int* tile_data_ni, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_ni, shape(extent[0]), neverDeleteData);
+    tmp=domain_hdl->tile_data_ni.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domain_tile_data_ni(domain_Ptr domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domain_hdl->tile_data_ni.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_domain_tile_data_nj(domain_Ptr domain_hdl, int* tile_data_nj, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_nj, shape(extent[0]), neverDeleteData);
+    domain_hdl->tile_data_nj.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domain_tile_data_nj(domain_Ptr domain_hdl, int* tile_data_nj, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_nj, shape(extent[0]), neverDeleteData);
+    tmp=domain_hdl->tile_data_nj.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domain_tile_data_nj(domain_Ptr domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domain_hdl->tile_data_nj.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_domain_tile_ibegin(domain_Ptr domain_hdl, int* tile_ibegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_ibegin, shape(extent[0]), neverDeleteData);
+    domain_hdl->tile_ibegin.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domain_tile_ibegin(domain_Ptr domain_hdl, int* tile_ibegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_ibegin, shape(extent[0]), neverDeleteData);
+    tmp=domain_hdl->tile_ibegin.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domain_tile_ibegin(domain_Ptr domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domain_hdl->tile_ibegin.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_domain_tile_jbegin(domain_Ptr domain_hdl, int* tile_jbegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_jbegin, shape(extent[0]), neverDeleteData);
+    domain_hdl->tile_jbegin.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domain_tile_jbegin(domain_Ptr domain_hdl, int* tile_jbegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_jbegin, shape(extent[0]), neverDeleteData);
+    tmp=domain_hdl->tile_jbegin.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domain_tile_jbegin(domain_Ptr domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domain_hdl->tile_jbegin.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_domain_tile_ni(domain_Ptr domain_hdl, int* tile_ni, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_ni, shape(extent[0]), neverDeleteData);
+    domain_hdl->tile_ni.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domain_tile_ni(domain_Ptr domain_hdl, int* tile_ni, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_ni, shape(extent[0]), neverDeleteData);
+    tmp=domain_hdl->tile_ni.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domain_tile_ni(domain_Ptr domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domain_hdl->tile_ni.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_domain_tile_nj(domain_Ptr domain_hdl, int* tile_nj, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_nj, shape(extent[0]), neverDeleteData);
+    domain_hdl->tile_nj.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domain_tile_nj(domain_Ptr domain_hdl, int* tile_nj, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_nj, shape(extent[0]), neverDeleteData);
+    tmp=domain_hdl->tile_nj.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domain_tile_nj(domain_Ptr domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domain_hdl->tile_nj.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_domain_type(domain_Ptr domain_hdl, const char * type, int type_size)
   {
Index: XIOS/trunk/src/interface/c_attr/icdomaingroup_attr.cpp
===================================================================
--- XIOS/trunk/src/interface/c_attr/icdomaingroup_attr.cpp	(revision 2099)
+++ XIOS/trunk/src/interface/c_attr/icdomaingroup_attr.cpp	(revision 2131)
@@ -931,4 +931,27 @@
 
 
+  void cxios_set_domaingroup_ntiles(domaingroup_Ptr domaingroup_hdl, int ntiles)
+  {
+    CTimer::get("XIOS").resume();
+    domaingroup_hdl->ntiles.setValue(ntiles);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domaingroup_ntiles(domaingroup_Ptr domaingroup_hdl, int* ntiles)
+  {
+    CTimer::get("XIOS").resume();
+    *ntiles = domaingroup_hdl->ntiles.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domaingroup_ntiles(domaingroup_Ptr domaingroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domaingroup_hdl->ntiles.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_domaingroup_nvertex(domaingroup_Ptr domaingroup_hdl, int nvertex)
   {
@@ -1026,4 +1049,204 @@
 
 
+  void cxios_set_domaingroup_tile_data_ibegin(domaingroup_Ptr domaingroup_hdl, int* tile_data_ibegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_ibegin, shape(extent[0]), neverDeleteData);
+    domaingroup_hdl->tile_data_ibegin.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domaingroup_tile_data_ibegin(domaingroup_Ptr domaingroup_hdl, int* tile_data_ibegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_ibegin, shape(extent[0]), neverDeleteData);
+    tmp=domaingroup_hdl->tile_data_ibegin.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domaingroup_tile_data_ibegin(domaingroup_Ptr domaingroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domaingroup_hdl->tile_data_ibegin.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_domaingroup_tile_data_jbegin(domaingroup_Ptr domaingroup_hdl, int* tile_data_jbegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_jbegin, shape(extent[0]), neverDeleteData);
+    domaingroup_hdl->tile_data_jbegin.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domaingroup_tile_data_jbegin(domaingroup_Ptr domaingroup_hdl, int* tile_data_jbegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_jbegin, shape(extent[0]), neverDeleteData);
+    tmp=domaingroup_hdl->tile_data_jbegin.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domaingroup_tile_data_jbegin(domaingroup_Ptr domaingroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domaingroup_hdl->tile_data_jbegin.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_domaingroup_tile_data_ni(domaingroup_Ptr domaingroup_hdl, int* tile_data_ni, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_ni, shape(extent[0]), neverDeleteData);
+    domaingroup_hdl->tile_data_ni.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domaingroup_tile_data_ni(domaingroup_Ptr domaingroup_hdl, int* tile_data_ni, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_ni, shape(extent[0]), neverDeleteData);
+    tmp=domaingroup_hdl->tile_data_ni.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domaingroup_tile_data_ni(domaingroup_Ptr domaingroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domaingroup_hdl->tile_data_ni.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_domaingroup_tile_data_nj(domaingroup_Ptr domaingroup_hdl, int* tile_data_nj, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_nj, shape(extent[0]), neverDeleteData);
+    domaingroup_hdl->tile_data_nj.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domaingroup_tile_data_nj(domaingroup_Ptr domaingroup_hdl, int* tile_data_nj, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_data_nj, shape(extent[0]), neverDeleteData);
+    tmp=domaingroup_hdl->tile_data_nj.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domaingroup_tile_data_nj(domaingroup_Ptr domaingroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domaingroup_hdl->tile_data_nj.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_domaingroup_tile_ibegin(domaingroup_Ptr domaingroup_hdl, int* tile_ibegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_ibegin, shape(extent[0]), neverDeleteData);
+    domaingroup_hdl->tile_ibegin.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domaingroup_tile_ibegin(domaingroup_Ptr domaingroup_hdl, int* tile_ibegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_ibegin, shape(extent[0]), neverDeleteData);
+    tmp=domaingroup_hdl->tile_ibegin.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domaingroup_tile_ibegin(domaingroup_Ptr domaingroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domaingroup_hdl->tile_ibegin.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_domaingroup_tile_jbegin(domaingroup_Ptr domaingroup_hdl, int* tile_jbegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_jbegin, shape(extent[0]), neverDeleteData);
+    domaingroup_hdl->tile_jbegin.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domaingroup_tile_jbegin(domaingroup_Ptr domaingroup_hdl, int* tile_jbegin, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_jbegin, shape(extent[0]), neverDeleteData);
+    tmp=domaingroup_hdl->tile_jbegin.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domaingroup_tile_jbegin(domaingroup_Ptr domaingroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domaingroup_hdl->tile_jbegin.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_domaingroup_tile_ni(domaingroup_Ptr domaingroup_hdl, int* tile_ni, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_ni, shape(extent[0]), neverDeleteData);
+    domaingroup_hdl->tile_ni.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domaingroup_tile_ni(domaingroup_Ptr domaingroup_hdl, int* tile_ni, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_ni, shape(extent[0]), neverDeleteData);
+    tmp=domaingroup_hdl->tile_ni.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domaingroup_tile_ni(domaingroup_Ptr domaingroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domaingroup_hdl->tile_ni.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_domaingroup_tile_nj(domaingroup_Ptr domaingroup_hdl, int* tile_nj, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_nj, shape(extent[0]), neverDeleteData);
+    domaingroup_hdl->tile_nj.reference(tmp.copy());
+     CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_domaingroup_tile_nj(domaingroup_Ptr domaingroup_hdl, int* tile_nj, int* extent)
+  {
+    CTimer::get("XIOS").resume();
+    CArray<int,1> tmp(tile_nj, shape(extent[0]), neverDeleteData);
+    tmp=domaingroup_hdl->tile_nj.getInheritedValue();
+     CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_domaingroup_tile_nj(domaingroup_Ptr domaingroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = domaingroup_hdl->tile_nj.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_domaingroup_type(domaingroup_Ptr domaingroup_hdl, const char * type, int type_size)
   {
Index: XIOS/trunk/src/interface/fortran/idata.F90
===================================================================
--- XIOS/trunk/src/interface/fortran/idata.F90	(revision 2099)
+++ XIOS/trunk/src/interface/fortran/idata.F90	(revision 2131)
@@ -68,12 +68,13 @@
       END SUBROUTINE cxios_write_data_k80
 
-      SUBROUTINE cxios_write_data_k81_hdl(field_hdl, data_k8, data_Xsize) BIND(C)
+      SUBROUTINE cxios_write_data_k81_hdl(field_hdl, data_k8, data_Xsize, tileid) BIND(C)
          USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
          REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k81_hdl
 
-      SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C)
+      SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize, tileid) BIND(C)
          USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
@@ -81,14 +82,16 @@
          INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k81
 
-      SUBROUTINE cxios_write_data_k82_hdl(field_hdl, data_k8, data_Xsize, data_Ysize) BIND(C)
+      SUBROUTINE cxios_write_data_k82_hdl(field_hdl, data_k8, data_Xsize, data_Ysize, tileid) BIND(C)
          USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
          REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k82_hdl
 
-      SUBROUTINE cxios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize) BIND(C)
+      SUBROUTINE cxios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, tileid) BIND(C)
          USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
@@ -96,14 +99,17 @@
          INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k82
 
-      SUBROUTINE cxios_write_data_k83_hdl(field_hdl, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C)
+      SUBROUTINE cxios_write_data_k83_hdl(field_hdl, data_k8, data_Xsize, data_Ysize, data_Zsize, tileid) BIND(C)
          USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
          REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k83_hdl
 
-      SUBROUTINE cxios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C)
+      SUBROUTINE cxios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize, &
+                                      tileid) BIND(C)
          USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
@@ -111,9 +117,10 @@
          INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k83
 
       SUBROUTINE cxios_write_data_k84_hdl(field_hdl, data_k8, &
                                       data_0size, data_1size, data_2size, &
-                                      data_3size) BIND(C)
+                                      data_3size, tileid) BIND(C)
          USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
@@ -121,9 +128,10 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k84_hdl
 
       SUBROUTINE cxios_write_data_k84(fieldid, fieldid_size, data_k8, &
                                       data_0size, data_1size, data_2size, &
-                                      data_3size) BIND(C)
+                                      data_3size, tileid) BIND(C)
          USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
@@ -132,9 +140,10 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k84
 
       SUBROUTINE cxios_write_data_k85_hdl(field_hdl, data_k8, &
                                       data_0size, data_1size, data_2size, &
-                                      data_3size, data_4size) BIND(C)
+                                      data_3size, data_4size, tileid) BIND(C)
          USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
@@ -142,9 +151,10 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k85_hdl
 
       SUBROUTINE cxios_write_data_k85(fieldid, fieldid_size, data_k8, &
                                       data_0size, data_1size, data_2size, &
-                                      data_3size, data_4size) BIND(C)
+                                      data_3size, data_4size, tileid) BIND(C)
          USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
@@ -153,9 +163,10 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k85
 
       SUBROUTINE cxios_write_data_k86_hdl(field_hdl, data_k8, &
                                       data_0size, data_1size, data_2size, &
-                                      data_3size, data_4size, data_5size) BIND(C)
+                                      data_3size, data_4size, data_5size, tileid) BIND(C)
          USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
@@ -163,9 +174,10 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k86_hdl
 
       SUBROUTINE cxios_write_data_k86(fieldid, fieldid_size, data_k8, &
                                       data_0size, data_1size, data_2size, &
-                                      data_3size, data_4size, data_5size) BIND(C)
+                                      data_3size, data_4size, data_5size, tileid) BIND(C)
          USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
@@ -174,4 +186,5 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k86
 
@@ -179,5 +192,5 @@
                                       data_0size, data_1size, data_2size, &
                                       data_3size, data_4size, data_5size, &
-                                      data_6size) BIND(C)
+                                      data_6size, tileid) BIND(C)
          USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
@@ -186,4 +199,5 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
          INTEGER  (kind = C_INT)   , VALUE        :: data_6size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k87_hdl
 
@@ -191,5 +205,5 @@
                                       data_0size, data_1size, data_2size, &
                                       data_3size, data_4size, data_5size, &
-                                      data_6size) BIND(C)
+                                      data_6size, tileid) BIND(C)
          USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
@@ -199,4 +213,5 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
          INTEGER  (kind = C_INT)   , VALUE        :: data_6size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k87
 
@@ -216,12 +231,13 @@
       END SUBROUTINE cxios_write_data_k40
 
-      SUBROUTINE cxios_write_data_k41_hdl(field_hdl, data_k4, data_Xsize) BIND(C)
+      SUBROUTINE cxios_write_data_k41_hdl(field_hdl, data_k4, data_Xsize, tileid) BIND(C)
          USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
          REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k41_hdl
 
-      SUBROUTINE cxios_write_data_k41(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C)
+      SUBROUTINE cxios_write_data_k41(fieldid, fieldid_size, data_k4, data_Xsize, tileid) BIND(C)
          USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
@@ -229,14 +245,16 @@
          INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k41
 
-      SUBROUTINE cxios_write_data_k42_hdl(field_hdl, data_k4, data_Xsize, data_Ysize) BIND(C)
+      SUBROUTINE cxios_write_data_k42_hdl(field_hdl, data_k4, data_Xsize, data_Ysize, tileid) BIND(C)
          USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
          REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k42_hdl
  
-      SUBROUTINE cxios_write_data_k42(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize) BIND(C)
+      SUBROUTINE cxios_write_data_k42(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, tileid) BIND(C)
          USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
@@ -244,14 +262,16 @@
          INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k42
 
-      SUBROUTINE cxios_write_data_k43_hdl(field_hdl, data_k4, data_Xsize, data_Ysize, data_Zsize) BIND(C)
+      SUBROUTINE cxios_write_data_k43_hdl(field_hdl, data_k4, data_Xsize, data_Ysize, data_Zsize, tileid) BIND(C)
          USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
          REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k43_hdl
 
-      SUBROUTINE cxios_write_data_k43(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize) BIND(C)
+      SUBROUTINE cxios_write_data_k43(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize, tileid) BIND(C)
          USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
@@ -259,9 +279,10 @@
          INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k43
 
       SUBROUTINE cxios_write_data_k44_hdl(field_hdl, data_k4, &
                                       data_0size, data_1size, data_2size, &
-                                      data_3size) BIND(C)
+                                      data_3size, tileid) BIND(C)
          USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
@@ -269,9 +290,10 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k44_hdl
 
       SUBROUTINE cxios_write_data_k44(fieldid, fieldid_size, data_k4, &
                                       data_0size, data_1size, data_2size, &
-                                      data_3size) BIND(C)
+                                      data_3size, tileid) BIND(C)
          USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
@@ -280,9 +302,10 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k44
 
       SUBROUTINE cxios_write_data_k45_hdl(field_hdl, data_k4, &
                                       data_0size, data_1size, data_2size, &
-                                      data_3size, data_4size) BIND(C)
+                                      data_3size, data_4size, tileid) BIND(C)
          USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
@@ -290,9 +313,10 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k45_hdl
 
       SUBROUTINE cxios_write_data_k45(fieldid, fieldid_size, data_k4, &
                                       data_0size, data_1size, data_2size, &
-                                      data_3size, data_4size) BIND(C)
+                                      data_3size, data_4size, tileid) BIND(C)
          USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
@@ -301,9 +325,10 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k45
 
       SUBROUTINE cxios_write_data_k46_hdl(field_hdl, data_k4, &
                                       data_0size, data_1size, data_2size, &
-                                      data_3size, data_4size, data_5size) BIND(C)
+                                      data_3size, data_4size, data_5size, tileid) BIND(C)
          USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
@@ -311,9 +336,10 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k46_hdl
  
       SUBROUTINE cxios_write_data_k46(fieldid, fieldid_size, data_k4, &
                                       data_0size, data_1size, data_2size, &
-                                      data_3size, data_4size, data_5size) BIND(C)
+                                      data_3size, data_4size, data_5size, tileid) BIND(C)
          USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
@@ -322,4 +348,5 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k46
 
@@ -327,5 +354,5 @@
                                       data_0size, data_1size, data_2size, &
                                       data_3size, data_4size, data_5size, &
-                                      data_6size) BIND(C)
+                                      data_6size, tileid) BIND(C)
          USE ISO_C_BINDING
          INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
@@ -334,4 +361,5 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
          INTEGER  (kind = C_INT)   , VALUE        :: data_6size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k47_hdl
 
@@ -339,5 +367,5 @@
                                       data_0size, data_1size, data_2size, &
                                       data_3size, data_4size, data_5size, &
-                                      data_6size) BIND(C)
+                                      data_6size, tileid) BIND(C)
          USE ISO_C_BINDING
          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
@@ -347,4 +375,5 @@
          INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
          INTEGER  (kind = C_INT)   , VALUE        :: data_6size
+         INTEGER  (kind = C_INT)   , VALUE        :: tileid
       END SUBROUTINE cxios_write_data_k47
 
@@ -834,5 +863,6 @@
       TYPE(txios(field))              :: field_hdl
       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:)
-      CALL cxios_write_data_k81_hdl(field_hdl%daddr, data1d_k8, size(data1d_k8, 1))
+      INTEGER, PARAMETER                            :: tileid = -1
+      CALL cxios_write_data_k81_hdl(field_hdl%daddr, data1d_k8, size(data1d_k8, 1), tileid)
    END SUBROUTINE xios(send_field_r8_1d_hdl)
 
@@ -841,12 +871,22 @@
       CHARACTER(len = *)               , INTENT(IN) :: fieldid
       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:)
-      CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1))
+      INTEGER, PARAMETER                            :: tileid = -1
+      CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1), tileid)
    END SUBROUTINE xios(send_field_r8_1d)
 
+   SUBROUTINE xios(send_field_tiled_r8_1d)(fieldid, data1d_k8, tileid)
+   IMPLICIT NONE
+      CHARACTER(len = *)               , INTENT(IN) :: fieldid
+      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:)
+      INTEGER                          , INTENT(IN) :: tileid
+      CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1), tileid)
+   END SUBROUTINE xios(send_field_tiled_r8_1d)
+
    SUBROUTINE  xios(send_field_r8_2d_hdl)(field_hdl, data2d_k8)
    IMPLICIT NONE
       TYPE(txios(field))              :: field_hdl
       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:)
-      CALL cxios_write_data_k82_hdl(field_hdl%daddr, data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2))
+      INTEGER, PARAMETER                            :: tileid = -1
+      CALL cxios_write_data_k82_hdl(field_hdl%daddr, data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2), tileid)
    END SUBROUTINE  xios(send_field_r8_2d_hdl)
 
@@ -855,12 +895,25 @@
       CHARACTER(len = *)               , INTENT(IN) :: fieldid
       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:)
-      CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2))
+      INTEGER, PARAMETER                            :: tileid = -1
+      CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), &
+                                size(data2d_k8, 2), tileid)
    END SUBROUTINE  xios(send_field_r8_2d)
 
+   SUBROUTINE  xios(send_field_tiled_r8_2d)(fieldid, data2d_k8, tileid)
+   IMPLICIT NONE
+      CHARACTER(len = *)               , INTENT(IN) :: fieldid
+      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:)
+      INTEGER                          , INTENT(IN) :: tileid
+      CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), &
+                                size(data2d_k8, 2), tileid)
+   END SUBROUTINE  xios(send_field_tiled_r8_2d)
+
    SUBROUTINE  xios(send_field_r8_3d_hdl)(field_hdl, data3d_k8)
    IMPLICIT NONE
       TYPE(txios(field))              :: field_hdl
       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:)
-      CALL cxios_write_data_k83_hdl(field_hdl%daddr, data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3))
+      INTEGER, PARAMETER                            :: tileid = -1
+      CALL cxios_write_data_k83_hdl(field_hdl%daddr, data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3), &
+                                    tileid)
    END SUBROUTINE  xios(send_field_r8_3d_hdl)
 
@@ -869,14 +922,26 @@
       CHARACTER(len = *)               , INTENT(IN) :: fieldid
       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:)
-      CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3))
+      INTEGER, PARAMETER                            :: tileid = -1
+      CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3), &
+                                tileid)
    END SUBROUTINE  xios(send_field_r8_3d)
 
+   SUBROUTINE  xios(send_field_tiled_r8_3d)(fieldid, data3d_k8, tileid)
+   IMPLICIT NONE
+      CHARACTER(len = *)               , INTENT(IN) :: fieldid
+      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:)
+      INTEGER                          , INTENT(IN) :: tileid
+      CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), &
+                                      size(data3d_k8, 2), size(data3d_k8, 3), tileid)
+   END SUBROUTINE  xios(send_field_tiled_r8_3d)
+
    SUBROUTINE  xios(send_field_r8_4d_hdl)(field_hdl, data4d_k8)
    IMPLICIT NONE
       TYPE(txios(field))              :: field_hdl
       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k84_hdl(field_hdl%daddr, data4d_k8, &
                                 size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), &
-                                size(data4d_k8, 4))
+                                size(data4d_k8, 4), tileid)
    END SUBROUTINE  xios(send_field_r8_4d_hdl)
 
@@ -885,16 +950,28 @@
       CHARACTER(len = *)               , INTENT(IN) :: fieldid
       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k84(fieldid, len(fieldid), data4d_k8, &
                                 size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), &
-                                size(data4d_k8, 4))
+                                size(data4d_k8, 4), tileid)
    END SUBROUTINE  xios(send_field_r8_4d)
 
+   SUBROUTINE  xios(send_field_tiled_r8_4d)(fieldid, data4d_k8, tileid)
+   IMPLICIT NONE
+      CHARACTER(len = *)               , INTENT(IN) :: fieldid
+      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:)
+      INTEGER                          , INTENT(IN) :: tileid
+      CALL cxios_write_data_k84(fieldid, len(fieldid), data4d_k8, &
+                                size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), &
+                                size(data4d_k8, 4), tileid)
+   END SUBROUTINE  xios(send_field_tiled_r8_4d)
+
    SUBROUTINE  xios(send_field_r8_5d_hdl)(field_hdl, data5d_k8)
    IMPLICIT NONE
       TYPE(txios(field))              :: field_hdl
       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k85_hdl(field_hdl%daddr, data5d_k8, &
                                 size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), &
-                                size(data5d_k8, 4), size(data5d_k8, 5))
+                                size(data5d_k8, 4), size(data5d_k8, 5), tileid)
    END SUBROUTINE  xios(send_field_r8_5d_hdl)
 
@@ -903,16 +980,28 @@
       CHARACTER(len = *)               , INTENT(IN) :: fieldid
       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k85(fieldid, len(fieldid), data5d_k8, &
                                 size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), &
-                                size(data5d_k8, 4), size(data5d_k8, 5))
+                                size(data5d_k8, 4), size(data5d_k8, 5), tileid)
    END SUBROUTINE  xios(send_field_r8_5d)
 
+   SUBROUTINE  xios(send_field_tiled_r8_5d)(fieldid, data5d_k8, tileid)
+   IMPLICIT NONE
+      CHARACTER(len = *)               , INTENT(IN) :: fieldid
+      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:)
+      INTEGER                          , INTENT(IN) :: tileid
+      CALL cxios_write_data_k85(fieldid, len(fieldid), data5d_k8, &
+                                size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), &
+                                size(data5d_k8, 4), size(data5d_k8, 5), tileid)
+   END SUBROUTINE  xios(send_field_tiled_r8_5d)
+
    SUBROUTINE  xios(send_field_r8_6d_hdl)(field_hdl, data6d_k8)
    IMPLICIT NONE
       TYPE(txios(field))              :: field_hdl
       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k86_hdl(field_hdl%daddr, data6d_k8, &
                                 size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), &
-                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6))
+                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6), tileid)
    END SUBROUTINE  xios(send_field_r8_6d_hdl)
 
@@ -921,17 +1010,29 @@
       CHARACTER(len = *)               , INTENT(IN) :: fieldid
       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k86(fieldid, len(fieldid), data6d_k8, &
                                 size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), &
-                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6))
+                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6), tileid)
    END SUBROUTINE  xios(send_field_r8_6d)
 
+   SUBROUTINE  xios(send_field_tiled_r8_6d)(fieldid, data6d_k8, tileid)
+   IMPLICIT NONE
+      CHARACTER(len = *)               , INTENT(IN) :: fieldid
+      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:)
+      INTEGER                          , INTENT(IN) :: tileid
+      CALL cxios_write_data_k86(fieldid, len(fieldid), data6d_k8, &
+                                size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), &
+                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6), tileid)
+   END SUBROUTINE  xios(send_field_tiled_r8_6d)
+
    SUBROUTINE  xios(send_field_r8_7d_hdl)(field_hdl, data7d_k8)
    IMPLICIT NONE
       TYPE(txios(field))              :: field_hdl
       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k87_hdl(field_hdl%daddr, data7d_k8, &
                                 size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), &
                                 size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), &
-                                size(data7d_k8, 7))
+                                size(data7d_k8, 7), tileid)
    END SUBROUTINE  xios(send_field_r8_7d_hdl)
 
@@ -940,9 +1041,21 @@
       CHARACTER(len = *)               , INTENT(IN) :: fieldid
       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k87(fieldid, len(fieldid), data7d_k8, &
                                 size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), &
                                 size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), &
-                                size(data7d_k8, 7))
+                                size(data7d_k8, 7), tileid)
    END SUBROUTINE  xios(send_field_r8_7d)
+
+   SUBROUTINE  xios(send_field_tiled_r8_7d)(fieldid, data7d_k8, tileid)
+   IMPLICIT NONE
+      CHARACTER(len = *)               , INTENT(IN) :: fieldid
+      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:)
+      INTEGER                          , INTENT(IN) :: tileid
+      CALL cxios_write_data_k87(fieldid, len(fieldid), data7d_k8, &
+                                size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), &
+                                size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), &
+                                size(data7d_k8, 7), tileid)
+   END SUBROUTINE  xios(send_field_tiled_r8_7d)
 
    SUBROUTINE xios(send_field_r4_0d_hdl)(field_hdl, data_k4)
@@ -964,5 +1077,6 @@
       TYPE(txios(field))              :: field_hdl
       REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:)
-      CALL cxios_write_data_k41_hdl(field_hdl%daddr, data1d_k4, size(data1d_k4, 1))
+      INTEGER, PARAMETER                            :: tileid = -1
+      CALL cxios_write_data_k41_hdl(field_hdl%daddr, data1d_k4, size(data1d_k4, 1), tileid)
    END SUBROUTINE xios(send_field_r4_1d_hdl)
 
@@ -971,12 +1085,22 @@
       CHARACTER(len = *)               , INTENT(IN) :: fieldid
       REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:)
-      CALL cxios_write_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1))
+      INTEGER, PARAMETER                            :: tileid = -1
+      CALL cxios_write_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1), tileid)
    END SUBROUTINE xios(send_field_r4_1d)
 
+   SUBROUTINE xios(send_field_tiled_r4_1d)(fieldid, data1d_k4, tileid)
+   IMPLICIT NONE
+      CHARACTER(len = *)               , INTENT(IN) :: fieldid
+      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:)
+      INTEGER                          , INTENT(IN) :: tileid
+      CALL cxios_write_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1), tileid)
+   END SUBROUTINE xios(send_field_tiled_r4_1d)
+
    SUBROUTINE xios(send_field_r4_2d_hdl)(field_hdl, data2d_k4)
    IMPLICIT NONE
       TYPE(txios(field))              :: field_hdl
       REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data2d_k4(:,:)
-      CALL cxios_write_data_k42_hdl(field_hdl%daddr, data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2))
+      INTEGER, PARAMETER                            :: tileid = -1
+      CALL cxios_write_data_k42_hdl(field_hdl%daddr, data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2), tileid)
    END SUBROUTINE xios(send_field_r4_2d_hdl)
 
@@ -985,12 +1109,23 @@
       CHARACTER(len = *)               , INTENT(IN) :: fieldid
       REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data2d_k4(:,:)
-      CALL cxios_write_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2))
+      INTEGER, PARAMETER                            :: tileid = -1
+      CALL cxios_write_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2), tileid)
    END SUBROUTINE xios(send_field_r4_2d)
 
+   SUBROUTINE xios(send_field_tiled_r4_2d)(fieldid, data2d_k4, tileid)
+   IMPLICIT NONE
+      CHARACTER(len = *)               , INTENT(IN) :: fieldid
+      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data2d_k4(:,:)
+      INTEGER                          , INTENT(IN) :: tileid
+      CALL cxios_write_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2), tileid)
+   END SUBROUTINE xios(send_field_tiled_r4_2d)
+
    SUBROUTINE xios(send_field_r4_3d_hdl)(field_hdl, data3d_k4)
    IMPLICIT NONE
       TYPE(txios(field))              :: field_hdl
       REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data3d_k4(:,:,:)
-      CALL cxios_write_data_k43_hdl(field_hdl%daddr, data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3))
+      INTEGER, PARAMETER                            :: tileid = -1
+      CALL cxios_write_data_k43_hdl(field_hdl%daddr, data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3), &
+                                    tileid)
    END SUBROUTINE xios(send_field_r4_3d_hdl)
 
@@ -999,32 +1134,56 @@
       CHARACTER(len = *)               , INTENT(IN) :: fieldid
       REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data3d_k4(:,:,:)
-      CALL cxios_write_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3))
+      INTEGER, PARAMETER                            :: tileid = -1
+      CALL cxios_write_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3), &
+                                tileid)
    END SUBROUTINE xios(send_field_r4_3d)
 
+   SUBROUTINE xios(send_field_tiled_r4_3d)(fieldid, data3d_k4, tileid)
+   IMPLICIT NONE
+      CHARACTER(len = *)               , INTENT(IN) :: fieldid
+      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data3d_k4(:,:,:)
+      INTEGER                          , INTENT(IN) :: tileid
+      CALL cxios_write_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3), &
+                                tileid)
+   END SUBROUTINE xios(send_field_tiled_r4_3d)
+
    SUBROUTINE  xios(send_field_r4_4d_hdl)(field_hdl, data4d_k4)
    IMPLICIT NONE
       TYPE(txios(field))              :: field_hdl
       REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k44_hdl(field_hdl%daddr, data4d_k4, &
                                 size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), &
-                                size(data4d_k4, 4))
+                                size(data4d_k4, 4), tileid)
    END SUBROUTINE  xios(send_field_r4_4d_hdl)
-   
+
    SUBROUTINE  xios(send_field_r4_4d)(fieldid, data4d_k4)
    IMPLICIT NONE
       CHARACTER(len = *)               , INTENT(IN) :: fieldid
       REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k44(fieldid, len(fieldid), data4d_k4, &
                                 size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), &
-                                size(data4d_k4, 4))
+                                size(data4d_k4, 4), tileid)
    END SUBROUTINE  xios(send_field_r4_4d)
 
+   SUBROUTINE  xios(send_field_tiled_r4_4d)(fieldid, data4d_k4, tileid)
+   IMPLICIT NONE
+      CHARACTER(len = *)               , INTENT(IN) :: fieldid
+      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:)
+      INTEGER                          , INTENT(IN) :: tileid
+      CALL cxios_write_data_k44(fieldid, len(fieldid), data4d_k4, &
+                                size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), &
+                                size(data4d_k4, 4), tileid)
+   END SUBROUTINE  xios(send_field_tiled_r4_4d)
+
    SUBROUTINE  xios(send_field_r4_5d_hdl)(field_hdl, data5d_k4)
    IMPLICIT NONE
       TYPE(txios(field))              :: field_hdl
       REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k45_hdl(field_hdl%daddr, data5d_k4, &
                                 size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), &
-                                size(data5d_k4, 4), size(data5d_k4, 5))
+                                size(data5d_k4, 4), size(data5d_k4, 5), tileid)
    END SUBROUTINE  xios(send_field_r4_5d_hdl)
 
@@ -1033,16 +1192,28 @@
       CHARACTER(len = *)               , INTENT(IN) :: fieldid
       REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k45(fieldid, len(fieldid), data5d_k4, &
                                 size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), &
-                                size(data5d_k4, 4), size(data5d_k4, 5))
+                                size(data5d_k4, 4), size(data5d_k4, 5), tileid)
    END SUBROUTINE  xios(send_field_r4_5d)
 
+   SUBROUTINE  xios(send_field_tiled_r4_5d)(fieldid, data5d_k4, tileid)
+   IMPLICIT NONE
+      CHARACTER(len = *)               , INTENT(IN) :: fieldid
+      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:)
+      INTEGER                          , INTENT(IN) :: tileid
+      CALL cxios_write_data_k45(fieldid, len(fieldid), data5d_k4, &
+                                size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), &
+                                size(data5d_k4, 4), size(data5d_k4, 5), tileid)
+   END SUBROUTINE  xios(send_field_tiled_r4_5d)
+
    SUBROUTINE  xios(send_field_r4_6d_hdl)(field_hdl, data6d_k4)
    IMPLICIT NONE
       TYPE(txios(field))              :: field_hdl
       REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k46_hdl(field_hdl%daddr, data6d_k4, &
                                 size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), &
-                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6))
+                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6), tileid)
    END SUBROUTINE  xios(send_field_r4_6d_hdl)
    
@@ -1051,17 +1222,29 @@
       CHARACTER(len = *)               , INTENT(IN) :: fieldid
       REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k46(fieldid, len(fieldid), data6d_k4, &
                                 size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), &
-                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6))
+                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6), tileid)
    END SUBROUTINE  xios(send_field_r4_6d)
 
+   SUBROUTINE  xios(send_field_tiled_r4_6d)(fieldid, data6d_k4, tileid)
+   IMPLICIT NONE
+      CHARACTER(len = *)               , INTENT(IN) :: fieldid
+      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:)
+      INTEGER                          , INTENT(IN) :: tileid
+      CALL cxios_write_data_k46(fieldid, len(fieldid), data6d_k4, &
+                                size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), &
+                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6), tileid)
+   END SUBROUTINE  xios(send_field_tiled_r4_6d)
+
    SUBROUTINE  xios(send_field_r4_7d_hdl)(field_hdl, data7d_k4)
    IMPLICIT NONE
       TYPE(txios(field))              :: field_hdl
       REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k47_hdl(field_hdl%daddr, data7d_k4, &
                                 size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), &
                                 size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), &
-                                size(data7d_k4, 7))
+                                size(data7d_k4, 7), tileid)
    END SUBROUTINE  xios(send_field_r4_7d_hdl)
    
@@ -1070,9 +1253,21 @@
       CHARACTER(len = *)               , INTENT(IN) :: fieldid
       REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:)
+      INTEGER, PARAMETER                            :: tileid = -1
       CALL cxios_write_data_k47(fieldid, len(fieldid), data7d_k4, &
                                 size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), &
                                 size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), &
-                                size(data7d_k4, 7))
+                                size(data7d_k4, 7), tileid)
    END SUBROUTINE  xios(send_field_r4_7d)
+
+   SUBROUTINE  xios(send_field_tiled_r4_7d)(fieldid, data7d_k4, tileid)
+   IMPLICIT NONE
+      CHARACTER(len = *)               , INTENT(IN) :: fieldid
+      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:)
+      INTEGER                          , INTENT(IN) :: tileid
+      CALL cxios_write_data_k47(fieldid, len(fieldid), data7d_k4, &
+                                size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), &
+                                size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), &
+                                size(data7d_k4, 7), tileid)
+   END SUBROUTINE  xios(send_field_tiled_r4_7d)
 
    ! Receive field functions
Index: XIOS/trunk/src/interface/fortran/ixios_interfaces.F90
===================================================================
--- XIOS/trunk/src/interface/fortran/ixios_interfaces.F90	(revision 2099)
+++ XIOS/trunk/src/interface/fortran/ixios_interfaces.F90	(revision 2131)
@@ -15,4 +15,10 @@
                   xios(send_field_r4_0d_hdl), xios(send_field_r4_1d_hdl), xios(send_field_r4_2d_hdl), xios(send_field_r4_3d_hdl), &
                   xios(send_field_r4_4d_hdl), xios(send_field_r4_5d_hdl), xios(send_field_r4_6d_hdl), xios(send_field_r4_7d_hdl), &
+                  xios(send_field_tiled_r8_1d), xios(send_field_tiled_r8_2d), &
+                  xios(send_field_tiled_r8_3d), xios(send_field_tiled_r8_4d), &
+                  xios(send_field_tiled_r8_5d), xios(send_field_tiled_r8_6d), xios(send_field_tiled_r8_7d), &
+                  xios(send_field_tiled_r4_1d), xios(send_field_tiled_r4_2d), &
+                  xios(send_field_tiled_r4_3d), xios(send_field_tiled_r4_4d), &
+                  xios(send_field_tiled_r4_5d), xios(send_field_tiled_r4_6d), xios(send_field_tiled_r4_7d), &
                   xios(recv_field_r8_0d), xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d), &
                   xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), &
@@ -251,5 +257,11 @@
                    xios(send_field_r8_4d_hdl), xios(send_field_r8_5d_hdl), xios(send_field_r8_6d_hdl), xios(send_field_r8_7d_hdl), &
                    xios(send_field_r4_0d_hdl), xios(send_field_r4_1d_hdl), xios(send_field_r4_2d_hdl), xios(send_field_r4_3d_hdl), &
-                   xios(send_field_r4_4d_hdl), xios(send_field_r4_5d_hdl), xios(send_field_r4_6d_hdl), xios(send_field_r4_7d_hdl)
+                   xios(send_field_r4_4d_hdl), xios(send_field_r4_5d_hdl), xios(send_field_r4_6d_hdl), xios(send_field_r4_7d_hdl), &
+                   xios(send_field_tiled_r8_1d), xios(send_field_tiled_r8_2d), &
+                   xios(send_field_tiled_r8_3d), xios(send_field_tiled_r8_4d), &
+                   xios(send_field_tiled_r8_5d), xios(send_field_tiled_r8_6d), xios(send_field_tiled_r8_7d), &
+                   xios(send_field_tiled_r4_1d), xios(send_field_tiled_r4_2d), &
+                   xios(send_field_tiled_r4_3d), xios(send_field_tiled_r4_4d), &
+                   xios(send_field_tiled_r4_5d), xios(send_field_tiled_r4_6d), xios(send_field_tiled_r4_7d)
 END INTERFACE xios(send_field)
 
Index: XIOS/trunk/src/interface/fortran_attr/domain_interface_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/domain_interface_attr.F90	(revision 2099)
+++ XIOS/trunk/src/interface/fortran_attr/domain_interface_attr.F90	(revision 2131)
@@ -744,4 +744,23 @@
 
 
+    SUBROUTINE cxios_set_domain_ntiles(domain_hdl, ntiles) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: ntiles
+    END SUBROUTINE cxios_set_domain_ntiles
+
+    SUBROUTINE cxios_get_domain_ntiles(domain_hdl, ntiles) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+      INTEGER (KIND=C_INT)             :: ntiles
+    END SUBROUTINE cxios_get_domain_ntiles
+
+    FUNCTION cxios_is_defined_domain_ntiles(domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_ntiles
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+    END FUNCTION cxios_is_defined_domain_ntiles
+
+
     SUBROUTINE cxios_set_domain_nvertex(domain_hdl, nvertex) BIND(C)
       USE ISO_C_BINDING
@@ -822,4 +841,172 @@
 
 
+    SUBROUTINE cxios_set_domain_tile_data_ibegin(domain_hdl, tile_data_ibegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_ibegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domain_tile_data_ibegin
+
+    SUBROUTINE cxios_get_domain_tile_data_ibegin(domain_hdl, tile_data_ibegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_ibegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domain_tile_data_ibegin
+
+    FUNCTION cxios_is_defined_domain_tile_data_ibegin(domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_data_ibegin
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+    END FUNCTION cxios_is_defined_domain_tile_data_ibegin
+
+
+    SUBROUTINE cxios_set_domain_tile_data_jbegin(domain_hdl, tile_data_jbegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_jbegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domain_tile_data_jbegin
+
+    SUBROUTINE cxios_get_domain_tile_data_jbegin(domain_hdl, tile_data_jbegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_jbegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domain_tile_data_jbegin
+
+    FUNCTION cxios_is_defined_domain_tile_data_jbegin(domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_data_jbegin
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+    END FUNCTION cxios_is_defined_domain_tile_data_jbegin
+
+
+    SUBROUTINE cxios_set_domain_tile_data_ni(domain_hdl, tile_data_ni, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_ni
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domain_tile_data_ni
+
+    SUBROUTINE cxios_get_domain_tile_data_ni(domain_hdl, tile_data_ni, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_ni
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domain_tile_data_ni
+
+    FUNCTION cxios_is_defined_domain_tile_data_ni(domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_data_ni
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+    END FUNCTION cxios_is_defined_domain_tile_data_ni
+
+
+    SUBROUTINE cxios_set_domain_tile_data_nj(domain_hdl, tile_data_nj, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_nj
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domain_tile_data_nj
+
+    SUBROUTINE cxios_get_domain_tile_data_nj(domain_hdl, tile_data_nj, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_nj
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domain_tile_data_nj
+
+    FUNCTION cxios_is_defined_domain_tile_data_nj(domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_data_nj
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+    END FUNCTION cxios_is_defined_domain_tile_data_nj
+
+
+    SUBROUTINE cxios_set_domain_tile_ibegin(domain_hdl, tile_ibegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_ibegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domain_tile_ibegin
+
+    SUBROUTINE cxios_get_domain_tile_ibegin(domain_hdl, tile_ibegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_ibegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domain_tile_ibegin
+
+    FUNCTION cxios_is_defined_domain_tile_ibegin(domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_ibegin
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+    END FUNCTION cxios_is_defined_domain_tile_ibegin
+
+
+    SUBROUTINE cxios_set_domain_tile_jbegin(domain_hdl, tile_jbegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_jbegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domain_tile_jbegin
+
+    SUBROUTINE cxios_get_domain_tile_jbegin(domain_hdl, tile_jbegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_jbegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domain_tile_jbegin
+
+    FUNCTION cxios_is_defined_domain_tile_jbegin(domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_jbegin
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+    END FUNCTION cxios_is_defined_domain_tile_jbegin
+
+
+    SUBROUTINE cxios_set_domain_tile_ni(domain_hdl, tile_ni, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_ni
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domain_tile_ni
+
+    SUBROUTINE cxios_get_domain_tile_ni(domain_hdl, tile_ni, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_ni
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domain_tile_ni
+
+    FUNCTION cxios_is_defined_domain_tile_ni(domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_ni
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+    END FUNCTION cxios_is_defined_domain_tile_ni
+
+
+    SUBROUTINE cxios_set_domain_tile_nj(domain_hdl, tile_nj, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_nj
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domain_tile_nj
+
+    SUBROUTINE cxios_get_domain_tile_nj(domain_hdl, tile_nj, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domain_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_nj
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domain_tile_nj
+
+    FUNCTION cxios_is_defined_domain_tile_nj(domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_tile_nj
+      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
+    END FUNCTION cxios_is_defined_domain_tile_nj
+
+
     SUBROUTINE cxios_set_domain_type(domain_hdl, type, type_size) BIND(C)
       USE ISO_C_BINDING
Index: XIOS/trunk/src/interface/fortran_attr/domaingroup_interface_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/domaingroup_interface_attr.F90	(revision 2099)
+++ XIOS/trunk/src/interface/fortran_attr/domaingroup_interface_attr.F90	(revision 2131)
@@ -765,4 +765,23 @@
 
 
+    SUBROUTINE cxios_set_domaingroup_ntiles(domaingroup_hdl, ntiles) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: ntiles
+    END SUBROUTINE cxios_set_domaingroup_ntiles
+
+    SUBROUTINE cxios_get_domaingroup_ntiles(domaingroup_hdl, ntiles) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+      INTEGER (KIND=C_INT)             :: ntiles
+    END SUBROUTINE cxios_get_domaingroup_ntiles
+
+    FUNCTION cxios_is_defined_domaingroup_ntiles(domaingroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_ntiles
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+    END FUNCTION cxios_is_defined_domaingroup_ntiles
+
+
     SUBROUTINE cxios_set_domaingroup_nvertex(domaingroup_hdl, nvertex) BIND(C)
       USE ISO_C_BINDING
@@ -843,4 +862,172 @@
 
 
+    SUBROUTINE cxios_set_domaingroup_tile_data_ibegin(domaingroup_hdl, tile_data_ibegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_ibegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domaingroup_tile_data_ibegin
+
+    SUBROUTINE cxios_get_domaingroup_tile_data_ibegin(domaingroup_hdl, tile_data_ibegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_ibegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domaingroup_tile_data_ibegin
+
+    FUNCTION cxios_is_defined_domaingroup_tile_data_ibegin(domaingroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_data_ibegin
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+    END FUNCTION cxios_is_defined_domaingroup_tile_data_ibegin
+
+
+    SUBROUTINE cxios_set_domaingroup_tile_data_jbegin(domaingroup_hdl, tile_data_jbegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_jbegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domaingroup_tile_data_jbegin
+
+    SUBROUTINE cxios_get_domaingroup_tile_data_jbegin(domaingroup_hdl, tile_data_jbegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_jbegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domaingroup_tile_data_jbegin
+
+    FUNCTION cxios_is_defined_domaingroup_tile_data_jbegin(domaingroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_data_jbegin
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+    END FUNCTION cxios_is_defined_domaingroup_tile_data_jbegin
+
+
+    SUBROUTINE cxios_set_domaingroup_tile_data_ni(domaingroup_hdl, tile_data_ni, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_ni
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domaingroup_tile_data_ni
+
+    SUBROUTINE cxios_get_domaingroup_tile_data_ni(domaingroup_hdl, tile_data_ni, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_ni
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domaingroup_tile_data_ni
+
+    FUNCTION cxios_is_defined_domaingroup_tile_data_ni(domaingroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_data_ni
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+    END FUNCTION cxios_is_defined_domaingroup_tile_data_ni
+
+
+    SUBROUTINE cxios_set_domaingroup_tile_data_nj(domaingroup_hdl, tile_data_nj, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_nj
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domaingroup_tile_data_nj
+
+    SUBROUTINE cxios_get_domaingroup_tile_data_nj(domaingroup_hdl, tile_data_nj, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_data_nj
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domaingroup_tile_data_nj
+
+    FUNCTION cxios_is_defined_domaingroup_tile_data_nj(domaingroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_data_nj
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+    END FUNCTION cxios_is_defined_domaingroup_tile_data_nj
+
+
+    SUBROUTINE cxios_set_domaingroup_tile_ibegin(domaingroup_hdl, tile_ibegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_ibegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domaingroup_tile_ibegin
+
+    SUBROUTINE cxios_get_domaingroup_tile_ibegin(domaingroup_hdl, tile_ibegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_ibegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domaingroup_tile_ibegin
+
+    FUNCTION cxios_is_defined_domaingroup_tile_ibegin(domaingroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_ibegin
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+    END FUNCTION cxios_is_defined_domaingroup_tile_ibegin
+
+
+    SUBROUTINE cxios_set_domaingroup_tile_jbegin(domaingroup_hdl, tile_jbegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_jbegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domaingroup_tile_jbegin
+
+    SUBROUTINE cxios_get_domaingroup_tile_jbegin(domaingroup_hdl, tile_jbegin, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_jbegin
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domaingroup_tile_jbegin
+
+    FUNCTION cxios_is_defined_domaingroup_tile_jbegin(domaingroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_jbegin
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+    END FUNCTION cxios_is_defined_domaingroup_tile_jbegin
+
+
+    SUBROUTINE cxios_set_domaingroup_tile_ni(domaingroup_hdl, tile_ni, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_ni
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domaingroup_tile_ni
+
+    SUBROUTINE cxios_get_domaingroup_tile_ni(domaingroup_hdl, tile_ni, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_ni
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domaingroup_tile_ni
+
+    FUNCTION cxios_is_defined_domaingroup_tile_ni(domaingroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_ni
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+    END FUNCTION cxios_is_defined_domaingroup_tile_ni
+
+
+    SUBROUTINE cxios_set_domaingroup_tile_nj(domaingroup_hdl, tile_nj, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_nj
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_set_domaingroup_tile_nj
+
+    SUBROUTINE cxios_get_domaingroup_tile_nj(domaingroup_hdl, tile_nj, extent) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE       :: domaingroup_hdl
+      INTEGER (KIND=C_INT)     , DIMENSION(*) :: tile_nj
+      INTEGER (kind = C_INT), DIMENSION(*)     :: extent
+    END SUBROUTINE cxios_get_domaingroup_tile_nj
+
+    FUNCTION cxios_is_defined_domaingroup_tile_nj(domaingroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_tile_nj
+      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl
+    END FUNCTION cxios_is_defined_domaingroup_tile_nj
+
+
     SUBROUTINE cxios_set_domaingroup_type(domaingroup_hdl, type, type_size) BIND(C)
       USE ISO_C_BINDING
Index: XIOS/trunk/src/interface/fortran_attr/idomain_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/idomain_attr.F90	(revision 2099)
+++ XIOS/trunk/src/interface/fortran_attr/idomain_attr.F90	(revision 2131)
@@ -16,5 +16,6 @@
     , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
     , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
-    , nj, nj_glo, nvertex, prec, radius, standard_name, type )
+    , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin  &
+    , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type )
 
     IMPLICIT NONE
@@ -59,8 +60,17 @@
       INTEGER  , OPTIONAL, INTENT(IN) :: nj
       INTEGER  , OPTIONAL, INTENT(IN) :: nj_glo
+      INTEGER  , OPTIONAL, INTENT(IN) :: ntiles
       INTEGER  , OPTIONAL, INTENT(IN) :: nvertex
       INTEGER  , OPTIONAL, INTENT(IN) :: prec
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: radius
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_ni(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_nj(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_ni(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_nj(:)
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
 
@@ -72,5 +82,6 @@
       , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
       , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
-      , nj, nj_glo, nvertex, prec, radius, standard_name, type )
+      , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin  &
+      , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type )
 
   END SUBROUTINE xios(set_domain_attr)
@@ -81,5 +92,6 @@
     , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
     , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
-    , nj, nj_glo, nvertex, prec, radius, standard_name, type )
+    , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin  &
+    , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type )
 
     IMPLICIT NONE
@@ -123,8 +135,17 @@
       INTEGER  , OPTIONAL, INTENT(IN) :: nj
       INTEGER  , OPTIONAL, INTENT(IN) :: nj_glo
+      INTEGER  , OPTIONAL, INTENT(IN) :: ntiles
       INTEGER  , OPTIONAL, INTENT(IN) :: nvertex
       INTEGER  , OPTIONAL, INTENT(IN) :: prec
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: radius
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_ni(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_nj(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_ni(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_nj(:)
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
 
@@ -134,5 +155,6 @@
       , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
       , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
-      , nj, nj_glo, nvertex, prec, radius, standard_name, type )
+      , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin  &
+      , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type )
 
   END SUBROUTINE xios(set_domain_attr_hdl)
@@ -143,6 +165,7 @@
     , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, i_index_, ibegin_, j_index_, jbegin_  &
     , lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_, mask_1d_  &
-    , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, radius_, standard_name_, type_  &
-     )
+    , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, ntiles_, nvertex_, prec_, radius_, standard_name_  &
+    , tile_data_ibegin_, tile_data_jbegin_, tile_data_ni_, tile_data_nj_, tile_ibegin_, tile_jbegin_  &
+    , tile_ni_, tile_nj_, type_ )
 
     IMPLICIT NONE
@@ -186,8 +209,17 @@
       INTEGER  , OPTIONAL, INTENT(IN) :: nj_
       INTEGER  , OPTIONAL, INTENT(IN) :: nj_glo_
+      INTEGER  , OPTIONAL, INTENT(IN) :: ntiles_
       INTEGER  , OPTIONAL, INTENT(IN) :: nvertex_
       INTEGER  , OPTIONAL, INTENT(IN) :: prec_
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: radius_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_ibegin_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_jbegin_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_ni_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_nj_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_ibegin_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_jbegin_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_ni_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_nj_(:)
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_
 
@@ -376,4 +408,9 @@
       ENDIF
 
+      IF (PRESENT(ntiles_)) THEN
+        CALL cxios_set_domain_ntiles &
+      (domain_hdl%daddr, ntiles_)
+      ENDIF
+
       IF (PRESENT(nvertex_)) THEN
         CALL cxios_set_domain_nvertex &
@@ -394,4 +431,44 @@
         CALL cxios_set_domain_standard_name &
       (domain_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+
+      IF (PRESENT(tile_data_ibegin_)) THEN
+        CALL cxios_set_domain_tile_data_ibegin &
+      (domain_hdl%daddr, tile_data_ibegin_, SHAPE(tile_data_ibegin_))
+      ENDIF
+
+      IF (PRESENT(tile_data_jbegin_)) THEN
+        CALL cxios_set_domain_tile_data_jbegin &
+      (domain_hdl%daddr, tile_data_jbegin_, SHAPE(tile_data_jbegin_))
+      ENDIF
+
+      IF (PRESENT(tile_data_ni_)) THEN
+        CALL cxios_set_domain_tile_data_ni &
+      (domain_hdl%daddr, tile_data_ni_, SHAPE(tile_data_ni_))
+      ENDIF
+
+      IF (PRESENT(tile_data_nj_)) THEN
+        CALL cxios_set_domain_tile_data_nj &
+      (domain_hdl%daddr, tile_data_nj_, SHAPE(tile_data_nj_))
+      ENDIF
+
+      IF (PRESENT(tile_ibegin_)) THEN
+        CALL cxios_set_domain_tile_ibegin &
+      (domain_hdl%daddr, tile_ibegin_, SHAPE(tile_ibegin_))
+      ENDIF
+
+      IF (PRESENT(tile_jbegin_)) THEN
+        CALL cxios_set_domain_tile_jbegin &
+      (domain_hdl%daddr, tile_jbegin_, SHAPE(tile_jbegin_))
+      ENDIF
+
+      IF (PRESENT(tile_ni_)) THEN
+        CALL cxios_set_domain_tile_ni &
+      (domain_hdl%daddr, tile_ni_, SHAPE(tile_ni_))
+      ENDIF
+
+      IF (PRESENT(tile_nj_)) THEN
+        CALL cxios_set_domain_tile_nj &
+      (domain_hdl%daddr, tile_nj_, SHAPE(tile_nj_))
       ENDIF
 
@@ -408,5 +485,6 @@
     , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
     , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
-    , nj, nj_glo, nvertex, prec, radius, standard_name, type )
+    , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin  &
+    , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type )
 
     IMPLICIT NONE
@@ -451,8 +529,17 @@
       INTEGER  , OPTIONAL, INTENT(OUT) :: nj
       INTEGER  , OPTIONAL, INTENT(OUT) :: nj_glo
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ntiles
       INTEGER  , OPTIONAL, INTENT(OUT) :: nvertex
       INTEGER  , OPTIONAL, INTENT(OUT) :: prec
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: radius
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_ni(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_nj(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_ni(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_nj(:)
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
 
@@ -464,5 +551,6 @@
       , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
       , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
-      , nj, nj_glo, nvertex, prec, radius, standard_name, type )
+      , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin  &
+      , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type )
 
   END SUBROUTINE xios(get_domain_attr)
@@ -473,5 +561,6 @@
     , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
     , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
-    , nj, nj_glo, nvertex, prec, radius, standard_name, type )
+    , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin  &
+    , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type )
 
     IMPLICIT NONE
@@ -515,8 +604,17 @@
       INTEGER  , OPTIONAL, INTENT(OUT) :: nj
       INTEGER  , OPTIONAL, INTENT(OUT) :: nj_glo
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ntiles
       INTEGER  , OPTIONAL, INTENT(OUT) :: nvertex
       INTEGER  , OPTIONAL, INTENT(OUT) :: prec
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: radius
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_ni(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_nj(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_ni(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_nj(:)
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
 
@@ -526,5 +624,6 @@
       , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
       , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
-      , nj, nj_glo, nvertex, prec, radius, standard_name, type )
+      , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin  &
+      , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type )
 
   END SUBROUTINE xios(get_domain_attr_hdl)
@@ -535,6 +634,7 @@
     , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, i_index_, ibegin_, j_index_, jbegin_  &
     , lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_, mask_1d_  &
-    , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, radius_, standard_name_, type_  &
-     )
+    , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, ntiles_, nvertex_, prec_, radius_, standard_name_  &
+    , tile_data_ibegin_, tile_data_jbegin_, tile_data_ni_, tile_data_nj_, tile_ibegin_, tile_jbegin_  &
+    , tile_ni_, tile_nj_, type_ )
 
     IMPLICIT NONE
@@ -578,8 +678,17 @@
       INTEGER  , OPTIONAL, INTENT(OUT) :: nj_
       INTEGER  , OPTIONAL, INTENT(OUT) :: nj_glo_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ntiles_
       INTEGER  , OPTIONAL, INTENT(OUT) :: nvertex_
       INTEGER  , OPTIONAL, INTENT(OUT) :: prec_
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: radius_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_ibegin_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_jbegin_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_ni_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_nj_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_ibegin_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_jbegin_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_ni_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_nj_(:)
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_
 
@@ -768,4 +877,9 @@
       ENDIF
 
+      IF (PRESENT(ntiles_)) THEN
+        CALL cxios_get_domain_ntiles &
+      (domain_hdl%daddr, ntiles_)
+      ENDIF
+
       IF (PRESENT(nvertex_)) THEN
         CALL cxios_get_domain_nvertex &
@@ -786,4 +900,44 @@
         CALL cxios_get_domain_standard_name &
       (domain_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+
+      IF (PRESENT(tile_data_ibegin_)) THEN
+        CALL cxios_get_domain_tile_data_ibegin &
+      (domain_hdl%daddr, tile_data_ibegin_, SHAPE(tile_data_ibegin_))
+      ENDIF
+
+      IF (PRESENT(tile_data_jbegin_)) THEN
+        CALL cxios_get_domain_tile_data_jbegin &
+      (domain_hdl%daddr, tile_data_jbegin_, SHAPE(tile_data_jbegin_))
+      ENDIF
+
+      IF (PRESENT(tile_data_ni_)) THEN
+        CALL cxios_get_domain_tile_data_ni &
+      (domain_hdl%daddr, tile_data_ni_, SHAPE(tile_data_ni_))
+      ENDIF
+
+      IF (PRESENT(tile_data_nj_)) THEN
+        CALL cxios_get_domain_tile_data_nj &
+      (domain_hdl%daddr, tile_data_nj_, SHAPE(tile_data_nj_))
+      ENDIF
+
+      IF (PRESENT(tile_ibegin_)) THEN
+        CALL cxios_get_domain_tile_ibegin &
+      (domain_hdl%daddr, tile_ibegin_, SHAPE(tile_ibegin_))
+      ENDIF
+
+      IF (PRESENT(tile_jbegin_)) THEN
+        CALL cxios_get_domain_tile_jbegin &
+      (domain_hdl%daddr, tile_jbegin_, SHAPE(tile_jbegin_))
+      ENDIF
+
+      IF (PRESENT(tile_ni_)) THEN
+        CALL cxios_get_domain_tile_ni &
+      (domain_hdl%daddr, tile_ni_, SHAPE(tile_ni_))
+      ENDIF
+
+      IF (PRESENT(tile_nj_)) THEN
+        CALL cxios_get_domain_tile_nj &
+      (domain_hdl%daddr, tile_nj_, SHAPE(tile_nj_))
       ENDIF
 
@@ -800,5 +954,6 @@
     , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
     , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
-    , nj, nj_glo, nvertex, prec, radius, standard_name, type )
+    , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin  &
+    , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type )
 
     IMPLICIT NONE
@@ -877,4 +1032,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: nj_glo
       LOGICAL(KIND=C_BOOL) :: nj_glo_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: ntiles
+      LOGICAL(KIND=C_BOOL) :: ntiles_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: nvertex
       LOGICAL(KIND=C_BOOL) :: nvertex_tmp
@@ -885,4 +1042,20 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name
       LOGICAL(KIND=C_BOOL) :: standard_name_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ibegin
+      LOGICAL(KIND=C_BOOL) :: tile_data_ibegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_jbegin
+      LOGICAL(KIND=C_BOOL) :: tile_data_jbegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ni
+      LOGICAL(KIND=C_BOOL) :: tile_data_ni_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_nj
+      LOGICAL(KIND=C_BOOL) :: tile_data_nj_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ibegin
+      LOGICAL(KIND=C_BOOL) :: tile_ibegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_jbegin
+      LOGICAL(KIND=C_BOOL) :: tile_jbegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ni
+      LOGICAL(KIND=C_BOOL) :: tile_ni_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_nj
+      LOGICAL(KIND=C_BOOL) :: tile_nj_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: type
       LOGICAL(KIND=C_BOOL) :: type_tmp
@@ -895,5 +1068,6 @@
       , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
       , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
-      , nj, nj_glo, nvertex, prec, radius, standard_name, type )
+      , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin  &
+      , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type )
 
   END SUBROUTINE xios(is_defined_domain_attr)
@@ -904,5 +1078,6 @@
     , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
     , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
-    , nj, nj_glo, nvertex, prec, radius, standard_name, type )
+    , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin  &
+    , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type )
 
     IMPLICIT NONE
@@ -980,4 +1155,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: nj_glo
       LOGICAL(KIND=C_BOOL) :: nj_glo_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: ntiles
+      LOGICAL(KIND=C_BOOL) :: ntiles_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: nvertex
       LOGICAL(KIND=C_BOOL) :: nvertex_tmp
@@ -988,4 +1165,20 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name
       LOGICAL(KIND=C_BOOL) :: standard_name_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ibegin
+      LOGICAL(KIND=C_BOOL) :: tile_data_ibegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_jbegin
+      LOGICAL(KIND=C_BOOL) :: tile_data_jbegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ni
+      LOGICAL(KIND=C_BOOL) :: tile_data_ni_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_nj
+      LOGICAL(KIND=C_BOOL) :: tile_data_nj_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ibegin
+      LOGICAL(KIND=C_BOOL) :: tile_ibegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_jbegin
+      LOGICAL(KIND=C_BOOL) :: tile_jbegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ni
+      LOGICAL(KIND=C_BOOL) :: tile_ni_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_nj
+      LOGICAL(KIND=C_BOOL) :: tile_nj_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: type
       LOGICAL(KIND=C_BOOL) :: type_tmp
@@ -996,5 +1189,6 @@
       , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
       , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
-      , nj, nj_glo, nvertex, prec, radius, standard_name, type )
+      , nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin, tile_data_jbegin  &
+      , tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type )
 
   END SUBROUTINE xios(is_defined_domain_attr_hdl)
@@ -1005,6 +1199,7 @@
     , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, i_index_, ibegin_, j_index_, jbegin_  &
     , lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_, mask_1d_  &
-    , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, radius_, standard_name_, type_  &
-     )
+    , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, ntiles_, nvertex_, prec_, radius_, standard_name_  &
+    , tile_data_ibegin_, tile_data_jbegin_, tile_data_ni_, tile_data_nj_, tile_ibegin_, tile_jbegin_  &
+    , tile_ni_, tile_nj_, type_ )
 
     IMPLICIT NONE
@@ -1082,4 +1277,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: nj_glo_
       LOGICAL(KIND=C_BOOL) :: nj_glo__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: ntiles_
+      LOGICAL(KIND=C_BOOL) :: ntiles__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: nvertex_
       LOGICAL(KIND=C_BOOL) :: nvertex__tmp
@@ -1090,4 +1287,20 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name_
       LOGICAL(KIND=C_BOOL) :: standard_name__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ibegin_
+      LOGICAL(KIND=C_BOOL) :: tile_data_ibegin__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_jbegin_
+      LOGICAL(KIND=C_BOOL) :: tile_data_jbegin__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ni_
+      LOGICAL(KIND=C_BOOL) :: tile_data_ni__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_nj_
+      LOGICAL(KIND=C_BOOL) :: tile_data_nj__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ibegin_
+      LOGICAL(KIND=C_BOOL) :: tile_ibegin__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_jbegin_
+      LOGICAL(KIND=C_BOOL) :: tile_jbegin__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ni_
+      LOGICAL(KIND=C_BOOL) :: tile_ni__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_nj_
+      LOGICAL(KIND=C_BOOL) :: tile_nj__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: type_
       LOGICAL(KIND=C_BOOL) :: type__tmp
@@ -1309,4 +1522,10 @@
       ENDIF
 
+      IF (PRESENT(ntiles_)) THEN
+        ntiles__tmp = cxios_is_defined_domain_ntiles &
+      (domain_hdl%daddr)
+        ntiles_ = ntiles__tmp
+      ENDIF
+
       IF (PRESENT(nvertex_)) THEN
         nvertex__tmp = cxios_is_defined_domain_nvertex &
@@ -1333,4 +1552,52 @@
       ENDIF
 
+      IF (PRESENT(tile_data_ibegin_)) THEN
+        tile_data_ibegin__tmp = cxios_is_defined_domain_tile_data_ibegin &
+      (domain_hdl%daddr)
+        tile_data_ibegin_ = tile_data_ibegin__tmp
+      ENDIF
+
+      IF (PRESENT(tile_data_jbegin_)) THEN
+        tile_data_jbegin__tmp = cxios_is_defined_domain_tile_data_jbegin &
+      (domain_hdl%daddr)
+        tile_data_jbegin_ = tile_data_jbegin__tmp
+      ENDIF
+
+      IF (PRESENT(tile_data_ni_)) THEN
+        tile_data_ni__tmp = cxios_is_defined_domain_tile_data_ni &
+      (domain_hdl%daddr)
+        tile_data_ni_ = tile_data_ni__tmp
+      ENDIF
+
+      IF (PRESENT(tile_data_nj_)) THEN
+        tile_data_nj__tmp = cxios_is_defined_domain_tile_data_nj &
+      (domain_hdl%daddr)
+        tile_data_nj_ = tile_data_nj__tmp
+      ENDIF
+
+      IF (PRESENT(tile_ibegin_)) THEN
+        tile_ibegin__tmp = cxios_is_defined_domain_tile_ibegin &
+      (domain_hdl%daddr)
+        tile_ibegin_ = tile_ibegin__tmp
+      ENDIF
+
+      IF (PRESENT(tile_jbegin_)) THEN
+        tile_jbegin__tmp = cxios_is_defined_domain_tile_jbegin &
+      (domain_hdl%daddr)
+        tile_jbegin_ = tile_jbegin__tmp
+      ENDIF
+
+      IF (PRESENT(tile_ni_)) THEN
+        tile_ni__tmp = cxios_is_defined_domain_tile_ni &
+      (domain_hdl%daddr)
+        tile_ni_ = tile_ni__tmp
+      ENDIF
+
+      IF (PRESENT(tile_nj_)) THEN
+        tile_nj__tmp = cxios_is_defined_domain_tile_nj &
+      (domain_hdl%daddr)
+        tile_nj_ = tile_nj__tmp
+      ENDIF
+
       IF (PRESENT(type_)) THEN
         type__tmp = cxios_is_defined_domain_type &
Index: XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90
===================================================================
--- XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90	(revision 2099)
+++ XIOS/trunk/src/interface/fortran_attr/idomaingroup_attr.F90	(revision 2131)
@@ -16,5 +16,7 @@
     , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  &
     , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  &
-    , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type )
+    , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin  &
+    , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type  &
+     )
 
     IMPLICIT NONE
@@ -60,8 +62,17 @@
       INTEGER  , OPTIONAL, INTENT(IN) :: nj
       INTEGER  , OPTIONAL, INTENT(IN) :: nj_glo
+      INTEGER  , OPTIONAL, INTENT(IN) :: ntiles
       INTEGER  , OPTIONAL, INTENT(IN) :: nvertex
       INTEGER  , OPTIONAL, INTENT(IN) :: prec
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: radius
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_ni(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_nj(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_ni(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_nj(:)
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
 
@@ -73,5 +84,7 @@
       , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  &
       , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  &
-      , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type )
+      , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin  &
+      , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type  &
+       )
 
   END SUBROUTINE xios(set_domaingroup_attr)
@@ -82,5 +95,7 @@
     , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  &
     , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  &
-    , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type )
+    , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin  &
+    , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type  &
+     )
 
     IMPLICIT NONE
@@ -125,8 +140,17 @@
       INTEGER  , OPTIONAL, INTENT(IN) :: nj
       INTEGER  , OPTIONAL, INTENT(IN) :: nj_glo
+      INTEGER  , OPTIONAL, INTENT(IN) :: ntiles
       INTEGER  , OPTIONAL, INTENT(IN) :: nvertex
       INTEGER  , OPTIONAL, INTENT(IN) :: prec
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: radius
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_ni(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_nj(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_ni(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_nj(:)
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
 
@@ -136,5 +160,7 @@
       , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  &
       , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  &
-      , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type )
+      , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin  &
+      , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type  &
+       )
 
   END SUBROUTINE xios(set_domaingroup_attr_hdl)
@@ -145,6 +171,7 @@
     , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, group_ref_, i_index_, ibegin_, j_index_  &
     , jbegin_, lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_  &
-    , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, radius_, standard_name_  &
-    , type_ )
+    , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, ntiles_, nvertex_, prec_, radius_, standard_name_  &
+    , tile_data_ibegin_, tile_data_jbegin_, tile_data_ni_, tile_data_nj_, tile_ibegin_, tile_jbegin_  &
+    , tile_ni_, tile_nj_, type_ )
 
     IMPLICIT NONE
@@ -189,8 +216,17 @@
       INTEGER  , OPTIONAL, INTENT(IN) :: nj_
       INTEGER  , OPTIONAL, INTENT(IN) :: nj_glo_
+      INTEGER  , OPTIONAL, INTENT(IN) :: ntiles_
       INTEGER  , OPTIONAL, INTENT(IN) :: nvertex_
       INTEGER  , OPTIONAL, INTENT(IN) :: prec_
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: radius_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_ibegin_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_jbegin_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_ni_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_data_nj_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_ibegin_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_jbegin_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_ni_(:)
+      INTEGER  , OPTIONAL, INTENT(IN) :: tile_nj_(:)
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_
 
@@ -384,4 +420,9 @@
       ENDIF
 
+      IF (PRESENT(ntiles_)) THEN
+        CALL cxios_set_domaingroup_ntiles &
+      (domaingroup_hdl%daddr, ntiles_)
+      ENDIF
+
       IF (PRESENT(nvertex_)) THEN
         CALL cxios_set_domaingroup_nvertex &
@@ -402,4 +443,44 @@
         CALL cxios_set_domaingroup_standard_name &
       (domaingroup_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+
+      IF (PRESENT(tile_data_ibegin_)) THEN
+        CALL cxios_set_domaingroup_tile_data_ibegin &
+      (domaingroup_hdl%daddr, tile_data_ibegin_, SHAPE(tile_data_ibegin_))
+      ENDIF
+
+      IF (PRESENT(tile_data_jbegin_)) THEN
+        CALL cxios_set_domaingroup_tile_data_jbegin &
+      (domaingroup_hdl%daddr, tile_data_jbegin_, SHAPE(tile_data_jbegin_))
+      ENDIF
+
+      IF (PRESENT(tile_data_ni_)) THEN
+        CALL cxios_set_domaingroup_tile_data_ni &
+      (domaingroup_hdl%daddr, tile_data_ni_, SHAPE(tile_data_ni_))
+      ENDIF
+
+      IF (PRESENT(tile_data_nj_)) THEN
+        CALL cxios_set_domaingroup_tile_data_nj &
+      (domaingroup_hdl%daddr, tile_data_nj_, SHAPE(tile_data_nj_))
+      ENDIF
+
+      IF (PRESENT(tile_ibegin_)) THEN
+        CALL cxios_set_domaingroup_tile_ibegin &
+      (domaingroup_hdl%daddr, tile_ibegin_, SHAPE(tile_ibegin_))
+      ENDIF
+
+      IF (PRESENT(tile_jbegin_)) THEN
+        CALL cxios_set_domaingroup_tile_jbegin &
+      (domaingroup_hdl%daddr, tile_jbegin_, SHAPE(tile_jbegin_))
+      ENDIF
+
+      IF (PRESENT(tile_ni_)) THEN
+        CALL cxios_set_domaingroup_tile_ni &
+      (domaingroup_hdl%daddr, tile_ni_, SHAPE(tile_ni_))
+      ENDIF
+
+      IF (PRESENT(tile_nj_)) THEN
+        CALL cxios_set_domaingroup_tile_nj &
+      (domaingroup_hdl%daddr, tile_nj_, SHAPE(tile_nj_))
       ENDIF
 
@@ -416,5 +497,7 @@
     , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  &
     , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  &
-    , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type )
+    , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin  &
+    , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type  &
+     )
 
     IMPLICIT NONE
@@ -460,8 +543,17 @@
       INTEGER  , OPTIONAL, INTENT(OUT) :: nj
       INTEGER  , OPTIONAL, INTENT(OUT) :: nj_glo
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ntiles
       INTEGER  , OPTIONAL, INTENT(OUT) :: nvertex
       INTEGER  , OPTIONAL, INTENT(OUT) :: prec
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: radius
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_ni(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_nj(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_ni(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_nj(:)
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
 
@@ -473,5 +565,7 @@
       , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  &
       , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  &
-      , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type )
+      , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin  &
+      , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type  &
+       )
 
   END SUBROUTINE xios(get_domaingroup_attr)
@@ -482,5 +576,7 @@
     , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  &
     , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  &
-    , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type )
+    , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin  &
+    , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type  &
+     )
 
     IMPLICIT NONE
@@ -525,8 +621,17 @@
       INTEGER  , OPTIONAL, INTENT(OUT) :: nj
       INTEGER  , OPTIONAL, INTENT(OUT) :: nj_glo
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ntiles
       INTEGER  , OPTIONAL, INTENT(OUT) :: nvertex
       INTEGER  , OPTIONAL, INTENT(OUT) :: prec
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: radius
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_ni(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_nj(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_ibegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_jbegin(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_ni(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_nj(:)
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
 
@@ -536,5 +641,7 @@
       , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  &
       , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  &
-      , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type )
+      , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin  &
+      , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type  &
+       )
 
   END SUBROUTINE xios(get_domaingroup_attr_hdl)
@@ -545,6 +652,7 @@
     , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, group_ref_, i_index_, ibegin_, j_index_  &
     , jbegin_, lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_  &
-    , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, radius_, standard_name_  &
-    , type_ )
+    , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, ntiles_, nvertex_, prec_, radius_, standard_name_  &
+    , tile_data_ibegin_, tile_data_jbegin_, tile_data_ni_, tile_data_nj_, tile_ibegin_, tile_jbegin_  &
+    , tile_ni_, tile_nj_, type_ )
 
     IMPLICIT NONE
@@ -589,8 +697,17 @@
       INTEGER  , OPTIONAL, INTENT(OUT) :: nj_
       INTEGER  , OPTIONAL, INTENT(OUT) :: nj_glo_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ntiles_
       INTEGER  , OPTIONAL, INTENT(OUT) :: nvertex_
       INTEGER  , OPTIONAL, INTENT(OUT) :: prec_
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: radius_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_ibegin_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_jbegin_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_ni_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_data_nj_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_ibegin_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_jbegin_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_ni_(:)
+      INTEGER  , OPTIONAL, INTENT(OUT) :: tile_nj_(:)
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_
 
@@ -784,4 +901,9 @@
       ENDIF
 
+      IF (PRESENT(ntiles_)) THEN
+        CALL cxios_get_domaingroup_ntiles &
+      (domaingroup_hdl%daddr, ntiles_)
+      ENDIF
+
       IF (PRESENT(nvertex_)) THEN
         CALL cxios_get_domaingroup_nvertex &
@@ -802,4 +924,44 @@
         CALL cxios_get_domaingroup_standard_name &
       (domaingroup_hdl%daddr, standard_name_, len(standard_name_))
+      ENDIF
+
+      IF (PRESENT(tile_data_ibegin_)) THEN
+        CALL cxios_get_domaingroup_tile_data_ibegin &
+      (domaingroup_hdl%daddr, tile_data_ibegin_, SHAPE(tile_data_ibegin_))
+      ENDIF
+
+      IF (PRESENT(tile_data_jbegin_)) THEN
+        CALL cxios_get_domaingroup_tile_data_jbegin &
+      (domaingroup_hdl%daddr, tile_data_jbegin_, SHAPE(tile_data_jbegin_))
+      ENDIF
+
+      IF (PRESENT(tile_data_ni_)) THEN
+        CALL cxios_get_domaingroup_tile_data_ni &
+      (domaingroup_hdl%daddr, tile_data_ni_, SHAPE(tile_data_ni_))
+      ENDIF
+
+      IF (PRESENT(tile_data_nj_)) THEN
+        CALL cxios_get_domaingroup_tile_data_nj &
+      (domaingroup_hdl%daddr, tile_data_nj_, SHAPE(tile_data_nj_))
+      ENDIF
+
+      IF (PRESENT(tile_ibegin_)) THEN
+        CALL cxios_get_domaingroup_tile_ibegin &
+      (domaingroup_hdl%daddr, tile_ibegin_, SHAPE(tile_ibegin_))
+      ENDIF
+
+      IF (PRESENT(tile_jbegin_)) THEN
+        CALL cxios_get_domaingroup_tile_jbegin &
+      (domaingroup_hdl%daddr, tile_jbegin_, SHAPE(tile_jbegin_))
+      ENDIF
+
+      IF (PRESENT(tile_ni_)) THEN
+        CALL cxios_get_domaingroup_tile_ni &
+      (domaingroup_hdl%daddr, tile_ni_, SHAPE(tile_ni_))
+      ENDIF
+
+      IF (PRESENT(tile_nj_)) THEN
+        CALL cxios_get_domaingroup_tile_nj &
+      (domaingroup_hdl%daddr, tile_nj_, SHAPE(tile_nj_))
       ENDIF
 
@@ -816,5 +978,7 @@
     , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  &
     , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  &
-    , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type )
+    , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin  &
+    , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type  &
+     )
 
     IMPLICIT NONE
@@ -895,4 +1059,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: nj_glo
       LOGICAL(KIND=C_BOOL) :: nj_glo_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: ntiles
+      LOGICAL(KIND=C_BOOL) :: ntiles_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: nvertex
       LOGICAL(KIND=C_BOOL) :: nvertex_tmp
@@ -903,4 +1069,20 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name
       LOGICAL(KIND=C_BOOL) :: standard_name_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ibegin
+      LOGICAL(KIND=C_BOOL) :: tile_data_ibegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_jbegin
+      LOGICAL(KIND=C_BOOL) :: tile_data_jbegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ni
+      LOGICAL(KIND=C_BOOL) :: tile_data_ni_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_nj
+      LOGICAL(KIND=C_BOOL) :: tile_data_nj_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ibegin
+      LOGICAL(KIND=C_BOOL) :: tile_ibegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_jbegin
+      LOGICAL(KIND=C_BOOL) :: tile_jbegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ni
+      LOGICAL(KIND=C_BOOL) :: tile_ni_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_nj
+      LOGICAL(KIND=C_BOOL) :: tile_nj_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: type
       LOGICAL(KIND=C_BOOL) :: type_tmp
@@ -913,5 +1095,7 @@
       , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  &
       , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  &
-      , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type )
+      , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin  &
+      , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type  &
+       )
 
   END SUBROUTINE xios(is_defined_domaingroup_attr)
@@ -922,5 +1106,7 @@
     , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  &
     , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  &
-    , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type )
+    , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin  &
+    , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type  &
+     )
 
     IMPLICIT NONE
@@ -1000,4 +1186,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: nj_glo
       LOGICAL(KIND=C_BOOL) :: nj_glo_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: ntiles
+      LOGICAL(KIND=C_BOOL) :: ntiles_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: nvertex
       LOGICAL(KIND=C_BOOL) :: nvertex_tmp
@@ -1008,4 +1196,20 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name
       LOGICAL(KIND=C_BOOL) :: standard_name_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ibegin
+      LOGICAL(KIND=C_BOOL) :: tile_data_ibegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_jbegin
+      LOGICAL(KIND=C_BOOL) :: tile_data_jbegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ni
+      LOGICAL(KIND=C_BOOL) :: tile_data_ni_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_nj
+      LOGICAL(KIND=C_BOOL) :: tile_data_nj_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ibegin
+      LOGICAL(KIND=C_BOOL) :: tile_ibegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_jbegin
+      LOGICAL(KIND=C_BOOL) :: tile_jbegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ni
+      LOGICAL(KIND=C_BOOL) :: tile_ni_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_nj
+      LOGICAL(KIND=C_BOOL) :: tile_nj_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: type
       LOGICAL(KIND=C_BOOL) :: type_tmp
@@ -1016,5 +1220,7 @@
       , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  &
       , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  &
-      , name, ni, ni_glo, nj, nj_glo, nvertex, prec, radius, standard_name, type )
+      , name, ni, ni_glo, nj, nj_glo, ntiles, nvertex, prec, radius, standard_name, tile_data_ibegin  &
+      , tile_data_jbegin, tile_data_ni, tile_data_nj, tile_ibegin, tile_jbegin, tile_ni, tile_nj, type  &
+       )
 
   END SUBROUTINE xios(is_defined_domaingroup_attr_hdl)
@@ -1025,6 +1231,7 @@
     , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, group_ref_, i_index_, ibegin_, j_index_  &
     , jbegin_, lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_  &
-    , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, radius_, standard_name_  &
-    , type_ )
+    , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, ntiles_, nvertex_, prec_, radius_, standard_name_  &
+    , tile_data_ibegin_, tile_data_jbegin_, tile_data_ni_, tile_data_nj_, tile_ibegin_, tile_jbegin_  &
+    , tile_ni_, tile_nj_, type_ )
 
     IMPLICIT NONE
@@ -1104,4 +1311,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: nj_glo_
       LOGICAL(KIND=C_BOOL) :: nj_glo__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: ntiles_
+      LOGICAL(KIND=C_BOOL) :: ntiles__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: nvertex_
       LOGICAL(KIND=C_BOOL) :: nvertex__tmp
@@ -1112,4 +1321,20 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name_
       LOGICAL(KIND=C_BOOL) :: standard_name__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ibegin_
+      LOGICAL(KIND=C_BOOL) :: tile_data_ibegin__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_jbegin_
+      LOGICAL(KIND=C_BOOL) :: tile_data_jbegin__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_ni_
+      LOGICAL(KIND=C_BOOL) :: tile_data_ni__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_data_nj_
+      LOGICAL(KIND=C_BOOL) :: tile_data_nj__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ibegin_
+      LOGICAL(KIND=C_BOOL) :: tile_ibegin__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_jbegin_
+      LOGICAL(KIND=C_BOOL) :: tile_jbegin__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_ni_
+      LOGICAL(KIND=C_BOOL) :: tile_ni__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: tile_nj_
+      LOGICAL(KIND=C_BOOL) :: tile_nj__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: type_
       LOGICAL(KIND=C_BOOL) :: type__tmp
@@ -1337,4 +1562,10 @@
       ENDIF
 
+      IF (PRESENT(ntiles_)) THEN
+        ntiles__tmp = cxios_is_defined_domaingroup_ntiles &
+      (domaingroup_hdl%daddr)
+        ntiles_ = ntiles__tmp
+      ENDIF
+
       IF (PRESENT(nvertex_)) THEN
         nvertex__tmp = cxios_is_defined_domaingroup_nvertex &
@@ -1361,4 +1592,52 @@
       ENDIF
 
+      IF (PRESENT(tile_data_ibegin_)) THEN
+        tile_data_ibegin__tmp = cxios_is_defined_domaingroup_tile_data_ibegin &
+      (domaingroup_hdl%daddr)
+        tile_data_ibegin_ = tile_data_ibegin__tmp
+      ENDIF
+
+      IF (PRESENT(tile_data_jbegin_)) THEN
+        tile_data_jbegin__tmp = cxios_is_defined_domaingroup_tile_data_jbegin &
+      (domaingroup_hdl%daddr)
+        tile_data_jbegin_ = tile_data_jbegin__tmp
+      ENDIF
+
+      IF (PRESENT(tile_data_ni_)) THEN
+        tile_data_ni__tmp = cxios_is_defined_domaingroup_tile_data_ni &
+      (domaingroup_hdl%daddr)
+        tile_data_ni_ = tile_data_ni__tmp
+      ENDIF
+
+      IF (PRESENT(tile_data_nj_)) THEN
+        tile_data_nj__tmp = cxios_is_defined_domaingroup_tile_data_nj &
+      (domaingroup_hdl%daddr)
+        tile_data_nj_ = tile_data_nj__tmp
+      ENDIF
+
+      IF (PRESENT(tile_ibegin_)) THEN
+        tile_ibegin__tmp = cxios_is_defined_domaingroup_tile_ibegin &
+      (domaingroup_hdl%daddr)
+        tile_ibegin_ = tile_ibegin__tmp
+      ENDIF
+
+      IF (PRESENT(tile_jbegin_)) THEN
+        tile_jbegin__tmp = cxios_is_defined_domaingroup_tile_jbegin &
+      (domaingroup_hdl%daddr)
+        tile_jbegin_ = tile_jbegin__tmp
+      ENDIF
+
+      IF (PRESENT(tile_ni_)) THEN
+        tile_ni__tmp = cxios_is_defined_domaingroup_tile_ni &
+      (domaingroup_hdl%daddr)
+        tile_ni_ = tile_ni__tmp
+      ENDIF
+
+      IF (PRESENT(tile_nj_)) THEN
+        tile_nj__tmp = cxios_is_defined_domaingroup_tile_nj &
+      (domaingroup_hdl%daddr)
+        tile_nj_ = tile_nj__tmp
+      ENDIF
+
       IF (PRESENT(type_)) THEN
         type__tmp = cxios_is_defined_domaingroup_type &
