DECLARE_ENUM6(type, D360, AllLeap, NoLeap, Julian, Gregorian, user_defined) DECLARE_ATTRIBUTE(CDuration, timestep) // The start date and time origin are declared as string attributes instead // of CDate attributes so that we can control when they are parsed exactly DECLARE_ATTRIBUTE(string, start_date) DECLARE_ATTRIBUTE(string, time_origin) DECLARE_ATTRIBUTE(int, day_length) DECLARE_ARRAY(int, 1, month_lengths) DECLARE_ATTRIBUTE(int, year_length) DECLARE_ATTRIBUTE(double, leap_year_drift) DECLARE_ATTRIBUTE(double, leap_year_drift_offset) DECLARE_ATTRIBUTE(int, leap_year_month)