W3FS26
The W3FS26 routine computes year (4 digits), month, day,
day of week, day of year from julian day number.
This subroutine will work from 1583 A.D. to 3300 A.D.
USAGE: CALL W3FS26(JLDAYN,IYEAR,MONTH,IDAY,IDAYWK,IDAYYR)
Input variables:
JLDAYN ARG LIST INTEGER JULIAN DAY NUMBER
Output variables:
IYEAR ARG LIST INTEGER YEAR (4 DIGITS)
MONTH ARG LIST INTEGER MONTH
IDAY ARG LIST INTEGER DAY
IDAYWK ARG LIST INTEGER DAY OF WEEK (1 IS SUNDAY, 7 IS SAT)
IDAYYR ARG LIST INTEGER DAY OF YEAR (1 TO 366)
REMARKS:
A JULIAN DAY NUMBER CAN BE COMPUTED BY USING ONE OF THE
FOLLOWING STATEMENT FUNCTIONS. A DAY OF WEEK CAN BE COMPUTED
FROM THE JULIAN DAY NUMBER. A DAY OF YEAR CAN BE COMPUTED FROM
A JULIAN DAY NUMBER AND YEAR.
IYEAR (4 DIGITS)
JDN(IYEAR,MONTH,IDAY) = IDAY - 32075
+ 1461 * (IYEAR + 4800 + (MONTH - 14) / 12) / 4
+ 367 * (MONTH - 2 - (MONTH -14) / 12 * 12) / 12
- 3 * ((IYEAR + 4900 + (MONTH - 14) / 12) / 100) / 4
IYR (4 DIGITS) , IDYR(1-366) DAY OF YEAR
JULIAN(IYR,IDYR) = -31739 + 1461 * (IYR + 4799) / 4
-3 * ((IYR + 4899) / 100) / 4 + IDYR
DAY OF WEEK FROM JULIAN DAY NUMBER, 1 IS SUNDAY, 7 IS SATURDAY.
JDAYWK(JLDAYN) = MOD((JLDAYN + 1),7) + 1
DAY OF YEAR FROM JULIAN DAY NUMBER AND 4 DIGIT YEAR.
JDAYYR(JLDAYN,IYEAR) = JLDAYN -
(-31739+1461*(IYEAR+4799)/4-3*((IYEAR+4899)/100)/4)
THE FIRST FUNCTION WAS IN A LETTER TO THE EDITOR COMMUNICATIONS
OF THE ACM VOLUME 11 / NUMBER 10 / OCTOBER, 1968. THE 2ND
FUNCTION WAS DERIVED FROM THE FIRST. THIS SUBROUTINE WAS ALSO
INCLUDED IN THE SAME LETTER. JULIAN DAY NUMBER 1 IS
JAN 1,4713 B.C. A JULIAN DAY NUMBER CAN BE USED TO REPLACE A
DAY OF CENTURY, THIS WILL TAKE CARE OF THE DATE PROBLEM IN
THE YEAR 2000, OR REDUCE PROGRAM CHANGES TO ONE LINE CHANGE
OF 1900 TO 2000. JULIAN DAY NUMBERS CAN BE USED FOR FINDING
RECORD NUMBERS IN AN ARCHIVE OR DAY OF WEEK, OR DAY OF YEAR.
W3lib.tar |
Library contains Fortran 90 decoder/encoder
routines for GRIB edition 1. (Fortran90)
Date posted: 2/22/2007 |