C COMMENT SECTION C C FM034 C C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE C FORM C INTEGER VARIABLE = ARITHMETIC EXPRESSION C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC C OPERATOR *, INTEGER VARIABLE AND INTEGER CONSTANT. SOME OF THE C TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE EXPRESSION AND TO C ALLOW THE USE OF NEGATIVE CONSTANTS FOLLOWING THE * OPERATOR. C THE INTEGER VARIABLES CONTAIN POSITIVE AND NEGATIVE VALUES. C C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS C (1) INTEGER VARIABLE * INTEGER CONSTANT C INTEGER CONSTANT * INTEGER VARIABLE C (2) INTEGER CONSTANT * INTEGER VARIABLE * INTEGER CONSTANT C (3) SAME AS (2) BUT WITH PARENS TO GROUP ELEMENTS. C C REFERENCES C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, C X3.9-1978 C C SECTION 4.3, INTEGER TYPE C SECTION 4.3.1, INTEGER CONSTANT C SECTION 6.1, ARITHMETIC EXPRESSIONS C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT C C ********************************************************** C C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT C OF EXECUTING THESE TESTS. C C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. C C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - C C DEPARTMENT OF THE NAVY C FEDERAL COBOL COMPILER TESTING SERVICE C WASHINGTON, D.C. 20376 C C ********************************************************** C C C C INITIALIZATION SECTION C C INITIALIZE CONSTANTS C ************** C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. I01 = 5 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. I02 = 6 C SYSTEM ENVIRONMENT SECTION C CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 C (UNIT NUMBER FOR CARD READER). CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. C CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 C (UNIT NUMBER FOR PRINTER). CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. C IVPASS=0 IVFAIL=0 IVDELE=0 ICZERO=0 C C WRITE PAGE HEADERS WRITE (I02,90000) WRITE (I02,90001) WRITE (I02,90002) WRITE (I02, 90002) WRITE (I02,90003) WRITE (I02,90002) WRITE (I02,90004) WRITE (I02,90002) WRITE (I02,90011) WRITE (I02,90002) WRITE (I02,90002) WRITE (I02,90005) WRITE (I02,90006) WRITE (I02,90002) C C TEST SECTION C C ARITHMETIC ASSIGNMENT STATEMENT C C TEST 395 THROUGH TEST 414 CONTAIN AN INTEGER VARIABLE, AN INTEGER C CONSTANT, AND OPERATOR * IN AN ARITHMETIC EXPRESSION. C C TEST 395 THROUGH TEST 406 - IV= IV * IC C C TEST 395 THROUGH TEST 398 C POSITIVE INTEGER VARIABLE, POSITIVE INTEGER CONSTANT C 3951 CONTINUE IVTNUM = 395 C C **** TEST 395 **** C IF (ICZERO) 33950, 3950, 33950 3950 CONTINUE IVON01 = 2 IVCOMP = IVON01 * 3 GO TO 43950 33950 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43950, 3961, 43950 43950 IF (IVCOMP -6) 23950,13950,23950 13950 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3961 23950 IVFAIL = IVFAIL + 1 IVCORR =6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3961 CONTINUE IVTNUM = 396 C C **** TEST 396 **** C IF (ICZERO) 33960, 3960, 33960 3960 CONTINUE IVON01 = 13 IVCOMP = IVON01 * 11 GO TO 43960 33960 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43960, 3971, 43960 43960 IF (IVCOMP - 143) 23960,13960,23960 13960 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3971 23960 IVFAIL = IVFAIL + 1 IVCORR = 143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3971 CONTINUE IVTNUM = 397 C C **** TEST 397 **** C IF (ICZERO) 33970, 3970, 33970 3970 CONTINUE IVON01 = 223 IVCOMP = IVON01 * 99 GO TO 43970 33970 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43970, 3981, 43970 43970 IF (IVCOMP - 22077) 23970,13970,23970 13970 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3981 23970 IVFAIL = IVFAIL + 1 IVCORR = 22077 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3981 CONTINUE IVTNUM = 398 C C **** TEST 398 **** C IF (ICZERO) 33980, 3980, 33980 3980 CONTINUE IVON01 = 11235 IVCOMP = IVON01 * 2 GO TO 43980 33980 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43980, 3991, 43980 43980 IF (IVCOMP - 22470) 23980,13980,23980 13980 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3991 23980 IVFAIL = IVFAIL + 1 IVCORR = 22470 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 399 THROUGH TEST 402 C NEGATIVE INTEGER VARIABLE, POSITIVE INTEGER CONSTANT C 3991 CONTINUE IVTNUM = 399 C C **** TEST 399 **** C IF (ICZERO) 33990, 3990, 33990 3990 CONTINUE IVON01 = -2 IVCOMP = IVON01 * 3 GO TO 43990 33990 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43990, 4001, 43990 43990 IF (IVCOMP +6) 23990,13990,23990 13990 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4001 23990 IVFAIL = IVFAIL + 1 IVCORR = -6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4001 CONTINUE IVTNUM = 400 C C **** TEST 400 **** C IF (ICZERO) 34000, 4000, 34000 4000 CONTINUE IVON01 = -13 IVCOMP =IVON01*11 GO TO 44000 34000 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44000, 4011, 44000 44000 IF (IVCOMP +143) 24000,14000,24000 14000 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4011 24000 IVFAIL = IVFAIL + 1 IVCORR = -143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4011 CONTINUE IVTNUM = 401 C C **** TEST 401 **** C IF (ICZERO) 34010, 4010, 34010 4010 CONTINUE IVON01 = -223 IVCOMP = IVON01*99 GO TO 44010 34010 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44010, 4021, 44010 44010 IF (IVCOMP + 22077) 24010,14010,24010 14010 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4021 24010 IVFAIL = IVFAIL + 1 IVCORR = -22077 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4021 CONTINUE IVTNUM = 402 C C **** TEST 402 **** C IF (ICZERO) 34020, 4020, 34020 4020 CONTINUE IVON01 = -11235 IVCOMP = IVON01*2 GO TO 44020 34020 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44020, 4031, 44020 44020 IF (IVCOMP+22470) 24020,14020,24020 14020 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4031 24020 IVFAIL = IVFAIL + 1 IVCORR = -22470 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 403 AND TEST 404 C NEGATIVE INTEGER VARIABLE, NEGATIVE INTEGER CONSTANT C 4031 CONTINUE IVTNUM = 403 C C **** TEST 403 **** C IF (ICZERO) 34030, 4030, 34030 4030 CONTINUE IVON01=-2 IVCOMP = IVON01*(-3) GO TO 44030 34030 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44030, 4041, 44030 44030 IF (IVCOMP -6) 24030,14030,24030 14030 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4041 24030 IVFAIL = IVFAIL + 1 IVCORR =6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4041 CONTINUE IVTNUM = 404 C C **** TEST 404 **** C IF (ICZERO) 34040, 4040, 34040 4040 CONTINUE IVON01 = -13 IVCOMP = IVON01 * (-11) GO TO 44040 34040 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44040, 4051, 44040 44040 IF (IVCOMP -143) 24040,14040,24040 14040 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4051 24040 IVFAIL = IVFAIL + 1 IVCORR = 143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 405 AND TEST 406 C POSITIVE INTEGER VARIABLE, NEGATIVE INTEGER CONSTANT C 4051 CONTINUE IVTNUM = 405 C C **** TEST 405 **** C IF (ICZERO) 34050, 4050, 34050 4050 CONTINUE IVON01 = 223 IVCOMP = IVON01 * (-99) GO TO 44050 34050 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44050, 4061, 44050 44050 IF (IVCOMP + 22077) 24050,14050,24050 14050 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4061 24050 IVFAIL = IVFAIL + 1 IVCORR = -22077 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4061 CONTINUE IVTNUM = 406 C C **** TEST 406 **** C IF (ICZERO) 34060, 4060, 34060 4060 CONTINUE IVON01 = 11235 IVCOMP = IVON01 * (-2) GO TO 44060 34060 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44060, 4071, 44060 44060 IF (IVCOMP + 22470) 24060,14060,24060 14060 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4071 24060 IVFAIL = IVFAIL + 1 IVCORR = -22470 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 407 THROUGH TEST 414 - IV = IC * IV C C TEST 407 AND TEST 408 C POSITIVE INTEGER CONSTANT, POSITIVE INTEGER VARIABLE C 4071 CONTINUE IVTNUM = 407 C C **** TEST 407 **** C IF (ICZERO) 34070, 4070, 34070 4070 CONTINUE IVON02 = 11 IVCOMP = 13*IVON02 GO TO 44070 34070 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44070, 4081, 44070 44070 IF (IVCOMP - 143) 24070,14070,24070 14070 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4081 24070 IVFAIL = IVFAIL + 1 IVCORR = 143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4081 CONTINUE IVTNUM = 408 C C **** TEST 408 **** C IF (ICZERO) 34080, 4080, 34080 4080 CONTINUE IVON02 = +11 IVCOMP = +13 * IVON02 GO TO 44080 34080 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44080, 4091, 44080 44080 IF (IVCOMP - 143) 24080,14080,24080 14080 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4091 24080 IVFAIL = IVFAIL + 1 IVCORR = 143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 409 AND TEST 410 C POSITIVE INTEGER CONSTANT, NEGATIVE INTEGER VARIABLE C 4091 CONTINUE IVTNUM = 409 C C **** TEST 409 **** C IF (ICZERO) 34090, 4090, 34090 4090 CONTINUE IVON02 = -99 IVCOMP = 223 * IVON02 GO TO 44090 34090 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44090, 4101, 44090 44090 IF (IVCOMP + 22077) 24090,14090,24090 14090 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4101 24090 IVFAIL = IVFAIL + 1 IVCORR =-22077 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4101 CONTINUE IVTNUM = 410 C C **** TEST 410 **** C IF (ICZERO) 34100, 4100, 34100 4100 CONTINUE IVON02 = -99 IVCOMP = +223*IVON02 GO TO 44100 34100 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44100, 4111, 44100 44100 IF (IVCOMP + 22077) 24100,14100,24100 14100 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4111 24100 IVFAIL = IVFAIL + 1 IVCORR = -22077 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 411 AND TEST 412 C NEGATIVE INTEGER CONSTANT, POSITIVE INTEGER VARIABLE C 4111 CONTINUE IVTNUM = 411 C C **** TEST 411 **** C IF (ICZERO) 34110, 4110, 34110 4110 CONTINUE IVON02 = 2 IVCOMP = (-11235) * IVON02 GO TO 44110 34110 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44110, 4121, 44110 44110 IF (IVCOMP + 22470) 24110,14110,24110 14110 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4121 24110 IVFAIL = IVFAIL + 1 IVCORR = -22470 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4121 CONTINUE IVTNUM = 412 C C **** TEST 412 **** C IF (ICZERO) 34120, 4120, 34120 4120 CONTINUE IVON02 = +2 IVCOMP = -11235 * IVON02 GO TO 44120 34120 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44120, 4131, 44120 44120 IF (IVCOMP + 22470) 24120,14120,24120 14120 IVPASS=IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4131 24120 IVFAIL = IVFAIL + 1 IVCORR = -22470 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 413 AND TEST 414 C NEGATIVE INTEGER CONSTANT, NEGATIVE INTEGER VARIABLE C 4131 CONTINUE IVTNUM = 413 C C **** TEST 413 **** C IF (ICZERO) 34130, 4130, 34130 4130 CONTINUE IVON02 = -3 IVCOMP = (-2) * IVON02 GO TO 44130 34130 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44130, 4141, 44130 44130 IF (IVCOMP - 6) 24130,14130,24130 14130 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4141 24130 IVFAIL = IVFAIL + 1 IVCORR = 6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4141 CONTINUE IVTNUM = 414 C C **** TEST 414 **** C IF (ICZERO) 34140, 4140, 34140 4140 CONTINUE IVON02 = -3 IVCOMP = -2 * IVON02 GO TO 44140 34140 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44140, 4151, 44140 44140 IF (IVCOMP - 6) 24140,14140,24140 14140 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4151 24140 IVFAIL = IVFAIL + 1 IVCORR = 6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 415 THROUGH TEST 429 CONTAIN TWO INTEGER CONSTANTS, C ONE INTEGER VARIABLE AND OPERATOR * IN ARITHMETIC EXPRESSION. C 4151 CONTINUE IVTNUM = 415 C C **** TEST 415 **** C IF (ICZERO) 34150, 4150, 34150 4150 CONTINUE IVON01 = 2 IVCOMP = IVON01 * 3 * 4 GO TO 44150 34150 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44150, 4161, 44150 44150 IF (IVCOMP - 24) 24150,14150,24150 14150 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4161 24150 IVFAIL = IVFAIL + 1 IVCORR = 24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4161 CONTINUE IVTNUM = 416 C C **** TEST 416 **** C IF (ICZERO) 34160, 4160, 34160 4160 CONTINUE IVON01 = -2 IVCOMP = IVON01 *3*4 GO TO 44160 34160 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44160, 4171, 44160 44160 IF (IVCOMP +24) 24160,14160,24160 14160 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4171 24160 IVFAIL = IVFAIL + 1 IVCORR = -24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4171 CONTINUE IVTNUM = 417 C C **** TEST 417 **** C IF (ICZERO) 34170, 4170, 34170 4170 CONTINUE IVON01 = -2 IVCOMP = IVON01*3*(-4) GO TO 44170 34170 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44170, 4181, 44170 44170 IF (IVCOMP -24) 24170,14170,24170 14170 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4181 24170 IVFAIL = IVFAIL + 1 IVCORR = 24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4181 CONTINUE IVTNUM = 418 C C **** TEST 418 **** C IF (ICZERO) 34180, 4180, 34180 4180 CONTINUE IVON01 = -2 IVCOMP = IVON01*(-3)*(-4) GO TO 44180 34180 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44180, 4191, 44180 44180 IF (IVCOMP +24) 24180,14180,24180 14180 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4191 24180 IVFAIL = IVFAIL + 1 IVCORR = -24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4191 CONTINUE IVTNUM = 419 C C **** TEST 419 **** C IF (ICZERO) 34190, 4190, 34190 4190 CONTINUE IVON02 = 51 IVCOMP = 23*IVON02*13 GO TO 44190 34190 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44190, 4201, 44190 44190 IF (IVCOMP-15249) 24190,14190,24190 14190 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4201 24190 IVFAIL = IVFAIL + 1 IVCORR = 15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4201 CONTINUE IVTNUM = 420 C C **** TEST 420 **** C IF (ICZERO) 34200, 4200, 34200 4200 CONTINUE IVON02 = -51 IVCOMP = 23*IVON02*(-13) GO TO 44200 34200 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44200, 4211, 44200 44200 IF (IVCOMP - 15249) 24200,14200,24200 14200 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4211 24200 IVFAIL = IVFAIL + 1 IVCORR = 15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4211 CONTINUE IVTNUM = 421 C C **** TEST 421 **** C IF (ICZERO) 34210, 4210, 34210 4210 CONTINUE IVON02 = -51 IVCOMP = 23*IVON02*13 GO TO 44210 34210 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44210, 4221, 44210 44210 IF (IVCOMP+15249) 24210,14210,24210 14210 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4221 24210 IVFAIL = IVFAIL + 1 IVCORR = -15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4221 CONTINUE IVTNUM = 422 C C **** TEST 422 **** C IF (ICZERO) 34220, 4220, 34220 4220 CONTINUE IVON02 = -51 IVCOMP =(-23)*IVON02*(-13) GO TO 44220 34220 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44220, 4231, 44220 44220 IF (IVCOMP+15249) 24220,14220,24220 14220 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4231 24220 IVFAIL = IVFAIL + 1 IVCORR = -15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4231 CONTINUE IVTNUM = 423 C C **** TEST 423 **** C IF (ICZERO) 34230, 4230, 34230 4230 CONTINUE IVON03 = 5461 IVCOMP = 2*3*IVON03 GO TO 44230 34230 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44230, 4241, 44230 44230 IF (IVCOMP - 32766) 24230,14230,24230 14230 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4241 24230 IVFAIL = IVFAIL + 1 IVCORR = 32766 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4241 CONTINUE IVTNUM = 424 C C **** TEST 424 **** C IF (ICZERO) 34240, 4240, 34240 4240 CONTINUE IVON03 = -5461 IVCOMP = 2*3*IVON03 GO TO 44240 34240 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44240, 4251, 44240 44240 IF (IVCOMP +32766) 24240,14240,24240 14240 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4251 24240 IVFAIL = IVFAIL + 1 IVCORR = -32766 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4251 CONTINUE IVTNUM = 425 C C **** TEST 425 **** C IF (ICZERO) 34250, 4250, 34250 4250 CONTINUE IVON03 = -5461 IVCOMP = -2*3*IVON03 GO TO 44250 34250 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44250, 4261, 44250 44250 IF (IVCOMP - 32766) 24250,14250,24250 14250 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4261 24250 IVFAIL = IVFAIL + 1 IVCORR = 32766 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 426 THROUGH TEST 429 USE PARENTHESES TO GROUP ELEMENTS C IN ARITHMETIC EXPRESSION. C 4261 CONTINUE IVTNUM = 426 C C **** TEST 426 **** C IF (ICZERO) 34260, 4260, 34260 4260 CONTINUE IVON02 = 51 IVCOMP = (23*IVON02)*13 GO TO 44260 34260 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44260, 4271, 44260 44260 IF (IVCOMP -15249) 24260,14260,24260 14260 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4271 24260 IVFAIL = IVFAIL + 1 IVCORR = 15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4271 CONTINUE IVTNUM = 427 C C **** TEST 427 **** C IF (ICZERO) 34270, 4270, 34270 4270 CONTINUE IVON02 = 51 IVCOMP = 23*(IVON02*13) GO TO 44270 34270 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44270, 4281, 44270 44270 IF (IVCOMP-15249) 24270,14270,24270 14270 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4281 24270 IVFAIL = IVFAIL + 1 IVCORR = 15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4281 CONTINUE IVTNUM = 428 C C **** TEST 428 **** C IF (ICZERO) 34280, 4280, 34280 4280 CONTINUE IVON02 = -51 IVCOMP = -23 * (IVON02*(+13)) GO TO 44280 34280 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44280, 4291, 44280 44280 IF (IVCOMP - 15249)24280,14280,24280 14280 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4291 24280 IVFAIL = IVFAIL + 1 IVCORR = 15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 4291 CONTINUE IVTNUM = 429 C C **** TEST 429 **** C IF (ICZERO) 34290, 4290, 34290 4290 CONTINUE IVON02 = -51 IVCOMP = (-23)*(IVON02*(-13)) GO TO 44290 34290 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 44290, 4301, 44290 44290 IF (IVCOMP + 15249) 24290,14290,24290 14290 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 4301 24290 IVFAIL = IVFAIL + 1 IVCORR = -15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C **** END OF TESTS **** 4301 CONTINUE C C WRITE PAGE FOOTINGS AND RUN SUMMARIES 99999 CONTINUE WRITE (I02,90002) WRITE (I02,90006) WRITE (I02,90002) WRITE (I02,90002) WRITE (I02,90007) WRITE (I02,90002) WRITE (I02,90008) IVFAIL WRITE (I02,90009) IVPASS WRITE (I02,90010) IVDELE C C C TERMINATE ROUTINE EXECUTION STOP C C FORMAT STATEMENTS FOR PAGE HEADERS 90000 FORMAT (1H1) 90002 FORMAT (1H ) 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 90003 FORMAT (1H ,21X,11HVERSION 1.0) 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 90006 FORMAT (1H ,5X,46H----------------------------------------------) 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) C C FORMAT STATEMENTS FOR RUN SUMMARIES 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) C C FORMAT STATEMENTS FOR TEST RESULTS 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) C 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM034) END