SUBROUTINE DAZL (JULD, NYR,MO,NDA,NYRD,NWD) C THIS SUBROUTINE ACCEPTS THE JULIAN DAY NUMBER JULD THAT BEGINS AT C NOON U.T. AND CALCULATES THE YEAR NYR (A.D.), THE MONTH MO (1 THROUGH C 12 AS USUAL), THE DAY OF THE MONTH NDA (1 THROUGH 31), THE DAY OF THE C YEAR NYRD (1 THROUGH 366), AND THE DAY OF THE WEEK NWD (SUNDAY IS 1, C MONDAY IS 2, ETC.). JULIAN DAY NUMBERS COUNT FROM NOON ON JANUARY 1, C 4713 B.C. (JULIAN PROLEPTIC CALENDAR) AT WHICH TIME THE WORLD BEGAN. C BUT THIS PROGRAM USES THE NEW STYLE (GREGORIAN) CALENDAR. TEST CASE: C JULD = 2443868, GET NYR = 1978, MO = 12 (DECEMBER), NDA = 25 C (CHRISTMAS), NYRD = 359, AND NWD = 2 (MONDAY). NOTE THAT JULIAN DAY C NUMBERS REQUIRE AT LEAST 23-BIT INTEGERS (FOR THE CURRENT EPOCH); C 16-BIT INTEGERS WON'T DO. NYRD = JULD-1721426 C JULD = 1721426 ON JANUARY 1, 1 A.D., GREGORIAN PROLEPTIC CALENDAR. N = NYRD/146097 NYRD = NYRD-146097*N NYR = 400*N C EACH 400-YEAR CYCLE CONTAINS 146097 DAYS. N = MIN0(NYRD/36524,3) NYRD = NYRD-36524*N NYR = NYR+100*N C EACH 100-YEAR SUBCYCLE CONTAINS 36524 DAYS; NO MORE THAN 3 ARE C PERMITTED. N = NYRD/1461 NYRD = NYRD-1461*N NYR = NYR+4*N C EACH 4-YEAR SUBSUBCYCLE CONTAINS 1461 DAYS. N = MIN0(NYRD/365,3) NYRD = NYRD+1-365*N NYR = NYR+N+1 C EACH NON-LEAP YEAR CONTAINS 365 DAYS; NO MORE THAN 3 ARE PERMITTED C BECAUSE CENTENNIAL YEARS ARE INCLUDED IN THE LONGER CYCLES. L2 = NYR/4-(NYR+7)/4-NYR/100+(NYR+99)/100+NYR/400-(NYR+399)/400 C L2 IS -1 IF NYR IS A LEAP YEAR, -2 IF NOT. LEAP YEARS ARE EVENLY C DIVISIBLE BY 4, EXCEPT THAT CENTENNIAL YEARS ARE NOT LEAP YEARS, C EXCEPT THAT CENTENNIAL YEARS EVENLY DIVISIBLE BY 400 ARE LEAP YEARS. MO = (12*NYRD+356+(NYRD+322)/367*(6-12*L2))/367 NDA = NYRD-(367*MO-362)/12-(MO+9)/12*L2 C (BASED ON NORM BRENNER'S FORMULA IN ARPNC, P. 244.) NWD = MOD(JULD+1,7)+1 RETURN C JOHN A. BALL C HARVARD COLLEGE OBSERVATORY C HARVARD, MASSACHUSETTS 01451 C REVISED: 1979 JANUARY 7 C Revised: 2002 September 10 END