C COMMENT SECTION C C FM033 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 * AND INTEGER CONSTANTS. SOME OF THE TESTS USE PARENS C TO GROUP ELEMENTS IN THE EXPRESSION AND TO ALLOW THE USE OF C NEGATIVE CONSTANTS FOLLOWING THE * OPERATOR. C C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS C (1) INTEGER CONSTANT * INTEGER CONSTANT C (2) INTEGER CONSTANT * INTEGER CONSTANT * 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 360 THROUGH TEST 376 CONTAIN TWO INTEGER CONSTANTS AND C OPERATOR * IN AN ARITHMETIC EXPRESSION. C IV = IC * IC C C TEST 360 THROUGH TEST 365 - INTEGER CONSTANTS ARE POSITIVE C 3601 CONTINUE IVTNUM = 360 C C **** TEST 360 **** C IF (ICZERO) 33600, 3600, 33600 3600 CONTINUE IVCOMP = 2 * 3 GO TO 43600 33600 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43600, 3611, 43600 43600 IF (IVCOMP - 6) 23600,13600,23600 13600 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3611 23600 IVFAIL = IVFAIL + 1 IVCORR=6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3611 CONTINUE IVTNUM = 361 C C **** TEST 361 **** C IF (ICZERO) 33610, 3610, 33610 3610 CONTINUE IVCOMP = 3*2 GO TO 43610 33610 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43610, 3621, 43610 43610 IF (IVCOMP-6) 23610,13610,23610 13610 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3621 23610 IVFAIL = IVFAIL + 1 IVCORR=6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3621 CONTINUE IVTNUM = 362 C C **** TEST 362 **** C IF (ICZERO) 33620, 3620, 33620 3620 CONTINUE IVCOMP=13*11 GO TO 43620 33620 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43620, 3631, 43620 43620 IF (IVCOMP-143) 23620,13620,23620 13620 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3631 23620 IVFAIL = IVFAIL + 1 IVCORR=143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3631 CONTINUE IVTNUM = 363 C C **** TEST 363 **** C IF (ICZERO) 33630, 3630, 33630 3630 CONTINUE IVCOMP = 223*99 GO TO 43630 33630 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43630, 3641, 43630 43630 IF (IVCOMP-22077) 23630,13630,23630 13630 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3641 23630 IVFAIL = IVFAIL + 1 IVCORR=22077 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3641 CONTINUE IVTNUM = 364 C C **** TEST 364 **** C IF (ICZERO) 33640, 3640, 33640 3640 CONTINUE IVCOMP=11235*2 GO TO 43640 33640 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43640, 3651, 43640 43640 IF (IVCOMP-22470) 23640,13640,23640 13640 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3651 23640 IVFAIL = IVFAIL + 1 IVCORR=22470 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3651 CONTINUE IVTNUM = 365 C C **** TEST 365 **** C IF (ICZERO) 33650, 3650, 33650 3650 CONTINUE IVCOMP = 2*16383 GO TO 43650 33650 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43650, 3661, 43650 43650 IF (IVCOMP-32766) 23650,13650,23650 13650 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3661 23650 IVFAIL = IVFAIL + 1 IVCORR = 32766 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 366 THROUGH TEST 371 C ONE POSITIVE AND ONE NEGATIVE CONSTANT C 3661 CONTINUE IVTNUM = 366 C C **** TEST 366 **** C IF (ICZERO) 33660, 3660, 33660 3660 CONTINUE IVCOMP =2*(-3) GO TO 43660 33660 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43660, 3671, 43660 43660 IF (IVCOMP+6) 23660,13660,23660 13660 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3671 23660 IVFAIL = IVFAIL + 1 IVCORR = -6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3671 CONTINUE IVTNUM = 367 C C **** TEST 367 **** C IF (ICZERO) 33670, 3670, 33670 3670 CONTINUE IVCOMP=(-2)*3 GO TO 43670 33670 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43670, 3681, 43670 43670 IF (IVCOMP+6)23670,13670,23670 13670 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3681 23670 IVFAIL = IVFAIL + 1 IVCORR =-6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3681 CONTINUE IVTNUM = 368 C C **** TEST 368 **** C IF (ICZERO) 33680, 3680, 33680 3680 CONTINUE IVCOMP= -2*3 GO TO 43680 33680 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43680, 3691, 43680 43680 IF (IVCOMP +6) 23680,13680,23680 13680 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3691 23680 IVFAIL = IVFAIL + 1 IVCORR=-6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3691 CONTINUE IVTNUM = 369 C C **** TEST 369 **** C IF (ICZERO) 33690, 3690, 33690 3690 CONTINUE IVCOMP = (-13)*11 GO TO 43690 33690 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43690, 3701, 43690 43690 IF (IVCOMP+143) 23690,13690,23690 13690 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3701 23690 IVFAIL = IVFAIL + 1 IVCORR=-143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3701 CONTINUE IVTNUM = 370 C C **** TEST 370 **** C IF (ICZERO) 33700, 3700, 33700 3700 CONTINUE IVCOMP = 223 * (-99) GO TO 43700 33700 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43700, 3711, 43700 43700 IF (IVCOMP + 22077) 23700,13700,23700 13700 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3711 23700 IVFAIL = IVFAIL + 1 IVCORR =-22077 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3711 CONTINUE IVTNUM = 371 C C **** TEST 371 **** C IF (ICZERO) 33710, 3710, 33710 3710 CONTINUE IVCOMP= -2 * 16383 GO TO 43710 33710 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43710, 3721, 43710 43710 IF (IVCOMP+32766) 23710,13710,23710 13710 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3721 23710 IVFAIL = IVFAIL + 1 IVCORR= -32766 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 372 THROUGH TEST 376 - TWO NEGATIVE CONSTANTS C 3721 CONTINUE IVTNUM = 372 C C **** TEST 372 **** C IF (ICZERO) 33720, 3720, 33720 3720 CONTINUE IVCOMP=(-2)*(-3) GO TO 43720 33720 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43720, 3731, 43720 43720 IF (IVCOMP-6) 23720,13720,23720 13720 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3731 23720 IVFAIL = IVFAIL + 1 IVCORR=6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3731 CONTINUE IVTNUM = 373 C C **** TEST 373 **** C IF (ICZERO) 33730, 3730, 33730 3730 CONTINUE IVCOMP = -2*(-3) GO TO 43730 33730 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43730, 3741, 43730 43730 IF (IVCOMP-6) 23730,13730,23730 13730 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3741 23730 IVFAIL = IVFAIL + 1 IVCORR=6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3741 CONTINUE IVTNUM = 374 C C **** TEST 374 **** C IF (ICZERO) 33740, 3740, 33740 3740 CONTINUE IVCOMP=(-13)*(-11) GO TO 43740 33740 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43740, 3751, 43740 43740 IF (IVCOMP-143) 23740,13740,23740 13740 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3751 23740 IVFAIL = IVFAIL + 1 IVCORR = 143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3751 CONTINUE IVTNUM = 375 C C **** TEST 375 **** C IF (ICZERO) 33750, 3750, 33750 3750 CONTINUE IVCOMP= -223 *(-99) GO TO 43750 33750 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43750, 3761, 43750 43750 IF (IVCOMP - 22077) 23750,13750,23750 13750 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3761 23750 IVFAIL = IVFAIL + 1 IVCORR = 22077 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3761 CONTINUE IVTNUM = 376 C C **** TEST 376 **** C IF (ICZERO) 33760, 3760, 33760 3760 CONTINUE IVCOMP = (-16383)*(-2) GO TO 43760 33760 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43760, 3771, 43760 43760 IF (IVCOMP - 32766) 23760,13760,23760 13760 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3771 23760 IVFAIL = IVFAIL + 1 IVCORR =32766 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 377 THROUGH TEST 394 CONTAIN THREE INTEGER CONSTANTS AND C OPERATOR * IN AN ARITHMETIC EXPRESSION. C IV = IC * IC * IC C C TEST 377 THROUGH TEST 382 - CONSTANTS ARE POSITIVE C 3771 CONTINUE IVTNUM = 377 C C **** TEST 377 **** C IF (ICZERO) 33770, 3770, 33770 3770 CONTINUE IVCOMP =2*3*4 GO TO 43770 33770 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43770, 3781, 43770 43770 IF (IVCOMP-24) 23770,13770,23770 13770 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3781 23770 IVFAIL = IVFAIL + 1 IVCORR = 24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3781 CONTINUE IVTNUM = 378 C C **** TEST 378 **** C IF (ICZERO) 33780, 3780, 33780 3780 CONTINUE IVCOMP = 2*3*55 GO TO 43780 33780 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43780, 3791, 43780 43780 IF (IVCOMP-330) 23780,13780,23780 13780 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3791 23780 IVFAIL = IVFAIL + 1 IVCORR = 330 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3791 CONTINUE IVTNUM = 379 C C **** TEST 379 **** C IF (ICZERO) 33790, 3790, 33790 3790 CONTINUE IVCOMP = 23*51*13 GO TO 43790 33790 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43790, 3801, 43790 43790 IF (IVCOMP-15249) 23790,13790,23790 13790 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3801 23790 IVFAIL = IVFAIL + 1 IVCORR = 15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3801 CONTINUE IVTNUM = 380 C C **** TEST 380 **** C IF (ICZERO) 33800, 3800, 33800 3800 CONTINUE IVCOMP = 3* 5461* 2 GO TO 43800 33800 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43800, 3811, 43800 43800 IF (IVCOMP - 32766) 23800,13800,23800 13800 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3811 23800 IVFAIL = IVFAIL + 1 IVCORR = 32766 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3811 CONTINUE IVTNUM = 381 C C **** TEST 381 **** C IF (ICZERO) 33810, 3810, 33810 3810 CONTINUE IVCOMP = 16383*2*1 GO TO 43810 33810 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43810, 3821, 43810 43810 IF (IVCOMP-32766) 23810,13810,23810 13810 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3821 23810 IVFAIL = IVFAIL + 1 IVCORR = 32766 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3821 CONTINUE IVTNUM = 382 C C **** TEST 382 **** C IF (ICZERO) 33820, 3820, 33820 3820 CONTINUE IVCOMP = 3*53*157 GO TO 43820 33820 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43820, 3831, 43820 43820 IF (IVCOMP-24963) 23820,13820,23820 13820 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3831 23820 IVFAIL = IVFAIL + 1 IVCORR = 24963 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 383 THROUGH TEST 386 C THREE POSITIVE INTEGER CONSTANTS GROUPED WITH PARENS. C 3831 CONTINUE IVTNUM = 383 C C **** TEST 383 **** C IF (ICZERO) 33830, 3830, 33830 3830 CONTINUE IVCOMP = (2*3)*4 GO TO 43830 33830 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43830, 3841, 43830 43830 IF (IVCOMP-24) 23830,13830,23830 13830 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3841 23830 IVFAIL = IVFAIL + 1 IVCORR = 24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3841 CONTINUE IVTNUM = 384 C C **** TEST 384 **** C IF (ICZERO) 33840, 3840, 33840 3840 CONTINUE IVCOMP = 2*(3*4) GO TO 43840 33840 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43840, 3851, 43840 43840 IF (IVCOMP-24) 23840,13840,23840 13840 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3851 23840 IVFAIL = IVFAIL + 1 IVCORR = 24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3851 CONTINUE IVTNUM = 385 C C **** TEST 385 **** C IF (ICZERO) 33850, 3850, 33850 3850 CONTINUE IVCOMP = (3*(+53)) * (+157) GO TO 43850 33850 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43850, 3861, 43850 43850 IF (IVCOMP-24963) 23850,13850,23850 13850 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3861 23850 IVFAIL = IVFAIL + 1 IVCORR = 24963 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3861 CONTINUE IVTNUM = 386 C C **** TEST 386 **** C IF (ICZERO) 33860, 3860, 33860 3860 CONTINUE IVCOMP = 3 *((+53)*157) GO TO 43860 33860 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43860, 3871, 43860 43860 IF (IVCOMP-24963) 23860,13860,23860 13860 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3871 23860 IVFAIL = IVFAIL + 1 IVCORR=24963 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 387 THROUGH TEST 391 C BOTH POSITIVE AND NEGATIVE CONSTANTS IN ARITHMETIC EXPRESSION. C 3871 CONTINUE IVTNUM = 387 C C **** TEST 387 **** C IF (ICZERO) 33870, 3870, 33870 3870 CONTINUE IVCOMP = 2*3*(-4) GO TO 43870 33870 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43870, 3881, 43870 43870 IF (IVCOMP + 24) 23870,13870,23870 13870 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3881 23870 IVFAIL = IVFAIL + 1 IVCORR = -24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3881 CONTINUE IVTNUM = 388 C C **** TEST 388 **** C IF (ICZERO) 33880, 3880, 33880 3880 CONTINUE IVCOMP = 2*(-3)*(+4) GO TO 43880 33880 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43880, 3891, 43880 43880 IF (IVCOMP + 24) 23880,13880,23880 13880 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3891 23880 IVFAIL = IVFAIL + 1 IVCORR = -24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3891 CONTINUE IVTNUM = 389 C C **** TEST 389 **** C IF (ICZERO) 33890, 3890, 33890 3890 CONTINUE IVCOMP = (-2)*3*4 GO TO 43890 33890 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43890, 3901, 43890 43890 IF (IVCOMP+24) 23890,13890,23890 13890 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3901 23890 IVFAIL = IVFAIL + 1 IVCORR = -24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3901 CONTINUE IVTNUM = 390 C C **** TEST 390 **** C IF (ICZERO) 33900, 3900, 33900 3900 CONTINUE IVCOMP = -2*3*4 GO TO 43900 33900 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43900, 3911, 43900 43900 IF (IVCOMP+24) 23900,13900,23900 13900 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3911 23900 IVFAIL = IVFAIL + 1 IVCORR = -24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3911 CONTINUE IVTNUM = 391 C C **** TEST 391 **** C IF (ICZERO) 33910, 3910, 33910 3910 CONTINUE IVCOMP = +2 * (-3) * (-4) GO TO 43910 33910 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43910, 3921, 43910 43910 IF (IVCOMP - 24) 23910,13910,23910 13910 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3921 23910 IVFAIL = IVFAIL + 1 IVCORR = 24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 392 THROUGH TEST 394 C ALL CONSTANTS ARE NEGATIVE. C 3921 CONTINUE IVTNUM = 392 C C **** TEST 392 **** C IF (ICZERO) 33920, 3920, 33920 3920 CONTINUE IVCOMP = (-2)*(-3)*(-4) GO TO 43920 33920 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43920, 3931, 43920 43920 IF (IVCOMP+24) 23920,13920,23920 13920 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3931 23920 IVFAIL = IVFAIL + 1 IVCORR = -24 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3931 CONTINUE IVTNUM = 393 C C **** TEST 393 **** C IF (ICZERO) 33930, 3930, 33930 3930 CONTINUE IVCOMP = (-23)*(-51)*(-13) GO TO 43930 33930 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43930, 3941, 43930 43930 IF (IVCOMP + 15249) 23930,13930,23930 13930 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3941 23930 IVFAIL = IVFAIL + 1 IVCORR = -15249 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3941 CONTINUE IVTNUM = 394 C C **** TEST 394 **** C IF (ICZERO) 33940, 3940, 33940 3940 CONTINUE IVCOMP = -3 * (-53)*( -157) GO TO 43940 33940 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43940, 3951, 43940 43940 IF (IVCOMP +24963) 23940,13940,23940 13940 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3951 23940 IVFAIL = IVFAIL + 1 IVCORR = -24963 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C **** END OF TESTS **** 3951 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 FM033) END