SUBROUTINE QIOERROR(UNIT, CODE) C C THIS ROUTINE PROCESSES CERTAIN QIO ERROR MESSAGES. ONES THAT IT C CAN'T INTERPRET, IT DUMPS THE DECIMAL AND OCTAL. C INTEGER * ERRCODES(15), !RECOGNIZED ERRORS * UNIT, !OUTPUT UNIT * CODE, !INCOMING ERROR CODE * NERRS !NUMBER OF SUPPORTED ERROR CODES C BYTE TAPEERROR(12) DATA NERRS,ERRCODES/11, * -7, !DEVICE NOT ATTACHED * -3, !DEVICE NOT READY * -10, !EOF * -62, !END OF TAPE * -11, !END OF VOLUME * -59, !HARDWARE WARE * -37, !FILE NOT OPEN * -65, !DEVICE OFF LINE * -74, !TIME OUT ERROR * -04, !UNRECOVERABLE ERROR * -12, !DEVICE WRITE LOCKED * 4*0/ !UNDEFINED CALL SCOPY(TAPEERROR,'TAPE ERROR:',JERR) TAPEERROR(12)=' ' C FIND THE ERROR CODE DO 100 I=1,NERRS IF(CODE .EQ. ERRCODE(I))GOTO 120 100 CONTINUE I=0 C C AGAIN, THERE ARE SO MANY, PROCESS IN GROUPS OF 10 C 120 CONTINUE IF(I .GE. 10)GOTO 125 GOTO(210,220,230,240,250,260,270,280,290,300),I+1 C 125 CONTINUE GOTO(310,320),I-9 C 210 WRITE(UNIT,211)TAPEERROR,CODE,CODE 211 FORMAT(1X,12A1,'Undefined. Code is (',I5,')',2X,O7,'(8)') RETURN C 220 WRITE(UNIT,221)TAPEERROR 221 FORMAT(1X,12A1,'Device not attached') RETURN C 230 WRITE(UNIT,231)TAPEERROR 231 FORMAT(1X,12A1,'Device not ready.') RETURN C 240 WRITE(UNIT,241)TAPEERROR 241 FORMAT(1X,12A1,'End-of-file encountered') RETURN C 250 WRITE(UNIT,251)TAPEERROR 251 FORMAT(1X,12A1,'End-of-tape encountered') RETURN C 260 WRITE(UNIT,261)TAPEERROR 261 FORMAT(1X,12A1,'End-of-volume encountered') RETURN C 270 WRITE(UNIT,271)TAPEERROR 271 FORMAT(1X,12A1,'Fatal hardware error') RETURN C 280 WRITE(UNIT,281)TAPEERROR 281 FORMAT(1X,12A1,'File not open') RETURN C 290 WRITE(UNIT,291)TAPEERROR 291 FORMAT(1X,12A1,'Device off-line') RETURN C 300 WRITE(UNIT,301)TAPEERROR 301 FORMAT(1X,12A1,'Time out error') RETURN C 310 WRITE(UNIT,311)TAPEERROR 311 FORMAT(1X,12A1,'Unrecoverable error') RETURN C 320 WRITE(UNIT,321)TAPEERROR 321 FORMAT(1X,12A1,'Device write-locked') RETURN C END