Index: XIOS/dev/dev_olga/src/node/grid.cpp
===================================================================
--- XIOS/dev/dev_olga/src/node/grid.cpp	(revision 1594)
+++ XIOS/dev/dev_olga/src/node/grid.cpp	(revision 1612)
@@ -82,11 +82,14 @@
 
    StdSize CGrid::getDimension(void)
+   TRY
    {
       return getGlobalDimension().size();
    }
+   CATCH_DUMP_ATTR
 
    //---------------------------------------------------------------
 
    StdSize CGrid::getDataSize(void) const
+   TRY
    {
      StdSize retvalue = 1;
@@ -98,4 +101,5 @@
      return retvalue;
    }
+   CATCH
 
    /*!
@@ -106,4 +110,5 @@
     */
    std::map<int, StdSize> CGrid::getAttributesBufferSize(CContextClient* client, bool bufferForWriting)
+   TRY
    {
      std::map<int, StdSize> attributesSizes = getMinimumBufferSizeForAttributes(client);
@@ -147,4 +152,5 @@
      return attributesSizes;
   }
+   CATCH_DUMP_ATTR
 
    /*!
@@ -156,4 +162,5 @@
     */
    std::map<int, StdSize> CGrid::getDataBufferSize(CContextClient* client, const std::string& id /*= ""*/, bool bufferForWriting /*= "false"*/)
+   TRY
    {     
      // The record index is sometimes sent along with the data but we always
@@ -180,6 +187,8 @@
      return dataSizes;
    }
+   CATCH_DUMP_ATTR
 
    size_t CGrid::getGlobalWrittenSize(void)
+   TRY
    {
 	 std::vector<CDomain*> domainP = this->getDomains();
@@ -191,7 +200,8 @@
      return globalGridSize ;
    }
-   
+   CATCH_DUMP_ATTR
    
    void CGrid::checkAttributesAfterTransformation()
+   TRY
    {
       setAxisList();
@@ -228,4 +238,5 @@
       }
    }
+   CATCH_DUMP_ATTR
 
    //---------------------------------------------------------------
@@ -237,19 +248,25 @@
     */
    bool CGrid::isCompressible(void) const
+   TRY
    {
       return isCompressible_;
    }
+   CATCH
 
    //---------------------------------------------------------------
 
    void CGrid::addRelFileCompressed(const StdString& filename)
+   TRY
    {
       this->relFilesCompressed.insert(filename);
    }
+   CATCH_DUMP_ATTR
 
    bool CGrid::isWrittenCompressed(const StdString& filename) const
+   TRY
    {
       return (this->relFilesCompressed.find(filename) != this->relFilesCompressed.end());
    }
+   CATCH
 
    //---------------------------------------------------------------
@@ -258,4 +275,5 @@
    */
    void CGrid::solveDomainAxisRef(bool areAttributesChecked)
+   TRY
    {
      if (this->isDomainAxisChecked) return;
@@ -266,4 +284,5 @@
      this->isDomainAxisChecked = areAttributesChecked;
    }
+   CATCH_DUMP_ATTR
 
    /*
@@ -272,4 +291,5 @@
    */
    void CGrid::solveDomainAxisBaseRef()
+   TRY
    {
      if (this->hasDomainAxisBaseRef_) return;
@@ -297,12 +317,16 @@
      this->hasDomainAxisBaseRef_ = true;
    }
+   CATCH_DUMP_ATTR
 
    void CGrid::checkEligibilityForCompressedOutput()
+   TRY
    {
      // We don't check if the mask is valid here, just if a mask has been defined at this point.
      isCompressible_ = !mask_1d.isEmpty() || !mask_2d.isEmpty() || !mask_3d.isEmpty();
    }
+   CATCH_DUMP_ATTR
 
    void CGrid::checkMaskIndex(bool doSendingIndex)
+   TRY
    {
      CContext* context = CContext::getCurrent();
@@ -339,10 +363,12 @@
       this->isChecked = true;
    }
-
+   CATCH_DUMP_ATTR
    bool CGrid::hasMask() const
+   TRY
    {
      return (!mask_1d.isEmpty() || !mask_2d.isEmpty() || !mask_3d.isEmpty() ||
              !mask_4d.isEmpty() || !mask_5d.isEmpty() || !mask_6d.isEmpty() || !mask_7d.isEmpty());
    }
+   CATCH
 
    /*
@@ -350,4 +376,5 @@
    */
    void CGrid::createMask(void)
+   TRY
    {
       using namespace std;
@@ -387,4 +414,5 @@
       }
    }
+   CATCH_DUMP_ATTR
 
    /*
@@ -392,4 +420,5 @@
    */
    void CGrid::checkMask(void)
+   TRY
    {
       using namespace std;
@@ -429,5 +458,6 @@
       }
    }
-      
+   CATCH_DUMP_ATTR
+
    /*
      Modify value of mask in a certain index
@@ -437,4 +467,5 @@
    */
    void CGrid::modifyMask(const CArray<int,1>& indexToModify, bool modifyValue)
+   TRY
    {
       using namespace std;
@@ -472,4 +503,5 @@
       }
    }
+   CATCH_DUMP_ATTR
 
    /*
@@ -479,4 +511,5 @@
    */
    void CGrid::modifyMaskSize(const std::vector<int>& newDimensionSize, bool newValue)
+   TRY
    {      
       std::vector<CDomain*> domainP = this->getDomains();
@@ -513,8 +546,10 @@
       }
    }
+   CATCH_DUMP_ATTR
 
    //---------------------------------------------------------------
 
    void CGrid::solveDomainRef(bool sendAtt)
+   TRY
    {
       setDomainList();
@@ -529,8 +564,10 @@
       }
    }
+   CATCH_DUMP_ATTR
 
    //---------------------------------------------------------------
 
    void CGrid::solveAxisRef(bool sendAtt)
+   TRY
    {
       setAxisList();
@@ -560,8 +597,10 @@
       }
    }
+   CATCH_DUMP_ATTR
 
    //---------------------------------------------------------------
 
    void CGrid::solveScalarRef(bool sendAtt)
+   TRY
    {
       setScalarList();
@@ -577,4 +616,5 @@
       }
    }
+   CATCH_DUMP_ATTR
 
    /*!
@@ -582,4 +622,5 @@
    */
    void CGrid::computeWrittenIndex()
+   TRY
    {      
       if (computedWrittenIndex_) return;
@@ -641,4 +682,5 @@
       }
    }
+   CATCH_DUMP_ATTR
 
    //---------------------------------------------------------------
@@ -651,4 +693,5 @@
    */
    void CGrid::computeClientIndex()
+   TRY
    {
      CContext* context = CContext::getCurrent();
@@ -711,4 +754,5 @@
       }
    }
+   CATCH_DUMP_ATTR
 
    /*!
@@ -716,4 +760,5 @@
    */
    void CGrid::computeConnectedClients()
+   TRY
    {
      CContext* context = CContext::getCurrent();
@@ -833,4 +878,5 @@
      }
    }
+   CATCH_DUMP_ATTR
 
    /*!
@@ -842,4 +888,5 @@
    */
    void CGrid::computeIndex(void)
+   TRY
    {
      CContext* context = CContext::getCurrent();
@@ -868,4 +915,5 @@
      }
    }
+   CATCH_DUMP_ATTR
 
    /*!
@@ -881,4 +929,5 @@
                                      const CContextClient* client,
                                      CClientServerMapping::GlobalIndexMap& globalIndexOnServer)
+   TRY
    {
      int serverSize = client->serverSize;
@@ -1047,7 +1096,9 @@
     }
    }
-   //----------------------------------------------------------------
+   CATCH_DUMP_ATTR
+//----------------------------------------------------------------
 
    CGrid* CGrid::createGrid(CDomain* domain)
+   TRY
    {
       std::vector<CDomain*> vecDom(1, domain);
@@ -1056,7 +1107,9 @@
       return createGrid(vecDom, vecAxis);
    }
+   CATCH
 
    CGrid* CGrid::createGrid(CDomain* domain, CAxis* axis)
-   {
+   TRY
+  {
       std::vector<CDomain*> vecDom(1, domain);
       std::vector<CAxis*> vecAxis(1, axis);
@@ -1064,20 +1117,26 @@
       return createGrid(vecDom, vecAxis);
    }
+   CATCH
 
    CGrid* CGrid::createGrid(const std::vector<CDomain*>& domains, const std::vector<CAxis*>& axis,
                             const CArray<int,1>& axisDomainOrder)
+   TRY
    {
      std::vector<CScalar*> vecScalar;
      return createGrid(generateId(domains, axis, vecScalar, axisDomainOrder), domains, axis, vecScalar, axisDomainOrder);
    }
+   CATCH
 
    CGrid* CGrid::createGrid(const std::vector<CDomain*>& domains, const std::vector<CAxis*>& axis,
                             const std::vector<CScalar*>& scalars, const CArray<int,1>& axisDomainOrder)
+   TRY
    {
      return createGrid(generateId(domains, axis, scalars, axisDomainOrder), domains, axis, scalars, axisDomainOrder);
    }
+   CATCH
 
    CGrid* CGrid::createGrid(StdString id, const std::vector<CDomain*>& domains, const std::vector<CAxis*>& axis,
                             const std::vector<CScalar*>& scalars, const CArray<int,1>& axisDomainOrder)
+   TRY
    {
       if (axisDomainOrder.numElements() > 0 && axisDomainOrder.numElements() != (domains.size() + axis.size() + scalars.size()))
@@ -1121,6 +1180,8 @@
       return grid;
    }
+   CATCH
 
    CGrid* CGrid::cloneGrid(const StdString& idNewGrid, CGrid* gridSrc)
+   TRY
    {
      std::vector<CDomain*> domainSrcTmp = gridSrc->getDomains(), domainSrc;
@@ -1162,7 +1223,9 @@
       return grid;
    }
+   CATCH
 
    StdString CGrid::generateId(const std::vector<CDomain*>& domains, const std::vector<CAxis*>& axis,
                                const std::vector<CScalar*>& scalars, const CArray<int,1>& axisDomainOrder)
+   TRY
    {
       if (axisDomainOrder.numElements() > 0 && axisDomainOrder.numElements() != (domains.size() + axis.size() + scalars.size()))
@@ -1205,6 +1268,8 @@
       return id.str();
    }
+   CATCH
 
    StdString CGrid::generateId(const CGrid* gridSrc, const CGrid* gridDest)
+   TRY
    {
      StdString idSrc  = gridSrc->getId();
@@ -1216,21 +1281,28 @@
      return id.str();
    }
+   CATCH
 
    //----------------------------------------------------------------
 
    CDomainGroup* CGrid::getVirtualDomainGroup() const
+   TRY
    {
      return this->vDomainGroup_;
    }
+   CATCH
 
    CAxisGroup* CGrid::getVirtualAxisGroup() const
+   TRY
    {
      return this->vAxisGroup_;
    }
+   CATCH
 
    CScalarGroup* CGrid::getVirtualScalarGroup() const
+   TRY
    {
      return this->vScalarGroup_;
    }
+   CATCH
 
 /*
@@ -1268,4 +1340,5 @@
 
    void CGrid::storeField_arr(const double* const data, CArray<double, 1>& stored) const
+   TRY
    {
       const StdSize size = storeIndex_client.numElements();
@@ -1274,6 +1347,8 @@
       for(StdSize i = 0; i < size; i++) stored(i) = data[storeIndex_client(i)];
    }
+   CATCH
 
    void CGrid::restoreField_arr(const CArray<double, 1>& stored, double* const data) const
+   TRY
    {
       const StdSize size = storeIndex_client.numElements();
@@ -1281,4 +1356,5 @@
       for(StdSize i = 0; i < size; i++) data[storeIndex_client(i)] = stored(i);
    }
+   CATCH
 
    void CGrid::maskField_arr(const double* const data, CArray<double, 1>& stored) const
@@ -1295,4 +1371,5 @@
 
    void CGrid::uncompressField_arr(const double* const data, CArray<double, 1>& out) const
+   TRY
    {
       const std::vector<int>& localMaskedDataIndex = clientDistribution_->getLocalMaskedDataIndexOnClient();
@@ -1300,7 +1377,8 @@
       for(int i = 0; i < size; ++i) out(localMaskedDataIndex[i]) = data[i];
    }
-
+   CATCH
 
   void CGrid::computeClientIndexScalarGrid()
+  TRY
   {
     CContext* context = CContext::getCurrent();    
@@ -1336,6 +1414,8 @@
     }
   }
+  CATCH_DUMP_ATTR
 
   void CGrid::computeConnectedClientsScalarGrid()
+  TRY
   {
     CContext* context = CContext::getCurrent();    
@@ -1382,6 +1462,8 @@
     }
   }
+  CATCH_DUMP_ATTR
 
   void CGrid::sendIndexScalarGrid()
+  TRY
   {
     CContext* context = CContext::getCurrent();
@@ -1447,6 +1529,8 @@
     }
   }
+  CATCH_DUMP_ATTR
 
   void CGrid::sendIndex(void)
+  TRY
   {
     CContext* context = CContext::getCurrent();
@@ -1568,6 +1652,8 @@
     }
   }
+  CATCH_DUMP_ATTR
 
   void CGrid::recvIndex(CEventServer& event)
+  TRY
   {
     string gridId;
@@ -1585,6 +1671,8 @@
     get(gridId)->recvIndex(ranks, buffers);
   }
+  CATCH
 
   void CGrid::recvIndex(vector<int> ranks, vector<CBufferIn*> buffers)
+  TRY
   {
     CContext* context = CContext::getCurrent();
@@ -1756,4 +1844,5 @@
     }
   }
+  CATCH_DUMP_ATTR
 
   /*
@@ -1771,5 +1860,6 @@
                                         const std::vector<CScalar*> scalars,
                                         const CArray<int,1>& axisDomainOrder)
-  {
+  TRY
+ {
  //   globalDim.resize(domains.size()*2+axis.size()+scalars.size());
     globalDim.resize(domains.size()*2+axis.size());
@@ -1811,7 +1901,9 @@
     return positionDimensionDistributed;
   }
+  CATCH_DUMP_ATTR
 
   // Retrieve the global dimension of grid
   std::vector<int> CGrid::getGlobalDimension()
+  TRY
   {
     std::vector<int> globalDim;
@@ -1820,16 +1912,21 @@
     return globalDim;
   }
+  CATCH_DUMP_ATTR
 
   // Retrieve dimension on which we do distribution (Very often, it should be 2nd dimension)
   int CGrid::getDistributedDimension()
+  TRY
   {
     std::vector<int> globalDim;
     return computeGridGlobalDimension(globalDim, getDomains(), getAxis(), getScalars(), axis_domain_order);    
   }
+  CATCH_DUMP_ATTR
 
   bool CGrid::isScalarGrid() const
+  TRY
   {
     return (axisList_.empty() && domList_.empty());
   }
+  CATCH
 
   /*!
@@ -1839,7 +1936,9 @@
   */
   bool CGrid::doGridHaveDataToWrite()
+  TRY
   {
      return (0 != writtenDataSize_);
   }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -1850,7 +1949,9 @@
   */
   size_t CGrid::getWrittenDataSize() const
+  TRY
   {
     return writtenDataSize_;
   }
+  CATCH
 
   /*!
@@ -1859,7 +1960,9 @@
   */
   int CGrid::getNumberWrittenIndexes() const
+  TRY
   {
     return numberWrittenIndexes_;
   }
+  CATCH
 
   /*!
@@ -1868,7 +1971,9 @@
   */
   int CGrid::getTotalNumberWrittenIndexes() const
+  TRY
   {
     return totalNumberWrittenIndexes_;
   }
+  CATCH
 
   /*!
@@ -1877,19 +1982,26 @@
   */
   int CGrid::getOffsetWrittenIndexes() const
+  TRY
   {
     return offsetWrittenIndexes_;
   }
+  CATCH
 
   CDistributionServer* CGrid::getDistributionServer()
+  TRY
   {
     return serverDistribution_;
   }
+  CATCH_DUMP_ATTR
 
   CDistributionClient* CGrid::getDistributionClient()
+  TRY
   {
     return clientDistribution_;
   }
+  CATCH_DUMP_ATTR
 
   bool CGrid::doGridHaveDataDistributed(CContextClient* client)
+  TRY
   {
     if (isScalarGrid()) return false;
@@ -1901,4 +2013,5 @@
       return isDataDistributed_;    
   }
+  CATCH_DUMP_ATTR
 
    /*!
@@ -1910,4 +2023,5 @@
    */
   bool CGrid::dispatchEvent(CEventServer& event)
+  TRY
   {
 
@@ -1943,8 +2057,10 @@
     }
   }
+  CATCH
 
    ///---------------------------------------------------------------
 
    CDomain* CGrid::addDomain(const std::string& id)
+   TRY
    {
      order_.push_back(2);
@@ -1953,6 +2069,8 @@
      return vDomainGroup_->createChild(id);
    }
+   CATCH_DUMP_ATTR
 
    CAxis* CGrid::addAxis(const std::string& id)
+   TRY
    {
      order_.push_back(1);
@@ -1961,6 +2079,8 @@
      return vAxisGroup_->createChild(id);
    }
+   CATCH_DUMP_ATTR
 
    CScalar* CGrid::addScalar(const std::string& id)
+   TRY
    {
      order_.push_back(0);
@@ -1969,22 +2089,29 @@
      return vScalarGroup_->createChild(id);
    }
+   CATCH_DUMP_ATTR
 
    //! Change virtual field group to a new one
    void CGrid::setVirtualDomainGroup(CDomainGroup* newVDomainGroup)
+   TRY
    {
       this->vDomainGroup_ = newVDomainGroup;
    }
+   CATCH_DUMP_ATTR
 
    //! Change virtual variable group to new one
    void CGrid::setVirtualAxisGroup(CAxisGroup* newVAxisGroup)
+   TRY
    {
       this->vAxisGroup_ = newVAxisGroup;
    }
+   CATCH_DUMP_ATTR
 
    //! Change virtual variable group to new one
    void CGrid::setVirtualScalarGroup(CScalarGroup* newVScalarGroup)
+   TRY
    {
       this->vScalarGroup_ = newVScalarGroup;
    }
+   CATCH_DUMP_ATTR
 
    /*!
@@ -1993,7 +2120,9 @@
    */
    void CGrid::sendAddDomain(const string& id)
-   {
+   TRY
+  {
       sendAddItem(id, (int)EVENT_ID_ADD_DOMAIN);
    }
+   CATCH_DUMP_ATTR
 
    /*!
@@ -2002,7 +2131,9 @@
    */
    void CGrid::sendAddAxis(const string& id)
+   TRY
    {
       sendAddItem(id, (int)EVENT_ID_ADD_AXIS);
    }
+   CATCH_DUMP_ATTR
 
    /*!
@@ -2011,7 +2142,9 @@
    */
    void CGrid::sendAddScalar(const string& id)
+   TRY
    {
       sendAddItem(id, (int)EVENT_ID_ADD_SCALAR);
    }
+   CATCH_DUMP_ATTR
 
    /*!
@@ -2020,4 +2153,5 @@
    */
    void CGrid::recvAddDomain(CEventServer& event)
+   TRY
    {
 
@@ -2027,4 +2161,5 @@
       get(id)->recvAddDomain(*buffer);
    }
+   CATCH
 
    /*!
@@ -2033,4 +2168,5 @@
    */
    void CGrid::recvAddDomain(CBufferIn& buffer)
+   TRY
    {
       string id;
@@ -2038,4 +2174,5 @@
       addDomain(id);
    }
+   CATCH_DUMP_ATTR
 
    /*!
@@ -2044,4 +2181,5 @@
    */
    void CGrid::recvAddAxis(CEventServer& event)
+   TRY
    {
 
@@ -2051,4 +2189,5 @@
       get(id)->recvAddAxis(*buffer);
    }
+   CATCH
 
    /*!
@@ -2057,4 +2196,5 @@
    */
    void CGrid::recvAddAxis(CBufferIn& buffer)
+   TRY
    {
       string id;
@@ -2062,4 +2202,5 @@
       addAxis(id);
    }
+   CATCH_DUMP_ATTR
 
    /*!
@@ -2068,4 +2209,5 @@
    */
    void CGrid::recvAddScalar(CEventServer& event)
+   TRY
    {
 
@@ -2075,4 +2217,5 @@
       get(id)->recvAddScalar(*buffer);
    }
+   CATCH
 
    /*!
@@ -2081,4 +2224,5 @@
    */
    void CGrid::recvAddScalar(CBufferIn& buffer)
+   TRY
    {
       string id;
@@ -2086,4 +2230,5 @@
       addScalar(id);
    }
+   CATCH_DUMP_ATTR
 
   /*!
@@ -2094,4 +2239,5 @@
   */
   void CGrid::solveDomainAxisRefInheritance(bool apply)
+  TRY
   {
     CContext* context = CContext::getCurrent();
@@ -2134,30 +2280,41 @@
     }
   }
+  CATCH_DUMP_ATTR
 
   bool CGrid::isTransformed()
+  TRY
   {
     return isTransformed_;
   }
+  CATCH_DUMP_ATTR
 
   void CGrid::setTransformed()
+  TRY
   {
     isTransformed_ = true;
   }
+  CATCH_DUMP_ATTR
 
   CGridTransformation* CGrid::getTransformations()
+  TRY
   {
     return transformations_;
   }
+  CATCH_DUMP_ATTR
 
   void CGrid::addTransGridSource(CGrid* gridSrc)
+  TRY
   {
     if (gridSrc_.end() == gridSrc_.find(gridSrc))
       gridSrc_.insert(make_pair(gridSrc,make_pair(false,"")));
   }
+  CATCH_DUMP_ATTR
 
   std::map<CGrid*,std::pair<bool,StdString> >& CGrid::getTransGridSource()
+  TRY
   {
     return gridSrc_;
   }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -2166,4 +2323,5 @@
   */
   void CGrid::completeGrid(CGrid* transformGridSrc)
+  TRY
   {
     if (0 != transformGridSrc)
@@ -2184,16 +2342,22 @@
     gridGenerate.completeGrid();
   }
+  CATCH_DUMP_ATTR
 
   bool CGrid::isGenerated()
+  TRY
   {
     return isGenerated_;
   }
+  CATCH
 
   void CGrid::setGenerated()
+  TRY
   {
     isGenerated_ = true;
   }
+  CATCH_DUMP_ATTR
 
   void CGrid::transformGrid(CGrid* transformGridSrc)
+  TRY
   {
     if (!transformGridSrc)
@@ -2221,6 +2385,8 @@
     transformGridSrc->checkMaskIndex(false);
   }
+  CATCH_DUMP_ATTR
 
   bool CGrid::hasTransform()
+  TRY
   {
     if (hasTransform_) return hasTransform_;
@@ -2236,4 +2402,5 @@
     return hasTransform_;
   }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -2242,4 +2409,5 @@
   */
   std::vector<CDomain*> CGrid::getDomains()
+  TRY
   {
     std::vector<CDomain*> domList;
@@ -2250,4 +2418,5 @@
     return domList;
   }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -2256,4 +2425,5 @@
   */
   std::vector<CAxis*> CGrid::getAxis()
+  TRY
   {
     std::vector<CAxis*> aList;
@@ -2263,4 +2433,5 @@
     return aList;
   }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -2269,4 +2440,5 @@
   */
   std::vector<CScalar*> CGrid::getScalars()
+  TRY
   {
     std::vector<CScalar*> sList;
@@ -2276,4 +2448,5 @@
     return sList;
   }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -2282,4 +2455,5 @@
   */
   CDomain* CGrid::getDomain(int domainIndex)
+  TRY
   {
     std::vector<CDomain*> domainListP = this->getDomains();
@@ -2299,4 +2473,5 @@
     return domainListP[domainIndex];
   }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -2305,4 +2480,5 @@
   */
   CAxis* CGrid::getAxis(int axisIndex)
+  TRY
   {
     std::vector<CAxis*> axisListP = this->getAxis();
@@ -2322,4 +2498,5 @@
     return axisListP[axisIndex];
   }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -2328,4 +2505,5 @@
   */
   CScalar* CGrid::getScalar(int scalarIndex)
+  TRY
   {
     std::vector<CScalar*> scalarListP = this->getScalars();
@@ -2345,4 +2523,5 @@
     return scalarListP[scalarIndex];
   }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -2351,4 +2530,5 @@
   */
   void CGrid::setDomainList(const std::vector<CDomain*> domains)
+  TRY
   {
     if (isDomListSet) return;
@@ -2371,6 +2551,6 @@
       isDomListSet = true;
     }
-
-  }
+  }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -2379,4 +2559,5 @@
   */
   void CGrid::setAxisList(const std::vector<CAxis*> axis)
+  TRY
   {
     if (isAxisListSet) return;
@@ -2400,4 +2581,5 @@
     }
   }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -2406,4 +2588,5 @@
   */
   void CGrid::setScalarList(const std::vector<CScalar*> scalars)
+  TRY
   {
     if (isScalarListSet) return;
@@ -2427,4 +2610,5 @@
     }
   }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -2433,8 +2617,10 @@
   */
   std::vector<StdString> CGrid::getDomainList()
+  TRY
   {
     setDomainList();
     return domList_;
   }
+  CATCH
 
   /*!
@@ -2443,8 +2629,10 @@
   */
   std::vector<StdString> CGrid::getAxisList()
+  TRY
   {
     setAxisList();
     return axisList_;
   }
+  CATCH
 
   /*!
@@ -2453,8 +2641,10 @@
   */
   std::vector<StdString> CGrid::getScalarList()
+  TRY
   {
     setScalarList();
     return scalarList_;
   }
+  CATCH
 
   /*!
@@ -2462,4 +2652,5 @@
   */
   void CGrid::sendAllDomains()
+  TRY
   {
     std::vector<CDomain*> domList = this->getVirtualDomainGroup()->getAllChildren();
@@ -2471,4 +2662,5 @@
     }
   }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -2476,4 +2668,5 @@
   */
   void CGrid::sendAllAxis()
+  TRY
   {
     std::vector<CAxis*> aList = this->getVirtualAxisGroup()->getAllChildren();
@@ -2486,4 +2679,5 @@
     }
   }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -2491,4 +2685,5 @@
   */
   void CGrid::sendAllScalars()
+  TRY
   {
     std::vector<CScalar*> sList = this->getVirtualScalarGroup()->getAllChildren();
@@ -2501,6 +2696,8 @@
     }
   }
+  CATCH_DUMP_ATTR
 
   void CGrid::setContextClient(CContextClient* contextClient)
+  TRY
   {
     if (clientsSet.find(contextClient)==clientsSet.end())
@@ -2514,4 +2711,5 @@
     	this->getAxis()[i]->setContextClient(contextClient);
   }
+  CATCH_DUMP_ATTR
 
   /*!
@@ -2519,4 +2717,5 @@
   */
   void CGrid::parse(xml::CXMLNode& node)
+  TRY
   {
     SuperClass::parse(node);
@@ -2559,3 +2758,5 @@
     setScalarList();
    }
+  CATCH_DUMP_ATTR
+
 } // namespace xios
