INTEGER FUNCTION AOPEN (NAME, MODE) INTEGER NAME(10000) INTEGER MODE COMMON /CHANNEL/ CHANNEL(0:15), APOS, VPOS, LINEBUF(68,0:15), NC(0 *:15), IC(0:15), MD(0:15) INTEGER CHANNEL INTEGER APOS INTEGER VPOS INTEGER LINEBUF INTEGER NC INTEGER IC INTEGER MD INTEGER TEMP INTEGER STRING(40), CH TEMP=MODE I = 1 23000 IF(.NOT.(NAME(I) .EQ. 32))GOTO 23002 23001 I = I+1 GOTO 23000 23002 CONTINUE J = 1 23003 IF(.NOT.(NAME(I) .NE. 10002))GOTO 23005 BYTE(STRING,J) = NAME(I) J = J+1 23004 I = I+1 GOTO 23003 23005 CONTINUE BYTE(STRING,J) = 0 CH = 0 23006 IF(.NOT.(CH .LE. 15))GOTO 23008 IF(.NOT.(CHANNEL(CH) .EQ. 10001))GOTO 23009 GOTO 23008 23009 CONTINUE 23007 CH = CH+1 GOTO 23006 23008 CONTINUE IF(.NOT.(CH .GT. 15))GOTO 23011 IER = 10001 GOTO 23012 23011 CONTINUE IF(.NOT.(MODE .EQ. 3))GOTO 23013 CALL CFILW(STRING,2,IER) CALL OPEN(CH,STRING,0,IER) GOTO 23014 23013 CONTINUE IF(.NOT.(MODE .EQ. 0))GOTO 23015 CALL OPEN (CH, STRING, 1, IER) GOTO 23016 23015 CONTINUE IF(.NOT.(MODE .EQ. 1 .OR. MODE .EQ. 2))GOTO 23017 CALL CFILW (STRING, 2, IER) CALL OPEN (CH, STRING, 3, IER) 23017 CONTINUE 23016 CONTINUE 23014 CONTINUE 23012 CONTINUE IF(.NOT.(TEMP.EQ.3))GOTO 23019 TEMP=1 23019 CONTINUE IF(.NOT.(IER .NE. 1))GOTO 23021 CH = 10001 GOTO 23022 23021 CONTINUE CHANNEL(CH) = TEMP 23022 CONTINUE AOPEN=(CH) RETURN END