C COMMENT SECTION C C FM038 C C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE C FORM INTEGER VARIABLE = ARITHMETIC EXPRESSION C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC C OPERATOR /, INTEGER CONSTANTS AND AN INTEGER VARIABLE. BOTH C POSITIVE AND NEGATIVE VALUES ARE USED FOR THE INTEGER CONSTANTS C AND THE INTEGER VARIABLE. C C THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT C AND TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED C IN THE RESULTANT INTEGER VARIABLE. SOME OF THE TESTS USE PARENS C TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSION. C C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS C (1) (INTEGER CONSTANT/INTEGER CONSTANT)/INTEGER CONSTANT C (2) INTEGER CONSTANT/(INTEGER CONSTANT/INTEGER CONSTANT) C (3) INTEGER VARIABLE/INTEGER CONSTANT C (4) INTEGER CONSTANT/INTEGER VARIABLE 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 6.6, EVALUATION OF 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 520 THROUGH TEST 525 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS C OF THE FORM INTEGER VARIABLE = (INT.CON./INT.CON.)/INT.CON. C NO TRUNCATION OF THE RESULT IS REQUIRED. BOTH POSITIVE AND C NEGATIVE CONSTANTS ARE INCLUDED. C 5201 CONTINUE IVTNUM = 520 C C **** TEST 520 **** C IF (ICZERO) 35200, 5200, 35200 5200 CONTINUE IVCOMP = (24/3)/4 GO TO 45200 35200 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45200, 5211, 45200 45200 IF (IVCOMP - 2) 25200,15200,25200 15200 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5211 25200 IVFAIL = IVFAIL + 1 IVCORR = 2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5211 CONTINUE IVTNUM = 521 C C **** TEST 521 **** C IF (ICZERO) 35210, 5210, 35210 5210 CONTINUE IVCOMP = (7150/2)/25 GO TO 45210 35210 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45210, 5221, 45210 45210 IF (IVCOMP - 143) 25210,15210,25210 15210 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5221 25210 IVFAIL = IVFAIL + 1 IVCORR = 143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5221 CONTINUE IVTNUM = 522 C C **** TEST 522 **** C IF (ICZERO) 35220, 5220, 35220 5220 CONTINUE IVCOMP = (-24/3)/4 GO TO 45220 35220 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45220, 5231, 45220 45220 IF (IVCOMP + 2) 25220,15220,25220 15220 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5231 25220 IVFAIL = IVFAIL + 1 IVCORR = -2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5231 CONTINUE IVTNUM = 523 C C **** TEST 523 **** C IF (ICZERO) 35230, 5230, 35230 5230 CONTINUE IVCOMP = (330/(-3))/2 GO TO 45230 35230 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45230, 5241, 45230 45230 IF (IVCOMP + 55) 25230,15230,25230 15230 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5241 25230 IVFAIL = IVFAIL + 1 IVCORR = -55 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5241 CONTINUE IVTNUM = 524 C C **** TEST 524 **** C IF (ICZERO) 35240, 5240, 35240 5240 CONTINUE IVCOMP = ((-7150)/(-2))/(-25) GO TO 45240 35240 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45240, 5251, 45240 45240 IF (IVCOMP + 143) 25240,15240,25240 15240 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5251 25240 IVFAIL = IVFAIL + 1 IVCORR = -143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5251 CONTINUE IVTNUM = 525 C C **** TEST 525 **** C IF (ICZERO) 35250, 5250, 35250 5250 CONTINUE IVCOMP = (15249/(-13))/(-51) GO TO 45250 35250 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45250, 5261, 45250 45250 IF (IVCOMP - 23) 25250,15250,25250 15250 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5261 25250 IVFAIL = IVFAIL + 1 IVCORR = 23 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 526 THROUGH TEST 531 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS C OF THE FORM IV = (IC/IC)/IC. C TRUNCATION OF THE RESULT IS REQUIRED. BOTH POSITIVE AND C NEGATIVE CONSTANTS ARE INCLUDED. C 5261 CONTINUE IVTNUM = 526 C C **** TEST 526 **** C IF (ICZERO) 35260, 5260, 35260 5260 CONTINUE IVCOMP = (24/3)/3 GO TO 45260 35260 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45260, 5271, 45260 45260 IF (IVCOMP - 2) 25260,15260,25260 15260 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5271 25260 IVFAIL = IVFAIL + 1 IVCORR = 2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5271 CONTINUE IVTNUM = 527 C C **** TEST 527 **** C IF (ICZERO) 35270, 5270, 35270 5270 CONTINUE IVCOMP = (7151/3)/10 GO TO 45270 35270 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45270, 5281, 45270 45270 IF (IVCOMP - 238) 25270,15270,25270 15270 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5281 25270 IVFAIL = IVFAIL + 1 IVCORR = 238 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5281 CONTINUE IVTNUM = 528 C C **** TEST 528 **** C IF (ICZERO) 35280, 5280, 35280 5280 CONTINUE IVCOMP = (-24/3)/3 GO TO 45280 35280 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45280, 5291, 45280 45280 IF (IVCOMP + 2) 25280,15280,25280 15280 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5291 25280 IVFAIL = IVFAIL + 1 IVCORR = -2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5291 CONTINUE IVTNUM = 529 C C **** TEST 529 **** C IF (ICZERO) 35290, 5290, 35290 5290 CONTINUE IVCOMP = (7151/(-3))/10 GO TO 45290 35290 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45290, 5301, 45290 45290 IF (IVCOMP + 238) 25290,15290,25290 15290 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5301 25290 IVFAIL = IVFAIL + 1 IVCORR = -238 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5301 CONTINUE IVTNUM = 530 C C **** TEST 530 **** C IF (ICZERO) 35300, 5300, 35300 5300 CONTINUE IVCOMP = (15248/(-51))/(-23) GO TO 45300 35300 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45300, 5311, 45300 45300 IF (IVCOMP - 12) 25300,15300,25300 15300 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5311 25300 IVFAIL = IVFAIL + 1 IVCORR = 12 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5311 CONTINUE IVTNUM = 531 C C **** TEST 531 **** C IF (ICZERO) 35310, 5310, 35310 5310 CONTINUE IVCOMP = ((-27342)/(-4))/(-3) GO TO 45310 35310 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45310, 5321, 45310 45310 IF (IVCOMP + 2278) 25310,15310,25310 15310 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5321 25310 IVFAIL = IVFAIL + 1 IVCORR = -2278 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 532 THROUGH TEST 537 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS C OF THE FORM IV = IC/(IC/IC). C NO TRUNCATION OF THE RESULT IS REQUIRED. BOTH POSITIVE AND C NEGATIVE CONSTANTS ARE INCLUDED. C 5321 CONTINUE IVTNUM = 532 C C **** TEST 532 **** C IF (ICZERO) 35320, 5320, 35320 5320 CONTINUE IVCOMP = 24/(8/4) GO TO 45320 35320 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45320, 5331, 45320 45320 IF (IVCOMP - 12) 25320,15320,25320 15320 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5331 25320 IVFAIL = IVFAIL + 1 IVCORR = 12 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5331 CONTINUE IVTNUM = 533 C C **** TEST 533 **** C IF (ICZERO) 35330, 5330, 35330 5330 CONTINUE IVCOMP = 7150/(25/5) GO TO 45330 35330 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45330, 5341, 45330 45330 IF (IVCOMP - 1430) 25330,15330,25330 15330 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5341 25330 IVFAIL = IVFAIL + 1 IVCORR = 1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5341 CONTINUE IVTNUM = 534 C C **** TEST 534 **** C IF (ICZERO) 35340, 5340, 35340 5340 CONTINUE IVCOMP = -24/(8/4) GO TO 45340 35340 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45340, 5351, 45340 45340 IF (IVCOMP + 12) 25340,15340,25340 15340 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5351 25340 IVFAIL = IVFAIL + 1 IVCORR = -12 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5351 CONTINUE IVTNUM = 535 C C **** TEST 535 **** C IF (ICZERO) 35350, 5350, 35350 5350 CONTINUE IVCOMP = 24/((-8)/4) GO TO 45350 35350 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45350, 5361, 45350 45350 IF (IVCOMP + 12) 25350,15350,25350 15350 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5361 25350 IVFAIL = IVFAIL + 1 IVCORR = -12 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5361 CONTINUE IVTNUM = 536 C C **** TEST 536 **** C IF (ICZERO) 35360, 5360, 35360 5360 CONTINUE IVCOMP = (-7150)/((-25)/(-5)) GO TO 45360 35360 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45360, 5371, 45360 45360 IF (IVCOMP + 1430) 25360,15360,25360 15360 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5371 25360 IVFAIL = IVFAIL + 1 IVCORR = -1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5371 CONTINUE IVTNUM = 537 C C **** TEST 537 **** C IF (ICZERO) 35370, 5370, 35370 5370 CONTINUE IVCOMP = -7150/(25/(-5)) GO TO 45370 35370 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45370, 5381, 45370 45370 IF (IVCOMP - 1430) 25370,15370,25370 15370 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5381 25370 IVFAIL = IVFAIL + 1 IVCORR = 1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 538 THROUGH TEST 543 CONTAIN ARITHMETIC ASSIGMMENT STATEMENTS C OF THE FORM IV = IC/(IC/IC). C TRUNCATION OF THE RESULT IS REQUIRED. BOTH POSITIVE AND C NEGATIVE CONSTANTS ARE INCLUDED. C 5381 CONTINUE IVTNUM = 538 C C **** TEST 538 **** C IF (ICZERO) 35380, 5380, 35380 5380 CONTINUE IVCOMP = 29/(5/2) GO TO 45380 35380 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45380, 5391, 45380 45380 IF (IVCOMP - 14) 25380,15380,25380 15380 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5391 25380 IVFAIL = IVFAIL + 1 IVCORR = 14 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5391 CONTINUE IVTNUM = 539 C C **** TEST 539 **** C IF (ICZERO) 35390, 5390, 35390 5390 CONTINUE IVCOMP = 7154/(26/5) GO TO 45390 35390 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45390, 5401, 45390 45390 IF (IVCOMP - 1430) 25390,15390,25390 15390 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5401 25390 IVFAIL = IVFAIL + 1 IVCORR = 1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5401 CONTINUE IVTNUM = 540 C C **** TEST 540 **** C IF (ICZERO) 35400, 5400, 35400 5400 CONTINUE IVCOMP = -7154/(26/5) GO TO 45400 35400 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45400, 5411, 45400 45400 IF (IVCOMP + 1430) 25400,15400,25400 15400 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5411 25400 IVFAIL = IVFAIL + 1 IVCORR = -1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5411 CONTINUE IVTNUM = 541 C C **** TEST 541 **** C IF (ICZERO) 35410, 5410, 35410 5410 CONTINUE IVCOMP = (-7154)/((-26)/5) GO TO 45410 35410 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45410, 5421, 45410 45410 IF (IVCOMP - 1430) 25410,15410,25410 15410 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5421 25410 IVFAIL = IVFAIL + 1 IVCORR = 1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5421 CONTINUE IVTNUM = 542 C C **** TEST 542 **** C IF (ICZERO) 35420, 5420, 35420 5420 CONTINUE IVCOMP = 7154/((-26)/(-5)) GO TO 45420 35420 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45420, 5431, 45420 45420 IF (IVCOMP - 1430) 25420,15420,25420 15420 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5431 25420 IVFAIL = IVFAIL + 1 IVCORR = 1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5431 CONTINUE IVTNUM = 543 C C **** TEST 543 **** C IF (ICZERO) 35430, 5430, 35430 5430 CONTINUE IVCOMP = (-7154)/((-26)/(-5)) GO TO 45430 35430 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45430, 5441, 45430 45430 IF (IVCOMP + 1430) 25430,15430,25430 15430 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5441 25430 IVFAIL = IVFAIL + 1 IVCORR = -1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 544 THROUGH TEST 547 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS C OF THE FORM INTEGER VARIABLE = INTEGER VARIABLE/INTEGER CONSTANT C 5441 CONTINUE IVTNUM = 544 C C **** TEST 544 **** C IF (ICZERO) 35440, 5440, 35440 5440 CONTINUE IVON01 = 75 IVCOMP = IVON01/25 GO TO 45440 35440 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45440, 5451, 45440 45440 IF (IVCOMP - 3) 25440,15440,25440 15440 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5451 25440 IVFAIL = IVFAIL + 1 IVCORR = 3 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5451 CONTINUE IVTNUM = 545 C C **** TEST 545 **** C IF (ICZERO) 35450, 5450, 35450 5450 CONTINUE IVON01 = -3575 IVCOMP = IVON01/25 GO TO 45450 35450 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45450, 5461, 45450 45450 IF (IVCOMP + 143) 25450,15450,25450 15450 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5461 25450 IVFAIL = IVFAIL + 1 IVCORR = -143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5461 CONTINUE IVTNUM = 546 C C **** TEST 546 **** C IF (ICZERO) 35460, 5460, 35460 5460 CONTINUE IVON01 = 3575 IVCOMP = IVON01/(-143) GO TO 45460 35460 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45460, 5471, 45460 45460 IF (IVCOMP + 25) 25460,15460,25460 15460 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5471 25460 IVFAIL = IVFAIL + 1 IVCORR = -25 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5471 CONTINUE IVTNUM = 547 C C **** TEST 547 **** C IF (ICZERO) 35470, 5470, 35470 5470 CONTINUE IVON01 = 959 IVCOMP = IVON01/120 GO TO 45470 35470 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45470, 5481, 45470 45470 IF (IVCOMP -7) 25470,15470,25470 15470 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5481 25470 IVFAIL = IVFAIL + 1 IVCORR = 7 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 548 THROUGH TEST 551 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS C OF THE FORM INTEGER VARIABLE =INTEGER CONSTANT/INTEGER VARIABLE. C 5481 CONTINUE IVTNUM = 548 C C **** TEST 548 **** C IF (ICZERO) 35480, 5480, 35480 5480 CONTINUE IVON02 = 25 IVCOMP = 75/IVON02 GO TO 45480 35480 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45480, 5491, 45480 45480 IF (IVCOMP - 3) 25480,15480,25480 15480 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5491 25480 IVFAIL = IVFAIL + 1 IVCORR = 3 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5491 CONTINUE IVTNUM = 549 C C **** TEST 549 **** C IF (ICZERO) 35490, 5490, 35490 5490 CONTINUE IVON02 = -25 IVCOMP = 3579/IVON02 GO TO 45490 35490 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45490, 5501, 45490 45490 IF (IVCOMP + 143) 25490,15490,25490 15490 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5501 25490 IVFAIL = IVFAIL + 1 IVCORR = -143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5501 CONTINUE IVTNUM = 550 C C **** TEST 550 **** C IF (ICZERO) 35500, 5500, 35500 5500 CONTINUE IVON02 = -143 IVCOMP = (-3575)/IVON02 GO TO 45500 35500 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45500, 5511, 45500 45500 IF (IVCOMP - 25) 25500,15500,25500 15500 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5511 25500 IVFAIL = IVFAIL + 1 IVCORR = 25 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5511 CONTINUE IVTNUM = 551 C C **** TEST 551 **** C IF (ICZERO) 35510, 5510, 35510 5510 CONTINUE IVON02 = 120 IVCOMP = -959/IVON02 GO TO 45510 35510 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45510, 5521, 45510 45510 IF (IVCOMP + 7) 25510,15510,25510 15510 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5521 25510 IVFAIL = IVFAIL + 1 IVCORR = -7 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C **** END OF TESTS **** 5521 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 FM038) END