blob: 2efb4bd05b09d0e9e4aa85dc99c600455289dc53 [file] [log] [blame]
PROGRAM FM034
C COMMENT SECTION 00010034
C 00020034
C FM034 00030034
C 00040034
C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050034
C FORM 00060034
C INTEGER VARIABLE = ARITHMETIC EXPRESSION 00070034
C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00080034
C OPERATOR *, INTEGER VARIABLE AND INTEGER CONSTANT. SOME OF THE 00090034
C TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE EXPRESSION AND TO 00100034
C ALLOW THE USE OF NEGATIVE CONSTANTS FOLLOWING THE * OPERATOR. 00110034
C THE INTEGER VARIABLES CONTAIN POSITIVE AND NEGATIVE VALUES. 00120034
C 00130034
C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00140034
C (1) INTEGER VARIABLE * INTEGER CONSTANT 00150034
C INTEGER CONSTANT * INTEGER VARIABLE 00160034
C (2) INTEGER CONSTANT * INTEGER VARIABLE * INTEGER CONSTANT 00170034
C (3) SAME AS (2) BUT WITH PARENS TO GROUP ELEMENTS. 00180034
C 00190034
C REFERENCES 00200034
C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00210034
C X3.9-1978 00220034
C 00230034
C SECTION 4.3, INTEGER TYPE 00240034
C SECTION 4.3.1, INTEGER CONSTANT 00250034
C SECTION 6.1, ARITHMETIC EXPRESSIONS 00260034
C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00270034
C 00280034
C ********************************************************** 00290034
C 00300034
C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00310034
C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00320034
C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00330034
C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00340034
C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00350034
C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00360034
C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00370034
C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00380034
C OF EXECUTING THESE TESTS. 00390034
C 00400034
C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00410034
C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00420034
C 00430034
C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00440034
C 00450034
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00460034
C SOFTWARE STANDARDS VALIDATION GROUP 00470034
C BUILDING 225 RM A266 00480034
C GAITHERSBURG, MD 20899 00490034
C ********************************************************** 00500034
C 00510034
C 00520034
C 00530034
C INITIALIZATION SECTION 00540034
C 00550034
C INITIALIZE CONSTANTS 00560034
C ************** 00570034
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00580034
I01 = 5 00590034
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00600034
I02 = 6 00610034
C SYSTEM ENVIRONMENT SECTION 00620034
C 00630034
CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00640034
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00650034
C (UNIT NUMBER FOR CARD READER). 00660034
CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00670034
C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00680034
C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00690034
C 00700034
CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00710034
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00720034
C (UNIT NUMBER FOR PRINTER). 00730034
CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00740034
C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00750034
C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00760034
C 00770034
IVPASS=0 00780034
IVFAIL=0 00790034
IVDELE=0 00800034
ICZERO=0 00810034
C 00820034
C WRITE PAGE HEADERS 00830034
WRITE (I02,90000) 00840034
WRITE (I02,90001) 00850034
WRITE (I02,90002) 00860034
WRITE (I02, 90002) 00870034
WRITE (I02,90003) 00880034
WRITE (I02,90002) 00890034
WRITE (I02,90004) 00900034
WRITE (I02,90002) 00910034
WRITE (I02,90011) 00920034
WRITE (I02,90002) 00930034
WRITE (I02,90002) 00940034
WRITE (I02,90005) 00950034
WRITE (I02,90006) 00960034
WRITE (I02,90002) 00970034
C 00980034
C TEST SECTION 00990034
C 01000034
C ARITHMETIC ASSIGNMENT STATEMENT 01010034
C 01020034
C TEST 395 THROUGH TEST 414 CONTAIN AN INTEGER VARIABLE, AN INTEGER 01030034
C CONSTANT, AND OPERATOR * IN AN ARITHMETIC EXPRESSION. 01040034
C 01050034
C TEST 395 THROUGH TEST 406 - IV= IV * IC 01060034
C 01070034
C TEST 395 THROUGH TEST 398 01080034
C POSITIVE INTEGER VARIABLE, POSITIVE INTEGER CONSTANT 01090034
C 01100034
3951 CONTINUE 01110034
IVTNUM = 395 01120034
C 01130034
C **** TEST 395 **** 01140034
C 01150034
IF (ICZERO) 33950, 3950, 33950 01160034
3950 CONTINUE 01170034
IVON01 = 2 01180034
IVCOMP = IVON01 * 3 01190034
GO TO 43950 01200034
33950 IVDELE = IVDELE + 1 01210034
WRITE (I02,80003) IVTNUM 01220034
IF (ICZERO) 43950, 3961, 43950 01230034
43950 IF (IVCOMP -6) 23950,13950,23950 01240034
13950 IVPASS = IVPASS + 1 01250034
WRITE (I02,80001) IVTNUM 01260034
GO TO 3961 01270034
23950 IVFAIL = IVFAIL + 1 01280034
IVCORR =6 01290034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01300034
3961 CONTINUE 01310034
IVTNUM = 396 01320034
C 01330034
C **** TEST 396 **** 01340034
C 01350034
IF (ICZERO) 33960, 3960, 33960 01360034
3960 CONTINUE 01370034
IVON01 = 13 01380034
IVCOMP = IVON01 * 11 01390034
GO TO 43960 01400034
33960 IVDELE = IVDELE + 1 01410034
WRITE (I02,80003) IVTNUM 01420034
IF (ICZERO) 43960, 3971, 43960 01430034
43960 IF (IVCOMP - 143) 23960,13960,23960 01440034
13960 IVPASS = IVPASS + 1 01450034
WRITE (I02,80001) IVTNUM 01460034
GO TO 3971 01470034
23960 IVFAIL = IVFAIL + 1 01480034
IVCORR = 143 01490034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01500034
3971 CONTINUE 01510034
IVTNUM = 397 01520034
C 01530034
C **** TEST 397 **** 01540034
C 01550034
IF (ICZERO) 33970, 3970, 33970 01560034
3970 CONTINUE 01570034
IVON01 = 223 01580034
IVCOMP = IVON01 * 99 01590034
GO TO 43970 01600034
33970 IVDELE = IVDELE + 1 01610034
WRITE (I02,80003) IVTNUM 01620034
IF (ICZERO) 43970, 3981, 43970 01630034
43970 IF (IVCOMP - 22077) 23970,13970,23970 01640034
13970 IVPASS = IVPASS + 1 01650034
WRITE (I02,80001) IVTNUM 01660034
GO TO 3981 01670034
23970 IVFAIL = IVFAIL + 1 01680034
IVCORR = 22077 01690034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01700034
3981 CONTINUE 01710034
IVTNUM = 398 01720034
C 01730034
C **** TEST 398 **** 01740034
C 01750034
IF (ICZERO) 33980, 3980, 33980 01760034
3980 CONTINUE 01770034
IVON01 = 11235 01780034
IVCOMP = IVON01 * 2 01790034
GO TO 43980 01800034
33980 IVDELE = IVDELE + 1 01810034
WRITE (I02,80003) IVTNUM 01820034
IF (ICZERO) 43980, 3991, 43980 01830034
43980 IF (IVCOMP - 22470) 23980,13980,23980 01840034
13980 IVPASS = IVPASS + 1 01850034
WRITE (I02,80001) IVTNUM 01860034
GO TO 3991 01870034
23980 IVFAIL = IVFAIL + 1 01880034
IVCORR = 22470 01890034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01900034
C 01910034
C TEST 399 THROUGH TEST 402 01920034
C NEGATIVE INTEGER VARIABLE, POSITIVE INTEGER CONSTANT 01930034
C 01940034
3991 CONTINUE 01950034
IVTNUM = 399 01960034
C 01970034
C **** TEST 399 **** 01980034
C 01990034
IF (ICZERO) 33990, 3990, 33990 02000034
3990 CONTINUE 02010034
IVON01 = -2 02020034
IVCOMP = IVON01 * 3 02030034
GO TO 43990 02040034
33990 IVDELE = IVDELE + 1 02050034
WRITE (I02,80003) IVTNUM 02060034
IF (ICZERO) 43990, 4001, 43990 02070034
43990 IF (IVCOMP +6) 23990,13990,23990 02080034
13990 IVPASS = IVPASS + 1 02090034
WRITE (I02,80001) IVTNUM 02100034
GO TO 4001 02110034
23990 IVFAIL = IVFAIL + 1 02120034
IVCORR = -6 02130034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02140034
4001 CONTINUE 02150034
IVTNUM = 400 02160034
C 02170034
C **** TEST 400 **** 02180034
C 02190034
IF (ICZERO) 34000, 4000, 34000 02200034
4000 CONTINUE 02210034
IVON01 = -13 02220034
IVCOMP =IVON01*11 02230034
GO TO 44000 02240034
34000 IVDELE = IVDELE + 1 02250034
WRITE (I02,80003) IVTNUM 02260034
IF (ICZERO) 44000, 4011, 44000 02270034
44000 IF (IVCOMP +143) 24000,14000,24000 02280034
14000 IVPASS = IVPASS + 1 02290034
WRITE (I02,80001) IVTNUM 02300034
GO TO 4011 02310034
24000 IVFAIL = IVFAIL + 1 02320034
IVCORR = -143 02330034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02340034
4011 CONTINUE 02350034
IVTNUM = 401 02360034
C 02370034
C **** TEST 401 **** 02380034
C 02390034
IF (ICZERO) 34010, 4010, 34010 02400034
4010 CONTINUE 02410034
IVON01 = -223 02420034
IVCOMP = IVON01*99 02430034
GO TO 44010 02440034
34010 IVDELE = IVDELE + 1 02450034
WRITE (I02,80003) IVTNUM 02460034
IF (ICZERO) 44010, 4021, 44010 02470034
44010 IF (IVCOMP + 22077) 24010,14010,24010 02480034
14010 IVPASS = IVPASS + 1 02490034
WRITE (I02,80001) IVTNUM 02500034
GO TO 4021 02510034
24010 IVFAIL = IVFAIL + 1 02520034
IVCORR = -22077 02530034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02540034
4021 CONTINUE 02550034
IVTNUM = 402 02560034
C 02570034
C **** TEST 402 **** 02580034
C 02590034
IF (ICZERO) 34020, 4020, 34020 02600034
4020 CONTINUE 02610034
IVON01 = -11235 02620034
IVCOMP = IVON01*2 02630034
GO TO 44020 02640034
34020 IVDELE = IVDELE + 1 02650034
WRITE (I02,80003) IVTNUM 02660034
IF (ICZERO) 44020, 4031, 44020 02670034
44020 IF (IVCOMP+22470) 24020,14020,24020 02680034
14020 IVPASS = IVPASS + 1 02690034
WRITE (I02,80001) IVTNUM 02700034
GO TO 4031 02710034
24020 IVFAIL = IVFAIL + 1 02720034
IVCORR = -22470 02730034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02740034
C 02750034
C TEST 403 AND TEST 404 02760034
C NEGATIVE INTEGER VARIABLE, NEGATIVE INTEGER CONSTANT 02770034
C 02780034
4031 CONTINUE 02790034
IVTNUM = 403 02800034
C 02810034
C **** TEST 403 **** 02820034
C 02830034
IF (ICZERO) 34030, 4030, 34030 02840034
4030 CONTINUE 02850034
IVON01=-2 02860034
IVCOMP = IVON01*(-3) 02870034
GO TO 44030 02880034
34030 IVDELE = IVDELE + 1 02890034
WRITE (I02,80003) IVTNUM 02900034
IF (ICZERO) 44030, 4041, 44030 02910034
44030 IF (IVCOMP -6) 24030,14030,24030 02920034
14030 IVPASS = IVPASS + 1 02930034
WRITE (I02,80001) IVTNUM 02940034
GO TO 4041 02950034
24030 IVFAIL = IVFAIL + 1 02960034
IVCORR =6 02970034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02980034
4041 CONTINUE 02990034
IVTNUM = 404 03000034
C 03010034
C **** TEST 404 **** 03020034
C 03030034
IF (ICZERO) 34040, 4040, 34040 03040034
4040 CONTINUE 03050034
IVON01 = -13 03060034
IVCOMP = IVON01 * (-11) 03070034
GO TO 44040 03080034
34040 IVDELE = IVDELE + 1 03090034
WRITE (I02,80003) IVTNUM 03100034
IF (ICZERO) 44040, 4051, 44040 03110034
44040 IF (IVCOMP -143) 24040,14040,24040 03120034
14040 IVPASS = IVPASS + 1 03130034
WRITE (I02,80001) IVTNUM 03140034
GO TO 4051 03150034
24040 IVFAIL = IVFAIL + 1 03160034
IVCORR = 143 03170034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03180034
C 03190034
C TEST 405 AND TEST 406 03200034
C POSITIVE INTEGER VARIABLE, NEGATIVE INTEGER CONSTANT 03210034
C 03220034
4051 CONTINUE 03230034
IVTNUM = 405 03240034
C 03250034
C **** TEST 405 **** 03260034
C 03270034
IF (ICZERO) 34050, 4050, 34050 03280034
4050 CONTINUE 03290034
IVON01 = 223 03300034
IVCOMP = IVON01 * (-99) 03310034
GO TO 44050 03320034
34050 IVDELE = IVDELE + 1 03330034
WRITE (I02,80003) IVTNUM 03340034
IF (ICZERO) 44050, 4061, 44050 03350034
44050 IF (IVCOMP + 22077) 24050,14050,24050 03360034
14050 IVPASS = IVPASS + 1 03370034
WRITE (I02,80001) IVTNUM 03380034
GO TO 4061 03390034
24050 IVFAIL = IVFAIL + 1 03400034
IVCORR = -22077 03410034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03420034
4061 CONTINUE 03430034
IVTNUM = 406 03440034
C 03450034
C **** TEST 406 **** 03460034
C 03470034
IF (ICZERO) 34060, 4060, 34060 03480034
4060 CONTINUE 03490034
IVON01 = 11235 03500034
IVCOMP = IVON01 * (-2) 03510034
GO TO 44060 03520034
34060 IVDELE = IVDELE + 1 03530034
WRITE (I02,80003) IVTNUM 03540034
IF (ICZERO) 44060, 4071, 44060 03550034
44060 IF (IVCOMP + 22470) 24060,14060,24060 03560034
14060 IVPASS = IVPASS + 1 03570034
WRITE (I02,80001) IVTNUM 03580034
GO TO 4071 03590034
24060 IVFAIL = IVFAIL + 1 03600034
IVCORR = -22470 03610034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03620034
C 03630034
C TEST 407 THROUGH TEST 414 - IV = IC * IV 03640034
C 03650034
C TEST 407 AND TEST 408 03660034
C POSITIVE INTEGER CONSTANT, POSITIVE INTEGER VARIABLE 03670034
C 03680034
4071 CONTINUE 03690034
IVTNUM = 407 03700034
C 03710034
C **** TEST 407 **** 03720034
C 03730034
IF (ICZERO) 34070, 4070, 34070 03740034
4070 CONTINUE 03750034
IVON02 = 11 03760034
IVCOMP = 13*IVON02 03770034
GO TO 44070 03780034
34070 IVDELE = IVDELE + 1 03790034
WRITE (I02,80003) IVTNUM 03800034
IF (ICZERO) 44070, 4081, 44070 03810034
44070 IF (IVCOMP - 143) 24070,14070,24070 03820034
14070 IVPASS = IVPASS + 1 03830034
WRITE (I02,80001) IVTNUM 03840034
GO TO 4081 03850034
24070 IVFAIL = IVFAIL + 1 03860034
IVCORR = 143 03870034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03880034
4081 CONTINUE 03890034
IVTNUM = 408 03900034
C 03910034
C **** TEST 408 **** 03920034
C 03930034
IF (ICZERO) 34080, 4080, 34080 03940034
4080 CONTINUE 03950034
IVON02 = +11 03960034
IVCOMP = +13 * IVON02 03970034
GO TO 44080 03980034
34080 IVDELE = IVDELE + 1 03990034
WRITE (I02,80003) IVTNUM 04000034
IF (ICZERO) 44080, 4091, 44080 04010034
44080 IF (IVCOMP - 143) 24080,14080,24080 04020034
14080 IVPASS = IVPASS + 1 04030034
WRITE (I02,80001) IVTNUM 04040034
GO TO 4091 04050034
24080 IVFAIL = IVFAIL + 1 04060034
IVCORR = 143 04070034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04080034
C 04090034
C TEST 409 AND TEST 410 04100034
C POSITIVE INTEGER CONSTANT, NEGATIVE INTEGER VARIABLE 04110034
C 04120034
4091 CONTINUE 04130034
IVTNUM = 409 04140034
C 04150034
C **** TEST 409 **** 04160034
C 04170034
IF (ICZERO) 34090, 4090, 34090 04180034
4090 CONTINUE 04190034
IVON02 = -99 04200034
IVCOMP = 223 * IVON02 04210034
GO TO 44090 04220034
34090 IVDELE = IVDELE + 1 04230034
WRITE (I02,80003) IVTNUM 04240034
IF (ICZERO) 44090, 4101, 44090 04250034
44090 IF (IVCOMP + 22077) 24090,14090,24090 04260034
14090 IVPASS = IVPASS + 1 04270034
WRITE (I02,80001) IVTNUM 04280034
GO TO 4101 04290034
24090 IVFAIL = IVFAIL + 1 04300034
IVCORR =-22077 04310034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04320034
4101 CONTINUE 04330034
IVTNUM = 410 04340034
C 04350034
C **** TEST 410 **** 04360034
C 04370034
IF (ICZERO) 34100, 4100, 34100 04380034
4100 CONTINUE 04390034
IVON02 = -99 04400034
IVCOMP = +223*IVON02 04410034
GO TO 44100 04420034
34100 IVDELE = IVDELE + 1 04430034
WRITE (I02,80003) IVTNUM 04440034
IF (ICZERO) 44100, 4111, 44100 04450034
44100 IF (IVCOMP + 22077) 24100,14100,24100 04460034
14100 IVPASS = IVPASS + 1 04470034
WRITE (I02,80001) IVTNUM 04480034
GO TO 4111 04490034
24100 IVFAIL = IVFAIL + 1 04500034
IVCORR = -22077 04510034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04520034
C 04530034
C TEST 411 AND TEST 412 04540034
C NEGATIVE INTEGER CONSTANT, POSITIVE INTEGER VARIABLE 04550034
C 04560034
4111 CONTINUE 04570034
IVTNUM = 411 04580034
C 04590034
C **** TEST 411 **** 04600034
C 04610034
IF (ICZERO) 34110, 4110, 34110 04620034
4110 CONTINUE 04630034
IVON02 = 2 04640034
IVCOMP = (-11235) * IVON02 04650034
GO TO 44110 04660034
34110 IVDELE = IVDELE + 1 04670034
WRITE (I02,80003) IVTNUM 04680034
IF (ICZERO) 44110, 4121, 44110 04690034
44110 IF (IVCOMP + 22470) 24110,14110,24110 04700034
14110 IVPASS = IVPASS + 1 04710034
WRITE (I02,80001) IVTNUM 04720034
GO TO 4121 04730034
24110 IVFAIL = IVFAIL + 1 04740034
IVCORR = -22470 04750034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04760034
4121 CONTINUE 04770034
IVTNUM = 412 04780034
C 04790034
C **** TEST 412 **** 04800034
C 04810034
IF (ICZERO) 34120, 4120, 34120 04820034
4120 CONTINUE 04830034
IVON02 = +2 04840034
IVCOMP = -11235 * IVON02 04850034
GO TO 44120 04860034
34120 IVDELE = IVDELE + 1 04870034
WRITE (I02,80003) IVTNUM 04880034
IF (ICZERO) 44120, 4131, 44120 04890034
44120 IF (IVCOMP + 22470) 24120,14120,24120 04900034
14120 IVPASS=IVPASS + 1 04910034
WRITE (I02,80001) IVTNUM 04920034
GO TO 4131 04930034
24120 IVFAIL = IVFAIL + 1 04940034
IVCORR = -22470 04950034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04960034
C 04970034
C TEST 413 AND TEST 414 04980034
C NEGATIVE INTEGER CONSTANT, NEGATIVE INTEGER VARIABLE 04990034
C 05000034
4131 CONTINUE 05010034
IVTNUM = 413 05020034
C 05030034
C **** TEST 413 **** 05040034
C 05050034
IF (ICZERO) 34130, 4130, 34130 05060034
4130 CONTINUE 05070034
IVON02 = -3 05080034
IVCOMP = (-2) * IVON02 05090034
GO TO 44130 05100034
34130 IVDELE = IVDELE + 1 05110034
WRITE (I02,80003) IVTNUM 05120034
IF (ICZERO) 44130, 4141, 44130 05130034
44130 IF (IVCOMP - 6) 24130,14130,24130 05140034
14130 IVPASS = IVPASS + 1 05150034
WRITE (I02,80001) IVTNUM 05160034
GO TO 4141 05170034
24130 IVFAIL = IVFAIL + 1 05180034
IVCORR = 6 05190034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05200034
4141 CONTINUE 05210034
IVTNUM = 414 05220034
C 05230034
C **** TEST 414 **** 05240034
C 05250034
IF (ICZERO) 34140, 4140, 34140 05260034
4140 CONTINUE 05270034
IVON02 = -3 05280034
IVCOMP = -2 * IVON02 05290034
GO TO 44140 05300034
34140 IVDELE = IVDELE + 1 05310034
WRITE (I02,80003) IVTNUM 05320034
IF (ICZERO) 44140, 4151, 44140 05330034
44140 IF (IVCOMP - 6) 24140,14140,24140 05340034
14140 IVPASS = IVPASS + 1 05350034
WRITE (I02,80001) IVTNUM 05360034
GO TO 4151 05370034
24140 IVFAIL = IVFAIL + 1 05380034
IVCORR = 6 05390034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05400034
C 05410034
C TEST 415 THROUGH TEST 429 CONTAIN TWO INTEGER CONSTANTS, 05420034
C ONE INTEGER VARIABLE AND OPERATOR * IN ARITHMETIC EXPRESSION. 05430034
C 05440034
4151 CONTINUE 05450034
IVTNUM = 415 05460034
C 05470034
C **** TEST 415 **** 05480034
C 05490034
IF (ICZERO) 34150, 4150, 34150 05500034
4150 CONTINUE 05510034
IVON01 = 2 05520034
IVCOMP = IVON01 * 3 * 4 05530034
GO TO 44150 05540034
34150 IVDELE = IVDELE + 1 05550034
WRITE (I02,80003) IVTNUM 05560034
IF (ICZERO) 44150, 4161, 44150 05570034
44150 IF (IVCOMP - 24) 24150,14150,24150 05580034
14150 IVPASS = IVPASS + 1 05590034
WRITE (I02,80001) IVTNUM 05600034
GO TO 4161 05610034
24150 IVFAIL = IVFAIL + 1 05620034
IVCORR = 24 05630034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05640034
4161 CONTINUE 05650034
IVTNUM = 416 05660034
C 05670034
C **** TEST 416 **** 05680034
C 05690034
IF (ICZERO) 34160, 4160, 34160 05700034
4160 CONTINUE 05710034
IVON01 = -2 05720034
IVCOMP = IVON01 *3*4 05730034
GO TO 44160 05740034
34160 IVDELE = IVDELE + 1 05750034
WRITE (I02,80003) IVTNUM 05760034
IF (ICZERO) 44160, 4171, 44160 05770034
44160 IF (IVCOMP +24) 24160,14160,24160 05780034
14160 IVPASS = IVPASS + 1 05790034
WRITE (I02,80001) IVTNUM 05800034
GO TO 4171 05810034
24160 IVFAIL = IVFAIL + 1 05820034
IVCORR = -24 05830034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05840034
4171 CONTINUE 05850034
IVTNUM = 417 05860034
C 05870034
C **** TEST 417 **** 05880034
C 05890034
IF (ICZERO) 34170, 4170, 34170 05900034
4170 CONTINUE 05910034
IVON01 = -2 05920034
IVCOMP = IVON01*3*(-4) 05930034
GO TO 44170 05940034
34170 IVDELE = IVDELE + 1 05950034
WRITE (I02,80003) IVTNUM 05960034
IF (ICZERO) 44170, 4181, 44170 05970034
44170 IF (IVCOMP -24) 24170,14170,24170 05980034
14170 IVPASS = IVPASS + 1 05990034
WRITE (I02,80001) IVTNUM 06000034
GO TO 4181 06010034
24170 IVFAIL = IVFAIL + 1 06020034
IVCORR = 24 06030034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06040034
4181 CONTINUE 06050034
IVTNUM = 418 06060034
C 06070034
C **** TEST 418 **** 06080034
C 06090034
IF (ICZERO) 34180, 4180, 34180 06100034
4180 CONTINUE 06110034
IVON01 = -2 06120034
IVCOMP = IVON01*(-3)*(-4) 06130034
GO TO 44180 06140034
34180 IVDELE = IVDELE + 1 06150034
WRITE (I02,80003) IVTNUM 06160034
IF (ICZERO) 44180, 4191, 44180 06170034
44180 IF (IVCOMP +24) 24180,14180,24180 06180034
14180 IVPASS = IVPASS + 1 06190034
WRITE (I02,80001) IVTNUM 06200034
GO TO 4191 06210034
24180 IVFAIL = IVFAIL + 1 06220034
IVCORR = -24 06230034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06240034
4191 CONTINUE 06250034
IVTNUM = 419 06260034
C 06270034
C **** TEST 419 **** 06280034
C 06290034
IF (ICZERO) 34190, 4190, 34190 06300034
4190 CONTINUE 06310034
IVON02 = 51 06320034
IVCOMP = 23*IVON02*13 06330034
GO TO 44190 06340034
34190 IVDELE = IVDELE + 1 06350034
WRITE (I02,80003) IVTNUM 06360034
IF (ICZERO) 44190, 4201, 44190 06370034
44190 IF (IVCOMP-15249) 24190,14190,24190 06380034
14190 IVPASS = IVPASS + 1 06390034
WRITE (I02,80001) IVTNUM 06400034
GO TO 4201 06410034
24190 IVFAIL = IVFAIL + 1 06420034
IVCORR = 15249 06430034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06440034
4201 CONTINUE 06450034
IVTNUM = 420 06460034
C 06470034
C **** TEST 420 **** 06480034
C 06490034
IF (ICZERO) 34200, 4200, 34200 06500034
4200 CONTINUE 06510034
IVON02 = -51 06520034
IVCOMP = 23*IVON02*(-13) 06530034
GO TO 44200 06540034
34200 IVDELE = IVDELE + 1 06550034
WRITE (I02,80003) IVTNUM 06560034
IF (ICZERO) 44200, 4211, 44200 06570034
44200 IF (IVCOMP - 15249) 24200,14200,24200 06580034
14200 IVPASS = IVPASS + 1 06590034
WRITE (I02,80001) IVTNUM 06600034
GO TO 4211 06610034
24200 IVFAIL = IVFAIL + 1 06620034
IVCORR = 15249 06630034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06640034
4211 CONTINUE 06650034
IVTNUM = 421 06660034
C 06670034
C **** TEST 421 **** 06680034
C 06690034
IF (ICZERO) 34210, 4210, 34210 06700034
4210 CONTINUE 06710034
IVON02 = -51 06720034
IVCOMP = 23*IVON02*13 06730034
GO TO 44210 06740034
34210 IVDELE = IVDELE + 1 06750034
WRITE (I02,80003) IVTNUM 06760034
IF (ICZERO) 44210, 4221, 44210 06770034
44210 IF (IVCOMP+15249) 24210,14210,24210 06780034
14210 IVPASS = IVPASS + 1 06790034
WRITE (I02,80001) IVTNUM 06800034
GO TO 4221 06810034
24210 IVFAIL = IVFAIL + 1 06820034
IVCORR = -15249 06830034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06840034
4221 CONTINUE 06850034
IVTNUM = 422 06860034
C 06870034
C **** TEST 422 **** 06880034
C 06890034
IF (ICZERO) 34220, 4220, 34220 06900034
4220 CONTINUE 06910034
IVON02 = -51 06920034
IVCOMP =(-23)*IVON02*(-13) 06930034
GO TO 44220 06940034
34220 IVDELE = IVDELE + 1 06950034
WRITE (I02,80003) IVTNUM 06960034
IF (ICZERO) 44220, 4231, 44220 06970034
44220 IF (IVCOMP+15249) 24220,14220,24220 06980034
14220 IVPASS = IVPASS + 1 06990034
WRITE (I02,80001) IVTNUM 07000034
GO TO 4231 07010034
24220 IVFAIL = IVFAIL + 1 07020034
IVCORR = -15249 07030034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07040034
4231 CONTINUE 07050034
IVTNUM = 423 07060034
C 07070034
C **** TEST 423 **** 07080034
C 07090034
IF (ICZERO) 34230, 4230, 34230 07100034
4230 CONTINUE 07110034
IVON03 = 5461 07120034
IVCOMP = 2*3*IVON03 07130034
GO TO 44230 07140034
34230 IVDELE = IVDELE + 1 07150034
WRITE (I02,80003) IVTNUM 07160034
IF (ICZERO) 44230, 4241, 44230 07170034
44230 IF (IVCOMP - 32766) 24230,14230,24230 07180034
14230 IVPASS = IVPASS + 1 07190034
WRITE (I02,80001) IVTNUM 07200034
GO TO 4241 07210034
24230 IVFAIL = IVFAIL + 1 07220034
IVCORR = 32766 07230034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07240034
4241 CONTINUE 07250034
IVTNUM = 424 07260034
C 07270034
C **** TEST 424 **** 07280034
C 07290034
IF (ICZERO) 34240, 4240, 34240 07300034
4240 CONTINUE 07310034
IVON03 = -5461 07320034
IVCOMP = 2*3*IVON03 07330034
GO TO 44240 07340034
34240 IVDELE = IVDELE + 1 07350034
WRITE (I02,80003) IVTNUM 07360034
IF (ICZERO) 44240, 4251, 44240 07370034
44240 IF (IVCOMP +32766) 24240,14240,24240 07380034
14240 IVPASS = IVPASS + 1 07390034
WRITE (I02,80001) IVTNUM 07400034
GO TO 4251 07410034
24240 IVFAIL = IVFAIL + 1 07420034
IVCORR = -32766 07430034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07440034
4251 CONTINUE 07450034
IVTNUM = 425 07460034
C 07470034
C **** TEST 425 **** 07480034
C 07490034
IF (ICZERO) 34250, 4250, 34250 07500034
4250 CONTINUE 07510034
IVON03 = -5461 07520034
IVCOMP = -2*3*IVON03 07530034
GO TO 44250 07540034
34250 IVDELE = IVDELE + 1 07550034
WRITE (I02,80003) IVTNUM 07560034
IF (ICZERO) 44250, 4261, 44250 07570034
44250 IF (IVCOMP - 32766) 24250,14250,24250 07580034
14250 IVPASS = IVPASS + 1 07590034
WRITE (I02,80001) IVTNUM 07600034
GO TO 4261 07610034
24250 IVFAIL = IVFAIL + 1 07620034
IVCORR = 32766 07630034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07640034
C 07650034
C TEST 426 THROUGH TEST 429 USE PARENTHESES TO GROUP ELEMENTS 07660034
C IN ARITHMETIC EXPRESSION. 07670034
C 07680034
4261 CONTINUE 07690034
IVTNUM = 426 07700034
C 07710034
C **** TEST 426 **** 07720034
C 07730034
IF (ICZERO) 34260, 4260, 34260 07740034
4260 CONTINUE 07750034
IVON02 = 51 07760034
IVCOMP = (23*IVON02)*13 07770034
GO TO 44260 07780034
34260 IVDELE = IVDELE + 1 07790034
WRITE (I02,80003) IVTNUM 07800034
IF (ICZERO) 44260, 4271, 44260 07810034
44260 IF (IVCOMP -15249) 24260,14260,24260 07820034
14260 IVPASS = IVPASS + 1 07830034
WRITE (I02,80001) IVTNUM 07840034
GO TO 4271 07850034
24260 IVFAIL = IVFAIL + 1 07860034
IVCORR = 15249 07870034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07880034
4271 CONTINUE 07890034
IVTNUM = 427 07900034
C 07910034
C **** TEST 427 **** 07920034
C 07930034
IF (ICZERO) 34270, 4270, 34270 07940034
4270 CONTINUE 07950034
IVON02 = 51 07960034
IVCOMP = 23*(IVON02*13) 07970034
GO TO 44270 07980034
34270 IVDELE = IVDELE + 1 07990034
WRITE (I02,80003) IVTNUM 08000034
IF (ICZERO) 44270, 4281, 44270 08010034
44270 IF (IVCOMP-15249) 24270,14270,24270 08020034
14270 IVPASS = IVPASS + 1 08030034
WRITE (I02,80001) IVTNUM 08040034
GO TO 4281 08050034
24270 IVFAIL = IVFAIL + 1 08060034
IVCORR = 15249 08070034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 08080034
4281 CONTINUE 08090034
IVTNUM = 428 08100034
C 08110034
C **** TEST 428 **** 08120034
C 08130034
IF (ICZERO) 34280, 4280, 34280 08140034
4280 CONTINUE 08150034
IVON02 = -51 08160034
IVCOMP = -23 * (IVON02*(+13)) 08170034
GO TO 44280 08180034
34280 IVDELE = IVDELE + 1 08190034
WRITE (I02,80003) IVTNUM 08200034
IF (ICZERO) 44280, 4291, 44280 08210034
44280 IF (IVCOMP - 15249)24280,14280,24280 08220034
14280 IVPASS = IVPASS + 1 08230034
WRITE (I02,80001) IVTNUM 08240034
GO TO 4291 08250034
24280 IVFAIL = IVFAIL + 1 08260034
IVCORR = 15249 08270034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 08280034
4291 CONTINUE 08290034
IVTNUM = 429 08300034
C 08310034
C **** TEST 429 **** 08320034
C 08330034
IF (ICZERO) 34290, 4290, 34290 08340034
4290 CONTINUE 08350034
IVON02 = -51 08360034
IVCOMP = (-23)*(IVON02*(-13)) 08370034
GO TO 44290 08380034
34290 IVDELE = IVDELE + 1 08390034
WRITE (I02,80003) IVTNUM 08400034
IF (ICZERO) 44290, 4301, 44290 08410034
44290 IF (IVCOMP + 15249) 24290,14290,24290 08420034
14290 IVPASS = IVPASS + 1 08430034
WRITE (I02,80001) IVTNUM 08440034
GO TO 4301 08450034
24290 IVFAIL = IVFAIL + 1 08460034
IVCORR = -15249 08470034
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 08480034
C **** END OF TESTS **** 08490034
4301 CONTINUE 08500034
C 08510034
C WRITE PAGE FOOTINGS AND RUN SUMMARIES 08520034
99999 CONTINUE 08530034
WRITE (I02,90002) 08540034
WRITE (I02,90006) 08550034
WRITE (I02,90002) 08560034
WRITE (I02,90002) 08570034
WRITE (I02,90007) 08580034
WRITE (I02,90002) 08590034
WRITE (I02,90008) IVFAIL 08600034
WRITE (I02,90009) IVPASS 08610034
WRITE (I02,90010) IVDELE 08620034
C 08630034
C 08640034
C TERMINATE ROUTINE EXECUTION 08650034
STOP 08660034
C 08670034
C FORMAT STATEMENTS FOR PAGE HEADERS 08680034
90000 FORMAT ("1") 08690034
90002 FORMAT (" ") 08700034
90001 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 08710034
90003 FORMAT (" ",21X,"VERSION 2.1" ) 08720034
90004 FORMAT (" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" ) 08730034
90005 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT") 08740034
90006 FORMAT (" ",5X,"----------------------------------------------" ) 08750034
90011 FORMAT (" ",18X,"SUBSET LEVEL TEST" ) 08760034
C 08770034
C FORMAT STATEMENTS FOR RUN SUMMARIES 08780034
90008 FORMAT (" ",15X,I5," ERRORS ENCOUNTERED" ) 08790034
90009 FORMAT (" ",15X,I5," TESTS PASSED" ) 08800034
90010 FORMAT (" ",15X,I5," TESTS DELETED" ) 08810034
C 08820034
C FORMAT STATEMENTS FOR TEST RESULTS 08830034
80001 FORMAT (" ",4X,I5,7X,"PASS") 08840034
80002 FORMAT (" ",4X,I5,7X,"FAIL") 08850034
80003 FORMAT (" ",4X,I5,7X,"DELETED") 08860034
80004 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6) 08870034
80005 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5) 08880034
C 08890034
90007 FORMAT (" ",20X,"END OF PROGRAM FM034" ) 08900034
END 08910034