C.. DECDAT.FTN BOHDEN K. CMAYLO DEC 1981 SUBROUTINE DECDAT(NDAYS,INPUT) C.. C.. DECODES # DAYS SINCE 00 YEAR (INCLUDES LEAP YEARS) C.. BYTE IDASH,INPUT(9),LMONTH(12),MONTHS(40) DOUBLE PRECISION RMONTH(5) EQUIVALENCE (RMONTH,MONTHS) DATA RMONTH/'JANFEBMA','RAPRMAYJ','UNJULAUG','SEPOCTNO','VDEC'/ DATA LMONTH/0,31,28,31,30,31,30,31,31,30,31,30/ DATA IDASH/'-'/ C.. C.. GET NUMBER OF DAYS C.. NDAYS=0 IN=1 IF(INPUT(IN+1).EQ.IDASH) GO TO 1 IN=2 IF(INPUT(IN+1).EQ.IDASH) GO TO 1 99 RETURN 1 DECODE(IN,2,INPUT,ERR=99)NUMDAY 2 FORMAT(I2) C.. C.. GET MONTH C.. IN=IN+2 IMONTH=0 DO 3 I=1,37,3 IMONTH=IMONTH+1 IF(INPUT(IN).NE.MONTHS(I)) GO TO 3 IF(INPUT(IN+1).NE.MONTHS(I+1)) GO TO 3 IF(INPUT(IN+2).NE.MONTHS(I+2)) GO TO 3 C.. C.. FOUND, GET YEAR C.. GO TO 4 3 CONTINUE GO TO 99 C.. C.. GET YEAR C.. 4 DECODE(2,2,INPUT(IN+4),ERR=99)NUMYR C.. C.. FIGURE NUMBER OF DAYS C.. NDAYS=NUMDAY DO 5 I=1,IMONTH NDAYS=NDAYS+LMONTH(I) 5 CONTINUE C.. C.. FIGURE YEARS C.. NDAYS=NDAYS+NUMYR*365 C.. C.. FIGURE LEAP YEARS C.. LEAP=NUMYR/4+1 NDAYS=NDAYS+LEAP C.. C.. SEE IF CURRENT YEAR LEAP BUT NOT YET MARCH C.. LEAP=(LEAP-1)*4 IF(LEAP.EQ.NUMYR.AND.IMONTH.LT.3)NDAY=NDAY-1 RETURN END