C COMMENT SECTION C C FM039 C C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE C FORM INTEGER VARIABLE = ARITHMETIC EXPRESSION C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC C OPERATOR /, INTEGER CONSTANTS AND AN INTEGER VARIABLE. BOTH C POSITIVE AND NEGATIVE VALUES ARE USED FOR THE INTEGER CONSTANTS C AND THE INTEGER VARIABLE. C C THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT C AND TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED C IN THE RESULTANT INTEGER VARIABLE. SOME OF THE TESTS USE PARENS C TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSION. C C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS C (1) INTEGER VARIABLE/INTEGER CONSTANT/INTEGER CONSTANT C INTEGER CONSTANT/INTEGER VARIABLE/INTEGER CONSTANT C INTEGER CONSTANT/INTEGER CONSTANT/INTEGER VARIABLE C (2) SAME AS (1) BUT WITH PARENTHESES TO GROUP ELEMENTS C IN THE ARITHMETIC EXPRESSION. C C REFERENCES C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, C X3.9-1978 C C SECTION 4.3, INTEGER TYPE C SECTION 4.3.1, INTEGER CONSTANT C SECTION 6.1, ARITHMETIC EXPRESSIONS C SECTION 6.6, EVALUATION OF EXPRESSIONS C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT C C ********************************************************** C C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT C OF EXECUTING THESE TESTS. C C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. C C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - C C DEPARTMENT OF THE NAVY C FEDERAL COBOL COMPILER TESTING SERVICE C WASHINGTON, D.C. 20376 C C ********************************************************** C C C C INITIALIZATION SECTION C C INITIALIZE CONSTANTS C ************** C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. I01 = 5 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. I02 = 6 C SYSTEM ENVIRONMENT SECTION C CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 C (UNIT NUMBER FOR CARD READER). CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. C CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 C (UNIT NUMBER FOR PRINTER). CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. C IVPASS=0 IVFAIL=0 IVDELE=0 ICZERO=0 C C WRITE PAGE HEADERS WRITE (I02,90000) WRITE (I02,90001) WRITE (I02,90002) WRITE (I02, 90002) WRITE (I02,90003) WRITE (I02,90002) WRITE (I02,90004) WRITE (I02,90002) WRITE (I02,90011) WRITE (I02,90002) WRITE (I02,90002) WRITE (I02,90005) WRITE (I02,90006) WRITE (I02,90002) C C TEST SECTION C C ARITHMETIC ASSIGNMENT STATEMENT C C TEST 552 THROUGH TEST 557 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS C OF THE FORM IV = IV/IC/IC. C 5521 CONTINUE IVTNUM = 552 C C **** TEST 552 **** C IF (ICZERO) 35520, 5520, 35520 5520 CONTINUE IVON01 = 24 IVCOMP = IVON01/3/4 GO TO 45520 35520 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45520, 5531, 45520 45520 IF (IVCOMP - 2) 25520,15520,25520 15520 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5531 25520 IVFAIL = IVFAIL + 1 IVCORR = 2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5531 CONTINUE IVTNUM = 553 C C **** TEST 553 **** C IF (ICZERO) 35530, 5530, 35530 5530 CONTINUE IVON01 = 7151 IVCOMP = IVON01/3/10 GO TO 45530 35530 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45530, 5541, 45530 45530 IF (IVCOMP - 238) 25530,15530,25530 15530 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5541 25530 IVFAIL = IVFAIL + 1 IVCORR = 238 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5541 CONTINUE IVTNUM = 554 C C **** TEST 554 **** C IF (ICZERO) 35540, 5540, 35540 5540 CONTINUE IVON01 = -330 IVCOMP = IVON01/3/2 GO TO 45540 35540 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45540, 5551, 45540 45540 IF (IVCOMP + 55) 25540,15540,25540 15540 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5551 25540 IVFAIL = IVFAIL + 1 IVCORR = -55 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5551 CONTINUE IVTNUM = 555 C C **** TEST 555 **** C IF (ICZERO) 35550, 5550, 35550 5550 CONTINUE IVON01 = 15249 IVCOMP = IVON01/(-13)/51 GO TO 45550 35550 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45550, 5561, 45550 45550 IF (IVCOMP + 23) 25550,15550,25550 15550 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5561 25550 IVFAIL = IVFAIL + 1 IVCORR = -23 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5561 CONTINUE IVTNUM = 556 C C **** TEST 556 **** C IF (ICZERO) 35560, 5560, 35560 5560 CONTINUE IVON01 = -27342 IVCOMP = IVON01/(-4)/(-3) GO TO 45560 35560 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45560, 5571, 45560 45560 IF (IVCOMP + 2278) 25560,15560,25560 15560 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5571 25560 IVFAIL = IVFAIL + 1 IVCORR = -2278 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5571 CONTINUE IVTNUM = 557 C C **** TEST 557 **** C IF (ICZERO) 35570, 5570, 35570 5570 CONTINUE IVON01 = -27342 IVCOMP = -IVON01/4/(-3) GO TO 45570 35570 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45570, 5581, 45570 45570 IF (IVCOMP + 2278) 25570,15570,25570 15570 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5581 25570 IVFAIL = IVFAIL + 1 IVCORR = -2278 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 558 THROUGH TEST 563 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS C OF THE FORM IV=IC/IV/IC. C 5581 CONTINUE IVTNUM = 558 C C **** TEST 558 **** C IF (ICZERO) 35580, 5580, 35580 5580 CONTINUE IVON02 = 3 IVCOMP = 24/IVON02/4 GO TO 45580 35580 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45580, 5591, 45580 45580 IF (IVCOMP - 2) 25580,15580,25580 15580 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5591 25580 IVFAIL = IVFAIL + 1 IVCORR = 2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5591 CONTINUE IVTNUM = 559 C C **** TEST 559 **** C IF (ICZERO) 35590, 5590, 35590 5590 CONTINUE IVON02 = 3 IVCOMP = 7151/IVON02/10 GO TO 45590 35590 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45590, 5601, 45590 45590 IF (IVCOMP - 238) 25590,15590,25590 15590 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5601 25590 IVFAIL = IVFAIL + 1 IVCORR = 238 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5601 CONTINUE IVTNUM = 560 C C **** TEST 560 **** C IF (ICZERO) 35600, 5600, 35600 5600 CONTINUE IVON02 = -3 IVCOMP = 330/IVON02/2 GO TO 45600 35600 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45600, 5611, 45600 45600 IF (IVCOMP +55) 25600,15600,25600 15600 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5611 25600 IVFAIL = IVFAIL + 1 IVCORR = -55 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5611 CONTINUE IVTNUM = 561 C C **** TEST 561 **** C IF (ICZERO) 35610, 5610, 35610 5610 CONTINUE IVON02 = +13 IVCOMP = 15249/IVON02/(-51) GO TO 45610 35610 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45610, 5621, 45610 45610 IF (IVCOMP + 23) 25610,15610,25610 15610 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5621 25610 IVFAIL = IVFAIL + 1 IVCORR = -23 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5621 CONTINUE IVTNUM = 562 C C **** TEST 562 **** C IF (ICZERO) 35620, 5620, 35620 5620 CONTINUE IVON02 = -4 IVCOMP = (-27342)/IVON02/(-3) GO TO 45620 35620 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45620, 5631, 45620 45620 IF (IVCOMP + 2278) 25620,15620,25620 15620 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5631 25620 IVFAIL = IVFAIL + 1 IVCORR = -2278 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5631 CONTINUE IVTNUM = 563 C C **** TEST 563 **** C IF (ICZERO) 35630, 5630, 35630 5630 CONTINUE IVON02 = -4 IVCOMP = -27342/(-IVON02)/(-3) GO TO 45630 35630 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45630, 5641, 45630 45630 IF (IVCOMP - 2278) 25630,15630,25630 15630 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5641 25630 IVFAIL = IVFAIL + 1 IVCORR = 2278 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 564 THROUGH TEST 569 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS C OF THE FORM IV = IC/IC/IV. C 5641 CONTINUE IVTNUM = 564 C C **** TEST 564 **** C IF (ICZERO) 35640, 5640, 35640 5640 CONTINUE IVON03 = 4 IVCOMP = 24/3/IVON03 GO TO 45640 35640 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45640, 5651, 45640 45640 IF (IVCOMP -2) 25640,15640,25640 15640 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5651 25640 IVFAIL = IVFAIL + 1 IVCORR = 2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5651 CONTINUE IVTNUM = 565 C C **** TEST 565 **** C IF (ICZERO) 35650, 5650, 35650 5650 CONTINUE IVON03 = 10 IVCOMP = 7151/3/IVON03 GO TO 45650 35650 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45650, 5661, 45650 45650 IF (IVCOMP - 238) 25650,15650,25650 15650 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5661 25650 IVFAIL = IVFAIL + 1 IVCORR = 238 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5661 CONTINUE IVTNUM = 566 C C **** TEST 566 **** C IF (ICZERO) 35660, 5660, 35660 5660 CONTINUE IVON03 = -2 IVCOMP = 330/3/IVON03 GO TO 45660 35660 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45660, 5671, 45660 45660 IF (IVCOMP + 55) 25660,15660,25660 15660 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5671 25660 IVFAIL = IVFAIL + 1 IVCORR = -55 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5671 CONTINUE IVTNUM = 567 C C **** TEST 567 **** C IF (ICZERO) 35670, 5670, 35670 5670 CONTINUE IVON03 = +51 IVCOMP = 15249/(-13)/IVON03 GO TO 45670 35670 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45670, 5681, 45670 45670 IF (IVCOMP + 23) 25670,15670,25670 15670 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5681 25670 IVFAIL = IVFAIL + 1 IVCORR = -23 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5681 CONTINUE IVTNUM = 568 C C **** TEST 568 **** C IF (ICZERO) 35680, 5680, 35680 5680 CONTINUE IVON03 = -3 IVCOMP = (-27342)/(-4)/IVON03 GO TO 45680 35680 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45680, 5691, 45680 45680 IF (IVCOMP + 2278) 25680,15680,25680 15680 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5691 25680 IVFAIL = IVFAIL + 1 IVCORR = -2278 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5691 CONTINUE IVTNUM = 569 C C **** TEST 569 **** C IF (ICZERO) 35690, 5690, 35690 5690 CONTINUE IVON03 = -3 IVCOMP = -27342/(-4)/(-IVON03) GO TO 45690 35690 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45690, 5701, 45690 45690 IF (IVCOMP - 2278) 25690,15690,25690 15690 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5701 25690 IVFAIL = IVFAIL + 1 IVCORR = 2278 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 570 AND TEST 571 - IV =(IV/IC)/IC C 5701 CONTINUE IVTNUM = 570 C C **** TEST 570 **** C IF (ICZERO) 35700, 5700, 35700 5700 CONTINUE IVON01 = 24 IVCOMP = (IVON01/3)/4 GO TO 45700 35700 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45700, 5711, 45700 45700 IF (IVCOMP -2) 25700,15700,25700 15700 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5711 25700 IVFAIL = IVFAIL + 1 IVCORR = 2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5711 CONTINUE IVTNUM = 571 C C **** TEST 571 **** C IF (ICZERO) 35710, 5710, 35710 5710 CONTINUE IVON01 = -330 IVCOMP = (IVON01/(-3))/4 GO TO 45710 35710 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45710, 5721, 45710 45710 IF (IVCOMP - 27) 25710,15710,25710 15710 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5721 25710 IVFAIL = IVFAIL + 1 IVCORR = 27 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 572 AND TEST 573 - IV= IV/(IC/IC) C 5721 CONTINUE IVTNUM = 572 C C **** TEST 572 **** C IF (ICZERO) 35720, 5720, 35720 5720 CONTINUE IVON01 = 24 IVCOMP = IVON01/(8/4) GO TO 45720 35720 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45720, 5731, 45720 45720 IF (IVCOMP - 12) 25720,15720,25720 15720 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5731 25720 IVFAIL = IVFAIL + 1 IVCORR = 12 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5731 CONTINUE IVTNUM = 573 C C **** TEST 573 **** C IF (ICZERO) 35730, 5730, 35730 5730 CONTINUE IVON01 = -7154 IVCOMP = -IVON01/((-26)/5) GO TO 45730 35730 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45730, 5741, 45730 45730 IF (IVCOMP + 1430) 25730,15730,25730 15730 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5741 25730 IVFAIL = IVFAIL + 1 IVCORR = -1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 574 AND TEST 575 - IV=(IC/IV)/IC C 5741 CONTINUE IVTNUM = 574 C C **** TEST 574 **** C IF (ICZERO) 35740, 5740, 35740 5740 CONTINUE IVON02 = 3 IVCOMP = (24/IVON02)/4 GO TO 45740 35740 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45740, 5751, 45740 45740 IF (IVCOMP -2) 25740,15740,25740 15740 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5751 25740 IVFAIL = IVFAIL + 1 IVCORR = 2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5751 CONTINUE IVTNUM = 575 C C **** TEST 575 **** C IF (ICZERO) 35750, 5750, 35750 5750 CONTINUE IVON02 = -3 IVCOMP = (-330/IVON02)/(-4) GO TO 45750 35750 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45750, 5761, 45750 45750 IF (IVCOMP + 27) 25750,15750,25750 15750 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5761 25750 IVFAIL = IVFAIL + 1 IVCORR = -27 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 576 AND TEST 577 - IV=IC/(IV/IC) C 5761 CONTINUE IVTNUM = 576 C C **** TEST 576 **** C IF (ICZERO) 35760, 5760, 35760 5760 CONTINUE IVON02 = 8 IVCOMP = 24/(IVON02/4) GO TO 45760 35760 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45760, 5771, 45760 45760 IF (IVCOMP - 12) 25760,15760,25760 15760 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5771 25760 IVFAIL = IVFAIL + 1 IVCORR = 12 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5771 CONTINUE IVTNUM = 577 C C **** TEST 577 **** C IF (ICZERO) 35770, 5770, 35770 5770 CONTINUE IVON02 = -26 IVCOMP = 7154/((-IVON02)/(-5)) GO TO 45770 35770 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45770, 5781, 45770 45770 IF (IVCOMP + 1430) 25770,15770,25770 15770 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5781 25770 IVFAIL = IVFAIL + 1 IVCORR = -1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 578 AND TEST 579 - IV=(IC/IC)/IV C 5781 CONTINUE IVTNUM = 578 C C **** TEST 578 **** C IF (ICZERO) 35780, 5780, 35780 5780 CONTINUE IVON03 = 4 IVCOMP = (24/3)/IVON03 GO TO 45780 35780 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45780, 5791, 45780 45780 IF (IVCOMP - 2) 25780,15780,25780 15780 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5791 25780 IVFAIL = IVFAIL + 1 IVCORR = 2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5791 CONTINUE IVTNUM = 579 C C **** TEST 579 **** C IF (ICZERO) 35790, 5790, 35790 5790 CONTINUE IVON03 = -4 IVCOMP = (330/(-3))/IVON03 GO TO 45790 35790 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45790, 5801, 45790 45790 IF (IVCOMP - 27) 25790,15790,25790 15790 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5801 25790 IVFAIL = IVFAIL + 1 IVCORR = 27 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 580 AND TEST 581 - IV= IC/(IC/IV) C 5801 CONTINUE IVTNUM = 580 C C **** TEST 580 **** C IF (ICZERO) 35800, 5800, 35800 5800 CONTINUE IVON03 = 4 IVCOMP = 24/(8/IVON03) GO TO 45800 35800 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45800, 5811, 45800 45800 IF (IVCOMP - 12) 25800,15800,25800 15800 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5811 25800 IVFAIL = IVFAIL + 1 IVCORR = 12 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5811 CONTINUE IVTNUM = 581 C C **** TEST 581 **** C IF (ICZERO) 35810, 5810, 35810 5810 CONTINUE IVON03 = -5 IVCOMP = -7154/((-26)/IVON03) GO TO 45810 35810 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45810, 5821, 45810 45810 IF (IVCOMP + 1430) 25810,15810,25810 15810 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5821 25810 IVFAIL = IVFAIL + 1 IVCORR = -1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C **** END OF TESTS **** 5821 CONTINUE C C WRITE PAGE FOOTINGS AND RUN SUMMARIES 99999 CONTINUE WRITE (I02,90002) WRITE (I02,90006) WRITE (I02,90002) WRITE (I02,90002) WRITE (I02,90007) WRITE (I02,90002) WRITE (I02,90008) IVFAIL WRITE (I02,90009) IVPASS WRITE (I02,90010) IVDELE C C C TERMINATE ROUTINE EXECUTION STOP C C FORMAT STATEMENTS FOR PAGE HEADERS 90000 FORMAT (1H1) 90002 FORMAT (1H ) 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 90003 FORMAT (1H ,21X,11HVERSION 1.0) 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 90006 FORMAT (1H ,5X,46H----------------------------------------------) 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) C C FORMAT STATEMENTS FOR RUN SUMMARIES 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) C C FORMAT STATEMENTS FOR TEST RESULTS 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) C 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM039) END