Index: XIOS/dev/dev_olga/src/transformation/domain_algorithm_interpolate.cpp
===================================================================
--- XIOS/dev/dev_olga/src/transformation/domain_algorithm_interpolate.cpp	(revision 1567)
+++ XIOS/dev/dev_olga/src/transformation/domain_algorithm_interpolate.cpp	(revision 1612)
@@ -31,4 +31,5 @@
                                                                      std::map<int, int>& elementPositionInGridDst2AxisPosition,
                                                                      std::map<int, int>& elementPositionInGridDst2DomainPosition)
+TRY
 {
   std::vector<CDomain*> domainListDestP = gridDst->getDomains();
@@ -41,12 +42,16 @@
   return (new CDomainAlgorithmInterpolate(domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], interpolateDomain));
 }
+CATCH
 
 bool CDomainAlgorithmInterpolate::registerTrans()
+TRY
 {
   CGridTransformationFactory<CDomain>::registerTransformation(TRANS_INTERPOLATE_DOMAIN, create);
 }
+CATCH
 
 CDomainAlgorithmInterpolate::CDomainAlgorithmInterpolate(CDomain* domainDestination, CDomain* domainSource, CInterpolateDomain* interpDomain)
 : CDomainAlgorithmTransformation(domainDestination, domainSource), interpDomain_(interpDomain), writeToFile_(false), readFromFile_(false)
+TRY
 {
   CContext* context = CContext::getCurrent();
@@ -93,4 +98,5 @@
     
 }
+CATCH
 
 /*!
@@ -98,4 +104,5 @@
 */
 void CDomainAlgorithmInterpolate::computeRemap()
+TRY
 {
   using namespace sphereRemap;
@@ -399,7 +406,9 @@
 
 }
+CATCH
 
 void CDomainAlgorithmInterpolate::processPole(std::map<int,std::vector<std::pair<int,double> > >& interMapValuePole,
                                               int nbGlobalPointOnPole)
+TRY
 {
   CContext* context = CContext::getCurrent();
@@ -468,4 +477,5 @@
 
 }
+CATCH
 
 /*!
@@ -473,4 +483,5 @@
 */
 void CDomainAlgorithmInterpolate::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs)
+TRY
 {
   if (readFromFile_)  
@@ -481,11 +492,15 @@
   }
 }
+CATCH
 
 void CDomainAlgorithmInterpolate::writeRemapInfo(std::map<int,std::vector<std::pair<int,double> > >& interpMapValue)
+TRY
 {  
   writeInterpolationInfo(fileToReadWrite_, interpMapValue);
 }
+CATCH
 
 void CDomainAlgorithmInterpolate::readRemapInfo()
+TRY
 {  
   std::map<int,std::vector<std::pair<int,double> > > interpMapValue;
@@ -494,6 +509,8 @@
   exchangeRemapInfo(interpMapValue);
 }
+CATCH
 
 void CDomainAlgorithmInterpolate::convertRemapInfo(std::map<int,std::vector<std::pair<int,double> > >& interpMapValue)
+TRY
 {
   CContext* context = CContext::getCurrent();
@@ -520,4 +537,5 @@
   }      
 }
+CATCH
 
 /*!
@@ -525,4 +543,5 @@
 */
 void CDomainAlgorithmInterpolate::exchangeRemapInfo(std::map<int,std::vector<std::pair<int,double> > >& interpMapValue)
+TRY
 {
   CContext* context = CContext::getCurrent();
@@ -704,4 +723,5 @@
   delete [] recvBuff;
 }
+CATCH
  
 /*! Redefined some functions of CONetCDF4 to make use of them */
@@ -710,18 +730,24 @@
 int CDomainAlgorithmInterpolate::WriteNetCdf::addDimensionWrite(const StdString& name, 
                                                                 const StdSize size)
+TRY
 {
   return CONetCDF4::addDimension(name, size);  
 }
+CATCH
 
 int CDomainAlgorithmInterpolate::WriteNetCdf::addVariableWrite(const StdString& name, nc_type type,
                                                                const std::vector<StdString>& dim)
+TRY
 {
   return CONetCDF4::addVariable(name, type, dim);
 }
+CATCH
 
 void CDomainAlgorithmInterpolate::WriteNetCdf::endDefinition()
+TRY
 {
   CONetCDF4::definition_end();
 }
+CATCH
 
 void CDomainAlgorithmInterpolate::WriteNetCdf::writeDataIndex(const CArray<int,1>& data, const StdString& name,
@@ -729,7 +755,9 @@
                                                               const std::vector<StdSize>* start,
                                                               const std::vector<StdSize>* count)
+TRY
 {
   CONetCDF4::writeData<int,1>(data, name, collective, record, start, count);
 }
+CATCH
 
 void CDomainAlgorithmInterpolate::WriteNetCdf::writeDataIndex(const CArray<double,1>& data, const StdString& name,
@@ -737,7 +765,9 @@
                                                               const std::vector<StdSize>* start,
                                                               const std::vector<StdSize>* count)
+TRY
 {
   CONetCDF4::writeData<double,1>(data, name, collective, record, start, count);
 }
+CATCH
 
 /*
@@ -748,4 +778,5 @@
 void CDomainAlgorithmInterpolate::writeInterpolationInfo(std::string& filename,
                                                          std::map<int,std::vector<std::pair<int,double> > >& interpMapValue)
+TRY
 {
   CContext* context = CContext::getCurrent();
@@ -827,4 +858,5 @@
   netCdfWriter.closeFile();
 }
+CATCH
 
 /*!
@@ -836,4 +868,5 @@
 void CDomainAlgorithmInterpolate::readInterpolationInfo(std::string& filename,
                                                         std::map<int,std::vector<std::pair<int,double> > >& interpMapValue)
+TRY
 {
   int ncid ;
@@ -894,4 +927,5 @@
       interpMapValue[dstIndex[ind]-indexOffset].push_back(make_pair(srcIndex[ind]-indexOffset,weight[ind]));
  }
+CATCH
 
 void CDomainAlgorithmInterpolate::apply(const std::vector<std::pair<int,double> >& localIndex,
@@ -900,4 +934,5 @@
                                             std::vector<bool>& flagInitial,
                                             bool ignoreMissingValue, bool firstPass  )
+TRY
 {
   int nbLocalIndex = localIndex.size();   
@@ -941,6 +976,8 @@
   }
 }
+CATCH
 
 void CDomainAlgorithmInterpolate::updateData(CArray<double,1>& dataOut)
+TRY
 {
   if (detectMissingValue)
@@ -961,4 +998,5 @@
   }
 }
-
-}
+CATCH
+
+}
