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