Index: XMLIO_V2/dev/dev_rv/src/xmlio/node/axis.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/xmlio/node/axis.cpp	(revision 257)
+++ XMLIO_V2/dev/dev_rv/src/xmlio/node/axis.cpp	(revision 265)
@@ -55,6 +55,5 @@
       if (size != true_size)
          ERROR("CAxis::checkAttributes(void)",
-               << "Le tableau \'zvalue\' a une taille diffÃ©rente"
-               << " de celle indiquÃ©e dans l'attribut \'size\'")
+               << "Le tableau \'zvalue\' a une taille diffÃ©rente de celle indiquÃ©e dans l'attribut \'size\'")
 
       this->isChecked = true;
Index: XMLIO_V2/dev/dev_rv/src/xmlio/node/domain.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/xmlio/node/domain.cpp	(revision 257)
+++ XMLIO_V2/dev/dev_rv/src/xmlio/node/domain.cpp	(revision 265)
@@ -381,7 +381,10 @@
             data_n_index.setValue(dni);
             
-            for(int count = 0, i = 0; i  < data_ni.getValue(); i++)
+            //for(int count = 0, i = 0; i  < data_ni.getValue(); i++)
+            //for(int j = 0; j < data_nj.getValue(); j++, count++)
+            
+            for(int count = 0, j = 0; j  < data_nj.getValue(); j++)
             {
-               for(int j = 0; j < data_nj.getValue(); j++, count++)
+               for(int i = 0; i < data_ni.getValue(); i++, count++)
                {
                   (*__arri)[count] = i+1 ;
@@ -399,5 +402,58 @@
    //----------------------------------------------------------------
    
-   void CDomain::completeLonLat(void)
+   void CDomain::completeLonLatClient(void)
+   {
+      ARRAY_CREATE(lonvalue_temp, double, 1, [0]);
+      ARRAY_CREATE(latvalue_temp, double, 1, [0]);
+      
+      const int zoom_ibegin_client  = zoom_ibegin_loc.getValue(),
+                zoom_jbegin_client  = zoom_jbegin_loc.getValue(),
+                zoom_ni_client      = zoom_ni_loc.getValue(),
+                zoom_nj_client      = zoom_nj_loc.getValue();
+                
+      ARRAY(double, 1) lonvalue_ = this->lonvalue.getValue(),
+                       latvalue_ = this->latvalue.getValue();
+                
+      if (this->data_dim.getValue() == 2)
+      {
+         StdSize dm = zoom_ni_client * zoom_nj_client;
+
+         lonvalue_temp->resize(boost::extents[dm]);
+         latvalue_temp->resize(boost::extents[dm]);
+         
+         for (int i = 0; i < zoom_ni_client; i++)
+         {
+            for (int j = 0; j < zoom_nj_client; j++)
+            {
+               (*lonvalue_temp)[i + j * zoom_ni_client] = (*lonvalue_)[(i + zoom_ibegin_client -1)+(j + zoom_jbegin_client -1)*ni.getValue()];              
+               (*latvalue_temp)[i + j * zoom_ni_client] = (*latvalue_)[(i + zoom_ibegin_client -1)+(j + zoom_jbegin_client -1)*ni.getValue()];
+            }
+         }
+         this->lonvalue.setValue(lonvalue_temp);
+         this->latvalue.setValue(latvalue_temp);
+      }
+      else
+      {
+         lonvalue_temp->resize(boost::extents[zoom_ni_client]);
+         latvalue_temp->resize(boost::extents[zoom_nj_client]);
+         
+         for (int i = zoom_ibegin_client - 1; i < (zoom_ni_client - zoom_ibegin_client + 1); i++)
+         {
+            (*lonvalue_temp)[i] = (*lonvalue_)[i]; 
+         }
+         
+         for (int j = zoom_ibegin_client - 1; j < (zoom_nj_client - zoom_jbegin_client + 1); j++)
+         {
+            (*latvalue_temp)[j] = (*latvalue_)[j];
+         }
+         
+         this->lonvalue.setValue(lonvalue_temp);
+         this->latvalue.setValue(latvalue_temp);
+      }  
+   }
+ 
+   //----------------------------------------------------------------
+      
+   void CDomain::completeLonLatServer(void)
    {
       ARRAY_CREATE(lonvalue_temp, double, 1, [0]);
@@ -441,6 +497,6 @@
                for (int j = jbegin_loc - jbegin_serv; j < (jend_loc - jbegin_serv + 1); j++)
                {
-                  (*lonvalue_)[i + j * this->ni.getValue()] = (*lonvalue_loc)[l];              
-                  (*latvalue_)[i + j * this->ni.getValue()] = (*latvalue_loc)[l++];
+                  (*lonvalue_)[i + j * this->ni.getValue()] = (*lonvalue_loc)[l];      // erreur        
+                  (*latvalue_)[i + j * this->ni.getValue()] = (*latvalue_loc)[l++];    // erreur
                }
             }
@@ -572,9 +628,22 @@
          this->checkDomainData();
          this->checkCompression();
+         
+         this->ibegin_sub.push_back(this->ibegin.getValue());
+         this->jbegin_sub.push_back(this->jbegin.getValue());
+         this->iend_sub.push_back(this->iend.getValue());
+         this->jend_sub.push_back(this->jend.getValue()); 
+      
+         this->latvalue_sub.push_back(this->latvalue.getValue());
+         this->lonvalue_sub.push_back(this->lonvalue.getValue());  
+         
+         if (!this->isEmpty())
+         {
+            this->completeLonLatClient();
+         }
       }
       else
       { // CÃŽtÃ© serveur uniquement
          if (!this->isEmpty())
-            this->completeLonLat();
+            this->completeLonLatServer();
       }
       this->completeMask();
Index: XMLIO_V2/dev/dev_rv/src/xmlio/node/domain.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/xmlio/node/domain.hpp	(revision 257)
+++ XMLIO_V2/dev/dev_rv/src/xmlio/node/domain.hpp	(revision 265)
@@ -90,5 +90,6 @@
          /// Mutateur ///
          void addRelFile(const StdString & filename);
-         void completeLonLat(void);
+         void completeLonLatServer(void);
+         void completeLonLatClient(void);
          
          /// Destructeur ///
Index: XMLIO_V2/dev/dev_rv/src/xmlio/node/field.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/xmlio/node/field.cpp	(revision 257)
+++ XMLIO_V2/dev/dev_rv/src/xmlio/node/field.cpp	(revision 265)
@@ -19,7 +19,8 @@
       , grid(), file()
       , freq_operation(), freq_write()
+      , nstep(0)
       , last_Write(), last_operation()
       , foperation()
-      , data()
+      , data(new CArray<double, 1>(boost::extents[0]))
    { /* Ne rien faire de plus */ }
 
@@ -29,7 +30,8 @@
       , grid(), file()
       , freq_operation(), freq_write()
+      , nstep(0)
       , last_Write(), last_operation()
       , foperation()
-      , data()
+      , data(new CArray<double, 1>(boost::extents[0]))
    { /* Ne rien faire de plus */ }
 
@@ -88,4 +90,14 @@
    { 
       return (this->file);
+   }
+   
+   StdSize CField::getNStep(void) const
+   {
+      return (this->nstep);
+   }
+   
+   void CField::incrementNStep(void)
+   {
+      this->nstep++;
    }
 
@@ -236,4 +248,14 @@
       else
       {
+         CDuration freq_offset_ = NoneDu;
+         if (!freq_offset.isEmpty())
+         {
+            freq_offset_ = CDuration::FromString(freq_offset.getValue());
+         }
+         else
+         {
+            freq_offset.setValue(NoneDu.toString());
+         }   
+                  
          this->freq_operation = CDuration::FromString(freq_op.getValue());
          this->freq_write     = CDuration::FromString(this->file->output_freq.getValue());
@@ -242,4 +264,6 @@
          this->last_operation = boost::shared_ptr<xmlioserver::date::CDate>
                         (new date::CDate(_context->getCalendar()->getInitDate()));
+         const CDuration toffset = this->freq_operation - freq_offset_ - _context->getCalendar()->getTimeStep(); 
+         *this->last_operation  = *this->last_operation - toffset;  
          
 #define DECLARE_FUNCTOR(MType, mtype)              \
Index: XMLIO_V2/dev/dev_rv/src/xmlio/node/field.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/xmlio/node/field.hpp	(revision 257)
+++ XMLIO_V2/dev/dev_rv/src/xmlio/node/field.hpp	(revision 265)
@@ -64,4 +64,6 @@
       public :
 
+         StdSize getNStep(void) const;
+
          const date::CDuration & getFreqOperation(void) const;
          const date::CDuration & getFreqWrite(void) const;
@@ -78,8 +80,9 @@
          /// Mutateur ///
          void setRelFile(const boost::shared_ptr<CFile> _file);
+         void incrementNStep(void);
 
          template <StdSize N>
             inline bool updateData
-               (const date::CDate & currDate, const ARRAY(double, N) data);
+               (const date::CDate & currDate, const date::CDuration & timestep, const ARRAY(double, N) data);
 
          bool updateDataServer
@@ -118,4 +121,5 @@
          date::CDuration freq_operation, freq_write;
 
+         StdSize nstep;
          boost::shared_ptr<date::CDate>    last_Write, last_operation;
          boost::shared_ptr<func::CFunctor> foperation;
@@ -146,20 +150,44 @@
 
    template <StdSize N>
-      bool CField::updateData(const date::CDate & currDate, const ARRAY(double, N) data)
-   {
-      if ((*last_operation + freq_operation) >= currDate)
+      bool CField::updateData(const date::CDate & currDate, const date::CDuration & timestep, const ARRAY(double, N) _data)
+   {        
+      const date::CDate opeDate      = *last_operation + freq_operation;
+      const date::CDate writeDate    = *last_Write     + freq_write;       
+
+//      std::cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << std::endl;
+//      std::cout << "Champ : "     << this->getBaseFieldId() << std::endl;
+//      std::cout << "CurrDate : "  << currDate  << std::endl;
+//      std::cout << "opeDate : "   << opeDate   << " = " << *last_operation << " + " << freq_operation << std::endl;
+//      std::cout	<< "writeDate : " << writeDate << " = " << *last_Write     << " + " << freq_write     << std::endl;
+//      std::cout << "(opeDate <= currDate)   = " << std::boolalpha << (opeDate <= currDate)   << std::endl;
+//      std::cout	<< "(writeDate <= currDate) = " << std::boolalpha << (writeDate <= currDate) << std::endl;   
+   
+       //std::cout << ">> " << currDate <<  " : Envoi de donnÃ©es " << this->getBaseFieldId() << std::endl;
+      if (opeDate <= currDate)
       {
-         ARRAY_CREATE(input, double, 1, [0]);
-         input->resize(boost::extents[data->size()]);
-         this->grid->inputField(data, input);
+         //std::cout << "> " << currDate << ": Operation du champs" << this->getBaseFieldId() << std::endl;
+         
+         if (this->data->num_elements() != this->grid->storeIndex[0]->num_elements())
+         {
+            this->data->resize(boost::extents[this->grid->storeIndex[0] ->num_elements()]);
+         }
+            
+         ARRAY_CREATE(input, double, 1, [this->data->num_elements()]);
+         this->grid->inputField(_data, input);          
          (*this->foperation)(input);
+         
          *last_operation = currDate;
+//         std::cout << "(*last_operation = currDate) : " << *last_operation << " = " << currDate << std::endl; 
       }
       
-      if ((*last_Write + freq_write) >= currDate)
+      if (writeDate < (currDate + freq_operation))
       {
-         *last_Write = currDate;
-         return (true);
+         this->foperation->final();
+         this->incrementNStep();
+         *last_Write = writeDate;
+//         std::cout << "(*last_Write = currDate) : " << *last_Write << " = " << currDate	<< std::endl;
+         return (true);        
       }
+//      std::cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << std::endl;
       return (false);
    };
Index: XMLIO_V2/dev/dev_rv/src/xmlio/node/file.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/xmlio/node/file.cpp	(revision 257)
+++ XMLIO_V2/dev/dev_rv/src/xmlio/node/file.cpp	(revision 265)
@@ -106,5 +106,5 @@
    {
       this->setVirtualFieldGroup
-         (CObjectFactory::CreateObject<CFieldGroup>(newVFieldGroupId));
+         (CObjectFactory::CreateObject<CFieldGroup>(/*newVFieldGroupId*/));
    }
 
Index: XMLIO_V2/dev/dev_rv/src/xmlio/node/file.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/xmlio/node/file.hpp	(revision 257)
+++ XMLIO_V2/dev/dev_rv/src/xmlio/node/file.hpp	(revision 265)
@@ -53,6 +53,6 @@
          std::vector<boost::shared_ptr<CField> >
             getEnabledFields(int default_outputlevel = 5,
-                             int default_level       = 1,
-                             bool default_enabled    = true);
+                             int default_level = 1,
+                             bool default_enabled = true);
 
       public :
Index: XMLIO_V2/dev/dev_rv/src/xmlio/node/grid.cpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/xmlio/node/grid.cpp	(revision 257)
+++ XMLIO_V2/dev/dev_rv/src/xmlio/node/grid.cpp	(revision 265)
@@ -1,2 +1,3 @@
+
 #include "grid.hpp"
 
@@ -100,9 +101,9 @@
    //---------------------------------------------------------------
 
-   std::vector<StdSize> CGrid::getShape(void) const
+   std::vector<StdSize> CGrid::getLocalShape(void) const
    {
       std::vector<StdSize> retvalue;
-      retvalue.push_back(this->domain->ni.getValue());
-      retvalue.push_back(this->domain->nj.getValue());
+      retvalue.push_back(domain->zoom_ni_loc.getValue());
+      retvalue.push_back(domain->zoom_nj_loc.getValue());
       if (this->withAxis)
          retvalue.push_back(this->axis->size.getValue());
@@ -111,8 +112,30 @@
    //---------------------------------------------------------------
    
-   StdSize CGrid::getSize(void) const
+   StdSize CGrid::getLocalSize(void) const
    {
       StdSize retvalue = 1;
-      std::vector<StdSize> shape_ = this->getShape();
+      std::vector<StdSize> shape_ = this->getLocalShape();
+      for (StdSize s = 0; s < shape_.size(); s++)
+         retvalue *= shape_[s];
+      return (retvalue);
+   }
+   
+   //---------------------------------------------------------------
+
+   std::vector<StdSize> CGrid::getGlobalShape(void) const
+   {
+      std::vector<StdSize> retvalue;
+      retvalue.push_back(domain->ni.getValue());
+      retvalue.push_back(domain->nj.getValue());
+      if (this->withAxis)
+         retvalue.push_back(this->axis->size.getValue());
+      return (retvalue);
+   }
+   //---------------------------------------------------------------
+   
+   StdSize CGrid::getGlobalSize(void) const
+   {
+      StdSize retvalue = 1;
+      std::vector<StdSize> shape_ = this->getGlobalShape();
       for (StdSize s = 0; s < shape_.size(); s++)
          retvalue *= shape_[s];
@@ -129,10 +152,17 @@
       if (this->storeIndex.size() == 1)
       {
+         
          this->computeIndex() ;
-      }
-      else
-      {
-         this->computeIndexServer();
-      }
+         ARRAY_CREATE(storeIndex_ , int, 1, [0]);
+         ARRAY_CREATE(out_l_index_, int, 1, [0]);
+         ARRAY_CREATE(out_i_index_, int, 1, [0]);
+         ARRAY_CREATE(out_j_index_, int, 1, [0]);
+                 
+         this->storeIndex .push_front(storeIndex_);
+         this->out_i_index.push_front(out_i_index_);
+         this->out_j_index.push_front(out_j_index_);
+         this->out_l_index.push_front(out_l_index_);
+      }
+      this->computeIndexServer();
       this->isChecked = true;
    }
@@ -177,5 +207,6 @@
 
    void CGrid::computeIndex(void)
-   {  
+   {    
+   
       const int ni   = domain->ni.getValue() ,
                 nj   = domain->nj.getValue() ,
@@ -200,4 +231,5 @@
 
       ARRAY(bool, 2) mask = domain->mask.getValue() ;
+      ARRAY(int, 2) local_mask =  this->domain->getLocalMask();
 
       int indexCount = 0;
@@ -210,7 +242,7 @@
                 temp_j = (data_dim == 1) ? -1
                        : (*data_j_index)[n] + data_jbegin;
-            i = (data_dim == 1) ? (temp_i - 2) % ni
+            i = (data_dim == 1) ? (temp_i - 1) % ni
                                 : (temp_i - 1) ;
-            j = (data_dim == 1) ? (temp_i - 2) / ni
+            j = (data_dim == 1) ? (temp_i - 1) / ni
                                 : (temp_j - 1) ;
 
@@ -226,5 +258,11 @@
       ARRAY_ASSIGN(this->out_i_index[0], int, 1, [indexCount]);
       ARRAY_ASSIGN(this->out_j_index[0], int, 1, [indexCount]);
-
+      
+      // for(int count = 0, indexCount = 0,  l = 0; l < size; l++)
+      // for(int n = 0, i = 0, j = 0; n < data_n_index; n++, count++)
+
+      //for(int n = 0, i = 0, j = 0, count = 0, indexCount = 0; n < data_n_index;  n++)
+      //for(int l = 0; l < size; l++, count++)
+      
       for(int count = 0, indexCount = 0,  l = 0; l < size; l++)
       {
@@ -234,7 +272,7 @@
                 temp_j = (data_dim == 1) ? -1
                        : (*data_j_index)[n] + data_jbegin;
-            i = (data_dim == 1) ? (temp_i - 2) % ni
+            i = (data_dim == 1) ? (temp_i - 1) % ni
                                 : (temp_i - 1) ;
-            j = (data_dim == 1) ? (temp_i - 2) / ni
+            j = (data_dim == 1) ? (temp_i - 1) / ni
                                 : (temp_j - 1) ;
 
@@ -250,4 +288,21 @@
          }
       }
+
+
+//      if (this->storeIndex[0]->size() != 0)
+//         for (StdSize u = 0; u < this->storeIndex[0]->size(); u++)
+//            (*local_mask)[(*out_i_index[0])[u]][(*out_j_index[0])[u]] = 1;
+                                 
+//      std::cout << "indexCount" << indexCount << std::endl; 
+//      std::cout << this->getId() << " : "  << (*this->storeIndex[0]).num_elements() << std::endl;
+//      StdOFStream ofs2(("log_client_"+this->getId()).c_str());
+//      for (StdSize h = 0; h < storeIndex[0]->size(); h++)
+//      {
+//        ofs2 << "(" << (*storeIndex[0])[h]  << ";"
+//             << (*out_i_index[0])[h] << ","
+//             << (*out_j_index[0])[h] << ","
+//             << (*out_l_index[0])[h] << ")" << std::endl;
+//      }
+//      ofs2.close();   
    }
 
@@ -282,6 +337,18 @@
          (const ARRAY(double, 1) stored,  ARRAY(double, 3) field) const
    {
+      //std::cout <<"champ : " ;
       for(StdSize n = 0; n < storeIndex[0]->num_elements(); n++)
+      {
          (*field)[(*out_i_index[0])[n]][(*out_j_index[0])[n]][(*out_l_index[0])[n]] = (*stored)[n] ;
+         /*if (storeIndex[0]->num_elements() == 31)
+         {
+            std::cout << "( " << (*field)[(*out_i_index[0])[n]][(*out_j_index[0])[n]][(*out_l_index[0])[n]] << ", "
+                      << (*out_i_index[0])[n] << ", "
+                      << (*out_j_index[0])[n] << ", "
+                      << (*out_l_index[0])[n] << ")";
+         }*/
+      }
+      //std::cout << std::endl;
+
    }
 
@@ -311,5 +378,6 @@
       (const double * const data, ARRAY(double, 1) stored) const
    {
-      const StdSize size = storeIndex[0]->num_elements() ;
+      const StdSize size = (this->storeIndex[0])->num_elements() ;
+//    std::cout << this->getId() << "> size : " << size << std::endl;
       stored->resize(boost::extents[size]) ;
       for(StdSize i = 0; i < size; i++)
@@ -365,9 +433,4 @@
    void CGrid::computeIndexServer(void)
    {
-      ARRAY(int, 1) storeIndex_srv   =  this->storeIndex[0];
-      ARRAY(int, 1) out_i_index_srv  =  this->out_i_index[0];
-      ARRAY(int, 1) out_j_index_srv  =  this->out_j_index[0];
-      ARRAY(int, 1) out_l_index_srv  =  this->out_l_index[0];
-
       ARRAY(int, 2) local_mask =  this->domain->getLocalMask();
       
@@ -375,8 +438,8 @@
       const std::vector<int> & jbegin = this->domain->getJBeginSub();
       
-      const int ibegin_srv = this->domain->ibegin.getValue();
-      const int jbegin_srv = this->domain->jbegin.getValue();
-      const int zoom_ni_srv   = this->domain->zoom_ni_loc.getValue();
-      const int zoom_nj_srv   = this->domain->zoom_nj_loc.getValue();
+      const int ibegin_srv  = this->domain->ibegin.getValue();
+      const int jbegin_srv  = this->domain->jbegin.getValue();
+      const int zoom_ni_srv = this->domain->zoom_ni_loc.getValue();
+      const int zoom_nj_srv = this->domain->zoom_nj_loc.getValue();
       
       const int ibegin_zoom_srv = this->domain->zoom_ibegin_loc.getValue();
@@ -387,8 +450,8 @@
          dn += this->out_i_index[j]->size();
          
-      ARRAY_ASSIGN(storeIndex_srv , int, 1, [dn]);
-      ARRAY_ASSIGN(out_i_index_srv, int, 1, [dn]);
-      ARRAY_ASSIGN(out_j_index_srv, int, 1, [dn]);
-      ARRAY_ASSIGN(out_l_index_srv, int, 1, [dn]);
+      ARRAY_CREATE(storeIndex_srv , int, 1, [dn]);
+      ARRAY_CREATE(out_i_index_srv, int, 1, [dn]);
+      ARRAY_CREATE(out_j_index_srv, int, 1, [dn]);
+      ARRAY_CREATE(out_l_index_srv, int, 1, [dn]);
       
       for (StdSize i = 0, dn = 0; i < ibegin.size(); i++)
@@ -404,5 +467,5 @@
          for (StdSize n = dn, m = 0; n < (dn + storeIndex_cl->size()); n++, m++)
          {
-            (*storeIndex_srv)[n]  = (*storeIndex_cl)[m]  + dn; // Faux mais inutile dans tous les cas.
+            (*storeIndex_srv)[n]  = (*storeIndex_cl)[m]; // Faux mais inutile dans le cas serveur.
             (*out_i_index_srv)[n] = (*out_i_index_cl)[m] 
                                   + (ibegin_cl - 1) - (ibegin_srv - 1) - (ibegin_zoom_srv - 1);
@@ -438,13 +501,19 @@
             (*local_mask)[(*out_i_index_srv)[u]][(*out_j_index_srv)[u]] = 1;
 
-      //~ StdOFStream ofs(this->getId().c_str());
-      //~ for (StdSize h = 0; h < storeIndex_srv->size(); h++)
-      //~ {
-        //~ ofs << "(" << (*storeIndex_srv)[h]  << ";"
-            //~ << (*out_i_index_srv)[h] << ","
-            //~ << (*out_j_index_srv)[h] << ","
-            //~ << (*out_l_index_srv)[h] << ")" << std::endl;
-      //~ }
-      //~ ofs.close();
+//      StdOFStream ofs(("log_server_"+this->getId()).c_str());
+//      for (StdSize h = 0; h < storeIndex_srv->size(); h++)
+//      {
+//        ofs << "(" << (*storeIndex_srv)[h]  << ";"
+//            << (*out_i_index_srv)[h] << ","
+//            << (*out_j_index_srv)[h] << ","
+//            << (*out_l_index_srv)[h] << ")" << std::endl;
+//      }
+//       ofs.close();
+   
+      this->storeIndex [0] = storeIndex_srv ;
+      this->out_i_index[0] = out_i_index_srv;
+      this->out_j_index[0] = out_j_index_srv;
+      this->out_l_index[0] = out_l_index_srv;
+      
       this->storeIndex.resize(1);
       this->out_i_index.resize(1);
@@ -454,5 +523,4 @@
    }
    
-   //----------------------------------------------------------------
    
    void CGrid::inputFieldServer
Index: XMLIO_V2/dev/dev_rv/src/xmlio/node/grid.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/xmlio/node/grid.hpp	(revision 257)
+++ XMLIO_V2/dev/dev_rv/src/xmlio/node/grid.hpp	(revision 265)
@@ -68,6 +68,9 @@
 
          StdSize getDimension(void) const;
-         StdSize getSize(void) const;
-         std::vector<StdSize> getShape(void) const;
+         
+         StdSize getLocalSize(void) const;
+         StdSize getGlobalSize(void) const;
+         std::vector<StdSize> getLocalShape(void) const;
+         std::vector<StdSize> getGlobalShape(void) const;
 
          /// EntrÃ©es-sorties de champs ///
@@ -130,10 +133,10 @@
       void CGrid::inputField(const  ARRAY(double, n) field, ARRAY(double, 1) stored) const
    {
-      if (this->getSize() != field->num_elements())
+      if (this->getGlobalSize() != field->num_elements())
          ERROR("CGrid::inputField(const  ARRAY(double, n) field, ARRAY(double, 1) stored)",
-                << "[ Taille des donnÃ©es attendue = " << this->getSize()       << ", "
+                << "[ Taille des donnÃ©es attendue = " << this->getGlobalSize()       << ", "
                 << "Taille des donnÃ©es reÃ§ue = "      << field->num_elements() << " ] "
                 << "Le tableau de donnÃ©es n'a pas la bonne taille !") ;
-      this->storeField_arr(field.data(), stored) ;
+      this->storeField_arr(field->data(), stored) ;
    }
 
