C COMMENT SECTION. C C FM030 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 CONSTANTS AND INTEGER VARIABLES. C SOME OF THE TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE C ARITHMETIC EXPRESSION. 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 PARENTHESES TO GROUP ELEMENTS C (4) INTEGER VARIABLE - INTEGER CONSTANT C 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 10.1, ARITHMETIC ASSIGNMENT STATEMENT C 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 TEST SECTION C C ARITHMETIC ASSIGNMENT STATEMENT C C TEST 265 THROUGH TEST 270 CONTAIN TWO INTEGER CONSTANTS AND C OPERATOR - IN AN ARITHMETIC EXPRESSION. THE FORM TESTED IS C INTEGER VARIABLE = INTEGER CONSTANT - INTEGER CONSTANT C 2651 CONTINUE IVTNUM = 265 C C **** TEST 265 **** C IF (ICZERO) 32650, 2650, 32650 2650 CONTINUE IVCOMP = 3-2 GO TO 42650 32650 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42650, 2661, 42650 42650 IF (IVCOMP - 1) 22650,12650,22650 12650 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2661 22650 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2661 CONTINUE IVTNUM = 266 C C **** TEST 266 **** C IF (ICZERO) 32660, 2660, 32660 2660 CONTINUE IVCOMP = 51 - 52 GO TO 42660 32660 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42660, 2671, 42660 42660 IF (IVCOMP +1) 22660,12660,22660 12660 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2671 22660 IVFAIL = IVFAIL + 1 IVCORR = -1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2671 CONTINUE IVTNUM = 267 C C **** TEST 267 *** C IF (ICZERO) 32670, 2670, 32670 2670 CONTINUE IVCOMP = 865 - 189 GO TO 42670 32670 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42670, 2681, 42670 42670 IF (IVCOMP -676) 22670,12670,22670 12670 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2681 22670 IVFAIL = IVFAIL + 1 IVCORR = 676 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2681 CONTINUE IVTNUM = 268 C C **** TEST 268 **** C IF (ICZERO) 32680, 2680, 32680 2680 CONTINUE IVCOMP =1358-9359 GO TO 42680 32680 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42680, 2691, 42680 42680 IF (IVCOMP+8001) 22680,12680,22680 12680 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2691 22680 IVFAIL = IVFAIL + 1 IVCORR = -8001 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2691 CONTINUE IVTNUM = 269 C C **** TEST 269 **** C IF (ICZERO) 32690, 2690, 32690 2690 CONTINUE IVCOMP =21113-10001 GO TO 42690 32690 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42690, 2701, 42690 42690 IF (IVCOMP-11112) 22690,12690,22690 12690 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2701 22690 IVFAIL = IVFAIL + 1 IVCORR=11112 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2701 CONTINUE IVTNUM = 270 C C **** TEST 270 **** C IF (ICZERO) 32700, 2700, 32700 2700 CONTINUE IVCOMP = 32767-1 GO TO 42700 32700 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42700, 2711, 42700 42700 IF (IVCOMP -32766) 22700,12700,22700 12700 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2711 22700 IVFAIL = IVFAIL + 1 IVCORR = 32766 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 271 THROUGH TEST 274 CONTAIN THREE INTEGER CONSTANTS C AND OPERATOR - IN AN ARITHMETIC EXPRESSION. THE FORM TESTED IS C IV = IC - IC - IC C 2711 CONTINUE IVTNUM = 271 C C **** TEST 271 **** C IF (ICZERO) 32710, 2710, 32710 2710 CONTINUE IVCOMP=9-4-3 GO TO 42710 32710 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42710, 2721, 42710 42710 IF (IVCOMP -2) 22710,12710,22710 12710 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2721 22710 IVFAIL = IVFAIL + 1 IVCORR =2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2721 CONTINUE IVTNUM = 272 C C **** TEST 272 **** C IF (ICZERO) 32720, 2720, 32720 2720 CONTINUE IVCOMP = 51-52-53 GO TO 42720 32720 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42720, 2731, 42720 42720 IF (IVCOMP +54) 22720,12720,22720 12720 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2731 22720 IVFAIL = IVFAIL + 1 IVCORR = -54 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2731 CONTINUE IVTNUM = 273 C C **** TEST 273 **** C IF (ICZERO) 32730, 2730, 32730 2730 CONTINUE IVCOMP = 966 -676 -189 GO TO 42730 32730 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42730, 2741, 42730 42730 IF (IVCOMP -101) 22730,12730,22730 12730 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2741 22730 IVFAIL = IVFAIL + 1 IVCORR = 101 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2741 CONTINUE IVTNUM = 274 C C **** TEST 274 **** C IF (ICZERO) 32740, 2740, 32740 2740 CONTINUE IVCOMP = 1358-8001-2188 GO TO 42740 32740 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42740, 2751, 42740 42740 IF (IVCOMP + 8831) 22740,12740,22740 12740 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2751 22740 IVFAIL = IVFAIL + 1 IVCORR = -8831 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 275 THROUGH TEST 282 ARE THE SAME AS TESTS 271-274 EXCEPT C PARENTHESES ARE USED TO GROUP THE CONSTANTS. C 2751 CONTINUE IVTNUM = 275 C C **** TEST 275 **** C IF (ICZERO) 32750, 2750, 32750 2750 CONTINUE IVCOMP =(9-4)-3 GO TO 42750 32750 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42750, 2761, 42750 42750 IF (IVCOMP -2) 22750,12750,22750 12750 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2761 22750 IVFAIL = IVFAIL + 1 IVCORR = 2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2761 CONTINUE IVTNUM = 276 C C **** TEST 276 **** C IF (ICZERO) 32760, 2760, 32760 2760 CONTINUE IVCOMP =9-(4-3) GO TO 42760 32760 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42760, 2771, 42760 42760 IF (IVCOMP -8) 22760,12760,22760 12760 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2771 22760 IVFAIL = IVFAIL + 1 IVCORR =8 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2771 CONTINUE IVTNUM = 277 C C **** TEST 277 **** C IF (ICZERO) 32770, 2770, 32770 2770 CONTINUE IVCOMP =(51-52)-53 GO TO 42770 32770 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42770, 2781, 42770 42770 IF (IVCOMP +54) 22770,12770,22770 12770 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2781 22770 IVFAIL = IVFAIL + 1 IVCORR = -54 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2781 CONTINUE IVTNUM = 278 C C **** TEST 278 **** C IF (ICZERO) 32780, 2780, 32780 2780 CONTINUE IVCOMP=51-(52-53) GO TO 42780 32780 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42780, 2791, 42780 42780 IF (IVCOMP-52) 22780,12780,22780 12780 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2791 22780 IVFAIL = IVFAIL + 1 IVCORR = 52 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2791 CONTINUE IVTNUM = 279 C C **** TEST 279 **** C IF (ICZERO) 32790, 2790, 32790 2790 CONTINUE IVCOMP =(966-676)-189 GO TO 42790 32790 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42790, 2801, 42790 42790 IF (IVCOMP - 101) 22790,12790,22790 12790 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2801 22790 IVFAIL = IVFAIL + 1 IVCORR = 101 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2801 CONTINUE IVTNUM = 280 C C **** TEST 280 **** C IF (ICZERO) 32800, 2800, 32800 2800 CONTINUE IVCOMP =966-(676-189) GO TO 42800 32800 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42800, 2811, 42800 42800 IF (IVCOMP - 479) 22800,12800,22800 12800 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2811 22800 IVFAIL = IVFAIL + 1 IVCORR = 479 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2811 CONTINUE IVTNUM = 281 C C **** TEST 281 **** C IF (ICZERO) 32810, 2810, 32810 2810 CONTINUE IVCOMP = (1358-8001)-2188 GO TO 42810 32810 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42810, 2821, 42810 42810 IF (IVCOMP + 8831) 22810,12810,22810 12810 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2821 22810 IVFAIL = IVFAIL + 1 IVCORR = -8831 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2821 CONTINUE IVTNUM = 282 C C **** TEST 282 **** C IF (ICZERO) 32820, 2820, 32820 2820 CONTINUE IVCOMP = 1358-(8001-2188) GO TO 42820 32820 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42820, 2831, 42820 42820 IF (IVCOMP + 4455) 22820,12820,22820 12820 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2831 22820 IVFAIL = IVFAIL + 1 IVCORR = -4455 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 283 THROUGH TEST 299 CONTAIN INTEGER VARIABLE, INTEGER C CONSTANT AND OPERATOR - IN ARITHMETIC EXPRESSION. THE INTEGER C VARIABLE CONTAINS BOTH POSITIVE AND NEGATIVE VALUES. C THE FORMS TESTED ARE C INTEGER VARIABLE = INTEGER VARIABLE - INTEGER CONSTANT C INTEGER VARIABLE = INTEGER CONSTANT - INTEGER VARIABLE C 2831 CONTINUE IVTNUM = 283 C C **** TEST 283 **** C IF (ICZERO) 32830, 2830, 32830 2830 CONTINUE IVON01 = 3 IVCOMP = IVON01 - 2 GO TO 42830 32830 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42830, 2841, 42830 42830 IF (IVCOMP - 1) 22830,12830,22830 12830 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2841 22830 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2841 CONTINUE IVTNUM = 284 C C **** TEST 284 **** C IF (ICZERO) 32840, 2840, 32840 2840 CONTINUE IVON01 = 2 IVCOMP = IVON01 -3 GO TO 42840 32840 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42840, 2851, 42840 42840 IF (IVCOMP +1) 22840,12840,22840 12840 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2851 22840 IVFAIL = IVFAIL + 1 IVCORR = -1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2851 CONTINUE IVTNUM = 285 C C **** TEST 285 **** C IF (ICZERO) 32850, 2850, 32850 2850 CONTINUE IVON01 =-3 IVCOMP = IVON01 -2 GO TO 42850 32850 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42850, 2861, 42850 42850 IF (IVCOMP +5) 22850,12850,22850 12850 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2861 22850 IVFAIL = IVFAIL + 1 IVCORR =-5 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2861 CONTINUE IVTNUM = 286 C C **** TEST 286 **** C IF (ICZERO) 32860, 2860, 32860 2860 CONTINUE IVON02 =2 IVCOMP = 3 - IVON02 GO TO 42860 32860 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42860, 2871, 42860 42860 IF (IVCOMP -1) 22860,12860,22860 12860 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2871 22860 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2871 CONTINUE IVTNUM = 287 C C **** TEST 287 **** C IF (ICZERO) 32870, 2870, 32870 2870 CONTINUE IVON02 =3 IVCOMP = 2 -IVON02 GO TO 42870 32870 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42870, 2881, 42870 42870 IF (IVCOMP +1) 22870,12870,22870 12870 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2881 22870 IVFAIL = IVFAIL + 1 IVCORR =-1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2881 CONTINUE IVTNUM = 288 C C **** TEST 288 **** C IF (ICZERO) 32880, 2880, 32880 2880 CONTINUE IVON02 = -2 IVCOMP = 3 - IVON02 GO TO 42880 32880 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42880, 2891, 42880 42880 IF (IVCOMP -5) 22880,12880,22880 12880 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2891 22880 IVFAIL = IVFAIL + 1 IVCORR =5 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2891 CONTINUE IVTNUM = 289 C C **** TEST 289 **** C IF (ICZERO) 32890, 2890, 32890 2890 CONTINUE IVON01 =51 IVCOMP = IVON01 - 52 GO TO 42890 32890 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42890, 2901, 42890 42890 IF (IVCOMP + 1) 22890,12890,22890 12890 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2901 22890 IVFAIL = IVFAIL + 1 IVCORR = -1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2901 CONTINUE IVTNUM = 290 C C **** TEST 290 **** C IF (ICZERO) 32900, 2900, 32900 2900 CONTINUE IVON01 =51 IVCOMP = IVON01 -51 GO TO 42900 32900 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42900, 2911, 42900 42900 IF (IVCOMP) 22900,12900,22900 12900 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2911 22900 IVFAIL = IVFAIL + 1 IVCORR =0 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2911 CONTINUE IVTNUM = 291 C C **** TEST 291 **** C IF (ICZERO) 32910, 2910, 32910 2910 CONTINUE IVON01 =53 IVCOMP =IVON01 -52 GO TO 42910 32910 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42910, 2921, 42910 42910 IF (IVCOMP -1) 22910,12910,22910 12910 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2921 22910 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2921 CONTINUE IVTNUM = 292 C C **** TEST 292 **** C IF (ICZERO) 32920, 2920, 32920 2920 CONTINUE IVON02 = 676 IVCOMP = 189 - IVON02 GO TO 42920 32920 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42920, 2931, 42920 42920 IF (IVCOMP + 487) 22920,12920,22920 12920 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2931 22920 IVFAIL = IVFAIL + 1 IVCORR = -487 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2931 CONTINUE IVTNUM = 293 C C **** TEST 293 **** C IF (ICZERO) 32930, 2930, 32930 2930 CONTINUE IVON02 = -676 IVCOMP = 189 - IVON02 GO TO 42930 32930 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42930, 2941, 42930 42930 IF (IVCOMP - 865) 22930,12930,22930 12930 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2941 22930 IVFAIL = IVFAIL + 1 IVCORR = 865 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2941 CONTINUE IVTNUM = 294 C C **** TEST 294 **** C IF (ICZERO) 32940, 2940, 32940 2940 CONTINUE IVON01 = 1358 IVCOMP = IVON01 - 8001 GO TO 42940 32940 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42940, 2951, 42940 42940 IF (IVCOMP + 6643) 22940,12940,22940 12940 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2951 22940 IVFAIL = IVFAIL + 1 IVCORR = -6643 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2951 CONTINUE IVTNUM = 295 C C **** TEST 295 **** C IF (ICZERO) 32950, 2950, 32950 2950 CONTINUE IVON01 = -1358 IVCOMP = IVON01 - 8001 GO TO 42950 32950 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42950, 2961, 42950 42950 IF (IVCOMP + 9359) 22950,12950,22950 12950 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2961 22950 IVFAIL = IVFAIL + 1 IVCORR = -9359 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2961 CONTINUE IVTNUM = 296 C C **** TEST 296 **** C IF (ICZERO) 32960, 2960, 32960 2960 CONTINUE IVON01 = 15 IVCOMP = IVON01 - 32752 GO TO 42960 32960 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42960, 2971, 42960 42960 IF (IVCOMP + 32737) 22960,12960,22960 12960 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2971 22960 IVFAIL = IVFAIL + 1 IVCORR = -32737 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2971 CONTINUE IVTNUM = 297 C C **** TEST 297 **** C IF (ICZERO) 32970, 2970, 32970 2970 CONTINUE IVON01 =-32751 IVCOMP = IVON01 - 15 GO TO 42970 32970 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42970, 2981, 42970 42970 IF (IVCOMP + 32766) 22970,12970,22970 12970 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2981 22970 IVFAIL = IVFAIL + 1 IVCORR = -32766 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2981 CONTINUE IVTNUM = 298 C C **** TEST 298 **** C IF (ICZERO) 32980, 2980, 32980 2980 CONTINUE IVON02 = -32752 IVCOMP = 15 - IVON02 GO TO 42980 32980 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42980, 2991, 42980 42980 IF (IVCOMP - 32767) 22980,12980,22980 12980 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 2991 22980 IVFAIL = IVFAIL + 1 IVCORR = 32767 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 2991 CONTINUE IVTNUM = 299 C C **** TEST 299 **** C IF (ICZERO) 32990, 2990, 32990 2990 CONTINUE IVON02 = 15 IVCOMP = 32752 - IVON02 GO TO 42990 32990 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 42990, 3001, 42990 42990 IF (IVCOMP - 32737) 22990,12990,22990 12990 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3001 22990 IVFAIL = IVFAIL + 1 IVCORR = 32737 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3001 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 FM030) END