C COMMENT SECTION C C FM042 C C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENTS OF THE C FORM INTEGER VARIABLE = PRIMARY ** PRIMARY C WHERE THE FIRST OF TWO PRIMARIES IS AN INTEGER VARIABLE OR AN C INTEGER CONSTANT AND THE SECOND PRIMARY IS AN INTEGER VARIABLE. 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 10.1, ARITHMETIC ASSIGNMENT STATEMENT C 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 649 THROUGH TEST 665 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS C OF THE FORM INTEGER VARIABLE = INTEGER CONST. ** INTEGER VAR. C C TEST 666 THROUGH TEST 682 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS C OF THE FORM INTEGER VARIABLE = INTEGER VAR. ** INTEGER VAR. C C IVTNUM = 649 C C **** TEST 649 **** C TEST 649 - SMALL NUMBER BASE; ZERO EXPONENT C IF (ICZERO) 36490, 6490, 36490 6490 CONTINUE IVON01 = 0 IVCOMP = 1 ** IVON01 GO TO 46490 36490 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46490, 6501, 46490 46490 IF (IVCOMP - 1) 26490,16490,26490 16490 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6501 26490 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 6501 CONTINUE IVTNUM = 650 C C **** TEST 650 **** C TEST 650 - ZERO BASE TO FIRST POWER C IF (ICZERO) 36500, 6500, 36500 6500 CONTINUE IVON01 = 1 IVCOMP = 0 ** IVON01 GO TO 46500 36500 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46500, 6511, 46500 46500 IF (IVCOMP) 26500,16500,26500 16500 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6511 26500 IVFAIL = IVFAIL + 1 IVCORR = 0 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6511 CONTINUE IVTNUM = 651 C C **** TEST 651 **** C TEST 651 - BASE =1; EXPONENT = 1 C IF (ICZERO) 36510, 6510, 36510 6510 CONTINUE IVON01 = 1 IVCOMP = 1 ** IVON01 GO TO 46510 36510 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46510, 6521, 46510 46510 IF (IVCOMP - 1) 26510,16510,26510 16510 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6521 26510 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6521 CONTINUE IVTNUM = 652 C C **** TEST 652 **** C TEST 652 - LARGE EXPONENT C IF (ICZERO) 36520, 6520, 36520 6520 CONTINUE IVON01 = 32767 IVCOMP = 1 ** IVON01 GO TO 46520 36520 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46520, 6531, 46520 46520 IF (IVCOMP - 1) 26520,16520,26520 16520 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6531 26520 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6531 CONTINUE IVTNUM = 653 C C **** TEST 653 **** C TEST 653 - LARGE NUMBER BASE; EXPONENT = 1 C IF (ICZERO) 36530, 6530, 36530 6530 CONTINUE IVON01 = 1 IVCOMP = 32767 ** IVON01 GO TO 46530 36530 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46530, 6541, 46530 46530 IF (IVCOMP - 32767) 26530,16530,26530 16530 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6541 26530 IVFAIL = IVFAIL + 1 IVCORR = 32767 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6541 CONTINUE IVTNUM = 654 C C **** TEST 654 **** C TEST 654 - ZERO BASE; LARGE NUMBER EXPONENT C IF (ICZERO) 36540, 6540, 36540 6540 CONTINUE IVON01 = 32767 IVCOMP = 0 ** IVON01 GO TO 46540 36540 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46540, 6551, 46540 46540 IF (IVCOMP) 26540,16540,26540 16540 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6551 26540 IVFAIL = IVFAIL + 1 IVCORR = 0 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6551 CONTINUE IVTNUM = 655 C C **** TEST 655 **** C TEST 655 -LARGE NUMBER BASE; ZERO EXPONENT C IF (ICZERO) 36550, 6550, 36550 6550 CONTINUE IVON01 = 0 IVCOMP = 32767 ** IVON01 GO TO 46550 36550 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46550, 6561, 46550 46550 IF (IVCOMP -1) 26550,16550,26550 16550 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6561 26550 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6561 CONTINUE IVTNUM = 656 C C **** TEST 656 **** C TEST 656 -EXPONENT IS POWER OF TWO C IF (ICZERO) 36560, 6560, 36560 6560 CONTINUE IVON01 = 2 IVCOMP = 181 ** IVON01 GO TO 46560 36560 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46560, 6571, 46560 46560 IF (IVCOMP - 32761) 26560,16560,26560 16560 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6571 26560 IVFAIL = IVFAIL + 1 IVCORR = 32761 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6571 CONTINUE IVTNUM = 657 C C **** TEST 657 **** C TEST 657 - BASE AND EXPONENT ARE BOTH POWERS OF TWO C IF (ICZERO) 36570, 6570, 36570 6570 CONTINUE IVON01 = 8 IVCOMP = 2 ** IVON01 GO TO 46570 36570 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46570, 6581, 46570 46570 IF (IVCOMP - 256) 26570,16570,26560 16570 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6581 26570 IVFAIL = IVFAIL + 1 IVCORR = 256 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6581 CONTINUE C C TESTS 658 AND 659 TEST TO ENSURE EXPONENTIATION OPERATOR IS C NOT COMMUTATIVE C IVTNUM = 658 C C **** TEST 658 **** C IF (ICZERO) 36580, 6580, 36580 6580 CONTINUE IVON01 = 9 IVCOMP = 3 ** IVON01 GO TO 46580 36580 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46580, 6591, 46580 46580 IF (IVCOMP - 19683) 26580,16580,26580 16580 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6591 26580 IVFAIL = IVFAIL + 1 IVCORR = 19683 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6591 CONTINUE IVTNUM = 659 C C **** TEST 659 **** C IF (ICZERO) 36590, 6590, 36590 6590 CONTINUE IVON01 = 3 IVCOMP = 9 ** IVON01 GO TO 46590 36590 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46590, 6601, 46590 46590 IF (IVCOMP - 729) 26590,16590,26590 16590 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6601 26590 IVFAIL = IVFAIL + 1 IVCORR = 729 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6601 CONTINUE C C TESTS 660 THROUGH 665 TEST POSITIVE AND NEGATIVE BASES TO POSITIVE C ODD AND EVEN NUMBER POWERS CHECKING THE SIGN C OF THE RESULTS C IVTNUM = 660 C C **** TEST 660 **** C IF (ICZERO) 36600, 6600, 36600 6600 CONTINUE IVON01 = 2 IVCOMP = 1 ** IVON01 GO TO 46600 36600 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46600, 6611, 46600 46600 IF (IVCOMP - 1) 26600,16600,26600 16600 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6611 26600 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6611 CONTINUE IVTNUM = 661 C C **** TEST 661 **** C IF (ICZERO) 36610, 6610, 36610 6610 CONTINUE IVON01 = 2 IVCOMP = ( -1) ** IVON01 GO TO 46610 36610 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46610, 6621, 46610 46610 IF (IVCOMP - 1) 26610,16610,26610 16610 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6621 26610 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6621 CONTINUE IVTNUM = 662 C C **** TEST 662 **** C IF (ICZERO) 36620, 6620, 36620 6620 CONTINUE IVON01 = 3 IVCOMP = 7 ** IVON01 GO TO 46620 36620 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46620, 6631, 46620 46620 IF (IVCOMP - 343) 26620,16620,26620 16620 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6631 26620 IVFAIL = IVFAIL + 1 IVCORR = 343 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6631 CONTINUE IVTNUM = 663 C C **** TEST 663 **** C IF (ICZERO) 36630, 6630, 36630 6630 CONTINUE IVON01 = 3 IVCOMP = (-7) **IVON01 GO TO 46630 36630 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46630, 6641, 46630 46630 IF (IVCOMP + 343) 26630,16630,26630 16630 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6641 26630 IVFAIL = IVFAIL + 1 IVCORR = -343 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6641 CONTINUE IVTNUM = 664 C C **** TEST 664 **** C IF (ICZERO) 36640, 6640, 36640 6640 CONTINUE IVON01 = 4 IVCOMP = 7 ** IVON01 GO TO 46640 36640 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46640, 6651, 46640 46640 IF (IVCOMP - 2401) 26640,16640,26640 16640 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6651 26640 IVFAIL = IVFAIL + 1 IVCORR = 2401 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6651 CONTINUE IVTNUM = 665 C C **** TEST 665 **** C IF (ICZERO) 36650, 6650, 36650 6650 CONTINUE IVON01 = 4 IVCOMP = (-7) ** IVON01 GO TO 46650 36650 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46650, 6661, 46650 46650 IF (IVCOMP - 2401) 26650,16650,26650 16650 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6661 26650 IVFAIL = IVFAIL + 1 IVCORR = 2401 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6661 CONTINUE IVTNUM = 666 C C **** TEST 666 **** C TEST 666 - SMALL NUMBER BASE; ZERO EXPONENT C IF (ICZERO) 36660, 6660, 36660 6660 CONTINUE IVON01 = 1 IVON02 = 0 IVCOMP = IVON01 ** IVON02 GO TO 46660 36660 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46660, 6671, 46660 46660 IF (IVCOMP - 1) 26660,16660,26660 16660 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6671 26660 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6671 CONTINUE IVTNUM = 667 C C **** TEST 667 **** C TEST 667 - ZERO BASE TO FIRST POWER C IF (ICZERO) 36670, 6670, 36670 6670 CONTINUE IVON01 = 0 IVON02 = 1 IVCOMP = IVON01 ** IVON02 GO TO 46670 36670 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46670, 6681, 46670 46670 IF (IVCOMP) 26670,16670,26670 16670 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6681 26670 IVFAIL = IVFAIL + 1 IVCORR = 0 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6681 CONTINUE IVTNUM = 668 C C **** TEST 668 **** C TEST 668 - BASE =1; EXPONENT = 1 C IF (ICZERO) 36680, 6680, 36680 6680 CONTINUE IVON01 = 1 IVON02 = 1 IVCOMP = IVON01 ** IVON02 GO TO 46680 36680 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46680, 6691, 46680 46680 IF (IVCOMP - 1) 26680,16680,26680 16680 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6691 26680 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6691 CONTINUE IVTNUM = 669 C C **** TEST 669 **** C TEST 669 - LARGE EXPONENT C IF (ICZERO) 36690, 6690, 36690 6690 CONTINUE IVON01 = 1 IVON02 = 32767 IVCOMP = IVON01 ** IVON02 GO TO 46690 36690 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46690, 6701, 46690 46690 IF (IVCOMP - 1) 26690,16690,26690 16690 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6701 26690 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6701 CONTINUE IVTNUM = 670 C C **** TEST 670 **** C TEST 670 - LARGE NUMBER BASE; EXPONENT = 1 C IF (ICZERO) 36700, 6700, 36700 6700 CONTINUE IVON01 = 32767 IVON02 = 1 IVCOMP = IVON01 ** IVON02 GO TO 46700 36700 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46700, 6711, 46700 46700 IF (IVCOMP - 32767) 26700,16700,26700 16700 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6711 26700 IVFAIL = IVFAIL + 1 IVCORR = 32767 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6711 CONTINUE IVTNUM = 671 C C **** TEST 671 **** C TEST 671 - ZERO BASE; LARGE NUMBER EXPONENT C IF (ICZERO) 36710, 6710, 36710 6710 CONTINUE IVON01 = 0 IVON02 = 32767 IVCOMP = IVON01 ** IVON02 GO TO 46710 36710 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46710, 6721, 46710 46710 IF (IVCOMP) 26710,16710,26710 16710 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6721 26710 IVFAIL = IVFAIL + 1 IVCORR = 0 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6721 CONTINUE IVTNUM = 672 C C **** TEST 672 **** C TEST 672 -LARGE NUMBER BASE; ZERO EXPONENT C IF (ICZERO) 36720, 6720, 36720 6720 CONTINUE IVON01 = 32767 IVON02 = 0 IVCOMP = IVON01 ** IVON02 GO TO 46720 36720 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46720, 6731, 46720 46720 IF (IVCOMP -1) 26720,16720,26720 16720 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6731 26720 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6731 CONTINUE IVTNUM = 673 C C **** TEST 673 **** C TEST 673 -EXPONENT IS POWER OF TWO C IF (ICZERO) 36730, 6730, 36730 6730 CONTINUE IVON01 = 181 IVON02 = 2 IVCOMP = IVON01 ** IVON02 GO TO 46730 36730 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46730, 6741, 46730 46730 IF (IVCOMP - 32761) 26730,16730,26730 16730 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6741 26730 IVFAIL = IVFAIL + 1 IVCORR = 32761 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6741 CONTINUE IVTNUM = 674 C C **** TEST 674 **** C TEST 674 - BASE AND EXPONENT ARE BOTH POWERS OF TWO C IF (ICZERO) 36740, 6740, 36740 6740 CONTINUE IVON01 = 2 IVON02 = 8 IVCOMP = IVON01 ** IVON02 GO TO 46740 36740 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46740, 6751, 46740 46740 IF (IVCOMP - 256) 26740,16740,26740 16740 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6751 26740 IVFAIL = IVFAIL + 1 IVCORR = 256 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6751 CONTINUE C C TESTS 675 AND 676 TEST TO ENSURE EXPONENTIATION OPERATOR IS C NOT COMMUTATIVE C IVTNUM = 675 C C **** TEST 675 **** C IF (ICZERO) 36750, 6750, 36750 6750 CONTINUE IVON01 = 3 IVON02 = 9 IVCOMP = IVON01 ** IVON02 GO TO 46750 36750 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46750, 6761, 46750 46750 IF (IVCOMP - 19683) 26750,16750,26750 16750 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6761 26750 IVFAIL = IVFAIL + 1 IVCORR = 19683 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6761 CONTINUE IVTNUM = 676 C C **** TEST 676 **** C IF (ICZERO) 36760, 6760, 36760 6760 CONTINUE IVON01 = 9 IVON02 = 3 IVCOMP = IVON01 ** IVON02 GO TO 46760 36760 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46760, 6771, 46760 46760 IF (IVCOMP - 729) 26760,16760,26760 16760 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6771 26760 IVFAIL = IVFAIL + 1 IVCORR = 729 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6771 CONTINUE C C TESTS 677 THROUGH 682 TEST POSITIVE AND NEGATIVE BASES TO POSITIVE C ODD AND EVEN NUMBER POWERS CHECKING THE SIGN C OF THE RESULTS C IVTNUM = 677 C C **** TEST 677 **** C IF (ICZERO) 36770, 6770, 36770 6770 CONTINUE IVON01 = 1 IVON02 = 2 IVCOMP = IVON01 ** IVON02 GO TO 46770 36770 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46770, 6781, 46770 46770 IF (IVCOMP - 1) 26770,16770,26770 16770 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6781 26770 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6781 CONTINUE IVTNUM = 678 C C **** TEST 678 **** C IF (ICZERO) 36780, 6780, 36780 6780 CONTINUE IVON01 = -1 IVON02 = 2 IVCOMP = IVON01 ** IVON02 GO TO 46780 36780 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46780, 6791, 46780 46780 IF (IVCOMP - 1) 26780,16780,26780 16780 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6791 26780 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6791 CONTINUE IVTNUM = 679 C C **** TEST 679 **** C IF (ICZERO) 36790, 6790, 36790 6790 CONTINUE IVON01 = 7 IVON02 = 3 IVCOMP = IVON01 ** IVON02 GO TO 46790 36790 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46790, 6801, 46790 46790 IF (IVCOMP - 343) 26790,16790,26790 16790 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6801 26790 IVFAIL = IVFAIL + 1 IVCORR = 343 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6801 CONTINUE IVTNUM = 680 C C **** TEST 680 **** C IF (ICZERO) 36800, 6800, 36800 6800 CONTINUE IVON01 = -7 IVON02 = 3 IVCOMP = IVON01 ** IVON02 GO TO 46800 36800 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46800, 6811, 46800 46800 IF (IVCOMP + 343) 26800,16800,26800 16800 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6811 26800 IVFAIL = IVFAIL + 1 IVCORR = -343 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6811 CONTINUE IVTNUM = 681 C C **** TEST 681 **** C IF (ICZERO) 36810, 6810, 36810 6810 CONTINUE IVON01 = 7 IVON02 = 4 IVCOMP = IVON01 ** IVON02 GO TO 46810 36810 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46810, 6821, 46810 46810 IF (IVCOMP - 2401) 26810,16810,26810 16810 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6821 26810 IVFAIL = IVFAIL + 1 IVCORR = 2401 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6821 CONTINUE IVTNUM = 682 C C **** TEST 682 **** C IF (ICZERO) 36820, 6820, 36820 6820 CONTINUE IVON01 = -7 IVON02 = 4 IVCOMP = IVON01 ** IVON02 GO TO 46820 36820 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46820, 6831, 46820 46820 IF (IVCOMP - 2401) 26820,16820,26820 16820 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6831 26820 IVFAIL = IVFAIL + 1 IVCORR = 2401 WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 6831 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 FM042) END