Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/config/domain_attribute_private.conf
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/config/domain_attribute_private.conf	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/config/domain_attribute_private.conf	(revision 2338)
@@ -10,8 +10,8 @@
 DECLARE_ATTRIBUTE_PRIVATE(double,  bounds_lat_end, false)
 
-DECLARE_ATTRIBUTE(bool             , hasLatInReadFile, false)
-DECLARE_ATTRIBUTE(bool             , hasLonInReadFile, false)
-DECLARE_ATTRIBUTE(bool             , hasBoundsLatInReadFile, false)
-DECLARE_ATTRIBUTE(bool             , hasBoundsLonInReadFile, false)
+DECLARE_ATTRIBUTE_PRIVATE(bool             , has_lat_in_read_file, false)
+DECLARE_ATTRIBUTE_PRIVATE(bool             , has_lon_in_read_file, false)
+DECLARE_ATTRIBUTE_PRIVATE(bool             , has_bounds_lat_in_read_file, false)
+DECLARE_ATTRIBUTE_PRIVATE(bool             , has_bounds_lon_in_read_file, false)
 //  Array contain whole value (non distributed) of longitude and latitude read from a file
 DECLARE_ARRAY_PRIVATE(double, 1, lonvalue_rectilinear_read_from_file, false)
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/generate_fortran_interface.cpp
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/generate_fortran_interface.cpp	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/generate_fortran_interface.cpp	(revision 2338)
@@ -259,4 +259,16 @@
   file.close();
 
+  file.open((path+"extract_domain_interface_attr.F90").c_str());
+  extractDomain.generateFortran2003Interface(file);
+  file.close();
+
+  file.open((path+"icextract_domain_attr.cpp").c_str());
+  extractDomain.generateCInterface(file);
+  file.close();
+
+  file.open((path+"iextract_domain_attr.F90").c_str());
+  extractDomain.generateFortranInterface(file);
+  file.close();
+
   file.open((path+"interpolate_domain_interface_attr.F90").c_str());
   interpolateDomain.generateFortran2003Interface(file);
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c/icextract_domain.cpp
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c/icextract_domain.cpp	(revision 2338)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c/icextract_domain.cpp	(revision 2338)
@@ -0,0 +1,51 @@
+/* ************************************************************************** *
+ *      Copyright Â© IPSL/LSCE, xios, Avril 2010 - Octobre 2011         *
+ * ************************************************************************** */
+
+#include <boost/multi_array.hpp>
+
+#include <memory>
+
+#include "xios.hpp"
+
+#include "object_template.hpp"
+#include "group_template.hpp"
+#include "attribute_template.hpp"
+
+#include "icutil.hpp"
+#include "timer.hpp"
+#include "extract_domain.hpp"
+
+extern "C"
+{
+// /////////////////////////////// DÃ©finitions ////////////////////////////// //
+
+   // ----------------------- RedÃ©finition de types ----------------------------
+
+   typedef xios::CExtractDomain   * XExtractDomainPtr;
+
+   // ------------------------ CrÃ©ation des handle -----------------------------
+   void cxios_extract_domain_handle_create(XExtractDomainPtr * _ret, const char * _id, int _id_len)
+   TRY
+   {
+      std::string id;
+      if (!cstr2string(_id, _id_len, id)) return;
+      CTimer::get("XIOS").resume() ;
+      *_ret = xios::CExtractDomain::get(id);
+      CTimer::get("XIOS").suspend() ;
+   }
+   CATCH_DUMP_STACK
+
+   // -------------------- VÃ©rification des identifiants -----------------------
+   void cxios_extract_domain_valid_id(bool * _ret, const char * _id, int _id_len)
+   TRY
+   {
+      std::string id;
+      if (!cstr2string(_id, _id_len, id)) return;
+
+      CTimer::get("XIOS").resume() ;
+      *_ret = xios::CExtractDomain::has(id);
+      CTimer::get("XIOS").suspend() ;
+   }
+   CATCH_DUMP_STACK
+} // extern "C"
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icextract_domain_attr.cpp
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icextract_domain_attr.cpp	(revision 2338)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icextract_domain_attr.cpp	(revision 2338)
@@ -0,0 +1,109 @@
+/* ************************************************************************** *
+ *               Interface auto generated - do not modify                     *
+ * ************************************************************************** */
+
+#include <boost/multi_array.hpp>
+#include "xios.hpp"
+#include "attribute_template.hpp"
+#include "object_template.hpp"
+#include "group_template.hpp"
+#include "icutil.hpp"
+#include "icdate.hpp"
+#include "timer.hpp"
+#include "node_type.hpp"
+
+extern "C"
+{
+  typedef xios::CExtractDomain* extract_domain_Ptr;
+
+  void cxios_set_extract_domain_ibegin(extract_domain_Ptr extract_domain_hdl, int ibegin)
+  {
+    CTimer::get("XIOS").resume();
+    extract_domain_hdl->ibegin.setValue(ibegin);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_extract_domain_ibegin(extract_domain_Ptr extract_domain_hdl, int* ibegin)
+  {
+    CTimer::get("XIOS").resume();
+    *ibegin = extract_domain_hdl->ibegin.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_extract_domain_ibegin(extract_domain_Ptr extract_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = extract_domain_hdl->ibegin.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_extract_domain_jbegin(extract_domain_Ptr extract_domain_hdl, int jbegin)
+  {
+    CTimer::get("XIOS").resume();
+    extract_domain_hdl->jbegin.setValue(jbegin);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_extract_domain_jbegin(extract_domain_Ptr extract_domain_hdl, int* jbegin)
+  {
+    CTimer::get("XIOS").resume();
+    *jbegin = extract_domain_hdl->jbegin.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_extract_domain_jbegin(extract_domain_Ptr extract_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = extract_domain_hdl->jbegin.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_extract_domain_ni(extract_domain_Ptr extract_domain_hdl, int ni)
+  {
+    CTimer::get("XIOS").resume();
+    extract_domain_hdl->ni.setValue(ni);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_extract_domain_ni(extract_domain_Ptr extract_domain_hdl, int* ni)
+  {
+    CTimer::get("XIOS").resume();
+    *ni = extract_domain_hdl->ni.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_extract_domain_ni(extract_domain_Ptr extract_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = extract_domain_hdl->ni.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_extract_domain_nj(extract_domain_Ptr extract_domain_hdl, int nj)
+  {
+    CTimer::get("XIOS").resume();
+    extract_domain_hdl->nj.setValue(nj);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_extract_domain_nj(extract_domain_Ptr extract_domain_hdl, int* nj)
+  {
+    CTimer::get("XIOS").resume();
+    *nj = extract_domain_hdl->nj.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_extract_domain_nj(extract_domain_Ptr extract_domain_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = extract_domain_hdl->nj.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+}
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icfield_attr.cpp
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icfield_attr.cpp	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icfield_attr.cpp	(revision 2338)
@@ -66,4 +66,27 @@
 
 
+  void cxios_set_field_build_workflow_graph(field_Ptr field_hdl, bool build_workflow_graph)
+  {
+    CTimer::get("XIOS").resume();
+    field_hdl->build_workflow_graph.setValue(build_workflow_graph);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_field_build_workflow_graph(field_Ptr field_hdl, bool* build_workflow_graph)
+  {
+    CTimer::get("XIOS").resume();
+    *build_workflow_graph = field_hdl->build_workflow_graph.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_field_build_workflow_graph(field_Ptr field_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = field_hdl->build_workflow_graph.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_field_cell_methods(field_Ptr field_hdl, const char * cell_methods, int cell_methods_size)
   {
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icfieldgroup_attr.cpp
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icfieldgroup_attr.cpp	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icfieldgroup_attr.cpp	(revision 2338)
@@ -66,4 +66,27 @@
 
 
+  void cxios_set_fieldgroup_build_workflow_graph(fieldgroup_Ptr fieldgroup_hdl, bool build_workflow_graph)
+  {
+    CTimer::get("XIOS").resume();
+    fieldgroup_hdl->build_workflow_graph.setValue(build_workflow_graph);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_fieldgroup_build_workflow_graph(fieldgroup_Ptr fieldgroup_hdl, bool* build_workflow_graph)
+  {
+    CTimer::get("XIOS").resume();
+    *build_workflow_graph = fieldgroup_hdl->build_workflow_graph.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_fieldgroup_build_workflow_graph(fieldgroup_Ptr fieldgroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = fieldgroup_hdl->build_workflow_graph.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_fieldgroup_cell_methods(fieldgroup_Ptr fieldgroup_hdl, const char * cell_methods, int cell_methods_size)
   {
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icinterpolate_axis_attr.cpp
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icinterpolate_axis_attr.cpp	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icinterpolate_axis_attr.cpp	(revision 2338)
@@ -38,4 +38,79 @@
      CTimer::get("XIOS").resume();
      bool isDefined = interpolate_axis_hdl->coordinate.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_interpolate_axis_coordinate_dst(interpolate_axis_Ptr interpolate_axis_hdl, const char * coordinate_dst, int coordinate_dst_size)
+  {
+    std::string coordinate_dst_str;
+    if (!cstr2string(coordinate_dst, coordinate_dst_size, coordinate_dst_str)) return;
+    CTimer::get("XIOS").resume();
+    interpolate_axis_hdl->coordinate_dst.setValue(coordinate_dst_str);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_interpolate_axis_coordinate_dst(interpolate_axis_Ptr interpolate_axis_hdl, char * coordinate_dst, int coordinate_dst_size)
+  {
+    CTimer::get("XIOS").resume();
+    if (!string_copy(interpolate_axis_hdl->coordinate_dst.getInheritedValue(), coordinate_dst, coordinate_dst_size))
+      ERROR("void cxios_get_interpolate_axis_coordinate_dst(interpolate_axis_Ptr interpolate_axis_hdl, char * coordinate_dst, int coordinate_dst_size)", << "Input string is too short");
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_interpolate_axis_coordinate_dst(interpolate_axis_Ptr interpolate_axis_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = interpolate_axis_hdl->coordinate_dst.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_interpolate_axis_coordinate_src(interpolate_axis_Ptr interpolate_axis_hdl, const char * coordinate_src, int coordinate_src_size)
+  {
+    std::string coordinate_src_str;
+    if (!cstr2string(coordinate_src, coordinate_src_size, coordinate_src_str)) return;
+    CTimer::get("XIOS").resume();
+    interpolate_axis_hdl->coordinate_src.setValue(coordinate_src_str);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_interpolate_axis_coordinate_src(interpolate_axis_Ptr interpolate_axis_hdl, char * coordinate_src, int coordinate_src_size)
+  {
+    CTimer::get("XIOS").resume();
+    if (!string_copy(interpolate_axis_hdl->coordinate_src.getInheritedValue(), coordinate_src, coordinate_src_size))
+      ERROR("void cxios_get_interpolate_axis_coordinate_src(interpolate_axis_Ptr interpolate_axis_hdl, char * coordinate_src, int coordinate_src_size)", << "Input string is too short");
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_interpolate_axis_coordinate_src(interpolate_axis_Ptr interpolate_axis_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = interpolate_axis_hdl->coordinate_src.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
+  void cxios_set_interpolate_axis_extrapolate(interpolate_axis_Ptr interpolate_axis_hdl, bool extrapolate)
+  {
+    CTimer::get("XIOS").resume();
+    interpolate_axis_hdl->extrapolate.setValue(extrapolate);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_interpolate_axis_extrapolate(interpolate_axis_Ptr interpolate_axis_hdl, bool* extrapolate)
+  {
+    CTimer::get("XIOS").resume();
+    *extrapolate = interpolate_axis_hdl->extrapolate.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_interpolate_axis_extrapolate(interpolate_axis_Ptr interpolate_axis_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = interpolate_axis_hdl->extrapolate.hasInheritedValue();
      CTimer::get("XIOS").suspend();
      return isDefined;
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icreduce_axis_to_scalar_attr.cpp
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icreduce_axis_to_scalar_attr.cpp	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icreduce_axis_to_scalar_attr.cpp	(revision 2338)
@@ -16,4 +16,27 @@
 {
   typedef xios::CReduceAxisToScalar* reduce_axis_to_scalar_Ptr;
+
+  void cxios_set_reduce_axis_to_scalar_local(reduce_axis_to_scalar_Ptr reduce_axis_to_scalar_hdl, bool local)
+  {
+    CTimer::get("XIOS").resume();
+    reduce_axis_to_scalar_hdl->local.setValue(local);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_reduce_axis_to_scalar_local(reduce_axis_to_scalar_Ptr reduce_axis_to_scalar_hdl, bool* local)
+  {
+    CTimer::get("XIOS").resume();
+    *local = reduce_axis_to_scalar_hdl->local.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_reduce_axis_to_scalar_local(reduce_axis_to_scalar_Ptr reduce_axis_to_scalar_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = reduce_axis_to_scalar_hdl->local.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
 
   void cxios_set_reduce_axis_to_scalar_operation(reduce_axis_to_scalar_Ptr reduce_axis_to_scalar_hdl, const char * operation, int operation_size)
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icscalar_attr.cpp
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icscalar_attr.cpp	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icscalar_attr.cpp	(revision 2338)
@@ -195,4 +195,27 @@
 
 
+  void cxios_set_scalar_n(scalar_Ptr scalar_hdl, int n)
+  {
+    CTimer::get("XIOS").resume();
+    scalar_hdl->n.setValue(n);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_scalar_n(scalar_Ptr scalar_hdl, int* n)
+  {
+    CTimer::get("XIOS").resume();
+    *n = scalar_hdl->n.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_scalar_n(scalar_Ptr scalar_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = scalar_hdl->n.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_scalar_name(scalar_Ptr scalar_hdl, const char * name, int name_size)
   {
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icscalargroup_attr.cpp
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icscalargroup_attr.cpp	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/c_attr/icscalargroup_attr.cpp	(revision 2338)
@@ -221,4 +221,27 @@
 
 
+  void cxios_set_scalargroup_n(scalargroup_Ptr scalargroup_hdl, int n)
+  {
+    CTimer::get("XIOS").resume();
+    scalargroup_hdl->n.setValue(n);
+    CTimer::get("XIOS").suspend();
+  }
+
+  void cxios_get_scalargroup_n(scalargroup_Ptr scalargroup_hdl, int* n)
+  {
+    CTimer::get("XIOS").resume();
+    *n = scalargroup_hdl->n.getInheritedValue();
+    CTimer::get("XIOS").suspend();
+  }
+
+  bool cxios_is_defined_scalargroup_n(scalargroup_Ptr scalargroup_hdl)
+  {
+     CTimer::get("XIOS").resume();
+     bool isDefined = scalargroup_hdl->n.hasInheritedValue();
+     CTimer::get("XIOS").suspend();
+     return isDefined;
+  }
+
+
   void cxios_set_scalargroup_name(scalargroup_Ptr scalargroup_hdl, const char * name, int name_size)
   {
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran/extract_domain_interface.f90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran/extract_domain_interface.f90	(revision 2338)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran/extract_domain_interface.f90	(revision 2338)
@@ -0,0 +1,22 @@
+MODULE EXTRACT_DOMAIN_INTERFACE
+   USE, INTRINSIC :: ISO_C_BINDING
+
+   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
+
+      SUBROUTINE cxios_extract_domain_handle_create(ret, idt, idt_size) BIND(C)
+         USE ISO_C_BINDING
+         INTEGER  (kind = C_INTPTR_T)               :: ret
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
+         INTEGER  (kind = C_INT)     , VALUE        :: idt_size
+      END SUBROUTINE cxios_extract_domain_handle_create
+
+      SUBROUTINE cxios_extract_domain_valid_id(ret, idt, idt_size) BIND(C)
+         USE ISO_C_BINDING
+         LOGICAL  (kind = C_BOOL)                   :: ret
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: idt
+         INTEGER  (kind = C_INT)     , VALUE        :: idt_size
+      END SUBROUTINE cxios_extract_domain_valid_id
+
+   END INTERFACE
+
+END MODULE EXTRACT_DOMAIN_INTERFACE
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran/iextract_domain.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran/iextract_domain.F90	(revision 2338)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran/iextract_domain.F90	(revision 2338)
@@ -0,0 +1,30 @@
+#include "xios_fortran_prefix.hpp"
+
+MODULE IEXTRACT_DOMAIN
+   USE, INTRINSIC :: ISO_C_BINDING
+   USE EXTRACT_DOMAIN_INTERFACE
+
+   TYPE txios(extract_domain)
+      INTEGER(kind = C_INTPTR_T) :: daddr
+   END TYPE txios(extract_domain)
+
+   CONTAINS ! Fonctions disponibles pour les utilisateurs.
+
+   SUBROUTINE xios(get_extract_domain_handle)(idt,ret)
+      IMPLICIT NONE
+      CHARACTER(len = *), INTENT(IN) :: idt
+      TYPE(txios(extract_domain)) , INTENT(OUT):: ret
+      CALL cxios_extract_domain_handle_create(ret%daddr, idt, len(idt))
+   END SUBROUTINE xios(get_extract_domain_handle)
+
+   LOGICAL FUNCTION xios(is_valid_extract_domain)(idt)
+      IMPLICIT NONE
+      CHARACTER(len  = *)    , INTENT(IN) :: idt
+      LOGICAL  (kind = 1)                 :: val
+
+      CALL cxios_extract_domain_valid_id(val, idt, len(idt))
+      xios(is_valid_extract_domain) = val
+
+   END FUNCTION  xios(is_valid_extract_domain)
+
+END MODULE IEXTRACT_DOMAIN
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran/ixios.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran/ixios.F90	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran/ixios.F90	(revision 2338)
@@ -79,4 +79,8 @@
 !-------------------------------------------------------------------------------
 !!! DOMAIN TRANSFORMATIONS
+USE iextract_domain, ONLY : txios(extract_domain), xios(is_valid_extract_domain)
+
+USE iextract_domain_attr, ONLY : xios(set_extract_domain_attr), xios(get_extract_domain_attr), xios(is_defined_extract_domain_attr)
+
 USE izoom_domain, ONLY : txios(zoom_domain), xios(is_valid_zoom_domain)
 
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/extract_domain_interface_attr.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/extract_domain_interface_attr.F90	(revision 2338)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/extract_domain_interface_attr.F90	(revision 2338)
@@ -0,0 +1,89 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "../fortran/xios_fortran_prefix.hpp"
+
+MODULE extract_domain_interface_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+
+  INTERFACE
+    ! Do not call directly / interface FORTRAN 2003 <-> C99
+
+    SUBROUTINE cxios_set_extract_domain_ibegin(extract_domain_hdl, ibegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: ibegin
+    END SUBROUTINE cxios_set_extract_domain_ibegin
+
+    SUBROUTINE cxios_get_extract_domain_ibegin(extract_domain_hdl, ibegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_domain_hdl
+      INTEGER (KIND=C_INT)             :: ibegin
+    END SUBROUTINE cxios_get_extract_domain_ibegin
+
+    FUNCTION cxios_is_defined_extract_domain_ibegin(extract_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_extract_domain_ibegin
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_domain_hdl
+    END FUNCTION cxios_is_defined_extract_domain_ibegin
+
+
+    SUBROUTINE cxios_set_extract_domain_jbegin(extract_domain_hdl, jbegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: jbegin
+    END SUBROUTINE cxios_set_extract_domain_jbegin
+
+    SUBROUTINE cxios_get_extract_domain_jbegin(extract_domain_hdl, jbegin) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_domain_hdl
+      INTEGER (KIND=C_INT)             :: jbegin
+    END SUBROUTINE cxios_get_extract_domain_jbegin
+
+    FUNCTION cxios_is_defined_extract_domain_jbegin(extract_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_extract_domain_jbegin
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_domain_hdl
+    END FUNCTION cxios_is_defined_extract_domain_jbegin
+
+
+    SUBROUTINE cxios_set_extract_domain_ni(extract_domain_hdl, ni) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: ni
+    END SUBROUTINE cxios_set_extract_domain_ni
+
+    SUBROUTINE cxios_get_extract_domain_ni(extract_domain_hdl, ni) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_domain_hdl
+      INTEGER (KIND=C_INT)             :: ni
+    END SUBROUTINE cxios_get_extract_domain_ni
+
+    FUNCTION cxios_is_defined_extract_domain_ni(extract_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_extract_domain_ni
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_domain_hdl
+    END FUNCTION cxios_is_defined_extract_domain_ni
+
+
+    SUBROUTINE cxios_set_extract_domain_nj(extract_domain_hdl, nj) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_domain_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: nj
+    END SUBROUTINE cxios_set_extract_domain_nj
+
+    SUBROUTINE cxios_get_extract_domain_nj(extract_domain_hdl, nj) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_domain_hdl
+      INTEGER (KIND=C_INT)             :: nj
+    END SUBROUTINE cxios_get_extract_domain_nj
+
+    FUNCTION cxios_is_defined_extract_domain_nj(extract_domain_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_extract_domain_nj
+      INTEGER (kind = C_INTPTR_T), VALUE :: extract_domain_hdl
+    END FUNCTION cxios_is_defined_extract_domain_nj
+
+  END INTERFACE
+
+END MODULE extract_domain_interface_attr
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/field_interface_attr.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/field_interface_attr.F90	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/field_interface_attr.F90	(revision 2338)
@@ -50,4 +50,23 @@
 
 
+    SUBROUTINE cxios_set_field_build_workflow_graph(field_hdl, build_workflow_graph) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      LOGICAL (KIND=C_BOOL)      , VALUE :: build_workflow_graph
+    END SUBROUTINE cxios_set_field_build_workflow_graph
+
+    SUBROUTINE cxios_get_field_build_workflow_graph(field_hdl, build_workflow_graph) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+      LOGICAL (KIND=C_BOOL)             :: build_workflow_graph
+    END SUBROUTINE cxios_get_field_build_workflow_graph
+
+    FUNCTION cxios_is_defined_field_build_workflow_graph(field_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_build_workflow_graph
+      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
+    END FUNCTION cxios_is_defined_field_build_workflow_graph
+
+
     SUBROUTINE cxios_set_field_cell_methods(field_hdl, cell_methods, cell_methods_size) BIND(C)
       USE ISO_C_BINDING
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/fieldgroup_interface_attr.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/fieldgroup_interface_attr.F90	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/fieldgroup_interface_attr.F90	(revision 2338)
@@ -50,4 +50,23 @@
 
 
+    SUBROUTINE cxios_set_fieldgroup_build_workflow_graph(fieldgroup_hdl, build_workflow_graph) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      LOGICAL (KIND=C_BOOL)      , VALUE :: build_workflow_graph
+    END SUBROUTINE cxios_set_fieldgroup_build_workflow_graph
+
+    SUBROUTINE cxios_get_fieldgroup_build_workflow_graph(fieldgroup_hdl, build_workflow_graph) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+      LOGICAL (KIND=C_BOOL)             :: build_workflow_graph
+    END SUBROUTINE cxios_get_fieldgroup_build_workflow_graph
+
+    FUNCTION cxios_is_defined_fieldgroup_build_workflow_graph(fieldgroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_build_workflow_graph
+      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl
+    END FUNCTION cxios_is_defined_fieldgroup_build_workflow_graph
+
+
     SUBROUTINE cxios_set_fieldgroup_cell_methods(fieldgroup_hdl, cell_methods, cell_methods_size) BIND(C)
       USE ISO_C_BINDING
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iextract_domain_attr.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iextract_domain_attr.F90	(revision 2338)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iextract_domain_attr.F90	(revision 2338)
@@ -0,0 +1,224 @@
+! * ************************************************************************** *
+! *               Interface auto generated - do not modify                     *
+! * ************************************************************************** *
+#include "xios_fortran_prefix.hpp"
+
+MODULE iextract_domain_attr
+  USE, INTRINSIC :: ISO_C_BINDING
+  USE iextract_domain
+  USE extract_domain_interface_attr
+
+CONTAINS
+
+  SUBROUTINE xios(set_extract_domain_attr)  &
+    ( extract_domain_id, ibegin, jbegin, ni, nj )
+
+    IMPLICIT NONE
+      TYPE(txios(extract_domain))  :: extract_domain_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::extract_domain_id
+      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj
+
+      CALL xios(get_extract_domain_handle) &
+      (extract_domain_id,extract_domain_hdl)
+      CALL xios(set_extract_domain_attr_hdl_)   &
+      ( extract_domain_hdl, ibegin, jbegin, ni, nj )
+
+  END SUBROUTINE xios(set_extract_domain_attr)
+
+  SUBROUTINE xios(set_extract_domain_attr_hdl)  &
+    ( extract_domain_hdl, ibegin, jbegin, ni, nj )
+
+    IMPLICIT NONE
+      TYPE(txios(extract_domain)) , INTENT(IN) :: extract_domain_hdl
+      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj
+
+      CALL xios(set_extract_domain_attr_hdl_)  &
+      ( extract_domain_hdl, ibegin, jbegin, ni, nj )
+
+  END SUBROUTINE xios(set_extract_domain_attr_hdl)
+
+  SUBROUTINE xios(set_extract_domain_attr_hdl_)   &
+    ( extract_domain_hdl, ibegin_, jbegin_, ni_, nj_ )
+
+    IMPLICIT NONE
+      TYPE(txios(extract_domain)) , INTENT(IN) :: extract_domain_hdl
+      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin_
+      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin_
+      INTEGER  , OPTIONAL, INTENT(IN) :: ni_
+      INTEGER  , OPTIONAL, INTENT(IN) :: nj_
+
+      IF (PRESENT(ibegin_)) THEN
+        CALL cxios_set_extract_domain_ibegin &
+      (extract_domain_hdl%daddr, ibegin_)
+      ENDIF
+
+      IF (PRESENT(jbegin_)) THEN
+        CALL cxios_set_extract_domain_jbegin &
+      (extract_domain_hdl%daddr, jbegin_)
+      ENDIF
+
+      IF (PRESENT(ni_)) THEN
+        CALL cxios_set_extract_domain_ni &
+      (extract_domain_hdl%daddr, ni_)
+      ENDIF
+
+      IF (PRESENT(nj_)) THEN
+        CALL cxios_set_extract_domain_nj &
+      (extract_domain_hdl%daddr, nj_)
+      ENDIF
+
+  END SUBROUTINE xios(set_extract_domain_attr_hdl_)
+
+  SUBROUTINE xios(get_extract_domain_attr)  &
+    ( extract_domain_id, ibegin, jbegin, ni, nj )
+
+    IMPLICIT NONE
+      TYPE(txios(extract_domain))  :: extract_domain_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::extract_domain_id
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj
+
+      CALL xios(get_extract_domain_handle) &
+      (extract_domain_id,extract_domain_hdl)
+      CALL xios(get_extract_domain_attr_hdl_)   &
+      ( extract_domain_hdl, ibegin, jbegin, ni, nj )
+
+  END SUBROUTINE xios(get_extract_domain_attr)
+
+  SUBROUTINE xios(get_extract_domain_attr_hdl)  &
+    ( extract_domain_hdl, ibegin, jbegin, ni, nj )
+
+    IMPLICIT NONE
+      TYPE(txios(extract_domain)) , INTENT(IN) :: extract_domain_hdl
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj
+
+      CALL xios(get_extract_domain_attr_hdl_)  &
+      ( extract_domain_hdl, ibegin, jbegin, ni, nj )
+
+  END SUBROUTINE xios(get_extract_domain_attr_hdl)
+
+  SUBROUTINE xios(get_extract_domain_attr_hdl_)   &
+    ( extract_domain_hdl, ibegin_, jbegin_, ni_, nj_ )
+
+    IMPLICIT NONE
+      TYPE(txios(extract_domain)) , INTENT(IN) :: extract_domain_hdl
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ibegin_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: ni_
+      INTEGER  , OPTIONAL, INTENT(OUT) :: nj_
+
+      IF (PRESENT(ibegin_)) THEN
+        CALL cxios_get_extract_domain_ibegin &
+      (extract_domain_hdl%daddr, ibegin_)
+      ENDIF
+
+      IF (PRESENT(jbegin_)) THEN
+        CALL cxios_get_extract_domain_jbegin &
+      (extract_domain_hdl%daddr, jbegin_)
+      ENDIF
+
+      IF (PRESENT(ni_)) THEN
+        CALL cxios_get_extract_domain_ni &
+      (extract_domain_hdl%daddr, ni_)
+      ENDIF
+
+      IF (PRESENT(nj_)) THEN
+        CALL cxios_get_extract_domain_nj &
+      (extract_domain_hdl%daddr, nj_)
+      ENDIF
+
+  END SUBROUTINE xios(get_extract_domain_attr_hdl_)
+
+  SUBROUTINE xios(is_defined_extract_domain_attr)  &
+    ( extract_domain_id, ibegin, jbegin, ni, nj )
+
+    IMPLICIT NONE
+      TYPE(txios(extract_domain))  :: extract_domain_hdl
+      CHARACTER(LEN=*), INTENT(IN) ::extract_domain_id
+      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin
+      LOGICAL(KIND=C_BOOL) :: ibegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin
+      LOGICAL(KIND=C_BOOL) :: jbegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: ni
+      LOGICAL(KIND=C_BOOL) :: ni_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: nj
+      LOGICAL(KIND=C_BOOL) :: nj_tmp
+
+      CALL xios(get_extract_domain_handle) &
+      (extract_domain_id,extract_domain_hdl)
+      CALL xios(is_defined_extract_domain_attr_hdl_)   &
+      ( extract_domain_hdl, ibegin, jbegin, ni, nj )
+
+  END SUBROUTINE xios(is_defined_extract_domain_attr)
+
+  SUBROUTINE xios(is_defined_extract_domain_attr_hdl)  &
+    ( extract_domain_hdl, ibegin, jbegin, ni, nj )
+
+    IMPLICIT NONE
+      TYPE(txios(extract_domain)) , INTENT(IN) :: extract_domain_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin
+      LOGICAL(KIND=C_BOOL) :: ibegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin
+      LOGICAL(KIND=C_BOOL) :: jbegin_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: ni
+      LOGICAL(KIND=C_BOOL) :: ni_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: nj
+      LOGICAL(KIND=C_BOOL) :: nj_tmp
+
+      CALL xios(is_defined_extract_domain_attr_hdl_)  &
+      ( extract_domain_hdl, ibegin, jbegin, ni, nj )
+
+  END SUBROUTINE xios(is_defined_extract_domain_attr_hdl)
+
+  SUBROUTINE xios(is_defined_extract_domain_attr_hdl_)   &
+    ( extract_domain_hdl, ibegin_, jbegin_, ni_, nj_ )
+
+    IMPLICIT NONE
+      TYPE(txios(extract_domain)) , INTENT(IN) :: extract_domain_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin_
+      LOGICAL(KIND=C_BOOL) :: ibegin__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin_
+      LOGICAL(KIND=C_BOOL) :: jbegin__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: ni_
+      LOGICAL(KIND=C_BOOL) :: ni__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: nj_
+      LOGICAL(KIND=C_BOOL) :: nj__tmp
+
+      IF (PRESENT(ibegin_)) THEN
+        ibegin__tmp = cxios_is_defined_extract_domain_ibegin &
+      (extract_domain_hdl%daddr)
+        ibegin_ = ibegin__tmp
+      ENDIF
+
+      IF (PRESENT(jbegin_)) THEN
+        jbegin__tmp = cxios_is_defined_extract_domain_jbegin &
+      (extract_domain_hdl%daddr)
+        jbegin_ = jbegin__tmp
+      ENDIF
+
+      IF (PRESENT(ni_)) THEN
+        ni__tmp = cxios_is_defined_extract_domain_ni &
+      (extract_domain_hdl%daddr)
+        ni_ = ni__tmp
+      ENDIF
+
+      IF (PRESENT(nj_)) THEN
+        nj__tmp = cxios_is_defined_extract_domain_nj &
+      (extract_domain_hdl%daddr)
+        nj_ = nj__tmp
+      ENDIF
+
+  END SUBROUTINE xios(is_defined_extract_domain_attr_hdl_)
+
+END MODULE iextract_domain_attr
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/ifield_attr.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/ifield_attr.F90	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/ifield_attr.F90	(revision 2338)
@@ -12,9 +12,9 @@
 
   SUBROUTINE xios(set_field_attr)  &
-    ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-    , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  &
-    , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  &
-    , valid_max, valid_min )
+    ( field_id, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
+    , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
+    , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
+    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
+    , unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -23,4 +23,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      LOGICAL  , OPTIONAL, INTENT(IN) :: build_workflow_graph
+      LOGICAL (KIND=C_BOOL) :: build_workflow_graph_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode
@@ -63,18 +65,18 @@
       (field_id,field_hdl)
       CALL xios(set_field_attr_hdl_)   &
-      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-      , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  &
-      , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  &
-      , valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
+      , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
+      , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
+      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
+      , unit, valid_max, valid_min )
 
   END SUBROUTINE xios(set_field_attr)
 
   SUBROUTINE xios(set_field_attr_hdl)  &
-    ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-    , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  &
-    , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  &
-    , valid_max, valid_min )
+    ( field_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
+    , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
+    , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
+    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
+    , unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -82,4 +84,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      LOGICAL  , OPTIONAL, INTENT(IN) :: build_workflow_graph
+      LOGICAL (KIND=C_BOOL) :: build_workflow_graph_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode
@@ -120,18 +124,18 @@
 
       CALL xios(set_field_attr_hdl_)  &
-      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-      , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  &
-      , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  &
-      , valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
+      , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
+      , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
+      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
+      , unit, valid_max, valid_min )
 
   END SUBROUTINE xios(set_field_attr_hdl)
 
   SUBROUTINE xios(set_field_attr_hdl_)   &
-    ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, comment_  &
-    , compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_  &
-    , freq_offset_, freq_op_, grid_path_, grid_ref_, indexed_output_, level_, long_name_, name_  &
-    , operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_  &
-    , unit_, valid_max_, valid_min_ )
+    ( field_hdl, add_offset_, axis_ref_, build_workflow_graph_, cell_methods_, cell_methods_mode_  &
+    , check_if_active_, comment_, compression_level_, default_value_, detect_missing_value_, domain_ref_  &
+    , enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, indexed_output_  &
+    , level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_  &
+    , ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ )
 
     IMPLICIT NONE
@@ -139,4 +143,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_
+      LOGICAL  , OPTIONAL, INTENT(IN) :: build_workflow_graph_
+      LOGICAL (KIND=C_BOOL) :: build_workflow_graph__tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode_
@@ -186,4 +192,10 @@
       ENDIF
 
+      IF (PRESENT(build_workflow_graph_)) THEN
+        build_workflow_graph__tmp = build_workflow_graph_
+        CALL cxios_set_field_build_workflow_graph &
+      (field_hdl%daddr, build_workflow_graph__tmp)
+      ENDIF
+
       IF (PRESENT(cell_methods_)) THEN
         CALL cxios_set_field_cell_methods &
@@ -345,9 +357,9 @@
 
   SUBROUTINE xios(get_field_attr)  &
-    ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-    , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  &
-    , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  &
-    , valid_max, valid_min )
+    ( field_id, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
+    , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
+    , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
+    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
+    , unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -356,4 +368,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: build_workflow_graph
+      LOGICAL (KIND=C_BOOL) :: build_workflow_graph_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode
@@ -396,18 +410,18 @@
       (field_id,field_hdl)
       CALL xios(get_field_attr_hdl_)   &
-      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-      , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  &
-      , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  &
-      , valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
+      , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
+      , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
+      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
+      , unit, valid_max, valid_min )
 
   END SUBROUTINE xios(get_field_attr)
 
   SUBROUTINE xios(get_field_attr_hdl)  &
-    ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-    , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  &
-    , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  &
-    , valid_max, valid_min )
+    ( field_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
+    , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
+    , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
+    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
+    , unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -415,4 +429,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: build_workflow_graph
+      LOGICAL (KIND=C_BOOL) :: build_workflow_graph_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode
@@ -453,18 +469,18 @@
 
       CALL xios(get_field_attr_hdl_)  &
-      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-      , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  &
-      , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  &
-      , valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
+      , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
+      , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
+      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
+      , unit, valid_max, valid_min )
 
   END SUBROUTINE xios(get_field_attr_hdl)
 
   SUBROUTINE xios(get_field_attr_hdl_)   &
-    ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, comment_  &
-    , compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_  &
-    , freq_offset_, freq_op_, grid_path_, grid_ref_, indexed_output_, level_, long_name_, name_  &
-    , operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_  &
-    , unit_, valid_max_, valid_min_ )
+    ( field_hdl, add_offset_, axis_ref_, build_workflow_graph_, cell_methods_, cell_methods_mode_  &
+    , check_if_active_, comment_, compression_level_, default_value_, detect_missing_value_, domain_ref_  &
+    , enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, indexed_output_  &
+    , level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_  &
+    , ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ )
 
     IMPLICIT NONE
@@ -472,4 +488,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: build_workflow_graph_
+      LOGICAL (KIND=C_BOOL) :: build_workflow_graph__tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode_
@@ -519,4 +537,10 @@
       ENDIF
 
+      IF (PRESENT(build_workflow_graph_)) THEN
+        CALL cxios_get_field_build_workflow_graph &
+      (field_hdl%daddr, build_workflow_graph__tmp)
+        build_workflow_graph_ = build_workflow_graph__tmp
+      ENDIF
+
       IF (PRESENT(cell_methods_)) THEN
         CALL cxios_get_field_cell_methods &
@@ -678,9 +702,9 @@
 
   SUBROUTINE xios(is_defined_field_attr)  &
-    ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-    , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  &
-    , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  &
-    , valid_max, valid_min )
+    ( field_id, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
+    , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
+    , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
+    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
+    , unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -691,4 +715,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref
       LOGICAL(KIND=C_BOOL) :: axis_ref_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: build_workflow_graph
+      LOGICAL(KIND=C_BOOL) :: build_workflow_graph_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods
       LOGICAL(KIND=C_BOOL) :: cell_methods_tmp
@@ -755,18 +781,18 @@
       (field_id,field_hdl)
       CALL xios(is_defined_field_attr_hdl_)   &
-      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-      , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  &
-      , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  &
-      , valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
+      , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
+      , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
+      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
+      , unit, valid_max, valid_min )
 
   END SUBROUTINE xios(is_defined_field_attr)
 
   SUBROUTINE xios(is_defined_field_attr_hdl)  &
-    ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-    , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  &
-    , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  &
-    , valid_max, valid_min )
+    ( field_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
+    , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
+    , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
+    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
+    , unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -776,4 +802,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref
       LOGICAL(KIND=C_BOOL) :: axis_ref_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: build_workflow_graph
+      LOGICAL(KIND=C_BOOL) :: build_workflow_graph_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods
       LOGICAL(KIND=C_BOOL) :: cell_methods_tmp
@@ -838,18 +866,18 @@
 
       CALL xios(is_defined_field_attr_hdl_)  &
-      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-      , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  &
-      , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  &
-      , valid_max, valid_min )
+      ( field_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
+      , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
+      , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
+      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
+      , unit, valid_max, valid_min )
 
   END SUBROUTINE xios(is_defined_field_attr_hdl)
 
   SUBROUTINE xios(is_defined_field_attr_hdl_)   &
-    ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, comment_  &
-    , compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_  &
-    , freq_offset_, freq_op_, grid_path_, grid_ref_, indexed_output_, level_, long_name_, name_  &
-    , operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_  &
-    , unit_, valid_max_, valid_min_ )
+    ( field_hdl, add_offset_, axis_ref_, build_workflow_graph_, cell_methods_, cell_methods_mode_  &
+    , check_if_active_, comment_, compression_level_, default_value_, detect_missing_value_, domain_ref_  &
+    , enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, indexed_output_  &
+    , level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_  &
+    , ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ )
 
     IMPLICIT NONE
@@ -859,4 +887,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref_
       LOGICAL(KIND=C_BOOL) :: axis_ref__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: build_workflow_graph_
+      LOGICAL(KIND=C_BOOL) :: build_workflow_graph__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_
       LOGICAL(KIND=C_BOOL) :: cell_methods__tmp
@@ -932,4 +962,10 @@
       ENDIF
 
+      IF (PRESENT(build_workflow_graph_)) THEN
+        build_workflow_graph__tmp = cxios_is_defined_field_build_workflow_graph &
+      (field_hdl%daddr)
+        build_workflow_graph_ = build_workflow_graph__tmp
+      ENDIF
+
       IF (PRESENT(cell_methods_)) THEN
         cell_methods__tmp = cxios_is_defined_field_cell_methods &
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/ifieldgroup_attr.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/ifieldgroup_attr.F90	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/ifieldgroup_attr.F90	(revision 2338)
@@ -12,9 +12,9 @@
 
   SUBROUTINE xios(set_fieldgroup_attr)  &
-    ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-    , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  &
-    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-    , unit, valid_max, valid_min )
+    ( fieldgroup_id, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode  &
+    , check_if_active, comment, compression_level, default_value, detect_missing_value, domain_ref  &
+    , enabled, expr, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
+    , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
+    , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -23,4 +23,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      LOGICAL  , OPTIONAL, INTENT(IN) :: build_workflow_graph
+      LOGICAL (KIND=C_BOOL) :: build_workflow_graph_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode
@@ -64,18 +66,18 @@
       (fieldgroup_id,fieldgroup_hdl)
       CALL xios(set_fieldgroup_attr_hdl_)   &
-      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-      , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  &
-      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-      , unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode  &
+      , check_if_active, comment, compression_level, default_value, detect_missing_value, domain_ref  &
+      , enabled, expr, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
+      , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
+      , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(set_fieldgroup_attr)
 
   SUBROUTINE xios(set_fieldgroup_attr_hdl)  &
-    ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-    , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  &
-    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-    , unit, valid_max, valid_min )
+    ( fieldgroup_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode  &
+    , check_if_active, comment, compression_level, default_value, detect_missing_value, domain_ref  &
+    , enabled, expr, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
+    , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
+    , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -83,4 +85,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
+      LOGICAL  , OPTIONAL, INTENT(IN) :: build_workflow_graph
+      LOGICAL (KIND=C_BOOL) :: build_workflow_graph_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode
@@ -122,16 +126,16 @@
 
       CALL xios(set_fieldgroup_attr_hdl_)  &
-      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-      , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  &
-      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-      , unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode  &
+      , check_if_active, comment, compression_level, default_value, detect_missing_value, domain_ref  &
+      , enabled, expr, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
+      , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
+      , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(set_fieldgroup_attr_hdl)
 
   SUBROUTINE xios(set_fieldgroup_attr_hdl_)   &
-    ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_  &
-    , comment_, compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_  &
-    , expr_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_  &
+    ( fieldgroup_hdl, add_offset_, axis_ref_, build_workflow_graph_, cell_methods_, cell_methods_mode_  &
+    , check_if_active_, comment_, compression_level_, default_value_, detect_missing_value_, domain_ref_  &
+    , enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_  &
     , level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_  &
     , ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ )
@@ -141,4 +145,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_
+      LOGICAL  , OPTIONAL, INTENT(IN) :: build_workflow_graph_
+      LOGICAL (KIND=C_BOOL) :: build_workflow_graph__tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode_
@@ -189,4 +195,10 @@
       ENDIF
 
+      IF (PRESENT(build_workflow_graph_)) THEN
+        build_workflow_graph__tmp = build_workflow_graph_
+        CALL cxios_set_fieldgroup_build_workflow_graph &
+      (fieldgroup_hdl%daddr, build_workflow_graph__tmp)
+      ENDIF
+
       IF (PRESENT(cell_methods_)) THEN
         CALL cxios_set_fieldgroup_cell_methods &
@@ -353,9 +365,9 @@
 
   SUBROUTINE xios(get_fieldgroup_attr)  &
-    ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-    , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  &
-    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-    , unit, valid_max, valid_min )
+    ( fieldgroup_id, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode  &
+    , check_if_active, comment, compression_level, default_value, detect_missing_value, domain_ref  &
+    , enabled, expr, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
+    , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
+    , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -364,4 +376,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: build_workflow_graph
+      LOGICAL (KIND=C_BOOL) :: build_workflow_graph_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode
@@ -405,18 +419,18 @@
       (fieldgroup_id,fieldgroup_hdl)
       CALL xios(get_fieldgroup_attr_hdl_)   &
-      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-      , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  &
-      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-      , unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode  &
+      , check_if_active, comment, compression_level, default_value, detect_missing_value, domain_ref  &
+      , enabled, expr, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
+      , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
+      , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(get_fieldgroup_attr)
 
   SUBROUTINE xios(get_fieldgroup_attr_hdl)  &
-    ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-    , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  &
-    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-    , unit, valid_max, valid_min )
+    ( fieldgroup_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode  &
+    , check_if_active, comment, compression_level, default_value, detect_missing_value, domain_ref  &
+    , enabled, expr, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
+    , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
+    , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -424,4 +438,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: build_workflow_graph
+      LOGICAL (KIND=C_BOOL) :: build_workflow_graph_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode
@@ -463,16 +479,16 @@
 
       CALL xios(get_fieldgroup_attr_hdl_)  &
-      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-      , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  &
-      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-      , unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode  &
+      , check_if_active, comment, compression_level, default_value, detect_missing_value, domain_ref  &
+      , enabled, expr, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
+      , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
+      , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(get_fieldgroup_attr_hdl)
 
   SUBROUTINE xios(get_fieldgroup_attr_hdl_)   &
-    ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_  &
-    , comment_, compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_  &
-    , expr_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_  &
+    ( fieldgroup_hdl, add_offset_, axis_ref_, build_workflow_graph_, cell_methods_, cell_methods_mode_  &
+    , check_if_active_, comment_, compression_level_, default_value_, detect_missing_value_, domain_ref_  &
+    , enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_  &
     , level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_  &
     , ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ )
@@ -482,4 +498,6 @@
       REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: build_workflow_graph_
+      LOGICAL (KIND=C_BOOL) :: build_workflow_graph__tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode_
@@ -530,4 +548,10 @@
       ENDIF
 
+      IF (PRESENT(build_workflow_graph_)) THEN
+        CALL cxios_get_fieldgroup_build_workflow_graph &
+      (fieldgroup_hdl%daddr, build_workflow_graph__tmp)
+        build_workflow_graph_ = build_workflow_graph__tmp
+      ENDIF
+
       IF (PRESENT(cell_methods_)) THEN
         CALL cxios_get_fieldgroup_cell_methods &
@@ -694,9 +718,9 @@
 
   SUBROUTINE xios(is_defined_fieldgroup_attr)  &
-    ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-    , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  &
-    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-    , unit, valid_max, valid_min )
+    ( fieldgroup_id, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode  &
+    , check_if_active, comment, compression_level, default_value, detect_missing_value, domain_ref  &
+    , enabled, expr, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
+    , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
+    , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -707,4 +731,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref
       LOGICAL(KIND=C_BOOL) :: axis_ref_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: build_workflow_graph
+      LOGICAL(KIND=C_BOOL) :: build_workflow_graph_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods
       LOGICAL(KIND=C_BOOL) :: cell_methods_tmp
@@ -773,18 +799,18 @@
       (fieldgroup_id,fieldgroup_hdl)
       CALL xios(is_defined_fieldgroup_attr_hdl_)   &
-      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-      , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  &
-      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-      , unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode  &
+      , check_if_active, comment, compression_level, default_value, detect_missing_value, domain_ref  &
+      , enabled, expr, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
+      , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
+      , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(is_defined_fieldgroup_attr)
 
   SUBROUTINE xios(is_defined_fieldgroup_attr_hdl)  &
-    ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-    , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  &
-    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-    , unit, valid_max, valid_min )
+    ( fieldgroup_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode  &
+    , check_if_active, comment, compression_level, default_value, detect_missing_value, domain_ref  &
+    , enabled, expr, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
+    , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
+    , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
     IMPLICIT NONE
@@ -794,4 +820,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref
       LOGICAL(KIND=C_BOOL) :: axis_ref_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: build_workflow_graph
+      LOGICAL(KIND=C_BOOL) :: build_workflow_graph_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods
       LOGICAL(KIND=C_BOOL) :: cell_methods_tmp
@@ -858,16 +886,16 @@
 
       CALL xios(is_defined_fieldgroup_attr_hdl_)  &
-      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  &
-      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  &
-      , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  &
-      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
-      , unit, valid_max, valid_min )
+      ( fieldgroup_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode  &
+      , check_if_active, comment, compression_level, default_value, detect_missing_value, domain_ref  &
+      , enabled, expr, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
+      , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
+      , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
 
   END SUBROUTINE xios(is_defined_fieldgroup_attr_hdl)
 
   SUBROUTINE xios(is_defined_fieldgroup_attr_hdl_)   &
-    ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_  &
-    , comment_, compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_  &
-    , expr_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_  &
+    ( fieldgroup_hdl, add_offset_, axis_ref_, build_workflow_graph_, cell_methods_, cell_methods_mode_  &
+    , check_if_active_, comment_, compression_level_, default_value_, detect_missing_value_, domain_ref_  &
+    , enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_  &
     , level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_  &
     , ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ )
@@ -879,4 +907,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref_
       LOGICAL(KIND=C_BOOL) :: axis_ref__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: build_workflow_graph_
+      LOGICAL(KIND=C_BOOL) :: build_workflow_graph__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_
       LOGICAL(KIND=C_BOOL) :: cell_methods__tmp
@@ -954,4 +984,10 @@
       ENDIF
 
+      IF (PRESENT(build_workflow_graph_)) THEN
+        build_workflow_graph__tmp = cxios_is_defined_fieldgroup_build_workflow_graph &
+      (fieldgroup_hdl%daddr)
+        build_workflow_graph_ = build_workflow_graph__tmp
+      ENDIF
+
       IF (PRESENT(cell_methods_)) THEN
         cell_methods__tmp = cxios_is_defined_fieldgroup_cell_methods &
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iinterpolate_axis_attr.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iinterpolate_axis_attr.F90	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iinterpolate_axis_attr.F90	(revision 2338)
@@ -12,5 +12,6 @@
 
   SUBROUTINE xios(set_interpolate_axis_attr)  &
-    ( interpolate_axis_id, coordinate, order, type )
+    ( interpolate_axis_id, coordinate, coordinate_dst, coordinate_src, extrapolate, order, type  &
+     )
 
     IMPLICIT NONE
@@ -18,4 +19,8 @@
       CHARACTER(LEN=*), INTENT(IN) ::interpolate_axis_id
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: coordinate
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: coordinate_dst
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: coordinate_src
+      LOGICAL  , OPTIONAL, INTENT(IN) :: extrapolate
+      LOGICAL (KIND=C_BOOL) :: extrapolate_tmp
       INTEGER  , OPTIONAL, INTENT(IN) :: order
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
@@ -24,28 +29,40 @@
       (interpolate_axis_id,interpolate_axis_hdl)
       CALL xios(set_interpolate_axis_attr_hdl_)   &
-      ( interpolate_axis_hdl, coordinate, order, type )
+      ( interpolate_axis_hdl, coordinate, coordinate_dst, coordinate_src, extrapolate, order, type  &
+       )
 
   END SUBROUTINE xios(set_interpolate_axis_attr)
 
   SUBROUTINE xios(set_interpolate_axis_attr_hdl)  &
-    ( interpolate_axis_hdl, coordinate, order, type )
+    ( interpolate_axis_hdl, coordinate, coordinate_dst, coordinate_src, extrapolate, order, type  &
+     )
 
     IMPLICIT NONE
       TYPE(txios(interpolate_axis)) , INTENT(IN) :: interpolate_axis_hdl
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: coordinate
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: coordinate_dst
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: coordinate_src
+      LOGICAL  , OPTIONAL, INTENT(IN) :: extrapolate
+      LOGICAL (KIND=C_BOOL) :: extrapolate_tmp
       INTEGER  , OPTIONAL, INTENT(IN) :: order
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
 
       CALL xios(set_interpolate_axis_attr_hdl_)  &
-      ( interpolate_axis_hdl, coordinate, order, type )
+      ( interpolate_axis_hdl, coordinate, coordinate_dst, coordinate_src, extrapolate, order, type  &
+       )
 
   END SUBROUTINE xios(set_interpolate_axis_attr_hdl)
 
   SUBROUTINE xios(set_interpolate_axis_attr_hdl_)   &
-    ( interpolate_axis_hdl, coordinate_, order_, type_ )
+    ( interpolate_axis_hdl, coordinate_, coordinate_dst_, coordinate_src_, extrapolate_, order_  &
+    , type_ )
 
     IMPLICIT NONE
       TYPE(txios(interpolate_axis)) , INTENT(IN) :: interpolate_axis_hdl
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: coordinate_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: coordinate_dst_
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: coordinate_src_
+      LOGICAL  , OPTIONAL, INTENT(IN) :: extrapolate_
+      LOGICAL (KIND=C_BOOL) :: extrapolate__tmp
       INTEGER  , OPTIONAL, INTENT(IN) :: order_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_
@@ -56,4 +73,20 @@
       ENDIF
 
+      IF (PRESENT(coordinate_dst_)) THEN
+        CALL cxios_set_interpolate_axis_coordinate_dst &
+      (interpolate_axis_hdl%daddr, coordinate_dst_, len(coordinate_dst_))
+      ENDIF
+
+      IF (PRESENT(coordinate_src_)) THEN
+        CALL cxios_set_interpolate_axis_coordinate_src &
+      (interpolate_axis_hdl%daddr, coordinate_src_, len(coordinate_src_))
+      ENDIF
+
+      IF (PRESENT(extrapolate_)) THEN
+        extrapolate__tmp = extrapolate_
+        CALL cxios_set_interpolate_axis_extrapolate &
+      (interpolate_axis_hdl%daddr, extrapolate__tmp)
+      ENDIF
+
       IF (PRESENT(order_)) THEN
         CALL cxios_set_interpolate_axis_order &
@@ -69,5 +102,6 @@
 
   SUBROUTINE xios(get_interpolate_axis_attr)  &
-    ( interpolate_axis_id, coordinate, order, type )
+    ( interpolate_axis_id, coordinate, coordinate_dst, coordinate_src, extrapolate, order, type  &
+     )
 
     IMPLICIT NONE
@@ -75,4 +109,8 @@
       CHARACTER(LEN=*), INTENT(IN) ::interpolate_axis_id
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: coordinate
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: coordinate_dst
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: coordinate_src
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: extrapolate
+      LOGICAL (KIND=C_BOOL) :: extrapolate_tmp
       INTEGER  , OPTIONAL, INTENT(OUT) :: order
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
@@ -81,28 +119,40 @@
       (interpolate_axis_id,interpolate_axis_hdl)
       CALL xios(get_interpolate_axis_attr_hdl_)   &
-      ( interpolate_axis_hdl, coordinate, order, type )
+      ( interpolate_axis_hdl, coordinate, coordinate_dst, coordinate_src, extrapolate, order, type  &
+       )
 
   END SUBROUTINE xios(get_interpolate_axis_attr)
 
   SUBROUTINE xios(get_interpolate_axis_attr_hdl)  &
-    ( interpolate_axis_hdl, coordinate, order, type )
+    ( interpolate_axis_hdl, coordinate, coordinate_dst, coordinate_src, extrapolate, order, type  &
+     )
 
     IMPLICIT NONE
       TYPE(txios(interpolate_axis)) , INTENT(IN) :: interpolate_axis_hdl
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: coordinate
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: coordinate_dst
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: coordinate_src
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: extrapolate
+      LOGICAL (KIND=C_BOOL) :: extrapolate_tmp
       INTEGER  , OPTIONAL, INTENT(OUT) :: order
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type
 
       CALL xios(get_interpolate_axis_attr_hdl_)  &
-      ( interpolate_axis_hdl, coordinate, order, type )
+      ( interpolate_axis_hdl, coordinate, coordinate_dst, coordinate_src, extrapolate, order, type  &
+       )
 
   END SUBROUTINE xios(get_interpolate_axis_attr_hdl)
 
   SUBROUTINE xios(get_interpolate_axis_attr_hdl_)   &
-    ( interpolate_axis_hdl, coordinate_, order_, type_ )
+    ( interpolate_axis_hdl, coordinate_, coordinate_dst_, coordinate_src_, extrapolate_, order_  &
+    , type_ )
 
     IMPLICIT NONE
       TYPE(txios(interpolate_axis)) , INTENT(IN) :: interpolate_axis_hdl
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: coordinate_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: coordinate_dst_
+      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: coordinate_src_
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: extrapolate_
+      LOGICAL (KIND=C_BOOL) :: extrapolate__tmp
       INTEGER  , OPTIONAL, INTENT(OUT) :: order_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_
@@ -113,4 +163,20 @@
       ENDIF
 
+      IF (PRESENT(coordinate_dst_)) THEN
+        CALL cxios_get_interpolate_axis_coordinate_dst &
+      (interpolate_axis_hdl%daddr, coordinate_dst_, len(coordinate_dst_))
+      ENDIF
+
+      IF (PRESENT(coordinate_src_)) THEN
+        CALL cxios_get_interpolate_axis_coordinate_src &
+      (interpolate_axis_hdl%daddr, coordinate_src_, len(coordinate_src_))
+      ENDIF
+
+      IF (PRESENT(extrapolate_)) THEN
+        CALL cxios_get_interpolate_axis_extrapolate &
+      (interpolate_axis_hdl%daddr, extrapolate__tmp)
+        extrapolate_ = extrapolate__tmp
+      ENDIF
+
       IF (PRESENT(order_)) THEN
         CALL cxios_get_interpolate_axis_order &
@@ -126,5 +192,6 @@
 
   SUBROUTINE xios(is_defined_interpolate_axis_attr)  &
-    ( interpolate_axis_id, coordinate, order, type )
+    ( interpolate_axis_id, coordinate, coordinate_dst, coordinate_src, extrapolate, order, type  &
+     )
 
     IMPLICIT NONE
@@ -133,4 +200,10 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: coordinate
       LOGICAL(KIND=C_BOOL) :: coordinate_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: coordinate_dst
+      LOGICAL(KIND=C_BOOL) :: coordinate_dst_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: coordinate_src
+      LOGICAL(KIND=C_BOOL) :: coordinate_src_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: extrapolate
+      LOGICAL(KIND=C_BOOL) :: extrapolate_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: order
       LOGICAL(KIND=C_BOOL) :: order_tmp
@@ -141,10 +214,12 @@
       (interpolate_axis_id,interpolate_axis_hdl)
       CALL xios(is_defined_interpolate_axis_attr_hdl_)   &
-      ( interpolate_axis_hdl, coordinate, order, type )
+      ( interpolate_axis_hdl, coordinate, coordinate_dst, coordinate_src, extrapolate, order, type  &
+       )
 
   END SUBROUTINE xios(is_defined_interpolate_axis_attr)
 
   SUBROUTINE xios(is_defined_interpolate_axis_attr_hdl)  &
-    ( interpolate_axis_hdl, coordinate, order, type )
+    ( interpolate_axis_hdl, coordinate, coordinate_dst, coordinate_src, extrapolate, order, type  &
+     )
 
     IMPLICIT NONE
@@ -152,4 +227,10 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: coordinate
       LOGICAL(KIND=C_BOOL) :: coordinate_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: coordinate_dst
+      LOGICAL(KIND=C_BOOL) :: coordinate_dst_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: coordinate_src
+      LOGICAL(KIND=C_BOOL) :: coordinate_src_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: extrapolate
+      LOGICAL(KIND=C_BOOL) :: extrapolate_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: order
       LOGICAL(KIND=C_BOOL) :: order_tmp
@@ -158,10 +239,12 @@
 
       CALL xios(is_defined_interpolate_axis_attr_hdl_)  &
-      ( interpolate_axis_hdl, coordinate, order, type )
+      ( interpolate_axis_hdl, coordinate, coordinate_dst, coordinate_src, extrapolate, order, type  &
+       )
 
   END SUBROUTINE xios(is_defined_interpolate_axis_attr_hdl)
 
   SUBROUTINE xios(is_defined_interpolate_axis_attr_hdl_)   &
-    ( interpolate_axis_hdl, coordinate_, order_, type_ )
+    ( interpolate_axis_hdl, coordinate_, coordinate_dst_, coordinate_src_, extrapolate_, order_  &
+    , type_ )
 
     IMPLICIT NONE
@@ -169,4 +252,10 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: coordinate_
       LOGICAL(KIND=C_BOOL) :: coordinate__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: coordinate_dst_
+      LOGICAL(KIND=C_BOOL) :: coordinate_dst__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: coordinate_src_
+      LOGICAL(KIND=C_BOOL) :: coordinate_src__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: extrapolate_
+      LOGICAL(KIND=C_BOOL) :: extrapolate__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: order_
       LOGICAL(KIND=C_BOOL) :: order__tmp
@@ -180,4 +269,22 @@
       ENDIF
 
+      IF (PRESENT(coordinate_dst_)) THEN
+        coordinate_dst__tmp = cxios_is_defined_interpolate_axis_coordinate_dst &
+      (interpolate_axis_hdl%daddr)
+        coordinate_dst_ = coordinate_dst__tmp
+      ENDIF
+
+      IF (PRESENT(coordinate_src_)) THEN
+        coordinate_src__tmp = cxios_is_defined_interpolate_axis_coordinate_src &
+      (interpolate_axis_hdl%daddr)
+        coordinate_src_ = coordinate_src__tmp
+      ENDIF
+
+      IF (PRESENT(extrapolate_)) THEN
+        extrapolate__tmp = cxios_is_defined_interpolate_axis_extrapolate &
+      (interpolate_axis_hdl%daddr)
+        extrapolate_ = extrapolate__tmp
+      ENDIF
+
       IF (PRESENT(order_)) THEN
         order__tmp = cxios_is_defined_interpolate_axis_order &
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/interpolate_axis_interface_attr.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/interpolate_axis_interface_attr.F90	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/interpolate_axis_interface_attr.F90	(revision 2338)
@@ -29,4 +29,65 @@
       INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
     END FUNCTION cxios_is_defined_interpolate_axis_coordinate
+
+
+    SUBROUTINE cxios_set_interpolate_axis_coordinate_dst(interpolate_axis_hdl, coordinate_dst, coordinate_dst_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: coordinate_dst
+      INTEGER  (kind = C_INT)     , VALUE        :: coordinate_dst_size
+    END SUBROUTINE cxios_set_interpolate_axis_coordinate_dst
+
+    SUBROUTINE cxios_get_interpolate_axis_coordinate_dst(interpolate_axis_hdl, coordinate_dst, coordinate_dst_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: coordinate_dst
+      INTEGER  (kind = C_INT)     , VALUE        :: coordinate_dst_size
+    END SUBROUTINE cxios_get_interpolate_axis_coordinate_dst
+
+    FUNCTION cxios_is_defined_interpolate_axis_coordinate_dst(interpolate_axis_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_axis_coordinate_dst
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+    END FUNCTION cxios_is_defined_interpolate_axis_coordinate_dst
+
+
+    SUBROUTINE cxios_set_interpolate_axis_coordinate_src(interpolate_axis_hdl, coordinate_src, coordinate_src_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: coordinate_src
+      INTEGER  (kind = C_INT)     , VALUE        :: coordinate_src_size
+    END SUBROUTINE cxios_set_interpolate_axis_coordinate_src
+
+    SUBROUTINE cxios_get_interpolate_axis_coordinate_src(interpolate_axis_hdl, coordinate_src, coordinate_src_size) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: coordinate_src
+      INTEGER  (kind = C_INT)     , VALUE        :: coordinate_src_size
+    END SUBROUTINE cxios_get_interpolate_axis_coordinate_src
+
+    FUNCTION cxios_is_defined_interpolate_axis_coordinate_src(interpolate_axis_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_axis_coordinate_src
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+    END FUNCTION cxios_is_defined_interpolate_axis_coordinate_src
+
+
+    SUBROUTINE cxios_set_interpolate_axis_extrapolate(interpolate_axis_hdl, extrapolate) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+      LOGICAL (KIND=C_BOOL)      , VALUE :: extrapolate
+    END SUBROUTINE cxios_set_interpolate_axis_extrapolate
+
+    SUBROUTINE cxios_get_interpolate_axis_extrapolate(interpolate_axis_hdl, extrapolate) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+      LOGICAL (KIND=C_BOOL)             :: extrapolate
+    END SUBROUTINE cxios_get_interpolate_axis_extrapolate
+
+    FUNCTION cxios_is_defined_interpolate_axis_extrapolate(interpolate_axis_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_axis_extrapolate
+      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_axis_hdl
+    END FUNCTION cxios_is_defined_interpolate_axis_extrapolate
 
 
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/ireduce_axis_to_scalar_attr.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/ireduce_axis_to_scalar_attr.F90	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/ireduce_axis_to_scalar_attr.F90	(revision 2338)
@@ -12,9 +12,11 @@
 
   SUBROUTINE xios(set_reduce_axis_to_scalar_attr)  &
-    ( reduce_axis_to_scalar_id, operation )
+    ( reduce_axis_to_scalar_id, local, operation )
 
     IMPLICIT NONE
       TYPE(txios(reduce_axis_to_scalar))  :: reduce_axis_to_scalar_hdl
       CHARACTER(LEN=*), INTENT(IN) ::reduce_axis_to_scalar_id
+      LOGICAL  , OPTIONAL, INTENT(IN) :: local
+      LOGICAL (KIND=C_BOOL) :: local_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation
 
@@ -22,26 +24,36 @@
       (reduce_axis_to_scalar_id,reduce_axis_to_scalar_hdl)
       CALL xios(set_reduce_axis_to_scalar_attr_hdl_)   &
-      ( reduce_axis_to_scalar_hdl, operation )
+      ( reduce_axis_to_scalar_hdl, local, operation )
 
   END SUBROUTINE xios(set_reduce_axis_to_scalar_attr)
 
   SUBROUTINE xios(set_reduce_axis_to_scalar_attr_hdl)  &
-    ( reduce_axis_to_scalar_hdl, operation )
+    ( reduce_axis_to_scalar_hdl, local, operation )
 
     IMPLICIT NONE
       TYPE(txios(reduce_axis_to_scalar)) , INTENT(IN) :: reduce_axis_to_scalar_hdl
+      LOGICAL  , OPTIONAL, INTENT(IN) :: local
+      LOGICAL (KIND=C_BOOL) :: local_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation
 
       CALL xios(set_reduce_axis_to_scalar_attr_hdl_)  &
-      ( reduce_axis_to_scalar_hdl, operation )
+      ( reduce_axis_to_scalar_hdl, local, operation )
 
   END SUBROUTINE xios(set_reduce_axis_to_scalar_attr_hdl)
 
   SUBROUTINE xios(set_reduce_axis_to_scalar_attr_hdl_)   &
-    ( reduce_axis_to_scalar_hdl, operation_ )
+    ( reduce_axis_to_scalar_hdl, local_, operation_ )
 
     IMPLICIT NONE
       TYPE(txios(reduce_axis_to_scalar)) , INTENT(IN) :: reduce_axis_to_scalar_hdl
+      LOGICAL  , OPTIONAL, INTENT(IN) :: local_
+      LOGICAL (KIND=C_BOOL) :: local__tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_
+
+      IF (PRESENT(local_)) THEN
+        local__tmp = local_
+        CALL cxios_set_reduce_axis_to_scalar_local &
+      (reduce_axis_to_scalar_hdl%daddr, local__tmp)
+      ENDIF
 
       IF (PRESENT(operation_)) THEN
@@ -53,9 +65,11 @@
 
   SUBROUTINE xios(get_reduce_axis_to_scalar_attr)  &
-    ( reduce_axis_to_scalar_id, operation )
+    ( reduce_axis_to_scalar_id, local, operation )
 
     IMPLICIT NONE
       TYPE(txios(reduce_axis_to_scalar))  :: reduce_axis_to_scalar_hdl
       CHARACTER(LEN=*), INTENT(IN) ::reduce_axis_to_scalar_id
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: local
+      LOGICAL (KIND=C_BOOL) :: local_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation
 
@@ -63,26 +77,36 @@
       (reduce_axis_to_scalar_id,reduce_axis_to_scalar_hdl)
       CALL xios(get_reduce_axis_to_scalar_attr_hdl_)   &
-      ( reduce_axis_to_scalar_hdl, operation )
+      ( reduce_axis_to_scalar_hdl, local, operation )
 
   END SUBROUTINE xios(get_reduce_axis_to_scalar_attr)
 
   SUBROUTINE xios(get_reduce_axis_to_scalar_attr_hdl)  &
-    ( reduce_axis_to_scalar_hdl, operation )
+    ( reduce_axis_to_scalar_hdl, local, operation )
 
     IMPLICIT NONE
       TYPE(txios(reduce_axis_to_scalar)) , INTENT(IN) :: reduce_axis_to_scalar_hdl
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: local
+      LOGICAL (KIND=C_BOOL) :: local_tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation
 
       CALL xios(get_reduce_axis_to_scalar_attr_hdl_)  &
-      ( reduce_axis_to_scalar_hdl, operation )
+      ( reduce_axis_to_scalar_hdl, local, operation )
 
   END SUBROUTINE xios(get_reduce_axis_to_scalar_attr_hdl)
 
   SUBROUTINE xios(get_reduce_axis_to_scalar_attr_hdl_)   &
-    ( reduce_axis_to_scalar_hdl, operation_ )
+    ( reduce_axis_to_scalar_hdl, local_, operation_ )
 
     IMPLICIT NONE
       TYPE(txios(reduce_axis_to_scalar)) , INTENT(IN) :: reduce_axis_to_scalar_hdl
+      LOGICAL  , OPTIONAL, INTENT(OUT) :: local_
+      LOGICAL (KIND=C_BOOL) :: local__tmp
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation_
+
+      IF (PRESENT(local_)) THEN
+        CALL cxios_get_reduce_axis_to_scalar_local &
+      (reduce_axis_to_scalar_hdl%daddr, local__tmp)
+        local_ = local__tmp
+      ENDIF
 
       IF (PRESENT(operation_)) THEN
@@ -94,9 +118,11 @@
 
   SUBROUTINE xios(is_defined_reduce_axis_to_scalar_attr)  &
-    ( reduce_axis_to_scalar_id, operation )
+    ( reduce_axis_to_scalar_id, local, operation )
 
     IMPLICIT NONE
       TYPE(txios(reduce_axis_to_scalar))  :: reduce_axis_to_scalar_hdl
       CHARACTER(LEN=*), INTENT(IN) ::reduce_axis_to_scalar_id
+      LOGICAL, OPTIONAL, INTENT(OUT) :: local
+      LOGICAL(KIND=C_BOOL) :: local_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: operation
       LOGICAL(KIND=C_BOOL) :: operation_tmp
@@ -105,28 +131,38 @@
       (reduce_axis_to_scalar_id,reduce_axis_to_scalar_hdl)
       CALL xios(is_defined_reduce_axis_to_scalar_attr_hdl_)   &
-      ( reduce_axis_to_scalar_hdl, operation )
+      ( reduce_axis_to_scalar_hdl, local, operation )
 
   END SUBROUTINE xios(is_defined_reduce_axis_to_scalar_attr)
 
   SUBROUTINE xios(is_defined_reduce_axis_to_scalar_attr_hdl)  &
-    ( reduce_axis_to_scalar_hdl, operation )
+    ( reduce_axis_to_scalar_hdl, local, operation )
 
     IMPLICIT NONE
       TYPE(txios(reduce_axis_to_scalar)) , INTENT(IN) :: reduce_axis_to_scalar_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: local
+      LOGICAL(KIND=C_BOOL) :: local_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: operation
       LOGICAL(KIND=C_BOOL) :: operation_tmp
 
       CALL xios(is_defined_reduce_axis_to_scalar_attr_hdl_)  &
-      ( reduce_axis_to_scalar_hdl, operation )
+      ( reduce_axis_to_scalar_hdl, local, operation )
 
   END SUBROUTINE xios(is_defined_reduce_axis_to_scalar_attr_hdl)
 
   SUBROUTINE xios(is_defined_reduce_axis_to_scalar_attr_hdl_)   &
-    ( reduce_axis_to_scalar_hdl, operation_ )
+    ( reduce_axis_to_scalar_hdl, local_, operation_ )
 
     IMPLICIT NONE
       TYPE(txios(reduce_axis_to_scalar)) , INTENT(IN) :: reduce_axis_to_scalar_hdl
+      LOGICAL, OPTIONAL, INTENT(OUT) :: local_
+      LOGICAL(KIND=C_BOOL) :: local__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: operation_
       LOGICAL(KIND=C_BOOL) :: operation__tmp
+
+      IF (PRESENT(local_)) THEN
+        local__tmp = cxios_is_defined_reduce_axis_to_scalar_local &
+      (reduce_axis_to_scalar_hdl%daddr)
+        local_ = local__tmp
+      ENDIF
 
       IF (PRESENT(operation_)) THEN
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iscalar_attr.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iscalar_attr.F90	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iscalar_attr.F90	(revision 2338)
@@ -12,5 +12,5 @@
 
   SUBROUTINE xios(set_scalar_attr)  &
-    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, mask, n, name, positive  &
     , prec, scalar_ref, standard_name, unit, value )
 
@@ -26,4 +26,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: mask
       LOGICAL (KIND=C_BOOL) :: mask_tmp
+      INTEGER  , OPTIONAL, INTENT(IN) :: n
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive
@@ -37,5 +38,5 @@
       (scalar_id,scalar_hdl)
       CALL xios(set_scalar_attr_hdl_)   &
-      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, n, name, positive  &
       , prec, scalar_ref, standard_name, unit, value )
 
@@ -43,5 +44,5 @@
 
   SUBROUTINE xios(set_scalar_attr_hdl)  &
-    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, n, name, positive  &
     , prec, scalar_ref, standard_name, unit, value )
 
@@ -56,4 +57,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: mask
       LOGICAL (KIND=C_BOOL) :: mask_tmp
+      INTEGER  , OPTIONAL, INTENT(IN) :: n
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive
@@ -65,5 +67,5 @@
 
       CALL xios(set_scalar_attr_hdl_)  &
-      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, n, name, positive  &
       , prec, scalar_ref, standard_name, unit, value )
 
@@ -71,5 +73,5 @@
 
   SUBROUTINE xios(set_scalar_attr_hdl_)   &
-    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, mask_, name_  &
+    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, mask_, n_, name_  &
     , positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
 
@@ -84,4 +86,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: mask_
       LOGICAL (KIND=C_BOOL) :: mask__tmp
+      INTEGER  , OPTIONAL, INTENT(IN) :: n_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive_
@@ -128,4 +131,9 @@
       ENDIF
 
+      IF (PRESENT(n_)) THEN
+        CALL cxios_set_scalar_n &
+      (scalar_hdl%daddr, n_)
+      ENDIF
+
       IF (PRESENT(name_)) THEN
         CALL cxios_set_scalar_name &
@@ -166,5 +174,5 @@
 
   SUBROUTINE xios(get_scalar_attr)  &
-    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, mask, n, name, positive  &
     , prec, scalar_ref, standard_name, unit, value )
 
@@ -180,4 +188,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: mask
       LOGICAL (KIND=C_BOOL) :: mask_tmp
+      INTEGER  , OPTIONAL, INTENT(OUT) :: n
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive
@@ -191,5 +200,5 @@
       (scalar_id,scalar_hdl)
       CALL xios(get_scalar_attr_hdl_)   &
-      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, n, name, positive  &
       , prec, scalar_ref, standard_name, unit, value )
 
@@ -197,5 +206,5 @@
 
   SUBROUTINE xios(get_scalar_attr_hdl)  &
-    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, n, name, positive  &
     , prec, scalar_ref, standard_name, unit, value )
 
@@ -210,4 +219,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: mask
       LOGICAL (KIND=C_BOOL) :: mask_tmp
+      INTEGER  , OPTIONAL, INTENT(OUT) :: n
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive
@@ -219,5 +229,5 @@
 
       CALL xios(get_scalar_attr_hdl_)  &
-      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, n, name, positive  &
       , prec, scalar_ref, standard_name, unit, value )
 
@@ -225,5 +235,5 @@
 
   SUBROUTINE xios(get_scalar_attr_hdl_)   &
-    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, mask_, name_  &
+    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, mask_, n_, name_  &
     , positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
 
@@ -238,4 +248,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_
       LOGICAL (KIND=C_BOOL) :: mask__tmp
+      INTEGER  , OPTIONAL, INTENT(OUT) :: n_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive_
@@ -282,4 +293,9 @@
       ENDIF
 
+      IF (PRESENT(n_)) THEN
+        CALL cxios_get_scalar_n &
+      (scalar_hdl%daddr, n_)
+      ENDIF
+
       IF (PRESENT(name_)) THEN
         CALL cxios_get_scalar_name &
@@ -320,5 +336,5 @@
 
   SUBROUTINE xios(is_defined_scalar_attr)  &
-    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, mask, n, name, positive  &
     , prec, scalar_ref, standard_name, unit, value )
 
@@ -340,4 +356,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: mask
       LOGICAL(KIND=C_BOOL) :: mask_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: n
+      LOGICAL(KIND=C_BOOL) :: n_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name
       LOGICAL(KIND=C_BOOL) :: name_tmp
@@ -358,5 +376,5 @@
       (scalar_id,scalar_hdl)
       CALL xios(is_defined_scalar_attr_hdl_)   &
-      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, n, name, positive  &
       , prec, scalar_ref, standard_name, unit, value )
 
@@ -364,5 +382,5 @@
 
   SUBROUTINE xios(is_defined_scalar_attr_hdl)  &
-    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, n, name, positive  &
     , prec, scalar_ref, standard_name, unit, value )
 
@@ -383,4 +401,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: mask
       LOGICAL(KIND=C_BOOL) :: mask_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: n
+      LOGICAL(KIND=C_BOOL) :: n_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name
       LOGICAL(KIND=C_BOOL) :: name_tmp
@@ -399,5 +419,5 @@
 
       CALL xios(is_defined_scalar_attr_hdl_)  &
-      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, name, positive  &
+      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, mask, n, name, positive  &
       , prec, scalar_ref, standard_name, unit, value )
 
@@ -405,5 +425,5 @@
 
   SUBROUTINE xios(is_defined_scalar_attr_hdl_)   &
-    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, mask_, name_  &
+    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, mask_, n_, name_  &
     , positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
 
@@ -424,4 +444,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: mask_
       LOGICAL(KIND=C_BOOL) :: mask__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: n_
+      LOGICAL(KIND=C_BOOL) :: n__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name_
       LOGICAL(KIND=C_BOOL) :: name__tmp
@@ -481,4 +503,10 @@
       ENDIF
 
+      IF (PRESENT(n_)) THEN
+        n__tmp = cxios_is_defined_scalar_n &
+      (scalar_hdl%daddr)
+        n_ = n__tmp
+      ENDIF
+
       IF (PRESENT(name_)) THEN
         name__tmp = cxios_is_defined_scalar_name &
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iscalargroup_attr.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iscalargroup_attr.F90	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/iscalargroup_attr.F90	(revision 2338)
@@ -13,5 +13,5 @@
   SUBROUTINE xios(set_scalargroup_attr)  &
     ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
-    , name, positive, prec, scalar_ref, standard_name, unit, value )
+    , n, name, positive, prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -27,4 +27,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: mask
       LOGICAL (KIND=C_BOOL) :: mask_tmp
+      INTEGER  , OPTIONAL, INTENT(IN) :: n
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive
@@ -39,5 +40,5 @@
       CALL xios(set_scalargroup_attr_hdl_)   &
       ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
-      , name, positive, prec, scalar_ref, standard_name, unit, value )
+      , n, name, positive, prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(set_scalargroup_attr)
@@ -45,5 +46,5 @@
   SUBROUTINE xios(set_scalargroup_attr_hdl)  &
     ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
-    , name, positive, prec, scalar_ref, standard_name, unit, value )
+    , n, name, positive, prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -58,4 +59,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: mask
       LOGICAL (KIND=C_BOOL) :: mask_tmp
+      INTEGER  , OPTIONAL, INTENT(IN) :: n
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive
@@ -68,5 +70,5 @@
       CALL xios(set_scalargroup_attr_hdl_)  &
       ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
-      , name, positive, prec, scalar_ref, standard_name, unit, value )
+      , n, name, positive, prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(set_scalargroup_attr_hdl)
@@ -74,5 +76,5 @@
   SUBROUTINE xios(set_scalargroup_attr_hdl_)   &
     ( scalargroup_hdl, axis_type_, bounds_, bounds_name_, comment_, group_ref_, label_, long_name_  &
-    , mask_, name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
+    , mask_, n_, name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
 
     IMPLICIT NONE
@@ -87,4 +89,5 @@
       LOGICAL  , OPTIONAL, INTENT(IN) :: mask_
       LOGICAL (KIND=C_BOOL) :: mask__tmp
+      INTEGER  , OPTIONAL, INTENT(IN) :: n_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive_
@@ -136,4 +139,9 @@
       ENDIF
 
+      IF (PRESENT(n_)) THEN
+        CALL cxios_set_scalargroup_n &
+      (scalargroup_hdl%daddr, n_)
+      ENDIF
+
       IF (PRESENT(name_)) THEN
         CALL cxios_set_scalargroup_name &
@@ -175,5 +183,5 @@
   SUBROUTINE xios(get_scalargroup_attr)  &
     ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
-    , name, positive, prec, scalar_ref, standard_name, unit, value )
+    , n, name, positive, prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -189,4 +197,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: mask
       LOGICAL (KIND=C_BOOL) :: mask_tmp
+      INTEGER  , OPTIONAL, INTENT(OUT) :: n
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive
@@ -201,5 +210,5 @@
       CALL xios(get_scalargroup_attr_hdl_)   &
       ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
-      , name, positive, prec, scalar_ref, standard_name, unit, value )
+      , n, name, positive, prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(get_scalargroup_attr)
@@ -207,5 +216,5 @@
   SUBROUTINE xios(get_scalargroup_attr_hdl)  &
     ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
-    , name, positive, prec, scalar_ref, standard_name, unit, value )
+    , n, name, positive, prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -220,4 +229,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: mask
       LOGICAL (KIND=C_BOOL) :: mask_tmp
+      INTEGER  , OPTIONAL, INTENT(OUT) :: n
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive
@@ -230,5 +240,5 @@
       CALL xios(get_scalargroup_attr_hdl_)  &
       ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
-      , name, positive, prec, scalar_ref, standard_name, unit, value )
+      , n, name, positive, prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(get_scalargroup_attr_hdl)
@@ -236,5 +246,5 @@
   SUBROUTINE xios(get_scalargroup_attr_hdl_)   &
     ( scalargroup_hdl, axis_type_, bounds_, bounds_name_, comment_, group_ref_, label_, long_name_  &
-    , mask_, name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
+    , mask_, n_, name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
 
     IMPLICIT NONE
@@ -249,4 +259,5 @@
       LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_
       LOGICAL (KIND=C_BOOL) :: mask__tmp
+      INTEGER  , OPTIONAL, INTENT(OUT) :: n_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive_
@@ -298,4 +309,9 @@
       ENDIF
 
+      IF (PRESENT(n_)) THEN
+        CALL cxios_get_scalargroup_n &
+      (scalargroup_hdl%daddr, n_)
+      ENDIF
+
       IF (PRESENT(name_)) THEN
         CALL cxios_get_scalargroup_name &
@@ -337,5 +353,5 @@
   SUBROUTINE xios(is_defined_scalargroup_attr)  &
     ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
-    , name, positive, prec, scalar_ref, standard_name, unit, value )
+    , n, name, positive, prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -358,4 +374,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: mask
       LOGICAL(KIND=C_BOOL) :: mask_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: n
+      LOGICAL(KIND=C_BOOL) :: n_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name
       LOGICAL(KIND=C_BOOL) :: name_tmp
@@ -377,5 +395,5 @@
       CALL xios(is_defined_scalargroup_attr_hdl_)   &
       ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
-      , name, positive, prec, scalar_ref, standard_name, unit, value )
+      , n, name, positive, prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(is_defined_scalargroup_attr)
@@ -383,5 +401,5 @@
   SUBROUTINE xios(is_defined_scalargroup_attr_hdl)  &
     ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
-    , name, positive, prec, scalar_ref, standard_name, unit, value )
+    , n, name, positive, prec, scalar_ref, standard_name, unit, value )
 
     IMPLICIT NONE
@@ -403,4 +421,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: mask
       LOGICAL(KIND=C_BOOL) :: mask_tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: n
+      LOGICAL(KIND=C_BOOL) :: n_tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name
       LOGICAL(KIND=C_BOOL) :: name_tmp
@@ -420,5 +440,5 @@
       CALL xios(is_defined_scalargroup_attr_hdl_)  &
       ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, mask  &
-      , name, positive, prec, scalar_ref, standard_name, unit, value )
+      , n, name, positive, prec, scalar_ref, standard_name, unit, value )
 
   END SUBROUTINE xios(is_defined_scalargroup_attr_hdl)
@@ -426,5 +446,5 @@
   SUBROUTINE xios(is_defined_scalargroup_attr_hdl_)   &
     ( scalargroup_hdl, axis_type_, bounds_, bounds_name_, comment_, group_ref_, label_, long_name_  &
-    , mask_, name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
+    , mask_, n_, name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ )
 
     IMPLICIT NONE
@@ -446,4 +466,6 @@
       LOGICAL, OPTIONAL, INTENT(OUT) :: mask_
       LOGICAL(KIND=C_BOOL) :: mask__tmp
+      LOGICAL, OPTIONAL, INTENT(OUT) :: n_
+      LOGICAL(KIND=C_BOOL) :: n__tmp
       LOGICAL, OPTIONAL, INTENT(OUT) :: name_
       LOGICAL(KIND=C_BOOL) :: name__tmp
@@ -509,4 +531,10 @@
       ENDIF
 
+      IF (PRESENT(n_)) THEN
+        n__tmp = cxios_is_defined_scalargroup_n &
+      (scalargroup_hdl%daddr)
+        n_ = n__tmp
+      ENDIF
+
       IF (PRESENT(name_)) THEN
         name__tmp = cxios_is_defined_scalargroup_name &
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/reduce_axis_to_scalar_interface_attr.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/reduce_axis_to_scalar_interface_attr.F90	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/reduce_axis_to_scalar_interface_attr.F90	(revision 2338)
@@ -9,4 +9,23 @@
   INTERFACE
     ! Do not call directly / interface FORTRAN 2003 <-> C99
+
+    SUBROUTINE cxios_set_reduce_axis_to_scalar_local(reduce_axis_to_scalar_hdl, local) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: reduce_axis_to_scalar_hdl
+      LOGICAL (KIND=C_BOOL)      , VALUE :: local
+    END SUBROUTINE cxios_set_reduce_axis_to_scalar_local
+
+    SUBROUTINE cxios_get_reduce_axis_to_scalar_local(reduce_axis_to_scalar_hdl, local) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: reduce_axis_to_scalar_hdl
+      LOGICAL (KIND=C_BOOL)             :: local
+    END SUBROUTINE cxios_get_reduce_axis_to_scalar_local
+
+    FUNCTION cxios_is_defined_reduce_axis_to_scalar_local(reduce_axis_to_scalar_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_reduce_axis_to_scalar_local
+      INTEGER (kind = C_INTPTR_T), VALUE :: reduce_axis_to_scalar_hdl
+    END FUNCTION cxios_is_defined_reduce_axis_to_scalar_local
+
 
     SUBROUTINE cxios_set_reduce_axis_to_scalar_operation(reduce_axis_to_scalar_hdl, operation, operation_size) BIND(C)
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/scalar_interface_attr.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/scalar_interface_attr.F90	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/scalar_interface_attr.F90	(revision 2338)
@@ -155,4 +155,23 @@
 
 
+    SUBROUTINE cxios_set_scalar_n(scalar_hdl, n) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: n
+    END SUBROUTINE cxios_set_scalar_n
+
+    SUBROUTINE cxios_get_scalar_n(scalar_hdl, n) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl
+      INTEGER (KIND=C_INT)             :: n
+    END SUBROUTINE cxios_get_scalar_n
+
+    FUNCTION cxios_is_defined_scalar_n(scalar_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalar_n
+      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl
+    END FUNCTION cxios_is_defined_scalar_n
+
+
     SUBROUTINE cxios_set_scalar_name(scalar_hdl, name, name_size) BIND(C)
       USE ISO_C_BINDING
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/scalargroup_interface_attr.F90
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/scalargroup_interface_attr.F90	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/interface/fortran_attr/scalargroup_interface_attr.F90	(revision 2338)
@@ -176,4 +176,23 @@
 
 
+    SUBROUTINE cxios_set_scalargroup_n(scalargroup_hdl, n) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl
+      INTEGER (KIND=C_INT)      , VALUE :: n
+    END SUBROUTINE cxios_set_scalargroup_n
+
+    SUBROUTINE cxios_get_scalargroup_n(scalargroup_hdl, n) BIND(C)
+      USE ISO_C_BINDING
+      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl
+      INTEGER (KIND=C_INT)             :: n
+    END SUBROUTINE cxios_get_scalargroup_n
+
+    FUNCTION cxios_is_defined_scalargroup_n(scalargroup_hdl) BIND(C)
+      USE ISO_C_BINDING
+      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalargroup_n
+      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl
+    END FUNCTION cxios_is_defined_scalargroup_n
+
+
     SUBROUTINE cxios_set_scalargroup_name(scalargroup_hdl, name, name_size) BIND(C)
       USE ISO_C_BINDING
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/io/nc4_data_input.cpp
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/io/nc4_data_input.cpp	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/io/nc4_data_input.cpp	(revision 2338)
@@ -495,17 +495,17 @@
     {
       // Ok, try to read some attributes such as longitude and latitude
-      domain->hasLatInReadFile = SuperClassWriter::hasVariable(itMapNj->first);
-      domain->hasLonInReadFile = SuperClassWriter::hasVariable(itMapNi->first);
+      domain->has_lat_in_read_file = SuperClassWriter::hasVariable(itMapNj->first);
+      domain->has_lon_in_read_file = SuperClassWriter::hasVariable(itMapNi->first);
     }
     else if ((CDomain::type_attr::curvilinear == domain->type) || (CDomain::type_attr::unstructured == domain->type) )
     {
       StdString latName = this->getLatCoordName(fieldId);
-      domain->hasLatInReadFile = SuperClassWriter::hasVariable(latName) ;
+      domain->has_lat_in_read_file = SuperClassWriter::hasVariable(latName) ;
       StdString lonName = this->getLonCoordName(fieldId);        
-      domain->hasLonInReadFile = SuperClassWriter::hasVariable(lonName) ; 
+      domain->has_lon_in_read_file = SuperClassWriter::hasVariable(lonName) ; 
       StdString boundsLatName = this->getBoundsId(latName);
-      domain->hasBoundsLatInReadFile = SuperClassWriter::hasVariable(boundsLatName) ; 
+      domain->has_bounds_lat_in_read_file = SuperClassWriter::hasVariable(boundsLatName) ; 
       StdString boundsLonName = this->getBoundsId(lonName);
-      domain->hasBoundsLonInReadFile = SuperClassWriter::hasVariable(boundsLonName) ;
+      domain->has_bounds_lon_in_read_file = SuperClassWriter::hasVariable(boundsLonName) ;
     }
   }
Index: /XIOS/dev/dev_ym/XIOS_COUPLING/src/node/domain.cpp
===================================================================
--- /XIOS/dev/dev_ym/XIOS_COUPLING/src/node/domain.cpp	(revision 2337)
+++ /XIOS/dev/dev_ym/XIOS_COUPLING/src/node/domain.cpp	(revision 2338)
@@ -500,5 +500,5 @@
        lon_end.setValue(lonvalue_rectilinear_read_from_file(ni_glo-1));
      }
-     else if (hasLonInReadFile.isEmpty() || !hasLonInReadFile)
+     else if (has_lon_in_read_file.isEmpty() || !has_lon_in_read_file)
      {
        if (!lonvalue_2d.isEmpty()) lonvalue_2d.free();
@@ -534,5 +534,5 @@
        lat_end.setValue(latvalue_rectilinear_read_from_file(nj_glo-1));
      }
-     else if (hasLatInReadFile.isEmpty() || !hasLatInReadFile)
+     else if (has_lat_in_read_file.isEmpty() || !has_lat_in_read_file)
      {
        if (!latvalue_2d.isEmpty()) latvalue_1d.free();
