*DECK ERRORS
          IDENT  ERRORS 
 ERRORS   SECT   (DIAGNOSTIC PROCESSING.) 
          SST    A,B,C,F,G,L,K,Z,EXIT.
          NOREF  A,B,C,F,G,L,K,Z,EXIT.
  
 B=ERROR  RPVDEF             DEFINE ROUTINE FWA FOR REPRIEVE UTILITY
  
          ENTRY  ANSI=,ANSI.SW
          ENTRY  CLASS,CON.DPC
          ENTRY  DO.DPC 
          ENTRY  ERR=F,E.DM2A,E.DM5,E.MD
          ENTRY  FILL.,FILL.2,FILL.3
          ENTRY  L.CL 
          ENTRY  OSE
          ENTRY  PWE
          ENTRY  STNTD,STNTND 
          ENTRY  UEC
  
*         IN FTN
          EXT    SAVLINE,LOP=F,LOP=N,LOP=W,LOP=X,LOP=1
  
*         IN TABLES 
          EXT    BINOUT,CDD,CHARMAP,ERRORS,TS.SYM,T.DLBUF 
  
*         IN MAIN 
          EXT    LSL,WOF
  
*         IN LEX
          EXT    S.ERR,TSF
  
*         IN NUM
          EXT    DLAB,DODO,LABL,ISN60 
  
*         IN REG
          EXT    CRJ
  
*         IN GEN
          EXT    DIMSYM 
  
*         IN INIT 
          EXT    SAVE 
          EJECT 
**        CLASS - MACRO TO DEFINE AND NAME *CLASS* BITS.
* 
* SYM     CLASS  NAM
  
*         *SYM*  = NAME OF FIELD
*         *NAM*  = EXTERNAL NAME (FOR ERROR MESSAGES) 
  
  
          MACRO  CLASS,SYM,NAM
 N.CLASS  SET    N.CLASS+1
 CLASS    RMT 
          ERRLIT NAM
 CLASS    RMT 
 CLASS    ENDM
  
 N.CLASS  SET    0
 SIZES    SPACE  4,8
**        CLASS BITS -- 
* 
* RP  -   VAR   COMM  EQUIV  NLST  ARY  LEV  EXT  ENT  FP  DEF
*   NVAR  -     INL   ASF   SUB   BEF   FUN   EXT   ENT 
* 
*         NOTE   ANY CHANGES TO EITHER OF THE FOLLOWING CLASS BIT 
*                DEFINITIONS MAY ALSO REQUIRE CHANGES TO -- 
*                1.  WVV = VARIABLE MAP.
*                2.  ERRLIT SECTION (SEE *DICT* ET. SEQ.) 
****      2.     CLASS - CLASS OF *VARIABLES* IS DEFINED AS FOLLOWS --
  
  
  
 DEF      CLASS  DEFINED     IS ASSIGNED A VALUE. 
 FP       CLASS  DUMMY-ARG   IS A FORMAL PARAMETER, 
 ENT      CLASS  ENTRY-PT    IS AN ENTRY POINT, 
 EXT      CLASS  EXTERNAL    IS AN EXTERNAL.
 ECS      CLASS  ECS/LCM     IS IN ECS/LCM (LEVEL 3)
 ARY      CLASS  ARRAY       IS DIMENSIONED,
 NLST     CLASS  NAMELIST    IS A NAMELIST GROUP NAME,
 EQUIV    CLASS  EQUIV.      IS A NON-BASE MEMBER OF AN EQUIV CLASS,
 COMM     CLASS  COMMON      IS IN COMMON,
 VAR      CLASS  VARIABLE    IS A VARIABLE. 
 NVAR     CLASS  NOT-VAR     IS NOT A VARIABLE. 
 RP       CLASS  RETURNS     IS A RETURNS PARAMETER.
 EST      CLASS  EXT-STMT    APPEARS IN EXTERNAL STATEMENT
****
          ERRPL  N.CLASS-L.CLASS       NOT ENOUGH ROOM
 L.CL     EQU    N.CLASS     LENGTH OF *VARIABLE* CLASS BITS
 N.CLASS  SET    P.ENT-P.CLASS     STARTING POSITION FOR CLASS2 
  
  
**** 3.   CLASS2 - THE FOLLOWING DEFINE THE CLASS OF A SPECIAL FUNCTION 
*                  SPECIAL = ONE OF THE BELOW.
  
  
  
 ENT=     CLASS  ENTRY PT.   IS AN ENTRY POINT.   (FAKE)
 EXT=     CLASS  EXTERNAL.   IS AN EXTERNAL.      (FAKE)
 FUN      CLASS  FUNCTION    IS A FUNCTION (SET IF INL,ASF,EXT) 
 BEF      CLASS  B.E.F.      IS A BASIC EXTERNAL FUNCTION 
 SUB      CLASS  SUBROUTINE  IS A SUBROUTINE. 
 ASF      CLASS  STAT-FUNC     IS A STATEMENT FUNCTION, 
 INLINE   CLASS  INTRINSIC     IS AN INTRINSIC FUNCTION.
****
 INTRIN   SPACE  4,20 
          POPMAC CLASS
****      ERRSKEL - ERROR MESSAGE SKELETON TABLE FORMAT.
* 
*         IN ORDER TO REDUCE CORE REQUIREMENTS AND STILL PRINT FULL-LINE
*         NARRATIVE DIAGNOSTICS BENEATH THE STATEMENT, ERROR MESSAGE
*         TEXT IS KEPT IN A SKELETAL FORM, WHEREIN EACH WORD IS 
*         REPRESENTED BY AN ORDINAL INTO A DICTIONARY.
  
  
 N.ER1ST  EQU    4
 N.ERREST EQU    6
 L.ERWORD EQU    9           LENGTH OF EACH ORDINAL BYTE
 ERTYPE   DEFINE 19,5        ERROR TYPE INDICATOR 
 ERMORE   DEFINE L.ERTYPE    CONTINUATION FLAG, RELATIVE TO LO-BYTE 
 ERXIT    DEFINE 0,18        EXIT ADDRESS 
****
 L=ERWORD EQU    L.ERWORD    REDUCE GARBAGE CONTENT OF REF MAP
 L=ERTYPE EQU    L.ERTYPE 
 P=ERTYPE EQU    P.ERTYPE+L.ERTYPE
 L=ERMORE EQU    L.ERTYPE 
 L=ERXIT  EQU    L.ERXIT
          NOREF  L=ERWORD,L=ERTYPE,P=ERTYPE,L=ERMORE,L=ERXIT
 ERFMT    SPACE  4,30 
**               THE N-WORD FORMAT IS --
* 
**T  FIRST    9/ERWD1,9/ERWD2,9/ERWD3,9/ERWD4,5/ERTYP,1/M,18/ERXIT
**T  REST     9/ERWD1,9/ERWD2,9/ERWD3,9/ERWD4,9/ERWD5,9/ERWD6,5/0,1/M 
* 
*         ERWD(I) = DICTIONARY ORDINAL OF THE TEXT WORD.  A ZERO ORDINAL
*                INDICATES THE END OF THE MESSAGE.
*         ERTYPE = ORDINAL OF THE ERROR-TYPE-SELECTION SWITCH.  DEFINED 
*                BY THE *ERRTYP* MACRO, AND LINKED TO BY *ERROR* MACRO. 
*                *LLN* WILL LIST THIS ERROR IF THE CELL POINTED TO BY 
*                THE INDICATED SWITCH IS NEGATIVE.
*         M    = IF SET, MORE SKELETON WORDS FOLLOW.
*                IF CLEAR, THE MESSAGE IS OVER. 
*         ERXIT = IF POSITIVE, ADDRESS TO RETURN TO AFTER PROCESSING. 
*                 IF NEGATIVE, EXIT IS TO *PWE1*, AND (ERXIT)-4S15 IS 
*                THE SPECIAL FORMATTING ADDRESS.
* 
*         THE LAST CHARACTER OF EACH WORD IN THE DICTIONARY INDICATES 
*         HOW MANY CHARACTERS ARE IN THAT WORD.  THIS IS DONE SO *LLN*
*         DOES NOT HAVE TO LOOP ON EACH CHARACTER.  IF THE WORD CONTAINS
*         TEN CHARACTERS, THE LAST CHARACTER IS UNMODIFIED.  IF THE WORD
*         CONTAINS FEWER THAN TEN CHARACTERS, THE LAST CHARACTER IS SET 
*         = DT.BIAS + (LENGTH OF WORD).  THE *ERROR* AND *ERRLIT* MACROS
*         CREATE SUCH WORDS, AND PUT THEM IN THE LITERAL POOL.  THUS, 
*         THE ASSEMBLER ELIMINATES DUPLICATES AUTOMATICALLY.
* 
*         IF THE ERROR MESSAGE WORD IS .GT. 10 CHARACTERS THE DICTIONARY
*         WORD WILL CONTAIN 9 CHARACTERS FOLLOWED BY A COLON AND THE
*         MESSAGE WORD WILL BE CONTINUED INTO THE NEXT DICTIONARY WORD. 
 ERROR    SPACE  4,15 
**        ERROR - MACRO TO DEFINE ERROR MESSAGES. 
* 
*         ALL ERROR MESSAGES MUST BE DEFINED BY THIS MACRO. 
*         TRANSLATES THE DIAGNOSTIC TEXT INTO THE FORM DISCUSSED ABOVE, 
*         WHILE GENERATING A DICTIONARY OF LITERALS.
* 
* 
* LOC     ERROR  TYPE,EXIT,(TEXT) 
* 
*         TYPE   =  ONE OR TWO CHARACTER ERROR-TYPE INDICATOR.
*                1.  FIRST CHARACTER DESCRIBES THE SEVERITY OF THE
*                    ERROR -- VALID CHARACTERS ARE DEFINED BY *ERRTYP*
*                    MACRO, Q.V.
*                2.  SECOND CHARACTER SELECTS SPECIAL FILL. FORMATTING
*                    BY THE ERROR PROCESSOR.  SEE *LLN* FOR DETAILS.
* 
*         EXIT   =  ADDRESS TO RETURN TO AFTER PRINTING THE DIAGNOSTIC. 
*                IF IT IS "*" (STAR, 46B DPC), THEN CONTROL RETURNS TO
*                CALLER, AND ERROR MUST BE REFERENCED BY ANSI, FATAL, 
*                NOTE, OR WARN MACRO. 
*                OTHERWISE, IT IS SIMPLY THE ADDRESS TO RETURN TO AFTER 
*                PROCESSING THE ERROR.
* 
*         TEXT   =  FROM ONE TO 16 WORDS OF TEXT.  WORDS ARE SEPARATED
*                BY BLANKS.  NO WORD MAY CONTAIN A NEGATION (^ 76B), OR 
*                SEMI-COLON (; 77B).  THE TENTH CHARACTER OF A WORD MAY 
*                NOT BE A CHARACTER WITH DPC .GE.65B NOR MAY IT BE A
*                COLON. 
  
  
          MACRO  ERROR,LOC,TYPE,EXIT,MSG
* 
*                DETERMINE (A)  SPECIAL FORMATTING, AND (B) SEVERITY. 
* 
 A        MICRO  2,1,/TYPE/ 
 B        MICRO  1,1, TYPE
* 
*                SET UP (LOC) CALLING STYLE, AND (X) EXIT ADDRESS.
* 
          ENTRY  LOC
.3        IFC    EQ, EXIT * 
 LOC      EQU    DT.NEXT
 X        MICRO  1,, LLN"A"+4S15
.3        ELSE
 LOC      SB7    DT.NEXT
          EQ     LLN"A" 
 X        MICRO  1,, =X_EXIT
.3        ENDIF 
* 
          USE    FORMAT.
 T        MICRO  1,,^_MSG_^ 
* 
*                DUP THRU THE MESSAGE FOR EACH WORD.
* 
 L        SET    0
 U        MICRO  1,,
.1        DUP    16 
 L        SET    L+1
 .2       IFC    NE,^^"T"^
          IFC    EQ,/"U"//,2
 S        MICRO  1,, "T"
          SKIP   2
 S        MICRO  1,, "U"
 U        MICRO  1,,
          ERRMIC S
          IFEQ   L,5,1
          VFD    L=ERTYPE/ERR."B",1/1,L=ERXIT/"X" 
          IFEQ   L,11,1 
          VFD    L=ERMORE/0,1/1 
          VFD    L=ERWORD/1-DICT+=10H"S""A" 
 .2       ELSE   1
          STOPDUP 
.1        ENDD
.4        IFC    NE,^^"T"^
 4        ERR    LOC  -- TOO MANY WORDS IN TEXT -- TRUNCATED AFTER
,                            ("T")
.4        ENDIF 
* 
*                WRAP UP, AND BIND OFF THE SKELETON.
* 
.6        IFEQ   *,DT.NEXT
          POS    P=ERTYPE 
          VFD    L=ERTYPE/ERR."B",1/0,L=ERXIT/"X" 
.6        ELSE   1
          POS    0
 DT.NEXT  SET    *
          USE    *
          ENDM
  
  
 ERRMIC   MACRO  S
 K        MICCNT S
          IFGT   K,10,5 
 U        MICRO  10,, "S" 
 S        MICRO  1,9, "S" 
 A        MICRO  1,1,/:/
 K        SET    8
          SKIP   3
          IFLT   K,9,1
 S        MICRO  1,9,$"S"        $
 A        MICRO  K,1,/!&'?<>@\^ / 
 T        MICRO  K+2,,^"T"^ 
 ERRMIC   ENDM
  
  
 DT.BIAS  EQU    1R!-1       MUST AGREE WITH STRING IN ERRMIC 
 ERRLIT   SPACE  4,8
**        ERRLIT - MACRO TO GENERATE A LITERAL OF PROPER FORM FOR ERROR 
*                MESSAGE PROCESSOR. 
* 
*         ERRLIT WORD 
  
  
          MACRO  ERRLIT,LOC,WORD
 S        MICRO  1,,$WORD$
          ERRMIC S
 LOC      LIT    10H"S""A"
 ERRLIT   ENDM
 ERRTYP   SPACE  4,8
**        ERRTYP - MACRO TO SETUP ERROR TYPES AND LISTING FLAGS 
* 
* 
* TYPE    ERRTYP LOP,(WORD) 
* 
*         *TYPE* =  TYPE OF THE ERROR AS USED IN *ERROR* MACRO CALLS. 
*                  ONLY THE FIRST LETTER WILL BE USED.
*         *LOP*  =  ADDRESS OF THE LIST OPTION SELECTION WORD.  IF SIGN 
*                  BIT OF THIS WORD IS SET, THEN THIS *TYPE* OF ERROR 
*                  IS SELECTED AND WILL BE PRINTED. 
*         (WORD) = BANNER WORD PRINTED WITH ERROR OF THIS *TYPE*. 
  
  
          MACRO  ERRTYP,T,L,W 
 A        MICRO  1,9,$_W         $
 B        MICRO  1,1, T 
 C        MICRO  1,1,/"A" / 
 ERR."B"  VFD    24/4R"C" * ,18/=10H "A",18/LOP=L 
 ERRTYP   RMT=   (ERR="B" CON 0)
 ERRTYP   ENDM
  
  
          USE    FORMAT.
 DT.NEXT  SET    *
          USE    *
          NOREF  DT.NEXT
 DICT     SPACE  4,8
**        DICT - THESE MUST BE THE FIRST LITERALS IN THE (1,0) OVERLAY. 
*         THESE LITERALS ARE USED BY ERROR PROCESSING ROUTINES. 
  
 T        MICRO  1,,
  
 DICT     LIT    1H          BASE ADDRESS OF LITERALS 
          NOREF  DICT 
  
 FILL.    ERRLIT FILL.       THESE ARE FOR MESSAGE FILL-INS 
 FILL.2   ERRLIT FILL.2 
 FILL.3   ERRLIT FILL.3 
 L.FILL   EQU    FILL.3-FILL.+1 LENGTH OF FILL. REGION FOR LLNS.
 CLASS    ERRLIT DEFINED
 CLASS    HERE               (NAMES OF SYMBOL CLASSES)
  
 DO.DPC   ERRLIT DO          USED IN *DO* ERRORS AS FILL. 
          ERRLIT INITIAL
          ERRLIT LIMIT
          ERRLIT INCREMENT
  
 CON.DPC  ERRLIT PLUS        USED IN *CONSTANT REDUCTION AS FILL. 
          ERRLIT MINUS
          ERRLIT MULTIPLY 
          ERRLIT DIVIDE 
  
 ERROR    EJECT 
****      DIAGNOSTICS SECTION OF COMPILER.
*         GENERAL DISCUSSION OF DIAGNOSTICS --
* 
*         ALL DIAGNOSTICS FOR SOURCE FORTRAN MUST BE CONTAINED WITHIN 
*         THIS SECTION OF THE COMPILER. WHEN A NEW DIAGNOSTIC IS TO BE
*         ADDED THE FOLLOWING GENERAL RULES MUST BE ADHERED TO -- 
*         1.  ALL DIAGNOSTICS MUST START WITH  E.XXX
*             WHERE XXX HAS SOME MEANING AS TO THE SECTION WHERE THE
*             ERROR WAS DETECTED. 
* 
*         2.  ANY DIAGNOSTIC THAT USES A FILL. AND DOES NOT PRESET IT TO
*             INTERNAL FORM MUST HAVE EITHER *S* OR *V* AS THE SECOND 
*             CHARACTER SPECIFIED IN THE DIAGNOSTIC DEFINITION. 
*                *S* FORM = FILL. IS ALREADY IN 0L FORM.
*                *V* FORM = FILL. SHOULD BE FORMED FROM *SB* STARTING 
*                           AT B4.
* 
*         3.  ALL *ANSI* DIAGNOSTICS SHOULD USE *ANSI* MACRO TO OUTPUT
*             GIVEN ANSI ERROR. (THIS WILL IMPROVE THE SPEED OF 
*             COMPILATION WHEN *ANSI* ERRORS ARE NOT REQUESTED.)
* 
*         4.  ALL COLON/SEMICOLON BREAKS IN DIAGNOSTICS MUST USE *--* 
*             TO REPRESENT BREAK. 
* 
*         5.  DIAGNOSTICS MAY BE ANY OF THE FOLLOWING TYPES 
*           (ONLY THE FIRST CHARACTER OF TYPE IS USED...) 
*                ANSI -  USAGE DOES NOT CONFORM TO AMERICAN NATIONAL
*                            STANDARD FORTRAN, X3.9-1966. 
*                CONTINUATION -  THIS IS REALLY A CONTINUATION OF A 
*                            PREVIOUS ERROR.  IT WILL GET PRINTED OR NOT
*                            ACCORDING TO WHETHER THE LAST ERROR WAS
*                            SELECTED.
*                FATAL -  FATAL TO EXECUTION.  INHIBITS BINARY OUTPUT 
*                            UNLESS *DEBUG* IS SELECTED.
*                KILL -  FATAL TO COMPILATION.  RESUME WITH NEXT
*                            PROGRAM-UNIT.
*                NOTE -  NO ACTUAL VIOLATION OF FORTRAN, BUT THE SOURCE 
*                            STATEMENT(S) DO NOT MAKE MUCH SENSE, OR
*                            SEEM OTHERWISE DUBIOUS.
*                PRINT - FAKE TYPE. ALWAYS GETS PRINTED, BUT DOES 
*                            NOT AFFECT ANY ERROR COUNTS. 
*                WARNING -  A MORE SEVERE ERROR THAN A *NOTE*.  LANGUAGE
*                            HAS BEEN VIOLATED, EVEN, BUT WE COULD
*                            FIGURE OUT WHAT HE (PROBABLY) MEANT. 
* 
* 
* 
*         -------  LIMITATIONS ON DIAGNOSTICS ------- 
* 
* 
*         1.  NO DIAGNOSTIC MAY EXCEED 16 WORDS, NOR MAY IT BE TOO LONG 
*             TO FIT ON ONE TTY LINE (UP TO 72 CHARACTERS MAY BE LISTED)
* 
*         2.  NO DIAGNOSTIC MAY USE A COLON.
* 
*         3.  NUMBER OF WORDS IN DICTIONARY MUST NOT EXCEED 
*             512 WORDS.
* 
*         4.  NO DIAGNOSTIC MAY USE A SPECIAL CHARACTER > 65B DPC AS THE
*             LAST CHARACTER IN A 10H WORD. 
* 
*         5.  SPECIAL CARE SHOULD BE USED WHEN A WORD IN THE ERROR
          EXT    LBDO 
*             MESSAGE CONTAINS EITHER A *(* OR *)*. 
          EJECT 
*** ERRS         LISTED BY SECTION PRODUCING THE DIAGNOSTIC...
  
  
**        ARGUMENT PROCESSOR. 
  
  
 E.AC     ERROR  F,*,(ONLY "MAX.SARG" DUMMY ARGUMENTS ARE PERMITTED -- E
,XCESS IGNORED) 
 E.AC3    ERROR  FS,*,(DUMMY ARGUMENT FILL. PREVIOUSLY DEFINED) 
 E.AC4    ERROR  FS,*,(DUMMY ARGUMENT FILL. MUST BEGIN WITH LETTER) 
 E.AC5    ERROR  FS,PSP,(EXPECTED RETURNS FOUND FILL.)
 E.AC6    ERROR  FV,PSP,(EXPECTED LEFT PAREN OR COMMA FOUND FILL.)
 E.AC8    ERROR  W,*,(ILLEGAL CHARACTER AFTER RIGHT PAREN)
 E.AC9    ERROR  WS,*,(MISSPELLED KEYWORD -- FILL. RETURNS ASSUMED) 
 E.AP     ERROR  FV,PSN,(EXPECTED LEFT PAREN FOR AN ARGUMENT LIST , FOUN
,D FILL.) 
 E.AP1    ERROR  F,PSN,(SYNTAX ERROR IN ARGUMENT LIST)
 E.FA     ERROR  F,*,(FUNCTION MUST HAVE AT LEAST 1 DUMMY ARGUMENT) 
 E.FR     ERROR  F,*,(RETURNS LIST NOT PERMITTED IN FUNCTION STATEMENT) 
 E.RA     ERROR  FV,PSN,(EXPECTED E.O.S. OR RETURNS PARAMETER FOUND FILL
,.) 
 E.RA1    ERROR  FV,PSN,(NAME FILL. NOT IN RETURNS LIST)
 ASF      EJECT 
**        ASF PROCESSOR 
  
  
 E.AF3    ERROR  FS,PSP,(STATEMENT FUNCTION FILL. -- MISPLACED EQUAL SIG
,N) 
 E.AF4    ERROR  NS,PSP,(STATEMENT FUNCTION FILL. HAS NULL DEFINITION --
, IGNORED)
 E.AF5    ERROR  FS,PAR.EOS,(STATEMENT FUNCTION FILL. REFERENCE -- RIGHT
, PAREN MISSING)
 E.AF6    ERROR  FS,AFDEX,(RECURSIVE DEFINITION OF STATEMENT FUNCTION FI
,LL.) 
 E.AF7    ERROR  NS,*,(ARGUMENT FILL.2 IS NOT USED IN STATEMENT FUNCTION
, FILL.)
 E.AF9    ERROR  FS,*,(DUMMY ARGUMENT FILL.2 CAN OCCUR ONLY ONCE IN FILL
,. DEFINITION)
 E.AF10   ERROR  FS,*,(REFERENCE TO STATEMENT FUNCTION FILL. HAS A NULL 
,PARAMETER) 
 E.AF11   ERROR  FS,PSN,(UNMATCHED PARAMETER COUNT TO STATEMENT FUNCTION
, FILL.)
 E.AF15   ERROR  FV,PSP,(STATEMENT FUNCTION DUMMY PARAMETER FILL. NOT SI
,MPLE VARIABLE) 
 E.AF16   ERROR  WS,*,(PREVIOUS DEFINITION OF STATEMENT FUNCTION FILL. I
,S OVERRIDDEN)
E.AF17    ERROR  FS,PSP,(USAGE CONFLICT -- FILL. CANNOT BE STATEMENT FUN
,CTION) 
  
          SPACE  4,8
**        INTRINSIC FUNCTION PROCESSING.
  
  
 E.IN1    ERROR  F,*,(LOCF ARGUMENT MUST NOT BE CONSTANT OR EXPRESSION) 
 ANSI     EJECT 
**        ASSORTED ANSI ERRORS
  
  
 E.ADP    ERROR  A,*,(ANSI REQUIRES THE WORD PRECISION) 
 E.AES    ERROR  A,*,(CONTROL FLOW INTO END LINE NOT PERMITTED) 
 E.ANS    ERROR  A,*,(STATEMENT IS NOT DEFINED IN ANSI) 
 E.ANS1   ERROR  A,PSP,(STATEMENT IS NOT DEFINED IN ANSI) 
 E.ANS2   ERROR  AS,*,(7 CHARACTER SYMBOL FILL. IS NON- ANSI) 
 E.ART    ERROR  A,E.ART1,(RETURN IN MAIN PROGRAM)
 E.ART1   ERROR  N,PSN,(RETURN ACTS AS END) 
 E.ANS3   ERROR  AS,*,(NON-ANSI TYPE COMBINATIONS WITH FILL. OPERATOR)
 E.ANS4   ERROR  AS,*,(NON-ANSI FORM OF BLOCK DATA STATEMENT) 
 ASSIGN   SPACE  4,15 
**        ASSIGN STATEMENT. 
  
  
 E.AS2    ERROR  WS,*,(*TO* ASSUMED FOR FILL.)
 E.AS3    ERROR  WS,*,(VARIABLE FILL. NOT INTEGER)
 E.AS4    ERROR  FV,PSN,(STATEMENT LABEL FILL. MUST BE NUMERIC) 
 E.AS5    ERROR  W,*,(COMMA AFTER STATEMENT LABEL IGNORED)
 ARITH    EJECT  4,8
**        ARITH PROCESSOR.
  
  
 E.AT1    ERROR  F,*,(LOGICAL AND NON- LOGICAL OPERANDS MAY NOT BE MIXED
,)
 E.AT1A   ERROR  F,*,(LOGICAL OPERAND USED WITH NON- LOGICAL OPERATOR)
 E.AT2    ERROR  FS,*,(ILLEGAL USE OF OPERATOR / OPERAND -- FILL. FILL.2
,)
 E.AT3    ERROR  N,*,(HOLLERITH CONSTANT IN EXPRESSION EXCEEDS 10 CHARAC
,TERS)
 E.AT5    ERROR  F,*,(ILLEGAL FORM INVOLVING THE USE OF A COMMA)
 E.AT6    ERROR  F,*,(ILLEGAL USE OF ASSIGNMENT OPERATOR) 
 E.AT7    ERROR  A,*,(MASK EXPRESSION NON- ANSI)
 E.AT8    ERROR  A,*,(HOLLERITH CONSTANT IN EXPRESSION NON- ANSI) 
 E.AT9    ERROR  A,*,(MULTIPLE ASSIGNMENT IS NON- ANSI) 
 E.AT10   ERROR  FS,*,(FILL. ILLEGAL FIRST ELEMENT OF EXPRESSION) 
 E.AT11   ERROR  W,*,(ASF MODELESS EXPRESSION ASSIGNED TO LOGICAL FUNCTI
,ON)
 E.AT12   ERROR  F,*,(ASF EXPRESSION TYPE CONFLICTS WITH FUNCTION TYPE) 
 E.AT13   ERROR  AS,*,(REDEFINITION OF PARAMETER FILL. USED AS DIMENSION
, INDICATOR IS NON-ANSI)
 CALL     SPACE  4,15 
**        CALL STATEMENTS.
  
  
 E.CL     ERROR  F,PSN,(CALL STATEMENT MISSING ROUTINE NAME)
 E.CL1    ERROR  FV,PSN,(EXPECTED LEFT PAREN OR COMMA AFTER ROUTINE NAME
, FOUND FILL.)
 E.CL2    ERROR  FS,*,(RETURNS PARAMETER FILL. MUST BE NUMERIC LABEL) 
 E.CL3    ERROR  A,*,(SAME NAME USED AS FUNCTION AND SUBROUTINE)
 COMMON   EJECT  4,8
**        COMMON PROCESSOR. 
  
  
 E.CM     ERROR  F,PSP,(SYNTAX ERROR IN BLOCK NAME) 
 E.CMA    ERROR  A,*,(NUMERIC BLOCK NAME NOT PERMITTED) 
 E.CM1    ERROR  F,PSP,(PREMATURE E.O.S. -- EXPECTED BLOCK NAME)
 E.CM2    ERROR  F,PSP,(ONLY "MAX.BLK" COMMON BLOCK ARE PERMITTED)
 E.CM3    ERROR  FV,PSP,(EXPECTED COMMA OR SLASH FOUND FILL.) 
 E.CM4    ERROR  W,PSP,(COMMON STATEMENT WITH NO LIST IS IGNORED) 
 E.CM5    ERROR  F,PSP,(ILLEGAL BLOCK NAME IN COMMON STATEMENT) 
 E.CM6    ERROR  F,PSP,(PREMATURE E.O.S. -- EXPECTED SYMBOL)
 CONST    EJECT  4,8
**        CONSTANT REDUCTION. 
  
  
 E.CR1    ERROR  N,*,(CONSTANT TERM OF ZERO -- IGNORED) 
 E.CR2    ERROR  N,*,(CONSTANT MULTIPLY BY ZERO -- RESULTS SET TO ZERO) 
 E.CR3    ERROR  F,*,(CONSTANT DIVIDE BY ZERO -- RESULTS SET TO INFINITE
,)
 E.CR3A   ERROR  N,*,(INTEGER DIVIDE BY ZERO -- RESULTS SET TO ZERO)
 E.CR4    ERROR  N,*,(DIVIDE INTO ZERO -- RESULTS SET TO ZERO)
 E.CR5    ERROR  N,*,(MULTIPLY BY 1 -- IGNORED) 
 E.CR6    ERROR  N,*,(DIVIDE BY 1 -- IGNORED) 
 E.CR7    ERROR  FS,*,(RESULTS OF CONSTANT USED WITH FILL. OPERATOR INFI
,NITE OR INDEFINITE)
 E.CR8    ERROR  F,*,(INTEGER GREATER THAN 2**48-1 IN MULTIPLY OR DIVIDE
,)
 E.CR9    ERROR  F,*,(INTEGER GREATER THAN 2**48-1 IN REAL EXPRESSION)
 E.CR10   ERROR  F,*,(INTEGER OPERATION RESULTS IN OVERFLOW)
 CONTINU  SPACE  4,6
**        CONTINUE STATEMENT PROCESSOR. 
  
  
 E.CT     ERROR  N,PSN,(CONTINUE WITH NO STATEMENT LABEL) 
 DATA     EJECT  4,8
**        DATA   STATEMENT PROCESSOR. 
  
  
 E.DAA    ERROR  AS,*,(ARRAY FILL. MUST HAVE IMPLIED LOOP)
 E.DALV   ERROR  FS,*,(FILL. IS NOT IN LABELED COMMON)
 E.DACV   ERROR  N,DATA2,(EXCESS CONSTANTS IGNORED) 
 E.DAVC   ERROR  WS,DATA2,(TOO FEW CONSTANTS -- VARIABLES FROM FILL. MAY
, NOT BE INITIALIZED) 
 E.DAR    ERROR  A,*,(PAREN REPEAT LIST IS NOT PERMITTED) 
 E.DAUC   ERROR  FS,DAT.Z,(DATA INTO FILL. IS ILLEGAL)
 E.DCE    ERROR  F,DAT.Z,(ILLEGAL REPEAT CONSTANT)
 E.DHC    ERROR  A,*,(HOLLERITH CONSTANT LONGER THAN 1 WORD)
 E.DIL    ERROR  F,DAT.Z,(SYNTAX ERROR IN DATA CONSTANT LIST) 
 E.DIL1   ERROR  F,DAT.Z,(ILLEGAL CONSTANT FOLLOWING + OR -)
 E.DIL2   ERROR  F,DAT.Z,(NESTING OF REPEAT COUNT IN DATA CONSTANT LIST 
,IS ILLEGAL)
 E.DIL3   ERROR  F,DAT.Z,(ILLEGAL SEPARATOR FOLLOWING DATA CONSTANT)
 E.DMT    ERROR  W,PSP,(NULL DATA STATEMENT IS IGNORED) 
 E.DNA    ERROR  A,*,(THIS FORM OF DATA STATEMENT NOT PERMITTED)
 E.DNA2   ERROR  A,PSP.C,(NON- ANSI SYNTAX IN THIS DATA STATEMENT)
 E.DSE    ERROR  F,DAT.Z,(SYNTAX ERROR IN DATA STATEMENT) 
 E.DTC    ERROR  WS,*,(FILL. CONSTANT TOO LONG -- TRUNCATED)
 E.DVL1   ERROR  FS,DAT.Z,(ILLEGAL SEPARATOR AFTER FILL.) 
 E.DVL2   ERROR  F,DAT.Z,(SYNTAX ERROR IN IMPLIED DO NESTING) 
 E.DVL21  ERROR  F,E.DVL29,(IMPLIED DO INDEX MUST BE FOLLOWED BY EQUAL) 
 E.DVL22  ERROR  F,E.DVL29,(IMPLIED DO LOWER LIMIT MUST BE NUMERIC) 
 E.DVL23  ERROR  F,E.DVL29,(NO COMMA AFTER LOWER LIMIT) 
 E.DVL24  ERROR  F,E.DVL29,(IMPLIED DO UPPER LIMIT MUST BE NUMERIC) 
 E.DVL25  ERROR  F,E.DVL29,(IMPLIED DO INCREMENT MUST BE NUMERIC) 
 E.DVL26  ERROR  F,E.DVL29,(MISSING RIGHT PAREN AFTER IMPLIED DO) 
 E.DVL29  ERROR  CS,DAT.Z,(SYNTAX ERROR IN IMPLIED DO ON ARRAY FILL.) 
 E.DVL3   ERROR  F,DAT.Z,(DATA VARIABLE LIST SYNTAX ERROR)
 E.DVL4   ERROR  F,DAT.Z,(NO MATCH OF LOOP INDEX AND SUBSCRIPT) 
 E.DVL5   ERROR  FS,DAT.Z,(ARRAY FILL. HAS A VARIABLE SUBSCRIPT WITH NO 
,IMPLIED LOOP)
 E.DVL6   ERROR  FS,DAT.Z,(FILL. SUBSCRIPT LESS THAN 1 OR EXCEEDS DIMENS
,ION) 
 E.DVL7   ERROR  WS,DAT.Z,(VARIABLE FILL. REFERENCED AS ARRAY)
 E.DVL8   ERROR  F,DAT.Z,(DATA SUBSCRIPT LIST SYNTAX ERROR) 
 E.DVL9   ERROR  FS,DAT.Z,(FILL. SUBSCRIPT EXCEEDS 2**17-1) 
 E.DVL10  ERROR  AS,*,(DATA VARIABLE FILL. DOES NOT MATCH CONSTANT TYPE)
 DEC      EJECT  4,8
**        CONVERSION OF CONSTANT SECTION. 
  
  
 E.DC     ERROR  F,*,(CONSTANT CANNOT BE CONVERTED) 
 E.DC1    ERROR  A,*,(OCTAL DATA TYPE NOT DEFINED IN ANSI)
 E.DC2    ERROR  FV,*,(EXPONENT EXCEEDS 512)
 E.DC3    ERROR  FV,*,(ILLEGAL FORM OF EXPONENT FILL.)
 E.DC6    ERROR  N,*,(CONSTANT MISSING EXPONENT FIELD -- ZERO ASSUMED)
 E.DC8    ERROR  W,*,(CONSTANT TOO LONG , EXCESS DIGITS TRUNCATED)
 E.DC9    ERROR  W,*,(NON- OCTAL DIGIT IN OCTAL CONSTANT -- IGNORED)
 DIM      EJECT  4,8
**        DIMENSION PROCESSOR.
  
  
 E.DM     ERROR  F,E.DM0,(SYNTAX ERROR IN DIMENSION STATEMENT)
 E.DM0    SA1    B4 
          ZR     X1,=XPSP    IF *EOS* 
          EQ     =XDIR8      ATTEMPT TO LOOK FOR MORE 
 E.DM1    ERROR  FS,DIR8,(ARRAY FILL. DIMENSION INDICATOR NOT INTEGER)
 E.DM2A   SB4    B4-B1
 E.DM2    ERROR  FS,DIR8,(ARRAY FILL. NULL OR ZERO DIMENSION INDICATOR) 
 E.DM3    ERROR  FS,DIR8,(VARIABLE DIMENSION ARRAY FILL. MUST BE DUMMY A
,RGUMENT) 
 E.DM4    ERROR  FS,*,(VARIABLE DIMENSION INDICATOR FILL. MUST BE DUMMY 
,ARGUMENT)
 E.DM5    SB4    B4-B1
 E.DM5A   ERROR  WS,DIRX,(VARIABLE FILL. HAS NO DIMENSION INDICATOR -- I
,GNORED)
 E.DM6    ERROR  FS,*,(ARRAY FILL. EXCEEDS "MAX.DIM" DIMENSIONS)
 E.DM7    ERROR  FS,DIR8,(ARRAY FILL. DIMENSION INDICATOR FILL.2 EXCEEDS
, 2**17-1)
 E.DM8    ERROR  FS,DIR8,(ARRAY FILL. SIZE EXCEEDS 2**17-1) 
 E.DM9    ERROR  WS,*,(DIMENSION OF FILL. IGNORED , PRIOR DIMENSION RETA
,INED)
 E.DM10   ERROR  F,PSP,(ARRAY DECLARATION FOR FILL. MISSING RIGHT PAREN)
 E.DM11   ERROR  FS,*,(SYNTAX ERROR ON DIMENSION INDICATOR FOR FILL.) 
 E.DM12   ERROR  AS,*,(HOLLERITH DIMENSION FOR FILL.) 
 E.DM13   ERROR  FS,*,(NEGATIVE DIMENSION FOR FILL. -- SET TO 1)
 E.DM14   ERROR  FS,*,(VARIABLE DIMENSION INDICATOR FILL. IS NOT INTEGER
,)
 DO       EJECT  4,8
**        DO PROCESSOR. 
  
  
 E.DO     ERROR  F,*,(SYNTAX OF DO MUST BE I=M1,M2,M3 OR M1,M2) 
 E.DO1    ERROR  FS,*,(FILL. INDEX PARAMETER MUST BE INTEGER OR OCTAL)
 E.DO2    ERROR  W,*,(LIMIT LESS THAN INITIAL -- 1 TRIP LOOP) 
 E.DO3    ERROR  FS,*,(FILL. INDEX PARAMETER IS TOO LARGE)
 E.DO4    ERROR  F,*,(FILL. INDEX PARAMETER MUST BE SIMPLE VARIABLE)
 E.DO5    ERROR  FS,*,(FILL. INDEX PARAMETER MUST BE POSITIVE)
 E.DO8    ERROR  F,*,(THIS STATEMENT REDEFINES A DO CONTROL INDEX)
 E.DO9    ERROR  FS,*,(DO LOOP FILL. NOT TERMINATED BEFORE END OF PROGRA
,M) 
 E.DO11   ERROR  F,*,(INDEX OF OUTER DO REDEFINED BY CURRENT DO)
 E.DO12   ERROR  F,*,(ILLEGAL NESTING OF DO LOOPS)
 E.DO13   ERROR  N,*,(DO CONCLUSION NOT COMPILED -- DO DEFINITION ERROR)
 E.DO16   ERROR  AS,*,(FILL. INDEX PARAMETER NOT SIMPLE INTEGER VARIABLE
, OR CONSTANT)
 E.DO17   ERROR  F,*,(DO CONTROL INDEX MUST BE SIMPLE INTEGER VARIABLE) 
 E.DO18   ERROR  N,*,(TRIVIAL DO LOOP -- IGNORED) 
 E.DO23   ERROR  W,*,(THIS STATEMENT REDEFINES A DO INDEX PARAMETER)
 E.DO24   ERROR  FS,*,(FILL.2 -- ILLEGAL TRANSFER TO INSIDE A CLOSED DO 
,LOOP)
 E.DO25   ERROR  F,*,(ILLEGAL TRANSFER INTO RANGE OF DO)
 E.DO25A  ERROR  N,*,(POSSIBLE ILLEGAL TRANSFER FROM OUTSIDE CURRENT DO)
 E.DO27   ERROR  F,*,(DO STATEMENT SYNTAX -- EXPECTED CONTROL INDEX -- F
,OUND E.O.S.) 
 E.DO28   ERROR  A,*,(COMMA NOT PERMITTED AFTER DO LABEL) 
 E.DO29   ERROR  W,*,(COMMA AFTER DO LABEL IGNORED) 
 EQUIV    EJECT  4,8
**        EQUIVALENCE PROCESSOR.
  
  
 E.EQ     ERROR  F,PSP,(SYNTAX ERROR IN EQUIVALENCE STATEMENT)
 E.EQ1    ERROR  FV,EQS8,(MISSING LEFT PAREN AT FILL.)
 E.EQ2    ERROR  FV,EQS8,(SUBSCRIPT FILL. EXCEEDS 2**17-1)
 E.EQ3    ERROR  FV,EQS8,(MISSING COMMA AT FILL.) 
 E.EQ4    ERROR  FV,EQS8,(MORE THAN "MAX.DIM" SUBSCRIPT)
 E.EQ5    ERROR  FV,EQS8,(SUBSCRIPT FILL. MUST BE NON- ZERO NUMERIC INTE
,GER CONSTANT)
 E.EQ6    ERROR  W,*,(TRIVIAL EQUIVALENCE GROUP WITH ONLY 1 MEMBER IS IG
,NORED) 
  
**        CLOSE OF DECLARATIVES PROCESSING. 
  
 E.EQ11   ERROR  WS,*,(REDUNDANT EQUIVALENCE SPECIFICATION FOR FILL.) 
 E.EQ12   ERROR  FS,*,(CONFLICT IN EQUIVALENCE SPECIFICATION FOR FILL.) 
 E.EQ13   ERROR  FS,*,(NO DIMENSION FOUND FOR EQUIVALENCE VARIABLE FILL.
,)
 E.EQ14   ERROR  FS,*,(EXCESS SUBSCRIPTS ON EQUIVALENCE VARIABLE FILL.) 
 E.EQ15   ERROR  WS,*,(MISSING SUBSCRIPTS SET TO 1 FOR EQUIVALENCE VARIA
,BLE FILL.) 
 E.EQ16   ERROR  FS,*,(FILL. ILLEGAL EXTENSION OF COMMON BLOCK ORIGIN)
 EXTERNAL EJECT  4,8
**        EXTERNAL PROCESSOR. 
  
  
 E.EX1    ERROR  NS,*,(FILL. PREVIOUSLY DEFINED AS EXTERNAL)
 E.EX2    ERROR  FS,*,(EXPECTED COMMA FOUND FILL.)
 E.EX3    ERROR  WV,PSP,(PREMATURE E.O.S. -- EXPECTED VARIABLE AT FILL.)
 E.EX4    ERROR  WS,*,(ENTRY FILL. MUST NOT BE DECLARED EXTERNAL -- IGNO
,RED) 
 FORMAT   EJECT  4,8
**        FORMAT PROCESSOR. 
  
  
 E.FS1    ERROR  W,FMT6A,(FORMAT MUST HAVE STATEMENT LABEL) 
 E.FS2    ERROR  F,PSN,(TERMINAL RIGHT PAREN MISSING) 
 E.FS3    ERROR  F,*,(ONLY 9 PAREN LEVELS ALLOWED)
 E.FS4    ERROR  FS,*,(REPEAT COUNT IS NOT ALLOWED BEFORE THE FIELD DESC
,RIPTOR FILL.)
 E.FS5    ERROR  W,*,(T CODE RESETS COLUMN POINTER , OVERLAYING CURRENT 
,LINE)
 E.FS5A   ERROR  A,*,(T CODE IS NULL OR ZERO , COLUMN POINTER RESET AT 1
,)
 E.FS6    ERROR  F,*,(SIGNED COUNT ALLOWED ONLY BEFORE P OR X CODE) 
 E.FS6A   ERROR  A,*,(S CODE IS SPECIFIED)
 E.FS7    ERROR  AS,*,(SKIP COUNT FOR X CODE IS PRECEDED BY FILL.)
 E.FS7A   ERROR  W,*,(X CODE RESETS COLUMN POINTER , OVERLAYING CURRENT 
,LINE)
 E.FS7B   ERROR  A,*,(X CODE PRECEDED BY NON- DIGIT -- 1 X ASSUMED) 
 E.FS7C   ERROR  A,*,(X CODE PRECEDED BY ZERO -- X CODE IGNORED)
 E.FS8    ERROR  AS,*,(FILL. IS SPECIFIED AS CONVERSION CODE) 
 E.FS8A   ERROR  F,*,(ZERO IS SPECIFIED AS REPEAT COUNT)
 E.FS8B   ERROR  FS,*,(FIELD WIDTH OF CONVERSION CODE FILL. IS ZERO OR N
,OT SPECIFIED)
 E.FS8C   ERROR  AS,*,(MINIMUM DIGITS IS SPECIFIED FOR THE CONVERSION CO
,DE FILL.)
 E.FS8D   ERROR  AS,*,(DECIMAL POINT IS NOT SPECIFIED FOR THE CONVERSION
, CODE FILL.) 
 E.FS8E   ERROR  AS,*,(EXPONENT LENGTH IS SPECIFIED FOR THE CONVERSION C
,ODE FILL.) 
 E.FS8F   ERROR  WS,*,(FILL. CONVERSION CODE FIELD WIDTH IS LESS THAN MI
,NIMUM REQUIRED)
 E.FS9    ERROR  A,*,(EQUAL SIGN = IS SPECIFIED FOR A DIGIT)
 E.FS10   ERROR  F,*,(COUNT FOR H CODE ZERO OR MISSING -- SCAN STOPPED) 
 E.FS11   ERROR  F,*,(RECORD LENGTH EXCEEDS 2**17-1 COLUMNS)
 E.FS11A  ERROR  W,*,(RECORD LENGTH EXCEEDS 137 COLUMNS -- MAY EXCEED I/
,O DEVICE)
 E.FS14   ERROR  FS,*,(UNKNOWN FORMAT CODE FILL. -- SCAN RESUMES AT NEXT
, SEPARATOR)
 E.FS18   ERROR  FS,*,(CHARACTER FILL. FOUND AFTER TERMINAL RIGHT PAREN)
 E.FS18A  ERROR  F,*,(TERMINAL RIGHT PAREN MISSING) 
 E.FS23   ERROR  F,*,(FORMAT LABEL PREVIOUSLY REFERENCED AS DO STATEMENT
, LABEL)
 E.FS24   ERROR  F,*,(FORMAT LABEL PREVIOUSLY REFERENCED AS CONTROL STAT
,EMENT LABEL) 
 E.FS26   ERROR  F,*,(MULTIPLE DEFINITION OF CURRENT FORMAT NUMBER) 
 GOTO     EJECT  4,8
**        GO TO   STATEMENT.
  
  
 E.GO     ERROR  F,PSN,(SYNTAX ERROR IN GO TO STATEMENT)
 E.GO1    ERROR  F,PSN,(OBJECT OF GO TO MISSING)
 E.GO1A   ERROR  W,*,(OBJECT OF GO TO NOT INTEGER VARIABLE) 
 E.GO2    ERROR  N,CUS.RET,(NULL TRANSFER STATEMENT -- TRANSFER IGNORED)
 E.GO2A   ERROR  N,*,(IF RESULTS IN A TRANSFER TO THE NEXT LINE)
 E.GO3    ERROR  FS,PSN,(EXPECTED LEFT PAREN -- FOUND FILL.)
 E.GO4    ERROR  A,*,(COMMA BEFORE VARIABLE NAME IN COMPUTED GO TO IS RE
,QUIRED)
 E.GO5    ERROR  A,*,(COMMA AFTER VARIABLE NAME IN ASSIGNED GO TO IS REQ
,UIRED) 
 E.GO7    ERROR  W,*,(STATEMENT TRANSFERS TO ITSELF)
 E.GO8    ERROR  N,*,(STATEMENT CAN TRANSFER TO ITSELF) 
 E.GO9    ERROR  A,*,(COMPUTED GO TO INDEX MUST BE SIMPLE VARIABLE) 
 E.GO10   ERROR  F,*,(COMPUTED GO TO INDEX MUST NOT BE LOGICAL) 
 E.GO11   ERROR  A,*,(COMPUTED GO TO INDEX MUST BE INTEGER) 
 HOLLER   EJECT  4,8
**        CONVERSION OF HOLLERITH CONSTANTS.
  
  
 E.HC1    ERROR  F,*,(ZERO LENGTH SPECIFIED ON HOLLERITH CONSTANT)
 E.HC2    ERROR  F,*,(E.O.S. BEFORE END OF HOLLERITH COUNT) 
 E.HC3    ERROR  FS,*,(TERMINAL DELIMITER FILL. MISSING)
 E.HC4    ERROR  FS,*,(NO CHARACTERS FOUND IN FILL. DELIMITED HOLLERITH 
,STRING)
 E.HC5    ERROR  A,*,(NON- ANSI HOLLERITH FORM) 
 IF       EJECT  4,8
**        IF PROCESSOR. 
  
  
 E.IF     ERROR  F,PSN,(ILLEGAL IF STATEMENT -- OBJECT MISSING) 
 E.IF1    ERROR  A,*,(2 BRANCH IF IS NON- ANSI) 
 E.IF2    ERROR  A,*,(OBJECT OF IF IS ILLEGAL DO TERMINATOR)
 E.IF3    ERROR  FV,PSN,(ILLEGAL OBJECT OF IF -- TROUBLE STARTED AT FILL
,.) 
 E.IF4    ERROR  W,*,(IF RESULTS IN A SIMPLE TRANSFER)
 E.IF5    ERROR  W,*,(LAST IF RESULTS IN A NULL TRANSFER TO THIS STATEME
,NT)
 E.IF6    ERROR  F,PSN,(ILLEGAL OBJECT OF LOGICAL IF) 
 E.IF7    ERROR  F,*,(3 BRANCH IF NOT DEFINED FOR LOGICAL RESULTS)
 E.IF8    ERROR  A,*,(COMPLEX EXPRESSION IN AN IF STATEMENT)
 E.IF9    ERROR  F,IFS11,(ARITHMETIC IF HAS STATEMENT AS OBJECT)
 E.IF10   ERROR  F,PSN,(ONLY 1 LABEL IN IF STATEMENT) 
 E.IF11   ERROR  F,PSN,(LOGICAL IF MUST NOT BE OBJECT OF LOGICAL IF)
 E.IF12   ERROR  F,PSN,(TOO MANY LABELS IN LOGICAL IF)
 E.IF13   ERROR  F,PSN,(MISSING LABEL IN ARITHMETIC IF) 
 I/O      EJECT  4,8
**        I/O PROCESSOR.
  
  
 E.IO     ERROR  FS,PSN,(UNIT DESIGNATOR FILL. NOT SIMPLE INTEGER VARIAB
,LE OR CONSTANT)
 E.IO1    ERROR  F,PSN,(MISSING UNIT DESIGNATOR IN I/O STATEMENT) 
 E.IO2    ERROR  W,*,(EXTRANEOUS COMMA IGNORED) 
 E.IO3    ERROR  F,PSN,(UNIT DESIGNATOR EXCEEDS 2 DIGITS) 
 E.IO6    ERROR  WV,*,(EXTRA CHARACTERS FILL. AFTER FILE NAME IGNORED)
 E.IO62   ERROR  WS,*,(EXTRA CHARACTER FILL. AFTER FILE NAME IGNORED) 
 E.IO7    ERROR  F,PSN,(FORMAT DESIGNATOR MISSING)
 E.IO8    ERROR  F,*,(MISSING RIGHT PAREN AFTER UNIT IS ASSUMED)
 E.IO9    ERROR  WV,*,(ASSUMED COMMA AFTER UNIT OR FORMAT -- FOUND FILL.
,)
 E.IO11   ERROR  F,PSN,(PREMATURE E.O.S. IN I/O SUBSCRIPT)
 E.IO12   ERROR  F,PSN,(EXCESS LEFT PAREN IN I/O SUBSCRIPT) 
 E.IO13   ERROR  WV,LST,(TERMINAL CHARACTER FILL. CONVERTED TO RIGHT PAR
,EN)
 E.IO14   ERROR  F,PSN,(IMPLIED DO NOT TERMINATED)
 E.IO19   ERROR  WV,*,(FOUND FILL. AFTER FORMAT -- ASSUMED RIGHT PAREN) 
 E.IO20   ERROR  F,LST,(MISSING RIGHT PAREN AFTER FORMAT IS ASSUMED)
 E.IO21   ERROR  WV,*,(FILL. IS NOT A LEGAL KEYWORD)
 E.IO25   ERROR  F,LST,(UNFORMATED I/O NOT ALLOWED IN THIS STATEMENT) 
 E.IO26   ERROR  A,*,(ANSI REQUIRES AN I/O LIST)
 E.IO27   ERROR  F,PSN,(THIS STATEMENT REQUIRES AN I/O LIST)
 E.IO28   ERROR  A,*,(LIST DIRECTED I/O IS NON- ANSI) 
 E.IO29   ERROR  F,PSN,(ZERO IS AN ILLEGAL UNIT NUMBER) 
  
 E.IOB1   ERROR  F,BUFERR,(BUFFER DIRECTION INDICATOR MUST BE IN OR OUT)
 E.IOB2   ERROR  F,BUFERR,(BUFFER I/O PARITY INDICATOR MUST BE INTEGER C
,ONSTANT OR VARIABLE) 
 E.IOB3   ERROR  FV,BUFERR,(EXPECTED LEFT PAREN -- FOUND FILL.) 
 E.IOB4   ERROR  FV,BUFERR,(EXPECTED COMMA -- FOUND FILL.)
 E.IOB5   ERROR  FV,BUFERR,(EXPECTED RIGHT PAREN -- FOUND FILL.)
 E.IOB7   ERROR  F,BUFERR,(BUFFER I/O ADDRESS MUST BE VARIABLE) 
 E.IOB8   ERROR  F,BUFERR,(BUFFER I/O PARITY INDICATOR VALUE MUST BE ZER
,O OR 1)
 E.IOB9   ERROR  W,BLWA,(FWA AND LWA NOT IN SAME ARRAY , EQUIVALENCE CLA
,SS , OR COMMON BLOCK)
 E.IOB10  ERROR  F,BUFERR,(BUFFER I/O LWA MUST BE GREATER THAN OR EQUAL 
,TO FWA)
  
 E.IOD1   ERROR  F,PSN,(EXCESS LEFT PAREN IN I/O LIST)
 E.IOD2   ERROR  F,PSN,(SYNTAX ERROR IN I/O IMPLIED DO) 
 E.IOD3   ERROR  F,PSN,(EXCESS RIGHT PAREN IN I/O LIST) 
 E.IOD4   ERROR  FV,CPM,(EXPECTED COMMA -- FOUND FILL.) 
  
 E.IOL1   ERROR  F,*,(EXPRESSION IN INPUT LIST IS ILLEGAL)
 E.IOL2   ERROR  F,*,(CONSTANT IN INPUT LIST IS ILLEGAL)
 E.IOL3   ERROR  N,*,(IMPLIED LOOP IS REDUCED)
 E.IOL4   ERROR  F,*,(/ NOT ALLOWED IN FORMATTED I/O OR UNFORMATED INPUT
, LIST) 
 E.IOL5   ERROR  F,LST5,(ONLY LIST DIRECTED OUTPUT STATEMENTS MAY END WI
,TH A COMMA)
 IOFMT    SPACE  4,8
**        FORMAT REFERENCED IN I/O. 
  
  
 E.IOF    ERROR  AS,*,(FORMAT INDICATOR FILL. MUST BE ARRAY)
 E.IOF1   ERROR  F,*,(FORMAT INDICATOR MUST NOT BE EXPRESSION)
 E.ION    ERROR  W,LST5,(I/O LIST IGNORED WHEN USING NAMELIST)
 E.ION1   ERROR  A,*,(NAMELIST I/O IS NON- ANSI)
 XXCODE   SPACE  4,8
**        ENCODE / DECODE.
  
  
 E.IOS1   ERROR  FV,PSP,(EXPECTED LEFT PAREN BEFORE COUNT -- FOUND FILL.
,)
 E.IOS2   ERROR  FV,PSP,(EXPECTED COMMA AFTER  COUNT -- FOUND FILL.)
 E.IOS3   ERROR  FS,PSP,(FORMAT INDICATOR FILL. IS NAMELIST NAME) 
 E.IOS4   ERROR  FV,PSP,(EXPECTED COMMA AFTER FORMAT INDICATOR -- FOUND 
,FILL.) 
 E.IOS5   ERROR  FV,PSP,(EXPECTED RIGHT PAREN AFTER STRING ADDRESS -- FO
,UND FILL.) 
 E.IOS6   ERROR  F,PSP,(PREMATURE E.O.S. IN ENCODE OR DECODE) 
 E.IOS7   ERROR  F,PSP,(STRING ADDRESS MUST BE ARRAY ELEMENT OR SIMPLE V
,ARIABLE) 
 E.IOS9   ERROR  F,PSP,(ILLEGAL CHARACTER COUNT)
 E.IOS10  ERROR  FV,PSP,(ILLEGAL FORMAT INDICATOR FILL.)
 NAMLST   EJECT  4,8
**        NAMELIST PROCESSING.
  
  
 E.LN     ERROR  F,PSP,(SYNTAX ERROR IN NAMELIST) 
 E.LN1    ERROR  F,PSP,(MISSING SLASH ON GROUP NAME)
 E.LN2    ERROR  FV,PSP,(EXPECTED NAME -- FOUND FILL.)
 E.LN3    ERROR  FV,PSP,(GROUP NAME FILL. PREVIOUSLY DEFINED) 
 E.LN4    ERROR  F,PSP,(VARIABLE DIMENSION NOT PERMITTED IN NAMELIST) 
 PARENS   EJECT  4,8
**        PARENTHESIS MIS-MATCH.
*         FIRST 2 PROCESSED BY *TAB* WHEN TRANSLATING A STATEMENT 
*         NEXT 2 PROCESSED WHEN ENCOUNTERED BY PARSER.
  
  
 E.LP1    ERROR  F,*,(TOO FEW RIGHT PAREN)
 E.LP2    ERROR  F,*,(TOO FEW LEFT PAREN) 
 E.LP3    ERROR  FV,*,(TOO FEW RIGHT PAREN OR PREVIOUS SYNTAX ERROR -- S
,CAN STOPPED AT FILL.)
 E.LP4    ERROR  FV,*,(TOO FEW LEFT PAREN OR PREVIOUS SYNTAX ERROR -- SC
,AN STOPPED AT FILL.) 
 CPMLOOP  SPACE  4,30 
**        LEVEL PROCESSING
  
  
 E.LV1    ERROR  F,PSP,(INTEGER 1 , 2 OR 3 MUST FOLLOW LEVEL) 
 E.LV2    ERROR  F,PSP,(COMMA MUST FOLLOW LEVEL NUMBER) 
 E.LV3    ERROR  F,PSP,(MISSING VARIABLE OR ARRAY NAME IN LEVEL LIST) 
 E.LV4    ERROR  WS,LVL8,(MULTIPLY DEFINED LEVEL FOR NAME FILL. -- IGNOR
,ED)
 E.LV5    ERROR  F,PSP,(COMMA OR E.O.S. MUST FOLLOW LEVEL LIST NAME)
 E.LV6    ERROR  FS,*,(NAME FILL. IS LEVEL AND MUST BE COMMON OR DUMMY A
,RGUMENT) 
 E.LV7    ERROR  FS,*,(LEVEL CONFLICT IN COMMON BLOCK FILL.)
 E.LV8    ERROR  NS,*,(NOT EVERY NAME IN COMMON BLOCK FILL. IS IN A LEVE
,L STATEMENT) 
 E.LV9    ERROR  FS,*,(NAME FILL. IS IN LEVEL EQUIVALENCE GROUP AND MUST
, BE COMMON)
 E.LV10   ERROR  FS,*,(NAME FILL. IS IN EQUIV. GROUP THAT HAS LEVEL CONF
,LICT)
 E.LV11   ERROR  FS,*,(LEVEL 3 NAME FILL. MAY NOT OCCUR IN THIS STATEMEN
,T) 
          EJECT 
**        MASTER LOOP.
  
  
 E.FM     ERROR  F,CPM,(THIS IS NOT A FORTRAN STATEMENT)
 E.MA     ERROR  F,PSP,(STATEMENT FUNCTION DEFINITION MUST OCCUR BEFORE 
,FIRST EXECUTABLE)
 E.MB     ERROR  F,CPM2,(EXECUTABLE STATEMENT ILLEGAL IN BLOCK DATA SUBP
,ROGRAM)
 E.MCA    ERROR  F,AFSX,(ONLY "ANS.CONT" CONTINUATION CARDS ARE PERMITTE
,D) 
 E.MC1    ERROR  W,*,(INITIAL LINE IS CONTINUATION) 
 E.MLNL   ERROR  F,*,(A C/-LIST DIRECTIVE CANNOT BE FOLLOWED BY A CONTIN
,UATION LINE) 
  
 E.MD     SA1    "SB.KEY" 
          MX0    4*CHAR      PUT 1ST 4 CHARS OF KEY IN MESSAGE
          BX6    X0*X1
          SA6    FILL.
          ERROR  FS,PSP,(FILL. STATEMENT MISPLACED) 
 E.MDO    ERROR  F,*,(THIS STATEMENT MAY NOT BE A DO TERMINAL)
 E.ME     ERROR  P,END1B,(END LINE ABSENT)
 E.MH     ERROR  F,PSP,(HEADER CARD NOT FIRST STATEMENT -- IGNORED) 
 E.MI     ERROR  F,PSP,(IMPLICIT STATEMENT MUST OCCUR BEFORE DECLARATIVE
,S) 
 E.MIJ    ERROR  W,PSP,(MULTIPLE IMPLICIT STATEMENTS NOT PERMITTED -- IG
,NORED) 
 E.MN     ERROR  A,CKS65,(FILL. BLANK STATEMENTS WERE IGNORED)
 E.M$     ERROR  A,CKS67,(MULTIPLE STATEMENT PER CARD NOT PERMITTED)
 E.M$2    ERROR  P,END1C,(MULTIPLE STATEMENT IGNORED AFTER END) 
 E.M$3    ERROR  F,END93,(MULTIPLE STATEMENT IGNORED AFTER LOADER DIRECT
,IVE) 
 E.MK     ERROR  PS,CPM6,(MISSPELLED KEYWORD -- FILL. FILL.2 ASSUMED) 
 E.ML     ERROR  W,*,(NULL STATEMENT WITH LABEL -- CONTINUE ASSUMED)
  
 E.MO1    ERROR  F,CKS,(PROGRAM LENGTH EXCEEDS 2**17-1) 
 E.MO2    ERROR  F,*,(TABLE OVERFLOW -- INCREASE FIELD LENGTH AND RERUN)
          IFNE   .CMLOD,,1
 E.MO3    ERROR  P,*,(NO COMPILE TO CORE -- NOT ENOUGH CORE)
 TEST     IFNE   TEST 
 E.MO4    ERROR  P,*,(SCRATCH FILE SPILLS TO DISK)
 E.MO5    ERROR  P,*,(REFERENCE FILE SPILLS TO DISK)
 TEST     ENDIF 
  
 E.MR1    ERROR  F,PSP,(PREMATURE E.O.S. OR MISSING RIGHT PAREN)
 E.MR2    ERROR  WV,PSP,(PREMATURE E.O.S. OR EXTRA TRAILING SEPARATOR FI
,LL.) 
 E.MR3    ERROR  F,PSP,(PREMATURE E.O.S.) 
 E.MRA    ERROR  FS,*,(RETURNS PARAMETER FILL. NOT ALLOWED IN THIS STATE
,MENT)
 E.MS     ERROR  FS,*,(STATEMENT LABEL FILL. REFERENCED BUT NOT DEFINED)
 E.MT     ERROR  P,END93,(TRIVIAL PROGRAM UNIT IGNORED) 
  
 E.NLN    ERROR  W,*,(NO SEQUENCE NUMBER FOUND ON FOLLOWING STATEMENT --
, COMMENT ASSUMED)
  
 E.NP     ERROR  W,CUSX,(NO PATH TO THIS STATEMENT) 
 E.NP1    ERROR  W,PSN,(NO PATH TO THE ENTIRE RANGE OF DO)
  
 E.OV     ERROR  W,PSP,(NULL LOADER DIRECTIVE IS IGNORED) 
 E.OV1    ERROR  F,PSP,(LOADER DIRECTIVE MUST BEGIN WITH LEFT PAREN)
 .CMLOD   IFNE   .CMLOD 
 E.OV2    ERROR  P,*,(NO COMPILE TO CORE -- LOADER DIRECTIVE) 
 E.OV4    ERROR  P,*,(NO COMPILE TO CORE -- INTERMIXED COMPASS) 
 .CMLOD   ENDIF 
  
 E.OV3    ERROR  N,LCC66,(LOADER DIRECTIVE MUST BE CONTAINED ON 1 CARD) 
  
 E.PN1    ERROR  F,*,(SYNTAX ERROR IN PROGRAM UNIT NAME)
 E.PN3    ERROR  N,*,(MISSING PROGRAM STATEMENT -- PROGRAM START. ASSUME
,D) 
 ENTRY    EJECT  4,8
**        ENTRY PROCESSOR.
  
  
 E.PT     ERROR  WS,PSN,(NAME FILL. PREVIOUSLY DEFINED -- ENTRY STATEMEN
,T IGNORED) 
 E.PT2    ERROR  W,*,(ENTRY INSIDE DO LOOP IS IGNORED)
 E.PT3    ERROR  W,PSN,(MISSING NAME -- ENTRY STATEMENT IGNORED)
 E.PT1    ERROR  W,PSP,(ENTRY STATEMENT IGNORED IN MAIN PROGRAM)
 E.PT4    ERROR  W,PSN,(ILLEGAL NAME -- ENTRY STATEMENT IGNORED)
 SUBSPT   EJECT  4,8
**        SUBSCRIPT PROCESSOR.
  
  
 E.SB2    ERROR  NS,*,(MISSING SUBSCRIPTS ON FILL. ARE ASSIGNED VALUE OF
, ONE)
 E.SB3    ERROR  AS,*,(FORM OF SUBSCRIPT FILL.2 ON FILL. NOT DEFINED IN 
,ANSI)
 E.SB4    ERROR  NS,*,(SUBSCRIPT FILL.2 FOR FILL. NOT INTEGER -- TRUNCAT
,ED)
 E.SB6    ERROR  FS,*,(SUBSCRIPT FILL.2 ON FILL. MUST NOT BE LOGICAL) 
 E.SB7    ERROR  AS,*,(A TERM IN SUBSCRIPT FILL.2 ON FILL. IS NOT INTEGE
,R) 
 E.SB8    ERROR  FS,*,(TOO MANY SUBSCRIPTS ON FILL.)
 ST.LAB   EJECT  4,8
**        STATEMENT LABEL PROCESSOR.
  
  
 E.SN     ERROR  FS,*,(MULTIPLY DEFINED STATEMENT LABEL FILL.)
 E.SN1    ERROR  F,*,(PREVIOUS REFERENCE TO THIS DO LABEL IS ILLEGAL) 
 E.SN2    ERROR  FS,*,(DO LOOP FILL.2 PREVIOUSLY DEFINED -- ILLEGAL NEST
,ING) 
 E.SN3    ERROR  FS,*,(USAGE CONFLICT -- FILL.2 PREVIOUSLY DEFINED AS DO
, TERMINAL) 
 E.SN4    ERROR  FS,*,(USAGE CONFLICT -- FILL.2 PREVIOUSLY DEFINED AS FO
,RMAT)
 E.SN5    ERROR  FS,*,(ILLEGAL TRANSFER TO FILL.2 FORMAT) 
 E.SN6    ERROR  FS,*,(ILLEGAL REFERENCE TO STATEMENT LABEL FILL. AS A F
,ORMAT) 
 E.SN7    ERROR  FS,*,(PREVIOUS REFERENCE TO DO LABEL FILL.2 IS ILLEGAL)
 E.SN8    ERROR  FS,*,(PREVIOUS REFERENCE TO FORMAT LABEL FILL.2 IS ILLE
,GAL) 
 E.SN9    ERROR  FS,*,(ILLEGAL TRANSFER TO DO FILL.2 TERMINATOR)
 E.SN10   ERROR  FS,*,(ILLEGAL REFERENCE TO FORMAT STATEMENT LABEL FILL.
,2) 
 E.SN12   ERROR  FS,*,(PREVIOUS TRANSFER TO FILL. IS FROM OUTSIDE CURREN
,T DO)
 E.SN13   ERROR  FS,*,(USAGE CONFLICT -- FILL. PREVIOUSLY USED AS A FORM
,AT LABEL)
 E.SN14   ERROR  FS,*,(STATEMENT LABEL FILL. EXCEEDS 5 DIGITS)
 E.SN15   ERROR  FS,*,(STATEMENT LABEL FILL. CONTAINS NON- DIGIT) 
 E.SN16   ERROR  W,*,(STATEMENT LABEL IGNORED)
 E.SN17   ERROR  FS,*,(THE TERMINAL STATEMENT OF DO FILL.2 PRECEEDED THE
, DO DEFINITION)
 E.SN18   ERROR  F,PSN,(STATEMENT LABEL EXPECTED BUT NOT FOUND) 
 E.SN19   ERROR  F,*,(STATEMENT LABEL ZERO IS ILLEGAL)
 E.SN20   ERROR  N,*,(STATEMENT LABEL ZERO IGNORED) 
 STNTBL   SPACE  4,8
*         STNTBL STATEMENT DECISION TABLE MACRO.
*         FORMS JUMP ADDRESSES. 
  
  
 STNTBL   MACRO  DOT,FMT,LAB
.1        ECHO   ,P1=(DOT,FMT,LAB)
 A        MICRO  1,1, P1
 .2       IFC    EQ,*OK*P1* 
          VFD    16/ISN60 
 .2       ELSE
 .3       IFC    EQ,*E*"A"* 
          VFD    1/1,15/P1
 .3       ELSE
          VFD    16/P1
 .3       ENDIF 
 .2       ENDIF 
.1        ENDD
          VFD    *P/0 
 STNTBL   ENDM
 STNTD    SPACE  4,12 
*         STNTD  STATEMENT DECISION TABLE FOR LABEL DEFINED.
  
          STNTBL DLAB,E.SN3,E.SN2      DO-TERMINATOR
          STNTBL E.SN5,OK,E.SN4        FORMAT 
 STNTD    STNTBL LABL,E.SN6,E.SN17     LABEL
 STNTND   SPACE  4,12 
*         STNTND  STATEMENT DECISION TABLE FOR LABEL NOT-DEFINED. 
  
          STNTBL OK,E.SN6,DODO         DO-TERMINATOR
          STNTBL E.SN8,OK,E.SN7        FORMAT 
 STNTND   STNTBL OK,E.SN10,LBDO 
          POPMAC STNTBL 
 SUBREF   EJECT  4,8
**        SUBROUTINE/FUNCTION REFERENCE PROCESSING. 
  
  
 E.SU2    ERROR  WS,*,(NUMBER OF ARGUMENTS IN REFERENCE TO FILL. IS NOT 
,CONSISTENT)
 E.SU3    ERROR  FS,*,(ARGUMENT MODE MUST AGREE WITH TYPE DEFINED FOR LI
,BRARY FUNCTION FILL.)
 E.SU4    ERROR  AS,*,(FILL. IS DEFINED TO BE INTRINSIC)
 E.SU4A   ERROR  AS,*,(FILL. IS DEFINED TO BE A BASIC EXTERNAL FUNCTION)
 E.SU6    ERROR  FS,*,(EXTERNAL ARGUMENT FILL. MUST BE DEFINED AS EXTERN
,AL)
 E.SU8    ERROR  FS,*,(ARGUMENT COUNT ON FILL. EXCEEDS "MAX.SARG")
 E.SU9    ERROR  FS,*,(ARGUMENT COUNT ON FILL.3 MUST BE MORE THAN ONE)
 E.SU10   ERROR  FS,*,(ARGUMENT COUNT NOT EQUAL TO THAT DEFINED FOR INTR
,INSIC FILL.3)
 E.SU11   ERROR  F,*,(FUNCTION NAME IS NOT ASSIGNED A VALUE)
 E.SU12   ERROR  FV,*,(FILL. IS NOT A LEGAL TYPE) 
          SPACE  4,5
**        STOP / PAUSE PROCESSING 
  
  
 E.SPR    ERROR  W,*,(UNKNOWN FORM -- BLANK ASSUMED)
 E.SPR1   ERROR  N,*,(HOLLERITH ARGUMENT MUST NOT EXCEED 70 CHARACTERS) 
 E.SPR2   ERROR  N,*,(CONSTANT EXCEEDS 5 DIGITS -- TRUNCATED) 
 E.SPR3   ERROR  A,PSN,(PAUSE MAY NOT BE A DO TERMINAL) 
 E.SPR4   ERROR  A,*,(HOLLERITH ARGUMENT IS NON- ANSI)
 E.SPR5   ERROR  A,*,(OCTAL DIGITS REQUIRED)
 PROFIL   EJECT  4,8
**        PROGRAM STATEMENT FILE DECLARATION. 
  
  
 E.TC1    ERROR  WS,*,(FILE FILL. PREVIOUSLY DEFINED -- IGNORED)
 E.TC2    ERROR  FV,PSP,(EXPECTED RIGHT PAREN OR COMMA -- FOUND FILL.)
 E.TC3    ERROR  WS,PPA4,(ILLEGAL BUFFER LENGTH FOR FILE FILL. -- 2003B 
,USED)
 E.TC4    ERROR  WS,PPA355,(BUFFER LENGTH FOR FILE FILL. EXCEEDS 360000B
, -- 360000B USED)
 E.TC5    ERROR  W,*,(ONLY "MAX.PARG" FILES ARE PERMITTED -- EXCESS IGNO
,RED) 
 E.TC6    ERROR  WS,PPA4,(FILE FILL.2 NOT DEFINED -- EQUIVALENCE IGNORED
,)
 E.TC7    ERROR  F,PSP,(EQUAL SIGN MUST BE FOLLOWED BY NAME , NUMBER OR 
,SLASH) 
 E.TC9    ERROR  WS,PPA4,(ILLEGAL RECORD LENGTH FOR FILE FILL. -- DEFAUL
,T USED)
 E.TC10   ERROR  WS,PPA4,(RECORD LENGTH FOR FILE FILL. EXCEEDS 2**17-1 -
,- DEFAULT USED)
 E.TC11   ERROR  FV,*,(SYNTAX ERROR IN PROGRAM CARD -- SCAN STOPPED AT F
,ILL.)
 TRANS    EJECT  4,8
**        TRANSLATION OF VARIABLE SECTION.
  
  
 E.TE1    ERROR  FS,*,(REFERENCE TO VARIABLE FILL. AS A FUNCTION OR ARRA
,Y) 
 E.TE2    ERROR  FS,*,(REFERENCE TO FUNCTION FILL. REQUIRES AN ARGUMENT 
,LIST)
 E.TE2B   ERROR  FS,*,(REFERENCE TO B.E.F. FILL. REQUIRES AN ARGUMENT LI
,ST)
 E.TE2A   ERROR  FS,*,(REFERENCE TO INTRINSIC FILL. REQUIRES AN ARGUMENT
, LIST) 
 E.TE3    ERROR  FS,*,(SUBROUTINE FILL. REFERENCE AS A FUNCTION)
 E.TE4    ERROR  AS,*,(ARRAY FILL. MISSING SUBSCRIPT -- FIRST ELEMENT AS
,SUMED) 
 E.TE5    ERROR  FS,PSN,(EXPECTED SYMBOL BUT FOUND FILL. -- SCAN OF CARD
, STOPPED)
 E.TE7    ERROR  PS,*,(NAME EXCEEDS 7 CHARACTERS -- TRUNCATED TO FILL.) 
 E.TE8    ERROR  F,*,(LEFT SIDE OF EQUAL SIGN IS ILLEGAL) 
 TYPE     EJECT  4,8
**        TYPE PROCESSOR. 
  
  
 E.TT     ERROR  WS,*,(TYPING OF FILL. IGNORED -- PRIOR TYPING RETAINED)
 E.TY     ERROR  FS,PSP,(EXPECTED COMMA FOUND FILL.)
 E.TY1    ERROR  W,*,(CONFLICT IN RANGE INDICATOR -- FIRST RETAINED)
 E.TYA    ERROR  A,*,(THE WORD TYPE IS NOT PERMITTED) 
 E.TYH    ERROR  F,PSP,(TYPE MUST BE FOLLOWED BY A TYPE INDICATOR)
 E.TYIK   ERROR  FV,IMP.ER,(FILL. IS NOT A LEGAL TYPE)
 E.TYI1   ERROR  FV,IMP.ER,(EXPECTED LEFT PAREN -- FOUND FILL.) 
 E.TYI2   ERROR  FS,IMP.ER,(RANGE INDICATOR FILL. MUST BE A LETTER) 
 E.TYI3   ERROR  WS,*,(RANGE INDICATOR FILL. NOT 1 LETTER -- TRUNCATED T
,O FILL.3)
 E.TYI4   ERROR  FS,*,(ILLEGAL RANGE -- FILL.2 NOT LESS THAN FILL. -- TR
,UNCATED) 
 E.TYI5   ERROR  WS,*,(TRIVIAL RANGE -- FILL.2 SAME AS FILL.) 
 E.TYI6   ERROR  FV,IMP.ER,(EXPECTED RIGHT PAREN -- FOUND FILL.)
 E.TYI7   ERROR  FV,IMP.ER,(EXPECTED E.O.S. -- FOUND AND IGNORED FILL.) 
 IOUNIT   SPACE  4,15 
**        I/O UNIT DESIGNATOR.
  
  
 E.UE     ERROR  F,PSN,(I/O UNIT DESIGNATOR MUST BE INTEGER)
 E.UE1    ERROR  F,PSN,(I/O UNIT DESIGNATOR MUST BE SIMPLE VARIABLE)
 E.UE2    ERROR  WS,*,(I/O FILE FILL. NOT DEFINED)
  
 E.US1    ERROR  FS,PSN,(CHARACTER FILL. NOT DEFINED IN STANDARD FORTRAN
, -- CARD SCAN STOPPED) 
  
 E.VA1    ERROR  FS,*,(USAGE CONFLICT -- FILL. PREVIOUSLY USED AS FILL.2
,)
 E.VA2    ERROR  A,*,(SHORT FORMS OF LOGICAL OPERATORS OR CONSTANTS NOT 
,ALLOWED) 
 E.VA3    ERROR  FS,PSP,(ILLEGAL USE OF ENTRY FILL.)
 E.VD     ERROR  FS,*,(USAGE CONFLICT -- FILL. IS FILL.2 AND CANNOT BE F
,ILL.3) 
  
 E.XC     ERROR  WV,*,(EXPECTED E.O.S. -- FOUND AND IGNORED FILL.)
 E.XC1    ERROR  WV,PSP,(EXPECTED E.O.S. -- FOUND AND IGNORED FILL.)
 EXP      EJECT 
**        EXP PROCESSOR 
  
  
 E.XP1    ERROR  F,*,(OPERAND TO ** OPERATOR MUST NOT BE LOGICAL) 
 E.XP2    ERROR  F,*,(COMPLEX MUST ONLY BE RAISED TO INTEGER POWER) 
 E.XP3    ERROR  N,*,(ZERO ** ZERO -- RESULTS INDEFINITE) 
 E.XP4    ERROR  N,*,(INTEGER ** NEGATIVE CONSTANT -- RESULTS ZERO) 
 E.XP5    ERROR  W,*,(RESULT OF CONSTANT EVALUATION WILL BE OUT OF RANGE
, OR INDEFINITE)
 SYSTEM   EJECT 
**        *SYSTEM* ERROR  --  COMPILER MALFUNCTION
  
 E.ZA     ERROR  K,PSP.Z,( ** ** COMPILE ERROR ** ** )
  
*** END 
          PURGMAC ERROR      NEEDED NO LONGER 
 ERRTYP   SPACE  4,20 
**        ERRTYP - TABLE OF ERROR FLAG WORDS. 
  
 ERRTYP   BSS    0           TABLE OF ERROR FLAG WORDS
          LOC    0
****
 ANSI     ERRTYP X,(ANSI) 
 CONTINUE ERRTYP 1,( )
 FATAL    ERRTYP F,(FATAL)
 KILL     ERRTYP F,(COMPILE)
 NOTE     ERRTYP N,(NOTE) 
 PRINT    ERRTYP F,(-----)
 WARN     ERRTYP W,(WARNING)
****
 N.ERRT   BSS    0           NUMBER OF ERROR TYPES
          LOC    *O 
 ERRTYP   HERE
 E=TOTAL  DATA   0           COUNT OF ALL ERRORS IN STATEMENT 
          PURGMAC ERRTYP
 ANSI     EJECT 
**        ANSI - CHECK ANSI-LISTING FLAG. 
*         ENTRY  (B7) _ ERROR ADDRESS.
*         USES   SAME AS *PWE*. 
*         CALLS  PWE. 
  
  
 ANSI8    RJ     PWE         PRINT WARNING ERROR
  
 ANSI=    SUBR   0
 ANSI.SW  EQ     ANSIX       FLIP-FLOP FOR *EL=A* OPTION
 -        EQ     ANSI8       IF ON
 LLN      SPACE  4,8         LLN
**        LLN -  LIST LONG ERRORS.
* 
*         LLN    IF NORMAL ERROR. 
*         LLNS   IF DIAGNOSTIC PRESETS *FILL.N*.
*         LLNV   IF NEEDS FILLER FROM *SB*. 
* 
*         ENTRY  (B7) _ FWA OF MESSAGE TO BE PRINTED. 
*                IF ENTERED THRU *LLNV*, (B4) _ START OF FILLER.
*                UP TO 10 CHARACTERS WILL BE PUT INTO "FILL.".
*                IF ENTERED THRU *LLNS*, *FILL.N* WORDS WILL BE 
*                FORMATTED FOR ERROR. 
*         EXIT   FWA OF MESSAGE (B7) POINTS TO EXIT ADDRESS 
*                A0,A7  B4  PRESERVED.
*         CALLS  WOF
  
  
**        HERE IF DIAGNOSTIC _S TYPE. 
*         *FILL.N* WORDS WILL BE CONVERTED TO PROPER FORM FOR ERROR 
*                SKELETON.
  
 LLNS     MX5    L.SYM
          SB3    L.FILL 
          MX0    -CHAR
 LLNS1    SA1    B3+FILL.-1 
          BX3    X5*X1
          SX4    B0 
          BX2    -X0*X1 
          LX6    X1 
          NZ     X2,LLNS5    IF WORD ALREADY PACKED.
          SX2    65B         FIRST CHARACTER FOR FILL.
          NO
          IX6    X2+X3
          SX4    DT.BIAS+11 
          LX6    60-CHAR
          ZR     X1,LLNS4    IF EMPTY WORD
 LLNS3    BX2    -X0*X1 
          AX1    CHAR 
          NZ     X2,LLNS5    IF END 
          SX4    X4-1        UPDATE BIAS
          EQ     LLNS3       LOOP 
  
 LLNS4    SX6    1R 
          SX4    DT.BIAS+1
          LX6    -CHAR
*         EQ     LLNS5
  
*         PUT BIASED WORD BACK INTO FILL. REGION
  
 LLNS5    BX6    X4+X6
          SB3    B3-B1
          SA6    A1          RESET FILL.
          NZ     B3,LLNS1    IF NOT END OF *FILL.S* 
          EQ     LLN         CONTINUE.. 
  
  
**        HERE IF DIAGNOSTIC _V TYPE. 
*         NEXT 10 CHARACTERS FROM *SB*, STARTING AT B4 WILL BE
*         ASSEMBLED INTO *FILL.*
* 
*         NOTE -
*                WORKS ONLY ON A NORMALIZED *SB*. 
  
 LLNV     =A2    B4-1 
          SA3    B4 
          SB6    9*CHAR 
          MX0    -CHAR
          SB2    DT.BIAS+1
          SB3    X3 
          SX6    65B         FIRST CHARACTER FOR FILL. = _. 
          ZR     X3,LLNV03   IF *SB* IS AT *EOS*
  
 LLNV1    SA2    A2+B1
          SB3    X2 
          ZR     X2,LLNV20   IF *EOS* 
 LLNV03   SA1    B3+CHARMAP 
          NZ     X1,LLNV05   IF NOT *SYMBOL*
          BX1    X0*X2       USE *SB* CHARACTERS. 
          EQ     LLNV10 
  
 LLNV05   SA3    =4LNSTD
          BX3    X3-X1
          AX3    18 
          NZ     X3,LLNV10   IF NOT SPECIAL LEFT PAREN
          SX1    1R(         USE PAREN FOR ERROR MESSAGE
          LX1    54 
  
 LLNV10   LX1    CHAR 
          BX2    -X0*X1 
          ZR     X2,LLNV1    IF END OF PRESENT SYMBOL 
          LX6    CHAR 
          BX6    X2+X6
          SB6    B6-CHAR
          SB2    B2+B1
          NZ     B6,LLNV10   CONTINUE 
          BX0    0           INDICATE FULL WORD 
  
 LLNV20   ZR     B6,LLNV30   IF FULL WORD 
          LX6    B6,X6       ADJUST TO 0L 
          SX0    B2          BIAS ADD-IN. 
  
 LLNV30   IX6    X0+X6
          SA6    FILL.       SET FILLER.
  
  
**        HERE TO PROCESS ALL DIAGNOSTICS.
  
 LLN      SA1    B7          ENTRY - LIST LONG LINE ERROR MESSAGES
          SX6    B7 
          SA6    LLNA        SAVE ERROR WORD ADDRESS. 
          LX1    -P.ERTYPE
          =A6    A6+1 
          MX0    -L.ERTYPE
          BX4    -X0*X1      ISOLATE ERROR TYPE ORDINAL 
          SA3    X4+ERRTYP
          MX0    4*CHAR 
          BX7    X0*X3       SHORT FORM BANNER FOR PW MODE
          SA2    X3          FETCH *LOP* SWITCH 
          AX3    18 
          SA1    X3          FETCH TYPE BANNER WORD 
          BX6    X2 
          SA5    A3+N.ERRT
          SA6    LOP=1       RE-SET CONTINUATION ERROR SELECTOR 
          =X6    X5+1 
          SA6    A5          COUNT UP THIS TYPE 
          SA4    =XCP.PW
          PL     X2,LLN72    IF THIS TYPE NOT SELECTED
          NZ     X4,LLN20    IF PW MODE 
          BX6    X1 
          SA1    =1H* 
          SA6    =XLINEBUF
          BX6    X1 
          SA6    A6+B1
          MX6    0
          SA6    A6+B1       POINT TO 1ST WORD FOR ERROR MESSAGE
          SB3    B0          SET TO NO CHARACTERS USED IN WORD
          EQ     LLN25       PROCESS ERROR LINE 
  
 LLN20    SX3    1R 
          BX6    X7+X3
          LX6    -CHAR
          SA6    =XLINEBUF
          SB3    5*CHAR      SET TO 5 CHAR USED IN WORD 
  
*         OUTPUT THE ERROR LINE 
  
 LLN25    SA1    B7          RELOAD FIRST POINTER WORD
          SX7    N.ER1ST
          SB6    10*CHAR
          LX0    X1 
  
 LLN30    MX4    L.ERWORD 
          SB2    B0 
          BX3    X4*X0       LOAD NEXT POINTER WORD BYTE
          ZR     X3,LLN65    IF ZERO BYTE POINTER 
          LX3    L.ERWORD 
          SA1    X3+DICT-1
          MX3    -CHAR
          BX4    -X3*X1 
          SX4    X4-DT.BIAS  GET CHARACTER COUNT
          PL     X4,LLN35    IF LESS THAN 10 CHARACTERS 
          SX3    X4+DT.BIAS 
          ZR     X3,LLN33    IF GREATER THAN 10 CHARACTERS
          SX4    10 
          EQ     LLN35       EXACTLY 10 CHARACTERS
  
 LLN33    SB2    B1          FLAG CONTINUED WORD
          SX4    9
 LLN35    BX3    X4 
          LX4    2           MULT BY 4
          LX3    1           MULT BY 2
          IX6    X3+X4       NUMBER OF BITS IN DATA 
          SA5    A6 
  
*         PROCESS DATA WORD INTO OUTPUT BUFFER
  
          SB5    B6-B3
          SB7    X6 
          LT     B5,B7,LLN45       IF SPLIT NECESSARY 
  
*         PROCESS DATA WORD ( NO SPLIT NECESSARY )
  
 LLN40    MX4    1
          SB7    B7-B1
          AX6    X4,B7       BUILD MASK FOR DATA WORD 
          BX3    X6*X1       GET DATA WORD ONLY 
          LX5    X5,B3
          SB7    B3+B7
          BX4    -X6*X5      MASK IN PAST PARCEL
          SB3    B7+B1
          BX3    X4+X3       ADD PAST AND PRESENT TOGETHER
          LX6    X3,B5
          ZR     B2,LLN50    ADD BLANK IF END OF WORD 
          SA6    A5 
          EQ     LLN60       CONTINUE.. 
  
*         PROCESS SPLIT WORD
  
 LLN45    MX4    1
          SB3    B3-B1
          LX1    X1,B5
          SB7    B7-B5
          SB5    B6 
          AX3    X4,B3
          BX6    -X3*X1 
          SB3    B0 
          BX3    X3*X5
          SA5    A5+B1
          BX6    X3+X6
          SA6    A6 
          BX5    0           PRESET FOR PROCESSING REMAINDER
          EQ     LLN40       PROCESS REMAINDER
  
*         ADD IN SPACE BETWEEN WORDS
  
 LLN50    SX5    1R 
          SB5    9*CHAR 
          LX5    9*CHAR 
          LE     B3,B5,LLN55       IF ENOUGH ROOM FOR SPACE 
          SA6    A5 
          BX6    X5 
          SB3    CHAR        SET NUMBER OF BITS IN OUTPUT WORD
          SA6    A6+B1       STORE IN OUTPUT BUFFER 
          EQ     LLN60       CONTINUE.. 
  
 LLN55    SB5    B6-B3
          LX4    B5,X5       ADJUST 1R
          IX6    X6+X4
          SA6    A5 
          SB3    B3+CHAR     ADJUST BIT COUNT 
 LLN60    LX0    9
          SX7    X7-1 
          NZ     X7,LLN30    LOOP ON PRESENT POINTER WORD 
  
*         CHECK FOR CONTINUATION CARDS
  
          LX0    P.ERMORE 
          PL     X0,LLN65    IF NO CONTINUATION CARDS 
  
  
          SA3    LLNA+1 
          SX4    A7 
          =X7    X3+1 
          =A1    X3+1        LOAD NEXT POINTER WORD 
          SA7    A3 
          SA2    X4 
          BX7    X2          RESTORE (A7) 
          SA7    A2 
          SX7    N.ERREST    RESET NUMBER OF BYTES PER WORD 
          BX0    X1 
          EQ     LLN30       PROCESS NTH CARD 
  
*         END OF THIS MESSAGE, PRINT IT.
  
 LLN65    SA1    T.DLBUF
          BX6    0
          SA6    A6+B1       END OF LINE INDICATOR
          SA5    A6          SAVE LWA OF DIAGNOSTIC 
          SX5    A7          SAVE (A7)
          SX6    B4 
          SA6    SAVE+9      SAVE (B4)
  
*         LIST THE STATEMENT THAT WAS FOUND TO BE IN ERROR. 
  
          RJ     =XLDB       LIST DEFERRED BUFFER 
  
          SA4    SAVE+9 
          SB4    X4          RESTORE (B4) 
  
 LLN68    SB2    =XLINEBUF-1
          SX2    A5-B2
          SA4    =XCP.PW
          SX1    B2+B1       FWA OF DIAGNOSTIC
          ZR     X4,LLN71    IF NOT IN PW MODE
          SB3    X2-1 
          SB5    X4          PAGE WIDTH IN WORDS
          SB3    B3-B5
          LE     B3,LLN71    IF LENGTH LESS THAN PAGE WIDTH 
          SA2    X4+=XLINEBUF-1 
          BX3    X2 
          SB3    -1R
          MX0    9*CHAR 
          SB5    9*CHAR 
 LLN69    BX6    -X0*X3 
          SX4    X6+B3
          ZR     X4,LLN70    IF BLANK CHARACTER 
          LX3    B5,X2
          SB5    B5-CHAR
          GE     B5,LLN69    IF STILL MORE CHARACTERS IN WORD 
          SA2    A2-B1
          EQ     LLN69       TRY NEXT WORD BACK 
  
 LLN70    SB6    A5-B1       (B6) = LWA - 1 
          RJ     =XBLL       BREAK LONG LINE
 LLN71    PLINE  X1,X2
          SA5    X5 
          BX7    X5 
          SA7    A5          RESTORE *A7* 
  
*         EXIT. 
  
 LLN72    SA2    ERR=F
          SA4    BINOUT 
          BX6    X2*X4
          SA1    LLNA 
          SA6    A4          BINOUT=BINOUT*ERR=F
          MI     X2,LLN90    IF NO FATAL ERROR
          SA4    =XWINX      EXIT POINT FOR WIN 
          BX6    X4 
          SA6    =XWIN       BLOCK FURTHER PROCESSING 
 LLN90    BSS 
          SA2    X1 
          SB7    X2          SET *EXIT* ADDRESS.
          MI     B7,PWE1     IF *RJ* STYLE ERROR
          JP     B7          EXIT 
  
 LLNA     BSS    1           SAVE ERROR WORD ADDRESS
          CON    0
 OSE      SPACE  4,20 
**        OSE -  OUTPUT SUBSCRIPT ERROR.
* 
*         NOTE   ALL ERRORS USING THIS ROUTINE MUST USE --
*                            FILL.  AS ARRAY NAME.
*                            FILL.2 AS SUBSCRIPT NUMBER.
*                ALL ERRORS MUST HAVE EXIT ADDRESS AS = * 
* 
*                THIS ROUTINE IS TO BE CONSIDERED AS PART OF *PWE*
* 
*         ENTRY  (B7) = ADDRESS OF ERROR. 
*                (X4) = 42/IGNORED , 18/SUBSCRIPT NUMBER
* 
*         EXIT   ERROR OUTPUTTED. 
* 
*         USES   A1,A6,A7  X0,X1,X7  B7 
  
  
 OSE      SUBR   0
          SX7    B7 
          SA1    OSEX 
          SB7    OSEA        SET EXIT ADDRESS FOR CURRENT ENTRY TO PWE
          BX6    X1 
          =A7    B7+1        SAVE ERROR 
          SA6    PWE         SET RETURN ADDRESS 
          SX6    X4 
          =A6    A7+1        SAVE SUBSCRIPT NUMBER
          EQ     PWE+1       ENTER REG SAVE ROUTINE 
  
*         RETURN AFTER SAVING REGISTERS 
  
 OSE1     SA2    DIMSYM 
          SA1    OSEB+1      SUBSCRIPT NUMBER 
          AX2    P.SATAG
          MX7    L.SYM
          SB2    X2-C.SYM-1  ORDINAL OF SYMBOL. 
          SA3    TS.SYM 
          SA4    X3+B2       ARRAY NAME 
          MX0    -3 
          BX6    X7*X4       SYMBOL ONLY
          SB7    10*CHAR
          SA6    FILL.
          BX2    0
          SB2    1R0
  
**        CONVERT SUBSCRIPT NUMBER TO *DPC*.
*         (X0) = MASK OF 3. 
*         (X1) = SUBSCRIPT NUMBER IN LOWER 18 BITS. 
  
 OSE5     BX6    -X0*X1      EXTRACT DIGIT
          SB7    B7-CHAR
          SX6    X6+B2       CONVERT TO *DPC* 
          AX1    3           DOWN ONE DIGIT 
          BX2    X2+X6       ACCUMULATE 
          NZ     X1,OSE5     IF NOT FINISHED. 
          LX6    X2,B7       LEFT JUSTIFY 
          SA1    OSEB 
          SA6    FILL.2      NUMBER TO ERROR
  
**        OUTPUT SELECTED ERROR.
  
          SB7    X1 
          EQ     LLNS        OUTPUT SELECTED ERROR
  
 OSEA     CON    OSE1+1S17   EXIT ADDRESS FOR SAVE
 OSEB     DATA   0,0         ERROR ADDRESS
 PWE      SPACE  4,8
**        PWE -  PRINT *WARNING* ERRORS.(ALSO SAVES DEFINED REGISTERS)
*         ENTRY  (B7) _ ERROR MESSAGE ADDRESS.
*                     ( IN GENERAL POINTS TO EXIT ADDRESS AFTER SAVE.)
*         EXIT   REGISTERS RESTORED.
*         DOES NOT SAVE.
*                            A1, A0, A6, A7, X0, X1, B7 
  
  
 PWE      SUBR   0
          SA6    SAVE        SAVE X6
          MX0    -18
.1        ECHO   ,I=(5,4,3,2) 
          BX6    X_I
          SX_I   B_I
          SA6    A6+B1
.1        ENDD
          BX5    -X0*X5 
          SX6    B6 
          BX4    -X0*X4 
          LX5    18 
          BX6    -X0*X6 
          LX4    2*18 
          IX6    X5+X6
          BX3    -X0*X3 
          SX5    A5 
          IX6    X4+X6
          BX2    -X0*X2 
          LX5    2*18 
          SA6    A6+B1       SAVE+5 = B4,B5,B6
          SX4    A4 
          LX2    18 
          BX5    X3+X5
          SX6    A2 
          SX3    A3 
          LX4    2*18 
          LX3    18 
          BX6    X4+X6
          BX6    X3+X6
          SA6    A6+B1       SAVE+6 = A4,A3,A2
          IX6    X5+X2
          SA6    A6+B1       SAVE+7 = A5,B2,B3
          BX6    X7 
          SA6    A6+B1       SAVE+8 = X7
          SA2    B7 
          SB2    X2 
          JP     B2-4S15     EXIT.. (TO PROPER ERROR FORMATTER) 
  
 PWE1     SA4    SAVE+6 
          SA1    A4-B1
          SA5    A4+B1
          SA2    X4          RESTORE A2 
          SB6    X1          RESTORE B6 
          AX4    18 
          SB3    X5          RESTORE B3 
          AX1    18 
          SA3    X4          RESTORE A3 
          AX5    18 
          SB5    X1          RESTORE B5 
          AX4    18 
          SB2    X5          RESTORE B2 
          AX1    18 
          SA4    X4          RESTORE A4 
          AX5    18 
          SB4    X1          RESTORE B4 
          SA1    A1-B1
          SA5    X5          RESTORE A5 
          ECHO   2,I=(2,3,4,5)
          BX.I   X1 
          SA1    A1-B1
          BX6    X1 
          SA1    SAVE+8 
          BX7    X1          RESTORE X7 
          EQ     PWEX        EXIT.. 
  
 UEC      SPACE  4,8
**        UEC -  UPDATE ERROR COUNT.
* 
*         JUST TO KEEP THINGS STRAIGHT, THIS ROUTINE SHOULD BE CALLED 
*         WHENEVER IT BECOMES NECESSARY TO ISOLATE THE ERRORS OCCURING
*         IN A STATEMENT. 
* 
*         ENTRY  (ERRORS) = COUNT OF (*FATAL) ERRORS IN PROGRAM-UNIT. 
*                (ERR=F)  = COUNT OF (*FATAL) ERRORS IN STATEMENT.
*         EXIT   (ERRORS) UPDATED.
*                (ERR=F)  RESET.
* 
*         USES   A1,A2,A6,A7  X1,X2,X6,X7 
  
  
 UEC      SUBR               ENTRY/EXIT...
          SA1    ERRORS 
          SA2    ERR=F
          BX7    -0 
          IX6    X1+X2       UPDATE PROGRAM-UNIT ERROR COUNT
          SA7    A2 
          SA6    A1 
          SA7    E=TOTAL
          EQ     EXIT.
  
          LIST   D
          END 
