19       & 
operator(==), 
operator(<), 
operator(>), 
operator(<=), 
operator(>=), &
    20       & 
operator(+), 
operator(-), 
operator(*), 
operator(/), &
    28     result % day_seconds = diff1 % day_seconds
    29     if (diff1 % day == zero_sec .and. diff2 % day == zero_sec .and. &
    30       & diff1 % sec == zero_sec .and. diff2 % sec == zero_sec) 
then    31       result % mon = modscl(diff1 % mon, diff2 % mon)
    32       result % day = zero_sec
    33       result % sec = zero_sec
    34     else if (diff1 % sec == zero_sec .and. diff2 % sec == zero_sec) 
then    35       result % mon = zero_sec
    36       result % day = modscl((
cyclic_mdays * diff1 % mon + diff1 % day), &
    38       result % sec = zero_sec
    40       sec1 = diff1 % day_seconds * (
cyclic_mdays * diff1 % mon + diff1 % day) &
    42       sec2 = diff2 % day_seconds * (
cyclic_mdays * diff2 % mon + diff2 % day) &
    44       result % sec = modscl(sec1, sec2)
    45       result % day = zero_sec
    46       result % mon = zero_sec
    47       call dcdate_normalize(result % day, result % sec, result % day_seconds, result % nondim_flag)
 
real(dp), parameter, public cyclic_mdays
 
subroutine, public dcdate_nondimcheck(opr, diff1, diff2, rslt)
 
subroutine, public dcdate_normalize(day, sec, day_seconds, nondim_flag)