blob: 21f88902cbcfd1d48fe4817fd03dcaba499609b7 [file] [log] [blame]
PROGRAM FM039
C COMMENT SECTION 00010039
C 00020039
C FM039 00030039
C 00040039
C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050039
C FORM INTEGER VARIABLE = ARITHMETIC EXPRESSION 00060039
C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00070039
C OPERATOR /, INTEGER CONSTANTS AND AN INTEGER VARIABLE. BOTH 00080039
C POSITIVE AND NEGATIVE VALUES ARE USED FOR THE INTEGER CONSTANTS 00090039
C AND THE INTEGER VARIABLE. 00100039
C 00110039
C THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT 00120039
C AND TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED 00130039
C IN THE RESULTANT INTEGER VARIABLE. SOME OF THE TESTS USE PARENS 00140039
C TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSION. 00150039
C 00160039
C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00170039
C (1) INTEGER VARIABLE/INTEGER CONSTANT/INTEGER CONSTANT 00180039
C INTEGER CONSTANT/INTEGER VARIABLE/INTEGER CONSTANT 00190039
C INTEGER CONSTANT/INTEGER CONSTANT/INTEGER VARIABLE 00200039
C (2) SAME AS (1) BUT WITH PARENTHESES TO GROUP ELEMENTS 00210039
C IN THE ARITHMETIC EXPRESSION. 00220039
C 00230039
C REFERENCES 00240039
C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00250039
C X3.9-1978 00260039
C 00270039
C SECTION 4.3, INTEGER TYPE 00280039
C SECTION 4.3.1, INTEGER CONSTANT 00290039
C SECTION 6.1, ARITHMETIC EXPRESSIONS 00300039
C SECTION 6.6, EVALUATION OF EXPRESSIONS 00310039
C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00320039
C 00330039
C ********************************************************** 00340039
C 00350039
C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00360039
C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00370039
C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00380039
C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00390039
C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00400039
C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00410039
C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00420039
C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00430039
C OF EXECUTING THESE TESTS. 00440039
C 00450039
C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00460039
C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00470039
C 00480039
C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00490039
C 00500039
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00510039
C SOFTWARE STANDARDS VALIDATION GROUP 00520039
C BUILDING 225 RM A266 00530039
C GAITHERSBURG, MD 20899 00540039
C ********************************************************** 00550039
C 00560039
C 00570039
C 00580039
C INITIALIZATION SECTION 00590039
C 00600039
C INITIALIZE CONSTANTS 00610039
C ************** 00620039
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00630039
I01 = 5 00640039
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00650039
I02 = 6 00660039
C SYSTEM ENVIRONMENT SECTION 00670039
C 00680039
CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00690039
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00700039
C (UNIT NUMBER FOR CARD READER). 00710039
CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00720039
C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00730039
C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00740039
C 00750039
CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00760039
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00770039
C (UNIT NUMBER FOR PRINTER). 00780039
CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00790039
C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00800039
C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00810039
C 00820039
IVPASS=0 00830039
IVFAIL=0 00840039
IVDELE=0 00850039
ICZERO=0 00860039
C 00870039
C WRITE PAGE HEADERS 00880039
WRITE (I02,90000) 00890039
WRITE (I02,90001) 00900039
WRITE (I02,90002) 00910039
WRITE (I02, 90002) 00920039
WRITE (I02,90003) 00930039
WRITE (I02,90002) 00940039
WRITE (I02,90004) 00950039
WRITE (I02,90002) 00960039
WRITE (I02,90011) 00970039
WRITE (I02,90002) 00980039
WRITE (I02,90002) 00990039
WRITE (I02,90005) 01000039
WRITE (I02,90006) 01010039
WRITE (I02,90002) 01020039
C 01030039
C TEST SECTION 01040039
C 01050039
C ARITHMETIC ASSIGNMENT STATEMENT 01060039
C 01070039
C TEST 552 THROUGH TEST 557 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS01080039
C OF THE FORM IV = IV/IC/IC. 01090039
C 01100039
5521 CONTINUE 01110039
IVTNUM = 552 01120039
C 01130039
C **** TEST 552 **** 01140039
C 01150039
IF (ICZERO) 35520, 5520, 35520 01160039
5520 CONTINUE 01170039
IVON01 = 24 01180039
IVCOMP = IVON01/3/4 01190039
GO TO 45520 01200039
35520 IVDELE = IVDELE + 1 01210039
WRITE (I02,80003) IVTNUM 01220039
IF (ICZERO) 45520, 5531, 45520 01230039
45520 IF (IVCOMP - 2) 25520,15520,25520 01240039
15520 IVPASS = IVPASS + 1 01250039
WRITE (I02,80001) IVTNUM 01260039
GO TO 5531 01270039
25520 IVFAIL = IVFAIL + 1 01280039
IVCORR = 2 01290039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01300039
5531 CONTINUE 01310039
IVTNUM = 553 01320039
C 01330039
C **** TEST 553 **** 01340039
C 01350039
IF (ICZERO) 35530, 5530, 35530 01360039
5530 CONTINUE 01370039
IVON01 = 7151 01380039
IVCOMP = IVON01/3/10 01390039
GO TO 45530 01400039
35530 IVDELE = IVDELE + 1 01410039
WRITE (I02,80003) IVTNUM 01420039
IF (ICZERO) 45530, 5541, 45530 01430039
45530 IF (IVCOMP - 238) 25530,15530,25530 01440039
15530 IVPASS = IVPASS + 1 01450039
WRITE (I02,80001) IVTNUM 01460039
GO TO 5541 01470039
25530 IVFAIL = IVFAIL + 1 01480039
IVCORR = 238 01490039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01500039
5541 CONTINUE 01510039
IVTNUM = 554 01520039
C 01530039
C **** TEST 554 **** 01540039
C 01550039
IF (ICZERO) 35540, 5540, 35540 01560039
5540 CONTINUE 01570039
IVON01 = -330 01580039
IVCOMP = IVON01/3/2 01590039
GO TO 45540 01600039
35540 IVDELE = IVDELE + 1 01610039
WRITE (I02,80003) IVTNUM 01620039
IF (ICZERO) 45540, 5551, 45540 01630039
45540 IF (IVCOMP + 55) 25540,15540,25540 01640039
15540 IVPASS = IVPASS + 1 01650039
WRITE (I02,80001) IVTNUM 01660039
GO TO 5551 01670039
25540 IVFAIL = IVFAIL + 1 01680039
IVCORR = -55 01690039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01700039
5551 CONTINUE 01710039
IVTNUM = 555 01720039
C 01730039
C **** TEST 555 **** 01740039
C 01750039
IF (ICZERO) 35550, 5550, 35550 01760039
5550 CONTINUE 01770039
IVON01 = 15249 01780039
IVCOMP = IVON01/(-13)/51 01790039
GO TO 45550 01800039
35550 IVDELE = IVDELE + 1 01810039
WRITE (I02,80003) IVTNUM 01820039
IF (ICZERO) 45550, 5561, 45550 01830039
45550 IF (IVCOMP + 23) 25550,15550,25550 01840039
15550 IVPASS = IVPASS + 1 01850039
WRITE (I02,80001) IVTNUM 01860039
GO TO 5561 01870039
25550 IVFAIL = IVFAIL + 1 01880039
IVCORR = -23 01890039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01900039
5561 CONTINUE 01910039
IVTNUM = 556 01920039
C 01930039
C **** TEST 556 **** 01940039
C 01950039
IF (ICZERO) 35560, 5560, 35560 01960039
5560 CONTINUE 01970039
IVON01 = -27342 01980039
IVCOMP = IVON01/(-4)/(-3) 01990039
GO TO 45560 02000039
35560 IVDELE = IVDELE + 1 02010039
WRITE (I02,80003) IVTNUM 02020039
IF (ICZERO) 45560, 5571, 45560 02030039
45560 IF (IVCOMP + 2278) 25560,15560,25560 02040039
15560 IVPASS = IVPASS + 1 02050039
WRITE (I02,80001) IVTNUM 02060039
GO TO 5571 02070039
25560 IVFAIL = IVFAIL + 1 02080039
IVCORR = -2278 02090039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02100039
5571 CONTINUE 02110039
IVTNUM = 557 02120039
C 02130039
C **** TEST 557 **** 02140039
C 02150039
IF (ICZERO) 35570, 5570, 35570 02160039
5570 CONTINUE 02170039
IVON01 = -27342 02180039
IVCOMP = -IVON01/4/(-3) 02190039
GO TO 45570 02200039
35570 IVDELE = IVDELE + 1 02210039
WRITE (I02,80003) IVTNUM 02220039
IF (ICZERO) 45570, 5581, 45570 02230039
45570 IF (IVCOMP + 2278) 25570,15570,25570 02240039
15570 IVPASS = IVPASS + 1 02250039
WRITE (I02,80001) IVTNUM 02260039
GO TO 5581 02270039
25570 IVFAIL = IVFAIL + 1 02280039
IVCORR = -2278 02290039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02300039
C 02310039
C TEST 558 THROUGH TEST 563 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS02320039
C OF THE FORM IV=IC/IV/IC. 02330039
C 02340039
5581 CONTINUE 02350039
IVTNUM = 558 02360039
C 02370039
C **** TEST 558 **** 02380039
C 02390039
IF (ICZERO) 35580, 5580, 35580 02400039
5580 CONTINUE 02410039
IVON02 = 3 02420039
IVCOMP = 24/IVON02/4 02430039
GO TO 45580 02440039
35580 IVDELE = IVDELE + 1 02450039
WRITE (I02,80003) IVTNUM 02460039
IF (ICZERO) 45580, 5591, 45580 02470039
45580 IF (IVCOMP - 2) 25580,15580,25580 02480039
15580 IVPASS = IVPASS + 1 02490039
WRITE (I02,80001) IVTNUM 02500039
GO TO 5591 02510039
25580 IVFAIL = IVFAIL + 1 02520039
IVCORR = 2 02530039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02540039
5591 CONTINUE 02550039
IVTNUM = 559 02560039
C 02570039
C **** TEST 559 **** 02580039
C 02590039
IF (ICZERO) 35590, 5590, 35590 02600039
5590 CONTINUE 02610039
IVON02 = 3 02620039
IVCOMP = 7151/IVON02/10 02630039
GO TO 45590 02640039
35590 IVDELE = IVDELE + 1 02650039
WRITE (I02,80003) IVTNUM 02660039
IF (ICZERO) 45590, 5601, 45590 02670039
45590 IF (IVCOMP - 238) 25590,15590,25590 02680039
15590 IVPASS = IVPASS + 1 02690039
WRITE (I02,80001) IVTNUM 02700039
GO TO 5601 02710039
25590 IVFAIL = IVFAIL + 1 02720039
IVCORR = 238 02730039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02740039
5601 CONTINUE 02750039
IVTNUM = 560 02760039
C 02770039
C **** TEST 560 **** 02780039
C 02790039
IF (ICZERO) 35600, 5600, 35600 02800039
5600 CONTINUE 02810039
IVON02 = -3 02820039
IVCOMP = 330/IVON02/2 02830039
GO TO 45600 02840039
35600 IVDELE = IVDELE + 1 02850039
WRITE (I02,80003) IVTNUM 02860039
IF (ICZERO) 45600, 5611, 45600 02870039
45600 IF (IVCOMP +55) 25600,15600,25600 02880039
15600 IVPASS = IVPASS + 1 02890039
WRITE (I02,80001) IVTNUM 02900039
GO TO 5611 02910039
25600 IVFAIL = IVFAIL + 1 02920039
IVCORR = -55 02930039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02940039
5611 CONTINUE 02950039
IVTNUM = 561 02960039
C 02970039
C **** TEST 561 **** 02980039
C 02990039
IF (ICZERO) 35610, 5610, 35610 03000039
5610 CONTINUE 03010039
IVON02 = +13 03020039
IVCOMP = 15249/IVON02/(-51) 03030039
GO TO 45610 03040039
35610 IVDELE = IVDELE + 1 03050039
WRITE (I02,80003) IVTNUM 03060039
IF (ICZERO) 45610, 5621, 45610 03070039
45610 IF (IVCOMP + 23) 25610,15610,25610 03080039
15610 IVPASS = IVPASS + 1 03090039
WRITE (I02,80001) IVTNUM 03100039
GO TO 5621 03110039
25610 IVFAIL = IVFAIL + 1 03120039
IVCORR = -23 03130039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03140039
5621 CONTINUE 03150039
IVTNUM = 562 03160039
C 03170039
C **** TEST 562 **** 03180039
C 03190039
IF (ICZERO) 35620, 5620, 35620 03200039
5620 CONTINUE 03210039
IVON02 = -4 03220039
IVCOMP = (-27342)/IVON02/(-3) 03230039
GO TO 45620 03240039
35620 IVDELE = IVDELE + 1 03250039
WRITE (I02,80003) IVTNUM 03260039
IF (ICZERO) 45620, 5631, 45620 03270039
45620 IF (IVCOMP + 2278) 25620,15620,25620 03280039
15620 IVPASS = IVPASS + 1 03290039
WRITE (I02,80001) IVTNUM 03300039
GO TO 5631 03310039
25620 IVFAIL = IVFAIL + 1 03320039
IVCORR = -2278 03330039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03340039
5631 CONTINUE 03350039
IVTNUM = 563 03360039
C 03370039
C **** TEST 563 **** 03380039
C 03390039
IF (ICZERO) 35630, 5630, 35630 03400039
5630 CONTINUE 03410039
IVON02 = -4 03420039
IVCOMP = -27342/(-IVON02)/(-3) 03430039
GO TO 45630 03440039
35630 IVDELE = IVDELE + 1 03450039
WRITE (I02,80003) IVTNUM 03460039
IF (ICZERO) 45630, 5641, 45630 03470039
45630 IF (IVCOMP - 2278) 25630,15630,25630 03480039
15630 IVPASS = IVPASS + 1 03490039
WRITE (I02,80001) IVTNUM 03500039
GO TO 5641 03510039
25630 IVFAIL = IVFAIL + 1 03520039
IVCORR = 2278 03530039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03540039
C 03550039
C TEST 564 THROUGH TEST 569 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS03560039
C OF THE FORM IV = IC/IC/IV. 03570039
C 03580039
5641 CONTINUE 03590039
IVTNUM = 564 03600039
C 03610039
C **** TEST 564 **** 03620039
C 03630039
IF (ICZERO) 35640, 5640, 35640 03640039
5640 CONTINUE 03650039
IVON03 = 4 03660039
IVCOMP = 24/3/IVON03 03670039
GO TO 45640 03680039
35640 IVDELE = IVDELE + 1 03690039
WRITE (I02,80003) IVTNUM 03700039
IF (ICZERO) 45640, 5651, 45640 03710039
45640 IF (IVCOMP -2) 25640,15640,25640 03720039
15640 IVPASS = IVPASS + 1 03730039
WRITE (I02,80001) IVTNUM 03740039
GO TO 5651 03750039
25640 IVFAIL = IVFAIL + 1 03760039
IVCORR = 2 03770039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03780039
5651 CONTINUE 03790039
IVTNUM = 565 03800039
C 03810039
C **** TEST 565 **** 03820039
C 03830039
IF (ICZERO) 35650, 5650, 35650 03840039
5650 CONTINUE 03850039
IVON03 = 10 03860039
IVCOMP = 7151/3/IVON03 03870039
GO TO 45650 03880039
35650 IVDELE = IVDELE + 1 03890039
WRITE (I02,80003) IVTNUM 03900039
IF (ICZERO) 45650, 5661, 45650 03910039
45650 IF (IVCOMP - 238) 25650,15650,25650 03920039
15650 IVPASS = IVPASS + 1 03930039
WRITE (I02,80001) IVTNUM 03940039
GO TO 5661 03950039
25650 IVFAIL = IVFAIL + 1 03960039
IVCORR = 238 03970039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03980039
5661 CONTINUE 03990039
IVTNUM = 566 04000039
C 04010039
C **** TEST 566 **** 04020039
C 04030039
IF (ICZERO) 35660, 5660, 35660 04040039
5660 CONTINUE 04050039
IVON03 = -2 04060039
IVCOMP = 330/3/IVON03 04070039
GO TO 45660 04080039
35660 IVDELE = IVDELE + 1 04090039
WRITE (I02,80003) IVTNUM 04100039
IF (ICZERO) 45660, 5671, 45660 04110039
45660 IF (IVCOMP + 55) 25660,15660,25660 04120039
15660 IVPASS = IVPASS + 1 04130039
WRITE (I02,80001) IVTNUM 04140039
GO TO 5671 04150039
25660 IVFAIL = IVFAIL + 1 04160039
IVCORR = -55 04170039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04180039
5671 CONTINUE 04190039
IVTNUM = 567 04200039
C 04210039
C **** TEST 567 **** 04220039
C 04230039
IF (ICZERO) 35670, 5670, 35670 04240039
5670 CONTINUE 04250039
IVON03 = +51 04260039
IVCOMP = 15249/(-13)/IVON03 04270039
GO TO 45670 04280039
35670 IVDELE = IVDELE + 1 04290039
WRITE (I02,80003) IVTNUM 04300039
IF (ICZERO) 45670, 5681, 45670 04310039
45670 IF (IVCOMP + 23) 25670,15670,25670 04320039
15670 IVPASS = IVPASS + 1 04330039
WRITE (I02,80001) IVTNUM 04340039
GO TO 5681 04350039
25670 IVFAIL = IVFAIL + 1 04360039
IVCORR = -23 04370039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04380039
5681 CONTINUE 04390039
IVTNUM = 568 04400039
C 04410039
C **** TEST 568 **** 04420039
C 04430039
IF (ICZERO) 35680, 5680, 35680 04440039
5680 CONTINUE 04450039
IVON03 = -3 04460039
IVCOMP = (-27342)/(-4)/IVON03 04470039
GO TO 45680 04480039
35680 IVDELE = IVDELE + 1 04490039
WRITE (I02,80003) IVTNUM 04500039
IF (ICZERO) 45680, 5691, 45680 04510039
45680 IF (IVCOMP + 2278) 25680,15680,25680 04520039
15680 IVPASS = IVPASS + 1 04530039
WRITE (I02,80001) IVTNUM 04540039
GO TO 5691 04550039
25680 IVFAIL = IVFAIL + 1 04560039
IVCORR = -2278 04570039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04580039
5691 CONTINUE 04590039
IVTNUM = 569 04600039
C 04610039
C **** TEST 569 **** 04620039
C 04630039
IF (ICZERO) 35690, 5690, 35690 04640039
5690 CONTINUE 04650039
IVON03 = -3 04660039
IVCOMP = -27342/(-4)/(-IVON03) 04670039
GO TO 45690 04680039
35690 IVDELE = IVDELE + 1 04690039
WRITE (I02,80003) IVTNUM 04700039
IF (ICZERO) 45690, 5701, 45690 04710039
45690 IF (IVCOMP - 2278) 25690,15690,25690 04720039
15690 IVPASS = IVPASS + 1 04730039
WRITE (I02,80001) IVTNUM 04740039
GO TO 5701 04750039
25690 IVFAIL = IVFAIL + 1 04760039
IVCORR = 2278 04770039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04780039
C 04790039
C TEST 570 AND TEST 571 - IV =(IV/IC)/IC 04800039
C 04810039
5701 CONTINUE 04820039
IVTNUM = 570 04830039
C 04840039
C **** TEST 570 **** 04850039
C 04860039
IF (ICZERO) 35700, 5700, 35700 04870039
5700 CONTINUE 04880039
IVON01 = 24 04890039
IVCOMP = (IVON01/3)/4 04900039
GO TO 45700 04910039
35700 IVDELE = IVDELE + 1 04920039
WRITE (I02,80003) IVTNUM 04930039
IF (ICZERO) 45700, 5711, 45700 04940039
45700 IF (IVCOMP -2) 25700,15700,25700 04950039
15700 IVPASS = IVPASS + 1 04960039
WRITE (I02,80001) IVTNUM 04970039
GO TO 5711 04980039
25700 IVFAIL = IVFAIL + 1 04990039
IVCORR = 2 05000039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05010039
5711 CONTINUE 05020039
IVTNUM = 571 05030039
C 05040039
C **** TEST 571 **** 05050039
C 05060039
IF (ICZERO) 35710, 5710, 35710 05070039
5710 CONTINUE 05080039
IVON01 = -330 05090039
IVCOMP = (IVON01/(-3))/4 05100039
GO TO 45710 05110039
35710 IVDELE = IVDELE + 1 05120039
WRITE (I02,80003) IVTNUM 05130039
IF (ICZERO) 45710, 5721, 45710 05140039
45710 IF (IVCOMP - 27) 25710,15710,25710 05150039
15710 IVPASS = IVPASS + 1 05160039
WRITE (I02,80001) IVTNUM 05170039
GO TO 5721 05180039
25710 IVFAIL = IVFAIL + 1 05190039
IVCORR = 27 05200039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05210039
C 05220039
C TEST 572 AND TEST 573 - IV= IV/(IC/IC) 05230039
C 05240039
5721 CONTINUE 05250039
IVTNUM = 572 05260039
C 05270039
C **** TEST 572 **** 05280039
C 05290039
IF (ICZERO) 35720, 5720, 35720 05300039
5720 CONTINUE 05310039
IVON01 = 24 05320039
IVCOMP = IVON01/(8/4) 05330039
GO TO 45720 05340039
35720 IVDELE = IVDELE + 1 05350039
WRITE (I02,80003) IVTNUM 05360039
IF (ICZERO) 45720, 5731, 45720 05370039
45720 IF (IVCOMP - 12) 25720,15720,25720 05380039
15720 IVPASS = IVPASS + 1 05390039
WRITE (I02,80001) IVTNUM 05400039
GO TO 5731 05410039
25720 IVFAIL = IVFAIL + 1 05420039
IVCORR = 12 05430039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05440039
5731 CONTINUE 05450039
IVTNUM = 573 05460039
C 05470039
C **** TEST 573 **** 05480039
C 05490039
IF (ICZERO) 35730, 5730, 35730 05500039
5730 CONTINUE 05510039
IVON01 = -7154 05520039
IVCOMP = -IVON01/((-26)/5) 05530039
GO TO 45730 05540039
35730 IVDELE = IVDELE + 1 05550039
WRITE (I02,80003) IVTNUM 05560039
IF (ICZERO) 45730, 5741, 45730 05570039
45730 IF (IVCOMP + 1430) 25730,15730,25730 05580039
15730 IVPASS = IVPASS + 1 05590039
WRITE (I02,80001) IVTNUM 05600039
GO TO 5741 05610039
25730 IVFAIL = IVFAIL + 1 05620039
IVCORR = -1430 05630039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05640039
C 05650039
C TEST 574 AND TEST 575 - IV=(IC/IV)/IC 05660039
C 05670039
5741 CONTINUE 05680039
IVTNUM = 574 05690039
C 05700039
C **** TEST 574 **** 05710039
C 05720039
IF (ICZERO) 35740, 5740, 35740 05730039
5740 CONTINUE 05740039
IVON02 = 3 05750039
IVCOMP = (24/IVON02)/4 05760039
GO TO 45740 05770039
35740 IVDELE = IVDELE + 1 05780039
WRITE (I02,80003) IVTNUM 05790039
IF (ICZERO) 45740, 5751, 45740 05800039
45740 IF (IVCOMP -2) 25740,15740,25740 05810039
15740 IVPASS = IVPASS + 1 05820039
WRITE (I02,80001) IVTNUM 05830039
GO TO 5751 05840039
25740 IVFAIL = IVFAIL + 1 05850039
IVCORR = 2 05860039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05870039
5751 CONTINUE 05880039
IVTNUM = 575 05890039
C 05900039
C **** TEST 575 **** 05910039
C 05920039
IF (ICZERO) 35750, 5750, 35750 05930039
5750 CONTINUE 05940039
IVON02 = -3 05950039
IVCOMP = (-330/IVON02)/(-4) 05960039
GO TO 45750 05970039
35750 IVDELE = IVDELE + 1 05980039
WRITE (I02,80003) IVTNUM 05990039
IF (ICZERO) 45750, 5761, 45750 06000039
45750 IF (IVCOMP + 27) 25750,15750,25750 06010039
15750 IVPASS = IVPASS + 1 06020039
WRITE (I02,80001) IVTNUM 06030039
GO TO 5761 06040039
25750 IVFAIL = IVFAIL + 1 06050039
IVCORR = -27 06060039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06070039
C 06080039
C TEST 576 AND TEST 577 - IV=IC/(IV/IC) 06090039
C 06100039
5761 CONTINUE 06110039
IVTNUM = 576 06120039
C 06130039
C **** TEST 576 **** 06140039
C 06150039
IF (ICZERO) 35760, 5760, 35760 06160039
5760 CONTINUE 06170039
IVON02 = 8 06180039
IVCOMP = 24/(IVON02/4) 06190039
GO TO 45760 06200039
35760 IVDELE = IVDELE + 1 06210039
WRITE (I02,80003) IVTNUM 06220039
IF (ICZERO) 45760, 5771, 45760 06230039
45760 IF (IVCOMP - 12) 25760,15760,25760 06240039
15760 IVPASS = IVPASS + 1 06250039
WRITE (I02,80001) IVTNUM 06260039
GO TO 5771 06270039
25760 IVFAIL = IVFAIL + 1 06280039
IVCORR = 12 06290039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06300039
5771 CONTINUE 06310039
IVTNUM = 577 06320039
C 06330039
C **** TEST 577 **** 06340039
C 06350039
IF (ICZERO) 35770, 5770, 35770 06360039
5770 CONTINUE 06370039
IVON02 = -26 06380039
IVCOMP = 7154/((-IVON02)/(-5)) 06390039
GO TO 45770 06400039
35770 IVDELE = IVDELE + 1 06410039
WRITE (I02,80003) IVTNUM 06420039
IF (ICZERO) 45770, 5781, 45770 06430039
45770 IF (IVCOMP + 1430) 25770,15770,25770 06440039
15770 IVPASS = IVPASS + 1 06450039
WRITE (I02,80001) IVTNUM 06460039
GO TO 5781 06470039
25770 IVFAIL = IVFAIL + 1 06480039
IVCORR = -1430 06490039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06500039
C 06510039
C TEST 578 AND TEST 579 - IV=(IC/IC)/IV 06520039
C 06530039
5781 CONTINUE 06540039
IVTNUM = 578 06550039
C 06560039
C **** TEST 578 **** 06570039
C 06580039
IF (ICZERO) 35780, 5780, 35780 06590039
5780 CONTINUE 06600039
IVON03 = 4 06610039
IVCOMP = (24/3)/IVON03 06620039
GO TO 45780 06630039
35780 IVDELE = IVDELE + 1 06640039
WRITE (I02,80003) IVTNUM 06650039
IF (ICZERO) 45780, 5791, 45780 06660039
45780 IF (IVCOMP - 2) 25780,15780,25780 06670039
15780 IVPASS = IVPASS + 1 06680039
WRITE (I02,80001) IVTNUM 06690039
GO TO 5791 06700039
25780 IVFAIL = IVFAIL + 1 06710039
IVCORR = 2 06720039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06730039
5791 CONTINUE 06740039
IVTNUM = 579 06750039
C 06760039
C **** TEST 579 **** 06770039
C 06780039
IF (ICZERO) 35790, 5790, 35790 06790039
5790 CONTINUE 06800039
IVON03 = -4 06810039
IVCOMP = (330/(-3))/IVON03 06820039
GO TO 45790 06830039
35790 IVDELE = IVDELE + 1 06840039
WRITE (I02,80003) IVTNUM 06850039
IF (ICZERO) 45790, 5801, 45790 06860039
45790 IF (IVCOMP - 27) 25790,15790,25790 06870039
15790 IVPASS = IVPASS + 1 06880039
WRITE (I02,80001) IVTNUM 06890039
GO TO 5801 06900039
25790 IVFAIL = IVFAIL + 1 06910039
IVCORR = 27 06920039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06930039
C 06940039
C TEST 580 AND TEST 581 - IV= IC/(IC/IV) 06950039
C 06960039
5801 CONTINUE 06970039
IVTNUM = 580 06980039
C 06990039
C **** TEST 580 **** 07000039
C 07010039
IF (ICZERO) 35800, 5800, 35800 07020039
5800 CONTINUE 07030039
IVON03 = 4 07040039
IVCOMP = 24/(8/IVON03) 07050039
GO TO 45800 07060039
35800 IVDELE = IVDELE + 1 07070039
WRITE (I02,80003) IVTNUM 07080039
IF (ICZERO) 45800, 5811, 45800 07090039
45800 IF (IVCOMP - 12) 25800,15800,25800 07100039
15800 IVPASS = IVPASS + 1 07110039
WRITE (I02,80001) IVTNUM 07120039
GO TO 5811 07130039
25800 IVFAIL = IVFAIL + 1 07140039
IVCORR = 12 07150039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07160039
5811 CONTINUE 07170039
IVTNUM = 581 07180039
C 07190039
C **** TEST 581 **** 07200039
C 07210039
IF (ICZERO) 35810, 5810, 35810 07220039
5810 CONTINUE 07230039
IVON03 = -5 07240039
IVCOMP = -7154/((-26)/IVON03) 07250039
GO TO 45810 07260039
35810 IVDELE = IVDELE + 1 07270039
WRITE (I02,80003) IVTNUM 07280039
IF (ICZERO) 45810, 5821, 45810 07290039
45810 IF (IVCOMP + 1430) 25810,15810,25810 07300039
15810 IVPASS = IVPASS + 1 07310039
WRITE (I02,80001) IVTNUM 07320039
GO TO 5821 07330039
25810 IVFAIL = IVFAIL + 1 07340039
IVCORR = -1430 07350039
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07360039
C 07370039
C **** END OF TESTS **** 07380039
5821 CONTINUE 07390039
C 07400039
C WRITE PAGE FOOTINGS AND RUN SUMMARIES 07410039
99999 CONTINUE 07420039
WRITE (I02,90002) 07430039
WRITE (I02,90006) 07440039
WRITE (I02,90002) 07450039
WRITE (I02,90002) 07460039
WRITE (I02,90007) 07470039
WRITE (I02,90002) 07480039
WRITE (I02,90008) IVFAIL 07490039
WRITE (I02,90009) IVPASS 07500039
WRITE (I02,90010) IVDELE 07510039
C 07520039
C 07530039
C TERMINATE ROUTINE EXECUTION 07540039
STOP 07550039
C 07560039
C FORMAT STATEMENTS FOR PAGE HEADERS 07570039
90000 FORMAT ("1") 07580039
90002 FORMAT (" ") 07590039
90001 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 07600039
90003 FORMAT (" ",21X,"VERSION 2.1" ) 07610039
90004 FORMAT (" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" ) 07620039
90005 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT") 07630039
90006 FORMAT (" ",5X,"----------------------------------------------" ) 07640039
90011 FORMAT (" ",18X,"SUBSET LEVEL TEST" ) 07650039
C 07660039
C FORMAT STATEMENTS FOR RUN SUMMARIES 07670039
90008 FORMAT (" ",15X,I5," ERRORS ENCOUNTERED" ) 07680039
90009 FORMAT (" ",15X,I5," TESTS PASSED" ) 07690039
90010 FORMAT (" ",15X,I5," TESTS DELETED" ) 07700039
C 07710039
C FORMAT STATEMENTS FOR TEST RESULTS 07720039
80001 FORMAT (" ",4X,I5,7X,"PASS") 07730039
80002 FORMAT (" ",4X,I5,7X,"FAIL") 07740039
80003 FORMAT (" ",4X,I5,7X,"DELETED") 07750039
80004 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6) 07760039
80005 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5) 07770039
C 07780039
90007 FORMAT (" ",20X,"END OF PROGRAM FM039" ) 07790039
END 07800039