C COMMENT SECTION C C FM040 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 VARIABLES AND AN INTEGER CONSTANT. BOTH C POSITIVE AND NEGATIVE VALUES ARE USED FOR THE INTEGER VARIABLES C AND THE INTEGER CONSTANT. C C THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT AND C TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED IN C 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 VARIABLE/INTEGER VARIABLE C (2) INTEGER VARIABLE/INTEGER VARIABLE/INTEGER CONSTANT C INTEGER VARIABLE/INTEGER CONSTANT/INTEGER VARIABLE C INTEGER CONSTANT/INTEGER VARIABLE/INTEGER VARIABLE C (3) SAME AS (2) BUT WITH PARENTHESES TO GROUP ELEMENTS C IN THE ARITHMETIC EXPRESSION. 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 582 THROUGH TEST 597 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS C OF THE FORM INTEGER VARIABLE=INTEGER VARIABLE/INTEGER VAR. C C TEST 582 THROUGH TEST 585 - POSITIVE VALUES C NO TRUNCATION REQUIRED C 5821 CONTINUE IVTNUM = 582 C C **** TEST 582 **** C IF (ICZERO) 35820, 5820, 35820 5820 CONTINUE IVON01 = 4 IVON02 = 2 IVCOMP = IVON01 / IVON02 GO TO 45820 35820 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45820, 5831, 45820 45820 IF (IVCOMP -2) 25820,15820,25820 15820 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5831 25820 IVFAIL = IVFAIL + 1 IVCORR = 2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5831 CONTINUE IVTNUM = 583 C C **** TEST 583 **** C IF (ICZERO) 35830, 5830, 35830 5830 CONTINUE IVON01 = 3575 IVON02 = 25 IVCOMP = IVON01/IVON02 GO TO 45830 35830 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45830, 5841, 45830 45830 IF (IVCOMP - 143) 25830,15830,25830 15830 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5841 25830 IVFAIL = IVFAIL + 1 IVCORR = 143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5841 CONTINUE IVTNUM = 584 C C **** TEST 584 **** C IF (ICZERO) 35840, 5840, 35840 5840 CONTINUE IVON01 = 6170 IVON02 = 1234 IVCOMP = IVON01/IVON02 GO TO 45840 35840 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45840, 5851, 45840 45840 IF (IVCOMP - 5) 25840,15840,25840 15840 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5851 25840 IVFAIL = IVFAIL + 1 IVCORR = 5 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5851 CONTINUE IVTNUM = 585 C C **** TEST 585 **** C IF (ICZERO) 35850, 5850, 35850 5850 CONTINUE IVON01 = 32767 IVON02 = 1 IVCOMP = IVON01/IVON02 GO TO 45850 35850 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45850, 5861, 45850 45850 IF (IVCOMP - 32767) 25850,15850,25850 15850 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5861 25850 IVFAIL = IVFAIL + 1 IVCORR = 32767 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 586 THROUGH TEST 589 - POSITIVE VALUES C TRUNCATION OF RESULT REQUIRED C 5861 CONTINUE IVTNUM = 586 C C **** TEST 586 **** C IF (ICZERO) 35860, 5860, 35860 5860 CONTINUE IVON01 = 2 IVON02 = 3 IVCOMP = IVON01/IVON02 GO TO 45860 35860 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45860, 5871, 45860 45860 IF (IVCOMP) 25860,15860,25860 15860 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5871 25860 IVFAIL = IVFAIL + 1 IVCORR = 0 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5871 CONTINUE IVTNUM = 587 C C **** TEST 587 **** C IF (ICZERO) 35870, 5870, 35870 5870 CONTINUE IVON01 = 959 IVON02 = 120 IVCOMP = IVON01/IVON02 GO TO 45870 35870 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45870, 5881, 45870 45870 IF (IVCOMP - 7) 25870,15870,25870 15870 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5881 25870 IVFAIL = IVFAIL + 1 IVCORR = 7 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5881 CONTINUE IVTNUM = 588 C C **** TEST 588 **** C IF (ICZERO) 35880, 5880, 35880 5880 CONTINUE IVON01 = 26606 IVON02 = 8 IVCOMP = IVON01/IVON02 GO TO 45880 35880 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45880, 5891, 45880 45880 IF (IVCOMP - 3325) 25880,15880,25880 15880 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5891 25880 IVFAIL = IVFAIL + 1 IVCORR = 3325 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5891 CONTINUE IVTNUM = 589 C C **** TEST 589 **** C IF (ICZERO) 35890, 5890, 35890 5890 CONTINUE IVON01 = 25603 IVON02 = 10354 IVCOMP = IVON01/IVON02 GO TO 45890 35890 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45890, 5901, 45890 45890 IF (IVCOMP - 2) 25890,15890,25890 15890 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5901 25890 IVFAIL = IVFAIL + 1 IVCORR = 2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 590 THROUGH TEST 593 - NEGATIVE VALUES INCLUDED C NO TRUNCATION REQUIRED C 5901 CONTINUE IVTNUM = 590 C C **** TEST 590 **** C IF (ICZERO) 35900, 5900, 35900 5900 CONTINUE IVON01 = 75 IVON02 = -25 IVCOMP = IVON01/IVON02 GO TO 45900 35900 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45900, 5911, 45900 45900 IF (IVCOMP + 3) 25900,15900,25900 15900 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5911 25900 IVFAIL = IVFAIL + 1 IVCORR = -3 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5911 CONTINUE IVTNUM = 591 C C **** TEST 591 **** C IF (ICZERO) 35910, 5910, 35910 5910 CONTINUE IVON01 = -6170 IVON02 = -1234 IVCOMP = IVON01/IVON02 GO TO 45910 35910 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45910, 5921, 45910 45910 IF (IVCOMP -5) 25910,15910,25910 15910 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5921 25910 IVFAIL = IVFAIL + 1 IVCORR = 5 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5921 CONTINUE IVTNUM = 592 C C **** TEST 592 **** C IF (ICZERO) 35920, 5920, 35920 5920 CONTINUE IVON01 = 32766 IVON02 = -2 IVCOMP =-IVON01/IVON02 GO TO 45920 35920 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45920, 5931, 45920 45920 IF (IVCOMP - 16383) 25920,15920,25920 15920 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5931 25920 IVFAIL = IVFAIL + 1 IVCORR = 16383 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5931 CONTINUE IVTNUM = 593 C C **** TEST 593 **** C IF (ICZERO) 35930, 5930, 35930 5930 CONTINUE IVON01 = 4 IVON02 = 2 IVCOMP = IVON01/(-IVON02) GO TO 45930 35930 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45930, 5941, 45930 45930 IF (IVCOMP + 2) 25930,15930,25930 15930 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5941 25930 IVFAIL = IVFAIL + 1 IVCORR = -2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 594 THROUGH TEST 597 - NEGATIVE VALUES INCLUDED C TRUNCATION OF RESULT REQUIRED C 5941 CONTINUE IVTNUM = 594 C C **** TEST 594 **** C IF (ICZERO) 35940, 5940, 35940 5940 CONTINUE IVON01 = -5 IVON02 = 2 IVCOMP = IVON01/IVON02 GO TO 45940 35940 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45940, 5951, 45940 45940 IF (IVCOMP + 2) 25940,15940,25940 15940 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5951 25940 IVFAIL = IVFAIL + 1 IVCORR = -2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5951 CONTINUE IVTNUM = 595 C C **** TEST 595 **** C IF (ICZERO) 35950, 5950, 35950 5950 CONTINUE IVON01 = -25603 IVON02 = -10354 IVCOMP = IVON01/IVON02 GO TO 45950 35950 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45950, 5961, 45950 45950 IF (IVCOMP -2) 25950,15950,25950 15950 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5961 25950 IVFAIL = IVFAIL + 1 IVCORR =2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5961 CONTINUE IVTNUM = 596 C C **** TEST 596 **** C IF (ICZERO) 35960, 5960, 35960 5960 CONTINUE IVON01 = 25603 IVON02 = 10354 IVCOMP = -IVON01/IVON02 GO TO 45960 35960 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45960, 5971, 45960 45960 IF (IVCOMP +2) 25960,15960,25960 15960 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5971 25960 IVFAIL = IVFAIL + 1 IVCORR = -2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5971 CONTINUE IVTNUM = 597 C C **** TEST 597 **** C IF (ICZERO) 35970, 5970, 35970 5970 CONTINUE IVON01 = 25603 IVON02 = -2 IVCOMP = -(IVON01/IVON02) GO TO 45970 35970 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45970, 5981, 45970 45970 IF (IVCOMP - 12801) 25970,15970,25970 15970 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5981 25970 IVFAIL = IVFAIL + 1 IVCORR = 12801 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 598 THROUGH TEST 614 CONTAIN TWO INTEGER VARIABLES, AN C INTEGER CONSTANT AND OPERATOR / IN AN ARITHMETIC EXPRESSION. C C TEST 598 THROUGH TEST 603 - NO PARENS TO GROUP ELEMENTS BUT C THERE ARE PARENS SURROUNDING NEGATIVE CONSTANTS C C TEST 598 AND TEST 599 - IV = IV/IV/IC. C 5981 CONTINUE IVTNUM = 598 C C **** TEST 598 **** C IF (ICZERO) 35980, 5980, 35980 5980 CONTINUE IVON01 = 32766 IVON02 = 2 IVCOMP = IVON01/IVON02/3 GO TO 45980 35980 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45980, 5991, 45980 45980 IF (IVCOMP - 5461) 25980,15980,25980 15980 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5991 25980 IVFAIL = IVFAIL + 1 IVCORR = 5461 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5991 CONTINUE IVTNUM = 599 C C **** TEST 599 **** C IF (ICZERO) 35990, 5990, 35990 5990 CONTINUE IVON01 = 7151 IVON02 = 3 IVCOMP = IVON01/IVON02/10 GO TO 45990 35990 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45990, 6001, 45990 45990 IF (IVCOMP -238) 25990,15990,25990 15990 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6001 25990 IVFAIL = IVFAIL + 1 IVCORR = 238 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 600 AND TEST 601 - IV= IV/IC/IV. C 6001 CONTINUE IVTNUM = 600 C C **** TEST 600 **** C IF (ICZERO) 36000, 6000, 36000 6000 CONTINUE IVON01 = -7150 IVON03 = -25 IVCOMP = IVON01/(-2)/IVON03 GO TO 46000 36000 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46000, 6011, 46000 46000 IF (IVCOMP + 143) 26000,16000,26000 16000 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6011 26000 IVFAIL = IVFAIL + 1 IVCORR = -143 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 6011 CONTINUE IVTNUM = 601 C C **** TEST 601 **** C IF (ICZERO) 36010, 6010, 36010 6010 CONTINUE IVON01 = 32767 IVON03 = -1 IVCOMP = IVON01/2/IVON03 GO TO 46010 36010 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46010, 6021, 46010 46010 IF (IVCOMP + 16383) 26010,16010,26010 16010 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6021 26010 IVFAIL = IVFAIL + 1 IVCORR = -16383 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 6021 CONTINUE IVTNUM = 602 C C **** TEST 602 **** C C TEST 602 AND TEST 603 - IV=IC/IV/IV C C IF (ICZERO) 36020, 6020, 36020 6020 CONTINUE IVON02 = 13 IVON03 = 51 IVCOMP = 15249/IVON02/IVON03 GO TO 46020 36020 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46020, 6031, 46020 46020 IF (IVCOMP - 23) 26020,16020,26020 16020 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6031 26020 IVFAIL = IVFAIL + 1 IVCORR = 23 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 6031 CONTINUE IVTNUM = 603 C C **** TEST 603 **** C IF (ICZERO) 36030, 6030, 36030 6030 CONTINUE IVON02 = -13 IVON03 = -51 IVCOMP = -15249/IVON02/IVON03 GO TO 46030 36030 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46030, 6041, 46030 46030 IF (IVCOMP +23) 26030,16030,26030 16030 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6041 26030 IVFAIL = IVFAIL + 1 IVCORR = -23 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 604 THROUGH TEST 614 - PARENTHESES ARE USED TO GROUP C ELEMENTS IN THE ARITHMETIC EXPRESSIONS. C C TEST 604 AND TEST 605 - IV=(IV/IV)/IC. C 6041 CONTINUE IVTNUM = 604 C C **** TEST 604 **** C IF (ICZERO) 36040, 6040, 36040 6040 CONTINUE IVON01 = 32766 IVON02 = 2 IVCOMP =(IVON01/IVON02)/3 GO TO 46040 36040 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46040, 6051, 46040 46040 IF (IVCOMP -5461) 26040,16040,26040 16040 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6051 26040 IVFAIL = IVFAIL + 1 IVCORR = 5461 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 6051 CONTINUE IVTNUM = 605 C C **** TEST 605 **** C IF (ICZERO) 36050, 6050, 36050 6050 CONTINUE IVON01 = 7151 IVON02 = 3 IVCOMP = (IVON01/IVON02)/10 GO TO 46050 36050 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46050, 6061, 46050 46050 IF (IVCOMP - 238) 26050,16050,26050 16050 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6061 26050 IVFAIL = IVFAIL + 1 IVCORR = 238 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 606 AND TEST 607 - IV=IV/(IV/IC). C 6061 CONTINUE IVTNUM = 606 C C **** TEST 606 **** C IF (ICZERO) 36060, 6060, 36060 6060 CONTINUE IVON01 = -7154 IVON02 = 26 IVCOMP = IVON01/(IVON02/5) GO TO 46060 36060 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46060, 6071, 46060 46060 IF (IVCOMP + 1430) 26060,16060,26060 16060 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6071 26060 IVFAIL = IVFAIL + 1 IVCORR = -1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 6071 CONTINUE IVTNUM = 607 C C **** TEST 607 **** C IF (ICZERO) 36070, 6070, 36070 6070 CONTINUE IVON01 = 29 IVON02 = -5 IVCOMP = IVON01/(IVON02/2) GO TO 46070 36070 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46070, 6081, 46070 46070 IF (IVCOMP + 14) 26070,16070,26070 16070 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6081 26070 IVFAIL = IVFAIL + 1 IVCORR = -14 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 608 AND TEST 609 - IV = (IV/IC)/IV. C 6081 CONTINUE IVTNUM = 608 C C **** TEST 608 **** C IF (ICZERO) 36080, 6080, 36080 6080 CONTINUE IVON01 = 24 IVON03 = 3 IVCOMP = (IVON01/3)/IVON03 GO TO 46080 36080 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46080, 6091, 46080 46080 IF (IVCOMP -2) 26080,16080,26080 16080 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6091 26080 IVFAIL = IVFAIL + 1 IVCORR = 2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 6091 CONTINUE IVTNUM = 609 C C **** TEST 609 **** C IF (ICZERO) 36090, 6090, 36090 6090 CONTINUE IVON01 = 7151 IVON03 = 10 IVCOMP = (IVON01/(-3))/IVON03 GO TO 46090 36090 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46090, 6101, 46090 46090 IF (IVCOMP + 238) 26090,16090,26090 16090 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6101 26090 IVFAIL = IVFAIL + 1 IVCORR = -238 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 610 AND TEST 611 - IV=IV(IC/IV) C 6101 CONTINUE IVTNUM = 610 C C **** TEST 610 **** C IF (ICZERO) 36100, 6100, 36100 6100 CONTINUE IVON01 = -7154 IVON03 = -5 IVCOMP = IVON01/((-26)/IVON03) GO TO 46100 36100 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46100, 6111, 46100 46100 IF (IVCOMP + 1430) 26100,16100,26100 16100 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6111 26100 IVFAIL = IVFAIL + 1 IVCORR = -1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 6111 CONTINUE IVTNUM = 611 C C **** TEST 611 **** C IF (ICZERO) 36110, 6110, 36110 6110 CONTINUE IVON01 = 7150 IVON03 = 5 IVCOMP = IVON01/((+25)/IVON03) GO TO 46110 36110 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46110, 6121, 46110 46110 IF (IVCOMP -1430) 26110,16110,26110 16110 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6121 26110 IVFAIL = IVFAIL + 1 IVCORR = 1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 6121 CONTINUE IVTNUM = 612 C C **** TEST 612 **** C TEST 612 - IV= (IC/IV)/IV C IF (ICZERO) 36120, 6120, 36120 6120 CONTINUE IVON02 = -3 IVON03 = -10 IVCOMP = (-7154/IVON02)/IVON03 GO TO 46120 36120 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46120, 6131, 46120 46120 IF (IVCOMP + 238) 26120,16120,26120 16120 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6131 26120 IVFAIL = IVFAIL + 1 IVCORR = -238 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 613 AND TEST 614 - IV=IC/(IV/IV) C 6131 CONTINUE IVTNUM = 613 C C **** TEST 613 **** C IF (ICZERO) 36130, 6130, 36130 6130 CONTINUE IVON02 = 8 IVON03 = 4 IVCOMP = 24/(IVON02/IVON03) GO TO 46130 36130 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46130, 6141, 46130 46130 IF (IVCOMP - 12) 26130,16130,26130 16130 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6141 26130 IVFAIL = IVFAIL + 1 IVCORR = 12 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 6141 CONTINUE IVTNUM = 614 C C **** TEST 614 **** C IF (ICZERO) 36140, 6140, 36140 6140 CONTINUE IVON02 = 25 IVON03 = 5 IVCOMP = 7150/(-(IVON02/IVON03)) GO TO 46140 36140 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 46140, 6151, 46140 46140 IF (IVCOMP + 1430) 26140,16140,26140 16140 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 6151 26140 IVFAIL = IVFAIL + 1 IVCORR = -1430 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C **** END OF TESTS **** 6151 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 FM040) END