blob: 8f4a3d40b82581b83745a1df6d4156cc85f45023 [file] [log] [blame]
PROGRAM FM043
C COMMENT SECTION 00010043
C 00020043
C FM043 00030043
C 00040043
C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENTS OF THE FORM 00050043
C 00060043
C INTEGER VAR. = INTEGER VAR. <OP1> INTEGER VAR. <OP2> INTEGER VAR. 00070043
C 00080043
C WHERE <OP1> AND <OP2> ARE ARITHMETIC OPERATORS, BUT <OP1> IS 00090043
C NOT THE SAME AS <OP2>. 00100043
C 00110043
C REFERENCES 00120043
C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00130043
C X3.9-1978 00140043
C 00150043
C SECTION 4.3, INTEGER TYPE 00160043
C SECTION 4.3.1, INTEGER CONSTANT 00170043
C SECTION 6.1, ARITHMETIC EXPRESSIONS 00180043
C SECTION 6.6, EVALUATION OF EXPRESSIONS 00190043
C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00200043
C 00210043
C 00220043
C ********************************************************** 00230043
C 00240043
C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00250043
C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00260043
C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00270043
C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00280043
C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00290043
C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00300043
C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00310043
C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00320043
C OF EXECUTING THESE TESTS. 00330043
C 00340043
C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00350043
C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00360043
C 00370043
C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00380043
C 00390043
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00400043
C SOFTWARE STANDARDS VALIDATION GROUP 00410043
C BUILDING 225 RM A266 00420043
C GAITHERSBURG, MD 20899 00430043
C ********************************************************** 00440043
C 00450043
C 00460043
C 00470043
C INITIALIZATION SECTION 00480043
C 00490043
C INITIALIZE CONSTANTS 00500043
C ************** 00510043
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00520043
I01 = 5 00530043
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00540043
I02 = 6 00550043
C SYSTEM ENVIRONMENT SECTION 00560043
C 00570043
CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00580043
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00590043
C (UNIT NUMBER FOR CARD READER). 00600043
CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00610043
C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00620043
C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00630043
C 00640043
CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00650043
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00660043
C (UNIT NUMBER FOR PRINTER). 00670043
CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00680043
C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00690043
C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00700043
C 00710043
IVPASS=0 00720043
IVFAIL=0 00730043
IVDELE=0 00740043
ICZERO=0 00750043
C 00760043
C WRITE PAGE HEADERS 00770043
WRITE (I02,90000) 00780043
WRITE (I02,90001) 00790043
WRITE (I02,90002) 00800043
WRITE (I02, 90002) 00810043
WRITE (I02,90003) 00820043
WRITE (I02,90002) 00830043
WRITE (I02,90004) 00840043
WRITE (I02,90002) 00850043
WRITE (I02,90011) 00860043
WRITE (I02,90002) 00870043
WRITE (I02,90002) 00880043
WRITE (I02,90005) 00890043
WRITE (I02,90006) 00900043
WRITE (I02,90002) 00910043
C 00920043
C TEST SECTION 00930043
C 00940043
C ARITHMETIC ASSIGNMENT STATEMENT 00950043
C 00960043
C TESTS 683 THROUGH 694 TEST STATEMENTS WHERE <OP1> IS '+' AND 00970043
C <OP2> VARIES. 00980043
C 00990043
C TEST 695 THROUGH 706 TEST STATEMENTS WHERE <OP1> IS '-' AND 01000043
C <OP2> VARIES. 01010043
C 01020043
C TESTS 707 THROUGH 718 TEST STATEMENTS WHERE <OP1> IS '*' AND 01030043
C <OP2> VARIES. 01040043
C 01050043
C 01060043
C 01070043
C TESTS 683 THROUGH 685 TEST '+' FOLLOWED BY '-'. 01080043
C 01090043
IVTNUM = 683 01100043
C 01110043
C **** TEST 683 **** 01120043
C 01130043
IF (ICZERO) 36830, 6830, 36830 01140043
6830 CONTINUE 01150043
IVON01 = 45 01160043
IVON02 = 9 01170043
IVON03 = 3 01180043
IVCOMP = IVON01 + IVON02 - IVON03 01190043
GO TO 46830 01200043
36830 IVDELE = IVDELE + 1 01210043
WRITE (I02,80003) IVTNUM 01220043
IF (ICZERO) 46830, 6841, 46830 01230043
46830 IF (IVCOMP - 51) 26830,16830,26830 01240043
16830 IVPASS = IVPASS + 1 01250043
WRITE (I02,80001) IVTNUM 01260043
GO TO 6841 01270043
26830 IVFAIL = IVFAIL + 1 01280043
IVCORR = 51 01290043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 01300043
6841 CONTINUE 01310043
IVTNUM = 684 01320043
C 01330043
C **** TEST 684 **** 01340043
C 01350043
IF (ICZERO) 36840, 6840, 36840 01360043
6840 CONTINUE 01370043
IVON01 = 45 01380043
IVON02 = 9 01390043
IVON03 = 3 01400043
IVCOMP = (IVON01 + IVON02) - IVON03 01410043
GO TO 46840 01420043
36840 IVDELE = IVDELE + 1 01430043
WRITE (I02,80003) IVTNUM 01440043
IF (ICZERO) 46840, 6851, 46840 01450043
46840 IF (IVCOMP - 51) 26840,16840,26840 01460043
16840 IVPASS = IVPASS + 1 01470043
WRITE (I02,80001) IVTNUM 01480043
GO TO 6851 01490043
26840 IVFAIL = IVFAIL + 1 01500043
IVCORR = 51 01510043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 01520043
6851 CONTINUE 01530043
IVTNUM = 685 01540043
C 01550043
C **** TEST 685 **** 01560043
C 01570043
IF (ICZERO) 36850, 6850, 36850 01580043
6850 CONTINUE 01590043
IVON01 = 45 01600043
IVON02 = 9 01610043
IVON03 = 3 01620043
IVCOMP = IVON01 + (IVON02 - IVON03) 01630043
GO TO 46850 01640043
36850 IVDELE = IVDELE + 1 01650043
WRITE (I02,80003) IVTNUM 01660043
IF (ICZERO) 46850, 6861, 46850 01670043
46850 IF (IVCOMP - 51) 26850,16850,26850 01680043
16850 IVPASS = IVPASS + 1 01690043
WRITE (I02,80001) IVTNUM 01700043
GO TO 6861 01710043
26850 IVFAIL = IVFAIL + 1 01720043
IVCORR = 51 01730043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 01740043
6861 CONTINUE 01750043
C 01760043
C TESTS 686 THROUGH 688 TEST '+' FOLLOWED BY '*'. 01770043
C 01780043
IVTNUM = 686 01790043
C 01800043
C **** TEST 686 **** 01810043
C 01820043
IF (ICZERO) 36860, 6860, 36860 01830043
6860 CONTINUE 01840043
IVON01 = 45 01850043
IVON02 = 9 01860043
IVON03 = 3 01870043
IVCOMP = IVON01 + IVON02 * IVON03 01880043
GO TO 46860 01890043
36860 IVDELE = IVDELE + 1 01900043
WRITE (I02,80003) IVTNUM 01910043
IF (ICZERO) 46860, 6871, 46860 01920043
46860 IF (IVCOMP - 72) 26860,16860,26860 01930043
16860 IVPASS = IVPASS + 1 01940043
WRITE (I02,80001) IVTNUM 01950043
GO TO 6871 01960043
26860 IVFAIL = IVFAIL + 1 01970043
IVCORR = 72 01980043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 01990043
6871 CONTINUE 02000043
IVTNUM = 687 02010043
C 02020043
C **** TEST 687 **** 02030043
C 02040043
IF (ICZERO) 36870, 6870, 36870 02050043
6870 CONTINUE 02060043
IVON01 = 45 02070043
IVON02 = 9 02080043
IVON03 = 3 02090043
IVCOMP = (IVON01 + IVON02) * IVON03 02100043
GO TO 46870 02110043
36870 IVDELE = IVDELE + 1 02120043
WRITE (I02,80003) IVTNUM 02130043
IF (ICZERO) 46870, 6881, 46870 02140043
46870 IF (IVCOMP - 162) 26870,16870,26870 02150043
16870 IVPASS = IVPASS + 1 02160043
WRITE (I02,80001) IVTNUM 02170043
GO TO 6881 02180043
26870 IVFAIL = IVFAIL + 1 02190043
IVCORR = 162 02200043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 02210043
6881 CONTINUE 02220043
IVTNUM = 688 02230043
C 02240043
C **** TEST 688 **** 02250043
C 02260043
IF (ICZERO) 36880, 6880, 36880 02270043
6880 CONTINUE 02280043
IVON01 = 45 02290043
IVON02 = 9 02300043
IVON03 = 3 02310043
IVCOMP = IVON01 + (IVON02 * IVON03) 02320043
GO TO 46880 02330043
36880 IVDELE = IVDELE + 1 02340043
WRITE (I02,80003) IVTNUM 02350043
IF (ICZERO) 46880, 6891, 46880 02360043
46880 IF (IVCOMP - 72) 26880,16880,26880 02370043
16880 IVPASS = IVPASS + 1 02380043
WRITE (I02,80001) IVTNUM 02390043
GO TO 6891 02400043
26880 IVFAIL = IVFAIL + 1 02410043
IVCORR = 72 02420043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 02430043
6891 CONTINUE 02440043
C 02450043
C TESTS 689 THROUGH 691 TEST '+' FOLLOWED BY '/'. 02460043
C 02470043
IVTNUM = 689 02480043
C 02490043
C **** TEST 689 **** 02500043
C 02510043
IF (ICZERO) 36890, 6890, 36890 02520043
6890 CONTINUE 02530043
IVON01 = 45 02540043
IVON02 = 9 02550043
IVON03 = 3 02560043
IVCOMP = IVON01 + IVON02 / IVON03 02570043
GO TO 46890 02580043
36890 IVDELE = IVDELE + 1 02590043
WRITE (I02,80003) IVTNUM 02600043
IF (ICZERO) 46890, 6901, 46890 02610043
46890 IF (IVCOMP - 48) 26890,16890,26890 02620043
16890 IVPASS = IVPASS + 1 02630043
WRITE (I02,80001) IVTNUM 02640043
GO TO 6901 02650043
26890 IVFAIL = IVFAIL + 1 02660043
IVCORR = 48 02670043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 02680043
6901 CONTINUE 02690043
IVTNUM = 690 02700043
C 02710043
C **** TEST 690 **** 02720043
C 02730043
IF (ICZERO) 36900, 6900, 36900 02740043
6900 CONTINUE 02750043
IVON01 = 45 02760043
IVON02 = 9 02770043
IVON03 = 3 02780043
IVCOMP = (IVON01 + IVON02) / IVON03 02790043
GO TO 46900 02800043
36900 IVDELE = IVDELE + 1 02810043
WRITE (I02,80003) IVTNUM 02820043
IF (ICZERO) 46900, 6911, 46900 02830043
46900 IF (IVCOMP - 18) 26900,16900,26900 02840043
16900 IVPASS = IVPASS + 1 02850043
WRITE (I02,80001) IVTNUM 02860043
GO TO 6911 02870043
26900 IVFAIL = IVFAIL + 1 02880043
IVCORR = 18 02890043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 02900043
6911 CONTINUE 02910043
IVTNUM = 691 02920043
C 02930043
C **** TEST 691 **** 02940043
C 02950043
IF (ICZERO) 36910, 6910, 36910 02960043
6910 CONTINUE 02970043
IVON01 = 45 02980043
IVON02 = 9 02990043
IVON03 = 3 03000043
IVCOMP = IVON01 + (IVON02 / IVON03) 03010043
GO TO 46910 03020043
36910 IVDELE = IVDELE + 1 03030043
WRITE (I02,80003) IVTNUM 03040043
IF (ICZERO) 46910, 6921, 46910 03050043
46910 IF (IVCOMP - 48) 26910,16910,26910 03060043
16910 IVPASS = IVPASS + 1 03070043
WRITE (I02,80001) IVTNUM 03080043
GO TO 6921 03090043
26910 IVFAIL = IVFAIL + 1 03100043
IVCORR = 48 03110043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 03120043
6921 CONTINUE 03130043
C 03140043
C TESTS 692 THROUGH 694 TEST '+' FOLLOWED BY '**'. 03150043
C 03160043
IVTNUM = 692 03170043
C 03180043
C **** TEST 692 **** 03190043
C 03200043
IF (ICZERO) 36920, 6920, 36920 03210043
6920 CONTINUE 03220043
IVON01 = 15 03230043
IVON02 = 9 03240043
IVON03 = 3 03250043
IVCOMP = IVON01 + IVON02 ** IVON03 03260043
GO TO 46920 03270043
36920 IVDELE = IVDELE + 1 03280043
WRITE (I02,80003) IVTNUM 03290043
IF (ICZERO) 46920, 6931, 46920 03300043
46920 IF (IVCOMP - 744) 26920,16920,26920 03310043
16920 IVPASS = IVPASS + 1 03320043
WRITE (I02,80001) IVTNUM 03330043
GO TO 6931 03340043
26920 IVFAIL = IVFAIL + 1 03350043
IVCORR = 744 03360043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 03370043
6931 CONTINUE 03380043
IVTNUM = 693 03390043
C 03400043
C **** TEST 693 **** 03410043
C 03420043
IF (ICZERO) 36930, 6930, 36930 03430043
6930 CONTINUE 03440043
IVON01 = 15 03450043
IVON02 = 9 03460043
IVON03 = 3 03470043
IVCOMP = (IVON01 + IVON02) ** IVON03 03480043
GO TO 46930 03490043
36930 IVDELE = IVDELE + 1 03500043
WRITE (I02,80003) IVTNUM 03510043
IF (ICZERO) 46930, 6941, 46930 03520043
46930 IF (IVCOMP - 13824) 26930,16930,26930 03530043
16930 IVPASS = IVPASS + 1 03540043
WRITE (I02,80001) IVTNUM 03550043
GO TO 6941 03560043
26930 IVFAIL = IVFAIL + 1 03570043
IVCORR = 13824 03580043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 03590043
6941 CONTINUE 03600043
IVTNUM = 694 03610043
C 03620043
C **** TEST 694 **** 03630043
C 03640043
IF (ICZERO) 36940, 6940, 36940 03650043
6940 CONTINUE 03660043
IVON01 = 15 03670043
IVON02 = 9 03680043
IVON03 = 3 03690043
IVCOMP = IVON01 + (IVON02 ** IVON03) 03700043
GO TO 46940 03710043
36940 IVDELE = IVDELE + 1 03720043
WRITE (I02,80003) IVTNUM 03730043
IF (ICZERO) 46940, 6951, 46940 03740043
46940 IF (IVCOMP - 744) 26940,16940,26940 03750043
16940 IVPASS = IVPASS + 1 03760043
WRITE (I02,80001) IVTNUM 03770043
GO TO 6951 03780043
26940 IVFAIL = IVFAIL + 1 03790043
IVCORR = 744 03800043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 03810043
6951 CONTINUE 03820043
C 03830043
C TESTS 695 THROUGH 697 TEST '-' FOLLOWED BY '+'. 03840043
C 03850043
IVTNUM = 695 03860043
C 03870043
C **** TEST 695 **** 03880043
C 03890043
IF (ICZERO) 36950, 6950, 36950 03900043
6950 CONTINUE 03910043
IVON01 = 45 03920043
IVON02 = 9 03930043
IVON03 = 3 03940043
IVCOMP = IVON01 - IVON02 + IVON03 03950043
GO TO 46950 03960043
36950 IVDELE = IVDELE + 1 03970043
WRITE (I02,80003) IVTNUM 03980043
IF (ICZERO) 46950, 6961, 46950 03990043
46950 IF (IVCOMP - 39) 26950,16950,26950 04000043
16950 IVPASS = IVPASS + 1 04010043
WRITE (I02,80001) IVTNUM 04020043
GO TO 6961 04030043
26950 IVFAIL = IVFAIL + 1 04040043
IVCORR = 39 04050043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 04060043
6961 CONTINUE 04070043
IVTNUM = 696 04080043
C 04090043
C **** TEST 696 **** 04100043
C 04110043
IF (ICZERO) 36960, 6960, 36960 04120043
6960 CONTINUE 04130043
IVON01 = 45 04140043
IVON02 = 9 04150043
IVON03 = 3 04160043
IVCOMP = (IVON01 - IVON02) + IVON03 04170043
GO TO 46960 04180043
36960 IVDELE = IVDELE + 1 04190043
WRITE (I02,80003) IVTNUM 04200043
IF (ICZERO) 46960, 6971, 46960 04210043
46960 IF (IVCOMP - 39) 26960,16960,26960 04220043
16960 IVPASS = IVPASS + 1 04230043
WRITE (I02,80001) IVTNUM 04240043
GO TO 6971 04250043
26960 IVFAIL = IVFAIL + 1 04260043
IVCORR = 39 04270043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 04280043
6971 CONTINUE 04290043
IVTNUM = 697 04300043
C 04310043
C **** TEST 697 **** 04320043
C 04330043
IF (ICZERO) 36970, 6970, 36970 04340043
6970 CONTINUE 04350043
IVON01 = 45 04360043
IVON02 = 9 04370043
IVON03 = 3 04380043
IVCOMP = IVON01 - (IVON02 + IVON03) 04390043
GO TO 46970 04400043
36970 IVDELE = IVDELE + 1 04410043
WRITE (I02,80003) IVTNUM 04420043
IF (ICZERO) 46970, 6981, 46970 04430043
46970 IF (IVCOMP - 33) 26970,16970,26970 04440043
16970 IVPASS = IVPASS + 1 04450043
WRITE (I02,80001) IVTNUM 04460043
GO TO 6981 04470043
26970 IVFAIL = IVFAIL + 1 04480043
IVCORR = 33 04490043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 04500043
6981 CONTINUE 04510043
C 04520043
C TESTS 698 THROUGH 700 TEST '-' FOLLOWED BY '*'. 04530043
C 04540043
IVTNUM = 698 04550043
C 04560043
C **** TEST 698 **** 04570043
C 04580043
IF (ICZERO) 36980, 6980, 36980 04590043
6980 CONTINUE 04600043
IVON01 = 45 04610043
IVON02 = 9 04620043
IVON03 = 3 04630043
IVCOMP = IVON01 - IVON02 * IVON03 04640043
GO TO 46980 04650043
36980 IVDELE = IVDELE + 1 04660043
WRITE (I02,80003) IVTNUM 04670043
IF (ICZERO) 46980, 6991, 46980 04680043
46980 IF (IVCOMP - 18) 26980,16980,26980 04690043
16980 IVPASS = IVPASS + 1 04700043
WRITE (I02,80001) IVTNUM 04710043
GO TO 6991 04720043
26980 IVFAIL = IVFAIL + 1 04730043
IVCORR = 18 04740043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 04750043
6991 CONTINUE 04760043
IVTNUM = 699 04770043
C 04780043
C **** TEST 699 **** 04790043
C 04800043
IF (ICZERO) 36990, 6990, 36990 04810043
6990 CONTINUE 04820043
IVON01 = 45 04830043
IVON02 = 9 04840043
IVON03 = 3 04850043
IVCOMP = (IVON01 - IVON02) * IVON03 04860043
GO TO 46990 04870043
36990 IVDELE = IVDELE + 1 04880043
WRITE (I02,80003) IVTNUM 04890043
IF (ICZERO) 46990, 7001, 46990 04900043
46990 IF (IVCOMP - 108) 26990,16990,26990 04910043
16990 IVPASS = IVPASS + 1 04920043
WRITE (I02,80001) IVTNUM 04930043
GO TO 7001 04940043
26990 IVFAIL = IVFAIL + 1 04950043
IVCORR = 108 04960043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 04970043
7001 CONTINUE 04980043
IVTNUM = 700 04990043
C 05000043
C **** TEST 700 **** 05010043
C 05020043
IF (ICZERO) 37000, 7000, 37000 05030043
7000 CONTINUE 05040043
IVON01 = 45 05050043
IVON02 = 9 05060043
IVON03 = 3 05070043
IVCOMP = IVON01 - (IVON02 * IVON03) 05080043
GO TO 47000 05090043
37000 IVDELE = IVDELE + 1 05100043
WRITE (I02,80003) IVTNUM 05110043
IF (ICZERO) 47000, 7011, 47000 05120043
47000 IF (IVCOMP - 18) 27000,17000,27000 05130043
17000 IVPASS = IVPASS + 1 05140043
WRITE (I02,80001) IVTNUM 05150043
GO TO 7011 05160043
27000 IVFAIL = IVFAIL + 1 05170043
IVCORR = 18 05180043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 05190043
7011 CONTINUE 05200043
C 05210043
C TESTS 701 THROUGH 703 TEST '-' FOLLOWED BY '/'. 05220043
C 05230043
IVTNUM = 701 05240043
C 05250043
C **** TEST 701 **** 05260043
C 05270043
IF (ICZERO) 37010, 7010, 37010 05280043
7010 CONTINUE 05290043
IVON01 = 45 05300043
IVON02 = 9 05310043
IVON03 = 3 05320043
IVCOMP = IVON01 - IVON02 / IVON03 05330043
GO TO 47010 05340043
37010 IVDELE = IVDELE + 1 05350043
WRITE (I02,80003) IVTNUM 05360043
IF (ICZERO) 47010, 7021, 47010 05370043
47010 IF (IVCOMP - 42) 27010,17010,27010 05380043
17010 IVPASS = IVPASS + 1 05390043
WRITE (I02,80001) IVTNUM 05400043
GO TO 7021 05410043
27010 IVFAIL = IVFAIL + 1 05420043
IVCORR = 42 05430043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 05440043
7021 CONTINUE 05450043
IVTNUM = 702 05460043
C 05470043
C **** TEST 702 **** 05480043
C 05490043
IF (ICZERO) 37020, 7020, 37020 05500043
7020 CONTINUE 05510043
IVON01 = 45 05520043
IVON02 = 9 05530043
IVON03 = 3 05540043
IVCOMP = (IVON01 - IVON02) / IVON03 05550043
GO TO 47020 05560043
37020 IVDELE = IVDELE + 1 05570043
WRITE (I02,80003) IVTNUM 05580043
IF (ICZERO) 47020, 7031, 47020 05590043
47020 IF (IVCOMP - 12) 27020,17020,27020 05600043
17020 IVPASS = IVPASS + 1 05610043
WRITE (I02,80001) IVTNUM 05620043
GO TO 7031 05630043
27020 IVFAIL = IVFAIL + 1 05640043
IVCORR = 12 05650043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 05660043
7031 CONTINUE 05670043
IVTNUM = 703 05680043
C 05690043
C **** TEST 703 **** 05700043
C 05710043
IF (ICZERO) 37030, 7030, 37030 05720043
7030 CONTINUE 05730043
IVON01 = 45 05740043
IVON02 = 9 05750043
IVON03 = 3 05760043
IVCOMP = IVON01 - (IVON02 / IVON03) 05770043
GO TO 47030 05780043
37030 IVDELE = IVDELE + 1 05790043
WRITE (I02,80003) IVTNUM 05800043
IF (ICZERO) 47030, 7041, 47030 05810043
47030 IF (IVCOMP - 42) 27030,17030,27030 05820043
17030 IVPASS = IVPASS + 1 05830043
WRITE (I02,80001) IVTNUM 05840043
GO TO 7041 05850043
27030 IVFAIL = IVFAIL + 1 05860043
IVCORR = 42 05870043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 05880043
7041 CONTINUE 05890043
C 05900043
C TESTS 704 THROUGH 706 TEST '-' FOLLOWED BY '**'. 05910043
C 05920043
IVTNUM = 704 05930043
C 05940043
C **** TEST 704 **** 05950043
C 05960043
IF (ICZERO) 37040, 7040, 37040 05970043
7040 CONTINUE 05980043
IVON01 = 35 05990043
IVON02 = 9 06000043
IVON03 = 3 06010043
IVCOMP = IVON01 - IVON02 ** IVON03 06020043
GO TO 47040 06030043
37040 IVDELE = IVDELE + 1 06040043
WRITE (I02,80003) IVTNUM 06050043
IF (ICZERO) 47040, 7051, 47040 06060043
47040 IF (IVCOMP + 694) 27040,17040,27040 06070043
17040 IVPASS = IVPASS + 1 06080043
WRITE (I02,80001) IVTNUM 06090043
GO TO 7051 06100043
27040 IVFAIL = IVFAIL + 1 06110043
IVCORR = -694 06120043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 06130043
7051 CONTINUE 06140043
IVTNUM = 705 06150043
C 06160043
C **** TEST 705 **** 06170043
C 06180043
IF (ICZERO) 37050, 7050, 37050 06190043
7050 CONTINUE 06200043
IVON01 = 35 06210043
IVON02 = 9 06220043
IVON03 = 3 06230043
IVCOMP = (IVON01 - IVON02) ** IVON03 06240043
GO TO 47050 06250043
37050 IVDELE = IVDELE + 1 06260043
WRITE (I02,80003) IVTNUM 06270043
IF (ICZERO) 47050, 7061, 47050 06280043
47050 IF (IVCOMP - 17576) 27050,17050,27050 06290043
17050 IVPASS = IVPASS + 1 06300043
WRITE (I02,80001) IVTNUM 06310043
GO TO 7061 06320043
27050 IVFAIL = IVFAIL + 1 06330043
IVCORR = 17576 06340043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 06350043
7061 CONTINUE 06360043
IVTNUM = 706 06370043
C 06380043
C **** TEST 706 **** 06390043
C 06400043
IF (ICZERO) 37060, 7060, 37060 06410043
7060 CONTINUE 06420043
IVON01 = 35 06430043
IVON02 = 9 06440043
IVON03 = 3 06450043
IVCOMP = IVON01 - (IVON02 ** IVON03) 06460043
GO TO 47060 06470043
37060 IVDELE = IVDELE + 1 06480043
WRITE (I02,80003) IVTNUM 06490043
IF (ICZERO) 47060, 7071, 47060 06500043
47060 IF (IVCOMP + 694) 27060,17060,27060 06510043
17060 IVPASS = IVPASS + 1 06520043
WRITE (I02,80001) IVTNUM 06530043
GO TO 7071 06540043
27060 IVFAIL = IVFAIL + 1 06550043
IVCORR = -694 06560043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 06570043
7071 CONTINUE 06580043
C 06590043
C TESTS 707 THROUGH 709 TEST '*' FOLLOWED BY '+'. 06600043
C 06610043
IVTNUM = 707 06620043
C 06630043
C **** TEST 707 **** 06640043
C 06650043
IF (ICZERO) 37070, 7070, 37070 06660043
7070 CONTINUE 06670043
IVON01 = 45 06680043
IVON02 = 9 06690043
IVON03 = 3 06700043
IVCOMP = IVON01 * IVON02 + IVON03 06710043
GO TO 47070 06720043
37070 IVDELE = IVDELE + 1 06730043
WRITE (I02,80003) IVTNUM 06740043
IF (ICZERO) 47070, 7081, 47070 06750043
47070 IF (IVCOMP - 408) 27070,17070,27070 06760043
17070 IVPASS = IVPASS + 1 06770043
WRITE (I02,80001) IVTNUM 06780043
GO TO 7081 06790043
27070 IVFAIL = IVFAIL + 1 06800043
IVCORR = 408 06810043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 06820043
7081 CONTINUE 06830043
IVTNUM = 708 06840043
C 06850043
C **** TEST 708 **** 06860043
C 06870043
IF (ICZERO) 37080, 7080, 37080 06880043
7080 CONTINUE 06890043
IVON01 = 45 06900043
IVON02 = 9 06910043
IVON03 = 3 06920043
IVCOMP = (IVON01 * IVON02) + IVON03 06930043
GO TO 47080 06940043
37080 IVDELE = IVDELE + 1 06950043
WRITE (I02,80003) IVTNUM 06960043
IF (ICZERO) 47080, 7091, 47080 06970043
47080 IF (IVCOMP - 408) 27080,17080,27080 06980043
17080 IVPASS = IVPASS + 1 06990043
WRITE (I02,80001) IVTNUM 07000043
GO TO 7091 07010043
27080 IVFAIL = IVFAIL + 1 07020043
IVCORR = 408 07030043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 07040043
7091 CONTINUE 07050043
IVTNUM = 709 07060043
C 07070043
C **** TEST 709 **** 07080043
C 07090043
IF (ICZERO) 37090, 7090, 37090 07100043
7090 CONTINUE 07110043
IVON01 = 45 07120043
IVON02 = 9 07130043
IVON03 = 3 07140043
IVCOMP = IVON01 * (IVON02 + IVON03) 07150043
GO TO 47090 07160043
37090 IVDELE = IVDELE + 1 07170043
WRITE (I02,80003) IVTNUM 07180043
IF (ICZERO) 47090, 7101, 47090 07190043
47090 IF (IVCOMP - 540) 27090,17090,27090 07200043
17090 IVPASS = IVPASS + 1 07210043
WRITE (I02,80001) IVTNUM 07220043
GO TO 7101 07230043
27090 IVFAIL = IVFAIL + 1 07240043
IVCORR = 540 07250043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 07260043
7101 CONTINUE 07270043
C 07280043
C TESTS 710 THROUGH 712 TEST '*' FOLLOWED BY '-'. 07290043
C 07300043
IVTNUM = 710 07310043
C 07320043
C **** TEST 710 **** 07330043
C 07340043
IF (ICZERO) 37100, 7100, 37100 07350043
7100 CONTINUE 07360043
IVON01 = 45 07370043
IVON02 = 9 07380043
IVON03 = 3 07390043
IVCOMP = IVON01 * IVON02 - IVON03 07400043
GO TO 47100 07410043
37100 IVDELE = IVDELE + 1 07420043
WRITE (I02,80003) IVTNUM 07430043
IF (ICZERO) 47100, 7111, 47100 07440043
47100 IF (IVCOMP - 402) 27100,17100,27100 07450043
17100 IVPASS = IVPASS + 1 07460043
WRITE (I02,80001) IVTNUM 07470043
GO TO 7111 07480043
27100 IVFAIL = IVFAIL + 1 07490043
IVCORR = 402 07500043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 07510043
7111 CONTINUE 07520043
IVTNUM = 711 07530043
C 07540043
C **** TEST 711 **** 07550043
C 07560043
IF (ICZERO) 37110, 7110, 37110 07570043
7110 CONTINUE 07580043
IVON01 = 45 07590043
IVON02 = 9 07600043
IVON03 = 3 07610043
IVCOMP = (IVON01 * IVON02) - IVON03 07620043
GO TO 47110 07630043
37110 IVDELE = IVDELE + 1 07640043
WRITE (I02,80003) IVTNUM 07650043
IF (ICZERO) 47110, 7121, 47110 07660043
47110 IF (IVCOMP - 402) 27110,17110,27110 07670043
17110 IVPASS = IVPASS + 1 07680043
WRITE (I02,80001) IVTNUM 07690043
GO TO 7121 07700043
27110 IVFAIL = IVFAIL + 1 07710043
IVCORR = 402 07720043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 07730043
7121 CONTINUE 07740043
IVTNUM = 712 07750043
C 07760043
C **** TEST 712 **** 07770043
C 07780043
IF (ICZERO) 37120, 7120, 37120 07790043
7120 CONTINUE 07800043
IVON01 = 45 07810043
IVON02 = 9 07820043
IVON03 = 3 07830043
IVCOMP = IVON01 * (IVON02 - IVON03) 07840043
GO TO 47120 07850043
37120 IVDELE = IVDELE + 1 07860043
WRITE (I02,80003) IVTNUM 07870043
IF (ICZERO) 47120, 7131, 47120 07880043
47120 IF (IVCOMP - 270) 27120,17120,27120 07890043
17120 IVPASS = IVPASS + 1 07900043
WRITE (I02,80001) IVTNUM 07910043
GO TO 7131 07920043
27120 IVFAIL = IVFAIL + 1 07930043
IVCORR = 270 07940043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 07950043
7131 CONTINUE 07960043
C 07970043
C TESTS 713 THROUGH 715 TEST '*' FOLLOWED BY '/'. 07980043
C 07990043
IVTNUM = 713 08000043
C 08010043
C **** TEST 713 **** 08020043
C 08030043
IF (ICZERO) 37130, 7130, 37130 08040043
7130 CONTINUE 08050043
IVON01 = 45 08060043
IVON02 = 9 08070043
IVON03 = 3 08080043
IVCOMP = IVON01 * IVON02 / IVON03 08090043
GO TO 47130 08100043
37130 IVDELE = IVDELE + 1 08110043
WRITE (I02,80003) IVTNUM 08120043
IF (ICZERO) 47130, 7141, 47130 08130043
47130 IF (IVCOMP - 135) 27130,17130,27130 08140043
17130 IVPASS = IVPASS + 1 08150043
WRITE (I02,80001) IVTNUM 08160043
GO TO 7141 08170043
27130 IVFAIL = IVFAIL + 1 08180043
IVCORR = 135 08190043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 08200043
7141 CONTINUE 08210043
IVTNUM = 714 08220043
C 08230043
C **** TEST 714 **** 08240043
C 08250043
IF (ICZERO) 37140, 7140, 37140 08260043
7140 CONTINUE 08270043
IVON01 = 45 08280043
IVON02 = 9 08290043
IVON03 = 3 08300043
IVCOMP = (IVON01 * IVON02) / IVON03 08310043
GO TO 47140 08320043
37140 IVDELE = IVDELE + 1 08330043
WRITE (I02,80003) IVTNUM 08340043
IF (ICZERO) 47140, 7151, 47140 08350043
47140 IF (IVCOMP - 135) 27140,17140,27140 08360043
17140 IVPASS = IVPASS + 1 08370043
WRITE (I02,80001) IVTNUM 08380043
GO TO 7151 08390043
27140 IVFAIL = IVFAIL + 1 08400043
IVCORR = 135 08410043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 08420043
7151 CONTINUE 08430043
IVTNUM = 715 08440043
C 08450043
C **** TEST 715 **** 08460043
C 08470043
IF (ICZERO) 37150, 7150, 37150 08480043
7150 CONTINUE 08490043
IVON01 = 45 08500043
IVON02 = 9 08510043
IVON03 = 3 08520043
IVCOMP = IVON01 * (IVON02 / IVON03) 08530043
GO TO 47150 08540043
37150 IVDELE = IVDELE + 1 08550043
WRITE (I02,80003) IVTNUM 08560043
IF (ICZERO) 47150, 7161, 47150 08570043
47150 IF (IVCOMP - 135) 27150,17150,27150 08580043
17150 IVPASS = IVPASS + 1 08590043
WRITE (I02,80001) IVTNUM 08600043
GO TO 7161 08610043
27150 IVFAIL = IVFAIL + 1 08620043
IVCORR = 135 08630043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 08640043
7161 CONTINUE 08650043
C 08660043
C TESTS 716 THROUGH 718 TEST '*' FOLLOWED BY '**'. 08670043
C 08680043
IVTNUM = 716 08690043
C 08700043
C **** TEST 716 **** 08710043
C 08720043
IF (ICZERO) 37160, 7160, 37160 08730043
7160 CONTINUE 08740043
IVON01 = 7 08750043
IVON02 = 3 08760043
IVON03 = 3 08770043
IVCOMP = IVON01 * IVON02 ** IVON03 08780043
GO TO 47160 08790043
37160 IVDELE = IVDELE + 1 08800043
WRITE (I02,80003) IVTNUM 08810043
IF (ICZERO) 47160, 7171, 47160 08820043
47160 IF (IVCOMP - 189) 27160,17160,27160 08830043
17160 IVPASS = IVPASS + 1 08840043
WRITE (I02,80001) IVTNUM 08850043
GO TO 7171 08860043
27160 IVFAIL = IVFAIL + 1 08870043
IVCORR = 189 08880043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 08890043
7171 CONTINUE 08900043
IVTNUM = 717 08910043
C 08920043
C **** TEST 717 **** 08930043
C 08940043
IF (ICZERO) 37170, 7170, 37170 08950043
7170 CONTINUE 08960043
IVON01 = 7 08970043
IVON02 = 3 08980043
IVON03 = 3 08990043
IVCOMP = (IVON01 * IVON02) ** IVON03 09000043
GO TO 47170 09010043
37170 IVDELE = IVDELE + 1 09020043
WRITE (I02,80003) IVTNUM 09030043
IF (ICZERO) 47170, 7181, 47170 09040043
47170 IF (IVCOMP - 9261) 27170,17170,27170 09050043
17170 IVPASS = IVPASS + 1 09060043
WRITE (I02,80001) IVTNUM 09070043
GO TO 7181 09080043
27170 IVFAIL = IVFAIL + 1 09090043
IVCORR = 9261 09100043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 09110043
7181 CONTINUE 09120043
IVTNUM = 718 09130043
C 09140043
C **** TEST 718 **** 09150043
C 09160043
IF (ICZERO) 37180, 7180, 37180 09170043
7180 CONTINUE 09180043
IVON01 = 7 09190043
IVON02 = 3 09200043
IVON03 = 3 09210043
IVCOMP = IVON01 * (IVON02 ** IVON03) 09220043
GO TO 47180 09230043
37180 IVDELE = IVDELE + 1 09240043
WRITE (I02,80003) IVTNUM 09250043
IF (ICZERO) 47180, 7191, 47180 09260043
47180 IF (IVCOMP - 189) 27180,17180,27180 09270043
17180 IVPASS = IVPASS + 1 09280043
WRITE (I02,80001) IVTNUM 09290043
GO TO 7191 09300043
27180 IVFAIL = IVFAIL + 1 09310043
IVCORR = 189 09320043
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 09330043
7191 CONTINUE 09340043
C 09350043
C WRITE PAGE FOOTINGS AND RUN SUMMARIES 09360043
99999 CONTINUE 09370043
WRITE (I02,90002) 09380043
WRITE (I02,90006) 09390043
WRITE (I02,90002) 09400043
WRITE (I02,90002) 09410043
WRITE (I02,90007) 09420043
WRITE (I02,90002) 09430043
WRITE (I02,90008) IVFAIL 09440043
WRITE (I02,90009) IVPASS 09450043
WRITE (I02,90010) IVDELE 09460043
C 09470043
C 09480043
C TERMINATE ROUTINE EXECUTION 09490043
STOP 09500043
C 09510043
C FORMAT STATEMENTS FOR PAGE HEADERS 09520043
90000 FORMAT ("1") 09530043
90002 FORMAT (" ") 09540043
90001 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 09550043
90003 FORMAT (" ",21X,"VERSION 2.1" ) 09560043
90004 FORMAT (" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" ) 09570043
90005 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT") 09580043
90006 FORMAT (" ",5X,"----------------------------------------------" ) 09590043
90011 FORMAT (" ",18X,"SUBSET LEVEL TEST" ) 09600043
C 09610043
C FORMAT STATEMENTS FOR RUN SUMMARIES 09620043
90008 FORMAT (" ",15X,I5," ERRORS ENCOUNTERED" ) 09630043
90009 FORMAT (" ",15X,I5," TESTS PASSED" ) 09640043
90010 FORMAT (" ",15X,I5," TESTS DELETED" ) 09650043
C 09660043
C FORMAT STATEMENTS FOR TEST RESULTS 09670043
80001 FORMAT (" ",4X,I5,7X,"PASS") 09680043
80002 FORMAT (" ",4X,I5,7X,"FAIL") 09690043
80003 FORMAT (" ",4X,I5,7X,"DELETED") 09700043
80004 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6) 09710043
80005 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5) 09720043
C 09730043
90007 FORMAT (" ",20X,"END OF PROGRAM FM043" ) 09740043
END 09750043