!
! Calendar Routines
!

! Inputs  Y,M,D                  Outputs: JD           Uses: YY,MM

       YMD'TO'JD:
       ! Start year in March...
               MM = M - 2: YY = Y : IF MM<1 THEN MM = MM+12 : YY = YY-1
       ! Ok for 1901 - 2099 AD
               JD = INT( YY*1461/4) + INT( MM*367/12) + D + 1721074
       ! Ok for 0000 - 999999 AD
               JD = JD - INT(( INT( YY/100 ) +1 ) * 3/4) + 15
               RETURN
! Inputs: JD                       Outputs: Y,M,D        Uses: JD2
!
       JD'TO'YMD:
               JD2 = JD
               JD = JD2 + 30 : CALL JD'TO'YMD'TRY : IF D>0 RETURN
               JD = JD2 : CALL JD'TO'YMD'TRY : RETURN
       JD'TO'YMD'TRY:
               M = INT(( JD-1721075)/365.2425*12)      ! Months since Jan 16, 0 AD
               Y = INT(M/12) : M=M-12*Y+1 : D=0 : CALL YMD'TO'JD
               D = JD2 - JD : JD = JD2
               RETURN
! Inputs: JD                        Outputs: DOW( 0=Monday, 6 = Sunday)
!
       JD'TO'DOW:
               DOW = JD - INT(JD/7)*7 ! DAY OF WEEK
               RETURN