C ******************************************************* C * * C * THIS SOFTWARE WAS DEVELOPED WITH SUPPORT * C * FROM THE NATIONAL INSTITUTES OF HEALTH: * C * NIH CA06927 * C * NIH CA22780 * C * * C * DIRECT INQUIRIES TO: * C * COMPUTER CENTER * C * THE INSTITUTE FOR CANCER RESEARCH * C * 7701 BURHOLME AVENUE * C * PHILADELPHIA, PENNSYLVANIA 19111 * C * * C * NO WARRANTY OR REPRESENTATION, EXPRESS OR * C * IMPLIED, IS MADE WITH RESPECT TO THE * C * CORRECTNESS, COMPLETENESS, OR USEFULNESS * C * OF THIS SOFTWARE, NOR THAT USE OF THIS * C * SOFTWARE MIGHT NOT INFRINGE PRIVATELY * C * OWNED RIGHTS. * C * * C * NO LIABILITY IS ASSUMED WITH RESPECT TO * C * THE USE OF, OR FOR DAMAGES RESULTING FROM * C * THE USE OF THIS SOFTWARE * C * * C ******************************************************* C * * C * THIS SOFTWARE WAS DESIGNED FOR USE ON A * C * PDP-11/70 OPERATING UNDER IAS V3.0 USING * C * THE FORTRAN-IV PLUS COMPILER. * C * * C ******************************************************* SUBROUTINE OPN(UNIT,FILE,ACTION,ERR) INTEGER UNIT,ERR,PUICSZ BYTE FILE(1),ACTION,PFIL(40) DATA PFIL/'S','P','0',':','[','1',',','4',']',31*0/ DATA PUICSZ /9/ C C OPN - DO OPEN PROCESSING C IF ACTION = R THEN OPEN FOR READING C IF ACTION = W THEN OPEN FOR WRITING C IF ACTION = F THEN OPEN FOR WRITING WITH CARRIAGECONTROL=FORTRAN C IF ACTION = A THEN OPEN FOR APPENDING C IF ACTION = X THEN OPEN FOR READING WITH DELETE CAPABILITY C IF ACTION = P THEN OPEN FOR PRINTING C ERR = 1 IF (ACTION .NE. 1HR) GOTO 10 OPEN(UNIT=UNIT,NAME=FILE,TYPE='OLD',READONLY,SHARED,ERR=99) GOTO 1000 10 CONTINUE IF (ACTION .NE. 1HW) GOTO 20 OPEN(UNIT=UNIT,NAME=FILE,TYPE='NEW',CARRIAGECONTROL='LIST', * DISPOSE='DELETE',ERR=99) GOTO 1000 20 CONTINUE IF (ACTION .NE. 1HA) GOTO 30 OPEN(UNIT=UNIT,NAME=FILE,TYPE='UNKNOWN',CARRIAGECONTROL='LIST', * ACCESS='APPEND',ERR=99) GOTO 1000 30 CONTINUE IF (ACTION .NE. 1HX) GOTO 40 OPEN(UNIT=UNIT,NAME=FILE,TYPE='OLD',ERR=99) GOTO 1000 40 CONTINUE IF (ACTION .NE. 1HP) GOTO 50 I = 0 45 CONTINUE I = I+1 PFIL(I+PUICSZ) = FILE(I) IF (FILE(I) .NE. 0) GOTO 45 OPEN(UNIT=UNIT,NAME=PFIL,TYPE='NEW',CARRIAGECONTROL='LIST', * DISPOSE='PRINT',ERR=99) GOTO 1000 50 CONTINUE IF (ACTION .NE. 1HF) GOTO 99 OPEN(UNIT=UNIT,NAME=FILE,TYPE='NEW',CARRIAGECONTROL='FORTRAN', * DISPOSE='DELETE',ERR=99) GOTO 1000 1000 CONTINUE ERR = 0 99 CONTINUE RETURN END