Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/temporal_transform_filter.cpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/temporal_transform_filter.cpp	(revision 2007)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/temporal_transform_filter.cpp	(revision 2007)
@@ -0,0 +1,51 @@
+#include "temporal_transform_filter.hpp"
+
+namespace xios
+{
+
+  CTemporalTransformFilter::CTemporalTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, int nrecords, bool detectMissingValues, double defaultValue)
+  : CTransformFilter(gc, algo, detectMissingValues, defaultValue), nrecords_(nrecords)
+  {
+
+  }
+
+  CDataPacketPtr CTemporalTransformFilter::apply(std::vector<CDataPacketPtr> data)
+  {
+    if (data[0]->status == CDataPacket::NO_ERROR)
+    {
+      if (record_==0) tmpData_.resize(nrecords_) ;
+      algorithm_->apply(data[0]->data, tmpData_[record_]);
+      record_++ ;
+      if (record_==nrecords_)
+      {
+        size_t size=0 ;
+        for(auto& it : tmpData_) size += it.numElements() ;
+        // for now, no auxilliairy field
+        CDataPacketPtr packet(new CDataPacket);
+        packet->date = data[0]->date;
+        packet->timestamp = data[0]->timestamp;
+        packet->status = data[0]->status;
+        packet->data.resize(size) ;
+        double* out = packet->data.dataFirst() ;
+        for(auto& it : tmpData_) 
+        {
+          size = it.numElements() ; 
+          double* tmp = it.dataFirst() ;
+          for(size_t i=0 ; i<size ; i++, out++, tmp++) *out=*tmp ;   
+        }
+        tmpData_.clear() ;
+        record_=0 ;
+        return packet ;
+      }
+      else return nullptr ;
+    }
+    else // error
+    {
+      CDataPacketPtr packet(new CDataPacket);
+      packet->date = data[0]->date;
+      packet->timestamp = data[0]->timestamp;
+      packet->status = data[0]->status;
+      return packet ;
+    }    
+  }
+}
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/temporal_transform_filter.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/temporal_transform_filter.hpp	(revision 2007)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/temporal_transform_filter.hpp	(revision 2007)
@@ -0,0 +1,40 @@
+#ifndef __XIOS_TEMPORAL_TRANSFORM_FILTER_HPP__
+#define __XIOS_TEMPORAL_TRANSFORM_FILTER_HPP__
+
+#include "transform_filter.hpp"
+
+namespace xios
+{
+  
+  /*!
+   * A generic filter with multiple input slots wrapping any type of spatial transformations.
+   */
+  class CTemporalTransformFilter : public CTransformFilter
+  {
+    public:
+
+      CTemporalTransformFilter(CGarbageCollector& gc, CGridAlgorithm* algo, int nrecords, bool detectMissingValues, double defaultValue) ;
+
+    protected:
+      /*!
+        Overriding this function to process transformations with auxillary inputs
+      */
+      CDataPacketPtr virtual apply(std::vector<CDataPacketPtr> data) ;
+//      void apply(const CArray<double, 1>& dataSrc, CArray<double,1>& dataDest);
+
+       /*!
+        Overriding this function to process transformations with auxillary inputs
+      */
+//      void virtual onInputReady(std::vector<CDataPacketPtr> data);
+      //! Current record in the filter
+      int record_=0 ;
+      //! Maximum number of records
+      int nrecords_;
+      //! Temporary storage for output flux
+      vector<CArray<double, 1>> tmpData_; 
+  }; // class CTransformFilter
+
+
+} // namespace xios
+
+#endif //__XIOS_TEMPORAL_TRANSFORM_FILTER_HPP__
Index: XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/transform_filter.hpp
===================================================================
--- XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/transform_filter.hpp	(revision 2002)
+++ XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/transform_filter.hpp	(revision 2007)
@@ -22,11 +22,9 @@
       */
       CDataPacketPtr virtual apply(std::vector<CDataPacketPtr> data) ;
-      void apply(const CArray<double, 1>& dataSrc, CArray<double,1>& dataDest);
-
-    private :
+//      void apply(const CArray<double, 1>& dataSrc, CArray<double,1>& dataDest);
      
-     CGridAlgorithm* algorithm_ ;
-     bool detectMissingValues_ ;
-     bool defaultValue_ ;
+      CGridAlgorithm* algorithm_ ;
+      bool detectMissingValues_ ;
+      bool defaultValue_ ;
 
   }; // class CTransformFilter
