blob: 4274c32a3e9def23a2cef1f8d13b0eeec4fd5cca [file] [log] [blame]
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