| 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 |