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