File: ASK.FT of Tape: Various/ETH/f2
(Source file text)
SUBROUTINE ASK(N,IRES,FRES,STRRES,NCHAR,PROMPT) LOGICAL LOGIC REAL PROMPT(1),STRRES(1),TEMSTR(10) INTEGER INFLAL(4),STRAR,STRA6,CHAR,FILL COMMON //IFIL DATA INFLAL/'IN','FL','AL','LO'/ GOTO 60 50 REWIND IFIL IFIL=4 60 IF(IFIL.NE.4) GOTO 100 WRITE(4,100) 100 FORMAT(1H ) STRAR=1 3 STRA6=1 1 CALL CGET(PROMPT(STRAR),STRA6,CHAR) CALL CPUT(TEMCH,1,CHAR) IF(CHAR.EQ.38) GO TO 2 IF(IFIL.NE.4) GOTO 101 WRITE(4,101) TEMCH 101 FORMAT(1H+,1A1,$) STRA6=STRA6+1 IF(STRA6.LE.6) GO TO 1 STRAR=STRAR+1 GO TO 3 2 IF(IFIL.NE.4) GOTO 102 WRITE(4,102) INFLAL(N) 102 FORMAT('+?(',A2,'): ',$) GOTO (10,20,30,40),N 10 CALL CHKEOF(EOF) READ(IFIL,103) IRES IF(EOF.NE.0) GOTO 50 103 FORMAT(1I4) RETURN 20 CALL CHKEOF(EOF) READ(IFIL,104) FRES IF(EOF.NE.0) GOTO 50 104 FORMAT(1G14.6) RETURN 30 STRAR=1 STRA6=1 FILL=1 CALL CHKEOF(EOF) READ(IFIL,105) TEMSTR IF(EOF.NE.0) GOTO 50 105 FORMAT(10A6) 7 CALL CGET(TEMSTR(STRAR),STRA6,CHAR) IF(CHAR.EQ.38) GOTO 11 9 IF(FILL.EQ.2) CALL CPUT(STRRES(STRAR),STRA6,32) IF(FILL.EQ.2) GO TO 8 CALL CPUT(STRRES(STRAR),STRA6,CHAR) 8 STRA6=STRA6+1 IF(STRA6.LE.6) GO TO (7,9),FILL STRAR=STRAR+1 IF(STRAR.EQ.11) RETURN STRA6=1 GO TO (7,9),FILL 11 NCHAR=(STRAR-1)*6+STRA6-1 FILL=2 GO TO 9 40 CALL CHKEOF(EOF) READ(IFIL,106) LOGIC IF(EOF.NE.0) GOTO 50 106 FORMAT(L1) IRES=IFIX(LOGIC) RETURN END