Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/client_to_server_store_filter.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/client_to_server_store_filter.cpp	(revision 1935)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/client_to_server_store_filter.cpp	(revision 1935)
@@ -0,0 +1,40 @@
+#include "client_to_server_store_filter.hpp"
+#include "exception.hpp"
+#include "field.hpp"
+#include "utils.hpp"
+#include "context_client.hpp"
+#include "timer.hpp"
+#include "field.hpp"
+#include "grid.hpp"
+
+namespace xios
+{
+  CClientToServerStoreFilter::CClientToServerStoreFilter(CGarbageCollector& gc, CField* field, CContextClient* client)
+    : CInputPin(gc, 1)
+    , field_(field), client_(client)
+  {
+    if (!field)
+      ERROR("CFileWriterFilter::CFileWriterFilter(CField* field)",
+            "The field cannot be null.");
+  }
+
+  void CClientToServerStoreFilter::onInputReady(std::vector<CDataPacketPtr> data)
+  {
+    CTimer::get("Field : send data").resume();
+    CEventClient event(field_->getType(), CField::EVENT_ID_UPDATE_DATA);
+    CMessage message ;
+    message<<field_->getId() << data[0]->timestamp ;
+    field_->getGrid()->getClientToServerConnector(client_)->transfer(data[0]->data, client_, event, message) ;
+    CTimer::get("Field : send data").suspend();
+  }
+
+  bool CClientToServerStoreFilter::mustAutoTrigger() const
+  {
+    return true;
+  }
+
+  bool CClientToServerStoreFilter::isDataExpected(const CDate& date) const
+  {
+    return true;
+  }
+} // namespace xios
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/client_to_server_store_filter.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/client_to_server_store_filter.hpp	(revision 1935)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/client_to_server_store_filter.hpp	(revision 1935)
@@ -0,0 +1,54 @@
+#ifndef __XIOS_CLIENT_TO_SERVER_STORE_FILTER__
+#define __XIOS_CLIENT_TO_SERVER_STORE_FILTER__
+
+#include "input_pin.hpp"
+
+namespace xios
+{
+  class CField;
+  class CContextClient ;
+
+  /*!
+   * A terminal filter which transmits the packets it receives to a field for writting in a file.
+   */
+  class CClientToServerStoreFilter : public CInputPin
+  {
+    public:
+      /*!
+       * Constructs the filter (with one input slot) associated to the specified field
+       * and a garbage collector.
+       *
+       * \param gc the associated garbage collector
+       * \param field the associated field
+       */
+      CClientToServerStoreFilter(CGarbageCollector& gc, CField* field, CContextClient* client);
+
+      /*!
+       * Tests if the filter must auto-trigger.
+       *
+       * \return true if the filter must auto-trigger
+       */
+      bool virtual mustAutoTrigger() const;
+
+      /*!
+       * Tests whether data is expected for the specified date.
+       *
+       * \param date the date associated to the data
+       */
+      bool virtual isDataExpected(const CDate& date) const;
+
+    protected:
+      /*!
+       * Callbacks a field to write a packet to a file.
+       *
+       * \param data a vector of packets corresponding to each slot
+       */
+      void virtual onInputReady(std::vector<CDataPacketPtr> data);
+
+    private:
+      CField* field_; //<! The associated field
+      CContextClient* client_ ; //! the associated context client
+  }; // class CClientToServerStoreFilter
+} // namespace xios
+
+#endif //__XIOS_CLIENT_TO_SERVER_STORE_FILTER__
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_reader_source_filter.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_reader_source_filter.hpp	(revision 1934)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_reader_source_filter.hpp	(revision 1935)
@@ -1,4 +1,4 @@
-#ifndef __XIOS_FILE_READER_SOURCE_FILTER__
-#define __XIOS_FILE_READER_SOURCE_FILTER__
+#ifndef  __XIOS_FILE_READER_SOURCE_FILTER_HPP__
+#define  __XIOS_FILE_READER_SOURCE_FILTER_HPP__
 
 #include "output_pin.hpp"
@@ -52,3 +52,3 @@
 } // namespace xios
 
-#endif // __XIOS_FILE_READER_SOURCE_FILTER__
+#endif //  __XIOS_FILE_READER_SOURCE_FILTER_HPP__
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_server_writer_filter.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_server_writer_filter.cpp	(revision 1934)
+++ 	(revision )
@@ -1,30 +1,0 @@
-#include "file_server_writer_filter.hpp"
-#include "exception.hpp"
-#include "field.hpp"
-
-namespace xios
-{
-  CFileServerWriterFilter::CFileServerWriterFilter(CGarbageCollector& gc, CField* field)
-    : CInputPin(gc, 1)
-    , field(field)
-  {
-    if (!field)
-      ERROR("CFileServerWriterFilter::CFileServerWriterFilter(CField* field)",
-            "The field cannot be null.");
-  }
-
-  void CFileServerWriterFilter::onInputReady(std::vector<CDataPacketPtr> data)
-  {
-    field->writeUpdateData(data[0]->data);
-  }
-
-  bool CFileServerWriterFilter::mustAutoTrigger() const
-  {
-    return true;
-  }
-
-  bool CFileServerWriterFilter::isDataExpected(const CDate& date) const
-  {
-    return true;
-  }
-} // namespace xios
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_server_writer_filter.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_server_writer_filter.hpp	(revision 1934)
+++ 	(revision )
@@ -1,53 +1,0 @@
-#ifndef __XIOS_CFileServerWriterFilter__
-#define __XIOS_CFileServerWriterFilter__
-
-#include "input_pin.hpp"
-
-namespace xios
-{
-  class CField;
-
-  /*!
-   * A terminal filter which writes the packets it receives in a file.
-   */
-  class CFileServerWriterFilter : public CInputPin
-  {
-    public:
-      /*!
-       * Constructs the filter (with one input slot) associated to the specified field
-       * and a garbage collector.
-       *
-       * \param gc the associated garbage collector
-       * \param field the associated field
-       */
-      CFileServerWriterFilter(CGarbageCollector& gc, CField* field);
-
-      /*!
-       * Tests if the filter must auto-trigger.
-       *
-       * \return true if the filter must auto-trigger
-       */
-      bool virtual mustAutoTrigger() const;
-
-      /*!
-       * Tests whether data is expected for the specified date.
-       *
-       * \param date the date associated to the data
-       */
-      bool virtual isDataExpected(const CDate& date) const;
-
-    protected:
-      /*!
-       * Callbacks a field to write a packet to a file.
-       *
-       * \param data a vector of packets corresponding to each slot
-       */
-      void virtual onInputReady(std::vector<CDataPacketPtr> data);
-
-    private:
-      CField* field; //<! The associated field
-      std::map<Time, CDataPacketPtr> packets; //<! The stored packets
-  }; // class CFileServerWriterFilter
-} // namespace xios
-
-#endif //__XIOS_CFileServerWriterFilter__
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_writer_filter.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_writer_filter.cpp	(revision 1934)
+++ 	(revision )
@@ -1,49 +1,0 @@
-#include "file_writer_filter.hpp"
-#include "exception.hpp"
-#include "field.hpp"
-#include "utils.hpp"
-#include "context_client.hpp"
-
-namespace xios
-{
-  CFileWriterFilter::CFileWriterFilter(CGarbageCollector& gc, CField* field, CContextClient* client)
-    : CInputPin(gc, 1)
-    , field(field), client_(client)
-  {
-    if (!field)
-      ERROR("CFileWriterFilter::CFileWriterFilter(CField* field)",
-            "The field cannot be null.");
-  }
-
-  void CFileWriterFilter::onInputReady(std::vector<CDataPacketPtr> data)
-  {
-    const bool detectMissingValue = ( !field->default_value.isEmpty() &&
-                               ( (!field->detect_missing_value.isEmpty() || field->detect_missing_value == true)
-                                 || field->hasGridMask()) );
-
-    CArray<double, 1> dataArray = (detectMissingValue) ? data[0]->data.copy() : data[0]->data;
-
-    if (detectMissingValue)
-    {
-      const double missingValue = field->default_value;
-      const size_t nbData = dataArray.numElements();
-      for (size_t idx = 0; idx < nbData; ++idx)
-      {
-        if (NumTraits<double>::isNan(dataArray(idx)))
-          dataArray(idx) = missingValue;
-      }
-    }
-
-    field->sendUpdateData(data[0]->timestamp, dataArray, client_);
-  }
-
-  bool CFileWriterFilter::mustAutoTrigger() const
-  {
-    return true;
-  }
-
-  bool CFileWriterFilter::isDataExpected(const CDate& date) const
-  {
-    return true;
-  }
-} // namespace xios
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_writer_filter.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_writer_filter.hpp	(revision 1934)
+++ 	(revision )
@@ -1,55 +1,0 @@
-#ifndef __XIOS_CFileWriterFilter__
-#define __XIOS_CFileWriterFilter__
-
-#include "input_pin.hpp"
-
-namespace xios
-{
-  class CField;
-  class CContextClient ;
-
-  /*!
-   * A terminal filter which transmits the packets it receives to a field for writting in a file.
-   */
-  class CFileWriterFilter : public CInputPin
-  {
-    public:
-      /*!
-       * Constructs the filter (with one input slot) associated to the specified field
-       * and a garbage collector.
-       *
-       * \param gc the associated garbage collector
-       * \param field the associated field
-       */
-      CFileWriterFilter(CGarbageCollector& gc, CField* field, CContextClient* client);
-
-      /*!
-       * Tests if the filter must auto-trigger.
-       *
-       * \return true if the filter must auto-trigger
-       */
-      bool virtual mustAutoTrigger() const;
-
-      /*!
-       * Tests whether data is expected for the specified date.
-       *
-       * \param date the date associated to the data
-       */
-      bool virtual isDataExpected(const CDate& date) const;
-
-    protected:
-      /*!
-       * Callbacks a field to write a packet to a file.
-       *
-       * \param data a vector of packets corresponding to each slot
-       */
-      void virtual onInputReady(std::vector<CDataPacketPtr> data);
-
-    private:
-      CField* field; //<! The associated field
-      CContextClient* client_ ; //! the associated context client
-      std::map<Time, CDataPacketPtr> packets; //<! The stored packets
-  }; // class CFileWriterFilter
-} // namespace xios
-
-#endif //__XIOS_CFileWriterFilter__
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_writer_store_filter.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_writer_store_filter.cpp	(revision 1935)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_writer_store_filter.cpp	(revision 1935)
@@ -0,0 +1,30 @@
+#include "file_writer_store_filter.hpp"
+#include "exception.hpp"
+#include "field.hpp"
+
+namespace xios
+{
+  CFileWriterStoreFilter::CFileWriterStoreFilter(CGarbageCollector& gc, CField* field)
+    : CInputPin(gc, 1)
+    , field(field)
+  {
+    if (!field)
+      ERROR("CFileWriterStoreFilter::CFileWriterStoreFilter(CField* field)",
+            "The field cannot be null.");
+  }
+
+  void CFileWriterStoreFilter::onInputReady(std::vector<CDataPacketPtr> data)
+  {
+    field->writeUpdateData(data[0]->data);
+  }
+
+  bool CFileWriterStoreFilter::mustAutoTrigger() const
+  {
+    return true;
+  }
+
+  bool CFileWriterStoreFilter::isDataExpected(const CDate& date) const
+  {
+    return true;
+  }
+} // namespace xios
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_writer_store_filter.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_writer_store_filter.hpp	(revision 1935)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/file_writer_store_filter.hpp	(revision 1935)
@@ -0,0 +1,53 @@
+#ifndef __XIOS_FILE_WRITER_STORE_FILTER_HPP__
+#define __XIOS_FILE_WRITER_STORE_FILTER_HPP__
+
+#include "input_pin.hpp"
+
+namespace xios
+{
+  class CField;
+
+  /*!
+   * A terminal filter which writes the packets it receives in a file.
+   */
+  class CFileWriterStoreFilter : public CInputPin
+  {
+    public:
+      /*!
+       * Constructs the filter (with one input slot) associated to the specified field
+       * and a garbage collector.
+       *
+       * \param gc the associated garbage collector
+       * \param field the associated field
+       */
+      CFileWriterStoreFilter(CGarbageCollector& gc, CField* field);
+
+      /*!
+       * Tests if the filter must auto-trigger.
+       *
+       * \return true if the filter must auto-trigger
+       */
+      bool virtual mustAutoTrigger() const;
+
+      /*!
+       * Tests whether data is expected for the specified date.
+       *
+       * \param date the date associated to the data
+       */
+      bool virtual isDataExpected(const CDate& date) const;
+
+    protected:
+      /*!
+       * Callbacks a field to write a packet to a file.
+       *
+       * \param data a vector of packets corresponding to each slot
+       */
+      void virtual onInputReady(std::vector<CDataPacketPtr> data);
+
+    private:
+      CField* field; //<! The associated field
+      std::map<Time, CDataPacketPtr> packets; //<! The stored packets
+  }; // class CFileWriterStoreFilter
+} // namespace xios
+
+#endif //__XIOS_FILE_WRITER_STORE_FILTER_HPP__
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/node/field.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/node/field.cpp	(revision 1934)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/node/field.cpp	(revision 1935)
@@ -150,18 +150,5 @@
   CATCH
 
-  void CField::sendUpdateData(Time timeStamp, const CArray<double,1>& data, CContextClient* client)
-  TRY
-  {
-    CTimer::get("Field : send data").resume();
-    CEventClient event(getType(), EVENT_ID_UPDATE_DATA);
-    CMessage message ;
-
-    message<<getId() << timeStamp ;
-    this->getGrid()->getClientToServerConnector(client)->transfer(data, client, event, message) ;
-    CTimer::get("Field : send data").suspend();
-  }
-  CATCH_DUMP_ATTR
-
-  
+
   void CField::recvUpdateData(CEventServer& event)
   TRY
@@ -263,61 +250,4 @@
   CATCH_DUMP_ATTR  
 
-
-  void CField::sendUpdateDataServerToClient(bool isEOF, const CArray<double,1>& data, CContextClient* client)
-  TRY
-  {
-    CEventClient event(getType(), EVENT_ID_READ_DATA_READY);
-    std::list<CMessage> msgs;
-    if (!grid_->doGridHaveDataDistributed(client))
-    {
-       if (client->isServerLeader())
-       {
-          if (0 != data.numElements())
-          {            
-            const std::list<int>& ranks = client->getRanksServerLeader();
-            for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank)
-            {
-              msgs.push_back(CMessage());
-              CMessage& msg = msgs.back();
-              msg << getId();
-              
-              if (isEOF)  msg << int(-1);
-              else msg << getNStep() - 1 << data;
-         
-              event.push(*itRank, 1, msg);
-            }
-          }
-          client->sendEvent(event);
-       }
-       else
-       {
-          client->sendEvent(event);
-       }
-    }
-    else
-    {
-      auto& outLocalIndexStoreOnClient = grid_-> getOutLocalIndexStoreOnClient() ;
-      for (auto it = outLocalIndexStoreOnClient.begin(); it != outLocalIndexStoreOnClient.end(); ++it)
-      {
-        
-
-        msgs.push_back(CMessage());
-        CMessage& msg = msgs.back();
-        msg << getId();
-        if (isEOF) msg << int(-1);
-        else 
-        {
-          CArray<size_t,1>& indexTmp = it->second;
-          CArray<double,1> tmp(indexTmp.numElements());
-          for (int idx = 0; idx < indexTmp.numElements(); ++idx) tmp(idx) = data(indexTmp(idx));
-          msg << getNStep() - 1 << tmp;
-        }
-        event.push(it->first, grid_->getNbReadSenders(client)[it->first], msg);
-      }
-      client->sendEvent(event);
-    }
-  }
-  CATCH_DUMP_ATTR
-
   
   /*
@@ -344,4 +274,5 @@
 
   /* old interface to be removed ..*/
+/*
   void CField::recvUpdateDataFromCoupler(std::map<int,CBufferIn*>& rankBuffers)
   TRY
@@ -378,5 +309,5 @@
   }
   CATCH_DUMP_ATTR
- 
+*/ 
 
   /*!
@@ -386,4 +317,5 @@
   */
   // old interface to remove 
+/*
   void CField::recvReadDataReady(vector<int> ranks, vector<CBufferIn*> buffers)
   TRY
@@ -425,5 +357,5 @@
   }
   CATCH_DUMP_ATTR
-
+*/
 
   void CField::checkForLateDataFromCoupler(void)
@@ -1100,7 +1032,7 @@
   {
     // insert temporal filter before sending to files
-    fileWriterFilter = std::shared_ptr<CFileWriterFilter>(new CFileWriterFilter(gc, this, client));
+    clientToServerStoreFilter_ = std::shared_ptr<CClientToServerStoreFilter>(new CClientToServerStoreFilter(gc, this, client));
     // insert temporal filter before sending to files
-    getTemporalDataFilter(gc, fileOut_->output_freq)->connectOutput(fileWriterFilter, 0);
+    getTemporalDataFilter(gc, fileOut_->output_freq)->connectOutput(clientToServerStoreFilter_, 0);
   } 
 
@@ -1108,6 +1040,6 @@
   {
     // insert temporal filter before sending to files
-    fileWriterFilter = std::shared_ptr<CFileWriterFilter>(new CFileWriterFilter(gc, this, client));
-    instantDataFilter->connectOutput(fileWriterFilter, 0);
+    clientToServerStoreFilter_ = std::shared_ptr<CClientToServerStoreFilter>(new CClientToServerStoreFilter(gc, this, client));
+    instantDataFilter->connectOutput(clientToServerStoreFilter_, 0);
   } 
 
@@ -1186,6 +1118,6 @@
   void CField::connectToFileWriter(CGarbageCollector& gc)
   {
-    fileServerWriterFilter = std::shared_ptr<CFileServerWriterFilter>(new CFileServerWriterFilter(gc, this));
-    instantDataFilter->connectOutput(fileServerWriterFilter, 0);
+    fileWriterStoreFilter_ = std::shared_ptr<CFileWriterStoreFilter>(new CFileWriterStoreFilter(gc, this));
+    instantDataFilter->connectOutput(fileWriterStoreFilter_, 0);
   } 
 
@@ -1266,4 +1198,6 @@
   TRY
   {     
+   //  ==> before removing, solving dependency in spatial_transform_filter.cpp about auxilairy field
+/*
     if (!isReferenceSolvedAndTransformed) solveAllEnabledFieldsAndTransform();
     if (!isGridChecked) checkGridOfEnabledFields();
@@ -1366,4 +1300,5 @@
       }
     }
+*/  
   }
   CATCH_DUMP_ATTR
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/node/field.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/node/field.hpp	(revision 1934)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/node/field.hpp	(revision 1935)
@@ -24,4 +24,9 @@
 #include "client_to_model_store_filter.hpp"
 #include "server_to_client_store_filter.hpp"
+#include "server_from_client_source_filter.hpp"
+#include "file_writer_store_filter.hpp"
+#include "client_to_server_store_filter.hpp"
+#include "file_reader_source_filter.hpp"
+
 
 
@@ -47,10 +52,5 @@
    class COutputPin;
    class CSourceFilter;
-   class CFileWriterFilter;
-   class CFileServerWriterFilter;
-   class CFileReaderSourceFilter;
    class CServerToClientFilter;
-   class CModelToClientSourceFilter;
-   class CServerFromClientSourceFilter;
    ///--------------------------------------------------------------
 
@@ -405,5 +405,5 @@
 
          //! The source filter for data provided by the client
-         std::shared_ptr<CSourceFilter> clientSourceFilter; // obsolete to remove
+//         std::shared_ptr<CSourceFilter> clientSourceFilter; // obsolete to remove
  
          //! The source filter for data provided by the model to enter the client workflow
@@ -426,11 +426,11 @@
 
          //! The source filter for data provided by the server
-         std::shared_ptr<CSourceFilter> serverSourceFilter; // obsolete to remove
+//         std::shared_ptr<CSourceFilter> serverSourceFilter; // obsolete to remove
         
-         //! The terminal filter which writes the data to file
-         std::shared_ptr<CFileWriterFilter> fileWriterFilter;
+         //! The terminal filter which send data to server for writing
+         std::shared_ptr<CClientToServerStoreFilter> clientToServerStoreFilter_;
         
          //! The terminal filter which writes data to file
-         std::shared_ptr<CFileServerWriterFilter> fileServerWriterFilter;
+         std::shared_ptr<CFileWriterStoreFilter> fileWriterStoreFilter_;
 
          //! The terminal filter which send data from server to client
