FM044.f Source File


Contents

Source Code


Source Code

      PROGRAM FM044

C     COMMENT SECTION                                                   00010044
C                                                                       00020044
C     FM044                                                             00030044
C                                                                       00040044
C         THIS ROUTINE TESTS ARITHMETIC ASSIGNMENTS OF THE FORM         00050044
C     INTEGER VAR. = INTEGER VAR. <OP1> INTEGER VAR. <OP2> INTEGER VAR. 00060044
C                                                                       00070044
C     WHERE <OP1> AND <OP2> ARE ARITHMETIC OPERATORS.                   00080044
C                                                                       00090044
C      REFERENCES                                                       00100044
C        AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN,       00110044
C              X3.9-1978                                                00120044
C                                                                       00130044
C        SECTION 4.3, INTEGER TYPE                                      00140044
C        SECTION 4.3.1, INTEGER CONSTANT                                00150044
C        SECTION 6.1, ARITHMETIC EXPRESSIONS                            00160044
C        SECTION 6.6, EVALUATION OF EXPRESSIONS                         00170044
C        SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT                  00180044
C                                                                       00190044
C                                                                       00200044
C      **********************************************************       00210044
C                                                                       00220044
C         A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE         00230044
C     BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD  00240044
C     PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00250044
C     FEDERAL COBOL COMPILER TESTING SERVICE.  THE FORTRAN COMPILER     00260044
C     VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00270044
C     DATA, AND AN EXECUTIVE SYSTEM.  EACH AUDIT ROUTINE IS A FORTRAN   00280044
C     PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC  00290044
C     LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00300044
C     OF EXECUTING THESE TESTS.                                         00310044
C                                                                       00320044
C         THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00330044
C     FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978.                 00340044
C                                                                       00350044
C         SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO -             00360044
C                                                                       00370044
C              NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY           00380044
C                   SOFTWARE STANDARDS VALIDATION GROUP                 00390044
C                          BUILDING 225  RM A266                        00400044
C                         GAITHERSBURG, MD  20899                       00410044
C      **********************************************************       00420044
C                                                                       00430044
C                                                                       00440044
C                                                                       00450044
C     INITIALIZATION SECTION                                            00460044
C                                                                       00470044
C     INITIALIZE CONSTANTS                                              00480044
C      **************                                                   00490044
C     I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER.         00500044
      I01 = 5                                                           00510044
C     I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER.             00520044
      I02 = 6                                                           00530044
C     SYSTEM ENVIRONMENT SECTION                                        00540044
C                                                                       00550044
CX010    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00560044
C     THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5      00570044
C     (UNIT NUMBER FOR CARD READER).                                    00580044
CX011    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00590044
C     THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00600044
C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE.         00610044
C                                                                       00620044
CX020    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00630044
C     THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6      00640044
C     (UNIT NUMBER FOR PRINTER).                                        00650044
CX021    THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00660044
C     THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL            00670044
C     FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE.         00680044
C                                                                       00690044
      IVPASS=0                                                          00700044
      IVFAIL=0                                                          00710044
      IVDELE=0                                                          00720044
      ICZERO=0                                                          00730044
C                                                                       00740044
C     WRITE PAGE HEADERS                                                00750044
      WRITE (I02,90000)                                                 00760044
      WRITE (I02,90001)                                                 00770044
      WRITE (I02,90002)                                                 00780044
      WRITE (I02, 90002)                                                00790044
      WRITE (I02,90003)                                                 00800044
      WRITE (I02,90002)                                                 00810044
      WRITE (I02,90004)                                                 00820044
      WRITE (I02,90002)                                                 00830044
      WRITE (I02,90011)                                                 00840044
      WRITE (I02,90002)                                                 00850044
      WRITE (I02,90002)                                                 00860044
      WRITE (I02,90005)                                                 00870044
      WRITE (I02,90006)                                                 00880044
      WRITE (I02,90002)                                                 00890044
C                                                                       00900044
C     TEST SECTION                                                      00910044
C                                                                       00920044
C                  ARITHMETIC ASSIGNMENT STATEMENT                      00930044
C                                                                       00940044
C     TESTS 719 THROUGH 730 TEST STATEMENTS WHERE <OP1> IS '/' AND      00950044
C     <OP2> VARIES.                                                     00960044
C                                                                       00970044
C     TESTS 731 THROUGH 746 TEST STATEMENTS WHERE <OP1> IS '**' AND     00980044
C     <OP2> VARIES.                                                     00990044
C                                                                       01000044
C                                                                       01010044
C     TEST 719 THROUGH 721 TEST '/' FOLLOWED BY '+'.                    01020044
C                                                                       01030044
      IVTNUM = 719                                                      01040044
C                                                                       01050044
C      ****  TEST 719  ****                                             01060044
C                                                                       01070044
      IF (ICZERO) 37190, 7190, 37190                                    01080044
 7190 CONTINUE                                                          01090044
      IVON01 = 108                                                      01100044
      IVON02 =  9                                                       01110044
      IVON03 =  3                                                       01120044
      IVCOMP = IVON01 / IVON02 + IVON03                                 01130044
      GO TO 47190                                                       01140044
37190 IVDELE = IVDELE + 1                                               01150044
      WRITE (I02,80003) IVTNUM                                          01160044
      IF (ICZERO) 47190, 7201, 47190                                    01170044
47190 IF (IVCOMP - 15) 27190,17190,27190                                01180044
17190 IVPASS = IVPASS + 1                                               01190044
      WRITE (I02,80001) IVTNUM                                          01200044
      GO TO 7201                                                        01210044
27190 IVFAIL = IVFAIL + 1                                               01220044
      IVCORR = 15                                                       01230044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          01240044
 7201 CONTINUE                                                          01250044
      IVTNUM = 720                                                      01260044
C                                                                       01270044
C      ****  TEST 720  ****                                             01280044
C                                                                       01290044
      IF (ICZERO) 37200, 7200, 37200                                    01300044
 7200 CONTINUE                                                          01310044
      IVON01 = 108                                                      01320044
      IVON02 =  9                                                       01330044
      IVON03 =  3                                                       01340044
      IVCOMP = (IVON01 / IVON02) + IVON03                               01350044
      GO TO 47200                                                       01360044
37200 IVDELE = IVDELE + 1                                               01370044
      WRITE (I02,80003) IVTNUM                                          01380044
      IF (ICZERO) 47200, 7211, 47200                                    01390044
47200 IF (IVCOMP - 15) 27200,17200,27200                                01400044
17200 IVPASS = IVPASS + 1                                               01410044
      WRITE (I02,80001) IVTNUM                                          01420044
      GO TO 7211                                                        01430044
27200 IVFAIL = IVFAIL + 1                                               01440044
      IVCORR = 15                                                       01450044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          01460044
 7211 CONTINUE                                                          01470044
      IVTNUM = 721                                                      01480044
C                                                                       01490044
C      ****  TEST 721  ****                                             01500044
C                                                                       01510044
      IF (ICZERO) 37210, 7210, 37210                                    01520044
 7210 CONTINUE                                                          01530044
      IVON01 = 108                                                      01540044
      IVON02 =  9                                                       01550044
      IVON03 =  3                                                       01560044
      IVCOMP = IVON01 / (IVON02 + IVON03)                               01570044
      GO TO 47210                                                       01580044
37210 IVDELE = IVDELE + 1                                               01590044
      WRITE (I02,80003) IVTNUM                                          01600044
      IF (ICZERO) 47210, 7221, 47210                                    01610044
47210 IF (IVCOMP - 9) 27210,17210,27210                                 01620044
17210 IVPASS = IVPASS + 1                                               01630044
      WRITE (I02,80001) IVTNUM                                          01640044
      GO TO 7221                                                        01650044
27210 IVFAIL = IVFAIL + 1                                               01660044
      IVCORR = 9                                                        01670044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          01680044
 7221 CONTINUE                                                          01690044
C                                                                       01700044
C     TEST 722 THROUGH 724 TEST '/' FOLLOWED BY '-'.                    01710044
C                                                                       01720044
      IVTNUM = 722                                                      01730044
C                                                                       01740044
C      ****  TEST 722  ****                                             01750044
C                                                                       01760044
      IF (ICZERO) 37220, 7220, 37220                                    01770044
 7220 CONTINUE                                                          01780044
      IVON01 = 108                                                      01790044
      IVON02 =   9                                                      01800044
      IVON03 =   3                                                      01810044
      IVCOMP = IVON01 / IVON02 - IVON03                                 01820044
      GO TO 47220                                                       01830044
37220 IVDELE = IVDELE + 1                                               01840044
      WRITE (I02,80003) IVTNUM                                          01850044
      IF (ICZERO) 47220, 7231, 47220                                    01860044
47220 IF (IVCOMP - 9) 27220,17220,27220                                 01870044
17220 IVPASS = IVPASS + 1                                               01880044
      WRITE (I02,80001) IVTNUM                                          01890044
      GO TO 7231                                                        01900044
27220 IVFAIL = IVFAIL + 1                                               01910044
      IVCORR = 9                                                        01920044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          01930044
 7231 CONTINUE                                                          01940044
      IVTNUM = 723                                                      01950044
C                                                                       01960044
C      ****  TEST 723  ****                                             01970044
C                                                                       01980044
      IF (ICZERO) 37230, 7230, 37230                                    01990044
 7230 CONTINUE                                                          02000044
      IVON01 = 108                                                      02010044
      IVON02 =   9                                                      02020044
      IVON03 =   3                                                      02030044
      IVCOMP = (IVON01 / IVON02) - IVON03                               02040044
      GO TO 47230                                                       02050044
37230 IVDELE = IVDELE + 1                                               02060044
      WRITE (I02,80003) IVTNUM                                          02070044
      IF (ICZERO) 47230, 7241, 47230                                    02080044
47230 IF (IVCOMP - 9) 27230,17230,27230                                 02090044
17230 IVPASS = IVPASS + 1                                               02100044
      WRITE (I02,80001) IVTNUM                                          02110044
      GO TO 7241                                                        02120044
27230 IVFAIL = IVFAIL + 1                                               02130044
      IVCORR = 9                                                        02140044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          02150044
 7241 CONTINUE                                                          02160044
      IVTNUM = 724                                                      02170044
C                                                                       02180044
C      ****  TEST 724  ****                                             02190044
C                                                                       02200044
      IF (ICZERO) 37240, 7240, 37240                                    02210044
 7240 CONTINUE                                                          02220044
      IVON01 = 108                                                      02230044
      IVON02 =   9                                                      02240044
      IVON03 =   3                                                      02250044
      IVCOMP = IVON01 / (IVON02 - IVON03)                               02260044
      GO TO 47240                                                       02270044
37240 IVDELE = IVDELE + 1                                               02280044
      WRITE (I02,80003) IVTNUM                                          02290044
      IF (ICZERO) 47240, 7251, 47240                                    02300044
47240 IF (IVCOMP - 18) 27240,17240,27240                                02310044
17240 IVPASS = IVPASS + 1                                               02320044
      WRITE (I02,80001) IVTNUM                                          02330044
      GO TO 7251                                                        02340044
27240 IVFAIL = IVFAIL + 1                                               02350044
      IVCORR = 18                                                       02360044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          02370044
 7251 CONTINUE                                                          02380044
C                                                                       02390044
C     TEST 725 THROUGH 727 TEST '/' FOLLOWED BY '*'.                    02400044
C                                                                       02410044
      IVTNUM = 725                                                      02420044
C                                                                       02430044
C      ****  TEST 725  ****                                             02440044
C                                                                       02450044
      IF (ICZERO) 37250, 7250, 37250                                    02460044
 7250 CONTINUE                                                          02470044
      IVON01 = 108                                                      02480044
      IVON02 =   9                                                      02490044
      IVON03 =   3                                                      02500044
      IVCOMP = IVON01 / IVON02 * IVON03                                 02510044
      GO TO 47250                                                       02520044
37250 IVDELE = IVDELE + 1                                               02530044
      WRITE (I02,80003) IVTNUM                                          02540044
      IF (ICZERO) 47250, 7261, 47250                                    02550044
47250 IF (IVCOMP - 36) 27250,17250,27250                                02560044
17250 IVPASS = IVPASS + 1                                               02570044
      WRITE (I02,80001) IVTNUM                                          02580044
      GO TO 7261                                                        02590044
27250 IVFAIL = IVFAIL + 1                                               02600044
      IVCORR = 36                                                       02610044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          02620044
 7261 CONTINUE                                                          02630044
      IVTNUM = 726                                                      02640044
C                                                                       02650044
C      ****  TEST 726  ****                                             02660044
C                                                                       02670044
      IF (ICZERO) 37260, 7260, 37260                                    02680044
 7260 CONTINUE                                                          02690044
      IVON01 = 108                                                      02700044
      IVON02 =   9                                                      02710044
      IVON03 =   3                                                      02720044
      IVCOMP = (IVON01 / IVON02) * IVON03                               02730044
      GO TO 47260                                                       02740044
37260 IVDELE = IVDELE + 1                                               02750044
      WRITE (I02,80003) IVTNUM                                          02760044
      IF (ICZERO) 47260, 7271, 47260                                    02770044
47260 IF (IVCOMP - 36) 27260,17260,27260                                02780044
17260 IVPASS = IVPASS + 1                                               02790044
      WRITE (I02,80001) IVTNUM                                          02800044
      GO TO 7271                                                        02810044
27260 IVFAIL = IVFAIL + 1                                               02820044
      IVCORR = 36                                                       02830044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          02840044
 7271 CONTINUE                                                          02850044
      IVTNUM = 727                                                      02860044
C                                                                       02870044
C      ****  TEST 727  ****                                             02880044
C                                                                       02890044
      IF (ICZERO) 37270, 7270, 37270                                    02900044
 7270 CONTINUE                                                          02910044
      IVON01 = 108                                                      02920044
      IVON02 =   9                                                      02930044
      IVON03 =   3                                                      02940044
      IVCOMP = IVON01 / (IVON02 * IVON03)                               02950044
      GO TO 47270                                                       02960044
37270 IVDELE = IVDELE + 1                                               02970044
      WRITE (I02,80003) IVTNUM                                          02980044
      IF (ICZERO) 47270, 7281, 47270                                    02990044
47270 IF (IVCOMP - 4) 27270,17270,27270                                 03000044
17270 IVPASS = IVPASS + 1                                               03010044
      WRITE (I02,80001) IVTNUM                                          03020044
      GO TO 7281                                                        03030044
27270 IVFAIL = IVFAIL + 1                                               03040044
      IVCORR = 4                                                        03050044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          03060044
 7281 CONTINUE                                                          03070044
C                                                                       03080044
C     TEST 728 THROUGH 730 TEST '/' FOLLOWED BY '**'.                   03090044
C                                                                       03100044
      IVTNUM = 728                                                      03110044
C                                                                       03120044
C      ****  TEST 728  ****                                             03130044
C                                                                       03140044
      IF (ICZERO) 37280, 7280, 37280                                    03150044
 7280 CONTINUE                                                          03160044
      IVON01 = 108                                                      03170044
      IVON02 =   3                                                      03180044
      IVON03 =   2                                                      03190044
      IVCOMP = IVON01 / IVON02 ** IVON03                                03200044
      GO TO 47280                                                       03210044
37280 IVDELE = IVDELE + 1                                               03220044
      WRITE (I02,80003) IVTNUM                                          03230044
      IF (ICZERO) 47280, 7291, 47280                                    03240044
47280 IF (IVCOMP - 12) 27280,17280,27280                                03250044
17280 IVPASS = IVPASS + 1                                               03260044
      WRITE (I02,80001) IVTNUM                                          03270044
      GO TO 7291                                                        03280044
27280 IVFAIL = IVFAIL + 1                                               03290044
      IVCORR = 12                                                       03300044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          03310044
 7291 CONTINUE                                                          03320044
      IVTNUM = 729                                                      03330044
C                                                                       03340044
C      ****  TEST 729  ****                                             03350044
C                                                                       03360044
      IF (ICZERO) 37290, 7290, 37290                                    03370044
 7290 CONTINUE                                                          03380044
      IVON01 = 108                                                      03390044
      IVON02 =   3                                                      03400044
      IVON03 =   2                                                      03410044
      IVCOMP = (IVON01 / IVON02) ** IVON03                              03420044
      GO TO 47290                                                       03430044
37290 IVDELE = IVDELE + 1                                               03440044
      WRITE (I02,80003) IVTNUM                                          03450044
      IF (ICZERO) 47290, 7301, 47290                                    03460044
47290 IF (IVCOMP - 1296) 27290,17290,27290                              03470044
17290 IVPASS = IVPASS + 1                                               03480044
      WRITE (I02,80001) IVTNUM                                          03490044
      GO TO 7301                                                        03500044
27290 IVFAIL = IVFAIL + 1                                               03510044
      IVCORR = 1296                                                     03520044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          03530044
 7301 CONTINUE                                                          03540044
      IVTNUM = 730                                                      03550044
C                                                                       03560044
C      ****  TEST 730  ****                                             03570044
C                                                                       03580044
      IF (ICZERO) 37300, 7300, 37300                                    03590044
 7300 CONTINUE                                                          03600044
      IVON01 = 108                                                      03610044
      IVON02 =   3                                                      03620044
      IVON03 =   2                                                      03630044
      IVCOMP = IVON01 / (IVON02 ** IVON03)                              03640044
      GO TO 47300                                                       03650044
37300 IVDELE = IVDELE + 1                                               03660044
      WRITE (I02,80003) IVTNUM                                          03670044
      IF (ICZERO) 47300, 7311, 47300                                    03680044
47300 IF (IVCOMP - 12) 27300,17300,27300                                03690044
17300 IVPASS = IVPASS + 1                                               03700044
      WRITE (I02,80001) IVTNUM                                          03710044
      GO TO 7311                                                        03720044
27300 IVFAIL = IVFAIL + 1                                               03730044
      IVCORR = 12                                                       03740044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          03750044
 7311 CONTINUE                                                          03760044
C                                                                       03770044
C     TEST 731 THROUGH 733 TEST '**' FOLLOWED BY '+'.                   03780044
C                                                                       03790044
      IVTNUM = 731                                                      03800044
C                                                                       03810044
C      ****  TEST 731  ****                                             03820044
C                                                                       03830044
      IF (ICZERO) 37310, 7310, 37310                                    03840044
 7310 CONTINUE                                                          03850044
      IVON01 = 3                                                        03860044
      IVON02 = 5                                                        03870044
      IVON03 = 4                                                        03880044
      IVCOMP = IVON01 ** IVON02 + IVON03                                03890044
      GO TO 47310                                                       03900044
37310 IVDELE = IVDELE + 1                                               03910044
      WRITE (I02,80003) IVTNUM                                          03920044
      IF (ICZERO) 47310, 7321, 47310                                    03930044
47310 IF (IVCOMP - 247) 27310,17310,27310                               03940044
17310 IVPASS = IVPASS + 1                                               03950044
      WRITE (I02,80001) IVTNUM                                          03960044
      GO TO 7321                                                        03970044
27310 IVFAIL = IVFAIL + 1                                               03980044
      IVCORR = 247                                                      03990044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          04000044
 7321 CONTINUE                                                          04010044
      IVTNUM = 732                                                      04020044
C                                                                       04030044
C      ****  TEST 732  ****                                             04040044
C                                                                       04050044
      IF (ICZERO) 37320, 7320, 37320                                    04060044
 7320 CONTINUE                                                          04070044
      IVON01 = 3                                                        04080044
      IVON02 = 5                                                        04090044
      IVON03 = 4                                                        04100044
      IVCOMP = (IVON01 ** IVON02) + IVON03                              04110044
      GO TO 47320                                                       04120044
37320 IVDELE = IVDELE + 1                                               04130044
      WRITE (I02,80003) IVTNUM                                          04140044
      IF (ICZERO) 47320, 7331, 47320                                    04150044
47320 IF (IVCOMP - 247) 27320,17320,27320                               04160044
17320 IVPASS = IVPASS + 1                                               04170044
      WRITE (I02,80001) IVTNUM                                          04180044
      GO TO 7331                                                        04190044
27320 IVFAIL = IVFAIL + 1                                               04200044
      IVCORR = 247                                                      04210044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          04220044
 7331 CONTINUE                                                          04230044
      IVTNUM = 733                                                      04240044
C                                                                       04250044
C      ****  TEST 733  ****                                             04260044
C                                                                       04270044
      IF (ICZERO) 37330, 7330, 37330                                    04280044
 7330 CONTINUE                                                          04290044
      IVON01 = 3                                                        04300044
      IVON02 = 5                                                        04310044
      IVON03 = 4                                                        04320044
      IVCOMP = IVON01 ** (IVON02 + IVON03)                              04330044
      GO TO 47330                                                       04340044
37330 IVDELE = IVDELE + 1                                               04350044
      WRITE (I02,80003) IVTNUM                                          04360044
      IF (ICZERO) 47330, 7341, 47330                                    04370044
47330 IF (IVCOMP - 19683) 27330,17330,27330                             04380044
17330 IVPASS = IVPASS + 1                                               04390044
      WRITE (I02,80001) IVTNUM                                          04400044
      GO TO 7341                                                        04410044
27330 IVFAIL = IVFAIL + 1                                               04420044
      IVCORR = 19683                                                    04430044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          04440044
 7341 CONTINUE                                                          04450044
C                                                                       04460044
C     TEST 734 THROUGH 736 TEST '**' FOLLOWED BY '-'.                   04470044
C                                                                       04480044
      IVTNUM = 734                                                      04490044
C                                                                       04500044
C      ****  TEST 734  ****                                             04510044
C                                                                       04520044
      IF (ICZERO) 37340, 7340, 37340                                    04530044
 7340 CONTINUE                                                          04540044
      IVON01 = 3                                                        04550044
      IVON02 = 7                                                        04560044
      IVON03 = 4                                                        04570044
      IVCOMP = IVON01 ** IVON02 - IVON03                                04580044
      GO TO 47340                                                       04590044
37340 IVDELE = IVDELE + 1                                               04600044
      WRITE (I02,80003) IVTNUM                                          04610044
      IF (ICZERO) 47340, 7351, 47340                                    04620044
47340 IF (IVCOMP - 2183) 27340,17340,27340                              04630044
17340 IVPASS = IVPASS + 1                                               04640044
      WRITE (I02,80001) IVTNUM                                          04650044
      GO TO 7351                                                        04660044
27340 IVFAIL = IVFAIL + 1                                               04670044
      IVCORR = 2183                                                     04680044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          04690044
 7351 CONTINUE                                                          04700044
      IVTNUM = 735                                                      04710044
C                                                                       04720044
C      ****  TEST 735  ****                                             04730044
C                                                                       04740044
      IF (ICZERO) 37350, 7350, 37350                                    04750044
 7350 CONTINUE                                                          04760044
      IVON01 = 3                                                        04770044
      IVON02 = 7                                                        04780044
      IVON03 = 4                                                        04790044
      IVCOMP = (IVON01 ** IVON02) - IVON03                              04800044
      GO TO 47350                                                       04810044
37350 IVDELE = IVDELE + 1                                               04820044
      WRITE (I02,80003) IVTNUM                                          04830044
      IF (ICZERO) 47350, 7361, 47350                                    04840044
47350 IF (IVCOMP - 2183) 27350,17350,27350                              04850044
17350 IVPASS = IVPASS + 1                                               04860044
      WRITE (I02,80001) IVTNUM                                          04870044
      GO TO 7361                                                        04880044
27350 IVFAIL = IVFAIL + 1                                               04890044
      IVCORR = 2183                                                     04900044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          04910044
 7361 CONTINUE                                                          04920044
      IVTNUM = 736                                                      04930044
C                                                                       04940044
C      ****  TEST 736  ****                                             04950044
C                                                                       04960044
      IF (ICZERO) 37360, 7360, 37360                                    04970044
 7360 CONTINUE                                                          04980044
      IVON01 = 3                                                        04990044
      IVON02 = 7                                                        05000044
      IVON03 = 4                                                        05010044
      IVCOMP = IVON01 ** (IVON02 - IVON03)                              05020044
      GO TO 47360                                                       05030044
37360 IVDELE = IVDELE + 1                                               05040044
      WRITE (I02,80003) IVTNUM                                          05050044
      IF (ICZERO) 47360, 7371, 47360                                    05060044
47360 IF (IVCOMP - 27) 27360,17360,27360                                05070044
17360 IVPASS = IVPASS + 1                                               05080044
      WRITE (I02,80001) IVTNUM                                          05090044
      GO TO 7371                                                        05100044
27360 IVFAIL = IVFAIL + 1                                               05110044
      IVCORR = 27                                                       05120044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          05130044
 7371 CONTINUE                                                          05140044
C                                                                       05150044
C     TEST 737 THROUGH 739 TEST '**' FOLLOWED BY '*'.                   05160044
C                                                                       05170044
      IVTNUM = 737                                                      05180044
C                                                                       05190044
C      ****  TEST 737  ****                                             05200044
C                                                                       05210044
      IF (ICZERO) 37370, 7370, 37370                                    05220044
 7370 CONTINUE                                                          05230044
      IVON01 =  3                                                       05240044
      IVON02 =  3                                                       05250044
      IVON03 =  3                                                       05260044
      IVCOMP = IVON01 ** IVON02 * IVON03                                05270044
      GO TO 47370                                                       05280044
37370 IVDELE = IVDELE + 1                                               05290044
      WRITE (I02,80003) IVTNUM                                          05300044
      IF (ICZERO) 47370, 7381, 47370                                    05310044
47370 IF (IVCOMP - 81) 27370,17370,27370                                05320044
17370 IVPASS = IVPASS + 1                                               05330044
      WRITE (I02,80001) IVTNUM                                          05340044
      GO TO 7381                                                        05350044
27370 IVFAIL = IVFAIL + 1                                               05360044
      IVCORR = 81                                                       05370044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          05380044
 7381 CONTINUE                                                          05390044
      IVTNUM = 738                                                      05400044
C                                                                       05410044
C      ****  TEST 738  ****                                             05420044
C                                                                       05430044
      IF (ICZERO) 37380, 7380, 37380                                    05440044
 7380 CONTINUE                                                          05450044
      IVON01 = 3                                                        05460044
      IVON02 = 3                                                        05470044
      IVON03 = 3                                                        05480044
      IVCOMP = (IVON01 ** IVON02) * IVON03                              05490044
      GO TO 47380                                                       05500044
37380 IVDELE = IVDELE + 1                                               05510044
      WRITE (I02,80003) IVTNUM                                          05520044
      IF (ICZERO) 47380, 7391, 47380                                    05530044
47380 IF (IVCOMP - 81) 27380,17380,27380                                05540044
17380 IVPASS = IVPASS + 1                                               05550044
      WRITE (I02,80001) IVTNUM                                          05560044
      GO TO 7391                                                        05570044
27380 IVFAIL = IVFAIL + 1                                               05580044
      IVCORR = 81                                                       05590044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          05600044
 7391 CONTINUE                                                          05610044
      IVTNUM = 739                                                      05620044
C                                                                       05630044
C      ****  TEST 739  ****                                             05640044
C                                                                       05650044
      IF (ICZERO) 37390, 7390, 37390                                    05660044
 7390 CONTINUE                                                          05670044
      IVON01 = 3                                                        05680044
      IVON02 = 3                                                        05690044
      IVON03 = 3                                                        05700044
      IVCOMP = IVON01 ** (IVON02 * IVON03)                              05710044
      GO TO 47390                                                       05720044
37390 IVDELE = IVDELE + 1                                               05730044
      WRITE (I02,80003) IVTNUM                                          05740044
      IF (ICZERO) 47390, 7401, 47390                                    05750044
47390 IF (IVCOMP - 19683) 27390,17390,27390                             05760044
17390 IVPASS = IVPASS + 1                                               05770044
      WRITE (I02,80001) IVTNUM                                          05780044
      GO TO 7401                                                        05790044
27390 IVFAIL = IVFAIL + 1                                               05800044
      IVCORR = 19683                                                    05810044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          05820044
 7401 CONTINUE                                                          05830044
C                                                                       05840044
C     TEST 740 THROUGH 742 TEST '**' FOLLOWED BY '/'.                   05850044
C                                                                       05860044
      IVTNUM = 740                                                      05870044
C                                                                       05880044
C      ****  TEST 740  ****                                             05890044
C                                                                       05900044
      IF (ICZERO) 37400, 7400, 37400                                    05910044
 7400 CONTINUE                                                          05920044
      IVON01 = 3                                                        05930044
      IVON02 = 9                                                        05940044
      IVON03 = 3                                                        05950044
      IVCOMP = IVON01 ** IVON02 / IVON03                                05960044
      GO TO 47400                                                       05970044
37400 IVDELE = IVDELE + 1                                               05980044
      WRITE (I02,80003) IVTNUM                                          05990044
      IF (ICZERO) 47400, 7411, 47400                                    06000044
47400 IF (IVCOMP - 6561) 27400,17400,27400                              06010044
17400 IVPASS = IVPASS + 1                                               06020044
      WRITE (I02,80001) IVTNUM                                          06030044
      GO TO 7411                                                        06040044
27400 IVFAIL = IVFAIL + 1                                               06050044
      IVCORR = 6561                                                     06060044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          06070044
 7411 CONTINUE                                                          06080044
      IVTNUM = 741                                                      06090044
C                                                                       06100044
C      ****  TEST 741  ****                                             06110044
C                                                                       06120044
      IF (ICZERO) 37410, 7410, 37410                                    06130044
 7410 CONTINUE                                                          06140044
      IVON01 = 3                                                        06150044
      IVON02 = 9                                                        06160044
      IVON03 = 3                                                        06170044
      IVCOMP = (IVON01 ** IVON02) / IVON03                              06180044
      GO TO 47410                                                       06190044
37410 IVDELE = IVDELE + 1                                               06200044
      WRITE (I02,80003) IVTNUM                                          06210044
      IF (ICZERO) 47410, 7421, 47410                                    06220044
47410 IF (IVCOMP - 6561) 27410,17410,27410                              06230044
17410 IVPASS = IVPASS + 1                                               06240044
      WRITE (I02,80001) IVTNUM                                          06250044
      GO TO 7421                                                        06260044
27410 IVFAIL = IVFAIL + 1                                               06270044
      IVCORR = 6561                                                     06280044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          06290044
 7421 CONTINUE                                                          06300044
      IVTNUM = 742                                                      06310044
C      ****  TEST 742  ****                                             06320044
C                                                                       06330044
      IF (ICZERO) 37420, 7420, 37420                                    06340044
 7420 CONTINUE                                                          06350044
      IVON01 = 3                                                        06360044
      IVON02 = 9                                                        06370044
      IVON03 = 3                                                        06380044
      IVCOMP = IVON01 ** (IVON02 / IVON03)                              06390044
      GO TO 47420                                                       06400044
37420 IVDELE = IVDELE + 1                                               06410044
      WRITE (I02,80003) IVTNUM                                          06420044
      IF (ICZERO) 47420, 7431, 47420                                    06430044
47420 IF (IVCOMP - 27) 27420,17420,27420                                06440044
17420 IVPASS = IVPASS + 1                                               06450044
      WRITE (I02,80001) IVTNUM                                          06460044
      GO TO 7431                                                        06470044
27420 IVFAIL = IVFAIL + 1                                               06480044
      IVCORR = 27                                                       06490044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          06500044
 7431 CONTINUE                                                          06510044
C                                                                       06520044
C     TEST 743 THROUGH 746 TEST '**' FOLLOWED BY '**'.                  06530044
C                                                                       06540044
      IVTNUM = 743                                                      06550044
C                                                                       06560044
C      ****  TEST 743  ****                                             06570044
C                                                                       06580044
      IF (ICZERO) 37430, 7430, 37430                                    06590044
 7430 CONTINUE                                                          06600044
      IVON01 = 3                                                        06610044
      IVON02 = 3                                                        06620044
      IVON03 = 2                                                        06630044
      IVCOMP = (IVON01 ** IVON02) ** IVON03                             06640044
      GO TO 47430                                                       06650044
37430 IVDELE = IVDELE + 1                                               06660044
      WRITE (I02,80003) IVTNUM                                          06670044
      IF (ICZERO) 47430, 7441, 47430                                    06680044
47430 IF (IVCOMP - 729) 27430,17430,27430                               06690044
17430 IVPASS = IVPASS + 1                                               06700044
      WRITE (I02,80001) IVTNUM                                          06710044
      GO TO 7441                                                        06720044
27430 IVFAIL = IVFAIL + 1                                               06730044
      IVCORR = 729                                                      06740044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          06750044
 7441 CONTINUE                                                          06760044
      IVTNUM = 744                                                      06770044
C                                                                       06780044
C      ****  TEST 744  ****                                             06790044
C                                                                       06800044
      IF (ICZERO) 37440, 7440, 37440                                    06810044
 7440 CONTINUE                                                          06820044
      IVON01 = 3                                                        06830044
      IVON02 = 3                                                        06840044
      IVON03 = 2                                                        06850044
      IVCOMP = IVON01 ** (IVON02 ** IVON03)                             06860044
      GO TO 47440                                                       06870044
37440 IVDELE = IVDELE + 1                                               06880044
      WRITE (I02,80003) IVTNUM                                          06890044
      IF (ICZERO) 47440, 7451, 47440                                    06900044
47440 IF (IVCOMP - 19683) 27440,17440,27440                             06910044
17440 IVPASS = IVPASS + 1                                               06920044
      WRITE (I02,80001) IVTNUM                                          06930044
      GO TO 7451                                                        06940044
27440 IVFAIL = IVFAIL + 1                                               06950044
      IVCORR = 19683                                                    06960044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          06970044
 7451 CONTINUE                                                          06980044
      IVTNUM = 745                                                      06990044
C                                                                       07000044
C      ****  TEST 745  ****                                             07010044
C                                                                       07020044
      IF (ICZERO) 37450, 7450, 37450                                    07030044
 7450 CONTINUE                                                          07040044
      IVON01 = -3                                                       07050044
      IVON02 = 3                                                        07060044
      IVON03 = 2                                                        07070044
      IVCOMP = (IVON01 ** IVON02) ** IVON03                             07080044
      GO TO 47450                                                       07090044
37450 IVDELE = IVDELE + 1                                               07100044
      WRITE (I02,80003) IVTNUM                                          07110044
      IF (ICZERO) 47450, 7461, 47450                                    07120044
47450 IF (IVCOMP - 729) 27450,17450,27450                               07130044
17450 IVPASS = IVPASS + 1                                               07140044
      WRITE (I02,80001) IVTNUM                                          07150044
      GO TO 7461                                                        07160044
27450 IVFAIL = IVFAIL + 1                                               07170044
      IVCORR = 729                                                      07180044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          07190044
 7461 CONTINUE                                                          07200044
      IVTNUM = 746                                                      07210044
C                                                                       07220044
C      ****  TEST 746  ****                                             07230044
C                                                                       07240044
      IF (ICZERO) 37460, 7460, 37460                                    07250044
 7460 CONTINUE                                                          07260044
      IVON01 = -3                                                       07270044
      IVON02 =  3                                                       07280044
      IVON03 =  2                                                       07290044
      IVCOMP = IVON01 ** (IVON02 ** IVON03)                             07300044
      GO TO 47460                                                       07310044
37460 IVDELE = IVDELE + 1                                               07320044
      WRITE (I02,80003) IVTNUM                                          07330044
      IF (ICZERO) 47460, 7471, 47460                                    07340044
47460 IF (IVCOMP + 19683) 27460,17460,27460                             07350044
17460 IVPASS = IVPASS + 1                                               07360044
      WRITE (I02,80001) IVTNUM                                          07370044
      GO TO 7471                                                        07380044
27460 IVFAIL = IVFAIL + 1                                               07390044
      IVCORR = -19683                                                   07400044
      WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR                          07410044
 7471 CONTINUE                                                          07420044
C                                                                       07430044
C                                                                       07440044
C     WRITE PAGE FOOTINGS AND RUN SUMMARIES                             07450044
99999 CONTINUE                                                          07460044
      WRITE (I02,90002)                                                 07470044
      WRITE (I02,90006)                                                 07480044
      WRITE (I02,90002)                                                 07490044
      WRITE (I02,90002)                                                 07500044
      WRITE (I02,90007)                                                 07510044
      WRITE (I02,90002)                                                 07520044
      WRITE (I02,90008)  IVFAIL                                         07530044
      WRITE (I02,90009) IVPASS                                          07540044
      WRITE (I02,90010) IVDELE                                          07550044
C                                                                       07560044
C                                                                       07570044
C     TERMINATE ROUTINE EXECUTION                                       07580044
      STOP                                                              07590044
C                                                                       07600044
C     FORMAT STATEMENTS FOR PAGE HEADERS                                07610044
90000 FORMAT ("1")                                                      07620044
90002 FORMAT (" ")                                                      07630044
90001 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" )            07640044
90003 FORMAT (" ",21X,"VERSION 2.1" )                                   07650044
90004 FORMAT (" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" )        07660044
90005 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT") 07670044
90006 FORMAT (" ",5X,"----------------------------------------------" ) 07680044
90011 FORMAT (" ",18X,"SUBSET LEVEL TEST" )                             07690044
C                                                                       07700044
C     FORMAT STATEMENTS FOR RUN SUMMARIES                               07710044
90008 FORMAT (" ",15X,I5," ERRORS ENCOUNTERED" )                        07720044
90009 FORMAT (" ",15X,I5," TESTS PASSED" )                              07730044
90010 FORMAT (" ",15X,I5," TESTS DELETED" )                             07740044
C                                                                       07750044
C     FORMAT STATEMENTS FOR TEST RESULTS                                07760044
80001 FORMAT (" ",4X,I5,7X,"PASS")                                      07770044
80002 FORMAT (" ",4X,I5,7X,"FAIL")                                      07780044
80003 FORMAT (" ",4X,I5,7X,"DELETED")                                   07790044
80004 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6)                         07800044
80005 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5)                    07810044
C                                                                       07820044
90007 FORMAT (" ",20X,"END OF PROGRAM FM044" )                          07830044
      END                                                               07840044