anchor.diff:      !!  Set the object calendar and base year
       !!
       !!------------------------------------------------------------
  -    subroutine time_init(this, calendar_name, year_zero, month_zero, day_zero)
  +    subroutine time_init_c(this, calendar_name, year_zero, month_zero, day_zero)
           implicit none
           class(Time_type) :: this
           character(len=*), intent(in) :: calendar_name
  
positive.code:         double precision :: current_date_time = 0
  
        contains
          procedure, public  :: init        => time_init
          procedure, public  :: date        => calendar_date
          procedure, public  :: mjd         => get_mjd
          procedure, public  :: day_of_year => calc_day_of_year
          procedure, public  :: date_to_mjd => date_to_mjd
          procedure, public  :: as_string   => as_string
  
          generic,   public  :: set         => set_from_string
          generic,   public  :: set         => set_from_date
          generic,   public  :: set         => set_from_mjd
          procedure, private :: set_from_string
          procedure, private :: set_from_date
          procedure, private :: set_from_mjd
  
negative.code:     end function less_than
  
      ! note, this requires the time_delta object
      function difference(t1, t2) result(dt)
          implicit none
          class(Time_type), intent(in) :: t1, t2
          type(time_delta_t) :: dt
  
          type(Time_type) :: temp_time
          integer :: year, month, day, hour, minute, second
  
          if (((t1%calendar == t2%calendar).and.(t1%year_zero == t2%year_zero)) &
              .and.((t1%month_zero == t2%month_zero).and.(t1%day_zero == t2%day_zero))) then
  
              call dt%set_time_delta(days=t1%mjd() - t2%mjd())
          else
              ! if the two time object reference calendars don't match
              ! create a new time object with the same referecnce as t1
              ! then copy the date/time data into it from t2 before computing the time delta
              call temp_time%init(t1%calendar,t1%year_zero,t1%month_zero,t1%day_zero)
              call t1%date(year, month, day, hour, minute, second)
              call temp_time%set(year, month, day, hour, minute, second)
  
              call dt%set_time_delta(days=t1%mjd() - temp_time%mjd())
          endif
  
      end function difference
  
  