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