LOGICAL*1 DAY,MON,YEAR,ZDATE(9) INTEGER*2 IERR,IENDAT,IINTYP,IOUTYP,IWKDAY INTEGER*4 IDAYS 10 TYPE 100 100 FORMAT ('$Input Type (1=I,2=A,3=D,4=E,5=T) > ') ACCEPT 200,IINTYP 200 FORMAT (I6) IF (IINTYP.EQ.0) CALL EXIT IF ((IINTYP.LT.0).OR.(IINTYP.GT.5)) GOTO 10 20 TYPE 300 300 FORMAT ('$Output Type (1=I,2=A,3=D,4=E,5=W) > ') ACCEPT 200,IOUTYP IF ((IOUTYP.LE.0).OR.(IOUTYP.GT.5)) GOTO 20 IF ((IOUTYP.NE.5).AND.(IINTYP.EQ.IOUTYP)) GOTO 10 GOTO (2000,4000,6000,8000,10000) IINTYP 30 IF (IERR.NE.0) TYPE 350,IERR 350 FORMAT (' Error return = ',I6) IF (IERR.NE.0) GOTO 10 GOTO (40,50,60,70,80) IOUTYP 40 TYPE 400,DAY,MON,YEAR 400 FORMAT (' Day = ',I3,' Month = ',I3,' Year = ',I3) GOTO 10 50 TYPE 500,ZDATE 500 FORMAT (' The Date is - ',9A1) GOTO 10 60 TYPE 600,IDAYS 600 FORMAT (' Days = ',I7) GOTO 10 70 TYPE 700,IENDAT 700 FORMAT (' Encoded Date = ',O6) GOTO 10 80 GOTO (81,82,83,84,85,86,87) IWKDAY+1 81 TYPE 810 810 FORMAT (' The weekday is Sunday') GOTO 10 82 TYPE 820 820 FORMAT (' The weekday is Monday') GOTO 10 83 TYPE 830 830 FORMAT (' The weekday is Tuesday') GOTO 10 84 TYPE 840 840 FORMAT (' The weekday is Wednesday') GOTO 10 85 TYPE 850 850 FORMAT (' The weekday is Thursday') GOTO 10 86 TYPE 860 860 FORMAT (' The weekday is Friday') GOTO 10 87 TYPE 870 870 FORMAT (' The weekday is Saturday') GOTO 10 C 2000 TYPE 2010 2010 FORMAT ('$Enter Day,Month,Year > ') ACCEPT 2020,DAY,MON,YEAR 2020 FORMAT (3I3) GOTO (2100,2200,2300,2400,2500) IOUTYP 2100 CONTINUE GOTO 30 2200 CALL CDATIA(DAY,MON,YEAR,ZDATE,IERR) GOTO 30 2300 CALL CDATID(DAY,MON,YEAR,IDAYS,IERR) GOTO 30 2400 CALL CDATIE(DAY,MON,YEAR,IENDAT,IERR) GOTO 30 2500 CALL CDATIW(DAY,MON,YEAR,IWKDAY,IERR) GOTO 30 C 4000 TYPE 4010 4010 FORMAT ('$Enter ASCII Date > ') ACCEPT 4020,ZDATE 4020 FORMAT (9A1) GOTO (4100,4200,4300,4400,4500) IOUTYP 4100 CALL CDATAI(ZDATE,DAY,MON,YEAR,IERR) GOTO 30 4200 CONTINUE GOTO 30 4300 CALL CDATAD(ZDATE,IDAYS,IERR) GOTO 30 4400 CALL CDATAE(ZDATE,IENDAT,IERR) GOTO 30 4500 CALL CDATAW(ZDATE,IWKDAY,IERR) GOTO 30 C 6000 TYPE 6010 6010 FORMAT ('$Enter Number of Days > ') ACCEPT 6020,IDAYS 6020 FORMAT (I8) GOTO (6100,6200,6300,6400,6500) IOUTYP 6100 CALL CDATDI(IDAYS,DAY,MON,YEAR,IERR) GOTO 30 6200 CALL CDATDA(IDAYS,ZDATE,IERR) GOTO 30 6300 CONTINUE GOTO 30 6400 CALL CDATDE(IDAYS,IENDAT,IERR) GOTO 30 6500 CALL CDATDW(IDAYS,IWKDAY,IERR) GOTO 30 C 8000 TYPE 8010 8010 FORMAT ('$Enter Encoded Date > ') ACCEPT 8020,IENDAT 8020 FORMAT (O6) GOTO (8100,8200,8300,8400,8500) IOUTYP 8100 CALL CDATEI(IENDAT,DAY,MON,YEAR,IERR) GOTO 30 8200 CALL CDATEA(IENDAT,ZDATE,IERR) GOTO 30 8300 CALL CDATED(IENDAT,IDAYS,IERR) GOTO 30 8400 CONTINUE GOTO 30 8500 CALL CDATEW(IENDAT,IWKDAY,IERR) GOTO 30 C 10000 CONTINUE GOTO (10100,10200,10300,10400,10500) IOUTYP 10100 CALL GTDATI(DAY,MON,YEAR) GOTO 30 10200 CALL GTDATA(ZDATE) GOTO 30 10300 CALL GTDATD(IDAYS) GOTO 30 10400 CALL GTDATE(IENDAT) GOTO 30 10500 CALL GTDATW(IWKDAY) GOTO 30 END