Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_compute_connectivity.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_compute_connectivity.cpp	(revision 1988)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_compute_connectivity.cpp	(revision 1998)
@@ -47,5 +47,5 @@
 CDomainAlgorithmComputeConnectivity::CDomainAlgorithmComputeConnectivity(bool isSource, CDomain* domainDestination, CDomain* domainSource,
                                                                          CComputeConnectivityDomain* compute_connectivityDomain)
-: CDomainAlgorithmTransformation(isSource, domainDestination, domainSource)
+: CAlgorithmTransformationNoDataModification(isSource)
 TRY
 {
@@ -103,10 +103,3 @@
 CATCH
 
-/*!
-  Compute the index mapping between domain on grid source and one on grid destination
-*/
-void CDomainAlgorithmComputeConnectivity::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs)
-{
 }
-
-}
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_compute_connectivity.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_compute_connectivity.hpp	(revision 1988)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_compute_connectivity.hpp	(revision 1998)
@@ -10,5 +10,5 @@
 #define __XIOS_DOMAIN_ALGORITHM_COMPUTE_CONNECTIVITY_HPP__
 
-#include "domain_algorithm_transformation.hpp"
+#include "algorithm_transformation_no_data_modification.hpp"
 #include "transformation.hpp"
 
@@ -20,5 +20,5 @@
   \class CDomainAlgorithmComputeConnectivity
 */
-class CDomainAlgorithmComputeConnectivity : public CDomainAlgorithmTransformation
+class CDomainAlgorithmComputeConnectivity : public CAlgorithmTransformationNoDataModification
 {
 public:
@@ -28,6 +28,4 @@
 
   static bool registerTrans();
-protected:
-  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
 
 protected:
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_expand.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_expand.cpp	(revision 1988)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_expand.cpp	(revision 1998)
@@ -50,6 +50,5 @@
                                                CDomain* domainSource,
                                                CExpandDomain* expandDomain)
-: CDomainAlgorithmTransformation(isSource, domainDestination, domainSource),
-  isXPeriodic_(false), isYPeriodic_(false)
+: CAlgorithmTransformationTransfer(isSource), isXPeriodic_(false), isYPeriodic_(false)
 TRY
 {
@@ -61,6 +60,4 @@
            << "Domain destination " <<domainDestination->getId() << std::endl);
   }
-
-  this->type_ = (ELEMENT_MODIFICATION_WITH_DATA);
   // Make sure domain source have all valid attributes
   // domainSource->checkAllAttributes();
@@ -82,4 +79,7 @@
       break;
   }
+
+  domainDestination->checkAttributes() ;
+  this->computeAlgorithm(domainSource->getLocalView(CElementView::WORKFLOW), domainDestination->getLocalView(CElementView::WORKFLOW)) ;
 }
 CATCH
@@ -291,11 +291,6 @@
   // 1. Fill in array relating to global index (i_index, j_index, transmap, etc, ...)
   // Global index mapping between destination and source
-  this->transformationMapping_.resize(1);
-  this->transformationWeight_.resize(1);
-  TransformationIndexMap& transMap = this->transformationMapping_[0];
-  TransformationWeightMap& transWeight = this->transformationWeight_[0];
-
-  transMap.rehash(std::ceil(newNbLocalDst/transMap.max_load_factor()));
-  transWeight.rehash(std::ceil(newNbLocalDst/transWeight.max_load_factor()));
+  
+  transformationMapping_.rehash(std::ceil(newNbLocalDst/transformationMapping_.max_load_factor()));
   
   // Index mapping for local domain
@@ -311,6 +306,5 @@
     globalIndexSrcOnDstDomain(idx) = globIndexSrc;
 
-    transMap[globIndexDst].push_back(globIndexSrc);
-    transWeight[globIndexDst].push_back(1.0); 
+    transformationMapping_[globIndexDst] = globIndexSrc;
   }
 
@@ -569,17 +563,11 @@
   // 1. Fill in array relating to global index (i_index, j_index, transmap, etc, ...)
   // Global index mapping between destination and source
-  this->transformationMapping_.resize(1);
-  this->transformationWeight_.resize(1);
-  TransformationIndexMap& transMap = this->transformationMapping_[0];
-  TransformationWeightMap& transWeight = this->transformationWeight_[0];
-
-  transMap.rehash(std::ceil(newNbLocalDst/transMap.max_load_factor()));
-  transWeight.rehash(std::ceil(newNbLocalDst/transWeight.max_load_factor()));
+  
+  transformationMapping_.rehash(std::ceil(newNbLocalDst/transformationMapping_.max_load_factor()));
   // First, index mapping for local domain
   for (int idx = 0; idx < oldNbLocal; ++idx)
   {
     index = i_index_dst(idx);
-    transMap[index].push_back(index);
-    transWeight[index].push_back(1.0);
+    transformationMapping_[index] = index ;
   }
   // Then, index mapping for extended part
@@ -590,6 +578,5 @@
     i_index_dst(index) = globalIndex;
     j_index_dst(index) = 0;
-    transMap[globalIndex].push_back(globalIndex);
-    transWeight[globalIndex].push_back(1.0);
+    transformationMapping_[globalIndex]=globalIndex;
   }
 
@@ -704,11 +691,4 @@
 CATCH
 
-/*!
-  Compute the index mapping between domain on grid source and one on grid destination
-*/
-void CDomainAlgorithmExpand::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs)
-{
-
-}
-
-}
+
+}
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_expand.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_expand.hpp	(revision 1988)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_expand.hpp	(revision 1998)
@@ -10,5 +10,5 @@
 #define __XIOS_DOMAIN_ALGORITHM_EXPAND_HPP__
 
-#include "domain_algorithm_transformation.hpp"
+#include "algorithm_transformation_transfer.hpp"
 #include "transformation.hpp"
 
@@ -20,5 +20,5 @@
   \class CDomainAlgorithmExpand
 */
-class CDomainAlgorithmExpand : public CDomainAlgorithmTransformation
+class CDomainAlgorithmExpand : public CAlgorithmTransformationTransfer
 {
 public:
@@ -44,7 +44,4 @@
                                           CArray<int,2>& neighborsDomainSrc);
 
-protected:
-  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
-
 private:
   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc,
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_extract.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_extract.cpp	(revision 1988)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_extract.cpp	(revision 1998)
@@ -38,5 +38,5 @@
 
 CDomainAlgorithmExtract::CDomainAlgorithmExtract(bool isSource, CDomain* domainDestination, CDomain* domainSource, CExtractDomain* extractDomain)
-: CDomainAlgorithmTransformation(isSource, domainDestination, domainSource)
+: CAlgorithmTransformationTransfer(isSource), domainSrc_(domainSource), domainDest_(domainDestination)
 TRY
 {
@@ -151,10 +151,5 @@
   }
   if (domainSrc_->hasArea) domainDest_->area.resize(niDest,njDest);
-
-  this->transformationMapping_.resize(1);
-  this->transformationWeight_.resize(1);
-  TransformationIndexMap& transMap = this->transformationMapping_[0];
-  TransformationWeightMap& transWeight = this->transformationWeight_[0];
-
+  
   for (int iDest = 0; iDest < niDest; iDest++)
   {
@@ -219,6 +214,5 @@
       }
 
-      transMap[indGloDest].push_back(indGloSrc);
-      transWeight[indGloDest].push_back(1.0);
+      transformationMapping_[indGloDest]=indGloSrc;
 
     }
@@ -242,11 +236,4 @@
 CATCH
 
-/*!
-  Compute the index mapping between domain on grid source and one on grid destination
-*/
-void CDomainAlgorithmExtract::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs)
-{
-}
-
-
-}
+
+}
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_extract.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_extract.hpp	(revision 1988)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_extract.hpp	(revision 1998)
@@ -3,6 +3,6 @@
 #define __XIOS_DOMAIN_ALGORITHM_EXTRACT_HPP__
 
-#include "domain_algorithm_transformation.hpp"
 #include "transformation.hpp"
+#include "algorithm_transformation_transfer.hpp"
 
 namespace xios {
@@ -15,5 +15,5 @@
   Implementing extract (alternative zoom) on domain
 */
-class CDomainAlgorithmExtract : public CDomainAlgorithmTransformation
+class CDomainAlgorithmExtract : public CAlgorithmTransformationTransfer
 {
 public:
@@ -23,10 +23,4 @@
 
   static bool registerTrans();
-protected:
-  void updateDomainAttributes();
-  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
-
-private:
-  void updateExtract();
 
 private:
@@ -42,4 +36,7 @@
   int extractNi_;
   int extractNj_;
+  
+  CDomain* domainSrc_ ;
+  CDomain* domainDest_ ;
 
 private:
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_generate_rectilinear.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_generate_rectilinear.cpp	(revision 1988)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_generate_rectilinear.cpp	(revision 1998)
@@ -54,8 +54,7 @@
                                                                          CGrid* gridDest, CGrid* gridSource,
                                                                          CGenerateRectilinearDomain* genRectDomain)
-: CDomainAlgorithmTransformation(isSource, domainDestination, domainSource), nbDomainDistributedPart_(0)
+: CAlgorithmTransformationNoDataModification(isSource), nbDomainDistributedPart_(0), domainDest_(domainDestination)
 TRY
 {
-  type_ = ELEMENT_GENERATION;
   genRectDomain->checkValid(domainDestination);
   if (0 != gridSource) computeDistributionGridSource(gridSource);
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_generate_rectilinear.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_generate_rectilinear.hpp	(revision 1988)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_generate_rectilinear.hpp	(revision 1998)
@@ -10,5 +10,5 @@
 #define __XIOS_DOMAIN_ALGORITHM_GENERATE_RECTILINEAR_HPP__
 
-#include "domain_algorithm_transformation.hpp"
+#include "algorithm_transformation_no_data_modification.hpp"
 #include "transformation.hpp"
 
@@ -25,5 +25,5 @@
   The number of processes is deduced from the distribution of the grid source.
 */
-class CDomainAlgorithmGenerateRectilinear : public CDomainAlgorithmTransformation
+class CDomainAlgorithmGenerateRectilinear : public CAlgorithmTransformationNoDataModification
 {
 public:
@@ -53,4 +53,5 @@
 private:
   int nbDomainDistributedPart_; //! Number of local domain.
+  CDomain* domainDest_ ;
 
   static bool dummyRegistered_;
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_interpolate.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_interpolate.cpp	(revision 1988)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_interpolate.cpp	(revision 1998)
@@ -53,5 +53,5 @@
 
 CDomainAlgorithmInterpolate::CDomainAlgorithmInterpolate(bool isSource, CDomain* domainDestination, CDomain* domainSource, CInterpolateDomain* interpDomain)
-: CDomainAlgorithmTransformation(isSource, domainDestination, domainSource), interpDomain_(interpDomain), writeToFile_(false), readFromFile_(false)
+: CAlgorithmTransformationWeight(isSource), interpDomain_(interpDomain), writeToFile_(false), readFromFile_(false), domainSrc_(domainSource), domainDest_(domainDestination)
 TRY
 {
@@ -97,4 +97,10 @@
 
   writeToFile_ = interpDomain_->write_weight;  
+  domainDestination->checkAttributes() ;
+  
+  if (readFromFile_)  readRemapInfo();
+  else computeRemap(); 
+
+    this->computeAlgorithm(domainSource->getLocalView(CElementView::WORKFLOW), domainDestination->getLocalView(CElementView::WORKFLOW)) ;
     
 }
@@ -504,18 +510,4 @@
 CATCH
 
-/*!
-  Compute the index mapping between domain on grid source and one on grid destination
-*/
-void CDomainAlgorithmInterpolate::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs)
-TRY
-{
-  if (readFromFile_)  
-    readRemapInfo();
-  else
-  {
-    computeRemap(); 
-  }
-}
-CATCH
 
 void CDomainAlgorithmInterpolate::writeRemapInfo(std::map<int,std::vector<std::pair<int,double> > >& interpMapValue)
@@ -542,9 +534,6 @@
   int clientRank = context->intraCommRank_;
 
-  this->transformationMapping_.resize(1);
-  this->transformationWeight_.resize(1);
-
-  TransformationIndexMap& transMap = this->transformationMapping_[0];
-  TransformationWeightMap& transWeight = this->transformationWeight_[0];
+  TransformationIndexMap& transMap = this->transformationMapping_;
+  TransformationWeightMap& transWeight = this->transformationWeight_;
 
   std::map<int,std::vector<std::pair<int,double> > >::const_iterator itb = interpMapValue.begin(), it,
@@ -573,9 +562,6 @@
   int nbClient = context-> intraCommSize_;
 
-  this->transformationMapping_.resize(1);
-  this->transformationWeight_.resize(1);
-
-  TransformationIndexMap& transMap = this->transformationMapping_[0];
-  TransformationWeightMap& transWeight = this->transformationWeight_[0];
+  TransformationIndexMap& transMap = this->transformationMapping_;
+  TransformationWeightMap& transWeight = this->transformationWeight_;
 
   std::unordered_map<size_t,int> globalIndexOfDomainDest;
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_interpolate.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_interpolate.hpp	(revision 1988)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_interpolate.hpp	(revision 1998)
@@ -10,5 +10,5 @@
 #define __XIOS_DOMAIN_ALGORITHM_INTERPOLATE_HPP__
 
-#include "domain_algorithm_transformation.hpp"
+#include "algorithm_transformation_weight.hpp"
 #include "transformation.hpp"
 #include "nc4_data_output.hpp"
@@ -24,5 +24,5 @@
   Reading interpolation from file then apply on a domain
 */
-class CDomainAlgorithmInterpolate : public CDomainAlgorithmTransformation
+class CDomainAlgorithmInterpolate : public CAlgorithmTransformationWeight
 {
 public:
@@ -39,6 +39,4 @@
 
   static bool registerTrans();
-protected:
-  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
 
 private:
@@ -98,4 +96,8 @@
                                                 std::map<int, int>& elementPositionInGridDst2DomainPosition);
   static bool dummyRegistered_;
+
+  CDomain* domainSrc_ ;
+  CDomain* domainDest_ ;
+
 };
 
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_reorder.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_reorder.cpp	(revision 1988)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_reorder.cpp	(revision 1998)
@@ -41,5 +41,5 @@
 
 CDomainAlgorithmReorder::CDomainAlgorithmReorder(bool isSource, CDomain* domainDestination, CDomain* domainSource, CReorderDomain* reorderDomain)
-: CDomainAlgorithmTransformation(isSource, domainDestination, domainSource)
+: CAlgorithmTransformationNoDataModification(isSource)
 TRY
 {
@@ -118,18 +118,4 @@
 CATCH
 
-/*!
-  Compute the index mapping between domain on grid source and one on grid destination
-*/
-void CDomainAlgorithmReorder::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs)
-{
-/*
-  this->transformationMapping_.resize(1);
-  this->transformationWeight_.resize(1);
-
-  TransformationIndexMap& transMap = this->transformationMapping_[0];
-  TransformationWeightMap& transWeight = this->transformationWeight_[0];
-*/
-}
-
 
 }
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_reorder.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_reorder.hpp	(revision 1988)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_reorder.hpp	(revision 1998)
@@ -5,41 +5,38 @@
 #define __XIOS_DOMAIN_ALGORITHM_REORDER_HPP__
 
-#include "domain_algorithm_transformation.hpp"
+#include "algorithm_transformation_no_data_modification.hpp"
 #include "transformation.hpp"
 
-namespace xios {
+namespace xios 
+{
 
-class CDomain;
-class CReorderDomain;
+  class CDomain;
+  class CReorderDomain;
 
-/*!
-  \class CDomainAlgorithmReorder
-  Reordering data on domain
-*/
-class CDomainAlgorithmReorder : public CDomainAlgorithmTransformation
-{
-public:
-  CDomainAlgorithmReorder(bool isSource, CDomain* domainDestination, CDomain* domainSource, CReorderDomain* reorderDomain);
+  /*!
+    \class CDomainAlgorithmReorder
+    Reordering data on domain
+  */
+  class CDomainAlgorithmReorder : public CAlgorithmTransformationNoDataModification  
+  {
+    public:
+      CDomainAlgorithmReorder(bool isSource, CDomain* domainDestination, CDomain* domainSource, CReorderDomain* reorderDomain);
 
-  virtual ~CDomainAlgorithmReorder() {}
+      virtual ~CDomainAlgorithmReorder() {}
 
-  static bool registerTrans();
+      static bool registerTrans();
 
-protected:
-  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
+    private:
 
-
-private:
-
-  static 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_;
+      static 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_;
 };
 
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_zoom.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_zoom.cpp	(revision 1988)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_zoom.cpp	(revision 1998)
@@ -38,5 +38,5 @@
 
 CDomainAlgorithmZoom::CDomainAlgorithmZoom(bool isSource, CDomain* domainDestination, CDomain* domainSource, CZoomDomain* zoomDomain)
-: CDomainAlgorithmTransformation(isSource, domainDestination, domainSource)
+: CAlgorithmTransformationTransfer(isSource), domainSrc_(domainSource), domainDest_(domainDestination)
 TRY
 {
@@ -175,8 +175,4 @@
   if (domainSrc_->hasArea) domainDest_->area.resize(niDest,njDest);
 
-  this->transformationMapping_.resize(1);
-  this->transformationWeight_.resize(1);
-  TransformationIndexMap& transMap = this->transformationMapping_[0];
-  TransformationWeightMap& transWeight = this->transformationWeight_[0];
 
   for (int iDest = 0; iDest < niDest; iDest++)
@@ -252,6 +248,6 @@
       }
 
-      transMap[indGloDest].push_back(indGloSrc);
-      transWeight[indGloDest].push_back(1.0);
+      transformationMapping_[indGloDest]=indGloSrc;
+
     }
 
@@ -276,4 +272,5 @@
 
   domainDestination->checkAttributes() ;
+
   this->computeAlgorithm(domainSource->getLocalView(CElementView::WORKFLOW), domainDestination->getLocalView(CElementView::WORKFLOW)) ;
   
@@ -281,11 +278,3 @@
 CATCH
 
-/*!
-  Compute the index mapping between domain on grid source and one on grid destination
-*/
-void CDomainAlgorithmZoom::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs)
-{
-}
-
-
-}
+}
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_zoom.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_zoom.hpp	(revision 1988)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/transformation/domain_algorithm/domain_algorithm_zoom.hpp	(revision 1998)
@@ -3,5 +3,5 @@
 #define __XIOS_DOMAIN_ALGORITHM_ZOOM_HPP__
 
-#include "domain_algorithm_transformation.hpp"
+#include "algorithm_transformation_transfer.hpp"
 #include "transformation.hpp"
 
@@ -15,5 +15,5 @@
   Implementing zoom (alternative zoom) on domain
 */
-class CDomainAlgorithmZoom : public CDomainAlgorithmTransformation
+class CDomainAlgorithmZoom : public CAlgorithmTransformationTransfer
 {
 public:
@@ -25,6 +25,5 @@
 protected:
   void updateDomainAttributes();
-  void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
-
+ 
 private:
   void updateZoom();
@@ -42,4 +41,6 @@
   int zoomNi_;
   int zoomNj_;
+  CDomain* domainSrc_ ;
+  CDomain* domainDest_ ;
 
 private:
