C COMMENT SECTION C C FM035 C C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE C FORM C INTEGER VARIABLE = ARITHMETIC EXPRESSION C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC C OPERATOR *, INTEGER VARIABLES AND INTEGER CONSTANT. SOME OF THE C TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE EXPRESSION AND TO C ALLOW THE USE OF NEGATIVE CONSTANTS FOLLOWING THE * OPERATOR. C THE INTEGER VARIABLES CONTAIN POSITIVE AND NEGATIVE VALUES. C C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS C (1) INTEGER VARIABLE * INTEGER VARIABLE C (2) INTEGER VARIABLE * INTEGER VARIABLE * INTEGER CONSTANT C INTEGER VARIABLE * INTEGER CONSTANT * INTEGER VARIABLE C INTEGER CONSTANT * INTEGER VARIABLE * INTEGER VARIABLE C (3) SAME AS (2) BUT WITH PARENTHESES TO GROUP ELEMENTS. 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 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 430 THROUGH TEST 441 CONTAIN TWO INTEGER VARIABLES AND C OPERATOR * IN AN ARITHMETIC EXPRESSION. C THE FORM IS IV = IV * IV C C TEST 430 THROUGH TEST 433 - TWO POSITIVE VARIABLES C 4301 CONTINUE IVTNUM = 430 C C **** TEST 430 **** C IF (ICZERO) 34300, 4300, 34300 4300 CONTINUE IVON01 = 2 IVON02 = 3 IVCOMP = IVON01 * IVON02 GO TO 44300 34300 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44300, 4311, 44300 44300 IF (IVCOMP - 6) 24300,14300,24300 14300 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4311 24300 IVFAIL = IVFAIL + 1 IVCORR = 6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4311 CONTINUE IVTNUM = 431 C C **** TEST 431 **** C IF (ICZERO) 34310, 4310, 34310 4310 CONTINUE IVON01 = 13 IVON02 = 11 IVCOMP = IVON01 * IVON02 GO TO 44310 34310 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44310, 4321, 44310 44310 IF (IVCOMP - 143) 24310,14310,24310 14310 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4321 24310 IVFAIL = IVFAIL + 1 IVCORR = 143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4321 CONTINUE IVTNUM = 432 C C **** TEST 432 **** C IF (ICZERO) 34320, 4320, 34320 4320 CONTINUE IVON01 = 223 IVON02 = 99 IVCOMP = IVON01 * IVON02 GO TO 44320 34320 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44320, 4331, 44320 44320 IF (IVCOMP - 22077) 24320,14320,24320 14320 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4331 24320 IVFAIL = IVFAIL + 1 IVCORR = 22077 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4331 CONTINUE IVTNUM = 433 C C **** TEST 433 **** C IF (ICZERO) 34330, 4330, 34330 4330 CONTINUE IVON01 = 11235 IVON02 = 2 IVCOMP = IVON01*IVON02 GO TO 44330 34330 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44330, 4341, 44330 44330 IF (IVCOMP - 22470) 24330,14330,24330 14330 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4341 24330 IVFAIL = IVFAIL + 1 IVCORR = 22470 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 434 THROUGH TEST 437 C ONE NEGATIVE VARIABLE, ONE POSITIVE VARIABLE C 4341 CONTINUE IVTNUM = 434 C C **** TEST 434 **** C IF (ICZERO) 34340, 4340, 34340 4340 CONTINUE IVON01 = -2 IVON02 = 3 IVCOMP = IVON01 * IVON02 GO TO 44340 34340 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44340, 4351, 44340 44340 IF (IVCOMP +6) 24340,14340,24340 14340 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4351 24340 IVFAIL = IVFAIL + 1 IVCORR = -6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4351 CONTINUE IVTNUM = 435 C C **** TEST 435 **** C IF (ICZERO) 34350, 4350, 34350 4350 CONTINUE IVON01 = -13 IVON02 = +11 IVCOMP = IVON01*IVON02 GO TO 44350 34350 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44350, 4361, 44350 44350 IF (IVCOMP + 143) 24350,14350,24350 14350 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4361 24350 IVFAIL = IVFAIL + 1 IVCORR = -143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4361 CONTINUE IVTNUM = 436 C C **** TEST 436 **** C IF (ICZERO) 34360, 4360, 34360 4360 CONTINUE IVON01 = -223 IVON02 = 99 IVCOMP = IVON01 * IVON02 GO TO 44360 34360 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44360, 4371, 44360 44360 IF (IVCOMP + 22077) 24360,14360,24360 14360 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4371 24360 IVFAIL = IVFAIL + 1 IVCORR = -22077 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4371 CONTINUE IVTNUM = 437 C C **** TEST 437 **** C IF (ICZERO) 34370, 4370, 34370 4370 CONTINUE IVON01 = -11235 IVON02 = 2 IVCOMP = IVON01 * IVON02 GO TO 44370 34370 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44370, 4381, 44370 44370 IF (IVCOMP + 22470) 24370,14370,24370 14370 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4381 24370 IVFAIL = IVFAIL + 1 IVCORR = -22470 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 438 THROUGH TEST 441 - TWO NEGATIVE VARIABLES 4381 CONTINUE IVTNUM = 438 C C **** TEST 438 **** C IF (ICZERO) 34380, 4380, 34380 4380 CONTINUE IVON01 = -2 IVON02 = -3 IVCOMP = IVON01 * IVON02 GO TO 44380 34380 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44380, 4391, 44380 44380 IF (IVCOMP - 6) 24380,14380,24380 14380 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4391 24380 IVFAIL = IVFAIL + 1 IVCORR = 6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4391 CONTINUE IVTNUM = 439 C C **** TEST 439 **** C IF (ICZERO) 34390, 4390, 34390 4390 CONTINUE IVON01 = -13 IVON02 = -11 IVCOMP = IVON01 * IVON02 GO TO 44390 34390 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44390, 4401, 44390 44390 IF (IVCOMP - 143) 24390,14390,24390 14390 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4401 24390 IVFAIL = IVFAIL + 1 IVCORR = 143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4401 CONTINUE IVTNUM = 440 C C **** TEST 440 **** C IF (ICZERO) 34400, 4400, 34400 4400 CONTINUE IVON01 = -223 IVON02 = -99 IVCOMP = IVON01*IVON02 GO TO 44400 34400 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44400, 4411, 44400 44400 IF (IVCOMP - 22077) 24400,14400,24400 14400 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4411 24400 IVFAIL = IVFAIL + 1 IVCORR = 22077 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4411 CONTINUE IVTNUM = 441 C C **** TEST 441 **** C IF (ICZERO) 34410, 4410, 34410 4410 CONTINUE IVON01 = -5461 IVON02 = -6 IVCOMP = IVON01 * IVON02 GO TO 44410 34410 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44410, 4421, 44410 44410 IF (IVCOMP - 32766) 24410, 14410, 24410 14410 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4421 24410 IVFAIL = IVFAIL + 1 IVCORR = 32766 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 442 THROUGH TEST 445 CONTAIN SIGNED INTEGER VARIABLES AND C OPERATOR * IN AN ARITHMETIC EXPRESSION. 4421 CONTINUE IVTNUM = 442 C C **** TEST 442 **** C FORM IS IV = -IV*IV C IF (ICZERO) 34420, 4420, 34420 4420 CONTINUE IVON01 = 2 IVON02 = 3 IVCOMP = -IVON01 * IVON02 GO TO 44420 34420 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44420, 4431, 44420 44420 IF (IVCOMP + 6) 24420,14420,24420 14420 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4431 24420 IVFAIL = IVFAIL + 1 IVCORR = -6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4431 CONTINUE IVTNUM = 443 C C **** TEST 443 **** C FORM IS IV = IV*(-IV) C IF (ICZERO) 34430, 4430, 34430 4430 CONTINUE IVON01 = 2 IVON02 = 3 IVCOMP = IVON01 * (-IVON02) GO TO 44430 34430 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44430, 4441, 44430 44430 IF (IVCOMP +6) 24430,14430,24430 14430 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4441 24430 IVFAIL = IVFAIL + 1 IVCORR = -6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4441 CONTINUE IVTNUM = 444 C C **** TEST 444 **** C FORM IS IV = (-IV)*(-IV) C IF (ICZERO) 34440, 4440, 34440 4440 CONTINUE IVON01 = 2 IVON02 = 3 IVCOMP = (-IVON01) * (-IVON02) GO TO 44440 34440 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44440, 4451, 44440 44440 IF (IVCOMP - 6) 24440,14440,24440 14440 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4451 24440 IVFAIL = IVFAIL + 1 IVCORR = 6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4451 CONTINUE IVTNUM = 445 C C **** TEST 445 **** C FORM IS IV = -IV * IV C IF (ICZERO) 34450, 4450, 34450 4450 CONTINUE IVON01 = -11235 IVON02 = -2 IVCOMP = -IVON01 * IVON02 GO TO 44450 34450 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44450, 4461, 44450 44450 IF (IVCOMP + 22470) 24450,14450,24450 14450 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4461 24450 IVFAIL = IVFAIL + 1 IVCORR = -22470 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 446 THROUGH TEST 452 CONTAIN TWO INTEGER VARIABLES, AN C INTEGER CONSTANT AND OPERATOR * IN AN ARITHMETIC EXPRESSION. C 4461 CONTINUE IVTNUM = 446 C C **** TEST 446 **** C IF (ICZERO) 34460, 4460, 34460 4460 CONTINUE IVON01 = 2 IVON02 = 3 IVCOMP = IVON01 * IVON02 * 4 GO TO 44460 34460 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44460, 4471, 44460 44460 IF (IVCOMP -24) 24460,14460,24460 14460 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4471 24460 IVFAIL = IVFAIL + 1 IVCORR = 24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4471 CONTINUE IVTNUM = 447 C C **** TEST 447 **** C IF (ICZERO) 34470, 4470, 34470 4470 CONTINUE IVON01 = -2 IVON02 = 3 IVCOMP = IVON01 * IVON02 * 4 GO TO 44470 34470 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44470, 4481, 44470 44470 IF (IVCOMP +24) 24470,14470,24470 14470 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4481 24470 IVFAIL = IVFAIL + 1 IVCORR = -24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4481 CONTINUE IVTNUM = 448 C C **** TEST 448 **** C IF (ICZERO) 34480, 4480, 34480 4480 CONTINUE IVON01 = -2 IVON02 = 3 IVCOMP = IVON01 * IVON02 * (-4) GO TO 44480 34480 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44480, 4491, 44480 44480 IF (IVCOMP -24) 24480,14480,24480 14480 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4491 24480 IVFAIL = IVFAIL + 1 IVCORR = 24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4491 CONTINUE IVTNUM = 449 C C **** TEST 449 **** C IF (ICZERO) 34490, 4490, 34490 4490 CONTINUE IVON01 = 51 IVON03 = 13 IVCOMP = IVON01 * 23 * IVON03 GO TO 44490 34490 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44490, 4501, 44490 44490 IF (IVCOMP - 15249) 24490,14490,24490 14490 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4501 24490 IVFAIL = IVFAIL + 1 IVCORR = 15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4501 CONTINUE IVTNUM = 450 C C **** TEST 450 **** C IF (ICZERO) 34500, 4500, 34500 4500 CONTINUE IVON02 = 2 IVON03 = 5461 IVCOMP = 3 * IVON02 * IVON03 GO TO 44500 34500 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44500, 4511, 44500 44500 IF (IVCOMP -32766) 24500,14500,24500 14500 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4511 24500 IVFAIL = IVFAIL + 1 IVCORR = 32766 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4511 CONTINUE IVTNUM = 451 C C **** TEST 451 **** C IF (ICZERO) 34510, 4510, 34510 4510 CONTINUE IVON01 = -51 IVON03 = 13 IVCOMP = IVON01 * 23 * (-IVON03) GO TO 44510 34510 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44510, 4521, 44510 44510 IF (IVCOMP - 15249) 24510,14510,24510 14510 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4521 24510 IVFAIL = IVFAIL + 1 IVCORR = 15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4521 CONTINUE IVTNUM = 452 C C **** TEST 452 **** C IF (ICZERO) 34520, 4520, 34520 4520 CONTINUE IVON01 = -5461 IVON03 = 2 IVCOMP = IVON01 * (-3) * IVON03 GO TO 44520 34520 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44520, 4531, 44520 44520 IF (IVCOMP - 32766) 24520,14520,24520 14520 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4531 24520 IVFAIL = IVFAIL + 1 IVCORR = 32766 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 453 THROUGH TEST 461 CONTAIN TWO INTEGER VARIABLES AND ONE C INTEGER CONSTANT IN AN ARITHMETIC EXPRESSION. PARENTHESES ARE C USED TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSIONS IN THESE C TESTS. C 4531 CONTINUE IVTNUM = 453 C C **** TEST 453 **** C IF (ICZERO) 34530, 4530, 34530 4530 CONTINUE IVON01 = 2 IVON02 = 3 IVCOMP = IVON01 * (IVON02 * 4) GO TO 44530 34530 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44530, 4541, 44530 44530 IF (IVCOMP - 24) 24530,14530,24530 14530 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4541 24530 IVFAIL = IVFAIL + 1 IVCORR = 24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4541 CONTINUE IVTNUM = 454 C C **** TEST 454 **** C IF (ICZERO) 34540, 4540, 34540 4540 CONTINUE IVON01 = 2 IVON02 = 3 IVCOMP = (IVON01 * IVON02) * 4 GO TO 44540 34540 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44540, 4551, 44540 44540 IF (IVCOMP -24) 24540,14540,24540 14540 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4551 24540 IVFAIL = IVFAIL + 1 IVCORR = 24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4551 CONTINUE IVTNUM = 455 C C **** TEST 455 **** C IF (ICZERO) 34550, 4550, 34550 4550 CONTINUE IVON01 = -2 IVON02 = 3 IVCOMP = IVON01 *(IVON02 * (-4)) GO TO 44550 34550 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44550, 4561, 44550 44550 IF (IVCOMP - 24) 24550,14550,24550 14550 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4561 24550 IVFAIL = IVFAIL + 1 IVCORR = 24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4561 CONTINUE IVTNUM = 456 C C **** TEST 456 **** C IF (ICZERO) 34560, 4560, 34560 4560 CONTINUE IVON01 = -2 IVON02 = -3 IVCOMP = IVON01 * (IVON02 * 4) GO TO 44560 34560 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44560, 4571, 44560 44560 IF (IVCOMP -24) 24560,14560,24560 14560 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4571 24560 IVFAIL = IVFAIL + 1 IVCORR = 24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4571 CONTINUE IVTNUM = 457 C C **** TEST 457 **** C IF (ICZERO) 34570, 4570, 34570 4570 CONTINUE IVON01 = -2 IVON02 = -3 IVCOMP = (IVON01*IVON02) * (-4) GO TO 44570 34570 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44570, 4581, 44570 44570 IF (IVCOMP +24) 24570,14570,24570 14570 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4581 24570 IVFAIL = IVFAIL + 1 IVCORR = -24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4581 CONTINUE IVTNUM = 458 C C **** TEST 458 **** C IF (ICZERO) 34580, 4580, 34580 4580 CONTINUE IVON01 = 23 IVON03 = 13 IVCOMP = IVON01 * (51 * IVON03) GO TO 44580 34580 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44580, 4591, 44580 44580 IF (IVCOMP -15249) 24580,14580,24580 14580 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4591 24580 IVFAIL = IVFAIL + 1 IVCORR = 15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4591 CONTINUE IVTNUM = 459 C C **** TEST 459 **** C IF (ICZERO) 34590, 4590, 34590 4590 CONTINUE IVON02 = 51 IVON03 = 13 IVCOMP = (23 * IVON02) * IVON03 GO TO 44590 34590 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44590, 4601, 44590 44590 IF (IVCOMP - 15249) 24590,14590,24590 14590 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4601 24590 IVFAIL = IVFAIL + 1 IVCORR = 15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4601 CONTINUE IVTNUM = 460 C C **** TEST 460 **** C IF (ICZERO) 34600, 4600, 34600 4600 CONTINUE IVON01 = -23 IVON03 = 13 IVCOMP = (IVON01 * (-51)) * (-IVON03) GO TO 44600 34600 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44600, 4611, 44600 44600 IF (IVCOMP + 15249) 24600,14600,24600 14600 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4611 24600 IVFAIL = IVFAIL + 1 IVCORR = -15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4611 CONTINUE IVTNUM = 461 C C **** TEST 461 **** C IF (ICZERO) 34610, 4610, 34610 4610 CONTINUE IVON02 = 51 IVON03 = 13 IVCOMP = -23 * (IVON02*IVON03) GO TO 44610 34610 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44610, 4621, 44610 44610 IF (IVCOMP + 15249) 24610,14610,24610 14610 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4621 24610 IVFAIL = IVFAIL + 1 IVCORR = -15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C **** END OF TESTS **** 4621 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 FM035) END