FM009.f Source File


Contents

Source Code


Source Code

      PROGRAM FM009

C     COMMENT SECTION.                                                  00010009
C                                                                       00020009
C     FM009                                                             00030009
C                                                                       00040009
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE    00050009
C     FORM                                                              00060009
C             INTEGER VARIABLE = ARITHMETIC EXPRESSION                  00070009
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC     00080009
C     OPERATOR +, INTEGER CONSTANTS AND POSITIVE INTEGER VARIABLES.     00090009
C     SOME OF THE TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE        00100009
C     ARITHMETIC EXPRESSION.                                            00110009
C                                                                       00120009
C         THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS      00130009
C            (1)  TWO INTEGER VARIABLES,                                00140009
C            (2)  TWO INTEGER VARIABLES AND ONE INTEGER CONSTANT,       00150009
C            (3)  TWO INTEGER VARIABLES AND ONE INTEGER CONSTANT WITH   00160009
C                   PARENTHESES TO GROUP ELEMENTS.                      00170009
C                                                                       00180009
C      REFERENCES                                                       00190009
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,       00200009
C              X3.9-1978                                                00210009
C                                                                       00220009
C        SECTION 4.3, INTEGER TYPE                                      00230009
C        SECTION 4.3.1, INTEGER CONSTANT                                00240009
C        SECTION 6.1, ARITHMETIC EXPRESSIONS                            00250009
C        SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENTS                 00260009
C                                                                       00270009
C      **********************************************************       00280009
C                                                                       00290009
C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE         00300009
C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD  00310009
C     PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00320009
C     FEDERAL COBOL COMPILER TESTING SERVICE.  THE FORTRAN COMPILER     00330009
C     VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00340009
C     DATA, AND AN EXECUTIVE SYSTEM.  EACH AUDIT ROUTINE IS A FORTRAN   00350009
C     PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC  00360009
C     LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00370009
C     OF EXECUTING THESE TESTS.                                         00380009
C                                                                       00390009
C         THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00400009
C     FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978.                 00410009
C                                                                       00420009
C         SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO -             00430009
C                                                                       00440009
C              NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY           00450009
C                   SOFTWARE STANDARDS VALIDATION GROUP                 00460009
C                          BUILDING 225  RM A266                        00470009
C                         GAITHERSBURG, MD  20899                       00480009
C      **********************************************************       00490009
C                                                                       00500009
C                                                                       00510009
C                                                                       00520009
C     INITIALIZATION SECTION                                            00530009
C                                                                       00540009
C     INITIALIZE CONSTANTS                                              00550009
C      **************                                                   00560009
C     I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER.         00570009
      I01 = 5                                                           00580009
C     I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER.             00590009
      I02 = 6                                                           00600009
C     SYSTEM ENVIRONMENT SECTION                                        00610009
C                                                                       00620009
CX010    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00630009
C     THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5      00640009
C     (UNIT NUMBER FOR CARD READER).                                    00650009
CX011    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00660009
C     THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00670009
C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE.         00680009
C                                                                       00690009
CX020    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00700009
C     THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6      00710009
C     (UNIT NUMBER FOR PRINTER).                                        00720009
CX021    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00730009
C     THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00740009
C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE.         00750009
C                                                                       00760009
      IVPASS=0                                                          00770009
      IVFAIL=0                                                          00780009
      IVDELE=0                                                          00790009
      ICZERO=0                                                          00800009
C                                                                       00810009
C     WRITE PAGE HEADERS                                                00820009
      WRITE (I02,90000)                                                 00830009
      WRITE (I02,90001)                                                 00840009
      WRITE (I02,90002)                                                 00850009
      WRITE (I02, 90002)                                                00860009
      WRITE (I02,90003)                                                 00870009
      WRITE (I02,90002)                                                 00880009
      WRITE (I02,90004)                                                 00890009
      WRITE (I02,90002)                                                 00900009
      WRITE (I02,90011)                                                 00910009
      WRITE (I02,90002)                                                 00920009
      WRITE (I02,90002)                                                 00930009
      WRITE (I02,90005)                                                 00940009
      WRITE (I02,90006)                                                 00950009
      WRITE (I02,90002)                                                 00960009
C                                                                       00970009
C     TEST SECTION                                                      00980009
C                                                                       00990009
C         ARITHMETIC ASSIGNMENT STATEMENT                               01000009
C                                                                       01010009
C     TEST 235 THROUGH TEST 243 CONTAIN TWO POSITIVE INTEGER VARIABLES  01020009
C     AND OPERATOR + IN ARITHMETIC EXPRESSION.                          01030009
C                                                                       01040009
 2351 CONTINUE                                                          01050009
      IVTNUM = 235                                                      01060009
C                                                                       01070009
C      ****  TEST 235  ****                                             01080009
C                                                                       01090009
      IF (ICZERO) 32350, 2350, 32350                                    01100009
 2350 CONTINUE                                                          01110009
      IVON01 = 2                                                        01120009
      IVON02 = 3                                                        01130009
      IVCOMP = IVON01 + IVON02                                          01140009
      GO TO 42350                                                       01150009
32350 IVDELE = IVDELE + 1                                               01160009
      WRITE (I02,80003) IVTNUM                                          01170009
      IF (ICZERO) 42350, 2361, 42350                                    01180009
42350 IF (IVCOMP - 5) 22350,12350,22350                                 01190009
12350 IVPASS = IVPASS + 1                                               01200009
      WRITE (I02,80001) IVTNUM                                          01210009
      GO TO 2361                                                        01220009
22350 IVFAIL = IVFAIL + 1                                               01230009
      IVCORR = 5                                                        01240009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01250009
 2361 CONTINUE                                                          01260009
      IVTNUM = 236                                                      01270009
C                                                                       01280009
C      ****  TEST 236  ****                                             01290009
C                                                                       01300009
      IF (ICZERO) 32360, 2360, 32360                                    01310009
 2360 CONTINUE                                                          01320009
      IVON01 = 2                                                        01330009
      IVON02 = 3                                                        01340009
      IVCOMP = IVON02 + IVON01                                          01350009
      GO TO 42360                                                       01360009
32360 IVDELE = IVDELE + 1                                               01370009
      WRITE (I02,80003) IVTNUM                                          01380009
      IF (ICZERO) 42360, 2371, 42360                                    01390009
42360 IF (IVCOMP - 5) 22360, 12360, 22360                               01400009
12360 IVPASS = IVPASS + 1                                               01410009
      WRITE (I02,80001) IVTNUM                                          01420009
      GO TO 2371                                                        01430009
22360 IVFAIL = IVFAIL + 1                                               01440009
      IVCORR = 5                                                        01450009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01460009
 2371 CONTINUE                                                          01470009
      IVTNUM = 237                                                      01480009
C                                                                       01490009
C      ****  TEST 237  ****                                             01500009
C                                                                       01510009
      IF (ICZERO) 32370, 2370, 32370                                    01520009
 2370 CONTINUE                                                          01530009
      IVON01 = 51                                                       01540009
      IVON02 = 52                                                       01550009
      IVCOMP = IVON01 + IVON02                                          01560009
      GO TO 42370                                                       01570009
32370 IVDELE = IVDELE + 1                                               01580009
      WRITE (I02,80003) IVTNUM                                          01590009
      IF (ICZERO) 42370, 2381, 42370                                    01600009
42370 IF (IVCOMP - 103) 22370, 12370, 22370                             01610009
12370 IVPASS = IVPASS + 1                                               01620009
      WRITE (I02,80001) IVTNUM                                          01630009
      GO TO 2381                                                        01640009
22370 IVFAIL = IVFAIL + 1                                               01650009
      IVCORR = 103                                                      01660009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01670009
 2381 CONTINUE                                                          01680009
      IVTNUM = 238                                                      01690009
C                                                                       01700009
C      ****  TEST  238 ****                                             01710009
C                                                                       01720009
      IF (ICZERO) 32380, 2380, 32380                                    01730009
 2380 CONTINUE                                                          01740009
      IVON01 = 189                                                      01750009
      IVON02 = 676                                                      01760009
      IVCOMP = IVON01 + IVON02                                          01770009
      GO TO 42380                                                       01780009
32380 IVDELE = IVDELE + 1                                               01790009
      WRITE (I02,80003) IVTNUM                                          01800009
      IF (ICZERO) 42380, 2391, 42380                                    01810009
42380 IF (IVCOMP - 865) 22380, 12380, 22380                             01820009
12380 IVPASS = IVPASS + 1                                               01830009
      WRITE (I02,80001) IVTNUM                                          01840009
      GO TO 2391                                                        01850009
22380 IVFAIL = IVFAIL + 1                                               01860009
      IVCORR = 865                                                      01870009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01880009
 2391 CONTINUE                                                          01890009
      IVTNUM = 239                                                      01900009
C                                                                       01910009
C      ****  TEST 239  ****                                             01920009
C                                                                       01930009
      IF (ICZERO) 32390, 2390, 32390                                    01940009
 2390 CONTINUE                                                          01950009
      IVON01 = 1358                                                     01960009
      IVON02 = 8001                                                     01970009
      IVCOMP = IVON01 + IVON02                                          01980009
      GO TO 42390                                                       01990009
32390 IVDELE = IVDELE + 1                                               02000009
      WRITE (I02,80003) IVTNUM                                          02010009
      IF (ICZERO) 42390, 2401, 42390                                    02020009
42390 IF (IVCOMP - 9359) 22390, 12390, 22390                            02030009
12390 IVPASS = IVPASS + 1                                               02040009
      WRITE (I02,80001) IVTNUM                                          02050009
      GO TO 2401                                                        02060009
22390 IVFAIL = IVFAIL + 1                                               02070009
      IVCORR = 9359                                                     02080009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02090009
 2401 CONTINUE                                                          02100009
      IVTNUM = 240                                                      02110009
C                                                                       02120009
C      ****  TEST 240  ****                                             02130009
C                                                                       02140009
      IF (ICZERO) 32400, 2400, 32400                                    02150009
 2400 CONTINUE                                                          02160009
      IVON01 = 1358                                                     02170009
      IVON02 = 8001                                                     02180009
      IVCOMP = IVON02 + IVON01                                          02190009
      GO TO 42400                                                       02200009
32400 IVDELE = IVDELE + 1                                               02210009
      WRITE (I02,80003) IVTNUM                                          02220009
      IF (ICZERO) 42400, 2411, 42400                                    02230009
42400 IF (IVCOMP - 9359) 22400, 12400, 22400                            02240009
12400 IVPASS = IVPASS + 1                                               02250009
      WRITE (I02,80001) IVTNUM                                          02260009
      GO TO 2411                                                        02270009
22400 IVFAIL = IVFAIL + 1                                               02280009
      IVCORR = 9359                                                     02290009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02300009
 2411 CONTINUE                                                          02310009
      IVTNUM = 241                                                      02320009
C                                                                       02330009
C      ****  TEST 241  ****                                             02340009
C                                                                       02350009
      IF (ICZERO) 32410, 2410, 32410                                    02360009
 2410 CONTINUE                                                          02370009
      IVON01 = 11112                                                    02380009
      IVON02 = 10001                                                    02390009
      IVCOMP = IVON01 + IVON02                                          02400009
      GO TO 42410                                                       02410009
32410 IVDELE = IVDELE + 1                                               02420009
      WRITE (I02,80003) IVTNUM                                          02430009
      IF (ICZERO) 42410, 2421, 42410                                    02440009
42410 IF (IVCOMP - 21113) 22410, 12410, 22410                           02450009
12410 IVPASS = IVPASS + 1                                               02460009
      WRITE (I02,80001) IVTNUM                                          02470009
      GO TO 2421                                                        02480009
22410 IVFAIL = IVFAIL + 1                                               02490009
      IVCORR = 21113                                                    02500009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02510009
 2421 CONTINUE                                                          02520009
      IVTNUM = 242                                                      02530009
C                                                                       02540009
C      **** TEST 242  ****                                              02550009
C                                                                       02560009
      IF (ICZERO) 32420, 2420, 32420                                    02570009
 2420 CONTINUE                                                          02580009
      IVON01 = 189                                                      02590009
      IVON02 = 9876                                                     02600009
      IVCOMP = IVON01 + IVON02                                          02610009
      GO TO 42420                                                       02620009
32420 IVDELE = IVDELE + 1                                               02630009
      WRITE (I02,80003) IVTNUM                                          02640009
      IF (ICZERO) 42420, 2431, 42420                                    02650009
42420 IF (IVCOMP - 10065) 22420, 12420, 22420                           02660009
12420 IVPASS = IVPASS + 1                                               02670009
      WRITE (I02,80001) IVTNUM                                          02680009
      GO TO 2431                                                        02690009
22420 IVFAIL = IVFAIL + 1                                               02700009
      IVCORR = 10065                                                    02710009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02720009
 2431 CONTINUE                                                          02730009
      IVTNUM = 243                                                      02740009
C                                                                       02750009
C      **** TEST 243  ****                                              02760009
C         REQUIRES 32767                                                02770009
C                                                                       02780009
      IF (ICZERO) 32430, 2430, 32430                                    02790009
 2430 CONTINUE                                                          02800009
      IVON01 = 16383                                                    02810009
      IVON02 = 16384                                                    02820009
      IVCOMP = IVON01 + IVON02                                          02830009
      GO TO 42430                                                       02840009
32430 IVDELE = IVDELE + 1                                               02850009
      WRITE (I02,80003) IVTNUM                                          02860009
      IF (ICZERO) 42430, 2441, 42430                                    02870009
42430 IF (IVCOMP - 32767) 22430, 12430, 22430                           02880009
12430 IVPASS = IVPASS + 1                                               02890009
      WRITE (I02,80001) IVTNUM                                          02900009
      GO TO 2441                                                        02910009
22430 IVFAIL = IVFAIL + 1                                               02920009
      IVCORR = 32767                                                    02930009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02940009
C                                                                       02950009
C     TEST 244 THROUGH TEST 250 CONTAIN TWO POSITIVE INTEGER VARIABLES, 02960009
C     ONE INTEGER CONSTANT, AND OPERATOR + IN ARITHMETIC EXPRESSION.    02970009
C                                                                       02980009
 2441 CONTINUE                                                          02990009
      IVTNUM = 244                                                      03000009
C                                                                       03010009
C      ****  TEST 244  ****                                             03020009
C                                                                       03030009
      IF (ICZERO) 32440, 2440, 32440                                    03040009
 2440 CONTINUE                                                          03050009
      IVON01 = 2                                                        03060009
      IVON02 = 3                                                        03070009
      IVCOMP = IVON01 + IVON02 + 4                                      03080009
      GO TO 42440                                                       03090009
32440 IVDELE = IVDELE + 1                                               03100009
      WRITE (I02,80003) IVTNUM                                          03110009
      IF (ICZERO) 42440, 2451, 42440                                    03120009
42440 IF (IVCOMP - 9) 22440, 12440, 22440                               03130009
12440 IVPASS = IVPASS + 1                                               03140009
      WRITE (I02,80001) IVTNUM                                          03150009
      GO TO 2451                                                        03160009
22440 IVFAIL = IVFAIL + 1                                               03170009
      IVCORR = 9                                                        03180009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03190009
 2451 CONTINUE                                                          03200009
      IVTNUM = 245                                                      03210009
C                                                                       03220009
C      ****  TEST 245  ****                                             03230009
C                                                                       03240009
      IF (ICZERO) 32450, 2450, 32450                                    03250009
 2450 CONTINUE                                                          03260009
      IVON01 = 2                                                        03270009
      IVON03 = 4                                                        03280009
      IVCOMP = IVON01 +3 + IVON03                                       03290009
      GO TO 42450                                                       03300009
32450 IVDELE = IVDELE + 1                                               03310009
      WRITE (I02,80003) IVTNUM                                          03320009
      IF (ICZERO) 42450, 2461, 42450                                    03330009
42450 IF (IVCOMP - 9) 22450, 12450, 22450                               03340009
12450 IVPASS = IVPASS + 1                                               03350009
      WRITE (I02,80001) IVTNUM                                          03360009
      GO TO 2461                                                        03370009
22450 IVFAIL = IVFAIL + 1                                               03380009
      IVCORR = 9                                                        03390009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03400009
 2461 CONTINUE                                                          03410009
      IVTNUM = 246                                                      03420009
C                                                                       03430009
C      ****  TEST 246  ****                                             03440009
C                                                                       03450009
      IF (ICZERO) 32460, 2460, 32460                                    03460009
 2460 CONTINUE                                                          03470009
      IVON02 = 3                                                        03480009
      IVON03 = 4                                                        03490009
      IVCOMP = 2 + IVON02 + IVON03                                      03500009
      GO TO 42460                                                       03510009
32460 IVDELE = IVDELE + 1                                               03520009
      WRITE (I02,80003) IVTNUM                                          03530009
      IF (ICZERO) 42460, 2471, 42460                                    03540009
42460 IF (IVCOMP - 9) 22460, 12460, 22460                               03550009
12460 IVPASS = IVPASS + 1                                               03560009
      WRITE (I02,80001) IVTNUM                                          03570009
      GO TO 2471                                                        03580009
22460 IVFAIL = IVFAIL + 1                                               03590009
      IVCORR = 9                                                        03600009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03610009
 2471 CONTINUE                                                          03620009
      IVTNUM = 247                                                      03630009
C                                                                       03640009
C      ****  TEST 247  ****                                             03650009
C                                                                       03660009
      IF (ICZERO) 32470, 2470, 32470                                    03670009
 2470 CONTINUE                                                          03680009
      IVON01 = 51                                                       03690009
      IVON03 = 53                                                       03700009
      IVCOMP = IVON01 +52 + IVON03                                      03710009
      GO TO 42470                                                       03720009
32470 IVDELE = IVDELE + 1                                               03730009
      WRITE (I02,80003) IVTNUM                                          03740009
      IF (ICZERO) 42470, 2481, 42470                                    03750009
42470 IF (IVCOMP - 156) 22470, 12470, 22470                             03760009
12470 IVPASS = IVPASS + 1                                               03770009
      WRITE (I02,80001) IVTNUM                                          03780009
      GO TO 2481                                                        03790009
22470 IVFAIL = IVFAIL + 1                                               03800009
      IVCORR = 156                                                      03810009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03820009
 2481 CONTINUE                                                          03830009
      IVTNUM = 248                                                      03840009
C                                                                       03850009
C      ****  TEST 248  ****                                             03860009
C                                                                       03870009
      IF (ICZERO) 32480, 2480, 32480                                    03880009
 2480 CONTINUE                                                          03890009
      IVON02 = 676                                                      03900009
      IVON03 = 101                                                      03910009
      IVCOMP = 189 + IVON02 + IVON03                                    03920009
      GO TO 42480                                                       03930009
32480 IVDELE = IVDELE + 1                                               03940009
      WRITE (I02,80003) IVTNUM                                          03950009
      IF (ICZERO) 42480, 2491, 42480                                    03960009
42480 IF (IVCOMP - 966) 22480, 12480, 22480                             03970009
12480 IVPASS = IVPASS + 1                                               03980009
      WRITE (I02,80001) IVTNUM                                          03990009
      GO TO 2491                                                        04000009
22480 IVFAIL = IVFAIL + 1                                               04010009
      IVCORR = 966                                                      04020009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04030009
 2491 CONTINUE                                                          04040009
      IVTNUM = 249                                                      04050009
C                                                                       04060009
C      ****  TEST 249  ****                                             04070009
C                                                                       04080009
      IF (ICZERO) 32490, 2490, 32490                                    04090009
 2490 CONTINUE                                                          04100009
      IVON01 = 1358                                                     04110009
      IVON02 = 8001                                                     04120009
      IVCOMP = IVON01 + IVON02 + 2189                                   04130009
      GO TO 42490                                                       04140009
32490 IVDELE = IVDELE + 1                                               04150009
      WRITE (I02,80003) IVTNUM                                          04160009
      IF (ICZERO) 42490, 2501, 42490                                    04170009
42490 IF (IVCOMP - 11548) 22490, 12490, 22490                           04180009
12490 IVPASS = IVPASS + 1                                               04190009
      WRITE (I02,80001) IVTNUM                                          04200009
      GO TO 2501                                                        04210009
22490 IVFAIL = IVFAIL + 1                                               04220009
      IVCORR = 11548                                                    04230009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04240009
 2501 CONTINUE                                                          04250009
      IVTNUM = 250                                                      04260009
C                                                                       04270009
C      ****  TEST 250  ****                                             04280009
C         REQUIRES 32767                                                04290009
C                                                                       04300009
      IF (ICZERO) 32500, 2500, 32500                                    04310009
 2500 CONTINUE                                                          04320009
      IVON01 = 16383                                                    04330009
      IVON03 = 4                                                        04340009
      IVCOMP = IVON01 + 16380 + IVON03                                  04350009
      GO TO 42500                                                       04360009
32500 IVDELE = IVDELE + 1                                               04370009
      WRITE (I02,80003) IVTNUM                                          04380009
      IF (ICZERO) 42500, 2511, 42500                                    04390009
42500 IF (IVCOMP - 32767) 22500,12500,22500                             04400009
12500 IVPASS = IVPASS + 1                                               04410009
      WRITE (I02,80001) IVTNUM                                          04420009
      GO TO 2511                                                        04430009
22500 IVFAIL = IVFAIL + 1                                               04440009
      IVCORR = 32767                                                    04450009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04460009
C                                                                       04470009
C     TEST 251 THROUGH TEST 264 CONTAIN TWO POSITIVE INTEGER VARIABLES, 04480009
C     ONE INTEGER CONSTANT, AND OPERATOR + IN ARITHMETIC EXPRESSION.    04490009
C     PARENTHESES ARE USED TO GROUP ELEMENTS.  THE RESULTS ARE THE SAME 04500009
C     AS TESTS 244 THROUGH 250.                                         04510009
C                                                                       04520009
 2511 CONTINUE                                                          04530009
      IVTNUM = 251                                                      04540009
C                                                                       04550009
C      ****  TEST 251  ****                                             04560009
C                                                                       04570009
      IF (ICZERO) 32510, 2510, 32510                                    04580009
 2510 CONTINUE                                                          04590009
      IVON01 = 2                                                        04600009
      IVON02 = 3                                                        04610009
      IVCOMP = (IVON01 + IVON02) + 4                                    04620009
      GO TO 42510                                                       04630009
32510 IVDELE = IVDELE + 1                                               04640009
      WRITE (I02,80003) IVTNUM                                          04650009
      IF (ICZERO) 42510, 2521, 42510                                    04660009
42510 IF (IVCOMP - 9) 22510,12510,22510                                 04670009
12510 IVPASS = IVPASS + 1                                               04680009
      WRITE (I02,80001) IVTNUM                                          04690009
      GO TO 2521                                                        04700009
22510 IVFAIL = IVFAIL + 1                                               04710009
      IVCORR = 9                                                        04720009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04730009
 2521 CONTINUE                                                          04740009
      IVTNUM = 252                                                      04750009
C                                                                       04760009
C      ****  TEST 252  ****                                             04770009
C                                                                       04780009
      IF (ICZERO) 32520, 2520, 32520                                    04790009
 2520 CONTINUE                                                          04800009
      IVON02 = 3                                                        04810009
      IVON03 = 4                                                        04820009
      IVCOMP = 2 + (IVON02 + IVON03)                                    04830009
      GO TO 42520                                                       04840009
32520 IVDELE = IVDELE + 1                                               04850009
      WRITE (I02,80003) IVTNUM                                          04860009
      IF (ICZERO) 42520, 2531, 42520                                    04870009
42520 IF (IVCOMP - 9) 22520,12520,22520                                 04880009
12520 IVPASS = IVPASS + 1                                               04890009
      WRITE (I02,80001) IVTNUM                                          04900009
      GO TO 2531                                                        04910009
22520 IVFAIL = IVFAIL + 1                                               04920009
      IVCORR = 9                                                        04930009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04940009
 2531 CONTINUE                                                          04950009
      IVTNUM = 253                                                      04960009
C                                                                       04970009
C      **** TEST 253  ****                                              04980009
C                                                                       04990009
      IF (ICZERO) 32530, 2530, 32530                                    05000009
 2530 CONTINUE                                                          05010009
      IVON02 =3                                                         05020009
      IVON03 =4                                                         05030009
      IVCOMP = (2+IVON02)+IVON03                                        05040009
      GO TO 42530                                                       05050009
32530 IVDELE = IVDELE + 1                                               05060009
      WRITE (I02,80003) IVTNUM                                          05070009
      IF (ICZERO) 42530, 2541, 42530                                    05080009
42530 IF (IVCOMP -9) 22530,12530,22530                                  05090009
12530 IVPASS = IVPASS + 1                                               05100009
      WRITE (I02,80001) IVTNUM                                          05110009
      GO TO 2541                                                        05120009
22530 IVFAIL = IVFAIL + 1                                               05130009
      IVCORR =9                                                         05140009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          05150009
 2541 CONTINUE                                                          05160009
      IVTNUM = 254                                                      05170009
C                                                                       05180009
C      ****  TEST 254  ****                                             05190009
C                                                                       05200009
      IF (ICZERO) 32540, 2540, 32540                                    05210009
 2540 CONTINUE                                                          05220009
      IVON01 = 2                                                        05230009
      IVON02 = 3                                                        05240009
      IVCOMP = IVON01 + (IVON02 + 4)                                    05250009
      GO TO 42540                                                       05260009
32540 IVDELE = IVDELE + 1                                               05270009
      WRITE (I02,80003) IVTNUM                                          05280009
      IF (ICZERO) 42540, 2551, 42540                                    05290009
42540 IF (IVCOMP-9)22540,12540,22540                                    05300009
12540 IVPASS = IVPASS + 1                                               05310009
      WRITE (I02,80001) IVTNUM                                          05320009
      GO TO 2551                                                        05330009
22540 IVFAIL = IVFAIL + 1                                               05340009
      IVCORR=9                                                          05350009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          05360009
 2551 CONTINUE                                                          05370009
      IVTNUM = 255                                                      05380009
C                                                                       05390009
C      ****  TEST 255  ****                                             05400009
C                                                                       05410009
      IF (ICZERO) 32550, 2550, 32550                                    05420009
 2550 CONTINUE                                                          05430009
      IVON01 = 2                                                        05440009
      IVON03 = 4                                                        05450009
      IVCOMP = IVON01 +(3+IVON03)                                       05460009
      GO TO 42550                                                       05470009
32550 IVDELE = IVDELE + 1                                               05480009
      WRITE (I02,80003) IVTNUM                                          05490009
      IF (ICZERO) 42550, 2561, 42550                                    05500009
42550 IF (IVCOMP-9)22550,12550,22550                                    05510009
12550 IVPASS = IVPASS + 1                                               05520009
      WRITE (I02,80001) IVTNUM                                          05530009
      GO TO 2561                                                        05540009
22550 IVFAIL = IVFAIL + 1                                               05550009
      IVCORR =9                                                         05560009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          05570009
 2561 CONTINUE                                                          05580009
      IVTNUM = 256                                                      05590009
C                                                                       05600009
C      ****  TEST 256  ****                                             05610009
C                                                                       05620009
      IF (ICZERO) 32560, 2560, 32560                                    05630009
 2560 CONTINUE                                                          05640009
      IVON01 = 2                                                        05650009
      IVON03 = 4                                                        05660009
      IVCOMP =(IVON01+3)+IVON03                                         05670009
      GO TO 42560                                                       05680009
32560 IVDELE = IVDELE + 1                                               05690009
      WRITE (I02,80003) IVTNUM                                          05700009
      IF (ICZERO) 42560, 2571, 42560                                    05710009
42560 IF (IVCOMP-9) 22560,12560,22560                                   05720009
12560 IVPASS = IVPASS + 1                                               05730009
      WRITE (I02,80001) IVTNUM                                          05740009
      GO TO 2571                                                        05750009
22560 IVFAIL = IVFAIL + 1                                               05760009
      IVCORR =9                                                         05770009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          05780009
 2571 CONTINUE                                                          05790009
      IVTNUM = 257                                                      05800009
C                                                                       05810009
C      ****  TEST 257  ****                                             05820009
C                                                                       05830009
      IF (ICZERO) 32570, 2570, 32570                                    05840009
 2570 CONTINUE                                                          05850009
      IVON01 = 51                                                       05860009
      IVON03 = 53                                                       05870009
      IVCOMP=IVON01+(52+IVON03)                                         05880009
      GO TO 42570                                                       05890009
32570 IVDELE = IVDELE + 1                                               05900009
      WRITE (I02,80003) IVTNUM                                          05910009
      IF (ICZERO) 42570, 2581, 42570                                    05920009
42570 IF (IVCOMP -156) 22570,12570,22570                                05930009
12570 IVPASS = IVPASS + 1                                               05940009
      WRITE (I02,80001) IVTNUM                                          05950009
      GO TO 2581                                                        05960009
22570 IVFAIL = IVFAIL + 1                                               05970009
      IVCORR = 156                                                      05980009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          05990009
 2581 CONTINUE                                                          06000009
      IVTNUM = 258                                                      06010009
C                                                                       06020009
C      ****  TEST 258  ****                                             06030009
C                                                                       06040009
      IF (ICZERO) 32580, 2580, 32580                                    06050009
 2580 CONTINUE                                                          06060009
      IVON01 = 51                                                       06070009
      IVON03 = 53                                                       06080009
      IVCOMP =(IVON01+52)+IVON03                                        06090009
      GO TO 42580                                                       06100009
32580 IVDELE = IVDELE + 1                                               06110009
      WRITE (I02,80003) IVTNUM                                          06120009
      IF (ICZERO) 42580, 2591, 42580                                    06130009
42580 IF (IVCOMP-156) 22580,12580,22580                                 06140009
12580 IVPASS = IVPASS + 1                                               06150009
      WRITE (I02,80001) IVTNUM                                          06160009
      GO TO 2591                                                        06170009
22580 IVFAIL = IVFAIL + 1                                               06180009
      IVCORR = 156                                                      06190009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          06200009
 2591 CONTINUE                                                          06210009
      IVTNUM = 259                                                      06220009
C                                                                       06230009
C      ****  TEST 259  ****                                             06240009
C                                                                       06250009
      IF (ICZERO) 32590, 2590, 32590                                    06260009
 2590 CONTINUE                                                          06270009
      IVON02 = 676                                                      06280009
      IVON03 = 101                                                      06290009
      IVCOMP = 189+(IVON02+IVON03)                                      06300009
      GO TO 42590                                                       06310009
32590 IVDELE = IVDELE + 1                                               06320009
      WRITE (I02,80003) IVTNUM                                          06330009
      IF (ICZERO) 42590, 2601, 42590                                    06340009
42590 IF (IVCOMP -966) 22590,12590,22590                                06350009
12590 IVPASS = IVPASS + 1                                               06360009
      WRITE (I02,80001) IVTNUM                                          06370009
      GO TO 2601                                                        06380009
22590 IVFAIL = IVFAIL + 1                                               06390009
      IVCORR =966                                                       06400009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          06410009
 2601 CONTINUE                                                          06420009
      IVTNUM = 260                                                      06430009
C                                                                       06440009
C      ****  TEST 260  ****                                             06450009
C                                                                       06460009
      IF (ICZERO) 32600, 2600, 32600                                    06470009
 2600 CONTINUE                                                          06480009
      IVON02 = 676                                                      06490009
      IVON03 = 101                                                      06500009
      IVCOMP = (189 + IVON02) + IVON03                                  06510009
      GO TO 42600                                                       06520009
32600 IVDELE = IVDELE + 1                                               06530009
      WRITE (I02,80003) IVTNUM                                          06540009
      IF (ICZERO) 42600, 2611, 42600                                    06550009
42600 IF (IVCOMP-966) 22600,12600,22600                                 06560009
12600 IVPASS = IVPASS + 1                                               06570009
      WRITE (I02,80001) IVTNUM                                          06580009
      GO TO 2611                                                        06590009
22600 IVFAIL = IVFAIL + 1                                               06600009
      IVCORR=966                                                        06610009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          06620009
 2611 CONTINUE                                                          06630009
      IVTNUM = 261                                                      06640009
C                                                                       06650009
C      ****  TEST 261  ****                                             06660009
C                                                                       06670009
      IF (ICZERO) 32610, 2610, 32610                                    06680009
 2610 CONTINUE                                                          06690009
      IVON01 = 1358                                                     06700009
      IVON02 = 8001                                                     06710009
      IVCOMP = IVON01 + (IVON02 + 2189)                                 06720009
      GO TO 42610                                                       06730009
32610 IVDELE = IVDELE + 1                                               06740009
      WRITE (I02,80003) IVTNUM                                          06750009
      IF (ICZERO) 42610, 2621, 42610                                    06760009
42610 IF (IVCOMP-11548) 22610,12610,22610                               06770009
12610 IVPASS = IVPASS + 1                                               06780009
      WRITE (I02,80001) IVTNUM                                          06790009
      GO TO 2621                                                        06800009
22610 IVFAIL = IVFAIL + 1                                               06810009
      IVCORR=11548                                                      06820009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          06830009
 2621 CONTINUE                                                          06840009
      IVTNUM = 262                                                      06850009
C                                                                       06860009
C      ****  TEST 262  ****                                             06870009
C                                                                       06880009
      IF (ICZERO) 32620, 2620, 32620                                    06890009
 2620 CONTINUE                                                          06900009
      IVON01 = 1358                                                     06910009
      IVON02 = 8001                                                     06920009
      IVCOMP =(IVON01+IVON02)+2189                                      06930009
      GO TO 42620                                                       06940009
32620 IVDELE = IVDELE + 1                                               06950009
      WRITE (I02,80003) IVTNUM                                          06960009
      IF (ICZERO) 42620, 2631, 42620                                    06970009
42620 IF (IVCOMP-11548) 22620,12620,22620                               06980009
12620 IVPASS = IVPASS + 1                                               06990009
      WRITE (I02,80001) IVTNUM                                          07000009
      GO TO 2631                                                        07010009
22620 IVFAIL = IVFAIL + 1                                               07020009
      IVCORR=11548                                                      07030009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          07040009
 2631 CONTINUE                                                          07050009
      IVTNUM = 263                                                      07060009
C                                                                       07070009
C      ****  TEST 263  ****                                             07080009
C         REQUIRES 32767                                                07090009
C                                                                       07100009
      IF (ICZERO) 32630, 2630, 32630                                    07110009
 2630 CONTINUE                                                          07120009
      IVON01 = 16383                                                    07130009
      IVON03 = 16380                                                    07140009
      IVCOMP = IVON01 + (4+IVON03)                                      07150009
      GO TO 42630                                                       07160009
32630 IVDELE = IVDELE + 1                                               07170009
      WRITE (I02,80003) IVTNUM                                          07180009
      IF (ICZERO) 42630, 2641, 42630                                    07190009
42630 IF (IVCOMP-32767) 22630,12630,22630                               07200009
12630 IVPASS = IVPASS + 1                                               07210009
      WRITE (I02,80001) IVTNUM                                          07220009
      GO TO 2641                                                        07230009
22630 IVFAIL = IVFAIL + 1                                               07240009
      IVCORR =32767                                                     07250009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          07260009
 2641 CONTINUE                                                          07270009
      IVTNUM = 264                                                      07280009
C                                                                       07290009
C      ****  TEST 264  ****                                             07300009
C         REQUIRES 32767                                                07310009
C                                                                       07320009
      IF (ICZERO) 32640, 2640, 32640                                    07330009
 2640 CONTINUE                                                          07340009
      IVON01 = 16383                                                    07350009
      IVON02 = 16380                                                    07360009
      IVCOMP = (IVON01+IVON02) +4                                       07370009
      GO TO 42640                                                       07380009
32640 IVDELE = IVDELE + 1                                               07390009
      WRITE (I02,80003) IVTNUM                                          07400009
      IF (ICZERO) 42640, 2651, 42640                                    07410009
42640 IF (IVCOMP - 32767) 22640,12640,22640                             07420009
12640 IVPASS = IVPASS + 1                                               07430009
      WRITE (I02,80001) IVTNUM                                          07440009
      GO TO 2651                                                        07450009
22640 IVFAIL = IVFAIL + 1                                               07460009
      IVCORR = 32767                                                    07470009
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          07480009
 2651 CONTINUE                                                          07490009
C                                                                       07500009
C     WRITE PAGE FOOTINGS AND RUN SUMMARIES                             07510009
99999 CONTINUE                                                          07520009
      WRITE (I02,90002)                                                 07530009
      WRITE (I02,90006)                                                 07540009
      WRITE (I02,90002)                                                 07550009
      WRITE (I02,90002)                                                 07560009
      WRITE (I02,90007)                                                 07570009
      WRITE (I02,90002)                                                 07580009
      WRITE (I02,90008)  IVFAIL                                         07590009
      WRITE (I02,90009) IVPASS                                          07600009
      WRITE (I02,90010) IVDELE                                          07610009
C                                                                       07620009
C                                                                       07630009
C     TERMINATE ROUTINE EXECUTION                                       07640009
      STOP                                                              07650009
C                                                                       07660009
C     FORMAT STATEMENTS FOR PAGE HEADERS                                07670009
90000 FORMAT ("1")                                                      07680009
90002 FORMAT (" ")                                                      07690009
90001 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" )            07700009
90003 FORMAT (" ",21X,"VERSION 2.1" )                                   07710009
90004 FORMAT (" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" )        07720009
90005 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT") 07730009
90006 FORMAT (" ",5X,"----------------------------------------------" ) 07740009
90011 FORMAT (" ",18X,"SUBSET LEVEL TEST" )                             07750009
C                                                                       07760009
C     FORMAT STATEMENTS FOR RUN SUMMARIES                               07770009
90008 FORMAT (" ",15X,I5," ERRORS ENCOUNTERED" )                        07780009
90009 FORMAT (" ",15X,I5," TESTS PASSED" )                              07790009
90010 FORMAT (" ",15X,I5," TESTS DELETED" )                             07800009
C                                                                       07810009
C     FORMAT STATEMENTS FOR TEST RESULTS                                07820009
80001 FORMAT (" ",4X,I5,7X,"PASS")                                      07830009
80002 FORMAT (" ",4X,I5,7X,"FAIL")                                      07840009
80003 FORMAT (" ",4X,I5,7X,"DELETED")                                   07850009
80004 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6)                         07860009
80005 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5)                    07870009
C                                                                       07880009
90007 FORMAT (" ",20X,"END OF PROGRAM FM009" )                          07890009
      END                                                               07900009