Index: XIOS/dev/XIOS_DEV_CMIP6/src/calendar_util.cpp
===================================================================
--- XIOS/dev/XIOS_DEV_CMIP6/src/calendar_util.cpp	(revision 1471)
+++ XIOS/dev/XIOS_DEV_CMIP6/src/calendar_util.cpp	(revision 1472)
@@ -130,7 +130,6 @@
     {
       // TODO :: VÃ©rifier que les deux dates (dt0 et dt1) ont une rÃ©fÃ©rence vers le mÃªme calendrier.
-      CDuration dur =
-      { dt0.getYear() - dt1.getYear(), dt0.getMonth()  - dt1.getMonth() , dt0.getDay()   - dt1.getDay(),
-        dt0.getHour() - dt1.getHour(), dt0.getMinute() - dt1.getMinute(), dt0.getSecond() - dt1.getSecond() };
+      CDuration dur( dt0.getYear() - dt1.getYear(), dt0.getMonth()  - dt1.getMonth() , dt0.getDay()   - dt1.getDay(),
+      dt0.getHour() - dt1.getHour(), dt0.getMinute() - dt1.getMinute(), dt0.getSecond() - dt1.getSecond() );
       return (dur.resolve(dt0.getRelCalendar()));
     }
Index: XIOS/dev/XIOS_DEV_CMIP6/src/duration.cpp
===================================================================
--- XIOS/dev/XIOS_DEV_CMIP6/src/duration.cpp	(revision 1471)
+++ XIOS/dev/XIOS_DEV_CMIP6/src/duration.cpp	(revision 1472)
@@ -7,13 +7,21 @@
 {
       /// ////////////////////// DÃ©finitions ////////////////////// ///
-      const CDuration Year     = { 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
-                      Month    = { 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
-                      Week     = { 0.0, 0.0, 7.0, 0.0, 0.0, 0.0, 0.0 },
-                      Day      = { 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0 },
-                      Hour     = { 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0 },
-                      Minute   = { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0 },
-                      Second   = { 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 },
-                      TimeStep = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 },
-                      NoneDu   = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
+
+      const CDuration Year     ( 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 );
+      const CDuration Month    ( 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0 );
+      const CDuration Week     ( 0.0, 0.0, 7.0, 0.0, 0.0, 0.0, 0.0 );
+      const CDuration Day      ( 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0 );
+      const CDuration Hour     ( 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0 );
+      const CDuration Minute   ( 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0 );
+      const CDuration Second   ( 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 );
+      const CDuration TimeStep ( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 );
+      const CDuration NoneDu   ( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 );
+
+      ///---------------------------------------------------------------
+
+      CDuration::CDuration(double y, double m, double d, double h, double min, double s, double ts) :
+      year(y), month(m), day(d), hour(h), minute(min), second(s), timestep(ts)
+      {
+      }
 
       ///---------------------------------------------------------------
Index: XIOS/dev/XIOS_DEV_CMIP6/src/duration.hpp
===================================================================
--- XIOS/dev/XIOS_DEV_CMIP6/src/duration.hpp	(revision 1471)
+++ XIOS/dev/XIOS_DEV_CMIP6/src/duration.hpp	(revision 1472)
@@ -20,4 +20,6 @@
 
          public:
+            CDuration(double year=0.0, double month=0.0, double day=0.0, double hour=0.0, double minute=0.0, double second=0.0, double timestep=0.0);
+
             /// OpÃ©rateurs ///
             CDuration& operator=(const CDuration& duration);
Index: XIOS/dev/XIOS_DEV_CMIP6/src/filter/temporal_filter.cpp
===================================================================
--- XIOS/dev/XIOS_DEV_CMIP6/src/filter/temporal_filter.cpp	(revision 1471)
+++ XIOS/dev/XIOS_DEV_CMIP6/src/filter/temporal_filter.cpp	(revision 1472)
@@ -17,8 +17,8 @@
     , samplingOffset(samplingOffset)
     , opFreq(opFreq)
-    , offsetMonth({0, this->samplingOffset.month, 0, 0, 0, 0, 0})
-    , offsetAllButMonth({this->samplingOffset.year, 0 , this->samplingOffset.day,
-                       this->samplingOffset.hour, this->samplingOffset.minute,
-                       this->samplingOffset.second, this->samplingOffset.timestep})
+    , offsetMonth(0, this->samplingOffset.month, 0, 0, 0, 0, 0)
+    , offsetAllButMonth(this->samplingOffset.year, 0 , this->samplingOffset.day,
+                        this->samplingOffset.hour, this->samplingOffset.minute,
+                        this->samplingOffset.second, this->samplingOffset.timestep)
     , initDate(initDate)
     , nextSamplingDate(initDate + (this->samplingOffset + initDate.getRelCalendar().getTimeStep()))
Index: XIOS/dev/XIOS_DEV_CMIP6/src/interface/c/icdate.cpp
===================================================================
--- XIOS/dev/XIOS_DEV_CMIP6/src/interface/c/icdate.cpp	(revision 1471)
+++ XIOS/dev/XIOS_DEV_CMIP6/src/interface/c/icdate.cpp	(revision 1472)
@@ -70,7 +70,5 @@
                                    date_c.year, date_c.month, date_c.day,
                                    date_c.hour, date_c.minute, date_c.second);
-    xios::CDuration dur = { dur_c.year, dur_c.month, dur_c.day,
-                            dur_c.hour, dur_c.minute, dur_c.second,
-                            dur_c.timestep };
+    xios::CDuration dur( dur_c.year, dur_c.month, dur_c.day, dur_c.hour, dur_c.minute, dur_c.second, dur_c.timestep );
     xios::CDate res = date + dur;
     return { res.getYear(), res.getMonth(), res.getDay(), res.getHour(), res.getMinute(), res.getSecond() };
@@ -82,7 +80,6 @@
                                    date_c.year, date_c.month, date_c.day,
                                    date_c.hour, date_c.minute, date_c.second);
-    xios::CDuration dur = { dur_c.year, dur_c.month, dur_c.day,
-                            dur_c.hour, dur_c.minute, dur_c.second,
-                            dur_c.timestep };
+    xios::CDuration dur( dur_c.year, dur_c.month, dur_c.day, dur_c.hour, dur_c.minute, dur_c.second, dur_c.timestep );
+
     xios::CDate res = date - dur;
     return { res.getYear(), res.getMonth(), res.getDay(), res.getHour(), res.getMinute(), res.getSecond() };
Index: XIOS/dev/XIOS_DEV_CMIP6/src/interface/c/icduration.cpp
===================================================================
--- XIOS/dev/XIOS_DEV_CMIP6/src/interface/c/icduration.cpp	(revision 1471)
+++ XIOS/dev/XIOS_DEV_CMIP6/src/interface/c/icduration.cpp	(revision 1472)
@@ -7,7 +7,5 @@
   void cxios_duration_convert_to_string(cxios_duration dur_c, char* str, int str_size)
   {
-    xios::CDuration dur = { dur_c.year, dur_c.month, dur_c.day,
-                            dur_c.hour, dur_c.minute, dur_c.second,
-                            dur_c.timestep };
+    xios::CDuration dur( dur_c.year, dur_c.month, dur_c.day, dur_c.hour, dur_c.minute, dur_c.second, dur_c.timestep );
 
     if (!string_copy(dur.toString(), str, str_size))
@@ -28,10 +26,7 @@
   cxios_duration cxios_duration_add(cxios_duration dur1_c, cxios_duration dur2_c)
   {
-    xios::CDuration dur1 = { dur1_c.year, dur1_c.month, dur1_c.day,
-                             dur1_c.hour, dur1_c.minute, dur1_c.second,
-                             dur1_c.timestep };
-    xios::CDuration dur2 = { dur2_c.year, dur2_c.month, dur2_c.day,
-                             dur2_c.hour, dur2_c.minute, dur2_c.second,
-                             dur2_c.timestep };
+    xios::CDuration dur1( dur1_c.year, dur1_c.month, dur1_c.day, dur1_c.hour, dur1_c.minute, dur1_c.second, dur1_c.timestep );
+    xios::CDuration dur2( dur2_c.year, dur2_c.month, dur2_c.day, dur2_c.hour, dur2_c.minute, dur2_c.second, dur2_c.timestep );
+
     xios::CDuration res = dur1 + dur2;
     return { res.year, res.month, res.day, res.hour, res.minute, res.second, res.timestep };
@@ -40,10 +35,7 @@
   cxios_duration cxios_duration_sub(cxios_duration dur1_c, cxios_duration dur2_c)
   {
-    xios::CDuration dur1 = { dur1_c.year, dur1_c.month, dur1_c.day,
-                             dur1_c.hour, dur1_c.minute, dur1_c.second,
-                             dur1_c.timestep };
-    xios::CDuration dur2 = { dur2_c.year, dur2_c.month, dur2_c.day,
-                             dur2_c.hour, dur2_c.minute, dur2_c.second,
-                             dur2_c.timestep };
+    xios::CDuration dur1( dur1_c.year, dur1_c.month, dur1_c.day, dur1_c.hour, dur1_c.minute, dur1_c.second, dur1_c.timestep );
+    xios::CDuration dur2( dur2_c.year, dur2_c.month, dur2_c.day, dur2_c.hour, dur2_c.minute, dur2_c.second, dur2_c.timestep );
+
     xios::CDuration res = dur1 - dur2;
     return { res.year, res.month, res.day, res.hour, res.minute, res.second, res.timestep };
@@ -52,7 +44,5 @@
   cxios_duration cxios_duration_mult(double val, cxios_duration dur_c)
   {
-    xios::CDuration dur = { dur_c.year, dur_c.month, dur_c.day,
-                            dur_c.hour, dur_c.minute, dur_c.second,
-                            dur_c.timestep };
+    xios::CDuration dur( dur_c.year, dur_c.month, dur_c.day, dur_c.hour, dur_c.minute, dur_c.second, dur_c.timestep );
     xios::CDuration res = val * dur;
     return { res.year, res.month, res.day, res.hour, res.minute, res.second, res.timestep };
@@ -61,7 +51,5 @@
   cxios_duration cxios_duration_neg(cxios_duration dur_c)
   {
-    xios::CDuration dur = { dur_c.year, dur_c.month, dur_c.day,
-                            dur_c.hour, dur_c.minute, dur_c.second,
-                            dur_c.timestep };
+    xios::CDuration dur( dur_c.year, dur_c.month, dur_c.day, dur_c.hour, dur_c.minute, dur_c.second, dur_c.timestep );
     xios::CDuration res = -dur;
     return { res.year, res.month, res.day, res.hour, res.minute, res.second, res.timestep };
@@ -70,10 +58,6 @@
   bool cxios_duration_eq(cxios_duration dur1_c, cxios_duration dur2_c)
   {
-    xios::CDuration dur1 = { dur1_c.year, dur1_c.month, dur1_c.day,
-                             dur1_c.hour, dur1_c.minute, dur1_c.second,
-                             dur1_c.timestep };
-    xios::CDuration dur2 = { dur2_c.year, dur2_c.month, dur2_c.day,
-                             dur2_c.hour, dur2_c.minute, dur2_c.second,
-                             dur2_c.timestep };
+    xios::CDuration dur1( dur1_c.year, dur1_c.month, dur1_c.day, dur1_c.hour, dur1_c.minute, dur1_c.second, dur1_c.timestep );
+    xios::CDuration dur2( dur2_c.year, dur2_c.month, dur2_c.day, dur2_c.hour, dur2_c.minute, dur2_c.second, dur2_c.timestep );
     return (dur1 == dur2);
   }
@@ -81,10 +65,6 @@
   bool cxios_duration_neq(cxios_duration dur1_c, cxios_duration dur2_c)
   {
-    xios::CDuration dur1 = { dur1_c.year, dur1_c.month, dur1_c.day,
-                             dur1_c.hour, dur1_c.minute, dur1_c.second,
-                             dur1_c.timestep };
-    xios::CDuration dur2 = { dur2_c.year, dur2_c.month, dur2_c.day,
-                             dur2_c.hour, dur2_c.minute, dur2_c.second,
-                             dur2_c.timestep };
+    xios::CDuration dur1( dur1_c.year, dur1_c.month, dur1_c.day, dur1_c.hour, dur1_c.minute, dur1_c.second, dur1_c.timestep );
+    xios::CDuration dur2( dur2_c.year, dur2_c.month, dur2_c.day, dur2_c.hour, dur2_c.minute, dur2_c.second, dur2_c.timestep );
     return (dur1 != dur2);
   }
