Index: XIOS/trunk/src/date/allleap.cpp
===================================================================
--- XIOS/trunk/src/date/allleap.cpp	(revision 501)
+++ XIOS/trunk/src/date/allleap.cpp	(revision 532)
@@ -5,11 +5,21 @@
       /// ////////////////////// DÃ©finitions ////////////////////// ///
 
-      CAllLeapCalendar::CAllLeapCalendar(const StdString & dateStr)
-         : CCalendar("AllLeap")
-      { initializeDate(dateStr); }
+      CAllLeapCalendar::CAllLeapCalendar(const CDate& startDate)
+         : CCalendar("AllLeap", startDate)
+      {
+         // This will check that the dates are conform with the calendar.
+         // We cannot call this from the parent constructor because we
+         // want the methods of this class to be used
+         initializeDate();
+      }
 
-      CAllLeapCalendar::CAllLeapCalendar(const StdString & dateStr,const StdString & timeOriginStr)
-         : CCalendar("AllLeap")
-      { initializeDate(dateStr, timeOriginStr); }
+      CAllLeapCalendar::CAllLeapCalendar(const CDate& startDate, const CDate& timeOrigin)
+         : CCalendar("AllLeap", startDate, timeOrigin)
+      {
+         // This will check that the dates are conform with the calendar.
+         // We cannot call this from the parent constructor because we
+         // want the methods of this class to be used
+         initializeDate();
+      }
 
       CAllLeapCalendar::CAllLeapCalendar(int yr, int mth, int d,
Index: XIOS/trunk/src/date/allleap.hpp
===================================================================
--- XIOS/trunk/src/date/allleap.hpp	(revision 501)
+++ XIOS/trunk/src/date/allleap.hpp	(revision 532)
@@ -18,10 +18,10 @@
             /// Constructeur ///
 //            CAllLeapCalendar(void);                                   // Not implemented yet.
-            CAllLeapCalendar(const StdString & dateStr);
-            CAllLeapCalendar(const StdString & dateStr,const StdString & timeOriginStr);
+            CAllLeapCalendar(const CDate& startDate);
+            CAllLeapCalendar(const CDate& startDate, const CDate& timeOriginStr);
             CAllLeapCalendar(int yr = 0, int mth = 1, int d   = 1,
-                            int hr = 0, int min = 0, int sec = 0);
-            CAllLeapCalendar(const CAllLeapCalendar & calendar);       // Not implemented yet.
-            CAllLeapCalendar(const CAllLeapCalendar * calendar);       // Not implemented yet.
+                             int hr = 0, int min = 0, int sec = 0);
+            CAllLeapCalendar(const CAllLeapCalendar& calendar);       // Not implemented yet.
+            CAllLeapCalendar(const CAllLeapCalendar* calendar);       // Not implemented yet.
 
             /// Accesseurs ///
Index: XIOS/trunk/src/date/d360.cpp
===================================================================
--- XIOS/trunk/src/date/d360.cpp	(revision 501)
+++ XIOS/trunk/src/date/d360.cpp	(revision 532)
@@ -5,11 +5,21 @@
       /// ////////////////////// DÃ©finitions ////////////////////// ///
 
-      CD360Calendar::CD360Calendar(const StdString & dateStr)
-         : CCalendar("D360")
-      { initializeDate(dateStr); }
+      CD360Calendar::CD360Calendar(const CDate& startDate)
+         : CCalendar("D360", startDate)
+      {
+         // This will check that the dates are conform with the calendar.
+         // We cannot call this from the parent constructor because we
+         // want the methods of this class to be used
+         initializeDate();
+      }
 
-      CD360Calendar::CD360Calendar(const StdString & dateStr,const StdString & timeOriginStr)
-         : CCalendar("D360", dateStr)
-      { initializeDate(dateStr, timeOriginStr); }
+      CD360Calendar::CD360Calendar(const CDate& startDate, const CDate& timeOrigin)
+         : CCalendar("D360", startDate, timeOrigin)
+      {
+         // This will check that the dates are conform with the calendar.
+         // We cannot call this from the parent constructor because we
+         // want the methods of this class to be used
+         initializeDate();
+      }
 
       CD360Calendar::CD360Calendar(int yr, int mth, int d,
Index: XIOS/trunk/src/date/d360.hpp
===================================================================
--- XIOS/trunk/src/date/d360.hpp	(revision 501)
+++ XIOS/trunk/src/date/d360.hpp	(revision 532)
@@ -18,10 +18,10 @@
             /// Constructeur ///
             CD360Calendar(void);                                   // Not implemented yet.
-            CD360Calendar(const StdString & dateStr);
-            CD360Calendar(const StdString & dateStr,const StdString & timeOriginStr);
+            CD360Calendar(const CDate& startDate);
+            CD360Calendar(const CDate& startDate, const CDate& timeOrigin);
             CD360Calendar(int yr = 0, int mth = 1, int d   = 1,
                           int hr = 0, int min = 0, int sec = 0);
-            CD360Calendar(const CD360Calendar & calendar);       // Not implemented yet.
-            CD360Calendar(const CD360Calendar * calendar);       // Not implemented yet.
+            CD360Calendar(const CD360Calendar& calendar);       // Not implemented yet.
+            CD360Calendar(const CD360Calendar* calendar);       // Not implemented yet.
 
             /// Accesseurs ///
Index: XIOS/trunk/src/date/gregorian.cpp
===================================================================
--- XIOS/trunk/src/date/gregorian.cpp	(revision 501)
+++ XIOS/trunk/src/date/gregorian.cpp	(revision 532)
@@ -5,11 +5,21 @@
       /// ////////////////////// DÃ©finitions ////////////////////// ///
 
-      CGregorianCalendar::CGregorianCalendar(const StdString & dateStr)
-         : CCalendar("Gregorian")
-      { initializeDate(dateStr); }
+      CGregorianCalendar::CGregorianCalendar(const CDate& startDate)
+         : CCalendar("Gregorian", startDate)
+      {
+         // This will check that the dates are conform with the calendar.
+         // We cannot call this from the parent constructor because we
+         // want the methods of this class to be used
+         initializeDate();
+      }
 
-      CGregorianCalendar::CGregorianCalendar(const StdString & dateStr,const StdString & timeOriginStr)
-         : CCalendar("Gregorian")
-      { initializeDate(dateStr, timeOriginStr); }
+      CGregorianCalendar::CGregorianCalendar(const CDate& startDate, const CDate& timeOrigin)
+         : CCalendar("Gregorian", startDate, timeOrigin)
+      {
+         // This will check that the dates are conform with the calendar.
+         // We cannot call this from the parent constructor because we
+         // want the methods of this class to be used
+         initializeDate();
+      }
 
       CGregorianCalendar::CGregorianCalendar(int yr, int mth, int d,
Index: XIOS/trunk/src/date/gregorian.hpp
===================================================================
--- XIOS/trunk/src/date/gregorian.hpp	(revision 501)
+++ XIOS/trunk/src/date/gregorian.hpp	(revision 532)
@@ -18,10 +18,10 @@
             /// Constructeur ///
 //            CGregorianCalendar(void);                                   // Not implemented yet.
-            CGregorianCalendar(const StdString & dateStr);
-            CGregorianCalendar(const StdString & dateStr,const StdString & timeOriginStr);
+            CGregorianCalendar(const CDate& startDate);
+            CGregorianCalendar(const CDate& startDate, const CDate& timeOrigin);
             CGregorianCalendar(int yr = 0, int mth = 1, int d   = 1,
                                int hr = 0, int min = 0, int sec = 0);
-            CGregorianCalendar(const CGregorianCalendar & calendar);       // Not implemented yet.
-            CGregorianCalendar(const CGregorianCalendar * calendar);       // Not implemented yet.
+            CGregorianCalendar(const CGregorianCalendar& calendar);       // Not implemented yet.
+            CGregorianCalendar(const CGregorianCalendar* calendar);       // Not implemented yet.
 
             /// Accesseurs ///
Index: XIOS/trunk/src/date/julian.cpp
===================================================================
--- XIOS/trunk/src/date/julian.cpp	(revision 501)
+++ XIOS/trunk/src/date/julian.cpp	(revision 532)
@@ -5,11 +5,21 @@
       /// ////////////////////// DÃ©finitions ////////////////////// ///
 
-      CJulianCalendar::CJulianCalendar(const StdString & dateStr)
-         : CCalendar("Julian")
-      { initializeDate(dateStr); }
+      CJulianCalendar::CJulianCalendar(const CDate& startDate)
+         : CCalendar("Julian", startDate)
+      {
+         // This will check that the dates are conform with the calendar.
+         // We cannot call this from the parent constructor because we
+         // want the methods of this class to be used
+         initializeDate();
+      }
 
-      CJulianCalendar::CJulianCalendar(const StdString & dateStr,const StdString & timeOriginStr)
-         : CCalendar("Julian")
-      { initializeDate(dateStr, timeOriginStr); }
+      CJulianCalendar::CJulianCalendar(const CDate& startDate, const CDate& timeOrigin)
+         : CCalendar("Julian", startDate, timeOrigin)
+      {
+         // This will check that the dates are conform with the calendar.
+         // We cannot call this from the parent constructor because we
+         // want the methods of this class to be used
+         initializeDate();
+      }
 
       CJulianCalendar::CJulianCalendar(int yr, int mth, int d,
Index: XIOS/trunk/src/date/julian.hpp
===================================================================
--- XIOS/trunk/src/date/julian.hpp	(revision 501)
+++ XIOS/trunk/src/date/julian.hpp	(revision 532)
@@ -18,10 +18,10 @@
             /// Constructeur ///
 //            CJulianCalendar(void);                                   // Not implemented yet.
-            CJulianCalendar(const StdString & dateStr);
-            CJulianCalendar(const StdString & dateStr,const StdString & timeOriginStr);
+            CJulianCalendar(const CDate& startDate);
+            CJulianCalendar(const CDate& startDate, const CDate& timeOrigin);
             CJulianCalendar(int yr = 0, int mth = 1, int d   = 1,
                             int hr = 0, int min = 0, int sec = 0);
-            CJulianCalendar(const CJulianCalendar & calendar);       // Not implemented yet.
-            CJulianCalendar(const CJulianCalendar * calendar);       // Not implemented yet.
+            CJulianCalendar(const CJulianCalendar& calendar);       // Not implemented yet.
+            CJulianCalendar(const CJulianCalendar* calendar);       // Not implemented yet.
 
             /// Accesseurs ///
Index: XIOS/trunk/src/date/noleap.cpp
===================================================================
--- XIOS/trunk/src/date/noleap.cpp	(revision 501)
+++ XIOS/trunk/src/date/noleap.cpp	(revision 532)
@@ -6,11 +6,21 @@
       /// ////////////////////// DÃ©finitions ////////////////////// ///
 
-      CNoLeapCalendar::CNoLeapCalendar(const StdString & dateStr)
-         : CCalendar("NoLeap", dateStr)
-      { initializeDate(dateStr); }
+      CNoLeapCalendar::CNoLeapCalendar(const CDate& startDate)
+         : CCalendar("NoLeap", startDate)
+      {
+         // This will check that the dates are conform with the calendar.
+         // We cannot call this from the parent constructor because we
+         // want the methods of this class to be used
+         initializeDate();
+      }
 
-      CNoLeapCalendar::CNoLeapCalendar(const StdString & dateStr,const StdString & timeOriginStr)
-         : CCalendar("NoLeap", dateStr, timeOriginStr)
-      { initializeDate(dateStr, timeOriginStr); }
+      CNoLeapCalendar::CNoLeapCalendar(const CDate& startDate, const CDate& timeOrigin)
+         : CCalendar("NoLeap", startDate, timeOrigin)
+      {
+         // This will check that the dates are conform with the calendar.
+         // We cannot call this from the parent constructor because we
+         // want the methods of this class to be used
+         initializeDate();
+      }
 
       CNoLeapCalendar::CNoLeapCalendar(int yr, int mth, int d,
Index: XIOS/trunk/src/date/noleap.hpp
===================================================================
--- XIOS/trunk/src/date/noleap.hpp	(revision 501)
+++ XIOS/trunk/src/date/noleap.hpp	(revision 532)
@@ -18,10 +18,10 @@
             /// Constructeur ///
 //            CNoLeapCalendar(void);                                   // Not implemented yet.
-            CNoLeapCalendar(const StdString & dateStr);
-            CNoLeapCalendar(const StdString & dateStr,const StdString & timeOriginStr);
+            CNoLeapCalendar(const CDate& startDate);
+            CNoLeapCalendar(const CDate& startDate, const CDate& timeOrigin);
             CNoLeapCalendar(int yr = 0, int mth = 1, int d   = 1,
                             int hr = 0, int min = 0, int sec = 0);
-            CNoLeapCalendar(const CNoLeapCalendar & calendar);       // Not implemented yet.
-            CNoLeapCalendar(const CNoLeapCalendar * calendar);       // Not implemented yet.
+            CNoLeapCalendar(const CNoLeapCalendar& calendar);       // Not implemented yet.
+            CNoLeapCalendar(const CNoLeapCalendar* calendar);       // Not implemented yet.
 
             /// Accesseurs ///
