Index: XIOS/dev/dev_olga/src/interface/c/icdata.cpp
===================================================================
--- XIOS/dev/dev_olga/src/interface/c/icdata.cpp	(revision 1590)
+++ XIOS/dev/dev_olga/src/interface/c/icdata.cpp	(revision 1612)
@@ -43,14 +43,19 @@
    // it is only used from the parse_xml.exe standalone test tool.
    void cxios_init(void)
+   TRY
    {
      CXios::initialize();
    }
+   CATCH_DUMP_STACK
 
    void cxios_init_server(void)
+   TRY
    {
      CXios::initServerSide();
    }
+   CATCH_DUMP_STACK
 
    void cxios_init_client(const char* client_id , int len_client_id, MPI_Fint* f_local_comm, MPI_Fint* f_return_comm )
+   TRY
    {
       std::string str;
@@ -69,6 +74,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_context_initialize(const char* context_id , int len_context_id, MPI_Fint* f_comm)
+   TRY
    {
      std::string str;
@@ -83,6 +90,8 @@
      CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_oasis_enddef()
+   TRY
    {
      CTimer::get("XIOS").resume();
@@ -90,6 +99,8 @@
      CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_context_is_initialized(const char* context_id , int len_context_id, bool* initialized)
+   TRY
    {
      std::string str;
@@ -101,6 +112,8 @@
      CTimer::get("XIOS").suspend();
    }
-
-    void cxios_context_close_definition()
+   CATCH_DUMP_STACK
+
+   void cxios_context_close_definition()
+   TRY
    {
      CTimer::get("XIOS").resume();
@@ -111,6 +124,8 @@
      CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_context_finalize()
+   TRY
    {
      CTimer::get("XIOS").resume();
@@ -121,6 +136,8 @@
      CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_finalize()
+   TRY
    {
      CTimer::get("XIOS").resume();
@@ -128,6 +145,8 @@
      CXios::clientFinalize();
    }
+   CATCH_DUMP_STACK
 
    void cxios_solve_inheritance()
+   TRY
    {
      CTimer::get("XIOS").resume();
@@ -136,4 +155,5 @@
      CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    /*! \brief This group of functions retrieve variable information from the configuration file (.xml)
@@ -148,4 +168,5 @@
    */
    void cxios_get_variable_data_k8(const char* varId, int varIdSize, double* data, bool* isVarExisted)
+   TRY
    {
       std::string varIdStr;
@@ -166,6 +187,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_get_variable_data_k4(const char* varId, int varIdSize, float* data, bool* isVarExisted)
+   TRY
    {
       std::string varIdStr;
@@ -186,6 +209,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_get_variable_data_int(const char* varId, int varIdSize, int* data, bool* isVarExisted)
+   TRY
    {
       std::string varIdStr;
@@ -206,6 +231,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_get_variable_data_logic(const char* varId, int varIdSize, bool* data, bool* isVarExisted)
+   TRY
    {
       std::string varIdStr;
@@ -226,6 +253,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_get_variable_data_char(const char* varId, int varIdSize, char* data, int dataSizeIn, bool* isVarExisted)
+   TRY
    {
       std::string varIdStr;
@@ -247,4 +276,5 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    /*! \brief This group of functions write information into existing variable in the configuration file (.xml)
@@ -259,5 +289,6 @@
    */
    void cxios_set_variable_data_k8(const char* varId, int varIdSize, double data, bool* isVarExisted)
-   {
+   TRY
+  {
       std::string varIdStr;
       if (!cstr2string(varId, varIdSize, varIdStr)) return;
@@ -278,6 +309,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_set_variable_data_k4(const char* varId, int varIdSize, float data, bool* isVarExisted)
+   TRY
    {
       std::string varIdStr;
@@ -299,6 +332,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_set_variable_data_int(const char* varId, int varIdSize, int data, bool* isVarExisted)
+   TRY
    {
       std::string varIdStr;
@@ -321,6 +356,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_set_variable_data_logic(const char* varId, int varIdSize, bool data, bool* isVarExisted)
+   TRY
    {
       std::string varIdStr;
@@ -342,7 +379,9 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_set_variable_data_char(const char* varId, int varIdSize, const char* data, int dataSizeIn, bool* isVarExisted)
-   {
+   TRY
+  {
       std::string varIdStr, dataStr;
       if (!cstr2string(varId, varIdSize, varIdStr)) return;
@@ -368,9 +407,10 @@
       CTimer::get("XIOS").suspend();
    }
-
+   CATCH_DUMP_STACK
 
    // ---------------------- Ecriture des donnÃ©es ------------------------------
 
    void cxios_write_data_k80(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize)
+   TRY
    {
       std::string fieldid_str;
@@ -387,6 +427,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k81(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize)
+   TRY
    {
       std::string fieldid_str;
@@ -406,6 +448,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k82(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize)
+   TRY
    {
       std::string fieldid_str;
@@ -425,6 +469,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k83(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize)
+   TRY
    {
       std::string fieldid_str;
@@ -444,6 +490,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k84(const char* fieldid, int fieldid_size, double* data_k8, int data_0size, int data_1size, int data_2size, int data_3size)
+   TRY
    {
       std::string fieldid_str;
@@ -463,8 +511,10 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k85(const char* fieldid, int fieldid_size, double* data_k8,
                              int data_0size, int data_1size, int data_2size,
                              int data_3size, int data_4size)
+   TRY
    {
       std::string fieldid_str;
@@ -484,8 +534,10 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k86(const char* fieldid, int fieldid_size, double* data_k8,
                              int data_0size, int data_1size, int data_2size,
                              int data_3size, int data_4size, int data_5size)
+   TRY
    {
       std::string fieldid_str;
@@ -505,4 +557,5 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k87(const char* fieldid, int fieldid_size, double* data_k8,
@@ -510,4 +563,5 @@
                              int data_3size, int data_4size, int data_5size,
                              int data_6size)
+   TRY
    {
       std::string fieldid_str;
@@ -527,6 +581,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k40(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize)
+   TRY
    {
       std::string fieldid_str;
@@ -546,6 +602,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize)
+   TRY
    {
       std::string fieldid_str;
@@ -567,6 +625,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k42(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize)
+   TRY
    {
       std::string fieldid_str;
@@ -588,6 +648,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k43(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize)
+   TRY
    {
       std::string fieldid_str;
@@ -609,8 +671,10 @@
       CTimer::get("XIOS").suspend();
     }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k44(const char* fieldid, int fieldid_size, float* data_k4,
                              int data_0size, int data_1size, int data_2size,
                              int data_3size)
+   TRY
    {
       std::string fieldid_str;
@@ -632,8 +696,10 @@
       CTimer::get("XIOS").suspend();
     }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k45(const char* fieldid, int fieldid_size, float* data_k4,
                              int data_0size, int data_1size, int data_2size,
                              int data_3size, int data_4size)
+   TRY
    {
       std::string fieldid_str;
@@ -655,8 +721,10 @@
       CTimer::get("XIOS").suspend();
     }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k46(const char* fieldid, int fieldid_size, float* data_k4,
                              int data_0size, int data_1size, int data_2size,
                              int data_3size, int data_4size, int data_5size)
+   TRY
    {
       std::string fieldid_str;
@@ -678,4 +746,5 @@
       CTimer::get("XIOS").suspend();
     }
+   CATCH_DUMP_STACK
 
    void cxios_write_data_k47(const char* fieldid, int fieldid_size, float* data_k4,
@@ -683,4 +752,5 @@
                              int data_3size, int data_4size, int data_5size,
                              int data_6size)
+   TRY
    {
       std::string fieldid_str;
@@ -702,8 +772,10 @@
       CTimer::get("XIOS").suspend();
     }
+   CATCH_DUMP_STACK
 
    // ---------------------- Lecture des donnÃ©es ------------------------------
 
    void cxios_read_data_k80(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize)
+   TRY
    {
       std::string fieldid_str;
@@ -723,6 +795,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k81(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize)
+   TRY
    {
       std::string fieldid_str;
@@ -742,6 +816,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k82(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize)
+   TRY
    {
       std::string fieldid_str;
@@ -761,6 +837,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k83(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize)
+   TRY
    {
       std::string fieldid_str;
@@ -780,8 +858,10 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k84(const char* fieldid, int fieldid_size, double* data_k8,
                             int data_0size, int data_1size, int data_2size,
                             int data_3size)
+   TRY
    {
       std::string fieldid_str;
@@ -801,8 +881,10 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k85(const char* fieldid, int fieldid_size, double* data_k8,
                             int data_0size, int data_1size, int data_2size,
                             int data_3size, int data_4size)
+   TRY
    {
       std::string fieldid_str;
@@ -822,8 +904,10 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k86(const char* fieldid, int fieldid_size, double* data_k8,
                             int data_0size, int data_1size, int data_2size,
                             int data_3size, int data_4size, int data_5size)
+   TRY
    {
       std::string fieldid_str;
@@ -843,4 +927,5 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k87(const char* fieldid, int fieldid_size, double* data_k8,
@@ -848,4 +933,5 @@
                             int data_3size, int data_4size, int data_5size,
                             int data_6size)
+   TRY
    {
       std::string fieldid_str;
@@ -865,6 +951,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k40(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize)
+   TRY
    {
       std::string fieldid_str;
@@ -886,6 +974,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize)
+   TRY
    {
       std::string fieldid_str;
@@ -907,6 +997,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k42(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize)
+   TRY
    {
       std::string fieldid_str;
@@ -928,6 +1020,8 @@
       CTimer::get("XIOS").suspend();
    }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k43(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize)
+   TRY
    {
       std::string fieldid_str;
@@ -949,8 +1043,10 @@
       CTimer::get("XIOS").suspend();
     }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k44(const char* fieldid, int fieldid_size, float* data_k4,
                             int data_0size, int data_1size, int data_2size,
                             int data_3size)
+   TRY
    {
       std::string fieldid_str;
@@ -972,8 +1068,10 @@
       CTimer::get("XIOS").suspend();
     }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k45(const char* fieldid, int fieldid_size, float* data_k4,
                             int data_0size, int data_1size, int data_2size,
                             int data_3size, int data_4size)
+   TRY
    {
       std::string fieldid_str;
@@ -995,8 +1093,10 @@
       CTimer::get("XIOS").suspend();
     }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k46(const char* fieldid, int fieldid_size, float* data_k4,
                             int data_0size, int data_1size, int data_2size,
                             int data_3size, int data_4size, int data_5size)
+   TRY
    {
       std::string fieldid_str;
@@ -1018,4 +1118,5 @@
       CTimer::get("XIOS").suspend();
     }
+   CATCH_DUMP_STACK
 
    void cxios_read_data_k47(const char* fieldid, int fieldid_size, float* data_k4,
@@ -1023,4 +1124,5 @@
                             int data_3size, int data_4size, int data_5size,
                             int data_6size)
+   TRY
    {
       std::string fieldid_str;
@@ -1042,3 +1144,4 @@
       CTimer::get("XIOS").suspend();
     }
+   CATCH_DUMP_STACK
 } // extern "C"
