Index: XIOS/trunk/src/calendar_util.cpp
===================================================================
--- XIOS/trunk/src/calendar_util.cpp	(revision 423)
+++ XIOS/trunk/src/calendar_util.cpp	(revision 424)
@@ -12,5 +12,5 @@
          CDuration dur(ddr);
          dur.year -= dr.year;  dur.month  -= dr.month ; dur.day    -= dr.day;
-         dur.hour -= dr.hour;  dur.minute -= dr.minute; dur.second -= dr.second;
+         dur.hour -= dr.hour;  dur.minute -= dr.minute; dur.second -= dr.second; dur.timestep -= dr.timestep;
          return (dur);
       }
@@ -20,5 +20,5 @@
          CDuration dur(ddr);
          dur.year += dr.year;  dur.month  += dr.month ; dur.day    += dr.day;
-         dur.hour += dr.hour;  dur.minute += dr.minute; dur.second += dr.second;
+         dur.hour += dr.hour;  dur.minute += dr.minute; dur.second += dr.second; dur.timestep += dr.timestep;
          return (dur);
       }
@@ -28,5 +28,5 @@
          CDuration dur(ddr);
          dur.year *= scal;  dur.month  *= scal; dur.day    *= scal;
-         dur.hour *= scal;  dur.minute *= scal; dur.second *= scal;
+         dur.hour *= scal;  dur.minute *= scal; dur.second *= scal; dur.timestep *= scal;
          return (dur);
       }
@@ -41,4 +41,5 @@
          dur.minute = -dur.minute;
          dur.second = -dur.second;
+         dur.second = -dur.timestep;
          return (dur);
       }
@@ -51,5 +52,8 @@
          int year = 0, month = 0, day = 0, hour = 0, minute = 0, second = 0;
          const CCalendar & c = dt.getRelCalendar();
-
+         
+         drr.timestep=0 ;       
+         drr=drr+dr.timestep*dt.getRelCalendar().getTimeStep() ;
+         
          drr.resolve(dt.getRelCalendar());
 
Index: XIOS/trunk/src/duration.cpp
===================================================================
--- XIOS/trunk/src/duration.cpp	(revision 423)
+++ XIOS/trunk/src/duration.cpp	(revision 424)
@@ -6,12 +6,13 @@
 {
       /// ////////////////////// DÃ©finitions ////////////////////// ///
-      const CDuration Year   = {1.0, 0.0, 0.0, 0.0, 0.0, 0.0},
-                      Month  = {0.0, 1.0, 0.0, 0.0, 0.0, 0.0},
-                      Week   = {0.0, 0.0, 7.0, 0.0, 0.0, 0.0},
-                      Day    = {0.0, 0.0, 1.0, 0.0, 0.0, 0.0},
-                      Hour   = {0.0, 0.0, 0.0, 1.0, 0.0, 0.0},
-                      Minute = {0.0, 0.0, 0.0, 0.0, 1.0, 0.0},
-                      Second = {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};
+      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},
+                      NoneDu = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
+                      TimeStep = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0};
 
       ///---------------------------------------------------------------
@@ -20,5 +21,5 @@
       {
          year = duration.year;  month  = duration.month ; day    = duration.day;
-         hour = duration.hour;  minute = duration.minute; second = duration.second;
+         hour = duration.hour;  minute = duration.minute; second = duration.second; timestep=duration.timestep ;
          return (*this);
       }
@@ -34,4 +35,5 @@
          if(duration.minute != 0.0) { testValue = false; sout << duration.minute << "mi "; }
          if(duration.second != 0.0 || testValue)       { sout << duration.second << "s " ; }
+         if(duration.timestep != 0.0 || testValue)       { sout << duration.timestep << "ts " ; }
 
          // << suppression de l'espace en fin de chaÃ®ne.
@@ -77,4 +79,11 @@
                      break;
                   }
+                  case 't' :
+                  {
+                    in >> c;
+                    if (c=='s') duration.timestep = v; 
+                    break;
+                  }
+                  
                   default:
                      StdString valc; valc.append(1, c);
@@ -91,5 +100,5 @@
       {
          if ((year == 0) && (month  == 0) && (day    == 0) &&
-             (hour == 0) && (minute == 0) && (second == 0))
+             (hour == 0) && (minute == 0) && (second == 0) && (timestep == 0))
             return (true);
          return (false);
@@ -131,5 +140,5 @@
       CDuration CDuration::FromString(const StdString & str)
       {
-         CDuration dr = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
+         CDuration dr = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
          StdIStringStream iss(str); iss >> dr;
          return (dr);
Index: XIOS/trunk/src/duration.hpp
===================================================================
--- XIOS/trunk/src/duration.hpp	(revision 423)
+++ XIOS/trunk/src/duration.hpp	(revision 424)
@@ -37,5 +37,5 @@
 
             /// PropriÃ©tÃ©s publiques ///
-            double year, month, day, hour, minute, second;
+            double year, month, day, hour, minute, second, timestep;
 
       } CDuration;
@@ -44,5 +44,5 @@
 
       const extern CDuration Year, Month , Week  , Day    ,
-                             Hour, Minute, Second, NoneDu ;
+                             Hour, Minute, Second, NoneDu, TimeStep ;
       ///---------------------------------------------------------------
 
