SUBROUTINE MAIN INTEGER GETARG, CREATE, OPEN, CTOI, NLCOPY LOGICAL*1 BUF(402), OUTF(36) INTEGER NL, I, J, IN, USEIN, OUT LOGICAL*1 ST001Z(33) DATA OUTF(1), OUTF(2) / 120, 0/ DATA ST001Z(1)/117/,ST001Z(2)/115/,ST001Z(3)/97/,ST001Z(4)/103/,ST *001Z(5)/101/,ST001Z(6)/58/,ST001Z(7)/32/,ST001Z(8)/32/,ST001Z(9)/1 *15/,ST001Z(10)/112/,ST001Z(11)/108/,ST001Z(12)/105/,ST001Z(13)/116 */,ST001Z(14)/32/,ST001Z(15)/91/,ST001Z(16)/45/,ST001Z(17)/110/,ST0 *01Z(18)/93/,ST001Z(19)/32/,ST001Z(20)/91/,ST001Z(21)/102/,ST001Z(2 *2)/105/,ST001Z(23)/108/,ST001Z(24)/101/,ST001Z(25)/32/,ST001Z(26)/ *91/,ST001Z(27)/110/,ST001Z(28)/97/,ST001Z(29)/109/,ST001Z(30)/101/ *,ST001Z(31)/93/,ST001Z(32)/93/,ST001Z(33)/0/ CALL QUERY(ST001Z) NL = 1000 USEIN = 0 IN = 1 I=1 23000 IF (.NOT.(GETARG(I,BUF,402).NE.-1))GOTO 23002 IF (.NOT.(BUF(1) .EQ. 45))GOTO 23003 IF (.NOT.(BUF(2) .EQ. 0))GOTO 23005 USEIN = 1 GOTO 23006 23005 CONTINUE J = 2 NL = MAX0(CTOI(BUF,J), 1) 23006 CONTINUE GOTO 23004 23003 CONTINUE IF (.NOT.(USEIN .EQ. 0))GOTO 23007 IN = OPEN(BUF,1) IF (.NOT.(IN .EQ. -3))GOTO 23009 CALL CANT(BUF) 23009 CONTINUE USEIN = 1 GOTO 23008 23007 CONTINUE CALL SCOPY(BUF, 1, OUTF, 1) 23008 CONTINUE 23004 CONTINUE 23001 I=I+1 GOTO 23000 23002 CONTINUE 23011 CONTINUE CALL EXTNAM(OUTF, BUF) OUT = CREATE(BUF, 2) IF (.NOT.(OUT .EQ. -3))GOTO 23014 CALL CANT(BUF) 23014 CONTINUE IF (.NOT.(NLCOPY(IN, OUT, NL) .EQ. -1))GOTO 23016 GOTO 23013 23016 CONTINUE CALL CLOSE(OUT) 23012 GOTO 23011 23013 CONTINUE RETURN END SUBROUTINE EXTNAM (FILE, NAME) LOGICAL*1 FILE(100), NAME(100), APPEND(3) INTEGER LENGTH LOGICAL*1 ST002Z(18) DATA APPEND(1), APPEND(2), APPEND(3) /97, 97, 0/ DATA ST002Z(1)/111/,ST002Z(2)/117/,ST002Z(3)/116/,ST002Z(4)/32/,ST *002Z(5)/111/,ST002Z(6)/102/,ST002Z(7)/32/,ST002Z(8)/102/,ST002Z(9) */105/,ST002Z(10)/108/,ST002Z(11)/101/,ST002Z(12)/32/,ST002Z(13)/11 *0/,ST002Z(14)/97/,ST002Z(15)/109/,ST002Z(16)/101/,ST002Z(17)/115/, *ST002Z(18)/0/ CALL SCOPY(FILE, 1, NAME, 1) IF (.NOT.(APPEND(2) .GT. 122))GOTO 23018 APPEND(2) = 97 APPEND(1) = APPEND(1) + 1 IF (.NOT.(APPEND(1) .GT. 122))GOTO 23020 CALL ERROR (ST002Z) 23020 CONTINUE 23018 CONTINUE CALL SCOPY(APPEND, 1, NAME, LENGTH(NAME)+1) APPEND(2) = APPEND(2) + 1 RETURN END INTEGER FUNCTION NLCOPY (IN, OUT, N) LOGICAL*1 BUF(402) INTEGER GETLIN INTEGER IN, OUT, N, I I=1 23022 IF (.NOT.(I.LE.N))GOTO 23024 IF (.NOT.(GETLIN(BUF,IN) .EQ. -1))GOTO 23025 NLCOPY = -1 RETURN 23025 CONTINUE CALL PUTLIN(BUF, OUT) 23023 I=I+1 GOTO 23022 23024 CONTINUE NLCOPY = 0 RETURN END