FM034.f Source File


Contents

Source Code


Source Code

      PROGRAM FM034

C     COMMENT SECTION                                                   00010034
C                                                                       00020034
C     FM034                                                             00030034
C                                                                       00040034
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE    00050034
C     FORM                                                              00060034
C               INTEGER VARIABLE = ARITHMETIC EXPRESSION                00070034
C     WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC     00080034
C     OPERATOR *, INTEGER VARIABLE AND INTEGER CONSTANT.  SOME OF THE   00090034
C     TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE EXPRESSION AND TO  00100034
C     ALLOW THE USE OF NEGATIVE CONSTANTS FOLLOWING THE * OPERATOR.     00110034
C     THE INTEGER VARIABLES CONTAIN POSITIVE AND NEGATIVE VALUES.       00120034
C                                                                       00130034
C     THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS          00140034
C         (1)  INTEGER VARIABLE * INTEGER CONSTANT                      00150034
C              INTEGER CONSTANT * INTEGER VARIABLE                      00160034
C         (2)  INTEGER CONSTANT * INTEGER VARIABLE * INTEGER CONSTANT   00170034
C         (3)  SAME AS (2) BUT WITH PARENS TO GROUP ELEMENTS.           00180034
C                                                                       00190034
C      REFERENCES                                                       00200034
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,       00210034
C              X3.9-1978                                                00220034
C                                                                       00230034
C        SECTION 4.3, INTEGER TYPE                                      00240034
C        SECTION 4.3.1, INTEGER CONSTANT                                00250034
C        SECTION 6.1, ARITHMETIC EXPRESSIONS                            00260034
C        SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT                  00270034
C                                                                       00280034
C      **********************************************************       00290034
C                                                                       00300034
C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE         00310034
C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD  00320034
C     PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00330034
C     FEDERAL COBOL COMPILER TESTING SERVICE.  THE FORTRAN COMPILER     00340034
C     VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00350034
C     DATA, AND AN EXECUTIVE SYSTEM.  EACH AUDIT ROUTINE IS A FORTRAN   00360034
C     PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC  00370034
C     LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00380034
C     OF EXECUTING THESE TESTS.                                         00390034
C                                                                       00400034
C         THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00410034
C     FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978.                 00420034
C                                                                       00430034
C         SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO -             00440034
C                                                                       00450034
C              NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY           00460034
C                   SOFTWARE STANDARDS VALIDATION GROUP                 00470034
C                          BUILDING 225  RM A266                        00480034
C                         GAITHERSBURG, MD  20899                       00490034
C      **********************************************************       00500034
C                                                                       00510034
C                                                                       00520034
C                                                                       00530034
C     INITIALIZATION SECTION                                            00540034
C                                                                       00550034
C     INITIALIZE CONSTANTS                                              00560034
C      **************                                                   00570034
C     I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER.         00580034
      I01 = 5                                                           00590034
C     I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER.             00600034
      I02 = 6                                                           00610034
C     SYSTEM ENVIRONMENT SECTION                                        00620034
C                                                                       00630034
CX010    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00640034
C     THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5      00650034
C     (UNIT NUMBER FOR CARD READER).                                    00660034
CX011    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00670034
C     THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00680034
C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE.         00690034
C                                                                       00700034
CX020    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00710034
C     THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6      00720034
C     (UNIT NUMBER FOR PRINTER).                                        00730034
CX021    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00740034
C     THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00750034
C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE.         00760034
C                                                                       00770034
      IVPASS=0                                                          00780034
      IVFAIL=0                                                          00790034
      IVDELE=0                                                          00800034
      ICZERO=0                                                          00810034
C                                                                       00820034
C     WRITE PAGE HEADERS                                                00830034
      WRITE (I02,90000)                                                 00840034
      WRITE (I02,90001)                                                 00850034
      WRITE (I02,90002)                                                 00860034
      WRITE (I02, 90002)                                                00870034
      WRITE (I02,90003)                                                 00880034
      WRITE (I02,90002)                                                 00890034
      WRITE (I02,90004)                                                 00900034
      WRITE (I02,90002)                                                 00910034
      WRITE (I02,90011)                                                 00920034
      WRITE (I02,90002)                                                 00930034
      WRITE (I02,90002)                                                 00940034
      WRITE (I02,90005)                                                 00950034
      WRITE (I02,90006)                                                 00960034
      WRITE (I02,90002)                                                 00970034
C                                                                       00980034
C     TEST SECTION                                                      00990034
C                                                                       01000034
C         ARITHMETIC ASSIGNMENT STATEMENT                               01010034
C                                                                       01020034
C     TEST 395 THROUGH TEST 414 CONTAIN AN INTEGER VARIABLE, AN INTEGER 01030034
C     CONSTANT, AND OPERATOR * IN AN ARITHMETIC EXPRESSION.             01040034
C                                                                       01050034
C     TEST 395 THROUGH TEST 406     -  IV= IV * IC                      01060034
C                                                                       01070034
C         TEST 395 THROUGH TEST 398                                     01080034
C              POSITIVE INTEGER VARIABLE, POSITIVE INTEGER CONSTANT     01090034
C                                                                       01100034
 3951 CONTINUE                                                          01110034
      IVTNUM = 395                                                      01120034
C                                                                       01130034
C      ****  TEST 395  ****                                             01140034
C                                                                       01150034
      IF (ICZERO) 33950, 3950, 33950                                    01160034
 3950 CONTINUE                                                          01170034
      IVON01 = 2                                                        01180034
      IVCOMP = IVON01 * 3                                               01190034
      GO TO 43950                                                       01200034
33950 IVDELE = IVDELE + 1                                               01210034
      WRITE (I02,80003) IVTNUM                                          01220034
      IF (ICZERO) 43950, 3961, 43950                                    01230034
43950 IF (IVCOMP -6) 23950,13950,23950                                  01240034
13950 IVPASS = IVPASS + 1                                               01250034
      WRITE (I02,80001) IVTNUM                                          01260034
      GO TO 3961                                                        01270034
23950 IVFAIL = IVFAIL + 1                                               01280034
      IVCORR =6                                                         01290034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01300034
 3961 CONTINUE                                                          01310034
      IVTNUM = 396                                                      01320034
C                                                                       01330034
C      ****  TEST 396  ****                                             01340034
C                                                                       01350034
      IF (ICZERO) 33960, 3960, 33960                                    01360034
 3960 CONTINUE                                                          01370034
      IVON01 = 13                                                       01380034
      IVCOMP = IVON01 * 11                                              01390034
      GO TO 43960                                                       01400034
33960 IVDELE = IVDELE + 1                                               01410034
      WRITE (I02,80003) IVTNUM                                          01420034
      IF (ICZERO) 43960, 3971, 43960                                    01430034
43960 IF (IVCOMP - 143) 23960,13960,23960                               01440034
13960 IVPASS = IVPASS + 1                                               01450034
      WRITE (I02,80001) IVTNUM                                          01460034
      GO TO 3971                                                        01470034
23960 IVFAIL = IVFAIL + 1                                               01480034
      IVCORR = 143                                                      01490034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01500034
 3971 CONTINUE                                                          01510034
      IVTNUM = 397                                                      01520034
C                                                                       01530034
C      ****  TEST 397  ****                                             01540034
C                                                                       01550034
      IF (ICZERO) 33970, 3970, 33970                                    01560034
 3970 CONTINUE                                                          01570034
      IVON01 = 223                                                      01580034
      IVCOMP = IVON01 * 99                                              01590034
      GO TO 43970                                                       01600034
33970 IVDELE = IVDELE + 1                                               01610034
      WRITE (I02,80003) IVTNUM                                          01620034
      IF (ICZERO) 43970, 3981, 43970                                    01630034
43970 IF (IVCOMP - 22077) 23970,13970,23970                             01640034
13970 IVPASS = IVPASS + 1                                               01650034
      WRITE (I02,80001) IVTNUM                                          01660034
      GO TO 3981                                                        01670034
23970 IVFAIL = IVFAIL + 1                                               01680034
      IVCORR = 22077                                                    01690034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01700034
 3981 CONTINUE                                                          01710034
      IVTNUM = 398                                                      01720034
C                                                                       01730034
C      ****  TEST 398  ****                                             01740034
C                                                                       01750034
      IF (ICZERO) 33980, 3980, 33980                                    01760034
 3980 CONTINUE                                                          01770034
      IVON01 = 11235                                                    01780034
      IVCOMP = IVON01 * 2                                               01790034
      GO TO 43980                                                       01800034
33980 IVDELE = IVDELE + 1                                               01810034
      WRITE (I02,80003) IVTNUM                                          01820034
      IF (ICZERO) 43980, 3991, 43980                                    01830034
43980 IF (IVCOMP - 22470) 23980,13980,23980                             01840034
13980 IVPASS = IVPASS + 1                                               01850034
      WRITE (I02,80001) IVTNUM                                          01860034
      GO TO 3991                                                        01870034
23980 IVFAIL = IVFAIL + 1                                               01880034
      IVCORR = 22470                                                    01890034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          01900034
C                                                                       01910034
C         TEST 399 THROUGH TEST 402                                     01920034
C             NEGATIVE INTEGER VARIABLE, POSITIVE INTEGER CONSTANT      01930034
C                                                                       01940034
 3991 CONTINUE                                                          01950034
      IVTNUM = 399                                                      01960034
C                                                                       01970034
C       ****  TEST 399  ****                                            01980034
C                                                                       01990034
      IF (ICZERO) 33990, 3990, 33990                                    02000034
 3990 CONTINUE                                                          02010034
      IVON01 = -2                                                       02020034
      IVCOMP = IVON01 * 3                                               02030034
      GO TO 43990                                                       02040034
33990 IVDELE = IVDELE + 1                                               02050034
      WRITE (I02,80003) IVTNUM                                          02060034
      IF (ICZERO) 43990, 4001, 43990                                    02070034
43990 IF (IVCOMP +6) 23990,13990,23990                                  02080034
13990 IVPASS = IVPASS + 1                                               02090034
      WRITE (I02,80001) IVTNUM                                          02100034
      GO TO 4001                                                        02110034
23990 IVFAIL = IVFAIL + 1                                               02120034
      IVCORR = -6                                                       02130034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02140034
 4001 CONTINUE                                                          02150034
      IVTNUM = 400                                                      02160034
C                                                                       02170034
C      ****  TEST 400  ****                                             02180034
C                                                                       02190034
      IF (ICZERO) 34000, 4000, 34000                                    02200034
 4000 CONTINUE                                                          02210034
      IVON01 = -13                                                      02220034
      IVCOMP =IVON01*11                                                 02230034
      GO TO 44000                                                       02240034
34000 IVDELE = IVDELE + 1                                               02250034
      WRITE (I02,80003) IVTNUM                                          02260034
      IF (ICZERO) 44000, 4011, 44000                                    02270034
44000 IF (IVCOMP +143) 24000,14000,24000                                02280034
14000 IVPASS = IVPASS + 1                                               02290034
      WRITE (I02,80001) IVTNUM                                          02300034
      GO TO 4011                                                        02310034
24000 IVFAIL = IVFAIL + 1                                               02320034
      IVCORR = -143                                                     02330034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02340034
 4011 CONTINUE                                                          02350034
      IVTNUM = 401                                                      02360034
C                                                                       02370034
C       ****  TEST 401  ****                                            02380034
C                                                                       02390034
      IF (ICZERO) 34010, 4010, 34010                                    02400034
 4010 CONTINUE                                                          02410034
      IVON01 = -223                                                     02420034
      IVCOMP = IVON01*99                                                02430034
      GO TO 44010                                                       02440034
34010 IVDELE = IVDELE + 1                                               02450034
      WRITE (I02,80003) IVTNUM                                          02460034
      IF (ICZERO) 44010, 4021, 44010                                    02470034
44010 IF (IVCOMP + 22077) 24010,14010,24010                             02480034
14010 IVPASS = IVPASS + 1                                               02490034
      WRITE (I02,80001) IVTNUM                                          02500034
      GO TO 4021                                                        02510034
24010 IVFAIL = IVFAIL + 1                                               02520034
      IVCORR = -22077                                                   02530034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02540034
 4021 CONTINUE                                                          02550034
      IVTNUM = 402                                                      02560034
C                                                                       02570034
C       ****  TEST 402  ****                                            02580034
C                                                                       02590034
      IF (ICZERO) 34020, 4020, 34020                                    02600034
 4020 CONTINUE                                                          02610034
      IVON01 = -11235                                                   02620034
      IVCOMP = IVON01*2                                                 02630034
      GO TO 44020                                                       02640034
34020 IVDELE = IVDELE + 1                                               02650034
      WRITE (I02,80003) IVTNUM                                          02660034
      IF (ICZERO) 44020, 4031, 44020                                    02670034
44020 IF (IVCOMP+22470) 24020,14020,24020                               02680034
14020 IVPASS = IVPASS + 1                                               02690034
      WRITE (I02,80001) IVTNUM                                          02700034
      GO TO 4031                                                        02710034
24020 IVFAIL = IVFAIL + 1                                               02720034
      IVCORR = -22470                                                   02730034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02740034
C                                                                       02750034
C          TEST 403 AND TEST 404                                        02760034
C              NEGATIVE INTEGER VARIABLE, NEGATIVE INTEGER CONSTANT     02770034
C                                                                       02780034
 4031 CONTINUE                                                          02790034
      IVTNUM = 403                                                      02800034
C                                                                       02810034
C       ****  TEST 403  ****                                            02820034
C                                                                       02830034
      IF (ICZERO) 34030, 4030, 34030                                    02840034
 4030 CONTINUE                                                          02850034
      IVON01=-2                                                         02860034
      IVCOMP = IVON01*(-3)                                              02870034
      GO TO 44030                                                       02880034
34030 IVDELE = IVDELE + 1                                               02890034
      WRITE (I02,80003) IVTNUM                                          02900034
      IF (ICZERO) 44030, 4041, 44030                                    02910034
44030 IF (IVCOMP -6) 24030,14030,24030                                  02920034
14030 IVPASS = IVPASS + 1                                               02930034
      WRITE (I02,80001) IVTNUM                                          02940034
      GO TO 4041                                                        02950034
24030 IVFAIL = IVFAIL + 1                                               02960034
      IVCORR =6                                                         02970034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          02980034
 4041 CONTINUE                                                          02990034
      IVTNUM = 404                                                      03000034
C                                                                       03010034
C       ****  TEST 404  ****                                            03020034
C                                                                       03030034
      IF (ICZERO) 34040, 4040, 34040                                    03040034
 4040 CONTINUE                                                          03050034
      IVON01 = -13                                                      03060034
      IVCOMP = IVON01 * (-11)                                           03070034
      GO TO 44040                                                       03080034
34040 IVDELE = IVDELE + 1                                               03090034
      WRITE (I02,80003) IVTNUM                                          03100034
      IF (ICZERO) 44040, 4051, 44040                                    03110034
44040 IF (IVCOMP -143) 24040,14040,24040                                03120034
14040 IVPASS = IVPASS + 1                                               03130034
      WRITE (I02,80001) IVTNUM                                          03140034
      GO TO 4051                                                        03150034
24040 IVFAIL = IVFAIL + 1                                               03160034
      IVCORR = 143                                                      03170034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03180034
C                                                                       03190034
C          TEST 405 AND TEST 406                                        03200034
C              POSITIVE INTEGER VARIABLE, NEGATIVE INTEGER CONSTANT     03210034
C                                                                       03220034
 4051 CONTINUE                                                          03230034
      IVTNUM = 405                                                      03240034
C                                                                       03250034
C       ****  TEST 405  ****                                            03260034
C                                                                       03270034
      IF (ICZERO) 34050, 4050, 34050                                    03280034
 4050 CONTINUE                                                          03290034
      IVON01 = 223                                                      03300034
      IVCOMP = IVON01 * (-99)                                           03310034
      GO TO 44050                                                       03320034
34050 IVDELE = IVDELE + 1                                               03330034
      WRITE (I02,80003) IVTNUM                                          03340034
      IF (ICZERO) 44050, 4061, 44050                                    03350034
44050 IF (IVCOMP + 22077) 24050,14050,24050                             03360034
14050 IVPASS = IVPASS + 1                                               03370034
      WRITE (I02,80001) IVTNUM                                          03380034
      GO TO 4061                                                        03390034
24050 IVFAIL = IVFAIL + 1                                               03400034
      IVCORR = -22077                                                   03410034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03420034
 4061 CONTINUE                                                          03430034
      IVTNUM = 406                                                      03440034
C                                                                       03450034
C       ****  TEST 406  ****                                            03460034
C                                                                       03470034
      IF (ICZERO) 34060, 4060, 34060                                    03480034
 4060 CONTINUE                                                          03490034
      IVON01 = 11235                                                    03500034
      IVCOMP = IVON01 * (-2)                                            03510034
      GO TO 44060                                                       03520034
34060 IVDELE = IVDELE + 1                                               03530034
      WRITE (I02,80003) IVTNUM                                          03540034
      IF (ICZERO) 44060, 4071, 44060                                    03550034
44060 IF (IVCOMP + 22470) 24060,14060,24060                             03560034
14060 IVPASS = IVPASS + 1                                               03570034
      WRITE (I02,80001) IVTNUM                                          03580034
      GO TO 4071                                                        03590034
24060 IVFAIL = IVFAIL + 1                                               03600034
      IVCORR = -22470                                                   03610034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03620034
C                                                                       03630034
C      TEST 407 THROUGH TEST 414    -   IV = IC * IV                    03640034
C                                                                       03650034
C          TEST 407 AND TEST 408                                        03660034
C               POSITIVE INTEGER CONSTANT, POSITIVE INTEGER VARIABLE    03670034
C                                                                       03680034
 4071 CONTINUE                                                          03690034
      IVTNUM = 407                                                      03700034
C                                                                       03710034
C       ****  TEST 407  ****                                            03720034
C                                                                       03730034
      IF (ICZERO) 34070, 4070, 34070                                    03740034
 4070 CONTINUE                                                          03750034
      IVON02 = 11                                                       03760034
      IVCOMP = 13*IVON02                                                03770034
      GO TO 44070                                                       03780034
34070 IVDELE = IVDELE + 1                                               03790034
      WRITE (I02,80003) IVTNUM                                          03800034
      IF (ICZERO) 44070, 4081, 44070                                    03810034
44070 IF (IVCOMP - 143) 24070,14070,24070                               03820034
14070 IVPASS = IVPASS + 1                                               03830034
      WRITE (I02,80001) IVTNUM                                          03840034
      GO TO 4081                                                        03850034
24070 IVFAIL = IVFAIL + 1                                               03860034
      IVCORR = 143                                                      03870034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          03880034
 4081 CONTINUE                                                          03890034
      IVTNUM = 408                                                      03900034
C                                                                       03910034
C       ****  TEST 408  ****                                            03920034
C                                                                       03930034
      IF (ICZERO) 34080, 4080, 34080                                    03940034
 4080 CONTINUE                                                          03950034
      IVON02 = +11                                                      03960034
      IVCOMP = +13 * IVON02                                             03970034
      GO TO 44080                                                       03980034
34080 IVDELE = IVDELE + 1                                               03990034
      WRITE (I02,80003) IVTNUM                                          04000034
      IF (ICZERO) 44080, 4091, 44080                                    04010034
44080 IF (IVCOMP - 143) 24080,14080,24080                               04020034
14080 IVPASS = IVPASS + 1                                               04030034
      WRITE (I02,80001) IVTNUM                                          04040034
      GO TO 4091                                                        04050034
24080 IVFAIL = IVFAIL + 1                                               04060034
      IVCORR = 143                                                      04070034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04080034
C                                                                       04090034
C          TEST 409 AND TEST 410                                        04100034
C               POSITIVE INTEGER CONSTANT, NEGATIVE INTEGER VARIABLE    04110034
C                                                                       04120034
 4091 CONTINUE                                                          04130034
      IVTNUM = 409                                                      04140034
C                                                                       04150034
C       ****  TEST 409  ****                                            04160034
C                                                                       04170034
      IF (ICZERO) 34090, 4090, 34090                                    04180034
 4090 CONTINUE                                                          04190034
      IVON02 = -99                                                      04200034
      IVCOMP = 223 * IVON02                                             04210034
      GO TO 44090                                                       04220034
34090 IVDELE = IVDELE + 1                                               04230034
      WRITE (I02,80003) IVTNUM                                          04240034
      IF (ICZERO) 44090, 4101, 44090                                    04250034
44090 IF (IVCOMP + 22077) 24090,14090,24090                             04260034
14090 IVPASS = IVPASS + 1                                               04270034
      WRITE (I02,80001) IVTNUM                                          04280034
      GO TO 4101                                                        04290034
24090 IVFAIL = IVFAIL + 1                                               04300034
      IVCORR =-22077                                                    04310034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04320034
 4101 CONTINUE                                                          04330034
      IVTNUM = 410                                                      04340034
C                                                                       04350034
C       ****  TEST 410  ****                                            04360034
C                                                                       04370034
      IF (ICZERO) 34100, 4100, 34100                                    04380034
 4100 CONTINUE                                                          04390034
      IVON02 = -99                                                      04400034
      IVCOMP = +223*IVON02                                              04410034
      GO TO 44100                                                       04420034
34100 IVDELE = IVDELE + 1                                               04430034
      WRITE (I02,80003) IVTNUM                                          04440034
      IF (ICZERO) 44100, 4111, 44100                                    04450034
44100 IF (IVCOMP + 22077) 24100,14100,24100                             04460034
14100 IVPASS = IVPASS + 1                                               04470034
      WRITE (I02,80001) IVTNUM                                          04480034
      GO TO 4111                                                        04490034
24100 IVFAIL = IVFAIL + 1                                               04500034
      IVCORR = -22077                                                   04510034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04520034
C                                                                       04530034
C          TEST 411 AND TEST 412                                        04540034
C              NEGATIVE INTEGER CONSTANT, POSITIVE INTEGER VARIABLE     04550034
C                                                                       04560034
 4111 CONTINUE                                                          04570034
      IVTNUM = 411                                                      04580034
C                                                                       04590034
C       ****  TEST 411  ****                                            04600034
C                                                                       04610034
      IF (ICZERO) 34110, 4110, 34110                                    04620034
 4110 CONTINUE                                                          04630034
      IVON02 = 2                                                        04640034
      IVCOMP = (-11235) * IVON02                                        04650034
      GO TO 44110                                                       04660034
34110 IVDELE = IVDELE + 1                                               04670034
      WRITE (I02,80003) IVTNUM                                          04680034
      IF (ICZERO) 44110, 4121, 44110                                    04690034
44110 IF (IVCOMP + 22470) 24110,14110,24110                             04700034
14110 IVPASS = IVPASS + 1                                               04710034
      WRITE (I02,80001) IVTNUM                                          04720034
      GO TO 4121                                                        04730034
24110 IVFAIL = IVFAIL + 1                                               04740034
      IVCORR = -22470                                                   04750034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04760034
 4121 CONTINUE                                                          04770034
      IVTNUM = 412                                                      04780034
C                                                                       04790034
C       ****  TEST 412  ****                                            04800034
C                                                                       04810034
      IF (ICZERO) 34120, 4120, 34120                                    04820034
 4120 CONTINUE                                                          04830034
      IVON02 = +2                                                       04840034
      IVCOMP = -11235 * IVON02                                          04850034
      GO TO 44120                                                       04860034
34120 IVDELE = IVDELE + 1                                               04870034
      WRITE (I02,80003) IVTNUM                                          04880034
      IF (ICZERO) 44120, 4131, 44120                                    04890034
44120 IF (IVCOMP + 22470) 24120,14120,24120                             04900034
14120 IVPASS=IVPASS + 1                                                 04910034
      WRITE (I02,80001) IVTNUM                                          04920034
      GO TO 4131                                                        04930034
24120 IVFAIL = IVFAIL + 1                                               04940034
      IVCORR = -22470                                                   04950034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          04960034
C                                                                       04970034
C          TEST 413 AND TEST 414                                        04980034
C                NEGATIVE INTEGER CONSTANT, NEGATIVE INTEGER VARIABLE   04990034
C                                                                       05000034
 4131 CONTINUE                                                          05010034
      IVTNUM = 413                                                      05020034
C                                                                       05030034
C       ****  TEST 413  ****                                            05040034
C                                                                       05050034
      IF (ICZERO) 34130, 4130, 34130                                    05060034
 4130 CONTINUE                                                          05070034
      IVON02 = -3                                                       05080034
      IVCOMP = (-2) * IVON02                                            05090034
      GO TO 44130                                                       05100034
34130 IVDELE = IVDELE + 1                                               05110034
      WRITE (I02,80003) IVTNUM                                          05120034
      IF (ICZERO) 44130, 4141, 44130                                    05130034
44130 IF (IVCOMP - 6) 24130,14130,24130                                 05140034
14130 IVPASS = IVPASS + 1                                               05150034
      WRITE (I02,80001) IVTNUM                                          05160034
      GO TO 4141                                                        05170034
24130 IVFAIL = IVFAIL + 1                                               05180034
      IVCORR = 6                                                        05190034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          05200034
 4141 CONTINUE                                                          05210034
      IVTNUM = 414                                                      05220034
C                                                                       05230034
C       ****  TEST 414  ****                                            05240034
C                                                                       05250034
      IF (ICZERO) 34140, 4140, 34140                                    05260034
 4140 CONTINUE                                                          05270034
      IVON02 = -3                                                       05280034
      IVCOMP = -2 * IVON02                                              05290034
      GO TO 44140                                                       05300034
34140 IVDELE = IVDELE + 1                                               05310034
      WRITE (I02,80003) IVTNUM                                          05320034
      IF (ICZERO) 44140, 4151, 44140                                    05330034
44140 IF (IVCOMP - 6) 24140,14140,24140                                 05340034
14140 IVPASS = IVPASS + 1                                               05350034
      WRITE (I02,80001) IVTNUM                                          05360034
      GO TO 4151                                                        05370034
24140 IVFAIL = IVFAIL + 1                                               05380034
      IVCORR = 6                                                        05390034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          05400034
C                                                                       05410034
C      TEST 415  THROUGH TEST 429 CONTAIN TWO INTEGER CONSTANTS,        05420034
C      ONE INTEGER VARIABLE AND OPERATOR * IN ARITHMETIC EXPRESSION.    05430034
C                                                                       05440034
 4151 CONTINUE                                                          05450034
      IVTNUM = 415                                                      05460034
C                                                                       05470034
C       ****  TEST 415  ****                                            05480034
C                                                                       05490034
      IF (ICZERO) 34150, 4150, 34150                                    05500034
 4150 CONTINUE                                                          05510034
      IVON01 = 2                                                        05520034
      IVCOMP = IVON01 * 3 * 4                                           05530034
      GO TO 44150                                                       05540034
34150 IVDELE = IVDELE + 1                                               05550034
      WRITE (I02,80003) IVTNUM                                          05560034
      IF (ICZERO) 44150, 4161, 44150                                    05570034
44150 IF (IVCOMP - 24) 24150,14150,24150                                05580034
14150 IVPASS = IVPASS + 1                                               05590034
      WRITE (I02,80001) IVTNUM                                          05600034
      GO TO 4161                                                        05610034
24150 IVFAIL = IVFAIL + 1                                               05620034
      IVCORR = 24                                                       05630034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          05640034
 4161 CONTINUE                                                          05650034
      IVTNUM = 416                                                      05660034
C                                                                       05670034
C       ****  TEST 416  ****                                            05680034
C                                                                       05690034
      IF (ICZERO) 34160, 4160, 34160                                    05700034
 4160 CONTINUE                                                          05710034
      IVON01 = -2                                                       05720034
      IVCOMP = IVON01 *3*4                                              05730034
      GO TO 44160                                                       05740034
34160 IVDELE = IVDELE + 1                                               05750034
      WRITE (I02,80003) IVTNUM                                          05760034
      IF (ICZERO) 44160, 4171, 44160                                    05770034
44160 IF (IVCOMP +24) 24160,14160,24160                                 05780034
14160 IVPASS = IVPASS + 1                                               05790034
      WRITE (I02,80001) IVTNUM                                          05800034
      GO TO 4171                                                        05810034
24160 IVFAIL = IVFAIL + 1                                               05820034
      IVCORR = -24                                                      05830034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          05840034
 4171 CONTINUE                                                          05850034
      IVTNUM = 417                                                      05860034
C                                                                       05870034
C       ****  TEST 417  ****                                            05880034
C                                                                       05890034
      IF (ICZERO) 34170, 4170, 34170                                    05900034
 4170 CONTINUE                                                          05910034
      IVON01 = -2                                                       05920034
      IVCOMP = IVON01*3*(-4)                                            05930034
      GO TO 44170                                                       05940034
34170 IVDELE = IVDELE + 1                                               05950034
      WRITE (I02,80003) IVTNUM                                          05960034
      IF (ICZERO) 44170, 4181, 44170                                    05970034
44170 IF (IVCOMP -24) 24170,14170,24170                                 05980034
14170 IVPASS = IVPASS + 1                                               05990034
      WRITE (I02,80001) IVTNUM                                          06000034
      GO TO 4181                                                        06010034
24170 IVFAIL = IVFAIL + 1                                               06020034
      IVCORR = 24                                                       06030034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          06040034
 4181 CONTINUE                                                          06050034
      IVTNUM = 418                                                      06060034
C                                                                       06070034
C       ****  TEST 418  ****                                            06080034
C                                                                       06090034
      IF (ICZERO) 34180, 4180, 34180                                    06100034
 4180 CONTINUE                                                          06110034
      IVON01 = -2                                                       06120034
      IVCOMP = IVON01*(-3)*(-4)                                         06130034
      GO TO 44180                                                       06140034
34180 IVDELE = IVDELE + 1                                               06150034
      WRITE (I02,80003) IVTNUM                                          06160034
      IF (ICZERO) 44180, 4191, 44180                                    06170034
44180 IF (IVCOMP +24) 24180,14180,24180                                 06180034
14180 IVPASS = IVPASS + 1                                               06190034
      WRITE (I02,80001) IVTNUM                                          06200034
      GO TO 4191                                                        06210034
24180 IVFAIL = IVFAIL + 1                                               06220034
      IVCORR = -24                                                      06230034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          06240034
 4191 CONTINUE                                                          06250034
      IVTNUM = 419                                                      06260034
C                                                                       06270034
C       ****  TEST 419  ****                                            06280034
C                                                                       06290034
      IF (ICZERO) 34190, 4190, 34190                                    06300034
 4190 CONTINUE                                                          06310034
      IVON02 = 51                                                       06320034
      IVCOMP = 23*IVON02*13                                             06330034
      GO TO 44190                                                       06340034
34190 IVDELE = IVDELE + 1                                               06350034
      WRITE (I02,80003) IVTNUM                                          06360034
      IF (ICZERO) 44190, 4201, 44190                                    06370034
44190 IF (IVCOMP-15249) 24190,14190,24190                               06380034
14190 IVPASS = IVPASS + 1                                               06390034
      WRITE (I02,80001) IVTNUM                                          06400034
      GO TO 4201                                                        06410034
24190 IVFAIL = IVFAIL + 1                                               06420034
      IVCORR = 15249                                                    06430034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          06440034
 4201 CONTINUE                                                          06450034
      IVTNUM = 420                                                      06460034
C                                                                       06470034
C       ****  TEST 420  ****                                            06480034
C                                                                       06490034
      IF (ICZERO) 34200, 4200, 34200                                    06500034
 4200 CONTINUE                                                          06510034
      IVON02 = -51                                                      06520034
      IVCOMP = 23*IVON02*(-13)                                          06530034
      GO TO 44200                                                       06540034
34200 IVDELE = IVDELE + 1                                               06550034
      WRITE (I02,80003) IVTNUM                                          06560034
      IF (ICZERO) 44200, 4211, 44200                                    06570034
44200 IF (IVCOMP - 15249) 24200,14200,24200                             06580034
14200 IVPASS = IVPASS + 1                                               06590034
      WRITE (I02,80001) IVTNUM                                          06600034
      GO TO 4211                                                        06610034
24200 IVFAIL = IVFAIL + 1                                               06620034
      IVCORR = 15249                                                    06630034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          06640034
 4211 CONTINUE                                                          06650034
      IVTNUM = 421                                                      06660034
C                                                                       06670034
C       ****  TEST 421  ****                                            06680034
C                                                                       06690034
      IF (ICZERO) 34210, 4210, 34210                                    06700034
 4210 CONTINUE                                                          06710034
      IVON02 = -51                                                      06720034
      IVCOMP = 23*IVON02*13                                             06730034
      GO TO 44210                                                       06740034
34210 IVDELE = IVDELE + 1                                               06750034
      WRITE (I02,80003) IVTNUM                                          06760034
      IF (ICZERO) 44210, 4221, 44210                                    06770034
44210 IF (IVCOMP+15249) 24210,14210,24210                               06780034
14210 IVPASS = IVPASS + 1                                               06790034
      WRITE (I02,80001) IVTNUM                                          06800034
      GO TO 4221                                                        06810034
24210 IVFAIL = IVFAIL + 1                                               06820034
      IVCORR = -15249                                                   06830034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          06840034
 4221 CONTINUE                                                          06850034
      IVTNUM = 422                                                      06860034
C                                                                       06870034
C       ****  TEST 422  ****                                            06880034
C                                                                       06890034
      IF (ICZERO) 34220, 4220, 34220                                    06900034
 4220 CONTINUE                                                          06910034
      IVON02 = -51                                                      06920034
      IVCOMP =(-23)*IVON02*(-13)                                        06930034
      GO TO 44220                                                       06940034
34220 IVDELE = IVDELE + 1                                               06950034
      WRITE (I02,80003) IVTNUM                                          06960034
      IF (ICZERO) 44220, 4231, 44220                                    06970034
44220 IF (IVCOMP+15249) 24220,14220,24220                               06980034
14220 IVPASS = IVPASS + 1                                               06990034
      WRITE (I02,80001) IVTNUM                                          07000034
      GO TO 4231                                                        07010034
24220 IVFAIL = IVFAIL + 1                                               07020034
      IVCORR = -15249                                                   07030034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          07040034
 4231 CONTINUE                                                          07050034
      IVTNUM = 423                                                      07060034
C                                                                       07070034
C       ****  TEST 423  ****                                            07080034
C                                                                       07090034
      IF (ICZERO) 34230, 4230, 34230                                    07100034
 4230 CONTINUE                                                          07110034
      IVON03 = 5461                                                     07120034
      IVCOMP = 2*3*IVON03                                               07130034
      GO TO 44230                                                       07140034
34230 IVDELE = IVDELE + 1                                               07150034
      WRITE (I02,80003) IVTNUM                                          07160034
      IF (ICZERO) 44230, 4241, 44230                                    07170034
44230 IF (IVCOMP - 32766) 24230,14230,24230                             07180034
14230 IVPASS = IVPASS + 1                                               07190034
      WRITE (I02,80001) IVTNUM                                          07200034
      GO TO 4241                                                        07210034
24230 IVFAIL = IVFAIL + 1                                               07220034
      IVCORR = 32766                                                    07230034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          07240034
 4241 CONTINUE                                                          07250034
      IVTNUM = 424                                                      07260034
C                                                                       07270034
C       ****  TEST 424  ****                                            07280034
C                                                                       07290034
      IF (ICZERO) 34240, 4240, 34240                                    07300034
 4240 CONTINUE                                                          07310034
      IVON03 = -5461                                                    07320034
      IVCOMP = 2*3*IVON03                                               07330034
      GO TO 44240                                                       07340034
34240 IVDELE = IVDELE + 1                                               07350034
      WRITE (I02,80003) IVTNUM                                          07360034
      IF (ICZERO) 44240, 4251, 44240                                    07370034
44240 IF (IVCOMP +32766) 24240,14240,24240                              07380034
14240 IVPASS = IVPASS + 1                                               07390034
      WRITE (I02,80001) IVTNUM                                          07400034
      GO TO 4251                                                        07410034
24240 IVFAIL = IVFAIL + 1                                               07420034
      IVCORR = -32766                                                   07430034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          07440034
 4251 CONTINUE                                                          07450034
      IVTNUM = 425                                                      07460034
C                                                                       07470034
C       ****  TEST 425  ****                                            07480034
C                                                                       07490034
      IF (ICZERO) 34250, 4250, 34250                                    07500034
 4250 CONTINUE                                                          07510034
      IVON03 = -5461                                                    07520034
      IVCOMP = -2*3*IVON03                                              07530034
      GO TO 44250                                                       07540034
34250 IVDELE = IVDELE + 1                                               07550034
      WRITE (I02,80003) IVTNUM                                          07560034
      IF (ICZERO) 44250, 4261, 44250                                    07570034
44250 IF (IVCOMP - 32766) 24250,14250,24250                             07580034
14250 IVPASS = IVPASS + 1                                               07590034
      WRITE (I02,80001) IVTNUM                                          07600034
      GO TO 4261                                                        07610034
24250 IVFAIL = IVFAIL + 1                                               07620034
      IVCORR = 32766                                                    07630034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          07640034
C                                                                       07650034
C      TEST 426 THROUGH TEST 429 USE PARENTHESES TO GROUP ELEMENTS      07660034
C      IN ARITHMETIC EXPRESSION.                                        07670034
C                                                                       07680034
 4261 CONTINUE                                                          07690034
      IVTNUM = 426                                                      07700034
C                                                                       07710034
C       ****  TEST 426  ****                                            07720034
C                                                                       07730034
      IF (ICZERO) 34260, 4260, 34260                                    07740034
 4260 CONTINUE                                                          07750034
      IVON02 = 51                                                       07760034
      IVCOMP = (23*IVON02)*13                                           07770034
      GO TO 44260                                                       07780034
34260 IVDELE = IVDELE + 1                                               07790034
      WRITE (I02,80003) IVTNUM                                          07800034
      IF (ICZERO) 44260, 4271, 44260                                    07810034
44260 IF (IVCOMP -15249) 24260,14260,24260                              07820034
14260 IVPASS = IVPASS + 1                                               07830034
      WRITE (I02,80001) IVTNUM                                          07840034
      GO TO 4271                                                        07850034
24260 IVFAIL = IVFAIL + 1                                               07860034
      IVCORR = 15249                                                    07870034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          07880034
 4271 CONTINUE                                                          07890034
      IVTNUM = 427                                                      07900034
C                                                                       07910034
C       ****  TEST 427  ****                                            07920034
C                                                                       07930034
      IF (ICZERO) 34270, 4270, 34270                                    07940034
 4270 CONTINUE                                                          07950034
      IVON02 = 51                                                       07960034
      IVCOMP = 23*(IVON02*13)                                           07970034
      GO TO 44270                                                       07980034
34270 IVDELE = IVDELE + 1                                               07990034
      WRITE (I02,80003) IVTNUM                                          08000034
      IF (ICZERO) 44270, 4281, 44270                                    08010034
44270 IF (IVCOMP-15249) 24270,14270,24270                               08020034
14270 IVPASS = IVPASS + 1                                               08030034
      WRITE (I02,80001) IVTNUM                                          08040034
      GO TO 4281                                                        08050034
24270 IVFAIL = IVFAIL + 1                                               08060034
      IVCORR = 15249                                                    08070034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          08080034
 4281 CONTINUE                                                          08090034
      IVTNUM = 428                                                      08100034
C                                                                       08110034
C       ****  TEST 428  ****                                            08120034
C                                                                       08130034
      IF (ICZERO) 34280, 4280, 34280                                    08140034
 4280 CONTINUE                                                          08150034
      IVON02 = -51                                                      08160034
      IVCOMP = -23 * (IVON02*(+13))                                     08170034
      GO TO 44280                                                       08180034
34280 IVDELE = IVDELE + 1                                               08190034
      WRITE (I02,80003) IVTNUM                                          08200034
      IF (ICZERO) 44280, 4291, 44280                                    08210034
44280 IF (IVCOMP - 15249)24280,14280,24280                              08220034
14280 IVPASS = IVPASS + 1                                               08230034
      WRITE (I02,80001) IVTNUM                                          08240034
      GO TO 4291                                                        08250034
24280 IVFAIL = IVFAIL + 1                                               08260034
      IVCORR = 15249                                                    08270034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          08280034
 4291 CONTINUE                                                          08290034
      IVTNUM = 429                                                      08300034
C                                                                       08310034
C       ****  TEST 429  ****                                            08320034
C                                                                       08330034
      IF (ICZERO) 34290, 4290, 34290                                    08340034
 4290 CONTINUE                                                          08350034
      IVON02 = -51                                                      08360034
      IVCOMP = (-23)*(IVON02*(-13))                                     08370034
      GO TO 44290                                                       08380034
34290 IVDELE = IVDELE + 1                                               08390034
      WRITE (I02,80003) IVTNUM                                          08400034
      IF (ICZERO) 44290, 4301, 44290                                    08410034
44290 IF (IVCOMP + 15249) 24290,14290,24290                             08420034
14290 IVPASS = IVPASS + 1                                               08430034
      WRITE (I02,80001) IVTNUM                                          08440034
      GO TO 4301                                                        08450034
24290 IVFAIL = IVFAIL + 1                                               08460034
      IVCORR = -15249                                                   08470034
      WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR                          08480034
C     ****   END OF TESTS   ****                                        08490034
 4301 CONTINUE                                                          08500034
C                                                                       08510034
C     WRITE PAGE FOOTINGS AND RUN SUMMARIES                             08520034
99999 CONTINUE                                                          08530034
      WRITE (I02,90002)                                                 08540034
      WRITE (I02,90006)                                                 08550034
      WRITE (I02,90002)                                                 08560034
      WRITE (I02,90002)                                                 08570034
      WRITE (I02,90007)                                                 08580034
      WRITE (I02,90002)                                                 08590034
      WRITE (I02,90008)  IVFAIL                                         08600034
      WRITE (I02,90009) IVPASS                                          08610034
      WRITE (I02,90010) IVDELE                                          08620034
C                                                                       08630034
C                                                                       08640034
C     TERMINATE ROUTINE EXECUTION                                       08650034
      STOP                                                              08660034
C                                                                       08670034
C     FORMAT STATEMENTS FOR PAGE HEADERS                                08680034
90000 FORMAT ("1")                                                      08690034
90002 FORMAT (" ")                                                      08700034
90001 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" )            08710034
90003 FORMAT (" ",21X,"VERSION 2.1" )                                   08720034
90004 FORMAT (" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" )        08730034
90005 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT") 08740034
90006 FORMAT (" ",5X,"----------------------------------------------" ) 08750034
90011 FORMAT (" ",18X,"SUBSET LEVEL TEST" )                             08760034
C                                                                       08770034
C     FORMAT STATEMENTS FOR RUN SUMMARIES                               08780034
90008 FORMAT (" ",15X,I5," ERRORS ENCOUNTERED" )                        08790034
90009 FORMAT (" ",15X,I5," TESTS PASSED" )                              08800034
90010 FORMAT (" ",15X,I5," TESTS DELETED" )                             08810034
C                                                                       08820034
C     FORMAT STATEMENTS FOR TEST RESULTS                                08830034
80001 FORMAT (" ",4X,I5,7X,"PASS")                                      08840034
80002 FORMAT (" ",4X,I5,7X,"FAIL")                                      08850034
80003 FORMAT (" ",4X,I5,7X,"DELETED")                                   08860034
80004 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6)                         08870034
80005 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5)                    08880034
C                                                                       08890034
90007 FORMAT (" ",20X,"END OF PROGRAM FM034" )                          08900034
      END                                                               08910034