Index: XIOS3/dev/XIOS_ATTACHED/src/config/node_type.conf
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/config/node_type.conf	(revision 2459)
+++ XIOS3/dev/XIOS_ATTACHED/src/config/node_type.conf	(revision 2460)
@@ -132,4 +132,16 @@
 #endif //__XIOS_CServiceNode__
 
+#ifdef __XIOS_CRedistributeDomain__
+   DECLARE_NODE(RedistributeDomain, redistribute_domain)
+#endif //__XIOS_CRedistributeDomain__
+
+#ifdef __XIOS_CRedistributeAxis__
+   DECLARE_NODE(RedistributeAxis, redistribute_axis)
+#endif //__XIOS_CRedistributeAxis__
+
+#ifdef __XIOS_CRedistributeScalar__
+   DECLARE_NODE(RedistributeScalar, redistribute_scalar)
+#endif //__XIOS_CRedistributeScalar__
+
 #ifdef __XIOS_CContext__
    DECLARE_NODE_PAR(Context, context)
Index: XIOS3/dev/XIOS_ATTACHED/src/generate_fortran_interface.cpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/generate_fortran_interface.cpp	(revision 2459)
+++ XIOS3/dev/XIOS_ATTACHED/src/generate_fortran_interface.cpp	(revision 2460)
@@ -53,4 +53,8 @@
   CDuplicateScalarToAxis duplicateScalarToAxis;
   CReduceScalarToScalar reduceScalarToScalar;
+
+  CRedistributeDomain redistributeDomain ;
+  CRedistributeAxis   redistributeAxis ;
+  CRedistributeScalar redistributeScalar ;
   
   ostringstream oss;
@@ -329,4 +333,8 @@
   file.open((path+"ireorder_domain_attr.F90").c_str());
   reorderDomain.generateFortranInterface(file);
+  file.close();
+
+  file.open((path+"iredistribute_domain_attr.F90").c_str());
+  redistributeDomain.generateFortranInterface(file);
   file.close();
   
@@ -410,5 +418,4 @@
   file.close();
 
-
   file.open((path+"temporal_splitting_interface_attr.F90").c_str());
   temporalSplitting.generateFortran2003Interface(file);
@@ -435,4 +442,9 @@
   duplicateScalarToAxis.generateFortranInterface(file);
   file.close();
+
+  file.open((path+"iredistribute_axis_attr.F90").c_str());
+  redistributeAxis.generateFortranInterface(file);
+  file.close();
+
   /*!
     Scalar transformations
@@ -488,4 +500,7 @@
   file.close();
 
+  file.open((path+"iredistribute_scalar_attr.F90").c_str());
+  redistributeScalar.generateFortranInterface(file);
+  file.close();
 
 
Index: XIOS3/dev/XIOS_ATTACHED/src/group_factory_decl.cpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/group_factory_decl.cpp	(revision 2459)
+++ XIOS3/dev/XIOS_ATTACHED/src/group_factory_decl.cpp	(revision 2460)
@@ -50,4 +50,7 @@
   macro(CPoolNodeGroup)
   macro(CServiceNodeGroup)
+  macro(CRedistributeDomainGroup)
+  macro(CRedistributeAxisGroup)
+  macro(CRedistributeScalarGroup)
 
 }
Index: XIOS3/dev/XIOS_ATTACHED/src/group_template_decl.cpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/group_template_decl.cpp	(revision 2459)
+++ XIOS3/dev/XIOS_ATTACHED/src/group_template_decl.cpp	(revision 2460)
@@ -39,4 +39,7 @@
   macro(PoolNode)
   macro(ServiceNode)
+  macro(RedistributeDomain)
+  macro(RedistributeAxis)
+  macro(RedistributeScalar)
 
 }
Index: XIOS3/dev/XIOS_ATTACHED/src/node/node_enum.hpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/node/node_enum.hpp	(revision 2459)
+++ XIOS3/dev/XIOS_ATTACHED/src/node/node_enum.hpp	(revision 2460)
@@ -45,5 +45,7 @@
          ePoolNode,gPoolNode,
          eServiceNode,gServiceNode,
-//         eService, gService
+         eRedistributeDomain, gRedistributeDomain,
+         eRedistributeAxis, gRedistributeAxis,
+         eRedistributeScalar, gRedistributeScalar,
        } ENodeType;
 
Index: XIOS3/dev/XIOS_ATTACHED/src/node/node_type.hpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/node/node_type.hpp	(revision 2459)
+++ XIOS3/dev/XIOS_ATTACHED/src/node/node_type.hpp	(revision 2460)
@@ -35,4 +35,7 @@
 #include "pool_node.hpp"
 #include "service_node.hpp"
+#include "redistribute_domain.hpp"
+#include "redistribute_axis.hpp"
+#include "redistribute_scalar.hpp"
 
 
Index: XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_axis.cpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_axis.cpp	(revision 2460)
+++ XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_axis.cpp	(revision 2460)
@@ -0,0 +1,62 @@
+#include "redistribute_axis.hpp"
+#include "axis_algorithm_redistribute.hpp"
+#include "type.hpp"
+#include "field.hpp"
+
+namespace xios
+{
+
+  /// ////////////////////// DÃ©finitions ////////////////////// ///
+
+  CRedistributeAxis::CRedistributeAxis(void)
+    : CObjectTemplate<CRedistributeAxis>(), CRedistributeAxisAttributes(), CTransformation<CAxis>()
+  { /* Ne rien faire de plus */ }
+
+  CRedistributeAxis::CRedistributeAxis(const StdString & id)
+    : CObjectTemplate<CRedistributeAxis>(id), CRedistributeAxisAttributes(), CTransformation<CAxis>()
+  { /* Ne rien faire de plus */ }
+
+  CRedistributeAxis::~CRedistributeAxis(void)
+  {}
+
+  CTransformation<CAxis>* CRedistributeAxis::create(const StdString& id, xml::CXMLNode* node)
+  {
+    CRedistributeAxis* redistributeAxis = CRedistributeAxisGroup::get("redistribute_axis_definition")->createChild(id);
+    if (node) redistributeAxis->parse(*node);
+    return static_cast<CTransformation<CAxis>*>(redistributeAxis);
+  }
+
+  bool CRedistributeAxis::registerTrans()
+  {
+    return registerTransformation(TRANS_REDISTRIBUTE_AXIS, {create, getTransformation});
+  }
+
+  bool CRedistributeAxis::_dummyRegistered = CRedistributeAxis::registerTrans();
+
+  //----------------------------------------------------------------
+
+  StdString CRedistributeAxis::GetName(void)    { return StdString("redistribute_axis"); }
+  StdString CRedistributeAxis::GetDefName(void) { return StdString("redistribute_axis"); }
+  ENodeType CRedistributeAxis::GetType(void)    { return eRedistributeAxis; }
+
+  void CRedistributeAxis::checkValid(CAxis* axisSrc)
+  {
+
+  }
+
+  shared_ptr<CGenericAlgorithmTransformation> CRedistributeAxis::createAlgorithm(bool isSource,
+                                                        CGrid* gridDst, CGrid* gridSrc,
+                                                        int elementPositionInGrid,
+                                                        std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
+                                                        std::map<int, int>& elementPositionInGridSrc2AxisPosition,
+                                                        std::map<int, int>& elementPositionInGridSrc2DomainPosition,
+                                                        std::map<int, int>& elementPositionInGridDst2ScalarPosition,
+                                                        std::map<int, int>& elementPositionInGridDst2AxisPosition,
+                                                        std::map<int, int>& elementPositionInGridDst2DomainPosition)
+  {
+        
+    return CAxisAlgorithmRedistribute::create(isSource, gridDst,  gridSrc, this, elementPositionInGrid, 
+                elementPositionInGridSrc2ScalarPosition, elementPositionInGridSrc2AxisPosition, elementPositionInGridSrc2DomainPosition,
+                elementPositionInGridDst2ScalarPosition, elementPositionInGridDst2AxisPosition, elementPositionInGridDst2DomainPosition);
+  }
+}
Index: XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_axis.hpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_axis.hpp	(revision 2460)
+++ XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_axis.hpp	(revision 2460)
@@ -0,0 +1,84 @@
+#ifndef __XIOS_CRedistributeAxis__
+#define __XIOS_CRedistributeAxis__
+
+/// xios headers ///
+#include "xios_spl.hpp"
+#include "attribute_enum.hpp"
+#include "attribute_enum_impl.hpp"
+#include "attribute_array.hpp"
+#include "declare_attribute.hpp"
+#include "object_template.hpp"
+#include "group_factory.hpp"
+#include "declare_group.hpp"
+#include "transformation.hpp"
+#include "axis.hpp"
+
+namespace xios 
+{
+  /// ////////////////////// DÃ©clarations ////////////////////// ///
+  class CRedistributeAxisGroup;
+  class CRedistributeAxisAttributes;
+  class CRedistributeAxis;
+  class CAxis;
+  class CGenericAlgorithmTransformation ;
+  class CGrid;
+  ///--------------------------------------------------------------
+
+  // Declare/Define CFileAttribute
+  BEGIN_DECLARE_ATTRIBUTE_MAP(CRedistributeAxis)
+#include "redistribute_axis_attribute.conf"
+  END_DECLARE_ATTRIBUTE_MAP(CRedistributeAxis)
+
+  ///--------------------------------------------------------------
+  /*!
+    \class CInterpolateAxis
+    This class describes interpolate_axis in xml file.
+  */
+  class CRedistributeAxis
+    : public CObjectTemplate<CRedistributeAxis>
+    , public CRedistributeAxisAttributes
+    , public CTransformation<CAxis>
+  {
+    public :
+      typedef CObjectTemplate<CRedistributeAxis> SuperClass;
+      typedef CRedistributeAxisAttributes SuperClassAttribute;
+      typedef CRedistributeAxis MyClass ;
+      typedef CTransformation<CAxis> SuperTransform ;
+
+    public :
+      /// Constructeurs ///
+      CRedistributeAxis(void);
+      explicit CRedistributeAxis(const StdString& id);
+
+      /// Destructeur ///
+      virtual ~CRedistributeAxis(void);
+
+      virtual void checkValid(CAxis* axisDest);
+
+      /// Accesseurs statiques ///
+      static StdString GetName(void);
+      static StdString GetDefName(void);
+      static ENodeType GetType(void);
+      const string& getId(void) { return this->SuperClass::getId();}
+      ETranformationType getTransformationType(void) { return TRANS_REDISTRIBUTE_AXIS ;}
+      static CTransformation<CAxis>* getTransformation(const StdString& id) { return SuperClass::get(id);}
+      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;}
+      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource,
+                                                               CGrid* gridDst, CGrid* gridSrc,
+                                                               int elementPositionInGrid,
+                                                               std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
+                                                               std::map<int, int>& elementPositionInGridSrc2AxisPosition,
+                                                               std::map<int, int>& elementPositionInGridSrc2DomainPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2ScalarPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2AxisPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2DomainPosition)  ;
+    private:
+      static bool registerTrans();
+      static CTransformation<CAxis>* create(const StdString& id, xml::CXMLNode* node);
+      static bool _dummyRegistered;
+  }; // class CRedistributeAxis
+
+  DECLARE_GROUP(CRedistributeAxis);
+} // namespace xios
+
+#endif // __XIOS_CRedistributeAxis__
Index: XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_domain.cpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_domain.cpp	(revision 2460)
+++ XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_domain.cpp	(revision 2460)
@@ -0,0 +1,61 @@
+#include "redistribute_domain.hpp"
+#include "domain_algorithm_redistribute.hpp"
+#include "type.hpp"
+#include "field.hpp"
+
+namespace xios
+{
+
+  /// ////////////////////// DÃ©finitions ////////////////////// ///
+
+  CRedistributeDomain::CRedistributeDomain(void)
+    : CObjectTemplate<CRedistributeDomain>(), CRedistributeDomainAttributes(), CTransformation<CDomain>()
+  { /* Ne rien faire de plus */ }
+
+  CRedistributeDomain::CRedistributeDomain(const StdString & id)
+    : CObjectTemplate<CRedistributeDomain>(id), CRedistributeDomainAttributes(), CTransformation<CDomain>()
+  { /* Ne rien faire de plus */ }
+
+  CRedistributeDomain::~CRedistributeDomain(void)
+  {}
+
+  CTransformation<CDomain>* CRedistributeDomain::create(const StdString& id, xml::CXMLNode* node)
+  {
+    CRedistributeDomain* redistributeDomain = CRedistributeDomainGroup::get("redistribute_domain_definition")->createChild(id);
+    if (node) redistributeDomain->parse(*node);
+    return static_cast<CTransformation<CDomain>*>(redistributeDomain);
+  }
+
+  bool CRedistributeDomain::registerTrans()
+  {
+    return registerTransformation(TRANS_REDISTRIBUTE_DOMAIN, {create, getTransformation});
+  }
+
+  bool CRedistributeDomain::_dummyRegistered = CRedistributeDomain::registerTrans();
+
+  //----------------------------------------------------------------
+
+  StdString CRedistributeDomain::GetName(void)    { return StdString("redistribute_domain"); }
+  StdString CRedistributeDomain::GetDefName(void) { return StdString("redistribute_domain"); }
+  ENodeType CRedistributeDomain::GetType(void)    { return eRedistributeDomain; }
+
+  void CRedistributeDomain::checkValid(CDomain* domainSrc)
+  {
+
+  }
+
+  shared_ptr<CGenericAlgorithmTransformation> CRedistributeDomain::createAlgorithm(bool isSource,
+                                                        CGrid* gridDst, CGrid* gridSrc,
+                                                        int elementPositionInGrid,
+                                                        std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
+                                                        std::map<int, int>& elementPositionInGridSrc2AxisPosition,
+                                                        std::map<int, int>& elementPositionInGridSrc2DomainPosition,
+                                                        std::map<int, int>& elementPositionInGridDst2ScalarPosition,
+                                                        std::map<int, int>& elementPositionInGridDst2AxisPosition,
+                                                        std::map<int, int>& elementPositionInGridDst2DomainPosition)
+  {
+    return CDomainAlgorithmRedistribute::create(isSource, gridDst,  gridSrc, this, elementPositionInGrid, 
+                elementPositionInGridSrc2ScalarPosition, elementPositionInGridSrc2AxisPosition, elementPositionInGridSrc2DomainPosition,
+                elementPositionInGridDst2ScalarPosition, elementPositionInGridDst2AxisPosition, elementPositionInGridDst2DomainPosition);
+  }
+}
Index: XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_domain.hpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_domain.hpp	(revision 2460)
+++ XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_domain.hpp	(revision 2460)
@@ -0,0 +1,83 @@
+#ifndef __XIOS_CRedistributeDomain__
+#define __XIOS_CRedistributeDomain__
+
+/// xios headers ///
+#include "xios_spl.hpp"
+#include "attribute_enum.hpp"
+#include "attribute_enum_impl.hpp"
+#include "attribute_array.hpp"
+#include "declare_attribute.hpp"
+#include "object_template.hpp"
+#include "group_factory.hpp"
+#include "declare_group.hpp"
+#include "transformation.hpp"
+#include "domain.hpp"
+
+namespace xios {
+  /// ////////////////////// DÃ©clarations ////////////////////// ///
+  class CRedistributeDomainGroup;
+  class CRedistributeDomainAttributes;
+  class CRedistributeDomain;
+  class CDomain;
+  class CGenericAlgorithmTransformation ;
+  class CGrid;
+  ///--------------------------------------------------------------
+
+  // Declare/Define CFileAttribute
+  BEGIN_DECLARE_ATTRIBUTE_MAP(CRedistributeDomain)
+#include "redistribute_domain_attribute.conf"
+  END_DECLARE_ATTRIBUTE_MAP(CRedistributeDomain)
+
+  ///--------------------------------------------------------------
+  /*!
+    \class CRedistributeDomain
+    This class describes redistribute_from_file_domain in xml file.
+  */
+  class CRedistributeDomain
+    : public CObjectTemplate<CRedistributeDomain>
+    , public CRedistributeDomainAttributes
+    , public CTransformation<CDomain>
+  {
+    public :
+      typedef CObjectTemplate<CRedistributeDomain> SuperClass;
+      typedef CRedistributeDomainAttributes SuperClassAttribute;
+      typedef CRedistributeDomain MyClass ;
+      typedef CTransformation<CDomain> SuperTransform ;
+
+    public :
+      /// Constructeurs ///
+      CRedistributeDomain(void);
+      explicit CRedistributeDomain(const StdString& id);
+
+      /// Destructeur ///
+      virtual ~CRedistributeDomain(void);
+
+      virtual void checkValid(CDomain* domainSource);
+
+      /// Accesseurs statiques ///
+      static StdString GetName(void);
+      static StdString GetDefName(void);
+      static ENodeType GetType(void);
+      const string& getId(void) { return this->SuperClass::getId();}
+      ETranformationType getTransformationType(void) { return TRANS_REDISTRIBUTE_DOMAIN ;}
+      static CTransformation<CDomain>* getTransformation(const StdString& id) { return SuperClass::get(id);}
+      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;}
+      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource,
+                                                               CGrid* gridDst, CGrid* gridSrc,
+                                                               int elementPositionInGrid,
+                                                               std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
+                                                               std::map<int, int>& elementPositionInGridSrc2AxisPosition,
+                                                               std::map<int, int>& elementPositionInGridSrc2DomainPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2ScalarPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2AxisPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2DomainPosition)  ;
+    private:
+      static bool registerTrans();
+      static CTransformation<CDomain>* create(const StdString& id, xml::CXMLNode* node);
+      static bool _dummyRegistered;
+  }; // class CRedistributeDomain
+
+  DECLARE_GROUP(CRedistributeDomain);
+} // namespace xios
+
+#endif // __XIOS_CRedistributeDomain__
Index: XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_scalar.cpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_scalar.cpp	(revision 2460)
+++ XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_scalar.cpp	(revision 2460)
@@ -0,0 +1,62 @@
+#include "redistribute_scalar.hpp"
+#include "scalar_algorithm_redistribute.hpp"
+#include "type.hpp"
+#include "field.hpp"
+
+namespace xios
+{
+
+  /// ////////////////////// DÃ©finitions ////////////////////// ///
+
+  CRedistributeScalar::CRedistributeScalar(void)
+    : CObjectTemplate<CRedistributeScalar>(), CRedistributeScalarAttributes(), CTransformation<CScalar>()
+  { /* Ne rien faire de plus */ }
+
+  CRedistributeScalar::CRedistributeScalar(const StdString & id)
+    : CObjectTemplate<CRedistributeScalar>(id), CRedistributeScalarAttributes(), CTransformation<CScalar>()
+  { /* Ne rien faire de plus */ }
+
+  CRedistributeScalar::~CRedistributeScalar(void)
+  {}
+
+  CTransformation<CScalar>* CRedistributeScalar::create(const StdString& id, xml::CXMLNode* node)
+  {
+    CRedistributeScalar* redistributeScalar = CRedistributeScalarGroup::get("redistribute_scalar_definition")->createChild(id);
+    if (node) redistributeScalar->parse(*node);
+    return static_cast<CTransformation<CScalar>*>(redistributeScalar);
+  }
+
+  bool CRedistributeScalar::registerTrans()
+  {
+    return registerTransformation(TRANS_REDISTRIBUTE_SCALAR, {create, getTransformation});
+  }
+
+  bool CRedistributeScalar::_dummyRegistered = CRedistributeScalar::registerTrans();
+
+  //----------------------------------------------------------------
+
+  StdString CRedistributeScalar::GetName(void)    { return StdString("redistribute_scalar"); }
+  StdString CRedistributeScalar::GetDefName(void) { return StdString("redistribute_scalar"); }
+  ENodeType CRedistributeScalar::GetType(void)    { return eRedistributeScalar; }
+
+  void CRedistributeScalar::checkValid(CScalar* scalarSrc)
+  {
+
+  }
+
+  shared_ptr<CGenericAlgorithmTransformation> CRedistributeScalar::createAlgorithm(bool isSource,
+                                                        CGrid* gridDst, CGrid* gridSrc,
+                                                        int elementPositionInGrid,
+                                                        std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
+                                                        std::map<int, int>& elementPositionInGridSrc2AxisPosition,
+                                                        std::map<int, int>& elementPositionInGridSrc2DomainPosition,
+                                                        std::map<int, int>& elementPositionInGridDst2ScalarPosition,
+                                                        std::map<int, int>& elementPositionInGridDst2AxisPosition,
+                                                        std::map<int, int>& elementPositionInGridDst2DomainPosition)
+  {
+       
+    return CScalarAlgorithmRedistribute::create(isSource, gridDst,  gridSrc, this, elementPositionInGrid, 
+                elementPositionInGridSrc2ScalarPosition, elementPositionInGridSrc2AxisPosition, elementPositionInGridSrc2DomainPosition,
+                elementPositionInGridDst2ScalarPosition, elementPositionInGridDst2AxisPosition, elementPositionInGridDst2DomainPosition);
+  }
+}
Index: XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_scalar.hpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_scalar.hpp	(revision 2460)
+++ XIOS3/dev/XIOS_ATTACHED/src/node/redistribute_scalar.hpp	(revision 2460)
@@ -0,0 +1,83 @@
+#ifndef __XIOS_CRedistributeScalar__
+#define __XIOS_CRedistributeScalar__
+
+/// xios headers ///
+#include "xios_spl.hpp"
+#include "attribute_enum.hpp"
+#include "attribute_enum_impl.hpp"
+#include "attribute_array.hpp"
+#include "declare_attribute.hpp"
+#include "object_template.hpp"
+#include "group_factory.hpp"
+#include "declare_group.hpp"
+#include "transformation.hpp"
+#include "scalar.hpp"
+
+namespace xios {
+  /// ////////////////////// DÃ©clarations ////////////////////// ///
+  class CRedistributeScalarGroup;
+  class CRedistributeScalarAttributes;
+  class CRedistributeScalar;
+  class CScalar;
+  class CGenericAlgorithmTransformation ;
+  class CGrid;
+  ///--------------------------------------------------------------
+
+  // Declare/Define CFileAttribute
+  BEGIN_DECLARE_ATTRIBUTE_MAP(CRedistributeScalar)
+#include "redistribute_scalar_attribute.conf"
+  END_DECLARE_ATTRIBUTE_MAP(CRedistributeScalar)
+
+  ///--------------------------------------------------------------
+  /*!
+    \class CRedistributeScalar
+    This class describes redistribute_from_file_scalar in xml file.
+  */
+  class CRedistributeScalar
+    : public CObjectTemplate<CRedistributeScalar>
+    , public CRedistributeScalarAttributes
+    , public CTransformation<CScalar>
+  {
+    public :
+      typedef CObjectTemplate<CRedistributeScalar> SuperClass;
+      typedef CRedistributeScalarAttributes SuperClassAttribute;
+      typedef CRedistributeScalar MyClass ;
+      typedef CTransformation<CScalar> SuperTransform ;
+
+    public :
+      /// Constructeurs ///
+      CRedistributeScalar(void);
+      explicit CRedistributeScalar(const StdString& id);
+
+      /// Destructeur ///
+      virtual ~CRedistributeScalar(void);
+
+      virtual void checkValid(CScalar* scalarSource);
+
+      /// Accesseurs statiques ///
+      static StdString GetName(void);
+      static StdString GetDefName(void);
+      static ENodeType GetType(void);
+      const string& getId(void) { return this->SuperClass::getId();}
+      ETranformationType getTransformationType(void) { return TRANS_REDISTRIBUTE_SCALAR ;}
+      static CTransformation<CScalar>* getTransformation(const StdString& id) { return SuperClass::get(id);}
+      virtual void inheritFrom(SuperTransform* srcTransform) { solveDescInheritance(true, this->SuperClass::get((MyClass*)srcTransform)) ;}
+      virtual shared_ptr<CGenericAlgorithmTransformation> createAlgorithm(bool isSource,
+                                                               CGrid* gridDst, CGrid* gridSrc,
+                                                               int elementPositionInGrid,
+                                                               std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
+                                                               std::map<int, int>& elementPositionInGridSrc2AxisPosition,
+                                                               std::map<int, int>& elementPositionInGridSrc2DomainPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2ScalarPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2AxisPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2DomainPosition)  ;
+    private:
+      static bool registerTrans();
+      static CTransformation<CScalar>* create(const StdString& id, xml::CXMLNode* node);
+      static bool _dummyRegistered;
+  }; // class CRedistributeScalar
+
+  DECLARE_GROUP(CRedistributeScalar);
+} // namespace xios
+
+#endif // __XIOS_CRedistributeScalar__
Index: XIOS3/dev/XIOS_ATTACHED/src/object_factory_decl2.cpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/object_factory_decl2.cpp	(revision 2459)
+++ XIOS3/dev/XIOS_ATTACHED/src/object_factory_decl2.cpp	(revision 2460)
@@ -23,4 +23,7 @@
   macro(CPoolNode)
   macro(CServiceNode)
+  macro(CRedistributeDomain)
+  macro(CRedistributeAxis)
+  macro(CRedistributeScalar)
 }
 
Index: XIOS3/dev/XIOS_ATTACHED/src/object_factory_decl4.cpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/object_factory_decl4.cpp	(revision 2459)
+++ XIOS3/dev/XIOS_ATTACHED/src/object_factory_decl4.cpp	(revision 2460)
@@ -19,4 +19,7 @@
   macro(CReorderDomainGroup)
   macro(CExtractDomainGroup)
+  macro(CRedistributeDomainGroup)
+  macro(CRedistributeAxisGroup)
+  macro(CRedistributeScalarGroup)
 }
 
Index: XIOS3/dev/XIOS_ATTACHED/src/object_template_decl.cpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/object_template_decl.cpp	(revision 2459)
+++ XIOS3/dev/XIOS_ATTACHED/src/object_template_decl.cpp	(revision 2460)
@@ -38,4 +38,8 @@
   template class CObjectTemplate<CPoolNode>;
   template class CObjectTemplate<CServiceNode>;
+  template class CObjectTemplate<CRedistributeDomain>;
+  template class CObjectTemplate<CRedistributeAxis>;
+  template class CObjectTemplate<CRedistributeScalar>;
+
   
   template class CObjectTemplate<CContextGroup>;
@@ -71,4 +75,7 @@
   template class CObjectTemplate<CPoolNodeGroup>;
   template class CObjectTemplate<CServiceNodeGroup>;
+  template class CObjectTemplate<CRedistributeDomainGroup>;
+  template class CObjectTemplate<CRedistributeAxisGroup>;
+  template class CObjectTemplate<CRedistributeScalarGroup>;
 
 }
Index: XIOS3/dev/XIOS_ATTACHED/src/transformation/algo_types.cpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/transformation/algo_types.cpp	(revision 2459)
+++ XIOS3/dev/XIOS_ATTACHED/src/transformation/algo_types.cpp	(revision 2460)
@@ -10,10 +10,9 @@
       if (!first) return ;
       bool ret ;
-      std::cout<<"register Transformation"<<std::endl ;
       ret=CScalarAlgorithmReduceAxis::registerTrans();
       ret=CScalarAlgorithmExtractAxis::registerTrans();
       ret=CScalarAlgorithmReduceDomain::registerTrans();
       ret=CScalarAlgorithmReduceScalar::registerTrans();
-
+      ret=CScalarAlgorithmRedistribute::registerTrans() ;
       //! Axis
       ret=CAxisAlgorithmZoom::registerTrans();
@@ -27,4 +26,5 @@
       ret=CAxisAlgorithmTemporalSplitting::registerTrans();
       ret=CAxisAlgorithmDuplicateScalar::registerTrans();
+      ret=CAxisAlgorithmRedistribute::registerTrans() ;
 
       //! Domain
@@ -36,4 +36,5 @@
       ret=CDomainAlgorithmExtract::registerTrans();
       ret=CDomainAlgorithmGenerateRectilinear::registerTrans() ;
+      ret=CDomainAlgorithmRedistribute::registerTrans() ;
       first=false ;
     }
Index: XIOS3/dev/XIOS_ATTACHED/src/transformation/algo_types.hpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/transformation/algo_types.hpp	(revision 2459)
+++ XIOS3/dev/XIOS_ATTACHED/src/transformation/algo_types.hpp	(revision 2460)
@@ -14,4 +14,5 @@
 #include "scalar_algorithm_reduce_domain.hpp"
 #include "scalar_algorithm_reduce_scalar.hpp"
+#include "scalar_algorithm_redistribute.hpp"
 
 #include "axis_algorithm_inverse.hpp"
@@ -25,5 +26,5 @@
 #include "axis_algorithm_temporal_splitting.hpp"
 #include "axis_algorithm_duplicate_scalar.hpp"
-
+#include "axis_algorithm_redistribute.hpp"
 
 #include "domain_algorithm_zoom.hpp"
@@ -34,4 +35,5 @@
 #include "domain_algorithm_reorder.hpp"
 #include "domain_algorithm_extract.hpp"
+#include "domain_algorithm_redistribute.hpp"
 
 namespace xios
Index: XIOS3/dev/XIOS_ATTACHED/src/transformation/axis_algorithm/axis_algorithm_redistribute.cpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/transformation/axis_algorithm/axis_algorithm_redistribute.cpp	(revision 2460)
+++ XIOS3/dev/XIOS_ATTACHED/src/transformation/axis_algorithm/axis_algorithm_redistribute.cpp	(revision 2460)
@@ -0,0 +1,55 @@
+/*!
+   \file axis_algorithm_redistribute.cpp
+   \brief Algorithm for redistribute an axis.
+ */
+#include "axis_algorithm_redistribute.hpp"
+#include "redistribute_axis.hpp"
+#include "axis.hpp"
+#include "grid.hpp"
+#include "grid_transformation_factory_impl.hpp"
+
+namespace xios
+{
+
+  shared_ptr<CGenericAlgorithmTransformation> CAxisAlgorithmRedistribute::create(bool isSource, CGrid* gridDst, CGrid* gridSrc,
+                                                               CTransformation<CAxis>* transformation,
+                                                               int elementPositionInGrid,
+                                                               std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
+                                                               std::map<int, int>& elementPositionInGridSrc2AxisPosition,
+                                                               std::map<int, int>& elementPositionInGridSrc2DomainPosition, 
+                                                               std::map<int, int>& elementPositionInGridDst2ScalarPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2AxisPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2DomainPosition)
+  TRY
+  {
+    std::vector<CAxis*> axisListDestP = gridDst->getAxis();
+    std::vector<CAxis*> axisListSrcP  = gridSrc->getAxis();
+
+    CRedistributeAxis* redistributeAxis = dynamic_cast<CRedistributeAxis*> (transformation);
+    int axisDstIndex = elementPositionInGridDst2AxisPosition[elementPositionInGrid];
+    int axisSrcIndex = elementPositionInGridSrc2AxisPosition[elementPositionInGrid];
+
+    return make_shared<CAxisAlgorithmRedistribute>(isSource, axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], redistributeAxis);
+  }
+  CATCH
+
+  bool CAxisAlgorithmRedistribute::dummyRegistered_ = CAxisAlgorithmRedistribute::registerTrans();
+  bool CAxisAlgorithmRedistribute::registerTrans()
+  TRY
+  {
+    return CGridTransformationFactory<CAxis>::registerTransformation(TRANS_REDISTRIBUTE_AXIS, create);
+  }
+  CATCH
+
+  CAxisAlgorithmRedistribute::CAxisAlgorithmRedistribute(bool isSource, CAxis* axisDestination, CAxis* axisSource, CRedistributeAxis* redistributeAxis)
+  : CAlgorithmTransformationTransfer(isSource)
+  TRY
+  {
+
+
+    axisDestination->checkAttributes() ;
+  }
+  CATCH
+
+
+}
Index: XIOS3/dev/XIOS_ATTACHED/src/transformation/axis_algorithm/axis_algorithm_redistribute.hpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/transformation/axis_algorithm/axis_algorithm_redistribute.hpp	(revision 2460)
+++ XIOS3/dev/XIOS_ATTACHED/src/transformation/axis_algorithm/axis_algorithm_redistribute.hpp	(revision 2460)
@@ -0,0 +1,45 @@
+/*!
+   \brief Algorithm for redistributing axis.
+ */
+#ifndef __XIOS_AXIS_ALGORITHM_REDISTRIBUTE_HPP__
+#define __XIOS_AXIS_ALGORITHM_REDISTRIBUTE_HPP__
+
+#include "algorithm_transformation_transfer.hpp"
+#include "transformation.hpp"
+
+namespace xios 
+{
+
+  class CAxis;
+  class CRedistributeAxis;
+
+  /*!
+    \class CAxisAlgorithmReorder
+    Redistribute data on axis
+  */
+  class CAxisAlgorithmRedistribute : public CAlgorithmTransformationTransfer  
+  {
+    public:
+      CAxisAlgorithmRedistribute(bool isSource, CAxis* axisDestination, CAxis* axisSource, CRedistributeAxis* redistributeAxis);
+
+      virtual ~CAxisAlgorithmRedistribute() {}
+
+      static bool registerTrans();
+      virtual StdString getAlgoName() {return "\\nredistribute_axis";}
+
+  
+    public:
+      static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc,
+                                                     CTransformation<CAxis>* transformation,
+                                                     int elementPositionInGrid,
+                                                     std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
+                                                     std::map<int, int>& elementPositionInGridSrc2AxisPosition,
+                                                     std::map<int, int>& elementPositionInGridSrc2DomainPosition,
+                                                     std::map<int, int>& elementPositionInGridDst2ScalarPosition,
+                                                     std::map<int, int>& elementPositionInGridDst2AxisPosition,
+                                                     std::map<int, int>& elementPositionInGridDst2DomainPosition);
+      static bool dummyRegistered_;
+};
+
+}
+#endif // __XIOS_DOMAIN_ALGORITHM_REDISTRIBUTE_HPP__
Index: XIOS3/dev/XIOS_ATTACHED/src/transformation/domain_algorithm/domain_algorithm_redistribute.cpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/transformation/domain_algorithm/domain_algorithm_redistribute.cpp	(revision 2460)
+++ XIOS3/dev/XIOS_ATTACHED/src/transformation/domain_algorithm/domain_algorithm_redistribute.cpp	(revision 2460)
@@ -0,0 +1,55 @@
+/*!
+   \file domain_algorithm_redistribute.cpp
+   \brief Algorithm for redistribute a domain.
+ */
+#include "domain_algorithm_redistribute.hpp"
+#include "redistribute_domain.hpp"
+#include "domain.hpp"
+#include "grid.hpp"
+#include "grid_transformation_factory_impl.hpp"
+
+namespace xios
+{
+
+  shared_ptr<CGenericAlgorithmTransformation> CDomainAlgorithmRedistribute::create(bool isSource, CGrid* gridDst, CGrid* gridSrc,
+                                                               CTransformation<CDomain>* transformation,
+                                                               int elementPositionInGrid,
+                                                               std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
+                                                               std::map<int, int>& elementPositionInGridSrc2AxisPosition,
+                                                               std::map<int, int>& elementPositionInGridSrc2DomainPosition, 
+                                                               std::map<int, int>& elementPositionInGridDst2ScalarPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2AxisPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2DomainPosition)
+  TRY
+  {
+    std::vector<CDomain*> domainListDestP = gridDst->getDomains();
+    std::vector<CDomain*> domainListSrcP  = gridSrc->getDomains();
+
+    CRedistributeDomain* redistributeDomain = dynamic_cast<CRedistributeDomain*> (transformation);
+    int domainDstIndex = elementPositionInGridDst2DomainPosition[elementPositionInGrid];
+    int domainSrcIndex = elementPositionInGridSrc2DomainPosition[elementPositionInGrid];
+
+    return make_shared<CDomainAlgorithmRedistribute>(isSource, domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], redistributeDomain);
+  }
+  CATCH
+
+  bool CDomainAlgorithmRedistribute::dummyRegistered_ = CDomainAlgorithmRedistribute::registerTrans();
+  bool CDomainAlgorithmRedistribute::registerTrans()
+  TRY
+  {
+    return CGridTransformationFactory<CDomain>::registerTransformation(TRANS_REDISTRIBUTE_DOMAIN, create);
+  }
+  CATCH
+
+  CDomainAlgorithmRedistribute::CDomainAlgorithmRedistribute(bool isSource, CDomain* domainDestination, CDomain* domainSource, CRedistributeDomain* redistributeDomain)
+  : CAlgorithmTransformationTransfer(isSource)
+  TRY
+  {
+
+
+    domainDestination->checkAttributes() ;
+  }
+  CATCH
+
+
+}
Index: XIOS3/dev/XIOS_ATTACHED/src/transformation/domain_algorithm/domain_algorithm_redistribute.hpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/transformation/domain_algorithm/domain_algorithm_redistribute.hpp	(revision 2460)
+++ XIOS3/dev/XIOS_ATTACHED/src/transformation/domain_algorithm/domain_algorithm_redistribute.hpp	(revision 2460)
@@ -0,0 +1,45 @@
+/*!
+   \brief Algorithm for redistributing domain.
+ */
+#ifndef __XIOS_DOMAIN_ALGORITHM_REDISTRIBUTE_HPP__
+#define __XIOS_DOMAIN_ALGORITHM_REDISTRIBUTE_HPP__
+
+#include "algorithm_transformation_transfer.hpp"
+#include "transformation.hpp"
+
+namespace xios 
+{
+
+  class CDomain;
+  class CRedistributeDomain;
+
+  /*!
+    \class CDomainAlgorithmReorder
+    Redistribute data on domain
+  */
+  class CDomainAlgorithmRedistribute : public CAlgorithmTransformationTransfer  
+  {
+    public:
+      CDomainAlgorithmRedistribute(bool isSource, CDomain* domainDestination, CDomain* domainSource, CRedistributeDomain* redistributeDomain);
+
+      virtual ~CDomainAlgorithmRedistribute() {}
+
+      static bool registerTrans();
+      virtual StdString getAlgoName() {return "\\nredistribute_domain";}
+
+  
+    public:
+      static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc,
+                                                     CTransformation<CDomain>* transformation,
+                                                     int elementPositionInGrid,
+                                                     std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
+                                                     std::map<int, int>& elementPositionInGridSrc2AxisPosition,
+                                                     std::map<int, int>& elementPositionInGridSrc2DomainPosition,
+                                                     std::map<int, int>& elementPositionInGridDst2ScalarPosition,
+                                                     std::map<int, int>& elementPositionInGridDst2AxisPosition,
+                                                     std::map<int, int>& elementPositionInGridDst2DomainPosition);
+      static bool dummyRegistered_;
+};
+
+}
+#endif // __XIOS_DOMAIN_ALGORITHM_REDISTRIBUTE_HPP__
Index: XIOS3/dev/XIOS_ATTACHED/src/transformation/scalar_algorithm/scalar_algorithm_redistribute.cpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/transformation/scalar_algorithm/scalar_algorithm_redistribute.cpp	(revision 2460)
+++ XIOS3/dev/XIOS_ATTACHED/src/transformation/scalar_algorithm/scalar_algorithm_redistribute.cpp	(revision 2460)
@@ -0,0 +1,55 @@
+/*!
+   \file scalar_algorithm_redistribute.cpp
+   \brief Algorithm for redistribute a scalar.
+ */
+#include "scalar_algorithm_redistribute.hpp"
+#include "redistribute_scalar.hpp"
+#include "scalar.hpp"
+#include "grid.hpp"
+#include "grid_transformation_factory_impl.hpp"
+
+namespace xios
+{
+
+  shared_ptr<CGenericAlgorithmTransformation> CScalarAlgorithmRedistribute::create(bool isSource, CGrid* gridDst, CGrid* gridSrc,
+                                                               CTransformation<CScalar>* transformation,
+                                                               int elementPositionInGrid,
+                                                               std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
+                                                               std::map<int, int>& elementPositionInGridSrc2AxisPosition,
+                                                               std::map<int, int>& elementPositionInGridSrc2DomainPosition, 
+                                                               std::map<int, int>& elementPositionInGridDst2ScalarPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2AxisPosition,
+                                                               std::map<int, int>& elementPositionInGridDst2DomainPosition)
+  TRY
+  {
+    std::vector<CScalar*> scalarListDestP = gridDst->getScalars();
+    std::vector<CScalar*> scalarListSrcP  = gridSrc->getScalars();
+
+    CRedistributeScalar* redistributeScalar = dynamic_cast<CRedistributeScalar*> (transformation);
+    int scalarDstIndex = elementPositionInGridDst2ScalarPosition[elementPositionInGrid];
+    int scalarSrcIndex = elementPositionInGridSrc2ScalarPosition[elementPositionInGrid];
+
+    return make_shared<CScalarAlgorithmRedistribute>(isSource, scalarListDestP[scalarDstIndex], scalarListSrcP[scalarSrcIndex], redistributeScalar);
+  }
+  CATCH
+
+  bool CScalarAlgorithmRedistribute::dummyRegistered_ = CScalarAlgorithmRedistribute::registerTrans();
+  bool CScalarAlgorithmRedistribute::registerTrans()
+  TRY
+  {
+    return CGridTransformationFactory<CScalar>::registerTransformation(TRANS_REDISTRIBUTE_SCALAR, create);
+  }
+  CATCH
+
+  CScalarAlgorithmRedistribute::CScalarAlgorithmRedistribute(bool isSource, CScalar* scalarDestination, CScalar* scalarSource, CRedistributeScalar* redistributeScalar)
+  : CAlgorithmTransformationTransfer(isSource)
+  TRY
+  {
+
+
+    scalarDestination->checkAttributes() ;
+  }
+  CATCH
+
+
+}
Index: XIOS3/dev/XIOS_ATTACHED/src/transformation/scalar_algorithm/scalar_algorithm_redistribute.hpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/transformation/scalar_algorithm/scalar_algorithm_redistribute.hpp	(revision 2460)
+++ XIOS3/dev/XIOS_ATTACHED/src/transformation/scalar_algorithm/scalar_algorithm_redistribute.hpp	(revision 2460)
@@ -0,0 +1,45 @@
+/*!
+   \brief Algorithm for redistributing scalar.
+ */
+#ifndef __XIOS_SCALAR_ALGORITHM_REDISTRIBUTE_HPP__
+#define __XIOS_SCALAR_ALGORITHM_REDISTRIBUTE_HPP__
+
+#include "algorithm_transformation_transfer.hpp"
+#include "transformation.hpp"
+
+namespace xios 
+{
+
+  class CScalar;
+  class CRedistributeScalar;
+
+  /*!
+    \class CDomainAlgorithmReorder
+    Redistribute data on domain
+  */
+  class CScalarAlgorithmRedistribute : public CAlgorithmTransformationTransfer  
+  {
+    public:
+      CScalarAlgorithmRedistribute(bool isSource, CScalar* scalarDestination, CScalar* scalarSource, CRedistributeScalar* redistributeScalar);
+
+      virtual ~CScalarAlgorithmRedistribute() {}
+
+      static bool registerTrans();
+      virtual StdString getAlgoName() {return "\\nredistribute_scalar";}
+
+  
+    public:
+      static shared_ptr<CGenericAlgorithmTransformation> create(bool isSource, CGrid* gridDst, CGrid* gridSrc,
+                                                     CTransformation<CScalar>* transformation,
+                                                     int elementPositionInGrid,
+                                                     std::map<int, int>& elementPositionInGridSrc2ScalarPosition,
+                                                     std::map<int, int>& elementPositionInGridSrc2AxisPosition,
+                                                     std::map<int, int>& elementPositionInGridSrc2DomainPosition,
+                                                     std::map<int, int>& elementPositionInGridDst2ScalarPosition,
+                                                     std::map<int, int>& elementPositionInGridDst2AxisPosition,
+                                                     std::map<int, int>& elementPositionInGridDst2DomainPosition);
+      static bool dummyRegistered_;
+};
+
+}
+#endif // __XIOS_SCALAR_ALGORITHM_REDISTRIBUTE_HPP__
Index: XIOS3/dev/XIOS_ATTACHED/src/transformation/transformation_enum.hpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/transformation/transformation_enum.hpp	(revision 2459)
+++ XIOS3/dev/XIOS_ATTACHED/src/transformation/transformation_enum.hpp	(revision 2460)
@@ -26,5 +26,8 @@
         TRANS_REORDER_DOMAIN = 17,
         TRANS_EXTRACT_DOMAIN = 18,
-        TRANS_EXTRACT_AXIS = 19
+        TRANS_EXTRACT_AXIS = 19,
+        TRANS_REDISTRIBUTE_DOMAIN = 20,
+        TRANS_REDISTRIBUTE_AXIS = 21,
+        TRANS_REDISTRIBUTE_SCALAR = 22
       } ETranformationType;
 
Index: XIOS3/dev/XIOS_ATTACHED/src/type/type_util.hpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/type/type_util.hpp	(revision 2459)
+++ XIOS3/dev/XIOS_ATTACHED/src/type/type_util.hpp	(revision 2460)
@@ -70,5 +70,11 @@
     class CServiceNode ;
     class CServiceNodeGroup ;
-      
+    class CRedistributeDomain;
+    class CRedistributeDomainGroup;
+    class CRedistributeAxis;
+    class CRedistributeAxisGroup;
+    class CRedistributeScalar;
+    class CRedistributeScalarGroup;
+       
   template <typename T> inline string getStrType(void);
 
@@ -158,5 +164,11 @@
   macro(CServiceNode)
   macro(CServiceNodeGroup)
-  
+  macro(CRedistributeDomain)
+  macro(CRedistributeDomainGroup)  
+  macro(CRedistributeAxis)
+  macro(CRedistributeAxisGroup)  
+  macro(CRedistributeScalar)
+  macro(CRedistributeScalarGroup)  
+
 #undef macro
 }
Index: XIOS3/dev/XIOS_ATTACHED/src/xml_parser_decl.cpp
===================================================================
--- XIOS3/dev/XIOS_ATTACHED/src/xml_parser_decl.cpp	(revision 2459)
+++ XIOS3/dev/XIOS_ATTACHED/src/xml_parser_decl.cpp	(revision 2460)
@@ -44,4 +44,8 @@
     macro( PoolNode )
     macro( ServiceNode )
+    macro( RedistributeDomain )
+    macro( RedistributeAxis )
+    macro( RedistributeScalar )
+
   }
 }
