| 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 |