PROGRAM FM035 C COMMENT SECTION 00010035 C 00020035 C FM035 00030035 C 00040035 C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050035 C FORM 00060035 C INTEGER VARIABLE = ARITHMETIC EXPRESSION 00070035 C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00080035 C OPERATOR *, INTEGER VARIABLES AND INTEGER CONSTANT. SOME OF THE 00090035 C TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE EXPRESSION AND TO 00100035 C ALLOW THE USE OF NEGATIVE CONSTANTS FOLLOWING THE * OPERATOR. 00110035 C THE INTEGER VARIABLES CONTAIN POSITIVE AND NEGATIVE VALUES. 00120035 C 00130035 C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00140035 C (1) INTEGER VARIABLE * INTEGER VARIABLE 00150035 C (2) INTEGER VARIABLE * INTEGER VARIABLE * INTEGER CONSTANT 00160035 C INTEGER VARIABLE * INTEGER CONSTANT * INTEGER VARIABLE 00170035 C INTEGER CONSTANT * INTEGER VARIABLE * INTEGER VARIABLE 00180035 C (3) SAME AS (2) BUT WITH PARENTHESES TO GROUP ELEMENTS. 00190035 C 00200035 C REFERENCES 00210035 C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00220035 C X3.9-1978 00230035 C 00240035 C SECTION 4.3, INTEGER TYPE 00250035 C SECTION 4.3.1, INTEGER CONSTANT 00260035 C SECTION 6.1, ARITHMETIC EXPRESSIONS 00270035 C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00280035 C 00290035 C ********************************************************** 00300035 C 00310035 C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00320035 C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00330035 C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00340035 C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00350035 C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00360035 C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00370035 C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00380035 C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00390035 C OF EXECUTING THESE TESTS. 00400035 C 00410035 C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00420035 C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00430035 C 00440035 C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00450035 C 00460035 C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00470035 C SOFTWARE STANDARDS VALIDATION GROUP 00480035 C BUILDING 225 RM A266 00490035 C GAITHERSBURG, MD 20899 00500035 C ********************************************************** 00510035 C 00520035 C 00530035 C 00540035 C INITIALIZATION SECTION 00550035 C 00560035 C INITIALIZE CONSTANTS 00570035 C ************** 00580035 C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00590035 I01 = 5 00600035 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00610035 I02 = 6 00620035 C SYSTEM ENVIRONMENT SECTION 00630035 C 00640035 CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00650035 C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00660035 C (UNIT NUMBER FOR CARD READER). 00670035 CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00680035 C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00690035 C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00700035 C 00710035 CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00720035 C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00730035 C (UNIT NUMBER FOR PRINTER). 00740035 CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00750035 C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00760035 C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00770035 C 00780035 IVPASS=0 00790035 IVFAIL=0 00800035 IVDELE=0 00810035 ICZERO=0 00820035 C 00830035 C WRITE PAGE HEADERS 00840035 WRITE (I02,90000) 00850035 WRITE (I02,90001) 00860035 WRITE (I02,90002) 00870035 WRITE (I02, 90002) 00880035 WRITE (I02,90003) 00890035 WRITE (I02,90002) 00900035 WRITE (I02,90004) 00910035 WRITE (I02,90002) 00920035 WRITE (I02,90011) 00930035 WRITE (I02,90002) 00940035 WRITE (I02,90002) 00950035 WRITE (I02,90005) 00960035 WRITE (I02,90006) 00970035 WRITE (I02,90002) 00980035 C 00990035 C TEST SECTION 01000035 C 01010035 C ARITHMETIC ASSIGNMENT STATEMENT 01020035 C 01030035 C TEST 430 THROUGH TEST 441 CONTAIN TWO INTEGER VARIABLES AND 01040035 C OPERATOR * IN AN ARITHMETIC EXPRESSION. 01050035 C THE FORM IS IV = IV * IV 01060035 C 01070035 C TEST 430 THROUGH TEST 433 - TWO POSITIVE VARIABLES 01080035 C 01090035 4301 CONTINUE 01100035 IVTNUM = 430 01110035 C 01120035 C **** TEST 430 **** 01130035 C 01140035 IF (ICZERO) 34300, 4300, 34300 01150035 4300 CONTINUE 01160035 IVON01 = 2 01170035 IVON02 = 3 01180035 IVCOMP = IVON01 * IVON02 01190035 GO TO 44300 01200035 34300 IVDELE = IVDELE + 1 01210035 WRITE (I02,80003) IVTNUM 01220035 IF (ICZERO) 44300, 4311, 44300 01230035 44300 IF (IVCOMP - 6) 24300,14300,24300 01240035 14300 IVPASS = IVPASS + 1 01250035 WRITE (I02,80001) IVTNUM 01260035 GO TO 4311 01270035 24300 IVFAIL = IVFAIL + 1 01280035 IVCORR = 6 01290035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01300035 4311 CONTINUE 01310035 IVTNUM = 431 01320035 C 01330035 C **** TEST 431 **** 01340035 C 01350035 IF (ICZERO) 34310, 4310, 34310 01360035 4310 CONTINUE 01370035 IVON01 = 13 01380035 IVON02 = 11 01390035 IVCOMP = IVON01 * IVON02 01400035 GO TO 44310 01410035 34310 IVDELE = IVDELE + 1 01420035 WRITE (I02,80003) IVTNUM 01430035 IF (ICZERO) 44310, 4321, 44310 01440035 44310 IF (IVCOMP - 143) 24310,14310,24310 01450035 14310 IVPASS = IVPASS + 1 01460035 WRITE (I02,80001) IVTNUM 01470035 GO TO 4321 01480035 24310 IVFAIL = IVFAIL + 1 01490035 IVCORR = 143 01500035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01510035 4321 CONTINUE 01520035 IVTNUM = 432 01530035 C 01540035 C **** TEST 432 **** 01550035 C 01560035 IF (ICZERO) 34320, 4320, 34320 01570035 4320 CONTINUE 01580035 IVON01 = 223 01590035 IVON02 = 99 01600035 IVCOMP = IVON01 * IVON02 01610035 GO TO 44320 01620035 34320 IVDELE = IVDELE + 1 01630035 WRITE (I02,80003) IVTNUM 01640035 IF (ICZERO) 44320, 4331, 44320 01650035 44320 IF (IVCOMP - 22077) 24320,14320,24320 01660035 14320 IVPASS = IVPASS + 1 01670035 WRITE (I02,80001) IVTNUM 01680035 GO TO 4331 01690035 24320 IVFAIL = IVFAIL + 1 01700035 IVCORR = 22077 01710035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01720035 4331 CONTINUE 01730035 IVTNUM = 433 01740035 C 01750035 C **** TEST 433 **** 01760035 C 01770035 IF (ICZERO) 34330, 4330, 34330 01780035 4330 CONTINUE 01790035 IVON01 = 11235 01800035 IVON02 = 2 01810035 IVCOMP = IVON01*IVON02 01820035 GO TO 44330 01830035 34330 IVDELE = IVDELE + 1 01840035 WRITE (I02,80003) IVTNUM 01850035 IF (ICZERO) 44330, 4341, 44330 01860035 44330 IF (IVCOMP - 22470) 24330,14330,24330 01870035 14330 IVPASS = IVPASS + 1 01880035 WRITE (I02,80001) IVTNUM 01890035 GO TO 4341 01900035 24330 IVFAIL = IVFAIL + 1 01910035 IVCORR = 22470 01920035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01930035 C 01940035 C TEST 434 THROUGH TEST 437 01950035 C ONE NEGATIVE VARIABLE, ONE POSITIVE VARIABLE 01960035 C 01970035 4341 CONTINUE 01980035 IVTNUM = 434 01990035 C 02000035 C **** TEST 434 **** 02010035 C 02020035 IF (ICZERO) 34340, 4340, 34340 02030035 4340 CONTINUE 02040035 IVON01 = -2 02050035 IVON02 = 3 02060035 IVCOMP = IVON01 * IVON02 02070035 GO TO 44340 02080035 34340 IVDELE = IVDELE + 1 02090035 WRITE (I02,80003) IVTNUM 02100035 IF (ICZERO) 44340, 4351, 44340 02110035 44340 IF (IVCOMP +6) 24340,14340,24340 02120035 14340 IVPASS = IVPASS + 1 02130035 WRITE (I02,80001) IVTNUM 02140035 GO TO 4351 02150035 24340 IVFAIL = IVFAIL + 1 02160035 IVCORR = -6 02170035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02180035 4351 CONTINUE 02190035 IVTNUM = 435 02200035 C 02210035 C **** TEST 435 **** 02220035 C 02230035 IF (ICZERO) 34350, 4350, 34350 02240035 4350 CONTINUE 02250035 IVON01 = -13 02260035 IVON02 = +11 02270035 IVCOMP = IVON01*IVON02 02280035 GO TO 44350 02290035 34350 IVDELE = IVDELE + 1 02300035 WRITE (I02,80003) IVTNUM 02310035 IF (ICZERO) 44350, 4361, 44350 02320035 44350 IF (IVCOMP + 143) 24350,14350,24350 02330035 14350 IVPASS = IVPASS + 1 02340035 WRITE (I02,80001) IVTNUM 02350035 GO TO 4361 02360035 24350 IVFAIL = IVFAIL + 1 02370035 IVCORR = -143 02380035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02390035 4361 CONTINUE 02400035 IVTNUM = 436 02410035 C 02420035 C **** TEST 436 **** 02430035 C 02440035 IF (ICZERO) 34360, 4360, 34360 02450035 4360 CONTINUE 02460035 IVON01 = -223 02470035 IVON02 = 99 02480035 IVCOMP = IVON01 * IVON02 02490035 GO TO 44360 02500035 34360 IVDELE = IVDELE + 1 02510035 WRITE (I02,80003) IVTNUM 02520035 IF (ICZERO) 44360, 4371, 44360 02530035 44360 IF (IVCOMP + 22077) 24360,14360,24360 02540035 14360 IVPASS = IVPASS + 1 02550035 WRITE (I02,80001) IVTNUM 02560035 GO TO 4371 02570035 24360 IVFAIL = IVFAIL + 1 02580035 IVCORR = -22077 02590035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02600035 4371 CONTINUE 02610035 IVTNUM = 437 02620035 C 02630035 C **** TEST 437 **** 02640035 C 02650035 IF (ICZERO) 34370, 4370, 34370 02660035 4370 CONTINUE 02670035 IVON01 = -11235 02680035 IVON02 = 2 02690035 IVCOMP = IVON01 * IVON02 02700035 GO TO 44370 02710035 34370 IVDELE = IVDELE + 1 02720035 WRITE (I02,80003) IVTNUM 02730035 IF (ICZERO) 44370, 4381, 44370 02740035 44370 IF (IVCOMP + 22470) 24370,14370,24370 02750035 14370 IVPASS = IVPASS + 1 02760035 WRITE (I02,80001) IVTNUM 02770035 GO TO 4381 02780035 24370 IVFAIL = IVFAIL + 1 02790035 IVCORR = -22470 02800035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02810035 C 02820035 C TEST 438 THROUGH TEST 441 - TWO NEGATIVE VARIABLES 02830035 4381 CONTINUE 02840035 IVTNUM = 438 02850035 C 02860035 C **** TEST 438 **** 02870035 C 02880035 IF (ICZERO) 34380, 4380, 34380 02890035 4380 CONTINUE 02900035 IVON01 = -2 02910035 IVON02 = -3 02920035 IVCOMP = IVON01 * IVON02 02930035 GO TO 44380 02940035 34380 IVDELE = IVDELE + 1 02950035 WRITE (I02,80003) IVTNUM 02960035 IF (ICZERO) 44380, 4391, 44380 02970035 44380 IF (IVCOMP - 6) 24380,14380,24380 02980035 14380 IVPASS = IVPASS + 1 02990035 WRITE (I02,80001) IVTNUM 03000035 GO TO 4391 03010035 24380 IVFAIL = IVFAIL + 1 03020035 IVCORR = 6 03030035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03040035 4391 CONTINUE 03050035 IVTNUM = 439 03060035 C 03070035 C **** TEST 439 **** 03080035 C 03090035 IF (ICZERO) 34390, 4390, 34390 03100035 4390 CONTINUE 03110035 IVON01 = -13 03120035 IVON02 = -11 03130035 IVCOMP = IVON01 * IVON02 03140035 GO TO 44390 03150035 34390 IVDELE = IVDELE + 1 03160035 WRITE (I02,80003) IVTNUM 03170035 IF (ICZERO) 44390, 4401, 44390 03180035 44390 IF (IVCOMP - 143) 24390,14390,24390 03190035 14390 IVPASS = IVPASS + 1 03200035 WRITE (I02,80001) IVTNUM 03210035 GO TO 4401 03220035 24390 IVFAIL = IVFAIL + 1 03230035 IVCORR = 143 03240035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03250035 4401 CONTINUE 03260035 IVTNUM = 440 03270035 C 03280035 C **** TEST 440 **** 03290035 C 03300035 IF (ICZERO) 34400, 4400, 34400 03310035 4400 CONTINUE 03320035 IVON01 = -223 03330035 IVON02 = -99 03340035 IVCOMP = IVON01*IVON02 03350035 GO TO 44400 03360035 34400 IVDELE = IVDELE + 1 03370035 WRITE (I02,80003) IVTNUM 03380035 IF (ICZERO) 44400, 4411, 44400 03390035 44400 IF (IVCOMP - 22077) 24400,14400,24400 03400035 14400 IVPASS = IVPASS + 1 03410035 WRITE (I02,80001) IVTNUM 03420035 GO TO 4411 03430035 24400 IVFAIL = IVFAIL + 1 03440035 IVCORR = 22077 03450035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03460035 4411 CONTINUE 03470035 IVTNUM = 441 03480035 C 03490035 C **** TEST 441 **** 03500035 C 03510035 IF (ICZERO) 34410, 4410, 34410 03520035 4410 CONTINUE 03530035 IVON01 = -5461 03540035 IVON02 = -6 03550035 IVCOMP = IVON01 * IVON02 03560035 GO TO 44410 03570035 34410 IVDELE = IVDELE + 1 03580035 WRITE (I02,80003) IVTNUM 03590035 IF (ICZERO) 44410, 4421, 44410 03600035 44410 IF (IVCOMP - 32766) 24410, 14410, 24410 03610035 14410 IVPASS = IVPASS + 1 03620035 WRITE (I02,80001) IVTNUM 03630035 GO TO 4421 03640035 24410 IVFAIL = IVFAIL + 1 03650035 IVCORR = 32766 03660035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03670035 C 03680035 C TEST 442 THROUGH TEST 445 CONTAIN SIGNED INTEGER VARIABLES AND 03690035 C OPERATOR * IN AN ARITHMETIC EXPRESSION. 03700035 4421 CONTINUE 03710035 IVTNUM = 442 03720035 C 03730035 C **** TEST 442 **** 03740035 C FORM IS IV = -IV*IV 03750035 C 03760035 IF (ICZERO) 34420, 4420, 34420 03770035 4420 CONTINUE 03780035 IVON01 = 2 03790035 IVON02 = 3 03800035 IVCOMP = -IVON01 * IVON02 03810035 GO TO 44420 03820035 34420 IVDELE = IVDELE + 1 03830035 WRITE (I02,80003) IVTNUM 03840035 IF (ICZERO) 44420, 4431, 44420 03850035 44420 IF (IVCOMP + 6) 24420,14420,24420 03860035 14420 IVPASS = IVPASS + 1 03870035 WRITE (I02,80001) IVTNUM 03880035 GO TO 4431 03890035 24420 IVFAIL = IVFAIL + 1 03900035 IVCORR = -6 03910035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03920035 4431 CONTINUE 03930035 IVTNUM = 443 03940035 C 03950035 C **** TEST 443 **** 03960035 C FORM IS IV = IV*(-IV) 03970035 C 03980035 IF (ICZERO) 34430, 4430, 34430 03990035 4430 CONTINUE 04000035 IVON01 = 2 04010035 IVON02 = 3 04020035 IVCOMP = IVON01 * (-IVON02) 04030035 GO TO 44430 04040035 34430 IVDELE = IVDELE + 1 04050035 WRITE (I02,80003) IVTNUM 04060035 IF (ICZERO) 44430, 4441, 44430 04070035 44430 IF (IVCOMP +6) 24430,14430,24430 04080035 14430 IVPASS = IVPASS + 1 04090035 WRITE (I02,80001) IVTNUM 04100035 GO TO 4441 04110035 24430 IVFAIL = IVFAIL + 1 04120035 IVCORR = -6 04130035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04140035 4441 CONTINUE 04150035 IVTNUM = 444 04160035 C 04170035 C **** TEST 444 **** 04180035 C FORM IS IV = (-IV)*(-IV) 04190035 C 04200035 IF (ICZERO) 34440, 4440, 34440 04210035 4440 CONTINUE 04220035 IVON01 = 2 04230035 IVON02 = 3 04240035 IVCOMP = (-IVON01) * (-IVON02) 04250035 GO TO 44440 04260035 34440 IVDELE = IVDELE + 1 04270035 WRITE (I02,80003) IVTNUM 04280035 IF (ICZERO) 44440, 4451, 44440 04290035 44440 IF (IVCOMP - 6) 24440,14440,24440 04300035 14440 IVPASS = IVPASS + 1 04310035 WRITE (I02,80001) IVTNUM 04320035 GO TO 4451 04330035 24440 IVFAIL = IVFAIL + 1 04340035 IVCORR = 6 04350035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04360035 4451 CONTINUE 04370035 IVTNUM = 445 04380035 C 04390035 C **** TEST 445 **** 04400035 C FORM IS IV = -IV * IV 04410035 C 04420035 IF (ICZERO) 34450, 4450, 34450 04430035 4450 CONTINUE 04440035 IVON01 = -11235 04450035 IVON02 = -2 04460035 IVCOMP = -IVON01 * IVON02 04470035 GO TO 44450 04480035 34450 IVDELE = IVDELE + 1 04490035 WRITE (I02,80003) IVTNUM 04500035 IF (ICZERO) 44450, 4461, 44450 04510035 44450 IF (IVCOMP + 22470) 24450,14450,24450 04520035 14450 IVPASS = IVPASS + 1 04530035 WRITE (I02,80001) IVTNUM 04540035 GO TO 4461 04550035 24450 IVFAIL = IVFAIL + 1 04560035 IVCORR = -22470 04570035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04580035 C 04590035 C TEST 446 THROUGH TEST 452 CONTAIN TWO INTEGER VARIABLES, AN 04600035 C INTEGER CONSTANT AND OPERATOR * IN AN ARITHMETIC EXPRESSION. 04610035 C 04620035 4461 CONTINUE 04630035 IVTNUM = 446 04640035 C 04650035 C **** TEST 446 **** 04660035 C 04670035 IF (ICZERO) 34460, 4460, 34460 04680035 4460 CONTINUE 04690035 IVON01 = 2 04700035 IVON02 = 3 04710035 IVCOMP = IVON01 * IVON02 * 4 04720035 GO TO 44460 04730035 34460 IVDELE = IVDELE + 1 04740035 WRITE (I02,80003) IVTNUM 04750035 IF (ICZERO) 44460, 4471, 44460 04760035 44460 IF (IVCOMP -24) 24460,14460,24460 04770035 14460 IVPASS = IVPASS + 1 04780035 WRITE (I02,80001) IVTNUM 04790035 GO TO 4471 04800035 24460 IVFAIL = IVFAIL + 1 04810035 IVCORR = 24 04820035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04830035 4471 CONTINUE 04840035 IVTNUM = 447 04850035 C 04860035 C **** TEST 447 **** 04870035 C 04880035 IF (ICZERO) 34470, 4470, 34470 04890035 4470 CONTINUE 04900035 IVON01 = -2 04910035 IVON02 = 3 04920035 IVCOMP = IVON01 * IVON02 * 4 04930035 GO TO 44470 04940035 34470 IVDELE = IVDELE + 1 04950035 WRITE (I02,80003) IVTNUM 04960035 IF (ICZERO) 44470, 4481, 44470 04970035 44470 IF (IVCOMP +24) 24470,14470,24470 04980035 14470 IVPASS = IVPASS + 1 04990035 WRITE (I02,80001) IVTNUM 05000035 GO TO 4481 05010035 24470 IVFAIL = IVFAIL + 1 05020035 IVCORR = -24 05030035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05040035 4481 CONTINUE 05050035 IVTNUM = 448 05060035 C 05070035 C **** TEST 448 **** 05080035 C 05090035 IF (ICZERO) 34480, 4480, 34480 05100035 4480 CONTINUE 05110035 IVON01 = -2 05120035 IVON02 = 3 05130035 IVCOMP = IVON01 * IVON02 * (-4) 05140035 GO TO 44480 05150035 34480 IVDELE = IVDELE + 1 05160035 WRITE (I02,80003) IVTNUM 05170035 IF (ICZERO) 44480, 4491, 44480 05180035 44480 IF (IVCOMP -24) 24480,14480,24480 05190035 14480 IVPASS = IVPASS + 1 05200035 WRITE (I02,80001) IVTNUM 05210035 GO TO 4491 05220035 24480 IVFAIL = IVFAIL + 1 05230035 IVCORR = 24 05240035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05250035 4491 CONTINUE 05260035 IVTNUM = 449 05270035 C 05280035 C **** TEST 449 **** 05290035 C 05300035 IF (ICZERO) 34490, 4490, 34490 05310035 4490 CONTINUE 05320035 IVON01 = 51 05330035 IVON03 = 13 05340035 IVCOMP = IVON01 * 23 * IVON03 05350035 GO TO 44490 05360035 34490 IVDELE = IVDELE + 1 05370035 WRITE (I02,80003) IVTNUM 05380035 IF (ICZERO) 44490, 4501, 44490 05390035 44490 IF (IVCOMP - 15249) 24490,14490,24490 05400035 14490 IVPASS = IVPASS + 1 05410035 WRITE (I02,80001) IVTNUM 05420035 GO TO 4501 05430035 24490 IVFAIL = IVFAIL + 1 05440035 IVCORR = 15249 05450035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05460035 4501 CONTINUE 05470035 IVTNUM = 450 05480035 C 05490035 C **** TEST 450 **** 05500035 C 05510035 IF (ICZERO) 34500, 4500, 34500 05520035 4500 CONTINUE 05530035 IVON02 = 2 05540035 IVON03 = 5461 05550035 IVCOMP = 3 * IVON02 * IVON03 05560035 GO TO 44500 05570035 34500 IVDELE = IVDELE + 1 05580035 WRITE (I02,80003) IVTNUM 05590035 IF (ICZERO) 44500, 4511, 44500 05600035 44500 IF (IVCOMP -32766) 24500,14500,24500 05610035 14500 IVPASS = IVPASS + 1 05620035 WRITE (I02,80001) IVTNUM 05630035 GO TO 4511 05640035 24500 IVFAIL = IVFAIL + 1 05650035 IVCORR = 32766 05660035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05670035 4511 CONTINUE 05680035 IVTNUM = 451 05690035 C 05700035 C **** TEST 451 **** 05710035 C 05720035 IF (ICZERO) 34510, 4510, 34510 05730035 4510 CONTINUE 05740035 IVON01 = -51 05750035 IVON03 = 13 05760035 IVCOMP = IVON01 * 23 * (-IVON03) 05770035 GO TO 44510 05780035 34510 IVDELE = IVDELE + 1 05790035 WRITE (I02,80003) IVTNUM 05800035 IF (ICZERO) 44510, 4521, 44510 05810035 44510 IF (IVCOMP - 15249) 24510,14510,24510 05820035 14510 IVPASS = IVPASS + 1 05830035 WRITE (I02,80001) IVTNUM 05840035 GO TO 4521 05850035 24510 IVFAIL = IVFAIL + 1 05860035 IVCORR = 15249 05870035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05880035 4521 CONTINUE 05890035 IVTNUM = 452 05900035 C 05910035 C **** TEST 452 **** 05920035 C 05930035 IF (ICZERO) 34520, 4520, 34520 05940035 4520 CONTINUE 05950035 IVON01 = -5461 05960035 IVON03 = 2 05970035 IVCOMP = IVON01 * (-3) * IVON03 05980035 GO TO 44520 05990035 34520 IVDELE = IVDELE + 1 06000035 WRITE (I02,80003) IVTNUM 06010035 IF (ICZERO) 44520, 4531, 44520 06020035 44520 IF (IVCOMP - 32766) 24520,14520,24520 06030035 14520 IVPASS = IVPASS + 1 06040035 WRITE (I02,80001) IVTNUM 06050035 GO TO 4531 06060035 24520 IVFAIL = IVFAIL + 1 06070035 IVCORR = 32766 06080035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06090035 C 06100035 C TEST 453 THROUGH TEST 461 CONTAIN TWO INTEGER VARIABLES AND ONE 06110035 C INTEGER CONSTANT IN AN ARITHMETIC EXPRESSION. PARENTHESES ARE 06120035 C USED TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSIONS IN THESE 06130035 C TESTS. 06140035 C 06150035 4531 CONTINUE 06160035 IVTNUM = 453 06170035 C 06180035 C **** TEST 453 **** 06190035 C 06200035 IF (ICZERO) 34530, 4530, 34530 06210035 4530 CONTINUE 06220035 IVON01 = 2 06230035 IVON02 = 3 06240035 IVCOMP = IVON01 * (IVON02 * 4) 06250035 GO TO 44530 06260035 34530 IVDELE = IVDELE + 1 06270035 WRITE (I02,80003) IVTNUM 06280035 IF (ICZERO) 44530, 4541, 44530 06290035 44530 IF (IVCOMP - 24) 24530,14530,24530 06300035 14530 IVPASS = IVPASS + 1 06310035 WRITE (I02,80001) IVTNUM 06320035 GO TO 4541 06330035 24530 IVFAIL = IVFAIL + 1 06340035 IVCORR = 24 06350035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06360035 4541 CONTINUE 06370035 IVTNUM = 454 06380035 C 06390035 C **** TEST 454 **** 06400035 C 06410035 IF (ICZERO) 34540, 4540, 34540 06420035 4540 CONTINUE 06430035 IVON01 = 2 06440035 IVON02 = 3 06450035 IVCOMP = (IVON01 * IVON02) * 4 06460035 GO TO 44540 06470035 34540 IVDELE = IVDELE + 1 06480035 WRITE (I02,80003) IVTNUM 06490035 IF (ICZERO) 44540, 4551, 44540 06500035 44540 IF (IVCOMP -24) 24540,14540,24540 06510035 14540 IVPASS = IVPASS + 1 06520035 WRITE (I02,80001) IVTNUM 06530035 GO TO 4551 06540035 24540 IVFAIL = IVFAIL + 1 06550035 IVCORR = 24 06560035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06570035 4551 CONTINUE 06580035 IVTNUM = 455 06590035 C 06600035 C **** TEST 455 **** 06610035 C 06620035 IF (ICZERO) 34550, 4550, 34550 06630035 4550 CONTINUE 06640035 IVON01 = -2 06650035 IVON02 = 3 06660035 IVCOMP = IVON01 *(IVON02 * (-4)) 06670035 GO TO 44550 06680035 34550 IVDELE = IVDELE + 1 06690035 WRITE (I02,80003) IVTNUM 06700035 IF (ICZERO) 44550, 4561, 44550 06710035 44550 IF (IVCOMP - 24) 24550,14550,24550 06720035 14550 IVPASS = IVPASS + 1 06730035 WRITE (I02,80001) IVTNUM 06740035 GO TO 4561 06750035 24550 IVFAIL = IVFAIL + 1 06760035 IVCORR = 24 06770035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06780035 4561 CONTINUE 06790035 IVTNUM = 456 06800035 C 06810035 C **** TEST 456 **** 06820035 C 06830035 IF (ICZERO) 34560, 4560, 34560 06840035 4560 CONTINUE 06850035 IVON01 = -2 06860035 IVON02 = -3 06870035 IVCOMP = IVON01 * (IVON02 * 4) 06880035 GO TO 44560 06890035 34560 IVDELE = IVDELE + 1 06900035 WRITE (I02,80003) IVTNUM 06910035 IF (ICZERO) 44560, 4571, 44560 06920035 44560 IF (IVCOMP -24) 24560,14560,24560 06930035 14560 IVPASS = IVPASS + 1 06940035 WRITE (I02,80001) IVTNUM 06950035 GO TO 4571 06960035 24560 IVFAIL = IVFAIL + 1 06970035 IVCORR = 24 06980035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06990035 4571 CONTINUE 07000035 IVTNUM = 457 07010035 C 07020035 C **** TEST 457 **** 07030035 C 07040035 IF (ICZERO) 34570, 4570, 34570 07050035 4570 CONTINUE 07060035 IVON01 = -2 07070035 IVON02 = -3 07080035 IVCOMP = (IVON01*IVON02) * (-4) 07090035 GO TO 44570 07100035 34570 IVDELE = IVDELE + 1 07110035 WRITE (I02,80003) IVTNUM 07120035 IF (ICZERO) 44570, 4581, 44570 07130035 44570 IF (IVCOMP +24) 24570,14570,24570 07140035 14570 IVPASS = IVPASS + 1 07150035 WRITE (I02,80001) IVTNUM 07160035 GO TO 4581 07170035 24570 IVFAIL = IVFAIL + 1 07180035 IVCORR = -24 07190035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07200035 4581 CONTINUE 07210035 IVTNUM = 458 07220035 C 07230035 C **** TEST 458 **** 07240035 C 07250035 IF (ICZERO) 34580, 4580, 34580 07260035 4580 CONTINUE 07270035 IVON01 = 23 07280035 IVON03 = 13 07290035 IVCOMP = IVON01 * (51 * IVON03) 07300035 GO TO 44580 07310035 34580 IVDELE = IVDELE + 1 07320035 WRITE (I02,80003) IVTNUM 07330035 IF (ICZERO) 44580, 4591, 44580 07340035 44580 IF (IVCOMP -15249) 24580,14580,24580 07350035 14580 IVPASS = IVPASS + 1 07360035 WRITE (I02,80001) IVTNUM 07370035 GO TO 4591 07380035 24580 IVFAIL = IVFAIL + 1 07390035 IVCORR = 15249 07400035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07410035 4591 CONTINUE 07420035 IVTNUM = 459 07430035 C 07440035 C **** TEST 459 **** 07450035 C 07460035 IF (ICZERO) 34590, 4590, 34590 07470035 4590 CONTINUE 07480035 IVON02 = 51 07490035 IVON03 = 13 07500035 IVCOMP = (23 * IVON02) * IVON03 07510035 GO TO 44590 07520035 34590 IVDELE = IVDELE + 1 07530035 WRITE (I02,80003) IVTNUM 07540035 IF (ICZERO) 44590, 4601, 44590 07550035 44590 IF (IVCOMP - 15249) 24590,14590,24590 07560035 14590 IVPASS = IVPASS + 1 07570035 WRITE (I02,80001) IVTNUM 07580035 GO TO 4601 07590035 24590 IVFAIL = IVFAIL + 1 07600035 IVCORR = 15249 07610035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07620035 4601 CONTINUE 07630035 IVTNUM = 460 07640035 C 07650035 C **** TEST 460 **** 07660035 C 07670035 IF (ICZERO) 34600, 4600, 34600 07680035 4600 CONTINUE 07690035 IVON01 = -23 07700035 IVON03 = 13 07710035 IVCOMP = (IVON01 * (-51)) * (-IVON03) 07720035 GO TO 44600 07730035 34600 IVDELE = IVDELE + 1 07740035 WRITE (I02,80003) IVTNUM 07750035 IF (ICZERO) 44600, 4611, 44600 07760035 44600 IF (IVCOMP + 15249) 24600,14600,24600 07770035 14600 IVPASS = IVPASS + 1 07780035 WRITE (I02,80001) IVTNUM 07790035 GO TO 4611 07800035 24600 IVFAIL = IVFAIL + 1 07810035 IVCORR = -15249 07820035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07830035 4611 CONTINUE 07840035 IVTNUM = 461 07850035 C 07860035 C **** TEST 461 **** 07870035 C 07880035 IF (ICZERO) 34610, 4610, 34610 07890035 4610 CONTINUE 07900035 IVON02 = 51 07910035 IVON03 = 13 07920035 IVCOMP = -23 * (IVON02*IVON03) 07930035 GO TO 44610 07940035 34610 IVDELE = IVDELE + 1 07950035 WRITE (I02,80003) IVTNUM 07960035 IF (ICZERO) 44610, 4621, 44610 07970035 44610 IF (IVCOMP + 15249) 24610,14610,24610 07980035 14610 IVPASS = IVPASS + 1 07990035 WRITE (I02,80001) IVTNUM 08000035 GO TO 4621 08010035 24610 IVFAIL = IVFAIL + 1 08020035 IVCORR = -15249 08030035 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 08040035 C **** END OF TESTS **** 08050035 4621 CONTINUE 08060035 C 08070035 C WRITE PAGE FOOTINGS AND RUN SUMMARIES 08080035 99999 CONTINUE 08090035 WRITE (I02,90002) 08100035 WRITE (I02,90006) 08110035 WRITE (I02,90002) 08120035 WRITE (I02,90002) 08130035 WRITE (I02,90007) 08140035 WRITE (I02,90002) 08150035 WRITE (I02,90008) IVFAIL 08160035 WRITE (I02,90009) IVPASS 08170035 WRITE (I02,90010) IVDELE 08180035 C 08190035 C 08200035 C TERMINATE ROUTINE EXECUTION 08210035 STOP 08220035 C 08230035 C FORMAT STATEMENTS FOR PAGE HEADERS 08240035 90000 FORMAT ("1") 08250035 90002 FORMAT (" ") 08260035 90001 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 08270035 90003 FORMAT (" ",21X,"VERSION 2.1" ) 08280035 90004 FORMAT (" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" ) 08290035 90005 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT") 08300035 90006 FORMAT (" ",5X,"----------------------------------------------" ) 08310035 90011 FORMAT (" ",18X,"SUBSET LEVEL TEST" ) 08320035 C 08330035 C FORMAT STATEMENTS FOR RUN SUMMARIES 08340035 90008 FORMAT (" ",15X,I5," ERRORS ENCOUNTERED" ) 08350035 90009 FORMAT (" ",15X,I5," TESTS PASSED" ) 08360035 90010 FORMAT (" ",15X,I5," TESTS DELETED" ) 08370035 C 08380035 C FORMAT STATEMENTS FOR TEST RESULTS 08390035 80001 FORMAT (" ",4X,I5,7X,"PASS") 08400035 80002 FORMAT (" ",4X,I5,7X,"FAIL") 08410035 80003 FORMAT (" ",4X,I5,7X,"DELETED") 08420035 80004 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6) 08430035 80005 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5) 08440035 C 08450035 90007 FORMAT (" ",20X,"END OF PROGRAM FM035" ) 08460035 END 08470035