Google
 

Trailing-Edge - PDP-10 Archives - AP-D480B-SB_1978 - ftn5a.rnd
There are no other files named ftn5a.rnd in the archive.
.LC
.COMMENT VARIABLE FTEN   GENERATES -10 LINES (DEFAULT)
.COMMENT VARIABLE FTTENX GENERATES -20 LINES
.VR FTEN 1 2
.VR FTTENX 2 1
.LM0;.RM70;.F;.J;.FLAG CAP;.SP1
.IF FTTENX
<FORTRAN-20 -- ^CHANGES FROM ^V5(515) TO ^V5^A(621)
.ELSE FTTENX
<FORTRAN-10 -- ^CHANGES FROM ^V5(515) TO ^V5^A(621)
.ENDIF FTTENX
.BR
^OCTOBER 1977
.FG30
^^COPYRIGHT (C) 1975,1977 BY
.BR
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
.B 2
THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES
THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER
PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
.B 1
THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
EQUIPMENT CORPORATION.
.B 1
DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL\\.
.IF FTTENX
.TI <FTN5A.DOC#-#<FORTRAN-20
.ELSE FTTENX
.TI <FTN5A.DOC#-#<FORTRAN-10
.ENDIF FTTENX
.PG
.IF FTTENX
<FORTRAN-20 -- ^CHANGES FROM ^V5(515) TO ^V5^A(621)
.ELSE FTTENX
<FORTRAN-10 -- ^CHANGES FROM ^V5(515) TO ^V5^A(621)
.ENDIF FTTENX
.BR
^OCTOBER 1977
.B 3
1.0##<SUMMARY
.B 1
^VERSION 5^A OF THE <FORTRAN COMPILER IS A MAINTENANCE RELEASE
TO FIX KNOWN BUGS THAT HAVE BEEN REPORTED IN VERSION 5.
^ALSO
INCLUDED ARE THE LATEST VERSIONS OF <FOROTS, <FORLIB AND
<FORDDT.
^THE PURPOSE OF THE RELEASE IS TO PROVIDE A TESTED VERSION WITH ALL
OF THE PATCHES TO DATE INCORPORATED.
.B 1
^FORTRAN VERSION 5^A IS ^FORTRAN VERSION 5 WITH EDITS _#516 THROUGH
_#621 INCLUSIVE.
.B 1
1.1	^BIBLIOGRAPHY
.B 1
^THE <FORTRAN LANGUAGE AND THIS IMPLEMENTATION ARE DESCRIBED IN
.IF FTTENX
THE <FORTRAN-20 ^PROGRAMMER'S ^REFERENCE ^MANUAL - <AA-4158B-TM.
.ELSE FTTENX
THE ^SOFTWARE ^NOTEBOOKS AND IN THE <FORTRAN-10 ^PROGRAMMER'S ^REFERENCE
^MANUAL - <AA-0944E-TB.
.ENDIF FTTENX
.B 1
1.2	^MONITORS
.B 1
^THIS VERSION OF ^FORTRAN WILL RUN UNDER ANY MONITOR SUPPORTED BY <DEC FOR THE
.IF FTTENX
<DEC<SYSTEM-20.
.ELSE FTTENX
<DEC<SYSTEM-10.  ^IT HAS BEEN TESTED UNDER 5.07, 6.01,
6.02 AND 6.03.  ^IT CONFORMS TO <DATE75 STANDARDS.
.ENDIF FTTENX
.B 1
1.3	^RELATED ^SYSTEM ^SOFTWARE
.B 1
^THE FOLLOWING SYSTEM SOFTWARE MUST BE USED WITH THE <FORTRAN COMPILER:
.B 2
.LM 5
.NF
<BLIS10  7^B(222)
<LINK    ANY VERSION
<FOROTS  4^B OR LATER
<FORLIB  4^B OR LATER
<SCAN    7^B
.FILL
.LM 0
.B 3
2.0##<EXTERNAL <CHANGES
.B 1
^THE PROCESSING OF AN INITIAL TAB HAS BEEN FIXED TO CORRESPOND IN
ALL CASES WITH THE DOCUMENTATION.  ^IT WAS INCORRECTLY HANDLED IF IN
COLUMN 6.
.B 1
^A NEW SYNTAX ERROR IS DETECTED:  IF AN IMPLIED <DO LOOP INDEX IS THE
SAME AS A CURRENTLY ACTIVE <DO INDEX (IMPLIED OR OTHERWISE), AN ERROR
IS REPORTED.
.B 1
^ONLY NON-BLANK LINES ARE OUTPUTTED IN THE LINE-NUMBER/OCTAL-LOCTATION
MAP GENERATED UNDER </LNMAP.
.B 1
^IN ADDITION A LARGE NUMBER OF <SPR<S HAVE BEEN ANSWERED SINCE VERSION
5(515).  ^ALL OF THESE EDITS PLUS A NUMBER OF BUG FIXES ARE INCLUDED
IN VERSION 5^A.
.B 3;.LM 0
3.0##<KNOWN <BUGS <AND <DEFICIENCIES
.B 1
^DEEPLY NESTED EXPRESSIONS MIGHT GET "STACK
.IF FTTENX
OVERFLOW".
.ELSE FTTENX
OVERFLOW" IN <FORTB.
.ENDIF FTTENX
.B 3
4.0##<INSTALLATION <INSTRUCTIONS
.B 1
^THERE ARE NO CHANGES IN THE INSTALLATION INSTRUCTIONS.  ^THIS VERSION
OF THE COMPILER REQUIRES VERSION 7^B(222) OF THE <BLISS COMPILER
AND VERSION
52 OF <MACRO.
.B 1
^SEE THE FILE
.IF FTTENX
<FTN5A.FIG
.ELSE FTTENX
<FTN5A.FIG
.ENDIF FTTENX
FOR INFORMATION REGARDING INSTALLATION.
.B 3
5.0##<INTERNAL <CHANGES
.B 1
^THE FOLLOWING IS A LIST OF ALL THE EDITS MADE TO VERSION 5(515)
IN PRODUCING VERSION 5^A.
.B 2
.LM 18
.TS 7,18
.I -18
_#516	<SPR-21215	^FIND FILES WITH BLANK EXTENSIONS IN <SFD<S.
.B 1;.I -18
_#517	<SPR-21238	^MAKE <SFD<S IN COMMAND STRINGS WORK.
.B 1;.I -18
_#520	<SPR-21271	^PROHIBIT NEGATIONS IN RELATIONAL <COMSUB<S.
.B 1;.I -18
_#521	<QAR-900	^FIX PARAMS TO <FATLEX IN <OPENCLOSE.
.B 1;.I -18
_#522	<SPR-20819	^CHECK NEGFLGS FOR ARRAYREFS IN IOLISTS.
.B 1;.I -18
_#523	<QAR-1038	^FIX DEFAULT FLAG SETTINGS FOR <SCAN:
SWITCHES COUNT FROM LEFT NOT RIGHT.
.B 1;.I -18
_#524	<QAR-876	^PUT BACK ARRAY REF IN <STPRECLUDE SO HASH
ENTRY TAKEN OUT OF TREE;
CALL <STPRECLUDE BEFORE <CMNMAK SO CAN
HASH SKEWED TREE WITH NEG FLAGS
UNCHANGED.
.B 1;.I -18
_#525	<QAR-949	^DO CORRECT <TYPECNV IN <DOTOFIX ONLY IF
NECESSARY.
.B 1;.I -18
_#526	<QAR-1035	^IN <CHKDOM IF <FNARY AND NO MATCH ON 
"FUNC(ARRAYREF)", PUT BACK ARRAYREF
SO HASH TBL ENTRY NOT IN TREE.
.B 1;.I -18
_#527	<SPR-20317	^BAD CODE FOR <ASSOCIATE <VARIABLE<S IN <COMMON.
.B 1;.I -18
_#530	<SPR-21606	^BAD CODE FOR <DOUBLE <PRECISION <SPECOP<S 
WHICH GENERATED <FSC INSTRUCTIONS.
.B 1;.I -18
_#531	<SPR-20323	^GIVE WARNING WHEN SUBROUTINE PARAMETER
IS USED AS <ASSOCIATE <VARIABLE.
.B 1;.I -18
_#532	<SPR-20323	^FIX CODE GENERATION FOR AN ARRAY ELEMENT
USED AS AN <ASSOCIATE <VARIABLE.
.B 1;.I -18
_#533	<SPR-21796	<INCLUDE STMNT DESTROYS LOCS 4400-4402.
.B 1;.I -18
_#534	<SPR-21817	^INTERNAL COMPILER ERRORS IN <FORTB CAUSED
BY BADLY STRUCTURED STATEMENT FUNCTIONS.
.B 1;.I -18
_#535	<SPR-21809	^INACCESSIBLE CODE WITH ZERO LINE NUMBER.
.B 1;.I -18
_#536	<SPR-<NONE	^ADD <RCHAR TO ERR NAME PLIT.
.B 1;.I -18
_#537	<SPR-21811	^BAD PRINTING OF ERROR CONTINUATION LINE.
.B 1;.I -18
_#540	<SPR-22191	^BAD <COMMON STMNT GIVES <ICE.
.B 1;.I -18
_#541	<SPR-<NONE	-20 ONLY: CLEAR <LASTCHARACTER IN <READTXT
AFTER _^^Z SEEN SO MORE <TTY: INPUT MAY
BE DONE.
.B 1;.I -18
_#542	<SPR-22147	^MAKE A <NOT IMPLY TYPE <LOGICAL ALWAYS.
.B 1;.I -18
_#543	<SPR-<NONE	^FIX BINARY SEARCH FOR LIBRARY NAME.
.B 1;.I -18
_#544	<SPR-10290	<FIND STMNT NODE TOO SMALL - EXPAND IT.
.B 1;.I -18
_#545	<SPR-22096	^FUNCTION VALUES MUST GO INTO REALLY FREE REGS.
.B 1;.I -18
_#546	<SPR-22030	^FIX PROBLEMS WITH OPERATIONS WHICH CLOBBER
FOLLOWING REGISTER (<IDIV).
.B 1;.I -18
_#547	<SPR-21280	(<QAR-863) ^FIX INITIAL TAB IN COLUMN 6 TO
GO TO COL 7 ON AN INITIAL LINE OR COL
6 IF A CONTINUATION LINE.
.B 1;.I -18
_#550	<SPR-21824	^FIX REG ALLOCATION FOR BIG EXPRESSION.
.B 1;.I -18
_#551	<SPR-21826	^FIX TYPE CONVERSION DURING CODE GENERATION.
.B 1;.I -18
_#552	<SPR-21826	^GENERATE BETTER CODE FOR TYPE CONVERSION
OF ARRAY REFERENCE.
.B 1;.I -18
_#553	<SPR-21826	^TYPE CONVERSION MAY BE NECESSARY IF <LOGICAL
OPERATION ABOVE IT IS LIQUIDATED.
.B 1;.I -18
_#554	<SPR-22324	<AND NODE WITH THE NEGATION OF A FUNCTION
CALL BELOW IT GIVES BAD CODE.
.B 1;.I -18
_#555	<SPR-22281	^FIX LINE NUMBER/OCTAL MAP WITH <ENTRY POINTS.
.B 1;.I -18
_#556	<SPR-<NONE	^PUT /^L IN HEADING OF PAGE IF OCTAL MAP REQUESTED.
.B 1;.I -18
_#557	<SPR-<NONE	^CATCH WILD <PPN OR <SFD AS ERROR.
.B 1;.I -18
_#560	<SPR-<NONE	-20 ONLY: HANDLE <PPN<S IN THE COMMAND LINE CORRECTLY.
.B 1;.I -18
_#561	<SPR-10429	^ALLOW CONTINUATION LINES AFTER PAGE
MARKS AND FORM FEEDS.
.B 1;.I -18
_#562	<SPR-22540	^IOLISTS IN OPTIMIZATIONS MAY KILL REG 0.
.B 1;.I -18
_#563	<SPR-22541	^SPURIOUS ERRORS IF FIRST ARG TO LIB FN
IS OF UNACCEPTABLE TYPE.
.B 1;.I -18
_#564	<SPR-22693	^MAKE <CGREAD == <CGWRIT: GENERATE <FIN CALL
ON UNFORMATTED <WRITE WITH NO IOLIST.
.B 1;.I -18
_#565	<SPR-21810	^EXTENDED RANGE <DO LOOPS GIVES BAD GRAPH.
.B 1;.I -18
_#566	<SPR-22701	^BAD <COMSUB<S WITH MANY <NOT FLAGS
AND SHAPE <SKEW.
.B 1;.I -18
_#567	<SPR-22284	<EXTERNAL STMNT NOT REMEMBERED AT <ENTRY POINTS.
.B 1;.I -18
_#570	<SPR-22703	^BAD STMNT FN GIVES ICE (<FN(2,3)).
.B 1;.I -18
_#571	<SPR-22378	^ADD <IDUSECNT DEFINITION;
ADD <ARALINK DEFINITION;
FIX ^V5 OPT THAT SHARES 2ND OFFSET OF FORMAL
ARRAY IF 1ST DIMS = SO ALL WILL WORK IF
ARRAY SUBSEQUENTLY TYPED DIFFERENT NUMBER OF
WORDS THAN WHEN SHARING 1ST DONE;
DEFINE AND CALL <CLERIDUSECNT AT END OF <MRP1.
.B 1;.I -18
_#572	<SPR-21825	^CHECK IMPLIED <DO INDEX FOR ALREADY ACTIVE
(FROM ENCLOSING IMPLIED OR REAL <DO).
.B 1;.I -18
_#573	<SPR-<NONE	^NEW <REQUIRE FILE TO HOLD <DBUGIT FLAG;
REMOVE "^^BIND DBUGIT=\\" IN <IOFLG;
<REQUIRE <DBUGIT.REQ IN <DRIVER, <INOUT, <LEXICA AND <LEXSUP.
.B 1;.I -18
_#574	<SPR-<NONE	^REWRITE BINARY SEARCH IN <SRCHLIB TO WORK
AFTER EDIT 543.
.B 1;.I -18
_#575	<SPR-22820	^REWRITE <ZAPLEVEL TO PREVENT STACK OVERFLOW
FOR VERY LARGE BRANCHING PROGRAM.
.B 1;.I -18
_#576	<SPR-22796	^FIX LINE NUMBER GIVEN FOR INFINITE LOOP
.B 1;.I -18
_#577	<SPR-22352	<DO LOOP WITH A <CALL STATEMENT INSIDE MUST MATERIALIZE LOOP VARIABLE IF IT IS IN <COMMON.
.B 1;.I -18
_#600	<SPR-22990	^MORE EFFICIENT STACK USAGE IN <FORTE.
.B 1;.I -18
_#601	<QAR-20-26	^FIX EDIT 572 TO CHECK IMPLIED <DO INDEX IN <DATA STATEMENTS FOR "^^ALREADY ACTIVE\\" FROM ENCLOSING IMPLIED <DO.
.B 1;.I -18
_#602	<SPR-22700	^OPTIMIZED IOLISTS WITH SKEWED EXPRESSIONS MAY GENERATE <ELIST<S INCORRECTLY.
.B 1;.I -18
_#603	<SPR-23442	^ADD * AS INITIAL CHAR FOR LABEL CONSTANT.
.B 1;.I -18
_#604	<SPR-23425	^FIX LISTING OF <COMMON BLOCK SO THAT WE DO NOT GET AN EXTRA CARRIAGE RETURN.
.B 1;.I -18
_#605	<SPR-23478	^BAD CODE WITH </OPT FOR ASGMNT STMNT WITH LHS LIKE <A(I/2) OR <A(I**5).
.B 1;.I -18
_#606	<SPR-22795	^SOME OVERFLOWS DURING CONSTANT FOLDING NOT DETECTED AND POOR CODE GIVEN.
.B 1;.I -18
_#607	<SPR-22685	^GENERATE ZERO ARGUMENT BLOCK ONLY IF NEEDED.
.B 1;.I -18
_#610	<SPR-23333	^BAD CODE FOR <COMSUB WITH NEG FLAG.  ^REPLACES EDIT 345.
.B 1;.I -18
_#611	<SPR-23662	^IMMEDIATE SIZE COMPLEX CONSTANTS CAUSE TROUBLE FOR CODE GENERATION.
.B 1;.I -18
_#612	<SPR-23263	^INITIALIZE <ARRCOUNT IN <IOCLEAR (THIS COMPLETES EDIT 406).
.B 1;.I -18
_#613	<QAR-2114	^IGNORE INDIRECT BIT IN FORMAL FUNCTION TARGET IN ENTRY PROLOGUE.
.B 1;.I -18
_#614	<SPR-23760	^OUTPUT ONLY NON-BLANK LINES ON </LNMAP.
.B 1;.I -18
_#615	<SPR-23116	^BE CAREFUL WITH LABELS WHEN PRELOADING.
.B 1;.I -18
_#616	<SPR-22345	</O LIST UNDER REGISTER SCARCITY GIVES <ICE.
.B 1;.I -18
_#617	<QAR-2121	^ONLY TRY TO SUBSTITUTE THE SUBSCRIPT OF AN ARRAYREF IF IT ISN'T A CONSTANT.
.B 1;.I -18
_#620	<SPR-23720	<D.P. ARRAY REF IN IO LIST CAUSES PROBLEMS DURING OPTIMIZATION (<IOLSCLS NODE PTRS).
.B 1;.I -18
_#621	<QAR-2120	^ACCOUNT FOR PAGE MARKS AT END OF FILE.
.B 3;.LM 0
6.0##<SUGGESTIONS
.B 1
^NONE.
.B 3
[^END OF <FTN5A.DOC]
.COMMENT PREVIOUS .DOC FILE IS -10 CONVENTION ONLY UNFORTUNATELY
.IFNOT FTTENX
.B1
[<FTN5.DOC IS APPENDED AS AN INTEGRAL PART OF <FTN5A.DOC]
.TI <FTN5.DOC#-#<FORTRAN-10
.PG
<FORTRAN-10 -- ^CHANGES ^FROM ^V4^A(317) TO ^V5(515)
.BR
^NOVEMBER 1976
.B 3
1.0##<SUMMARY
.B 1
^VERSION 5 OF THE <FORTRAN COMPILER IS A DEVELOPMENT RELEASE
INCORPORATING IMPROVED OPTIMIZATIONS THAT WILL INCREASE PROGRAM
EXECUTION SPEED FOR MATRIX MULTIPLICATION PLUS MANY BUG FIXES
AND <SPR<S FIXING KNOWN PROBLEMS.  ^IN ADDITION, AN OPTIONAL
^^LINE NUMBER/OCTAL LOCATION\\
MAP HAS BEEN ADDED TO THE LISTING OUTPUT BY THE COMPILER.
.B 1
^ALSO
INCLUDED ARE THE LATEST VERSIONS OF <FOROTS, <FORLIB AND
<FORDDT.  ^NEW FUNCTIONALITY HAS BEEN ADDED TO <FORTRAN, <FOROTS AND <FORLIB
TO ALLOW USER-HANDLING OF SOFT AND HARD <I/O ERRORS ON
<OPEN, <CLOSE, <READ AND <WRITE USING
<ERR=.  ^THE PURPOSE OF THE RELEASE IS TO PROVIDE A TESTED VERSION WITH ALL
OF THE PATCHES TO DATE INCORPORATED.
.B 1
^THIS VERSION OF ^FORTRAN WILL RUN UNDER ANY MONITOR SUPPORTED BY <DEC FOR THE
<DEC<SYSTEM-10.  ^IT HAS BEEN TESTED UNDER 5.07, 6.01, AND
6.02.  ^IT CONFORMS TO <DATE75 STANDARDS.
.B 1
^THE <FORTRAN LANGUAGE AND THIS IMPLEMENTATION ARE DESCRIBED IN
THE ^SOFTWARE ^NOTEBOOKS AND IN THE <FORTRAN-10 ^PROGRAMMER'S ^REFERENCE
^MANUAL - <AA-0944E-TB.
.B 3
2.0##<EXTERNAL <CHANGES
.B 1
^THE MAJOR IMPROVEMENT IN VERSION 5 IS TO RECOGNIZE CERTAIN NEW EXPRESSIONS
AS CANDIDATES FOR OPTIMIZATION.  ^ONE SPECIFIC CLASS OF PROGRAMS
WHICH WILL BE FAVORABLY AFFECTED IS MATRIX MULTIPLICATION.  ^COMMON
SUB-EXPRESSION ELIMINATION AND MOTION OF CONSTANT EXPRESSIONS ARE
PERFORMED AGAIN AFTER REDUCTION IN STRENGTH AND PROPAGATION OF 
CONSTANTS IN ORDER TO OPTIMIZE EXPRESSIONS OF THE FORM ^^.R + X\\
AS WELL AS EXPRESSIONS CONTAINING PROPAGATED CONSTANTS.  ^ALSO
ARRAY REFERENCES CONTAINING COMMON SUB-EXPRESSIONS ARE OPTIMIZED IN 
CERTAIN CIRCUMSTANCES;  EXTRANEOUS OPTIMIZER VARIABLES ARE NOT ALLOCATED;  
REGISTER ALLOCATION OF COMPUTATIONS TO MEMORY HAS A HIGHER PRIORITY
THAN INDEX USAGE;  
IMPROVED PACKAGING TECHNIQUES ARE INCORPORATED;  
VARIABLE OFFSETS FOR FORMAL ARRAYS ARE SHARED TO ALLOW COMMON SUB-EXPRESSION
OPTIMIZATION.
.B 1
^IN ADDITION A LARGE NUMBER OF <SPR<S HAVE BEEN ANSWERED SINCE VERSION
4^A(317).  ^ALL OF THESE EDITS PLUS A NUMBER OF BUG FIXES ARE INCLUDED
IN VERSION 5.
.PG;.B 1
^A ^^LINE NUMBER/OCTAL LOCATION\\ MAP,
UNDER THE CONTROL OF THE </LNMAP SWITCH, HAS BEEN ADDED TO THE LISTING
GENERATED BY THE <FORTRAN COMPILER IF NO <MACRO LISTING IS REQUESTED.
^THE DEFAULT IS <NO LINE NUMBER MAP.  ^THE </LNMAP SWITCH WITH <NO 
</MACRO SWITCH ENABLES THE LINE NUMBER MAP.  ^IF <BOTH </LNMAP AND
</MACRO ARE SPECIFIED, NO LINE NUMBER MAP WILL BE PRODUCED SINCE ALL
OF THE INFORMATION FROM THE MAP IS ON THE <MACRO LISTING.
^THE MAP APPEARS AS A MATRIX, WITH THE ROWS BEING LINE NUMBERS IN 
INCREMENTS OF 10 AND THE COLUMNS BEING LINE NUMBERS IN INCREMENTS
OF 1.  ^THE VALUES OF THE MATRIX ENTRIES ARE OCTAL LOCATIONS 
WHERE THE LINE NUMBERS (SPECIFIED BY THE ROW AND COLUMN INTERSECTIONS)
START.  ^ON THE <MACRO LISTING, MORE THAN ONE OCTAL LOCATION CAN BE 
ASSOCIATED WITH A LINE NUMBER, EG, A LOGICAL <IF GENERATES CODE
FOR THE ^BOOLEAN EXPRESSION AND THE "<THEN" STATEMENT (ALL
OF WHICH MAY TAKE UP MORE THAN ONE OCTAL LOCATION BUT THE <IF
STATEMENT MAY BE ON ONE LINE AND THEREFORE ONE LINE NUMBER IS
ASSOCIATED WITH MORE THAN ONE OCTAL LOCATION).  ^THE ^^LINE
NUMBER/OCTAL LOCATION\\ MAP CONTAINS ONLY THE FIRST SUCH OCTAL
LOCATION FOR A GIVEN LINE NUMBER.  ^NOTICE THAT THE
MATRIX CAN BE LARGE AND SPARSE FOR LINE-NUMBERED FILES
WITH A LARGE INCREMENT (LIKE THOSE CREATED BY
<SOS).
.B 1
^THE FOLLOWING FUNCTIONALITY HAS BEEN ADDED TO <FOROTS/FORLIB:
.B 1;.LM 9;.I -4
1.##<ERR= HAS BEEN ADDED TO <OPEN AND <CLOSE AS AN ARGUMENT.  ^SEE
6.0 FOR THE ADDITIONAL SYNTAX OF THE <OPEN AND <CLOSE STATEMENTS.
.B 1;.I -4
2.##^THE <ERR= BRANCH WILL BE TAKEN FOR HARD AND SOFT ERRORS ON
<OPEN, <CLOSE, <READ AND <WRITE AND ANY <I/O OPERATION ON WHICH THE
<ERR= OPTION IS PERMITTED.  ^THIS APPLIES TO <ASCII AND <BINARY FILES.
.B 1;.I -4
3.##^A SUBROUTINE HAS BEEN ADDED TO <FORLIB CALLED <ERRSNS.  ^IT
TAKES ONE OR TWO ARGUMENTS, EACH OF WHICH IS AN INTEGER VARIABLE IN WHICH TO
RETURN AN INTEGER VALUE THAT REFLECTS THE STATUS OF THE
LAST <I/O OPERATION DONE BY <FOROTS.  ^THE
VALUE RETURNED IN THE FIRST ARGUMENT IS A  ^FORTRAN-STANDARDIZED INDICATOR
OF WHAT ERROR OCCURRED.  ^THE VALUE RETURNED IN THE SECOND ARGUMENT 
(IF PRESENT) IS A MORE PROCESSOR-DEPENDENT INDICATION OF
THE ERROR.  ^ZERO ALWAYS MEANS SATISFACTORY
COMPLETION.  ^THE OTHER INTEGERS RETURNED ARE UNIQUE WITHIN
THE <FORTRAN SYSTEM AND ARE DOCUMENTED IN THE ^FORTRAN
^PROGRAMMER'S ^REFERENCE ^MANUAL.  ^SEE
7.0 FOR THE LIST OF VALUES RETURNED BY <ERRSNS.
.B 1;.I -4
4.##^THE STATUS OF <FOROTS WILL BE LEFT SO THAT THE OPERATION
WHICH CAUSED THE ERROR MAY BE REPEATED, IF POSSIBLE, EXCEPT FOR
SEQUENTIAL INPUT OPERATIONS
WHERE ONLY THE LAST RECORD MAY BE RE-INPUT.  ^THE VALUES
OF THE DATA ITEMS ON AN INPUT LIST ARE UNDEFINED WHEN THE <ERR=
BRANCH IS TAKEN.  ^SEE
8.0 FOR A DISCUSSION OF THE UNIT'S STATUS AFTER AN <I/O ERROR.
.B 1;.I -4
5.##^THIS EXTENSION IS COMPATIBLE WITH THE PROPOSED <ANSI 76
<FORTRAN STANDARD IN THE USE OF <ERR= IN BOTH <OPEN AND <CLOSE AND ON <I/O STATEMENTS.
.PG;.B 3;.LM 0
3.0##<KNOWN <BUGS <AND <DEFICIENCIES
.B 1
^DEEPLY NESTED EXPRESSIONS MIGHT GET "STACK
OVERFLOW" IN <FORTB.
.B
^A FORMAL PARAMETER TO A SUBROUTINE USED AS AN <ASSOCIATE <VARIABLE
IN AN <OPEN STATEMENT INSIDE THE SUBROUTINE GENERATES INCORRECT CODE.
.B
<ASSOCIATE <VARIABLE<S ARE NOT ALWAYS DETECTABLE BY THE COMPILER
(EG, IF THE <OPEN IS IN ANOTHER SUBROUTINE):  IT MAY
ERRONEOUSLY ASSUME THAT THE <ASSOCIATE <VARIABLE MAY REMAIN IN A REGISTER
AROUND A RANDOM <I/O THAT CHANGES THE VALUE OF THAT <ASSOCIATE <VARIABLE.
.B 3
4.0##<CHANGES <IN <INSTALLATION <INSTRUCTIONS
.B 1
^THERE ARE NO CHANGES IN THE INSTALLATION INSTRUCTIONS.  ^THIS VERSION
OF THE COMPILER REQUIRES VERSION 5^A(206)-1 OF THE <BLISS COMPILER
AND VERSION
50^A OF <MACRO.
^SEE THE FILE
<FTN10.FIG
FOR INFORMATION REGARDING INSTALLATION.
.B 3
5.0##<INTERNAL <CHANGES
.B 1
^THE FOLLOWING IS A LIST OF ALL THE EDITS MADE TO VERSION 4^A(317)
IN PRODUCING VERSION 5.
.B 2;.LM 27;.TS 8,16,27,33;.I -27
	BEGIN ^VERSION 4^B, 26-^AUG-75
.B 1.I -27
_#320	<SPR-16787	CATCH ^^COMMON /X/A(5)B(5)\\ AS ERROR
.B 1.I -27
_#321	<SPR-17005	SCAN FOR INDUCTION VARIABLE IN <OPEN/CLOSE WHEN </OPT
.B 1.I -27
_#322	<SPR-16688	CHECK FOR DISJOINT IOLISTS BEFORE COLLAPSING
.B 1.I -27
_#323	<SPR-16729	CHANGE NAME OF TEMPS USED TO SAVE REGS IN FUNCTION PRO/EPI-LOGUE FROM .XXXNN TO .^A00NN TO AVOID CONFLICT.
.B 1.I -27
_#324	<SPR-16750	CLEAN UP SYMBOL TABLE ENTRIES AFTER BAD STATEMENT FUNCTION.
.B 1.I -27
_#325	<SPR-17044	CHECK FOR OVERFLOW OF STK CAUSED BY LONG ARGUMENT LISTS, AND REMEDY SITUATION.
.B 1.I -27
_#326	<SPR-17086	FIX REGISTER TARGETING FOR ASSIGNMENT STATEMENTS WITH <AND/OR NODES AND FUNCTION CALLS.
.B 1.I -27
_#327	<SPR-16688	PREVENT OPTIMIZER FROM DYING ON PROGRAMS WITH POTENTIALLY INFINITE LOOPS
.B 1.I -27
_#330	<SPR-7150	ENSURE THAT THE OPTIMIZER DOES NOT CONSIDER <ENTRY STATEMENTS TO BE INACCESSIBLE
.B 1.I -27
_#331	<SPR-17091	FIX PROPAGATION OF NEGATION FOR SPECIAL OPERATOR: RAISE TO AN ODD CONSTANT INTEGER POWER CANNOT ABSORB A NEGATE FROM BELOW.
.B 1.I -27
_#332	<SPR-17045	FIX <ASSIGN STATEMENTS WITHIN <DO LOOPS 
.B 1.I -27
_#333	<SPR-17045	FIX UP CODE GENERATED FOR ASSIGNED <GOTO STATEMENTS WITHIN <DO LOOPS.
.B 1.I -27
_#334	<SPR-17420	CORRECT FORMAT OF <DO STATEMENT (ADD <LINEND)
.B 1.I -27
_#335	<SPR-17377	FIX <FATLERR SO THAT IT DOES NOT DESTROY THE CONTENT OF <NAME FOR <LEXICA.
.B 1.I -27
_#336	<SPR-17259	CHECK FOR IOLIST WITH <NAMELIST DIRECTED <I/O
.B 1.I -27
_#337	<SPR-17305	ROUND UP IMMEDIATE REAL CONSTANTS BEFORE LISTING THEM
.B 1.I -27
_#340	<SPR-16989	DO NOT ALLOW CALL TO <MATCHER TO CHANGE VALUE OF <PHI - OPTIMIZER BUG
.B 1.I -27
_#341	<SPR-17770	FIX REGISTER ALLOCATION FOR EXPONENTIATION INSIDE FUNCTION
.B 1.I -27
_#342	<SPR-17876	MAKE LONG UNCLASSIFIABLE STATEMENTS WORK PROPERLY - SEVERAL MINOR PATCHES
.B 1.I -27
_#343	<SPR-17636	FIX END OF STATEMENT PROCESSING SO THAT THE LINE NUMBER IS CORRECT.
.B 1.I -27
_#344	<SPR-17768	FIX PROPAGATION OF <FNCALL FLAG TO A <NEG/NOT NODE.
.B 1.I -27
_#345	<SPR-17554	FIX COMMON SUBS INVOLVING EXPONENTIATION TO EVEN POWERS SOMETHING WITH A <NEG FLAG
.B 1.I -27
_#346	<SPR-17928	PASS OUT <RETURN INFORMATION TO OUTER <DO LOOPS
.B 1.I -27
_#347	<SPR-17545	IN GLOBAL REGISTER ALLOCATION, PREVENT BAD PRELOADS CAUSED BY LOGICAL <IF<S.
.B 1.I -27
_#350	<SPR-17545	COMMON SUBS MUST ALSO CAUSE PRELOADS OF REGISTERS ON OCCASION - FIX THIS.
.B 1.I -27
_#351	<SPR-<NONE	FIX EDIT 342 PROPERLY
.B 1.I -27
_#352	<SPR-18007	FIX EDIT 266 FOR CASE WITH ONE MATERIALIZATION
.B 1.I -27
_#353	<SPR-18004	FIX TWO <CALL<S GENERATING BAD CODE
.B 1.I -27
_#354	<SPR-18015	BAD CODE INVOLVING REDUCTION IN STRENGTH
.B 1.I -27
_#355	<SPR-18132	CORE MANAGEMENT INSUFFICIENT FOR LARGE <DATA STATEMENT
.B 1.I -27
_#356	<SPR-18105	MAKE <MAIN. GLOBAL SYMBOL FOR MAIN PROGS.
.B 1.I -27
_#357	<SPR-18191	FIX <OPEN ERROR REPORTING
.B 1.I -27
_#360	<SPR-18243	FIX <RETURN STMNT AT END OF <DO LOOP 
.B 1.I -27
_#361	<SPR-18451	FIX <GOTO END OF <DO LOOP
.B 1.I -27
_#362	<SPR-18245	FIX UP ARGUMENT BLOCK TYPES FOR LOGICAL AND OCTAL AND DOUBLE OCTAL CONSTANTS
.B 1.I -27
_#363	<SPR-18269	CHECK <A1NOTFLG BEFORE REMEMBERING REG CONTENTS
.B 1.I -27
_#364	<SPR-18251	CORRECT <EQUIVALENCE PROCESSING
.B 1.I -27
_#365	<SPR-18857	TAKE CARE OF FORM FEEDS BETWEEN ROUTINES
.B 1.I -27
_#366	<SPR-18210	<SAVLINE CANNOT CLOBBER NAME: <X=.123EQ.A AND <X=1.1HABC ARE ILLEGAL
.B 1.I -27
_#367	<SPR-18239	<WRITE(<U) GENERATES WRONG CODE
.B 1.I -27
_#370	<SPR-17938	REMOVE [244]:  REAL FIX IS IN <REDUCE (<TSTR); FIX CODE MOTION FOR <.R VARIABLES
.B 1.I -27
_#371	<SPR-18471	FIX <CSE FOR STRAIGHT CASE IN <MATCHER
.B 1.I -27
_#372	<SPR-18314	FIX ASSIGN <GOTO INSIDE LOOPS
.B 1.I -27
_#373	<SPR-18242	CORRECT REGISTER ALLOCATION FOR LARGE ASSIGNMENT STATEMENTS
.B 1.I -27
_#374	<SPR-<NONE	FIX MIS-SPELLED MACRO NAME
.B 1.I -27
_#375	<SPR-18450	USE <.O INSTEAD OF <.R FOR DP TEMPORARY
.B 1.I -27
_#376	<SPR-18398	FIX <WRITE STMNT WITH <DEBUG SET
.B 1.I -27
_#377	<SPR-18476	FIX REG ALLOCATION FOR <COS(X)*A(I)
.B 1.I -27
_#400	<SPR-18704	FIX LOGICAL <IF BEFORE NESTED LOOPS
.B 1.I -27
_#401	<SPR-17813	FIX <A(I)=B(I)+B(I)+1.0
.B 1.I -27
	BEGIN ^VERSION 5, 7-^MAY-76
.B 1.I -27
_#402	<SPR-18917	RESTORE <FLGREG PROPERLY AFTER <INCLUDE
.B 1.I -27
_#403	<SPR-18961	BAD REG ALLOCATION FOR <I=I/J
.B 1.I -27
_#404	<SPR-18869	MAKE ASSOCIATE VARIABLE LIST CORRECT AND DON'T LET THEM LIVE IN REGISTERS
.B 1.I -27
_#405	<SPR-18967	FIX <A(P(I)) IN IOLIST
.B 1.I -27
_#406	<SPR-18978	FIX <CHAR(K(I,J)) IN IOLIST
.B 1.I -27
_#407	VERSION 5	ADD <ERR= ON <OPEN/CLOSE
.B 1.I -27
_#410	<QAR-00568	MAKE <DTABPTR GLOBAL FOR <BLDDIM
.B 1.I -27
_#411	<SPR-19537	DON'T SWAP ARGS FOR <MAX OR <MIN IF FIRST ARG IS NEGATIVE
.B 1.I -27
_#412	VERSION 5	NODE WITH ARG1 = DOUBLE ARRAY REF FOR <KA10 MUST HAVE COMPLEXITY AT LEAST 3; USE SUBSCRIPT REG FOR DOUBLE ARRAY REF VALUE EXCEPT ON <KA10
.B 1.I -27
_#413	<SPR-<NONE	DON'T USE <FADL IN <INTDP IF NOT ON <KA10
.B 1.I -27
_#414	<QAR-00625	FIX <.I OFFSET SHARING SO ONLY SHARES DIM2 <.I IF DIM1 SAME
.B 1.I -27
_#415	<SPR-18964	DON'T DESTROY SYMBOL TABLE ENTRY FOR FORMAL FUNCTION WHEN <ENTRY STATMNT SEEN WITH THE FUNCTION AS A PARAM.
.B 1.I -27
_#416	<QAR-00650	FIX <MOVCNST SO HASH ENTRY IGNORED ON NEXT PASS IF <.R+X CAN'T BE MOVED AS <.O
.B 1.I -27
_#417	<QAR-00637	FIX BAD STATEMENT FUNCTION FROM CLOBBERING THINGS ON CLEANUP IN 324
.B 1.I -27
_#420	<QAR-00637	AFTER BAD ST FN, CLEAN UP THE NAME SO THAT IT DOES NOT CAUSE TROUBLE LATER
.B 1.I -27
_#421	<QAR-00651	DON'T PROPAGATE <.O IF CAME FROM <.R
.B 1.I -27
_#422	<SPR-18493	IMBEDDED NULLS CAUSE LOW LEVEL LOOPING
.B 1.I -27
_#423	<QAR-00709	FIX PATCH 414: <DIMNUM IS 1-RELATIVE
.B 1.I -27
_#424	<QAR-00690	ERROR IF <DIRECTORY= NOT LITERAL OR ARRAY NAME IN <OPENCLOSE
.B 1.I -27
_#425	<QAR-00714	CALL <ZTREE TO CLEAR <DEFPTS IF OPTIMIZATIONS DISCONTINUED IN <OPTERR
.B 1.I -27
_#426	<SPR-18816	SET <FNCALLSFLG FOR IMPLICIT FN CALLS, SO 0,1, AND 16 ARE KNOWN TO BE CLOBBERED
.B 1.I -27
_#427	<SPR-18871	FIX COMSUBS IN IOLISTS
.B 1.I -27
_#430	<SPR-18876	MAKE ARITH IF NODES ABSORB NEGS RIGHT.
.B 1.I -27
_#431	<SPR-19121	MATERIALIZE VARIBLES THAT HAVE BEEN ALLOCATED TO REGISTERS DURING A DOUBLY-NESTED <DO LOOP CORRECTLY.
.B 1.I -27
_#432	<SPR-19037	FIX CONVERSION OF LOGICAL ARRAY REF
.B 1.I -27
_#433	<SPR-19130	MAKE <DO N <I=10,1 EXECUTE ONCE
.B 1.I -27
_#434	<SPR-19211	CHECK FUNCTION CALL CONTAINING <DO INDEX AS A PARAMETER AFTER CONSTANT FOLDING.
.B 1.I -27
_#435	<SPR-18964	FIX IO LISTS WITH VARIABLE INCREMENT
.B 1.I -27
_#436	<SPR-19427	CATCH <EQUIVALENCE VIOLATION WHEN BUILDING EQUIVALENCE CLASSES.
.B 1.I -27
_#437	<QAR-00771	DON'T LET <DOTOHASGN MOVE <.O = EXPR IF <.O CAME FROM <.R; MARK SUBSUMING <.O IF SUBSUMEE <.O CAME FROM <.R IN DOTOFIX
.B 1.I -27
_#440	<QAR-00771	DON'T <NEXTUP <.O IF CAME FROM <.R IN <MOVCNST
.B 1.I -27
_#441	<SPR-19231	FIX REGISTER ALLOCATION FOR A D.P. ARRAYREF AS A FN CALL PARAMTER.
.B 1.I -27
_#442	<SPR-19233	MAKE THE DELETION OF HASH ELEMENT WORK IF ELEMENT IS FIRST IN ITS LIST
.B 1.I -27
_#443	<QAR-00656	WARNING + OPT STOPPED IF DISCOVER ILLEGAL <DO NESTING IN <LNKEXTND; ADD WARNING MESSAGE <E140
.B 1.I -27
_#444	<SPR-19484	FIX TO 246 - DON'T FORCE PRELOAD OF COMPILER VARIABLES IF <GOTO ENCOUNTERED.
.B 1.I -27
_#445	<SPR-19632	USE FEWER LOCALS ON STACK DURING RECURSIVE CALLS TO <P2SKARITH
.B 1.I -27
_#446	<SPR-20652	BAD CODE FOR <I=I*3 AND <I=I**7 (<QAR753)
.B 1.I -27
_#447	<SPR-19547	NEGATIVES PROPAGATED TOO MUCH IN <FORTG
.B 1.I -27
_#450	<QAR-00784	DON'T <NEXTUP ARRAYREF IF INSIDE IOLIST
.B 1.I -27
_#451	<SPR-19610	CORRECT SPELLING IN ERROR MESSAGE
.B 1.I -27
_#452	<SPR-19610	<NUL: CAUSES PROBLEMS AS OUTPUT DEV
.B 1.I -27
_#453	<SPR-19695	DON'T MAKE <DO BE <DEFPT OF ALL VARS MODIFIED INSIDE THE LOOP.
.B 1.I -27
_#454	<SPR-19699	DON'T PLACE PRELOADS 1 STATEMENT TOO LATE WHEN PLACING AFTER A <DO LOOP.
.B 1.I -27
_#455	<QAR-00784	CAN'T MOVE EXPRESSIONS OUT OF IMPLIED <DO IF INSIDE LOGICAL <IF
.B 1.I -27
_#456	<QAR-00784	FIX <FINDTHESPOT SO CALLER TELLS IT WHERE TO STOP; ADD NEW ROUTINE <FINDPA FOR <GLOBMOV AND <DOTOHASGN; CALL <FINDTHESPOT WITH 2ND PARAM IN <GLOBMOV AND <DOTOHASGN; GIVE <GLOBMOV ENTIRE HASH ENTRY IN <CMNMAK FOR <FINDPA; CALL <FINDTHESPOT WITH 2ND PARAM = <TOP IN <HAULASS; CALL <FINDTHESPOT WITH 2ND PARAM = <TOP IN <REDUCE
.B 1.I -27
_#457	<SPR-19805	TRY HARDER NOT TO REQUEST A REG IN <REGAL2 UNLESS WE REALLY NEED IT - MIGHT RUN OUT EARLY.
.B 1.I -27
_#460	<SPR-19477	CHANGE <DIMENSION PROCESSING TO BE MORE THOROUGH AND LESS APT TO EXIT EARLY
.B 1.I -27
_#461	<SPR-19477	DETECT WHEN PROGRAM IS TOO LARGE; ADD <E142
.B 1.I -27
_#462	<SPR-19960	FIX <MRP1 TO LEAVE <SREG_<LEFT> WITH THE SAME VALUE IT FOUND IN IT
.B 1.I -27
_#463	<SPR-19989	FIX IMPLIED <DO<S WHOSE INITIAL VALUE OR STEP SIZE COME FROM AN OUTER <AOBJN <DO.
.B 1.I -27
_#464	<QAR-00754	ADD LINE-NUMBER/OCTAL-LOCATION MAP IF MACRO LISTING NOT REQUESTED; ADD 3 GLOBALS FOR LINE-HANDLING
.B 1.I -27
_#465	<SPR-20657	CLEAR <INDVAR BEFORE CALLING <REDUCE FOR STATEMENTS BEFORE THE <DO LOOP; WE MIGHT FIND SOME REDUCTIONS OTHERWISE.
.B 1.I -27
_#466	VERSION 5	DELETE CODE TO ZERO <DEFPTS BETWEEN <LENTRY AND <TOP (REMOVE 465 AND MORE)
.B 1.I -27
_#467	VERSION 5	TAKE OUT <FORSWI.REQ; REQUIRE <FTTENX.REQ; REQUIRE <FT1SEG.REQ
.B 1.I -27
_#470	<SPR-20744	MAKE SURE THE HIGH SEG STARTS AT LEAST A PAGE ABOVE THE END OF THE LOW SEG.
.B 1.I -27
_#471	<SPR-20309	LHS A LOGICAL EQUIVALENCED VAR MAY GENERATE BAD CODE
.B 1.I -27
_#472	<SPR-20494	INCORRECT <EQUIVALENCE PROCESSING WHEN LAST ELEMENT OF GROUP IN <COMMON
.B 1.I -27
_#473	<SPR-20478	SCALARS AND ARRAYS LISTING TOO WIDE
.B 1.I -27
_#474	<SPR-20479	OUTPUT <CRLF AFTER LAST <COMMON BLOCK NAME
.B 1.I -27
_#475	<SPR-20813	DON'T COLLAPSE <ELIST<S THAT WE SHOULDN'T
.B 1.I -27
_#476	<QAR-00754	MAKE <MAPFLG FROM <STATFLG IN <FLGREG; MAKE </MAP A SWITCH TO <SCAN; MAKE LINE NUMBER/OCTAL LOCATION MAP OPTIONAL UNDER </MAP SWITCH
.B 1.I -27
_#477	<QAR-00831	MAKE MESSAGE <NAMLEX<S MORE READABLE
.B 1.I -27
_#500	<SPR-20818	DON'T SEE IF A NODE IS AN <I/O STATEMENT UNLESS IT'S A STATEMENT.
.B 1.I -27
_#501	<SPR-21113	DON'T REDUCE <.O<S IN OUTER <DO LOOPS.
.B 1.I -27
_#502	<SPR-20463	SORT SAVED VS NON-SAVED REGS CORRECTLY IN <FLIPCODES; FAKE <ITMCT ALSO; REMOVE <XLIST<S FOR <FTTENEX
.B 1.I -27
_#503	<SPR-19976	FOR <A(I) = FUNC. CALL, DON'T LEAVE ^I IN REG 1 WHEN CALCULATING LH FIRST.
.B 1.I -27
_#504	<QAR-00815	FIX EDIT 412 TO NOT ALLOW FETCHES OF COMPLEX NUMBERS INTO AN <AC WHICH IS ALSO THE INDEX REG. ^NEGATED FETCHES USE TWO INSTRUCTIONS (EVEN ON <KI<S), AND <NEGFLG<S CAN SNEAK IN MUCH LATER.
.B 1.I -27
_#505	<QAR-00815	IN <DOTORFIX DON'T MOVE <.R INIT IF IT'S ALREADY IN THE CORRECT PLACE
.B 1.I -27
_#506	<SPR-10056	LINESEQUENCED FILES KILL LOW LEVEL BUFFERING
.B 1.I -27
_#507	<SPR-<NONE	FIX EDIT 440 TO ALLOW <NEXTUP OF <.O WHICH CAME FROM <.R IN <MOVCNST IF MOM IS ARITHMETIC
.B 1.I -27
_#510	<SPR-<NONE	DON'T TEST <ALCRETREGFLG IN <DATAOPR NODES
.B 1.I -27
_#511	<SPR-<NONE	FIX <E37,E79,E100 TO AGREE WITH <ERROVD; FIX AND MOVE <E140 FROM [443]; FIX SPELLING IN <E74; FIX <E140
.B 1.I -27
_#512	<SPR-<NONE	MAKE </MAP FROM [476] CALLED </LNMAP SINCE </MAP/LMAP ARE <LOAD <COMPIL SWITCHES
.B 1.I -27
_#513	<QAR-00771	IN <MOVCNST WHEN <.O IS CREATED, PASS UP <ORFIXFLG FROM ANY <.O BEING SUBSUMED; CHANGE [507] TO FREE VARAIBLE ^T IN <MOVCNST
.B 1.I -27
_#514	<QAR-00806	IN <MOVCNST IF <NARY INSURE <.R IS 1ST ARG SINCE [^V5] CODE ASSUMES <.R+X
.B 1.I -27
_#515	<QAR-00815	REMOVE ^^"TEMP [EXPRUSE] __ 1"\\ IN <DOTORFIX
.PG;.B 3;.LM 0;.RM 70;.F;.J
6.0##<OPEN <AND <CLOSE <SYNTAX
.B 1
^THE SYNTAX FOR THE <OPEN AND <CLOSE STATEMENTS MAY INCLUDE AN OPTIONAL
ERROR SPECIFIER OF THE FORM:
.B 1;.I 5
<ERR = S
.B 1
WHERE S IS THE STATEMENT LABEL OF AN EXECUTABLE STATEMENT (THAT 
APPEARS IN THE SAME PROGRAM UNIT AS THE ERROR SPECIFIER) TO WHICH
CONTROL IS TRANSFERRED WHEN AN ERROR IS DETECTED DURING THE 
PROCESSING OF THE <OPEN OR <CLOSE STATEMENT.
.B 3
7.0##<ERRSNS <VALUES
.B 1
^THIS SECTION LISTS THE INTEGER VALUES RETURNABLE BY THE
SUBROUTINE <ERRSNS.  <ERRSNS TAKES ONE OR TWO INTEGER VARIABLE
ARGUMENTS AND PLACES VALUES IN THEM THAT DESCRIBE THE STATUS
OF THE LAST <I/O OPERATION PERFORMED BY
<FOROTS.  ^THE FOLLOWING VALUES CAN BE RETURNED IN THE
FIRST (STANDARDIZED) ARGUMENT.  ^ALONG WITH EACH VALUE IS LISTED THE ERROR CATEGORY
FOR THIS STANDARDIZED INDICATOR.  ^UNDER EACH CATEGORY ARE LISTED
THE SPECIFIC PROCESSOR-DEPENDENT ERRORS WHICH RESIDE IN THE CATEGORY.
^NUMBERS IN BRACKETS (IE. [ AND ]) REFER TO FOOTNOTES AT THE END
OF THE SECTION.
.B 2;.NF;.NJ;.TS 7,15
VALUE		EXPLANATION
.B 1
ARG1	ARG2
.B 2
  0		NO ERROR DETECTED
	  0	SATISFACTORY COMPLETION, IE, NO ERROR DETECTED
	101	NORMAL END OF JOB [1]
.B 1
  1		INVALID ERROR CALL
	243	UNIDENTIFIED ENTRY IN <FORERR [3]
	246	UNIDENTIFIED ENTRY IN <FORERR [3]
	300	UNIDENTIFIED ENTRY IN <FORERR
.B 1
 23		BACKSPACE ERROR
	312	<BACKSPACE ILLEGAL FOR DEVICE [9]
.B 1
 24		END-OF-FILE DURING READ
	308	ATTEMPT TO <READ BEYOND VALID INPUT [8]
.B 1
 25		INVALID RECORD NUMBER
	302	<LSCW ILLEGAL IN BINARY RECORD OR READING <ASCII
		ATTEMPT TO READ UNWRITTEN <ASCII <RANDOM <ACCESS RECORD
		  OR UNWRITTEN OR DESTROYED RECORD NUMBER
.B 1
 26		DIRECT ACCESS NOT SPECIFIED
	311	CANNOT <RANDOM <ACCESS A <SEQUENTIAL FILE
.PG;.B 1
 28		<CLOSE ERROR
	252	<DTA DIRECTORY IS FULL
		PROTECTION ERROR
	254	<RENAME FILE NAME ALREADY EXISTS
	262	NO ROOM OR QUOTA EXCEEDED
	268	CANNOT <DELETE OR <RENAME A NON-EMPTY DIRECTORY
.B 1
 29		NO SUCH FILE
	250	FILE WAS NOT FOUND
.B 1
 30		<OPEN FAILURE
	237	<DUMP MODE <RANDOM OR <APPEND ACCESS NOT IMPLEMENTED
		  TRY <IMAGE MODE
	238	<DIALOG FILE CANNOT BE OPENED [3]
	240	RECORD LENGTH MISSING FOR <RANDOM ACCESS
	242	TOO MANY DEVICES OPEN: FIFTEEN MAXIMUM
	245	DEVICE NOT AVAILABLE
	248	ILLEGAL <ACCESS FOR DEVICE
	249	ILLEGAL <MODE OR <MODE SWITCH
	251	NO DIRECTORY FOR PROJECT,PROGRAMMER NUMBER
	253	FILE WAS BEING MODIFIED
	255	^ILLEGAL ^SEQUENCE OF ^MONITOR ^CALLS [11]
	256	BAD <UFD OR BAD <RIB
	259	DEVICE NOT AVAILABLE
	265	PARTIAL ALLOCATION ONLY
	266	BLOCK NOT FREE ON ALLOCATION
	267	CANNOT SUPERSEDE AN EXISTING DIRECTORY
	269	<SFD NOT FOUND
	270	SEARCH LIST EMPTY
	271	<SFD NESTED TOO DEEPLY
	272	"NO CREATE" FLAG ON FOR SPECIFIED <UFD
	274	FILE CANNOT BE UPDATED
	277	<LOOKUP <ENTER OR <RENAME ERROR
.B 1
 31		MIXED ACCESS MODES
	315	CANNOT DO <SEQUENTIAL <ACCESS ON A <RANDOM FILE
.B 1
 32		INVALID LOGICAL UNIT NUMBER
	239	ILLEGAL <FORTRAN UNIT NUMBER
.B 1
 39		ERROR DURING READ
	310	<REREAD BEFORE FIRST <READ IS ILLEGAL [1]
.B 1
 42		DEVICE HANDLER NOT RESIDENT
	244	NO SUCH DEVICE
	260	NO SUCH DEVICE
.B 1
 45		<OPEN STATEMENT KEYWORD ERROR
	241	SWITCH ERROR DURING <DIALOG OR <OPEN STATEMENT SCAN
.B 1
 47		<WRITE ON <READ<ONLY FILE
	263	WRITE LOCK ERROR
.B 1
 59		LIST-DIRECTED <I/O SYNTAX ERROR
	313	ILLEGAL DELIMITER IN <LIST <DIRECTED INPUT
.PG;.B 1
 62		SYNTAX ERROR IN <FORMAT
	301	ILLEGAL CHARACTER IN <FORMAT STATEMENT [4]
	306	INPUT/OUTPUT LIST WITHOUT DATA CONVERSION IN <FORMAT
	314	MISSING WIDTH FIELD FOR <A OR <R ON INPUT
.B 1
 63		OUTPUT CONVERSION ERROR
	305	OPTIONAL * FILL: UNIDENTIFIED ENTRY IN <FORERR [7]
.B 1
 64		INPUT CONVERSION ERROR
	303	CHECKSUM ERROR READING BINARY RECORDS [5]
	307	ILLEGAL CHARACTER IN DATA
.B 1
 67		RECORD TOO SMALL FOR <I/O LIST
	304	INPUT/OUTPUT LIST GREATER THAN RECORD SIZE [6]
.B 1
 81		INVALID ARGUMENT
	102	ARGUMENT BLOCK NOT IN CORRECT FORMAT
	261	ARGUMENT BLOCK NOT IN CORRECT FORMAT
.B 1
699		UNCLASSIFIABLE ERROR ON OPEN
	247	<FOROTS SYSTEM ERROR [3]
	257	<FOROTS SYSTEM ERROR
	258	<FOROTS SYSTEM ERROR
	264	NOT ENOUGH MONITOR TABLE SPACE
	273	<FOROTS SYSTEM ERROR
	275	<FOROTS SYSTEM ERROR
	276	<FOROTS SYSTEM ERROR
.B 1
799		UNCLASSIFIABLE DATA ERROR
	309	VARIABLE CANNOT BE FOUND IN <NAMELIST BLOCK
.B 1
899		UNCLASSIFIABLE DEVICE ERROR
	400	WRITE PROTECTED
	401	DEVICE ERROR
	402	PARITY ERROR
	403	BLOCK TOO LARGE, QUOTA EXCEEDED OR FILE STRUCTURE FULL
	403	NONEXISTENT <CDR READER
		^SPOOLED <CDR FILE DOES NOT EXIST
	404	END OF FILE [10]
	407	END OF TAPE
.B 1
999		UNCLASSIFIABLE SYSTEM ERROR
	100	<FOROTS SYSTEM ERROR
	103	MONITOR NOT BUILT TO SUPPORT <FOROTS
	104	FATAL ERROR
	105	USER PROGRAM HAS REQUESTED MORE CORE THAN IS AVAILABLE
	106	RUNTIME MEMORY MANAGEMENT ERROR
.PG;.B 1;.LM 0;.F;.J
^THE SECOND (OPTIONAL) INTEGER VARIABLE ARGUMENT IS A MORE 
PROCESSOR-DEPENDENT INDICATOR OF THE
ERROR.  ^THE VALUE IS AN INTEGER OF THE FORM
.B 1;.I 5
ETNN
.B 1
WHERE
.B 1;.LM 16;.TS 16;.I -10
E = 0	MEANS <I/O RESET WAS SUCCESSFUL SO THAT THE <I/O 
STATEMENT CAUSING THE ERROR IS REPEATABLE
.B 1
.I -10
E = 1	MEANS <I/O RESET WAS UNSUCCESSFUL SO THAT ANY FURTHER <I/O
ON THE UNIT IN ERROR IS UNDEFINED
.B 1
.I -10
E = 2	MEANS ANOTHER <I/O ERROR OCCURRED DURING <I/O RESET SO THAT
ANY FURTHER <I/O ON THE UNIT IN ERROR IS UNDEFINED
.B 1
.I -10
T = 0	MEANS SATISFACTORY COMPLETION, IE, NO ERROR DETECTED
.B 1
.I -10
T = 1	MEANS A SYSTEM ERROR OCCURRED
.B 1
.I -10
T = 2	MEANS AN OPEN ERROR OCCURRED
.B 1
.I -10
T = 3	MEANS A DATA ERROR OCCURRED
.B 1
.I -10
T = 4	MEANS A DEVICE ERROR OCCURRED
.B 2
.I -10
NN = 0	MEANS SATISFACTORY COMPLETION, IE, NO ERROR DETECTED
(AND E = T = 0)
.B 1
.I -10
NN > 0	SPECIFIES A PARTICULAR ERROR
.B 2;.LM 0;.F;.J
^BELOW ARE LISTED THE SPECIFIC VALUES FOR THE SECOND (OPTIONAL)
ARGUMENT RETURNED BY <ERRSNS.  ^THE INTEGER IN THE SECOND COLUMN
(LABELED ARG1) IS THE ^FORTRAN-STANDARDIZED ERROR VALUE RETURNED
IN THE FIRST ARGUMENT TO <ERRSNS.  ^NUMBERS IN BRACKETS (IE, [ AND ])
REFER TO FOOTNOTES AT THE END OF THE SECTION.
.B 1;.LM 0;.TS 7,15;.NF;.NJ
VALUE		EXPLANATION
.B 1
ARG2	ARG1
.B 2
  0 	  0	SATISFACTORY COMPLETION, IE, NO ERROR DETECTED
.B 1
SYSTEM ERRORS
.B 1
100	999	<FOROTS SYSTEM ERROR
101	  0	NORMAL END OF FILE  [1]
102	 81	ARGUMENT BLOCK NOT IN CORRECT FORMAT
103	999	MONITOR NOT BUILT TO SUPPORT <FOROTS
104	999	FATAL ERROR
105	999	USER PROGRAM HAS REQUESTED MORE CORE THAN IS AVAILABLE
106	999	RUNTIME MEMORY MANAGEMENT ERROR
.B 2
OPEN ERRORS  [2]
.B 1
237	 30	<DUMP MODE <RANDOM OR <APPEND ACCESS NOT IMPLEMENTED
		  TRY <IMAGE MODE
238	 30	<DIALOG FILE CANNOT BE OPENED  [3]
239	 32	ILLEGAL <FORTRAN UNIT NUMBER
240	 30	RECORD LENGTH MISSING FOR <RANDOM ACCESS
241	 45	SWITCH ERROR DURING <DIALOG OR <OPEN STATEMENT SCAN
242	 30	TOO MANY DEVICES OPEN: FIFTEEN MAXIMUM
243	  1	UNIDENTIFIED ENTRY IN <FORERR  [3]
244	 42	NO SUCH DEVICE
245	 30	DEVICE NOT AVAILABLE
246	  1	UNIDENTIFIED ENTRY IN <FORERR  [3]
247	699	<FOROTS SYSTEM ERROR  [3]
248	 30	ILLEGAL <ACCESS FOR DEVICE
249	 30	ILLEGAL <MODE OR <MODE SWITCH
250	 29	FILE WAS NOT FOUND
251	 30	NO DIRECTORY FOR PROJECT,PROGRAMMER NUMBER
252	 28	<DTA DIRECTORY IS FULL
		PROTECTION ERROR
253	 30	FILE WAS BEING MODIFIED
254	 28	<RENAME FILE NAME ALREADY EXISTS
255	 30	^ILLEGAL ^SEQUENCE OF ^MONITOR ^CALLS [11]
256	 30	BAD <UFD OR BAD <RIB
257	699	<FOROTS SYSTEM ERROR
258	699	<FOROTS SYSTEM ERROR
259	 30	DEVICE NOT AVAILABLE
260	 42	NO SUCH DEVICE
261	 81	ARGUMENT BLOCK NOT IN CORRECT FORMAT
262	 28	NO ROOM OR QUOTA EXCEEDED
263	 47	WRITE LOCK ERROR
264	699	NOT ENOUGH MONITOR TABLE SPACE
265	 30	PARTIAL ALLOCATION ONLY
266	 30	BLOCK NOT FREE ON ALLOCATION
267	 30	CANNOT SUPERSEDE AN EXISTING DIRECTORY
268	 28	CANNOT <DELETE OR <RENAME A NON-EMPTY DIRECTORY
269	 30	<SFD NOT FOUND
270	 30	SEARCH LIST EMPTY
271	 30	<SFD NESTED TOO DEEPLY
272	 30	"NO CREATE" FLAG ON FOR SPECIFIED <UFD
273	699	<FOROTS SYSTEM ERROR
274	 30	FILE CANNOT BE UPDATED
275	699	<FOROTS SYSTEM ERROR
276	699	<FOROTS SYSTEM ERROR
277	 30	<LOOKUP <ENTER OR <RENAME ERROR
.B 2
DATA ERRORS
.B 1
300	  1	UNIDENTIFIED ENTRY IN <FORERR
301	 62	ILLEGAL CHARACTER IN <FORMAT STATEMENT  [4]
302	 25	<LSCW ILLEGAL IN BINARY RECORD OR READING <ASCII
		ATTEMPT TO READ UNWRITTEN <ASCII <RANDOM <ACCESS RECORD
		  OR UNWRITTEN OR DESTROYED RECORD NUMBER
303	 64	CHECKSUM ERROR READING BINARY RECORDS  [5]
304	 67	INPUT/OUTPUT LIST GREATER THAN RECORD SIZE  [6]
305	 63	OPTIONAL * FILL: UNIDENTIFIED ENTRY IN <FORERR  [7]
306	 62	INPUT/OUTPUT LIST WITHOUT DATA CONVERSION IN <FORMAT
307	 64	ILLEGAL CHARACTER IN DATA
308	 24	ATTEMPT TO <READ BEYOND VALID INPUT  [8]
309	799	VARIABLE CANNOT BE FOUND IN <NAMELIST BLOCK
310	 39	<REREAD BEFORE FIRST <READ IS ILLEGAL  [1]
311	 26	CANNOT <RANDOM <ACCESS A <SEQUENTIAL FILE
312	 23	<BACKSPACE ILLEGAL FOR DEVICE  [9]
313	 59	ILLEGAL DELIMITER IN <LIST <DIRECTED INPUT
314	 62	MISSING WIDTH FIELD FOR <A OR <R ON INPUT
315	 31	CANNOT DO <SEQUENTIAL <ACCESS ON A <RANDOM FILE
.B 2
DEVICE ERRORS
.B 1
400	899	WRITE PROTECTED
401	899	DEVICE ERROR
402	899	PARITY ERROR
403	899	BLOCK TOO LARGE, QUOTA EXCEEDED OR FILE STRUCTURE FULL
		NONEXISTENT <CDR READER
		^SPOOLED <CDR FILE DOES NOT EXIST
404	899	END OF FILE  [10]
407	899	END OF TAPE
.B 3;.LM 7;.F;.J;.TS 7;.I -7
FOOTNOTES
.B 1;.I -7
[1]	ERROR NOT CURRENTLY TRAPPABLE
.I -7
[2]	<OPEN ERRORS 251 THROUGH 276 MAP DIRECTLY ONTO ERROR NUMBERS
RETURNED BY THE <OPEN <UUO:  SEE ^APPENDIX ^E "^ERROR ^CODES"
IN ^SOTFWARE ^NOTEBOOK 4 "<DEC-10 ^MONITOR ^CALLS"
<DEC-10-OMCMA-B-DN3
.I -7
[3]	ERROR CANNOT CURRENTLY OCCUR
.I -7
[4]	IN RUNTIME <FORMAT
.I -7
[5]	CHECKSUMMING CONTROLLED BY COMPILE-TIME VARIABLE <CHKSUM
.I -7
[6]	OCCURS WHEN A TYPE 2 <LSCW IS FOUND IN A <FORSE BINARY RECORD
.I -7
[7]	* FILL CONTROLLED BY COMPILE-TIME VARIABLE <ASTFL
.I -7
[8]	OCCURS WHEN SIMULATING MAG TAPE OUTPUT: <SKIP <RECORD AND <SKIP
<FILE ARE ILLEGAL.  ^ALSO OCCURS WHEN A NON-EXISTENT FILE
IS OPENED <MODE='SEQINOUT' AND THE FIRST OPERATION ON THAT
FILE IS A <READ.
.I -7
[9]	CAN OCCUR IF <OPEN OUTPUT ON <BACKSPACE IS NOT ON A MAG TAPE OR DISK
.I -7
[10]	TRAPPABLE IF THERE IS NO <END= CLAUSE
.I -7
[11]	CAN OCCUR ON ^^OPEN (...MODE='APPEND'...)\\ WHEN FILE IS FOUND
IN <LIB: OR ON [1,4] WHEN DEVICE SPECIFIED WAS <SYS: AND </NEW
WAS IN YOUR SEARCH LIST
.PG;.B 3;.LM 0;.RM 70;.F;.J
8.0##^^OPERATIONS AFTER AN I/O ERROR\\
.B 1
^THE FOLLOWING COMMENTS DEAL WITH <I/O OPERATIONS TO A UNIT
ON WHICH AN ERROR HAS OCCURRED.
.B 1;.LM 9;.I -4
1.##<OPEN <RANDOM ON A NON-EXISTENT FILE CREATES AN EMPTY FILE WHEN
THE ERROR IS TRAPPED.
.B 1;.I -4
2.##<OPEN <SEQOUT WITH AN INVALID <MODE TO A SPOOLED DEVICE SPOOLS AN
EMPTY FILE WHEN THE ERROR IS TRAPPED.
.B 1;.I -4
3.##ONE WAY FOR DATA ERROR RECOVERY TO FAIL IS IF THE <BACKSPACE
ROUTINE FINDS AN ILLEGAL <LSCW.
.B 1;.I -4
4.##ON END OF FILE (DEVICE ERROR 404):
.B 1;.LM 13;.I -4
A.##<END= TAKES PRECEDENCE OVER <ERR=
.B 1;.I -4
B.##<ERR= WILL TRAP AN END OF FILE IF NO <END= IS PRESENT
.B 1;.I -4
C.##<ERRSNS WILL RETURN THE PAIR 899, 404 FOR EITHER <END= OR <ERR=
.B 3;.LM 0
9.0##<SUGGESTIONS
.B 1
^NONE.
.B 3
[^END OF <FTN5.DOC]
.ENDIF FTTENX