|
|
1.1 root 1: SUBROUTINE HELPER(H)
2: INTEGER H(4)
3: C
4: C HANDLE HELP FILE
5: C H = KEY WORD, FORMAT 4A1
6: C
7: C FORTRAN 66 VERSION USING SEQUENTIAL ACCESS
8: C ASSUMES THE HELP TEXT FILE IS ATTACHED TO THE UNIT HIO
9: C WHICH IS SET IN SUBROUTINE MATLAB AND STORED IN COMMON
10: C SEE THE COMMENTED OPEN STATEMENT BELOW
11: C
12: INTEGER ALFA(52),ALFB(52),ALFL,CASE
13: INTEGER DDT,ERR,FMT,LCT(4),LIN(1024),LPT(6),RIO,WIO,RTE,WTE,HIO
14: INTEGER SYM,SYN(4),BUF(256),CHAR,FLP(2),FIN,FUN,LHS,RHS,RAN(2)
15: COMMON /ALFS/ ALFA,ALFB,ALFL,CASE
16: COMMON /IOP/ DDT,ERR,FMT,LCT,LIN,LPT,RIO,WIO,RTE,WTE,HIO
17: COMMON /COM/ SYM,SYN,BUF,CHAR,FLP,FIN,FUN,LHS,RHS,RAN
18: INTEGER HIO,LRECL,BLANK,CMD(4,17),CMDL
19: DATA LRECL/80/,BLANK/1H /,CMDL/17/
20: DATA CMD/
21: $ 12,21,14,10, 14,21,28,14, 14,23,13,36, 14,33,18,29,
22: $ 15,24,27,36, 17,14,21,25, 18,15,36,36, 21,24,23,16,
23: $ 27,14,29,30, 28,14,22,18,
24: $ 28,17,24,27, 32,17,10,29, 32,17,18,21,
25: $ 32,17,24,36, 32,17,34,36, 21,10,21,10, 15,30,12,20/
26: 101 FORMAT(80A1)
27: 102 FORMAT(1X,80A1)
28: C
29: C INITIALIZATION INDICATED BY H(1) = 0
30: C READ AND ECHO THE FIRST LINE
31: C
32: IF (H(1) .NE. 0) GO TO 80
33: C OPEN(UNIT=HIO,FILE='HELP',ACCESS='SEQUENTIAL',STATUS='OLD')
34: REWIND HIO
35: READ(HIO,101,END=89) (BUF(I),I=1,LRECL)
36: GO TO 86
37: C
38: C SPECIAL CASE, HELP FOLLOWED BY BLANK. GIVE GENERAL HELP.
39: C
40: 80 IF (H(1) .NE. BLANK) GO TO 83
41: WRITE(WTE,180)
42: IF (WIO .NE. 0) WRITE(WIO,180)
43: 180 FORMAT(1X,'Type HELP followed by ...'
44: $ /1X,'INTRO (To get started)'
45: $ /1X,'NEWS (recent revisions)')
46: H(1) = 0
47: CALL FUNS(H)
48: CALL PRNTID(CMD,CMDL-2)
49: WRITE(WTE,181)
50: IF (WIO .NE. 0) WRITE(WIO,181)
51: 181 FORMAT(1X,'ANS EDIT FILE FUN MACRO')
52: WRITE(WTE,182) (ALFA(I),I=38,ALFL)
53: IF (WIO .NE. 0) WRITE(WIO,182) (ALFA(I),I=38,ALFL)
54: 182 FORMAT(1X,17(A1,1X)/)
55: GO TO 98
56: C
57: 83 REWIND HIO
58: 84 READ(HIO,101,END=89) (BUF(I),I=1,LRECL)
59: DO 85 I = 1, 4
60: IF (H(I) .NE. BUF(I)) GO TO 84
61: 85 CONTINUE
62: 86 WRITE(WTE,102)
63: IF (WIO .NE. 0) WRITE(WIO,102)
64: 87 K = LRECL + 1
65: 88 K = K - 1
66: IF (BUF(K) .EQ. BLANK) GO TO 88
67: WRITE(WTE,102) (BUF(I),I=1,K)
68: IF (WIO .NE. 0) WRITE(WIO,102) (BUF(I),I=1,K)
69: READ(HIO,101) (BUF(I),I=1,LRECL)
70: IF (BUF(1) .EQ. BLANK) GO TO 87
71: GO TO 98
72: C
73: 89 WRITE(WTE,189) (H(I),I=1,4)
74: 189 FORMAT(1X,'SORRY, NO HELP ON ',4A1)
75: C
76: 98 RETURN
77: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.