C COMMENT SECTION C C FM031 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. SOME OF THE C TESTS USE PARENTHESES TO GROUP ELEMENTS IN AN ARITHMETIC C EXPRESSION. C C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS C (1) INTEGER CONSTANT-INTEGER CONSTANT-INTEGER VARIABLE C INTEGER CONSTANT-INTEGER VARIABLE-INTEGER CONSTANT C INTEGER VARIABLE-INTEGER CONSTANT-INTEGER CONSTANT C (2) SAME AS (1) BUT WITH PARENTHESES TO GROUP ELEMENTS C IN ARITHMETIC EXPRESSION. C (3) INTEGER VARIABLE - 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 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 TEST 300 THROUGH TEST 309 CONTAIN 2 INTEGER CONSTANTS, AN INTEGER C VARIABLE AND OPERATOR - IN AN ARITHMETIC EXPRESSION. C 3001 CONTINUE IVTNUM = 300 C C **** TEST 300 **** C IF (ICZERO) 33000, 3000, 33000 3000 CONTINUE IVON01 = 9 IVCOMP =IVON01 -3 -4 GO TO 43000 33000 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43000, 3011, 43000 43000 IF (IVCOMP-2) 23000,13000,23000 13000 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3011 23000 IVFAIL = IVFAIL + 1 IVCORR =2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3011 CONTINUE IVTNUM = 301 C C **** TEST 301 **** C IF (ICZERO) 33010, 3010, 33010 3010 CONTINUE IVON02 =3 IVCOMP =9-IVON02-4 GO TO 43010 33010 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43010, 3021, 43010 43010 IF (IVCOMP-2) 23010,13010,23010 13010 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3021 23010 IVFAIL = IVFAIL + 1 IVCORR =2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3021 CONTINUE IVTNUM = 302 C C **** TEST 302 **** C IF (ICZERO) 33020, 3020, 33020 3020 CONTINUE IVON03 = 4 IVCOMP = 9-3-IVON03 GO TO 43020 33020 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43020, 3031, 43020 43020 IF (IVCOMP-2) 23020,13020,23020 13020 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3031 23020 IVFAIL = IVFAIL + 1 IVCORR =2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3031 CONTINUE IVTNUM = 303 C C **** TEST 303 **** C IF (ICZERO) 33030, 3030, 33030 3030 CONTINUE IVON01 = 57 IVCOMP = IVON01 -25-22 GO TO 43030 33030 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43030, 3041, 43030 43030 IF (IVCOMP-10) 23030,13030,23030 13030 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3041 23030 IVFAIL = IVFAIL + 1 IVCORR = 10 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3041 CONTINUE IVTNUM = 304 C C **** TEST 304 **** C IF (ICZERO) 33040, 3040, 33040 3040 CONTINUE IVON02 =683 IVCOMP = 101-IVON02-156 GO TO 43040 33040 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43040, 3051, 43040 43040 IF (IVCOMP+738) 23040,13040,23040 13040 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3051 23040 IVFAIL = IVFAIL + 1 IVCORR = -738 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3051 CONTINUE IVTNUM = 305 C C **** TEST 305 **** C IF (ICZERO) 33050, 3050, 33050 3050 CONTINUE IVON03 = 1289 IVCOMP = 8542-1122-IVON03 GO TO 43050 33050 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43050, 3061, 43050 43050 IF (IVCOMP-6131) 23050,13050,23050 13050 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3061 23050 IVFAIL = IVFAIL + 1 IVCORR = 6131 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3061 CONTINUE IVTNUM = 306 C C **** TEST 306 **** C IF (ICZERO) 33060, 3060, 33060 3060 CONTINUE IVON03 = 11111 IVCOMP = 32333-11111-IVON03 GO TO 43060 33060 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43060, 3071, 43060 43060 IF (IVCOMP-10111) 23060,13060,23060 13060 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3071 23060 IVFAIL = IVFAIL + 1 IVCORR =10111 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3071 CONTINUE IVTNUM = 307 C C **** TEST 307 **** C IF (ICZERO) 33070, 3070, 33070 3070 CONTINUE IVON01 = -3 IVCOMP = IVON01-2-4 GO TO 43070 33070 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43070, 3081, 43070 43070 IF (IVCOMP +9) 23070,13070,23070 13070 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3081 23070 IVFAIL = IVFAIL + 1 IVCORR =-9 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3081 CONTINUE IVTNUM = 308 C C **** TEST 308 **** C IF (ICZERO) 33080, 3080, 33080 3080 CONTINUE IVON02 =-9 IVCOMP =1-IVON02-4 GO TO 43080 33080 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43080, 3091, 43080 43080 IF (IVCOMP-6) 23080,13080,23080 13080 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3091 23080 IVFAIL = IVFAIL + 1 IVCORR = 6 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3091 CONTINUE IVTNUM = 309 C C **** TEST 309 **** C IF (ICZERO) 33090, 3090, 33090 3090 CONTINUE IVON03 = -8542 IVCOMP = 100-3-IVON03 GO TO 43090 33090 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43090, 3101, 43090 43090 IF (IVCOMP-8639) 23090,13090,23090 13090 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3101 23090 IVFAIL = IVFAIL + 1 IVCORR = 8639 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 310 THROUGH TEST 319 CONTAIN 2 INTEGER CONSTANTS, AN INTEGER C VARIABLE AND OPERATOR - IN AN ARITHMETIC EXPRESSION. PARENTHESES C ARE USED TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSION. C 3101 CONTINUE IVTNUM = 310 C C **** TEST 310 **** C IF (ICZERO) 33100, 3100, 33100 3100 CONTINUE IVON01 =9 IVCOMP = IVON01-(3-4) GO TO 43100 33100 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43100, 3111, 43100 43100 IF (IVCOMP-10) 23100,13100,23100 13100 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3111 23100 IVFAIL = IVFAIL + 1 IVCORR=10 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3111 CONTINUE IVTNUM = 311 C C **** TEST 311 **** C IF (ICZERO) 33110, 3110, 33110 3110 CONTINUE IVON01=9 IVCOMP=(IVON01-3)-4 GO TO 43110 33110 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43110, 3121, 43110 43110 IF (IVCOMP-2) 23110,13110,23110 13110 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3121 23110 IVFAIL = IVFAIL + 1 IVCORR =2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3121 CONTINUE IVTNUM = 312 C C **** TEST 312 **** C IF (ICZERO) 33120, 3120, 33120 3120 CONTINUE IVON02 = 3 IVCOMP = 9-(IVON02-4) GO TO 43120 33120 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43120, 3131, 43120 43120 IF (IVCOMP-10) 23120,13120,23120 13120 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3131 23120 IVFAIL = IVFAIL + 1 IVCORR = 10 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3131 CONTINUE IVTNUM = 313 C C **** TEST 313 **** C IF (ICZERO) 33130, 3130, 33130 3130 CONTINUE IVON02 = 3 IVCOMP = (9-IVON02) -4 GO TO 43130 33130 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43130, 3141, 43130 43130 IF (IVCOMP-2) 23130,13130,23130 13130 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3141 23130 IVFAIL = IVFAIL + 1 IVCORR = 2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3141 CONTINUE IVTNUM = 314 C C **** TEST 314 **** C IF (ICZERO) 33140, 3140, 33140 3140 CONTINUE IVON03 = 4 IVCOMP = 9 -(3-IVON03) GO TO 43140 33140 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43140, 3151, 43140 43140 IF (IVCOMP-10) 23140,13140,23140 13140 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3151 23140 IVFAIL = IVFAIL + 1 IVCORR = 10 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3151 CONTINUE IVTNUM = 315 C C **** TEST 315 **** C IF (ICZERO) 33150, 3150, 33150 3150 CONTINUE IVON03 = 4 IVCOMP = (9-3)-IVON03 GO TO 43150 33150 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43150, 3161, 43150 43150 IF (IVCOMP-2) 23150,13150,23150 13150 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3161 23150 IVFAIL = IVFAIL + 1 IVCORR = 2 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3161 CONTINUE IVTNUM = 316 C C **** TEST 316 **** C IF (ICZERO) 33160, 3160, 33160 3160 CONTINUE IVON01 = -9 IVCOMP = (IVON01-3)-4 GO TO 43160 33160 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43160, 3171, 43160 43160 IF (IVCOMP +16) 23160,13160,23160 13160 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3171 23160 IVFAIL = IVFAIL + 1 IVCORR = -16 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3171 CONTINUE IVTNUM = 317 C C **** TEST 317 **** C IF (ICZERO) 33170, 3170, 33170 3170 CONTINUE IVON02 = -3 IVCOMP = 9-(IVON02-4) GO TO 43170 33170 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43170, 3181, 43170 43170 IF (IVCOMP-16) 23170,13170,23170 13170 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3181 23170 IVFAIL = IVFAIL + 1 IVCORR = 16 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3181 CONTINUE IVTNUM = 318 C C **** TEST 318 **** C IF (ICZERO) 33180, 3180, 33180 3180 CONTINUE IVON03 = +4 IVCOMP = 9 - (3 - IVON03) GO TO 43180 33180 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43180, 3191, 43180 43180 IF (IVCOMP - 10) 23180,13180,23180 13180 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3191 23180 IVFAIL = IVFAIL + 1 IVCORR= 10 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3191 CONTINUE IVTNUM = 319 C C **** TEST 319 **** C IF (ICZERO) 33190, 3190, 33190 3190 CONTINUE IVON02 = 11111 IVCOMP = (32333-IVON02) -11111 GO TO 43190 33190 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43190, 3201, 43190 43190 IF (IVCOMP - 10111) 23190,13190,23190 13190 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3201 23190 IVFAIL = IVFAIL + 1 IVCORR = 10111 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C TEST 320 THROUGH TEST 329 CONTAIN 2 INTEGER VARIABLES AND C OPERATOR - IN AN ARITHMETIC EXPRESSION. THE INTEGER VARIABLES C CONTAIN POSITIVE AND NEGATIVE VALUES. C 3201 CONTINUE IVTNUM = 320 C C **** TEST 320 **** C IF (ICZERO) 33200, 3200, 33200 3200 CONTINUE IVON01 = 3 IVON02 = 2 IVCOMP = IVON01 - IVON02 GO TO 43200 33200 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43200, 3211, 43200 43200 IF (IVCOMP - 1) 23200,13200,23200 13200 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3211 23200 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3211 CONTINUE IVTNUM = 321 C C **** TEST 321 **** C IF (ICZERO) 33210, 3210, 33210 3210 CONTINUE IVON01 =2 IVON02 =3 IVCOMP = IVON01 - IVON02 GO TO 43210 33210 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43210, 3221, 43210 43210 IF (IVCOMP +1) 23210,13210,23210 13210 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3221 23210 IVFAIL = IVFAIL + 1 IVCORR = -1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3221 CONTINUE IVTNUM = 322 C C **** TEST 322 **** C IF (ICZERO) 33220, 3220, 33220 3220 CONTINUE IVON01 = -2 IVON02 = 3 IVCOMP = IVON01 - IVON02 GO TO 43220 33220 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43220, 3231, 43220 43220 IF (IVCOMP +5) 23220,13220,23220 13220 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3231 23220 IVFAIL = IVFAIL + 1 IVCORR =-5 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3231 CONTINUE IVTNUM = 323 C C **** TEST 323 **** C IF (ICZERO) 33230, 3230, 33230 3230 CONTINUE IVON01 = -2 IVON02 = -3 IVCOMP = IVON01 - IVON02 GO TO 43230 33230 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43230, 3241, 43230 43230 IF (IVCOMP -1) 23230,13230,23230 13230 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3241 23230 IVFAIL = IVFAIL + 1 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3241 CONTINUE IVTNUM = 324 C C **** TEST 324 **** C IF (ICZERO) 33240, 3240, 33240 3240 CONTINUE IVON01 = 51 IVON02 = 52 IVCOMP = IVON01 - IVON02 GO TO 43240 33240 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43240, 3251, 43240 43240 IF (IVCOMP + 1) 23240,13240,23240 13240 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3251 23240 IVFAIL = IVFAIL + 1 IVCORR = -1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3251 CONTINUE IVTNUM = 325 C C **** TEST 325 **** C IF (ICZERO) 33250, 3250, 33250 3250 CONTINUE IVON01 = 676 IVON02 =-189 IVCOMP = IVON01 - IVON02 GO TO 43250 33250 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43250, 3261, 43250 43250 IF (IVCOMP - 865) 23250,13250,23250 13250 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3261 23250 IVFAIL = IVFAIL + 1 IVCORR = 865 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3261 CONTINUE IVTNUM = 326 C C **** TEST 326 **** C IF (ICZERO) 33260, 3260, 33260 3260 CONTINUE IVON01 = 1358 IVON02 = -8001 IVCOMP = IVON01 - IVON02 GO TO 43260 33260 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43260, 3271, 43260 43260 IF (IVCOMP - 9359) 23260,13260,23260 13260 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3271 23260 IVFAIL = IVFAIL + 1 IVCORR = 9359 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3271 CONTINUE IVTNUM = 327 C C **** TEST 327 **** C IF (ICZERO) 33270, 3270, 33270 3270 CONTINUE IVON01 =-16383 IVON02 = 16383 IVCOMP = IVON01 - IVON02 GO TO 43270 33270 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43270, 3281, 43270 43270 IF (IVCOMP + 32766) 23270,13270,23270 13270 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3281 23270 IVFAIL = IVFAIL + 1 IVCORR = -32766 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3281 CONTINUE IVTNUM = 328 C C **** TEST 328 **** C IF (ICZERO) 33280, 3280, 33280 3280 CONTINUE IVON01 = 9876 IVON02 = 189 IVCOMP = IVON01 - IVON02 GO TO 43280 33280 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43280, 3291, 43280 43280 IF (IVCOMP - 9687) 23280,13280,23280 13280 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3291 23280 IVFAIL = IVFAIL + 1 IVCORR = 9687 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 3291 CONTINUE IVTNUM = 329 C C **** TEST 329 **** C IF (ICZERO) 33290, 3290, 33290 3290 CONTINUE IVON01 = 11112 IVON02 = 11112 IVCOMP = IVON01 - IVON02 GO TO 43290 33290 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 43290, 3301, 43290 43290 IF (IVCOMP) 23290,13290,23290 13290 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 3301 23290 IVFAIL = IVFAIL + 1 IVCORR = 0 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR C C **** END OF TESTS **** 3301 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 FM031) END