PROGRAM FM032 C COMMENT SECTION 00010032 C 00020032 C FM032 00030032 C 00040032 C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050032 C FORM 00060032 C INTEGER VARIABLE = ARITHMETIC EXPRESSION 00070032 C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00080032 C OPERATOR -, INTEGER CONSTANTS AND INTEGER VARIABLES. SOME OF THE 00090032 C TESTS USE PARENTHESES TO GROUP ELEMENTS IN AN ARITHMETIC 00100032 C EXPRESSION. 00110032 C 00120032 C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00130032 C (1) INTEGER VAR.= INT. VAR. - INT.VAR.-INT.CON 00140032 C = INT. VAR. - INT.CON.-INT.VAR 00150032 C = INT. CON. - INT.VAR -INT.VAR. 00160032 C (2) SAME FORMS AS (1) BUT WITH PARENTHESES TO GROUP ELEMENTS 00170032 C IN ARITHMETIC EXPRESSION. 00180032 C 00190032 C REFERENCES 00200032 C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00210032 C X3.9-1978 00220032 C 00230032 C SECTION 4.3, INTEGER TYPE 00240032 C SECTION 4.3.1, INTEGER CONSTANT 00250032 C SECTION 6.1, ARITHMETIC EXPRESSIONS 00260032 C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00270032 C 00280032 C 00290032 C ********************************************************** 00300032 C 00310032 C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00320032 C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00330032 C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00340032 C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00350032 C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00360032 C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00370032 C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00380032 C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00390032 C OF EXECUTING THESE TESTS. 00400032 C 00410032 C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00420032 C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00430032 C 00440032 C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00450032 C 00460032 C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00470032 C SOFTWARE STANDARDS VALIDATION GROUP 00480032 C BUILDING 225 RM A266 00490032 C GAITHERSBURG, MD 20899 00500032 C ********************************************************** 00510032 C 00520032 C 00530032 C 00540032 C INITIALIZATION SECTION 00550032 C 00560032 C INITIALIZE CONSTANTS 00570032 C ************** 00580032 C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00590032 I01 = 5 00600032 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00610032 I02 = 6 00620032 C SYSTEM ENVIRONMENT SECTION 00630032 C 00640032 CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00650032 C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00660032 C (UNIT NUMBER FOR CARD READER). 00670032 CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00680032 C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00690032 C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00700032 C 00710032 CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00720032 C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00730032 C (UNIT NUMBER FOR PRINTER). 00740032 CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00750032 C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00760032 C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00770032 C 00780032 IVPASS=0 00790032 IVFAIL=0 00800032 IVDELE=0 00810032 ICZERO=0 00820032 C 00830032 C WRITE PAGE HEADERS 00840032 WRITE (I02,90000) 00850032 WRITE (I02,90001) 00860032 WRITE (I02,90002) 00870032 WRITE (I02, 90002) 00880032 WRITE (I02,90003) 00890032 WRITE (I02,90002) 00900032 WRITE (I02,90004) 00910032 WRITE (I02,90002) 00920032 WRITE (I02,90011) 00930032 WRITE (I02,90002) 00940032 WRITE (I02,90002) 00950032 WRITE (I02,90005) 00960032 WRITE (I02,90006) 00970032 WRITE (I02,90002) 00980032 C TEST SECTION 00990032 C 01000032 C ARITHMETIC ASSIGNMENT STATEMENT 01010032 C 01020032 C TEST 330 THROUGH TEST 347 CONTAIN TWO INTEGER VARIABLES, AN 01030032 C INTEGER CONSTANT AND OPERATOR - IN AN ARITHMETIC EXPRESSION. THE 01040032 C INTEGER VARIABLES CONTAIN POSITIVE AND NEGATIVE VALUES. 01050032 C 01060032 C TEST 330 THROUGH TEST 337 IV = IV -IV -IC 01070032 C 01080032 3301 CONTINUE 01090032 IVTNUM = 330 01100032 C 01110032 C **** TEST 330 **** 01120032 C 01130032 IF (ICZERO) 33300, 3300, 33300 01140032 3300 CONTINUE 01150032 IVON01 =9 01160032 IVON02 =4 01170032 IVCOMP = IVON01-IVON02-2 01180032 GO TO 43300 01190032 33300 IVDELE = IVDELE + 1 01200032 WRITE (I02,80003) IVTNUM 01210032 IF (ICZERO) 43300, 3311, 43300 01220032 43300 IF (IVCOMP-3) 23300,13300,23300 01230032 13300 IVPASS = IVPASS + 1 01240032 WRITE (I02,80001) IVTNUM 01250032 GO TO 3311 01260032 23300 IVFAIL = IVFAIL + 1 01270032 IVCORR= 3 01280032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01290032 3311 CONTINUE 01300032 IVTNUM = 331 01310032 C 01320032 C **** TEST 331 **** 01330032 C 01340032 IF (ICZERO) 33310, 3310, 33310 01350032 3310 CONTINUE 01360032 IVON01 =-9 01370032 IVON02 = 4 01380032 IVCOMP = IVON01-IVON02-2 01390032 GO TO 43310 01400032 33310 IVDELE = IVDELE + 1 01410032 WRITE (I02,80003) IVTNUM 01420032 IF (ICZERO) 43310, 3321, 43310 01430032 43310 IF (IVCOMP +15) 23310,13310,23310 01440032 13310 IVPASS = IVPASS + 1 01450032 WRITE (I02,80001) IVTNUM 01460032 GO TO 3321 01470032 23310 IVFAIL = IVFAIL + 1 01480032 IVCORR = -15 01490032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01500032 3321 CONTINUE 01510032 IVTNUM = 332 01520032 C 01530032 C **** TEST 332 **** 01540032 C 01550032 IF (ICZERO) 33320, 3320, 33320 01560032 3320 CONTINUE 01570032 IVON01 =9 01580032 IVON02 =-4 01590032 IVCOMP =IVON01-IVON02-2 01600032 GO TO 43320 01610032 33320 IVDELE = IVDELE + 1 01620032 WRITE (I02,80003) IVTNUM 01630032 IF (ICZERO) 43320, 3331, 43320 01640032 43320 IF (IVCOMP-11) 23320,13320,23320 01650032 13320 IVPASS = IVPASS + 1 01660032 WRITE (I02,80001) IVTNUM 01670032 GO TO 3331 01680032 23320 IVFAIL = IVFAIL + 1 01690032 IVCORR = 11 01700032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01710032 3331 CONTINUE 01720032 IVTNUM = 333 01730032 C 01740032 C **** TEST 333 **** 01750032 C 01760032 IF (ICZERO) 33330, 3330, 33330 01770032 3330 CONTINUE 01780032 IVON01 =57 01790032 IVON02 =25 01800032 IVCOMP=IVON01-IVON02-22 01810032 GO TO 43330 01820032 33330 IVDELE = IVDELE + 1 01830032 WRITE (I02,80003) IVTNUM 01840032 IF (ICZERO) 43330, 3341, 43330 01850032 43330 IF (IVCOMP -10) 23330,13330,23330 01860032 13330 IVPASS = IVPASS + 1 01870032 WRITE (I02,80001) IVTNUM 01880032 GO TO 3341 01890032 23330 IVFAIL = IVFAIL + 1 01900032 IVCORR = 10 01910032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01920032 3341 CONTINUE 01930032 IVTNUM = 334 01940032 C 01950032 C **** TEST 334 **** 01960032 C 01970032 IF (ICZERO) 33340, 3340, 33340 01980032 3340 CONTINUE 01990032 IVON01 = 101 02000032 IVON02 = 683 02010032 IVCOMP = IVON01 - IVON02 - 156 02020032 GO TO 43340 02030032 33340 IVDELE = IVDELE + 1 02040032 WRITE (I02,80003) IVTNUM 02050032 IF (ICZERO) 43340, 3351, 43340 02060032 43340 IF (IVCOMP +738) 23340,13340,23340 02070032 13340 IVPASS = IVPASS + 1 02080032 WRITE (I02,80001) IVTNUM 02090032 GO TO 3351 02100032 23340 IVFAIL = IVFAIL + 1 02110032 IVCORR = -738 02120032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02130032 3351 CONTINUE 02140032 IVTNUM = 335 02150032 C 02160032 C **** TEST 335 **** 02170032 C 02180032 IF (ICZERO) 33350, 3350, 33350 02190032 3350 CONTINUE 02200032 IVON01=8542 02210032 IVON02=1122 02220032 IVCOMP=IVON01-IVON02-1289 02230032 GO TO 43350 02240032 33350 IVDELE = IVDELE + 1 02250032 WRITE (I02,80003) IVTNUM 02260032 IF (ICZERO) 43350, 3361, 43350 02270032 43350 IF (IVCOMP -6131) 23350,13350,23350 02280032 13350 IVPASS = IVPASS + 1 02290032 WRITE (I02,80001) IVTNUM 02300032 GO TO 3361 02310032 23350 IVFAIL = IVFAIL + 1 02320032 IVCORR = 6131 02330032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02340032 3361 CONTINUE 02350032 IVTNUM = 336 02360032 C 02370032 C **** TEST 336 **** 02380032 C 02390032 IF (ICZERO) 33360, 3360, 33360 02400032 3360 CONTINUE 02410032 IVON01 = 31333 02420032 IVON02 = 11111 02430032 IVCOMP = IVON01-IVON02-10111 02440032 GO TO 43360 02450032 33360 IVDELE = IVDELE + 1 02460032 WRITE (I02,80003) IVTNUM 02470032 IF (ICZERO) 43360, 3371, 43360 02480032 43360 IF (IVCOMP -10111) 23360,13360,23360 02490032 13360 IVPASS = IVPASS + 1 02500032 WRITE (I02,80001) IVTNUM 02510032 GO TO 3371 02520032 23360 IVFAIL = IVFAIL + 1 02530032 IVCORR = 10111 02540032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02550032 3371 CONTINUE 02560032 IVTNUM = 337 02570032 C 02580032 C **** TEST 337 **** 02590032 C 02600032 IF (ICZERO) 33370, 3370, 33370 02610032 3370 CONTINUE 02620032 IVON01 = -31444 02630032 IVON02 = +1001 02640032 IVCOMP = IVON01-IVON02-300 02650032 GO TO 43370 02660032 33370 IVDELE = IVDELE + 1 02670032 WRITE (I02,80003) IVTNUM 02680032 IF (ICZERO) 43370, 3381, 43370 02690032 43370 IF (IVCOMP +32745) 23370,13370,23370 02700032 13370 IVPASS = IVPASS + 1 02710032 WRITE (I02,80001) IVTNUM 02720032 GO TO 3381 02730032 23370 IVFAIL = IVFAIL + 1 02740032 IVCORR = -32745 02750032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02760032 C 02770032 C TEST 338 THROUGH TEST 343 IV=IV-IC-IV 02780032 C 02790032 3381 CONTINUE 02800032 IVTNUM = 338 02810032 C 02820032 C **** TEST 338 **** 02830032 C 02840032 IF (ICZERO) 33380, 3380, 33380 02850032 3380 CONTINUE 02860032 IVON01 =9 02870032 IVON03 =2 02880032 IVCOMP = IVON01-4-IVON03 02890032 GO TO 43380 02900032 33380 IVDELE = IVDELE + 1 02910032 WRITE (I02,80003) IVTNUM 02920032 IF (ICZERO) 43380, 3391, 43380 02930032 43380 IF (IVCOMP -3) 23380,13380,23380 02940032 13380 IVPASS = IVPASS + 1 02950032 WRITE (I02,80001) IVTNUM 02960032 GO TO 3391 02970032 23380 IVFAIL = IVFAIL + 1 02980032 IVCORR = 3 02990032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03000032 3391 CONTINUE 03010032 IVTNUM = 339 03020032 C 03030032 C **** TEST 339 **** 03040032 C 03050032 IF (ICZERO) 33390, 3390, 33390 03060032 3390 CONTINUE 03070032 IVON01 = -9 03080032 IVON03 = 2 03090032 IVCOMP = IVON01-4-IVON03 03100032 GO TO 43390 03110032 33390 IVDELE = IVDELE + 1 03120032 WRITE (I02,80003) IVTNUM 03130032 IF (ICZERO) 43390, 3401, 43390 03140032 43390 IF (IVCOMP+15) 23390,13390,23390 03150032 13390 IVPASS = IVPASS + 1 03160032 WRITE (I02,80001) IVTNUM 03170032 GO TO 3401 03180032 23390 IVFAIL = IVFAIL + 1 03190032 IVCORR = -15 03200032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03210032 3401 CONTINUE 03220032 IVTNUM = 340 03230032 C 03240032 C **** TEST 340 **** 03250032 C 03260032 IF (ICZERO) 33400, 3400, 33400 03270032 3400 CONTINUE 03280032 IVON01 = 9 03290032 IVON03 =-2 03300032 IVCOMP =IVON01-4-IVON03 03310032 GO TO 43400 03320032 33400 IVDELE = IVDELE + 1 03330032 WRITE (I02,80003) IVTNUM 03340032 IF (ICZERO) 43400, 3411, 43400 03350032 43400 IF (IVCOMP-7) 23400,13400,23400 03360032 13400 IVPASS = IVPASS + 1 03370032 WRITE (I02,80001) IVTNUM 03380032 GO TO 3411 03390032 23400 IVFAIL = IVFAIL + 1 03400032 IVCORR=7 03410032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03420032 3411 CONTINUE 03430032 IVTNUM = 341 03440032 C 03450032 C **** TEST 341 **** 03460032 C 03470032 IF (ICZERO) 33410, 3410, 33410 03480032 3410 CONTINUE 03490032 IVON01=-57 03500032 IVON03=22 03510032 IVCOMP=IVON01-25-IVON03 03520032 GO TO 43410 03530032 33410 IVDELE = IVDELE + 1 03540032 WRITE (I02,80003) IVTNUM 03550032 IF (ICZERO) 43410, 3421, 43410 03560032 43410 IF (IVCOMP+104) 23410,13410,23410 03570032 13410 IVPASS = IVPASS + 1 03580032 WRITE (I02,80001) IVTNUM 03590032 GO TO 3421 03600032 23410 IVFAIL = IVFAIL + 1 03610032 IVCORR = -104 03620032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03630032 3421 CONTINUE 03640032 IVTNUM = 342 03650032 C 03660032 C **** TEST 342 **** 03670032 C 03680032 IF (ICZERO) 33420, 3420, 33420 03690032 3420 CONTINUE 03700032 IVON01=8542 03710032 IVON03=3 03720032 IVCOMP=IVON01-125-IVON03 03730032 GO TO 43420 03740032 33420 IVDELE = IVDELE + 1 03750032 WRITE (I02,80003) IVTNUM 03760032 IF (ICZERO) 43420, 3431, 43420 03770032 43420 IF (IVCOMP-8414) 23420,13420,23420 03780032 13420 IVPASS = IVPASS + 1 03790032 WRITE (I02,80001) IVTNUM 03800032 GO TO 3431 03810032 23420 IVFAIL = IVFAIL + 1 03820032 IVCORR = 8414 03830032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03840032 3431 CONTINUE 03850032 IVTNUM = 343 03860032 C 03870032 C **** TEST 343 **** 03880032 C 03890032 IF (ICZERO) 33430, 3430, 33430 03900032 3430 CONTINUE 03910032 IVON01 = -32111 03920032 IVON03 = -111 03930032 IVCOMP = IVON01-111-IVON03 03940032 GO TO 43430 03950032 33430 IVDELE = IVDELE + 1 03960032 WRITE (I02,80003) IVTNUM 03970032 IF (ICZERO) 43430, 3441, 43430 03980032 43430 IF (IVCOMP + 32111) 23430,13430,23430 03990032 13430 IVPASS = IVPASS + 1 04000032 WRITE (I02,80001) IVTNUM 04010032 GO TO 3441 04020032 23430 IVFAIL = IVFAIL + 1 04030032 IVCORR = -32111 04040032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04050032 C 04060032 C TEST 344 THROUGH TEST 347 IV=IC-IV-IV 04070032 C 04080032 3441 CONTINUE 04090032 IVTNUM = 344 04100032 C 04110032 C **** TEST 344 **** 04120032 C 04130032 IF (ICZERO) 33440, 3440, 33440 04140032 3440 CONTINUE 04150032 IVON02=4 04160032 IVON03=2 04170032 IVCOMP=9-IVON02-IVON03 04180032 GO TO 43440 04190032 33440 IVDELE = IVDELE + 1 04200032 WRITE (I02,80003) IVTNUM 04210032 IF (ICZERO) 43440, 3451, 43440 04220032 43440 IF (IVCOMP -3) 23440,13440,23440 04230032 13440 IVPASS = IVPASS + 1 04240032 WRITE (I02,80001) IVTNUM 04250032 GO TO 3451 04260032 23440 IVFAIL = IVFAIL + 1 04270032 IVCORR = 3 04280032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04290032 3451 CONTINUE 04300032 IVTNUM = 345 04310032 C 04320032 C **** TEST 345 **** 04330032 C 04340032 IF (ICZERO) 33450, 3450, 33450 04350032 3450 CONTINUE 04360032 IVON02=-4 04370032 IVON03= 2 04380032 IVCOMP= 9-IVON02-IVON03 04390032 GO TO 43450 04400032 33450 IVDELE = IVDELE + 1 04410032 WRITE (I02,80003) IVTNUM 04420032 IF (ICZERO) 43450, 3461, 43450 04430032 43450 IF (IVCOMP -11) 23450,13450,23450 04440032 13450 IVPASS = IVPASS + 1 04450032 WRITE (I02,80001) IVTNUM 04460032 GO TO 3461 04470032 23450 IVFAIL = IVFAIL + 1 04480032 IVCORR =11 04490032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04500032 3461 CONTINUE 04510032 IVTNUM = 346 04520032 C 04530032 C **** TEST 346 **** 04540032 C 04550032 IF (ICZERO) 33460, 3460, 33460 04560032 3460 CONTINUE 04570032 IVON02 = 683 04580032 IVON03 = 156 04590032 IVCOMP = 101 -IVON02-IVON03 04600032 GO TO 43460 04610032 33460 IVDELE = IVDELE + 1 04620032 WRITE (I02,80003) IVTNUM 04630032 IF (ICZERO) 43460, 3471, 43460 04640032 43460 IF (IVCOMP +738) 23460,13460,23460 04650032 13460 IVPASS = IVPASS + 1 04660032 WRITE (I02,80001) IVTNUM 04670032 GO TO 3471 04680032 23460 IVFAIL = IVFAIL + 1 04690032 IVCORR = -738 04700032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04710032 3471 CONTINUE 04720032 IVTNUM = 347 04730032 C 04740032 C **** TEST 347 **** 04750032 C 04760032 IF (ICZERO) 33470, 3470, 33470 04770032 3470 CONTINUE 04780032 IVON02 = 15687 04790032 IVON03 = 387 04800032 IVCOMP = 8542-IVON02-IVON03 04810032 GO TO 43470 04820032 33470 IVDELE = IVDELE + 1 04830032 WRITE (I02,80003) IVTNUM 04840032 IF (ICZERO) 43470, 3481, 43470 04850032 43470 IF (IVCOMP + 7532) 23470,13470,23470 04860032 13470 IVPASS = IVPASS + 1 04870032 WRITE (I02,80001) IVTNUM 04880032 GO TO 3481 04890032 23470 IVFAIL = IVFAIL + 1 04900032 IVCORR = -7532 04910032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04920032 C 04930032 C TEST 348 THROUGH TEST 359 CONTAIN TWO INTEGER VARIABLES, AN 04940032 C INTEGER CONSTANT AND OPERATOR - IN AN ARITHMETIC EXPRESSION. 04950032 C PARENTHESES ARE USED TO GROUP THE ELEMENTS IN THE ARITHMETIC 04960032 C EXPRESSION. THE INTEGER VARIABLES CONTAIN POSITIVE AND NEGATIVE 04970032 C VALUES. 04980032 C 04990032 3481 CONTINUE 05000032 IVTNUM = 348 05010032 C 05020032 C **** TEST 348 **** 05030032 C 05040032 IF (ICZERO) 33480, 3480, 33480 05050032 3480 CONTINUE 05060032 IVON01= 9 05070032 IVON02= 4 05080032 IVCOMP=(IVON01-IVON02)-2 05090032 GO TO 43480 05100032 33480 IVDELE = IVDELE + 1 05110032 WRITE (I02,80003) IVTNUM 05120032 IF (ICZERO) 43480, 3491, 43480 05130032 43480 IF (IVCOMP - 3) 23480,13480,23480 05140032 13480 IVPASS = IVPASS + 1 05150032 WRITE (I02,80001) IVTNUM 05160032 GO TO 3491 05170032 23480 IVFAIL = IVFAIL + 1 05180032 IVCORR = 3 05190032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05200032 3491 CONTINUE 05210032 IVTNUM = 349 05220032 C 05230032 C **** TEST 349 **** 05240032 C 05250032 IF (ICZERO) 33490, 3490, 33490 05260032 3490 CONTINUE 05270032 IVON01=9 05280032 IVON02=4 05290032 IVCOMP=IVON01-(IVON02-2) 05300032 GO TO 43490 05310032 33490 IVDELE = IVDELE + 1 05320032 WRITE (I02,80003) IVTNUM 05330032 IF (ICZERO) 43490, 3501, 43490 05340032 43490 IF (IVCOMP -7) 23490,13490,23490 05350032 13490 IVPASS = IVPASS + 1 05360032 WRITE (I02,80001) IVTNUM 05370032 GO TO 3501 05380032 23490 IVFAIL = IVFAIL + 1 05390032 IVCORR=7 05400032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05410032 3501 CONTINUE 05420032 IVTNUM = 350 05430032 C 05440032 C **** TEST 350 **** 05450032 C 05460032 IF (ICZERO) 33500, 3500, 33500 05470032 3500 CONTINUE 05480032 IVON01 = 9 05490032 IVON02 = -4 05500032 IVCOMP = (IVON01-IVON02) -2 05510032 GO TO 43500 05520032 33500 IVDELE = IVDELE + 1 05530032 WRITE (I02,80003) IVTNUM 05540032 IF (ICZERO) 43500, 3511, 43500 05550032 43500 IF (IVCOMP -11) 23500,13500,23500 05560032 13500 IVPASS = IVPASS + 1 05570032 WRITE (I02,80001) IVTNUM 05580032 GO TO 3511 05590032 23500 IVFAIL = IVFAIL + 1 05600032 IVCORR = 11 05610032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05620032 3511 CONTINUE 05630032 IVTNUM = 351 05640032 C 05650032 C **** TEST 351 **** 05660032 C 05670032 IF (ICZERO) 33510, 3510, 33510 05680032 3510 CONTINUE 05690032 IVON01 = 9 05700032 IVON02 = -4 05710032 IVCOMP = IVON01-(IVON02-2) 05720032 GO TO 43510 05730032 33510 IVDELE = IVDELE + 1 05740032 WRITE (I02,80003) IVTNUM 05750032 IF (ICZERO) 43510, 3521, 43510 05760032 43510 IF (IVCOMP - 15) 23510,13510,23510 05770032 13510 IVPASS = IVPASS + 1 05780032 WRITE (I02,80001) IVTNUM 05790032 GO TO 3521 05800032 23510 IVFAIL = IVFAIL + 1 05810032 IVCORR = 15 05820032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05830032 3521 CONTINUE 05840032 IVTNUM = 352 05850032 C 05860032 C **** TEST 352 **** 05870032 C 05880032 IF (ICZERO) 33520, 3520, 33520 05890032 3520 CONTINUE 05900032 IVON01 = 683 05910032 IVON03 = 156 05920032 IVCOMP = (IVON01-101)-IVON03 05930032 GO TO 43520 05940032 33520 IVDELE = IVDELE + 1 05950032 WRITE (I02,80003) IVTNUM 05960032 IF (ICZERO) 43520, 3531, 43520 05970032 43520 IF (IVCOMP - 426) 23520,13520,23520 05980032 13520 IVPASS = IVPASS + 1 05990032 WRITE (I02,80001) IVTNUM 06000032 GO TO 3531 06010032 23520 IVFAIL = IVFAIL + 1 06020032 IVCORR = 426 06030032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06040032 3531 CONTINUE 06050032 IVTNUM = 353 06060032 C 06070032 C **** TEST 353 **** 06080032 C 06090032 IF (ICZERO) 33530, 3530, 33530 06100032 3530 CONTINUE 06110032 IVON01 = 683 06120032 IVON03 = 156 06130032 IVCOMP = IVON01 -(101-IVON03) 06140032 GO TO 43530 06150032 33530 IVDELE = IVDELE + 1 06160032 WRITE (I02,80003) IVTNUM 06170032 IF (ICZERO) 43530, 3541, 43530 06180032 43530 IF (IVCOMP -738) 23530,13530,23530 06190032 13530 IVPASS = IVPASS + 1 06200032 WRITE (I02,80001) IVTNUM 06210032 GO TO 3541 06220032 23530 IVFAIL = IVFAIL + 1 06230032 IVCORR = 738 06240032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06250032 3541 CONTINUE 06260032 IVTNUM = 354 06270032 C 06280032 C **** TEST 354 **** 06290032 C 06300032 IF (ICZERO) 33540, 3540, 33540 06310032 3540 CONTINUE 06320032 IVON01 = 683 06330032 IVON03 =-156 06340032 IVCOMP = IVON01 -(101-IVON03) 06350032 GO TO 43540 06360032 33540 IVDELE = IVDELE + 1 06370032 WRITE (I02,80003) IVTNUM 06380032 IF (ICZERO) 43540, 3551, 43540 06390032 43540 IF (IVCOMP -426) 23540,13540,23540 06400032 13540 IVPASS = IVPASS + 1 06410032 WRITE (I02,80001) IVTNUM 06420032 GO TO 3551 06430032 23540 IVFAIL = IVFAIL + 1 06440032 IVCORR = 426 06450032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06460032 3551 CONTINUE 06470032 IVTNUM = 355 06480032 C 06490032 C **** TEST 355 **** 06500032 C 06510032 IF (ICZERO) 33550, 3550, 33550 06520032 3550 CONTINUE 06530032 IVON01 = -683 06540032 IVON03 = -156 06550032 IVCOMP = (IVON01-101)-IVON03 06560032 GO TO 43550 06570032 33550 IVDELE = IVDELE + 1 06580032 WRITE (I02,80003) IVTNUM 06590032 IF (ICZERO) 43550, 3561, 43550 06600032 43550 IF (IVCOMP +628) 23550,13550,23550 06610032 13550 IVPASS = IVPASS + 1 06620032 WRITE (I02,80001) IVTNUM 06630032 GO TO 3561 06640032 23550 IVFAIL = IVFAIL + 1 06650032 IVCORR = -628 06660032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06670032 3561 CONTINUE 06680032 IVTNUM = 356 06690032 C 06700032 C **** TEST 356 **** 06710032 C 06720032 IF (ICZERO) 33560, 3560, 33560 06730032 3560 CONTINUE 06740032 IVON02 = 15687 06750032 IVON03 = 387 06760032 IVCOMP = (8542-IVON02)-IVON03 06770032 GO TO 43560 06780032 33560 IVDELE = IVDELE + 1 06790032 WRITE (I02,80003) IVTNUM 06800032 IF (ICZERO) 43560, 3571, 43560 06810032 43560 IF (IVCOMP +7532) 23560,13560,23560 06820032 13560 IVPASS = IVPASS + 1 06830032 WRITE (I02,80001) IVTNUM 06840032 GO TO 3571 06850032 23560 IVFAIL = IVFAIL + 1 06860032 IVCORR = -7532 06870032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06880032 3571 CONTINUE 06890032 IVTNUM = 357 06900032 C 06910032 C **** TEST 357 **** 06920032 C 06930032 IF (ICZERO) 33570, 3570, 33570 06940032 3570 CONTINUE 06950032 IVON02= 15687 06960032 IVON03= 387 06970032 IVCOMP= 8542-(IVON02-IVON03) 06980032 GO TO 43570 06990032 33570 IVDELE = IVDELE + 1 07000032 WRITE (I02,80003) IVTNUM 07010032 IF (ICZERO) 43570, 3581, 43570 07020032 43570 IF (IVCOMP + 6758) 23570,13570,23570 07030032 13570 IVPASS = IVPASS + 1 07040032 WRITE (I02,80001) IVTNUM 07050032 GO TO 3581 07060032 23570 IVFAIL = IVFAIL + 1 07070032 IVCORR = -6758 07080032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07090032 3581 CONTINUE 07100032 IVTNUM = 358 07110032 C 07120032 C **** TEST 358 **** 07130032 C 07140032 IF (ICZERO) 33580, 3580, 33580 07150032 3580 CONTINUE 07160032 IVON02 = -15687 07170032 IVON03 = 387 07180032 IVCOMP =(8542-IVON02)-IVON03 07190032 GO TO 43580 07200032 33580 IVDELE = IVDELE + 1 07210032 WRITE (I02,80003) IVTNUM 07220032 IF (ICZERO) 43580, 3591, 43580 07230032 43580 IF (IVCOMP - 23842) 23580,13580,23580 07240032 13580 IVPASS = IVPASS + 1 07250032 WRITE (I02,80001) IVTNUM 07260032 GO TO 3591 07270032 23580 IVFAIL = IVFAIL + 1 07280032 IVCORR =23842 07290032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07300032 3591 CONTINUE 07310032 IVTNUM = 359 07320032 C 07330032 C **** TEST 359 **** 07340032 C 07350032 IF (ICZERO) 33590, 3590, 33590 07360032 3590 CONTINUE 07370032 IVON02 = -15687 07380032 IVON03 = 387 07390032 IVCOMP = 8542-(IVON02-IVON03) 07400032 GO TO 43590 07410032 33590 IVDELE = IVDELE + 1 07420032 WRITE (I02,80003) IVTNUM 07430032 IF (ICZERO) 43590, 3601, 43590 07440032 43590 IF (IVCOMP - 24616) 23590,13590,23590 07450032 13590 IVPASS = IVPASS + 1 07460032 WRITE (I02,80001) IVTNUM 07470032 GO TO 3601 07480032 23590 IVFAIL = IVFAIL + 1 07490032 IVCORR = 24616 07500032 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07510032 C **** END OF TESTS **** 07520032 3601 CONTINUE 07530032 C 07540032 C WRITE PAGE FOOTINGS AND RUN SUMMARIES 07550032 99999 CONTINUE 07560032 WRITE (I02,90002) 07570032 WRITE (I02,90006) 07580032 WRITE (I02,90002) 07590032 WRITE (I02,90002) 07600032 WRITE (I02,90007) 07610032 WRITE (I02,90002) 07620032 WRITE (I02,90008) IVFAIL 07630032 WRITE (I02,90009) IVPASS 07640032 WRITE (I02,90010) IVDELE 07650032 C 07660032 C 07670032 C TERMINATE ROUTINE EXECUTION 07680032 STOP 07690032 C 07700032 C FORMAT STATEMENTS FOR PAGE HEADERS 07710032 90000 FORMAT ("1") 07720032 90002 FORMAT (" ") 07730032 90001 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 07740032 90003 FORMAT (" ",21X,"VERSION 2.1" ) 07750032 90004 FORMAT (" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" ) 07760032 90005 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT") 07770032 90006 FORMAT (" ",5X,"----------------------------------------------" ) 07780032 90011 FORMAT (" ",18X,"SUBSET LEVEL TEST" ) 07790032 C 07800032 C FORMAT STATEMENTS FOR RUN SUMMARIES 07810032 90008 FORMAT (" ",15X,I5," ERRORS ENCOUNTERED" ) 07820032 90009 FORMAT (" ",15X,I5," TESTS PASSED" ) 07830032 90010 FORMAT (" ",15X,I5," TESTS DELETED" ) 07840032 C 07850032 C FORMAT STATEMENTS FOR TEST RESULTS 07860032 80001 FORMAT (" ",4X,I5,7X,"PASS") 07870032 80002 FORMAT (" ",4X,I5,7X,"FAIL") 07880032 80003 FORMAT (" ",4X,I5,7X,"DELETED") 07890032 80004 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6) 07900032 80005 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5) 07910032 C 07920032 90007 FORMAT (" ",20X,"END OF PROGRAM FM032" ) 07930032 END 07940032