Index: XIOS/dev/dev_trunk_graph/src/distribution/grid_transform_connector.cpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/distribution/grid_transform_connector.cpp	(revision 2029)
+++ XIOS/dev/dev_trunk_graph/src/distribution/grid_transform_connector.cpp	(revision 2030)
@@ -59,6 +59,9 @@
         vector<size_t> recvBuff(size) ;
         MPI_Recv(recvBuff.data(), size, MPI_SIZE_T, status.MPI_SOURCE,0, localComm_,&status) ;
-        CArray<size_t,1> arrayTmp(recvBuff.data(), shape(recvBuff.size()), duplicateData) ;
-        recvIndex[status.MPI_SOURCE].reference(arrayTmp) ;
+        if(size)
+        {
+          CArray<size_t,1> arrayTmp(recvBuff.data(), shape(recvBuff.size()), duplicateData) ;
+          recvIndex[status.MPI_SOURCE].reference(arrayTmp) ;
+        }
         if (recvRankSize_.count(status.MPI_SOURCE)==0) recvRankSize_[status.MPI_SOURCE] = size ; 
         else recvRankSize_[status.MPI_SOURCE] *= size ; 
Index: XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_duplicate_scalar.hpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_duplicate_scalar.hpp	(revision 2029)
+++ XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_duplicate_scalar.hpp	(revision 2030)
@@ -32,4 +32,5 @@
 
   static bool registerTrans();
+  virtual StdString getAlgoName() {return "\\nduplicate_scalar";}
 
   static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc,
Index: XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_extract.hpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_extract.hpp	(revision 2029)
+++ XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_extract.hpp	(revision 2030)
@@ -27,4 +27,5 @@
 
   static bool registerTrans();
+  virtual StdString getAlgoName() {return "\\nextract_axis";}
 
 private:
Index: XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_extract_domain.hpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_extract_domain.hpp	(revision 2029)
+++ XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_extract_domain.hpp	(revision 2030)
@@ -33,4 +33,5 @@
 
   static bool registerTrans();
+  virtual StdString getAlgoName() {return "\\nextract_domain)";}
 protected:
   enum ExtractDirection {
Index: XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_interpolate.hpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_interpolate.hpp	(revision 2029)
+++ XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_interpolate.hpp	(revision 2030)
@@ -32,4 +32,5 @@
 
   static bool registerTrans();
+  virtual StdString getAlgoName() {return "\\ninterpolate_axis";}
 
 private:
Index: XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_interpolate_coordinate.hpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_interpolate_coordinate.hpp	(revision 2029)
+++ XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_interpolate_coordinate.hpp	(revision 2030)
@@ -35,4 +35,5 @@
                      const vector<CArray<double,1>>& auxDataIn, CArray<double,1>& dataOut) ;
   static bool registerTrans();
+  virtual StdString getAlgoName() {return "\\ninterpolate_axis";}
   virtual CTransformFilter* createTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue) ;
   
Index: XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_inverse.cpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_inverse.cpp	(revision 2029)
+++ XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_inverse.cpp	(revision 2030)
@@ -62,8 +62,9 @@
   auto& transMap = this->transformationMapping_;
 
-  int globalIndexSize = axisDestination->index.size();
+  int globalIndexSize = axisSource->index.numElements();
   for (int idx = 0; idx < globalIndexSize; ++idx)
   {
-    transMap[axisDestination->index(idx)] = globalIndexSize-axisDestination->index(idx)-1;
+    //transMap[axisDestination->index(idx)] = globalIndexSize-axisDestination->index(idx)-1;
+    transMap[axisSource->index(idx)] = globalIndexSize-axisSource->index(idx)-1;
   }
 
Index: XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_inverse.hpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_inverse.hpp	(revision 2029)
+++ XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_inverse.hpp	(revision 2030)
@@ -30,4 +30,5 @@
 
   static bool registerTrans();
+  virtual StdString getAlgoName() {return "\\ninverse_axis";}
 
 
Index: XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_reduce_axis.hpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_reduce_axis.hpp	(revision 2029)
+++ XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_reduce_axis.hpp	(revision 2030)
@@ -32,4 +32,5 @@
 
   static bool registerTrans();
+  virtual StdString getAlgoName() {return "\\nreduce_axis_to_axis";}
 
 public:
Index: XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_reduce_domain.hpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_reduce_domain.hpp	(revision 2029)
+++ XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_reduce_domain.hpp	(revision 2030)
@@ -32,4 +32,6 @@
 
   static bool registerTrans();
+  virtual StdString getAlgoName() {return "\\nreduce_domain";}
+
 protected:
   enum ReduceDirection {
Index: XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_temporal_splitting.hpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_temporal_splitting.hpp	(revision 2029)
+++ XIOS/dev/dev_trunk_graph/src/transformation/axis_algorithm/axis_algorithm_temporal_splitting.hpp	(revision 2030)
@@ -29,4 +29,6 @@
       virtual ~CAxisAlgorithmTemporalSplitting();
       static bool registerTrans();
+      virtual StdString getAlgoName() {return "\\ntemporal_splitting";}
+
       virtual CTransformFilter* createTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, bool detectMissingValues, double defaultValue) ;
 
Index: XIOS/dev/dev_trunk_graph/src/transformation/domain_algorithm/domain_algorithm_reorder.cpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/transformation/domain_algorithm/domain_algorithm_reorder.cpp	(revision 2029)
+++ XIOS/dev/dev_trunk_graph/src/transformation/domain_algorithm/domain_algorithm_reorder.cpp	(revision 2030)
@@ -45,4 +45,7 @@
 {
   reorderDomain->checkValid(domainSource);
+  domainDestination->type = domainSource->type;
+  domainDestination->ni_glo.setValue(domainSource->ni_glo.getValue());
+  domainDestination->nj_glo.setValue(domainSource->nj_glo.getValue());
   domainDestination->checkAttributes() ; // for now but maybe use domainSource as template for domain destination
 
Index: XIOS/dev/dev_trunk_graph/src/transformation/domain_algorithm/domain_algorithm_zoom.cpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/transformation/domain_algorithm/domain_algorithm_zoom.cpp	(revision 2029)
+++ XIOS/dev/dev_trunk_graph/src/transformation/domain_algorithm/domain_algorithm_zoom.cpp	(revision 2030)
@@ -95,4 +95,11 @@
   ibeginDest = destIBegin + domainSrc_->ibegin - zoomIBegin_;
   jbeginDest = destJBegin + domainSrc_->jbegin - zoomJBegin_;
+  
+  if (niDest==0) ibeginDest=0 ;
+  if (njDest==0) jbeginDest=0 ;
+    
+  domainDest_->type = domainSrc_ -> type ;
+  domainDest_->data_dim = domainSrc_->data_dim ;
+
   domainDest_->ni_glo.setValue(zoomNi_);
   domainDest_->nj_glo.setValue(zoomNj_);
