blob: fe6922a944a41dc1fd2dbee8fa1c531d36e760c6 [file] [log] [blame]
PROGRAM FM008
C COMMENT SECTION. 00010008
C 00020008
C FM008 00030008
C 00040008
C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050008
C FORM INTEGER VARIABLE = ARITHMETIC EXPRESSION 00060008
C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00070008
C OPERATOR + INTEGER CONSTANTS AND POSITIVE INTEGER VARIABLES. 00080008
C SOME OF THE TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE 00090008
C ARITHMETIC EXPRESSION. 00100008
C 00110008
C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00120008
C (1) TWO INTEGER CONSTANTS, 00130008
C (2) THREE INTEGER CONSTANTS, 00140008
C (3) THREE INTEGER CONSTANTS WITH PARENTHESES TO GROUP 00150008
C ELEMENTS, 00160008
C (4) ONE INTEGER VARIABLE AND ONE INTEGER CONSTANT, 00170008
C (5) ONE INTEGER VARIABLE AND TWO INTEGER CONSTANTS, 00180008
C (6) ONE INTEGER VARIABLE AND TWO INTEGER CONSTANTS WITH 00190008
C PARENTHESES TO GROUP ELEMENTS. 00200008
C 00210008
C 00220008
C REFERENCES 00230008
C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00240008
C X3.9-1978 00250008
C 00260008
C SECTION 4.3, INTEGER TYPE 00270008
C SECTION 4.3.1, INTEGER CONSTANT 00280008
C SECTION 6.1, ARITHMETIC EXPRESSIONS 00290008
C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENTS 00300008
C 00310008
C 00320008
C ********************************************************** 00330008
C 00340008
C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00350008
C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00360008
C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00370008
C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00380008
C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00390008
C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00400008
C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00410008
C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00420008
C OF EXECUTING THESE TESTS. 00430008
C 00440008
C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00450008
C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00460008
C 00470008
C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00480008
C 00490008
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00500008
C SOFTWARE STANDARDS VALIDATION GROUP 00510008
C BUILDING 225 RM A266 00520008
C GAITHERSBURG, MD 20899 00530008
C ********************************************************** 00540008
C 00550008
C 00560008
C 00570008
C INITIALIZATION SECTION 00580008
C 00590008
C INITIALIZE CONSTANTS 00600008
C ************** 00610008
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00620008
I01 = 5 00630008
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00640008
I02 = 6 00650008
C SYSTEM ENVIRONMENT SECTION 00660008
C 00670008
CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00680008
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00690008
C (UNIT NUMBER FOR CARD READER). 00700008
CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00710008
C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00720008
C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00730008
C 00740008
CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00750008
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00760008
C (UNIT NUMBER FOR PRINTER). 00770008
CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00780008
C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00790008
C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00800008
C 00810008
IVPASS=0 00820008
IVFAIL=0 00830008
IVDELE=0 00840008
ICZERO=0 00850008
C 00860008
C WRITE PAGE HEADERS 00870008
WRITE (I02,90000) 00880008
WRITE (I02,90001) 00890008
WRITE (I02,90002) 00900008
WRITE (I02, 90002) 00910008
WRITE (I02,90003) 00920008
WRITE (I02,90002) 00930008
WRITE (I02,90004) 00940008
WRITE (I02,90002) 00950008
WRITE (I02,90011) 00960008
WRITE (I02,90002) 00970008
WRITE (I02,90002) 00980008
WRITE (I02,90005) 00990008
WRITE (I02,90006) 01000008
WRITE (I02,90002) 01010008
C TEST SECTION 01020008
C 01030008
C ARITHMETIC ASSIGNMENT STATEMENT 01040008
C 01050008
C TEST 200 THROUGH TEST 214 CONTAIN INTEGER CONSTANTS AND OPERATOR +01060008
C IN ARITHMETIC EXPRESSION. 01070008
C 01080008
C TEST 200 THROUGH TEST 206 - TWO INTEGER CONSTANTS 01090008
C 01100008
2001 CONTINUE 01110008
IVTNUM = 200 01120008
C 01130008
C **** TEST 200 **** 01140008
C 01150008
IF (ICZERO) 32000, 2000, 32000 01160008
2000 CONTINUE 01170008
IVCOMP = 2+3 01180008
GO TO 42000 01190008
32000 IVDELE = IVDELE + 1 01200008
WRITE (I02,80003) IVTNUM 01210008
IF (ICZERO) 42000, 2011, 42000 01220008
42000 IF (IVCOMP - 5) 22000,12000,22000 01230008
12000 IVPASS = IVPASS + 1 01240008
WRITE (I02,80001) IVTNUM 01250008
GO TO 2011 01260008
22000 IVFAIL = IVFAIL + 1 01270008
IVCORR = 5 01280008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01290008
2011 CONTINUE 01300008
IVTNUM = 201 01310008
C 01320008
C **** TEST 201 **** 01330008
C 01340008
IF (ICZERO) 32010, 2010, 32010 01350008
2010 CONTINUE 01360008
IVCOMP = 51 + 52 01370008
GO TO 42010 01380008
32010 IVDELE = IVDELE + 1 01390008
WRITE (I02,80003) IVTNUM 01400008
IF (ICZERO) 42010, 2021, 42010 01410008
42010 IF (IVCOMP - 103) 22010,12010,22010 01420008
12010 IVPASS = IVPASS + 1 01430008
WRITE (I02,80001) IVTNUM 01440008
GO TO 2021 01450008
22010 IVFAIL = IVFAIL + 1 01460008
IVCORR = 103 01470008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01480008
2021 CONTINUE 01490008
IVTNUM = 202 01500008
C 01510008
C **** TEST 202 **** 01520008
C 01530008
IF (ICZERO) 32020, 2020, 32020 01540008
2020 CONTINUE 01550008
IVCOMP = 189 + 676 01560008
GO TO 42020 01570008
32020 IVDELE = IVDELE + 1 01580008
WRITE (I02,80003) IVTNUM 01590008
IF (ICZERO) 42020, 2031, 42020 01600008
42020 IF (IVCOMP - 865) 22020,12020,22020 01610008
12020 IVPASS = IVPASS + 1 01620008
WRITE (I02,80001) IVTNUM 01630008
GO TO 2031 01640008
22020 IVFAIL = IVFAIL + 1 01650008
IVCORR = 865 01660008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01670008
2031 CONTINUE 01680008
IVTNUM = 203 01690008
C 01700008
C **** TEST 203 **** 01710008
C 01720008
IF (ICZERO) 32030, 2030, 32030 01730008
2030 CONTINUE 01740008
IVCOMP = 1358 + 8001 01750008
GO TO 42030 01760008
32030 IVDELE = IVDELE + 1 01770008
WRITE (I02,80003) IVTNUM 01780008
IF (ICZERO) 42030, 2041, 42030 01790008
42030 IF (IVCOMP - 9359) 22030, 12030, 22030 01800008
12030 IVPASS = IVPASS + 1 01810008
WRITE (I02,80001) IVTNUM 01820008
GO TO 2041 01830008
22030 IVFAIL = IVFAIL + 1 01840008
IVCORR = 9359 01850008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01860008
2041 CONTINUE 01870008
IVTNUM = 204 01880008
C 01890008
C **** TEST 204 **** 01900008
C 01910008
IF (ICZERO) 32040, 2040, 32040 01920008
2040 CONTINUE 01930008
IVCOMP = 11112 + 10001 01940008
GO TO 42040 01950008
32040 IVDELE = IVDELE + 1 01960008
WRITE (I02,80003) IVTNUM 01970008
IF (ICZERO) 42040, 2051, 42040 01980008
42040 IF (IVCOMP - 21113) 22040, 12040, 22040 01990008
12040 IVPASS = IVPASS + 1 02000008
WRITE (I02,80001) IVTNUM 02010008
GO TO 2051 02020008
22040 IVFAIL = IVFAIL + 1 02030008
IVCORR=21113 02040008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02050008
2051 CONTINUE 02060008
IVTNUM = 205 02070008
C 02080008
C **** TEST 205 **** 02090008
C 02100008
IF (ICZERO) 32050, 2050, 32050 02110008
2050 CONTINUE 02120008
IVCOMP = 189 + 9876 02130008
GO TO 42050 02140008
32050 IVDELE = IVDELE + 1 02150008
WRITE (I02,80003) IVTNUM 02160008
IF (ICZERO) 42050, 2061, 42050 02170008
42050 IF (IVCOMP - 10065) 22050,12050,22050 02180008
12050 IVPASS = IVPASS + 1 02190008
WRITE (I02,80001) IVTNUM 02200008
GO TO 2061 02210008
22050 IVFAIL = IVFAIL + 1 02220008
IVCORR = 10065 02230008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02240008
2061 CONTINUE 02250008
IVTNUM = 206 02260008
C 02270008
C **** TEST 206 **** 02280008
C REQUIRES 32767 02290008
C 02300008
IF (ICZERO) 32060, 2060, 32060 02310008
2060 CONTINUE 02320008
IVCOMP = 32752 + 15 02330008
GO TO 42060 02340008
32060 IVDELE = IVDELE + 1 02350008
WRITE (I02,80003) IVTNUM 02360008
IF (ICZERO) 42060, 2071, 42060 02370008
42060 IF (IVCOMP - 32767) 22060,12060,22060 02380008
12060 IVPASS = IVPASS + 1 02390008
WRITE (I02,80001) IVTNUM 02400008
GO TO 2071 02410008
22060 IVFAIL = IVFAIL + 1 02420008
IVCORR = 32767 02430008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02440008
C 02450008
C TEST 207 THROUGH TEST 210 - THREE INTEGER CONSTANTS 02460008
C 02470008
2071 CONTINUE 02480008
IVTNUM = 207 02490008
C 02500008
C **** TEST 207 **** 02510008
C 02520008
IF (ICZERO) 32070, 2070, 32070 02530008
2070 CONTINUE 02540008
IVCOMP = 2+3+4 02550008
GO TO 42070 02560008
32070 IVDELE = IVDELE + 1 02570008
WRITE (I02,80003) IVTNUM 02580008
IF (ICZERO) 42070, 2081, 42070 02590008
42070 IF (IVCOMP - 9) 22070,12070,22070 02600008
12070 IVPASS = IVPASS + 1 02610008
WRITE (I02,80001) IVTNUM 02620008
GO TO 2081 02630008
22070 IVFAIL = IVFAIL + 1 02640008
IVCORR = 9 02650008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02660008
2081 CONTINUE 02670008
IVTNUM = 208 02680008
C 02690008
C **** TEST 208 **** 02700008
C 02710008
IF (ICZERO) 32080, 2080, 32080 02720008
2080 CONTINUE 02730008
IVCOMP = 51 + 52 + 53 02740008
GO TO 42080 02750008
32080 IVDELE = IVDELE + 1 02760008
WRITE (I02,80003) IVTNUM 02770008
IF (ICZERO) 42080, 2091, 42080 02780008
42080 IF (IVCOMP - 156) 22080,12080,22080 02790008
12080 IVPASS = IVPASS + 1 02800008
WRITE (I02,80001) IVTNUM 02810008
GO TO 2091 02820008
22080 IVFAIL = IVFAIL + 1 02830008
IVCORR = 156 02840008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02850008
2091 CONTINUE 02860008
IVTNUM = 209 02870008
C 02880008
C **** TEST 209 **** 02890008
C 02900008
IF (ICZERO) 32090, 2090, 32090 02910008
2090 CONTINUE 02920008
IVCOMP = 189 +676+101 02930008
GO TO 42090 02940008
32090 IVDELE = IVDELE + 1 02950008
WRITE (I02,80003) IVTNUM 02960008
IF (ICZERO) 42090, 2101, 42090 02970008
42090 IF (IVCOMP - 966) 22090,12090,22090 02980008
12090 IVPASS = IVPASS + 1 02990008
WRITE (I02,80001) IVTNUM 03000008
GO TO 2101 03010008
22090 IVFAIL = IVFAIL + 1 03020008
IVCORR = 966 03030008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03040008
2101 CONTINUE 03050008
IVTNUM = 210 03060008
C 03070008
C **** TEST 210 **** 03080008
C 03090008
IF (ICZERO) 32100, 2100, 32100 03100008
2100 CONTINUE 03110008
IVCOMP = 1358 + 8001 + 2189 03120008
GO TO 42100 03130008
32100 IVDELE = IVDELE + 1 03140008
WRITE (I02,80003) IVTNUM 03150008
IF (ICZERO) 42100, 2111, 42100 03160008
42100 IF (IVCOMP - 11548) 22100,12100,22100 03170008
12100 IVPASS = IVPASS + 1 03180008
WRITE (I02,80001) IVTNUM 03190008
GO TO 2111 03200008
22100 IVFAIL = IVFAIL + 1 03210008
IVCORR = 11548 03220008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03230008
C 03240008
C TESTS 211 THROUGH 214 ARE THE SAME AS 207 THROUGH 210 EXCEPT 03250008
C PARENTHESES ARE USED TO GROUP THE CONSTANTS. 03260008
C 03270008
2111 CONTINUE 03280008
IVTNUM = 211 03290008
C 03300008
C **** TEST 211 **** 03310008
C 03320008
IF (ICZERO) 32110, 2110, 32110 03330008
2110 CONTINUE 03340008
IVCOMP = (2+3)+4 03350008
GO TO 42110 03360008
32110 IVDELE = IVDELE + 1 03370008
WRITE (I02,80003) IVTNUM 03380008
IF (ICZERO) 42110, 2121, 42110 03390008
42110 IF (IVCOMP -9) 22110,12110,22110 03400008
12110 IVPASS = IVPASS + 1 03410008
WRITE (I02,80001) IVTNUM 03420008
GO TO 2121 03430008
22110 IVFAIL = IVFAIL + 1 03440008
IVCORR = 9 03450008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03460008
2121 CONTINUE 03470008
IVTNUM = 212 03480008
C 03490008
C **** TEST 212 **** 03500008
C 03510008
IF (ICZERO) 32120, 2120, 32120 03520008
2120 CONTINUE 03530008
IVCOMP = 51+(52+53) 03540008
GO TO 42120 03550008
32120 IVDELE = IVDELE + 1 03560008
WRITE (I02,80003) IVTNUM 03570008
IF (ICZERO) 42120, 2131, 42120 03580008
42120 IF (IVCOMP - 156) 22120,12120,22120 03590008
12120 IVPASS = IVPASS + 1 03600008
WRITE (I02,80001) IVTNUM 03610008
GO TO 2131 03620008
22120 IVFAIL = IVFAIL + 1 03630008
IVCORR = 156 03640008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03650008
2131 CONTINUE 03660008
IVTNUM = 213 03670008
C 03680008
C **** TEST 213 **** 03690008
C 03700008
IF (ICZERO) 32130, 2130, 32130 03710008
2130 CONTINUE 03720008
IVCOMP = 189 +(676+101) 03730008
GO TO 42130 03740008
32130 IVDELE = IVDELE + 1 03750008
WRITE (I02,80003) IVTNUM 03760008
IF (ICZERO) 42130, 2141, 42130 03770008
42130 IF (IVCOMP - 966) 22130,12130,22130 03780008
12130 IVPASS = IVPASS + 1 03790008
WRITE (I02,80001) IVTNUM 03800008
GO TO 2141 03810008
22130 IVFAIL = IVFAIL + 1 03820008
IVCORR = 966 03830008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03840008
2141 CONTINUE 03850008
IVTNUM = 214 03860008
C 03870008
C **** TEST 214 **** 03880008
C 03890008
IF (ICZERO) 32140, 2140, 32140 03900008
2140 CONTINUE 03910008
IVCOMP = (1358+2189) + 8001 03920008
GO TO 42140 03930008
32140 IVDELE = IVDELE + 1 03940008
WRITE (I02,80003) IVTNUM 03950008
IF (ICZERO) 42140, 2151, 42140 03960008
42140 IF (IVCOMP - 11548) 22140,12140,22140 03970008
12140 IVPASS = IVPASS + 1 03980008
WRITE (I02,80001) IVTNUM 03990008
GO TO 2151 04000008
22140 IVFAIL = IVFAIL + 1 04010008
IVCORR = 11548 04020008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04030008
C 04040008
C TEST 215 THROUGH TEST 234 CONTAIN INTEGER VARIABLES, INTEGER 04050008
C CONSTANTS AND THE OPERATOR + IN ARITHMETIC EXPRESSION. 04060008
C 04070008
C TEST 215 THROUGH TEST 219 - ONE INTEGER VARIABLE AND ONE INTEGER 04080008
C CONSTANT IN ARITHMETIC EXPRESSION. 04090008
C 04100008
2151 CONTINUE 04110008
IVTNUM = 215 04120008
C 04130008
C **** TEST 215 **** 04140008
C 04150008
IF (ICZERO) 32150, 2150, 32150 04160008
2150 CONTINUE 04170008
IVON01 = 2 04180008
IVCOMP = IVON01 + 3 04190008
GO TO 42150 04200008
32150 IVDELE = IVDELE + 1 04210008
WRITE (I02,80003) IVTNUM 04220008
IF (ICZERO) 42150, 2161, 42150 04230008
42150 IF (IVCOMP - 5) 22150,12150,22150 04240008
12150 IVPASS = IVPASS + 1 04250008
WRITE (I02,80001) IVTNUM 04260008
GO TO 2161 04270008
22150 IVFAIL = IVFAIL + 1 04280008
IVCORR=5 04290008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04300008
2161 CONTINUE 04310008
IVTNUM = 216 04320008
C 04330008
C **** TEST 216 **** 04340008
C 04350008
IF (ICZERO) 32160, 2160, 32160 04360008
2160 CONTINUE 04370008
IVON01 = 3 04380008
IVCOMP = 2 + IVON01 04390008
GO TO 42160 04400008
32160 IVDELE = IVDELE + 1 04410008
WRITE (I02,80003) IVTNUM 04420008
IF (ICZERO) 42160, 2171, 42160 04430008
42160 IF (IVCOMP - 5) 22160,12160,22160 04440008
12160 IVPASS = IVPASS + 1 04450008
WRITE (I02,80001) IVTNUM 04460008
GO TO 2171 04470008
22160 IVFAIL = IVFAIL + 1 04480008
IVCORR = 5 04490008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04500008
2171 CONTINUE 04510008
IVTNUM = 217 04520008
C 04530008
C **** TEST 217 **** 04540008
C 04550008
IF (ICZERO) 32170, 2170, 32170 04560008
2170 CONTINUE 04570008
IVON01 = 51 04580008
IVCOMP = IVON01 +52 04590008
GO TO 42170 04600008
32170 IVDELE = IVDELE + 1 04610008
WRITE (I02,80003) IVTNUM 04620008
IF (ICZERO) 42170, 2181, 42170 04630008
42170 IF (IVCOMP - 103) 22170,12170,22170 04640008
12170 IVPASS = IVPASS + 1 04650008
WRITE (I02,80001) IVTNUM 04660008
GO TO 2181 04670008
22170 IVFAIL = IVFAIL + 1 04680008
IVCORR = 103 04690008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04700008
2181 CONTINUE 04710008
IVTNUM = 218 04720008
C 04730008
C **** TEST 218 **** 04740008
C 04750008
IF (ICZERO) 32180, 2180, 32180 04760008
2180 CONTINUE 04770008
IVON01 = 676 04780008
IVCOMP = 189 + IVON01 04790008
GO TO 42180 04800008
32180 IVDELE = IVDELE + 1 04810008
WRITE (I02,80003) IVTNUM 04820008
IF (ICZERO) 42180, 2191, 42180 04830008
42180 IF (IVCOMP - 865) 22180,12180,22180 04840008
12180 IVPASS = IVPASS + 1 04850008
WRITE (I02,80001) IVTNUM 04860008
GO TO 2191 04870008
22180 IVFAIL = IVFAIL + 1 04880008
IVCORR = 865 04890008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04900008
2191 CONTINUE 04910008
IVTNUM = 219 04920008
C 04930008
C **** TEST 219 **** 04940008
C 04950008
IF (ICZERO) 32190, 2190, 32190 04960008
2190 CONTINUE 04970008
IVON01 = 1358 04980008
IVCOMP = IVON01 + 8001 04990008
GO TO 42190 05000008
32190 IVDELE = IVDELE + 1 05010008
WRITE (I02,80003) IVTNUM 05020008
IF (ICZERO) 42190, 2201, 42190 05030008
42190 IF (IVCOMP - 9359) 22190,12190,22190 05040008
12190 IVPASS = IVPASS + 1 05050008
WRITE (I02,80001) IVTNUM 05060008
GO TO 2201 05070008
22190 IVFAIL = IVFAIL + 1 05080008
IVCORR = 9359 05090008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05100008
C 05110008
C TEST 220 THROUGH TEST 224 - ONE INTEGER VARIABLE, TWO INTEGER 05120008
C CONSTANTS IN ARITHMETIC EXPRESSION. 05130008
C 05140008
2201 CONTINUE 05150008
IVTNUM = 220 05160008
C 05170008
C **** TEST 220 **** 05180008
C 05190008
IF (ICZERO) 32200, 2200, 32200 05200008
2200 CONTINUE 05210008
IVON01 = 2 05220008
IVCOMP = IVON01 +3 +4 05230008
GO TO 42200 05240008
32200 IVDELE = IVDELE + 1 05250008
WRITE (I02,80003) IVTNUM 05260008
IF (ICZERO) 42200, 2211, 42200 05270008
42200 IF (IVCOMP - 9) 22200,12200,22200 05280008
12200 IVPASS = IVPASS + 1 05290008
WRITE (I02,80001) IVTNUM 05300008
GO TO 2211 05310008
22200 IVFAIL = IVFAIL + 1 05320008
IVCORR = 9 05330008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05340008
2211 CONTINUE 05350008
IVTNUM = 221 05360008
C 05370008
C **** TEST 221 **** 05380008
C 05390008
IF (ICZERO) 32210, 2210, 32210 05400008
2210 CONTINUE 05410008
IVON01 = 3 05420008
IVCOMP = 2+IVON01+4 05430008
GO TO 42210 05440008
32210 IVDELE = IVDELE + 1 05450008
WRITE (I02,80003) IVTNUM 05460008
IF (ICZERO) 42210, 2221, 42210 05470008
42210 IF (IVCOMP - 9) 22210,12210,22210 05480008
12210 IVPASS = IVPASS + 1 05490008
WRITE (I02,80001) IVTNUM 05500008
GO TO 2221 05510008
22210 IVFAIL = IVFAIL + 1 05520008
IVCORR = 9 05530008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05540008
2221 CONTINUE 05550008
IVTNUM = 222 05560008
C 05570008
C **** TEST 222 **** 05580008
C 05590008
IF (ICZERO) 32220, 2220, 32220 05600008
2220 CONTINUE 05610008
IVON01 = 4 05620008
IVCOMP= 2+3+IVON01 05630008
GO TO 42220 05640008
32220 IVDELE = IVDELE + 1 05650008
WRITE (I02,80003) IVTNUM 05660008
IF (ICZERO) 42220, 2231, 42220 05670008
42220 IF (IVCOMP - 9) 22220,12220,22220 05680008
12220 IVPASS = IVPASS + 1 05690008
WRITE (I02,80001) IVTNUM 05700008
GO TO 2231 05710008
22220 IVFAIL = IVFAIL + 1 05720008
IVCORR = 9 05730008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05740008
2231 CONTINUE 05750008
IVTNUM = 223 05760008
C 05770008
C **** TEST 223 **** 05780008
C 05790008
IF (ICZERO) 32230, 2230, 32230 05800008
2230 CONTINUE 05810008
IVON01 = 2189 05820008
IVCOMP = 1358+IVON01+8001 05830008
GO TO 42230 05840008
32230 IVDELE = IVDELE + 1 05850008
WRITE (I02,80003) IVTNUM 05860008
IF (ICZERO) 42230, 2241, 42230 05870008
42230 IF (IVCOMP - 11548) 22230,12230,22230 05880008
12230 IVPASS = IVPASS + 1 05890008
WRITE (I02,80001) IVTNUM 05900008
GO TO 2241 05910008
22230 IVFAIL = IVFAIL + 1 05920008
IVCORR=11548 05930008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05940008
2241 CONTINUE 05950008
IVTNUM = 224 05960008
C 05970008
C **** TEST 224 **** 05980008
C 05990008
IF (ICZERO) 32240, 2240, 32240 06000008
2240 CONTINUE 06010008
IVON01 = 11111 06020008
IVCOMP = 11111 + IVON01 + 10111 06030008
GO TO 42240 06040008
32240 IVDELE = IVDELE + 1 06050008
WRITE (I02,80003) IVTNUM 06060008
IF (ICZERO) 42240, 2251, 42240 06070008
42240 IF (IVCOMP - 32333) 22240,12240,22240 06080008
12240 IVPASS = IVPASS + 1 06090008
WRITE (I02,80001) IVTNUM 06100008
GO TO 2251 06110008
22240 IVFAIL = IVFAIL + 1 06120008
IVCORR = 32333 06130008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06140008
C 06150008
C TEST 225 THROUGH TEST 234 USE PARENTHESES TO GROUP ELEMENTS IN 06160008
C AN ARITHMETIC EXPRESSION. THE RESULTS ARE THE SAME AS TESTS 06170008
C 220 THROUGH 224. 06180008
C 06190008
2251 CONTINUE 06200008
IVTNUM = 225 06210008
C 06220008
C **** TEST 225 **** 06230008
C 06240008
IF (ICZERO) 32250, 2250, 32250 06250008
2250 CONTINUE 06260008
IVON01 = 2 06270008
IVCOMP = (IVON01 +3) + 4 06280008
GO TO 42250 06290008
32250 IVDELE = IVDELE + 1 06300008
WRITE (I02,80003) IVTNUM 06310008
IF (ICZERO) 42250, 2261, 42250 06320008
42250 IF (IVCOMP -9) 22250,12250,22250 06330008
12250 IVPASS = IVPASS + 1 06340008
WRITE (I02,80001) IVTNUM 06350008
GO TO 2261 06360008
22250 IVFAIL = IVFAIL + 1 06370008
IVCORR = 9 06380008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06390008
2261 CONTINUE 06400008
IVTNUM = 226 06410008
C 06420008
C **** TEST 226 **** 06430008
C 06440008
IF (ICZERO) 32260, 2260, 32260 06450008
2260 CONTINUE 06460008
IVON01 = 2 06470008
IVCOMP = IVON01 + (3+4) 06480008
GO TO 42260 06490008
32260 IVDELE = IVDELE + 1 06500008
WRITE (I02,80003) IVTNUM 06510008
IF (ICZERO) 42260, 2271, 42260 06520008
42260 IF (IVCOMP - 9) 22260,12260,22260 06530008
12260 IVPASS = IVPASS + 1 06540008
WRITE (I02,80001) IVTNUM 06550008
GO TO 2271 06560008
22260 IVFAIL = IVFAIL + 1 06570008
IVCORR = 9 06580008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06590008
2271 CONTINUE 06600008
IVTNUM = 227 06610008
C 06620008
C **** TEST 227 **** 06630008
C 06640008
IF (ICZERO) 32270, 2270, 32270 06650008
2270 CONTINUE 06660008
IVON01 = 3 06670008
IVCOMP = (2+IVON01) + 4 06680008
GO TO 42270 06690008
32270 IVDELE = IVDELE + 1 06700008
WRITE (I02,80003) IVTNUM 06710008
IF (ICZERO) 42270, 2281, 42270 06720008
42270 IF (IVCOMP - 9) 22270,12270,22270 06730008
12270 IVPASS = IVPASS + 1 06740008
WRITE (I02,80001) IVTNUM 06750008
GO TO 2281 06760008
22270 IVFAIL = IVFAIL + 1 06770008
IVCORR = 9 06780008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06790008
2281 CONTINUE 06800008
IVTNUM = 228 06810008
C 06820008
C **** TEST 228 **** 06830008
C 06840008
IF (ICZERO) 32280, 2280, 32280 06850008
2280 CONTINUE 06860008
IVON01 = 3 06870008
IVCOMP = 2 +(IVON01+4) 06880008
GO TO 42280 06890008
32280 IVDELE = IVDELE + 1 06900008
WRITE (I02,80003) IVTNUM 06910008
IF (ICZERO) 42280, 2291, 42280 06920008
42280 IF (IVCOMP - 9) 22280, 12280, 22280 06930008
12280 IVPASS = IVPASS + 1 06940008
WRITE (I02,80001) IVTNUM 06950008
GO TO 2291 06960008
22280 IVFAIL = IVFAIL + 1 06970008
IVCORR = 9 06980008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06990008
2291 CONTINUE 07000008
IVTNUM = 229 07010008
C 07020008
C **** TEST 229 **** 07030008
C 07040008
IF (ICZERO) 32290, 2290, 32290 07050008
2290 CONTINUE 07060008
IVON01 = 4 07070008
IVCOMP = (2+3)+IVON01 07080008
GO TO 42290 07090008
32290 IVDELE = IVDELE + 1 07100008
WRITE (I02,80003) IVTNUM 07110008
IF (ICZERO) 42290, 2301, 42290 07120008
42290 IF (IVCOMP - 9) 22290,12290,22290 07130008
12290 IVPASS = IVPASS + 1 07140008
WRITE (I02,80001) IVTNUM 07150008
GO TO 2301 07160008
22290 IVFAIL = IVFAIL + 1 07170008
IVCORR = 9 07180008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07190008
2301 CONTINUE 07200008
IVTNUM = 230 07210008
C 07220008
C **** TEST 230 **** 07230008
C 07240008
IF (ICZERO) 32300, 2300, 32300 07250008
2300 CONTINUE 07260008
IVON01 = 2189 07270008
IVCOMP = 1358 + (IVON01+8001) 07280008
GO TO 42300 07290008
32300 IVDELE = IVDELE + 1 07300008
WRITE (I02,80003) IVTNUM 07310008
IF (ICZERO) 42300, 2311, 42300 07320008
42300 IF (IVCOMP - 11548) 22300,12300,22300 07330008
12300 IVPASS = IVPASS + 1 07340008
WRITE (I02,80001) IVTNUM 07350008
GO TO 2311 07360008
22300 IVFAIL = IVFAIL + 1 07370008
IVCORR = 11548 07380008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07390008
2311 CONTINUE 07400008
IVTNUM = 231 07410008
C 07420008
C **** TEST 231 **** 07430008
C 07440008
IF (ICZERO) 32310, 2310, 32310 07450008
2310 CONTINUE 07460008
IVON01 = 2189 07470008
IVCOMP = (1358+IVON01) + 8001 07480008
GO TO 42310 07490008
32310 IVDELE = IVDELE + 1 07500008
WRITE (I02,80003) IVTNUM 07510008
IF (ICZERO) 42310, 2321, 42310 07520008
42310 IF (IVCOMP - 11548) 22310,12310,22310 07530008
12310 IVPASS = IVPASS + 1 07540008
WRITE (I02,80001) IVTNUM 07550008
GO TO 2321 07560008
22310 IVFAIL = IVFAIL + 1 07570008
IVCORR = 11548 07580008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07590008
2321 CONTINUE 07600008
IVTNUM = 232 07610008
C 07620008
C **** TEST 232 **** 07630008
C 07640008
IF (ICZERO) 32320, 2320, 32320 07650008
2320 CONTINUE 07660008
IVON01 = 11111 07670008
IVCOMP = (11111 + IVON01) + 10111 07680008
GO TO 42320 07690008
32320 IVDELE = IVDELE + 1 07700008
WRITE (I02,80003) IVTNUM 07710008
IF (ICZERO) 42320, 2331, 42320 07720008
42320 IF (IVCOMP - 32333) 22320,12320,22320 07730008
12320 IVPASS = IVPASS + 1 07740008
WRITE (I02,80001) IVTNUM 07750008
GO TO 2331 07760008
22320 IVFAIL = IVFAIL + 1 07770008
IVCORR = 32333 07780008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07790008
2331 CONTINUE 07800008
IVTNUM = 233 07810008
C 07820008
C **** TEST 233 **** 07830008
C 07840008
IF (ICZERO) 32330, 2330, 32330 07850008
2330 CONTINUE 07860008
IVON01 = 11111 07870008
IVCOMP = (IVON01 + 10111) + 11111 07880008
GO TO 42330 07890008
32330 IVDELE = IVDELE + 1 07900008
WRITE (I02,80003) IVTNUM 07910008
IF (ICZERO) 42330, 2341, 42330 07920008
42330 IF (IVCOMP - 32333) 22330,12330,22330 07930008
12330 IVPASS = IVPASS + 1 07940008
WRITE (I02,80001) IVTNUM 07950008
GO TO 2341 07960008
22330 IVFAIL = IVFAIL + 1 07970008
IVCORR = 32333 07980008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07990008
2341 CONTINUE 08000008
IVTNUM = 234 08010008
C 08020008
C **** TEST 234 **** 08030008
C 08040008
IF (ICZERO) 32340, 2340, 32340 08050008
2340 CONTINUE 08060008
IVON01 = 10111 08070008
IVCOMP = 11111 + (11111+IVON01) 08080008
GO TO 42340 08090008
32340 IVDELE = IVDELE + 1 08100008
WRITE (I02,80003) IVTNUM 08110008
IF (ICZERO) 42340, 2351, 42340 08120008
42340 IF (IVCOMP - 32333) 22340,12340,22340 08130008
12340 IVPASS = IVPASS + 1 08140008
WRITE (I02,80001) IVTNUM 08150008
GO TO 2351 08160008
22340 IVFAIL = IVFAIL + 1 08170008
IVCORR = 32333 08180008
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 08190008
2351 CONTINUE 08200008
C 08210008
C WRITE PAGE FOOTINGS AND RUN SUMMARIES 08220008
99999 CONTINUE 08230008
WRITE (I02,90002) 08240008
WRITE (I02,90006) 08250008
WRITE (I02,90002) 08260008
WRITE (I02,90002) 08270008
WRITE (I02,90007) 08280008
WRITE (I02,90002) 08290008
WRITE (I02,90008) IVFAIL 08300008
WRITE (I02,90009) IVPASS 08310008
WRITE (I02,90010) IVDELE 08320008
C 08330008
C 08340008
C TERMINATE ROUTINE EXECUTION 08350008
STOP 08360008
C 08370008
C FORMAT STATEMENTS FOR PAGE HEADERS 08380008
90000 FORMAT ("1") 08390008
90002 FORMAT (" ") 08400008
90001 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 08410008
90003 FORMAT (" ",21X,"VERSION 2.1" ) 08420008
90004 FORMAT (" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" ) 08430008
90005 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT") 08440008
90006 FORMAT (" ",5X,"----------------------------------------------" ) 08450008
90011 FORMAT (" ",18X,"SUBSET LEVEL TEST" ) 08460008
C 08470008
C FORMAT STATEMENTS FOR RUN SUMMARIES 08480008
90008 FORMAT (" ",15X,I5," ERRORS ENCOUNTERED" ) 08490008
90009 FORMAT (" ",15X,I5," TESTS PASSED" ) 08500008
90010 FORMAT (" ",15X,I5," TESTS DELETED" ) 08510008
C 08520008
C FORMAT STATEMENTS FOR TEST RESULTS 08530008
80001 FORMAT (" ",4X,I5,7X,"PASS") 08540008
80002 FORMAT (" ",4X,I5,7X,"FAIL") 08550008
80003 FORMAT (" ",4X,I5,7X,"DELETED") 08560008
80004 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6) 08570008
80005 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5) 08580008
C 08590008
90007 FORMAT (" ",20X,"END OF PROGRAM FM008" ) 08600008
END 08610008