         PROC  &P,0,&FERROPT=,                                         X00000010
               &FPROG=,                                                X00000020
               &FREAD=,                                                X00000030
               &FDATA=,                                                X00000040
               &FARITH=,                                               X00000050
               &FARG=,                                                 X00000060
               &FALIGN=,                                               X00000070
               &FUNDFLO=,                                              X00000080
               &REG=                                                    00000090
ERRDEF   NAME  1                                                        00000100
         GBL   &PARAM1,&PARAM2                                          00000110
         LCL   &FPROG1,&FPROG2,&FREAD1,&FREAD2,&FDATA1,&FDATA2          00000120
         LCL   &FARITH1,&FARITH2,&FARG1,&FARG2,&FALIGN1,&FALIGN2,&FFMT1X00000130
               ,&FFMT2                                                  00000140
         LCL   &ERROPT1,&ERROPT2,&ERROPT3                               00000150
         LCL   &UNDFLOW                                                 00000160
         LCL   &INDX,&ERR                                               00000170
.* O                                                                    00000180
.*   THIS PROG GENERATES THE FORTRAN ERROR CONTROL TABLE.               00000190
.*   IT PERFORMS THE FOLLOWING FUNCTIONS:                               00000200
.*             1. IF KEYWORD 'REG' IS SPECIFIED, A DSECT OF FL$ERRCT    00000210
.*                COVERED BY THE BASE REGISTER SPECIFIED BY 'REG'       00000220
.*                IS GENERATED                                          00000230
.*                IF 'REG' IS NOT SPECIFIED, A CSECT IS GENERATED.      00000240
.*             2. VALIDATES ALL KEYWORD PARAMETERS AND GENERATES        00000250
.*                PNOTES FOR INVALID SPECIFICATIONS. (IT USES THE       00000260
.*                'CTCHK' PROC TO VALIDATE COUNTS.)                     00000270
.*             3. SUPPLIES DEFAULT VALUES FOR UNSPECIFIED AND           00000280
.*                INVALID PARAMETERS                                    00000290
.*             4. GENERATES ERROR CONTROL FLAGS AND ERROR COUNTS        00000300
.*                AND ERROR MESSAGE COUNTS FOR ALL ERROR CLASSES.       00000310
.* O                                                                    00000320
&ERROPT1 SET   '0'                      SET FERROPT DEFAULT DUMMY VALUE 00000330
&UNDFLOW SET   '0'                      SET FUNDFLO TO DUMMY VALUE      00000340
         DO    '&REG'=''=0              DSECT TO BE GENERATED ?         00000350
*********************************************************************** 00000360
*    FORTRAN I/O ERROR CONTROL TABLE DSECT                              00000370
*********************************************************************** 00000380
ERRTABDS DSECT                                                          00000390
         USING ERRTABDS,&REG                                            00000400
         EXTRN FL$ERRCT                                                 00000410
.*   SET ALL COUNTS TO ZERO                                             00000420
&FPROG1  SET   0                                                        00000430
&FPROG2  SET   0                                                        00000440
&FREAD1  SET   0                                                        00000450
&FREAD2  SET   0                                                        00000460
&FDATA1  SET   0                                                        00000470
&FDATA2  SET   0                                                        00000480
&FARITH1 SET   0                                                        00000490
&FARITH2 SET   0                                                        00000500
&FARG1   SET   0                                                        00000510
&FARG2   SET   0                                                        00000520
&FALIGN1 SET   0                                                        00000530
&FALIGN2 SET   0                                                        00000540
         GOTO  .ERRTAB3                                                 00000550
         ENDO                                                           00000560
.* O                                                                    00000570
.*   GENERATE ERRTAB CSECT                                              00000580
.* O                                                                    00000590
FL$ERRCT CSECT                                                          00000600
*********************************************************************** 00000610
*    FORTRAN I/O ERROR CONTROL TABLE                                    00000620
*********************************************************************** 00000630
.* O                                                                    00000640
.*   VALIDATE AND ESTABLISH ERROR COUNTS                                00000650
.* O                                                                    00000660
.*   KEYWORD FPROG                                                      00000670
         CTCHK CT=&FPROG,KEY=PROG,DEF=(1,1)                             00000680
&FPROG1  SET   &PARAM1                                                  00000690
&FPROG2  SET   &PARAM2                                                  00000700
.*   KEYWORD FREAD                                                      00000710
         CTCHK CT=&FREAD,KEY=READ,DEF=(ALL,10)                          00000720
&FREAD1  SET   &PARAM1                                                  00000730
&FREAD2  SET   &PARAM2                                                  00000740
.*   KEYWORD FDATA                                                      00000750
         CTCHK CT=&FDATA,KEY=DATA,DEF=(ALL,10)                          00000760
&FDATA1  SET   &PARAM1                                                  00000770
&FDATA2  SET   &PARAM2                                                  00000780
.*   KEYWORD FARITH                                                     00000790
         CTCHK CT=&FARITH,KEY=ARITH,DEF=(ALL,10)                        00000800
&FARITH1 SET   &PARAM1                                                  00000810
&FARITH2 SET   &PARAM2                                                  00000820
.*   KEYWORD FARG                                                       00000830
         CTCHK CT=&FARG,KEY=ARG,DEF=(ALL,10)                            00000840
&FARG1   SET   &PARAM1                                                  00000850
&FARG2   SET   &PARAM2                                                  00000860
.*   KEYWORD FALIGN                                                     00000870
         CTCHK CT=&FALIGN,KEY=ALIGN,DEF=(ALL,10)                        00000880
&FALIGN1 SET   &PARAM1                                                  00000890
&FALIGN2 SET   &PARAM2                                                  00000900
.* O                                                                    00000910
.*   KEYWORD FERROPT                                                    00000920
.* O                                                                    00000930
         DO    '&FERROPT'=''            FERROPT NULL ?                  00000940
         MNOTE   *,'KEYWORD FERROPT NOT SPECIFIED'                      00000950
         GOTO  .ERRTAB1                 DEFAULT CONTINUE                00000960
         ENDO                                                           00000970
         DO    '&FERROPT(1)'='NONE'     FERROPT=NONE ?                  00000980
         GOTO  .ERRTAB2                 NO OPTIONS REQUIRED             00000990
         ENDO                                                           00001000
         DO    '&FERROPT'='NONE'        FERROPT=NONE ?                  00001010
         GOTO  .ERRTAB2                 NO OPTIONS REQUIRED             00001020
         ENDO                                                           00001030
&INDEX   DO    3                        SET TO SCAN 3 PARMS             00001040
&INDX    SET   '&INDEX'                 STORE PARM INDEX VALUE          00001050
         DO    '&FERROPT(&INDX)'=''=0   PARM SPECIFIED ?                00001060
&ERR     SET   1                        SET ERR SW ON                   00001070
         DO    ('&FERROPT(&INDX)'='READ')++('&FERROPT(&INDX)'='DATA')++X00001080
               ('&FERROPT(&INDX)'='UNREC')   VALID PARM ?               00001090
         DO    &INDX=1                  1ST PARM                        00001100
&ERROPT1 SET   '&FERROPT(1)'            STORE 1ST PARM                  00001110
         ENDO                                                           00001120
         DO    &INDX=2                  2ND PARM                        00001130
&ERROPT2 SET   '+&FERROPT(2)'           STORE 2ND PARM                  00001140
         ENDO                                                           00001150
         DO    &INDX=3                  3RD PARM                        00001160
&ERROPT3 SET   '+&FERROPT(3)'           STORE 3RD PARM                  00001170
         ENDO                                                           00001180
&ERR     SET   0                        SET ERR SW OFF                  00001190
         ENDO                                                           00001200
         DO    &ERR                     PARM ERROR ?                    00001210
         PNOTE 'P','PARAMETER &INDX. OF KEYWORD FERROPT IS INVALID-- ITX00001220
                IS IGNORED'                                             00001230
         ENDO                                                           00001240
         ENDO                                                           00001250
         ENDO                                                           00001260
         DO    '&ERROPT1&ERROPT2&ERROPT3'='0'    ERROPT DEFINED ?       00001270
         MNOTE   *,'KEYWORD FERROPT NOT DEFINED'                        00001280
         GOTO  .ERRTAB1                 DEFAULT CONTINUE                00001290
         ENDO                                                           00001300
&ERR     SET   0                        SET ERR SW OFF                  00001310
         DO    (('&FERROPT(1)'='&FERROPT(2)')++('&FERROPT(1)'='&FERROPTX00001320
               (3)'))**('&FERROPT(1)'=''=0)                             00001330
.*                                      1ST PARM DUPLICATED             00001340
&ERROPT1 SET   '0'                      SET 1ST PARM EQ TO ZERO         00001350
&ERR     SET   1                        SET ERR SW ON                   00001360
         ENDO                                                           00001370
         DO    ('&FERROPT(2)'='&FERROPT(3)')**('&FERROPT(2)'=''=0)      00001380
.*                                      2ND PARM DUPLICATED             00001390
&ERROPT2 SET   '0'                      SET 2ND PARM EQ TO ZERO         00001400
&ERR     SET   1                        SET ERR SW ON                   00001410
         ENDO                                                           00001420
         DO    &ERR                     DUPLICATION PARM ERROR          00001430
         PNOTE 'P','DUPLICATE PARAMETERS SPECIFIED FOR KEYWORD FERROPT' 00001440
         MNOTE   *,'DUPLICATE PARAMETER IGNORED'                        00001450
         ENDO                                                           00001460
         GOTO  .ERRTAB2                 VALID PARM CONTINUE             00001470
.ERRTAB1 LABEL                                                          00001480
         MNOTE   *,'KEYWORD FERROPT=(READ) ASSUMED'                     00001490
&ERROPT1 SET   'READ'                   STORE ERROPT EQ TO READ         00001500
.ERRTAB2 LABEL                                                          00001510
         DO    '&FUNDFLO'=''            FUNDFLO=NULL?                   00001520
         MNOTE   *,'KEYWORD FUNDFLO=YES NOT SPECIFIED'                  00001530
         MNOTE   *,'MATHEMATICAL LIBRARY UNDERFLOW CONDITIONS WILL BE IX00001540
               GNORED'                                                  00001550
         GOTO  .ERRTAB3                 DEFAULT FUNDFLO                 00001560
         ENDO                                                           00001570
         DO    '&FUNDFLO'='YES'=0       FUNDFLO NOT EQ YES              00001580
         PNOTE 'P','INVALID PARAMETER SPECIFIED FOR KEYWORD FUNDFLO'    00001590
         MNOTE   *,'KEYWORD FUNDFLO=YES ASSUMED'                        00001600
         ENDO                                                           00001610
&UNDFLOW SET   'UNDFLYES'               STORE FUNDFLO PARM EQ TO        00001620
.*                                      UNDFLYES                        00001630
.ERRTAB3 LABEL                                                          00001640
.*   GENERATE COUNTS                                                    00001650
*********************************************************************** 00001660
*    THE FOLLOWING ERROR CONTROL COUNT SETS HAVE THE FOLLOWING FORMAT.  00001670
*********************************************************************** 00001680
ERRCTTAB DS    0F                       ERROR COUNT TABLE               00001690
ERRLIMCT DS    H                        NUMBER OF ERRORS ALLOWED        00001700
MSGLIMCT DS    H                        NUMBER OF MESSAGES ALLOWED      00001710
ACTERRCT DS    F                        ACTUAL NUMBER OF ERRORS THAT    00001720
*                                       OCCURRED                        00001730
ERRCTLT  EQU   *-ERRLIMCT               ERROR COUNTS LENGTH             00001740
         ORG   ERRCTTAB                                                 00001750
*    NON-CLASS ERROR COUNTS (SET TO ALLOW ALL ERRORS AND MESSAGES)      00001760
         DC    X'FF'                    NON-CLASS ERR CT                00001770
ERRFLAGS DC    AL1(&ERROPT1&ERROPT2&ERROPT3+&UNDFLOW)  ERR CONTROL FLAG 00001780
READ     EQU   X'80'                     READ SPECIFIED FOR ERR=        00001790
DATA     EQU   X'40'                     DATA SPECIFIED FOR ERR=        00001800
UNREC    EQU   X'20'                    UNREC SPECIFIED FOR ERR=        00001810
UNDFLYES EQU   X'10'                    COUNT ARGUMENT UNDERFLOW ERRORS 00001820
*                                                                       00001830
         DC    AL2(65535)               NON-CLASS ERR MSG CT            00001840
         DC    F'0'                     ACTUAL NON-CLASS ERR CT         00001850
*                                                                       00001860
*    PROGRAM ERROR COUNTS                                               00001870
         DC    AL2(&FPROG1)             FPROG ERR CT                    00001880
         DC    AL2(&FPROG2)             FPROG ERR MSG CT                00001890
         DC    F'0'                     ACTUAL FPROG ERR CT             00001900
*    READ ERROR COUNTS                                                  00001910
         DC    AL2(&FREAD1)              FREAD ERR CT                   00001920
         DC    AL2(&FREAD2)              FREAD ERR MSG CT               00001930
         DC    F'0'                     ACTUAL FREAD ERR CT             00001940
*    DATA ERROR COUNTS                                                  00001950
         DC    AL2(&FDATA1)              FDATA ERR CT                   00001960
         DC    AL2(&FDATA2)              FDATA ERR MSG CT               00001970
         DC    F'0'                     ACTUAL FDATA ERR CT             00001980
*    ARITHMETIC ERROR COUNTS                                            00001990
         DC    AL2(&FARITH1)             FARITH ERR CT                  00002000
         DC    AL2(&FARITH2)             FARITH ERR MSG CT              00002010
         DC    F'0'                     ACTUAL FARITH ERR CT            00002020
*    ARGUMENT ERROR COUNTS                                              00002030
         DC    AL2(&FARG1)               FARG ERR CT                    00002040
         DC    AL2(&FARG2)               FARG ERR MSG CT                00002050
         DC    F'0'                     ACTUAL FARG ERR CT              00002060
*    ALIGNMENT ERROR COUNTS                                             00002070
         DC    AL2(&FALIGN1)             FALIGN ERR CT                  00002080
         DC    AL2(&FALIGN2)             FALIGN ERR MSG CT              00002090
         DC    F'0'                     ACTUAL FALIGN ERR CT            00002100
&SYSECT  CSECT                                                          00002110
         END                                                            00002120
