Index: /XIOS/trunk/src/config/functor_type.conf
===================================================================
--- /XIOS/trunk/src/config/functor_type.conf	(revision 442)
+++ /XIOS/trunk/src/config/functor_type.conf	(revision 443)
@@ -2,4 +2,8 @@
    DECLARE_FUNCTOR(Average  , average)
 #endif //__XMLIO_CAverage__
+
+#ifdef __XMLIO_CAccumulate__
+   DECLARE_FUNCTOR(Accumulate  , accumulate)
+#endif //__XMLIO_CAccumulate__
 
 #ifdef __XMLIO_CInstant__
Index: /XIOS/trunk/src/functor/accumulate.cpp
===================================================================
--- /XIOS/trunk/src/functor/accumulate.cpp	(revision 443)
+++ /XIOS/trunk/src/functor/accumulate.cpp	(revision 443)
@@ -0,0 +1,46 @@
+#include "accumulate.hpp"
+#include "array_new.hpp"
+
+namespace xios
+{
+   namespace func
+   {
+      /// ////////////////////// DÃ©finitions ////////////////////// ///
+
+      CAccumulate::CAccumulate(CArray<double,1>& doutput)
+         : SuperClass(StdString("average"), doutput)
+      { /* Ne rien faire de plus */ }
+
+      CAccumulate::~CAccumulate(void)
+      { /* Ne rien faire de plus */ }
+
+      //---------------------------------------------------------------
+
+      void CAccumulate::apply(const CArray<double,1>& _dinput,
+                                 CArray<double,1>& _doutput)
+      {
+/*
+         const double * it1  = _dinput->data(),
+                      * end1 = _dinput->data() + _dinput->num_elements(); 
+               double * it   = _doutput->data();
+         if (this->nbcall == 1)
+              for (; it1 != end1; it1++, it++) *it  = *it1;
+         else for (; it1 != end1; it1++, it++) *it += *it1;               
+*/
+        if (this->nbcall == 1) _doutput=_dinput ;
+        else _doutput+=_dinput ;
+      
+      }
+      
+      void CAccumulate::final(void)
+      {
+/*          double * it1  = this->getDataOutput()->data(),
+                 * end1 = this->getDataOutput()->data() + this->getDataOutput()->num_elements();
+          for (; it1 != end1; it1++) *it1 /= this->nbcall;
+          this->nbcall = 0;                                                   
+*/
+//        doutput/=this->nbcall; 
+        this->nbcall = 0; 
+      }
+   } // namespace func
+} // namespace xmlioserver
Index: /XIOS/trunk/src/functor/accumulate.hpp
===================================================================
--- /XIOS/trunk/src/functor/accumulate.hpp	(revision 443)
+++ /XIOS/trunk/src/functor/accumulate.hpp	(revision 443)
@@ -0,0 +1,39 @@
+#ifndef __XMLIO_CAccumulate__
+#define __XMLIO_CAccumulate__
+
+/// xmlioserver headers ///
+#include "functor.hpp"
+#include "array_new.hpp"
+
+namespace xios
+{
+   namespace func
+   {
+      /// ////////////////////// DÃ©clarations ////////////////////// ///
+      class CAccumulate : public CFunctor
+      {
+         /// DÃ©finition de type ///
+         typedef CFunctor SuperClass;
+
+         public :
+
+            /// Constructeurs ///
+            //CAccumulate(void);                             // Not implemented.
+            //CAccumulate(const CFunData & data);
+            CAccumulate(CArray<double,1>& doutput);
+            //CAccumulate(const CAccumulate & accumulate);         // Not implemented.
+            //CAccumulate(const CAccumulate * const accumulate);   // Not implemented.
+
+            /// Traitement ///
+            virtual void apply(const CArray<double,1>& dinput, CArray<double,1>& doutput);
+            virtual void final(void) ;
+            
+            /// Destructeur ///
+            virtual ~CAccumulate(void);
+
+      }; // class CAccumulate
+
+   } // namespace func
+} // namespace xmlioserver
+
+#endif //__XMLIO_CAccumulate__
Index: /XIOS/trunk/src/functor/functor_type.hpp
===================================================================
--- /XIOS/trunk/src/functor/functor_type.hpp	(revision 442)
+++ /XIOS/trunk/src/functor/functor_type.hpp	(revision 443)
@@ -3,4 +3,5 @@
 
 #include "average.hpp"
+#include "accumulate.hpp"
 #include "instant.hpp"
 #include "once.hpp"
