blob: 0f5bf900a04be245f213db69974110baf1383892 [file] [log] [blame]
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