| PROGRAM FM351 00010351 |
| C 00020351 |
| C 00030351 |
| C THIS PROGRAM CONTAINS TESTS FOR COMPOUND ARITHMETIC 00040351 |
| C EXPRESSIONS WHICH NECESSITATE THE APPLICATION OF THE RULES 00050351 |
| C FOR ARITHMETIC OPERATOR PRECEDENCE. THESE TESTS INCLUDE ONES 00060351 |
| C WHICH EXERCIZE THE 00070351 |
| C 00080351 |
| C (1) USE OF ALL ARITHMETIC OPERATOR TYPES IN THE SAME STATEMENT. 00090351 |
| C (2) USE OF PARENTHESES TO OVERRIDE DEFAULT PRECEDENCES. 00100351 |
| C (3) USE OF ALL CLASSES OF PRIMARY OPERANDS. 00110351 |
| C (4) USE OF NESTED FUNCTION REFERENCES. 00120351 |
| C (5) USE OF MIXED DATA TYPES. 00130351 |
| C 00140351 |
| C REFERENCES - 00150351 |
| C 00160351 |
| C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, X3.9-197700170351 |
| C 00180351 |
| C SECTION 6.1 ARITHMETIC EXPRESSIONS 00190351 |
| C SECTION 6.5 PRECEDENCE OF OPERATORS 00200351 |
| C SECTION 6.6 EVALUATION OF EXPRESSIONS 00210351 |
| C 00220351 |
| C 00230351 |
| C ******************************************************************00240351 |
| C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00250351 |
| C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00260351 |
| C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00270351 |
| C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00280351 |
| C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00290351 |
| C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00300351 |
| C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00310351 |
| C THE RESULT OF EXECUTING THESE TESTS. 00320351 |
| C 00330351 |
| C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00340351 |
| C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00350351 |
| C 00360351 |
| C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00370351 |
| C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00380351 |
| C SOFTWARE STANDARDS VALIDATION GROUP 00390351 |
| C BUILDING 225 RM A266 00400351 |
| C GAITHERSBURG, MD 20899 00410351 |
| C ******************************************************************00420351 |
| C 00430351 |
| C 00440351 |
| IMPLICIT LOGICAL (L) 00450351 |
| IMPLICIT CHARACTER*14 (C) 00460351 |
| C 00470351 |
| DIMENSION IADN11(5), RADN11(5) 00480351 |
| IFOS01(IDON01,IDON02,IDON03) = IDON01 ** IDON02 ** IDON03 00490351 |
| IFOS02(IDON04,IDON05) = IADN11(IDON04) / IADN11(IDON05) 00500351 |
| IFOS04(IDON09,IDON10) = IADN11(IDON09) + IABS(IDON10) 00510351 |
| IFOS03(IDON06,IDON07,IDON08) = IFOS04(IDON06,IDON07) * IDON08 00520351 |
| RFOS01(RDON01,RDON02,RDON03) = RDON01 ** RDON02 ** RDON03 00530351 |
| RFOS02(IDON11,IDON12) = RADN11(IDON11) / RADN11(IDON12) 00540351 |
| RFOS04(IDON13,RDON10) = RADN11(IDON13) + ABS(RDON10) 00550351 |
| RFOS03(RDON06,RDON07,RDON08) = RFOS04(INT(RDON06),RDON07) * RDON0800560351 |
| IFOS05(IDON14,IDON16) = RADN11(IDON14) + IABS(IDON16) 00570351 |
| RFOS06(RDON17,IDON18,RDON19) = IFOS05(INT(RDON17),IDON18) * RDON1900580351 |
| C 00590351 |
| C 00600351 |
| C 00610351 |
| C INITIALIZATION SECTION. 00620351 |
| C 00630351 |
| C INITIALIZE CONSTANTS 00640351 |
| C ******************** 00650351 |
| C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00660351 |
| I01 = 5 00670351 |
| C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00680351 |
| I02 = 6 00690351 |
| C SYSTEM ENVIRONMENT SECTION 00700351 |
| C 00710351 |
| CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD.00720351 |
| C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00730351 |
| C (UNIT NUMBER FOR CARD READER). 00740351 |
| CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00750351 |
| C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00760351 |
| C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00770351 |
| C 00780351 |
| CX020 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD.00790351 |
| C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00800351 |
| C (UNIT NUMBER FOR PRINTER). 00810351 |
| CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00820351 |
| C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00830351 |
| C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00840351 |
| C 00850351 |
| IVPASS = 0 00860351 |
| IVFAIL = 0 00870351 |
| IVDELE = 0 00880351 |
| ICZERO = 0 00890351 |
| C 00900351 |
| C WRITE OUT PAGE HEADERS 00910351 |
| C 00920351 |
| WRITE (I02,90002) 00930351 |
| WRITE (I02,90006) 00940351 |
| WRITE (I02,90008) 00950351 |
| WRITE (I02,90004) 00960351 |
| WRITE (I02,90010) 00970351 |
| WRITE (I02,90004) 00980351 |
| WRITE (I02,90016) 00990351 |
| WRITE (I02,90001) 01000351 |
| WRITE (I02,90004) 01010351 |
| WRITE (I02,90012) 01020351 |
| WRITE (I02,90014) 01030351 |
| WRITE (I02,90004) 01040351 |
| C 01050351 |
| C 01060351 |
| C TESTS 1 THROUGH 10 DEAL ENTIRELY WITH INTEGER EXPRESSIONS. 01070351 |
| C 01080351 |
| C 01090351 |
| C **** FCVS PROGRAM 351 - TEST 001 **** 01100351 |
| C 01110351 |
| C TEST 1 CHECKS AN INTEGER EXPRESSION WHERE ALL FIVE ARITHMETIC 01120351 |
| C OPERATORS ARE USED AND ALL OPERAND PRIMARIES ARE SIMPLE INTEGER 01130351 |
| C VARIABLES. NO PARENTHESES ARE USED TO UPSET DEFAULT PRECEDENCES. 01140351 |
| C 01150351 |
| IVTNUM = 1 01160351 |
| IF (ICZERO) 30010, 0010, 30010 01170351 |
| 0010 CONTINUE 01180351 |
| IVON01 = 7 01190351 |
| IVON02 = 3 01200351 |
| IVON03 = 573 01210351 |
| IVON04 = 23 01220351 |
| IVON05 = 3 01230351 |
| IVON06 = -7 01240351 |
| IVCOMP = IVON01 ** IVON02 + IVON03 - IVON04 * IVON05 / IVON06 01250351 |
| IVCORR = 925 01260351 |
| 40010 IF (IVCOMP - 925) 20010, 10010, 20010 01270351 |
| 30010 IVDELE = IVDELE + 1 01280351 |
| WRITE (I02,80000) IVTNUM 01290351 |
| IF (ICZERO) 10010, 0021, 20010 01300351 |
| 10010 IVPASS = IVPASS + 1 01310351 |
| WRITE (I02,80002) IVTNUM 01320351 |
| GO TO 0021 01330351 |
| 20010 IVFAIL = IVFAIL + 1 01340351 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01350351 |
| 0021 CONTINUE 01360351 |
| C 01370351 |
| C **** FCVS PROGRAM 351 - TEST 002 **** 01380351 |
| C 01390351 |
| C TEST 2, LIKE TEST 1, CHECKS AN INTEGER EXPRESSION WHERE ALL 01400351 |
| C FIVE ARITHMETIC OPERATORS ARE USED AND ALL OPERANDS ARE SIMPLE 01410351 |
| C INTEGER VARIABLES; BUT IN THIS TEST, PARENTHESES ARE USED, AS IS 01420351 |
| C A UNARY OPERATOR. 01430351 |
| C 01440351 |
| IVTNUM = 2 01450351 |
| IF (ICZERO) 30020, 0020, 30020 01460351 |
| 0020 CONTINUE 01470351 |
| IVON01 = 7 01480351 |
| IVON02 = 3 01490351 |
| IVON03 = 5 01500351 |
| IVON04 = -3 01510351 |
| IVON05 = 3 01520351 |
| IVCOMP = -(IVON01 / IVON02) + (IVON03 * IVON04 ** IVON05) 01530351 |
| IVCORR = -137 01540351 |
| 40020 IF (IVCOMP + 137) 20020, 10020, 20020 01550351 |
| 30020 IVDELE = IVDELE + 1 01560351 |
| WRITE (I02,80000) IVTNUM 01570351 |
| IF (ICZERO) 10020, 0031, 20020 01580351 |
| 10020 IVPASS = IVPASS + 1 01590351 |
| WRITE (I02,80002) IVTNUM 01600351 |
| GO TO 0031 01610351 |
| 20020 IVFAIL = IVFAIL + 1 01620351 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01630351 |
| 0031 CONTINUE 01640351 |
| C 01650351 |
| C **** FCVS PROGRAM 351 - TEST 003 **** 01660351 |
| C 01670351 |
| C TEST 3 IS SIMILAR TO TEST 2 EXCEPT THAT IT EMPLOYS NESTED 01680351 |
| C PARENTHESES. 01690351 |
| C 01700351 |
| IVTNUM = 3 01710351 |
| IF (ICZERO) 30030, 0030, 30030 01720351 |
| 0030 CONTINUE 01730351 |
| IVON01 = 5 01740351 |
| IVON02 = 3 01750351 |
| IVON03 = 5 01760351 |
| IVON04 = 17 01770351 |
| IVON05 = 14 01780351 |
| IVON06 = 3 01790351 |
| IVCOMP = IVON01 ** (-(IVON02 + (IVON03 - IVON04)) - (IVON05 / 01800351 |
| 1 IVON06)) 01810351 |
| IVCORR = 3125 01820351 |
| 40030 IF (IVCOMP - 3125) 20030, 10030, 20030 01830351 |
| 30030 IVDELE = IVDELE + 1 01840351 |
| WRITE (I02,80000) IVTNUM 01850351 |
| IF (ICZERO) 10030, 0041, 20030 01860351 |
| 10030 IVPASS = IVPASS + 1 01870351 |
| WRITE (I02,80002) IVTNUM 01880351 |
| GO TO 0041 01890351 |
| 20030 IVFAIL = IVFAIL + 1 01900351 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01910351 |
| 0041 CONTINUE 01920351 |
| C 01930351 |
| C **** FCVS PROGRAM 351 - TEST 004 **** 01940351 |
| C 01950351 |
| C TEST 4 IS SIMILAR TO TEST 2 AND 3 EXCEPT THAT THE 01960351 |
| C PARENTHESES USED ARE EFFECTIVELY EXTRANEOUS. 01970351 |
| C 01980351 |
| IVTNUM = 4 01990351 |
| IF (ICZERO) 30040, 0040, 30040 02000351 |
| 0040 CONTINUE 02010351 |
| IVON01 = 3 02020351 |
| IVON02 = 4 02030351 |
| IVON03 = 5 02040351 |
| IVON04 = 2 02050351 |
| IVON05 = 3 02060351 |
| IVON06 = 4 02070351 |
| IVCOMP = ((IVON01) ** (IVON02) + (IVON03) - (IVON04) * 02080351 |
| 1 (IVON05) / (IVON06)) 02090351 |
| IVCORR = 85 02100351 |
| 40040 IF (IVCOMP - 85) 20040, 10040, 20040 02110351 |
| 30040 IVDELE = IVDELE + 1 02120351 |
| WRITE (I02,80000) IVTNUM 02130351 |
| IF (ICZERO) 10040, 0051, 20040 02140351 |
| 10040 IVPASS = IVPASS + 1 02150351 |
| WRITE (I02,80002) IVTNUM 02160351 |
| GO TO 0051 02170351 |
| 20040 IVFAIL = IVFAIL + 1 02180351 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02190351 |
| 0051 CONTINUE 02200351 |
| C 02210351 |
| C **** FCVS PROGRAM 351 - TEST 005 **** 02220351 |
| C 02230351 |
| C TEST 5 CONTINUES THE TESTING OF EXPRESSIONS USING ONLY 02240351 |
| C INTEGER VARIABLE OPERANDS CONNECTED BY ARITHMETIC OPERATORS, 02250351 |
| C AND USING PARENTHESES TO OVERRIDE PRECEDENCES. 02260351 |
| C 02270351 |
| IVTNUM = 5 02280351 |
| IF (ICZERO) 30050, 0050, 30050 02290351 |
| 0050 CONTINUE 02300351 |
| IVON01 = 57 02310351 |
| IVON02 = -3 02320351 |
| IVON03 = 4 02330351 |
| IVON04 = -1 02340351 |
| IVON05 = -5 02350351 |
| IVON06 = -2 02360351 |
| IVCOMP = -IVON01 ** (IVON02 + IVON03 - IVON04) * 02370351 |
| 1 (IVON05 / IVON06) 02380351 |
| IVCORR = -6498 02390351 |
| 40050 IF (IVCOMP + 6498) 20050, 10050, 20050 02400351 |
| 30050 IVDELE = IVDELE + 1 02410351 |
| WRITE (I02,80000) IVTNUM 02420351 |
| IF (ICZERO) 10050, 0061, 20050 02430351 |
| 10050 IVPASS = IVPASS + 1 02440351 |
| WRITE (I02,80002) IVTNUM 02450351 |
| GO TO 0061 02460351 |
| 20050 IVFAIL = IVFAIL + 1 02470351 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02480351 |
| 0061 CONTINUE 02490351 |
| C 02500351 |
| C **** FCVS PROGRAM 351 - TEST 006 **** 02510351 |
| C 02520351 |
| C TEST 6 CONTINUES THE TESTING OF EXPRESSIONS USING ONLY 02530351 |
| C INTEGER VARIABLE OPERANDS CONNECTED BY ARITHMETIC OPERATORS, 02540351 |
| C AND USING PARENTHESES TO OVERRIDE PRECEDENCES. 02550351 |
| C 02560351 |
| IVTNUM = 6 02570351 |
| IF (ICZERO) 30060, 0060, 30060 02580351 |
| 0060 CONTINUE 02590351 |
| IVON01 = 5 02600351 |
| IVON02 = 3 02610351 |
| IVON03 = 4 02620351 |
| IVON04 = 5496 02630351 |
| IVON05 = 7 02640351 |
| IVON06 = -3 02650351 |
| IVCOMP = ((IVON01 * (IVON02 / IVON03)) + IVON04) / IVON05 - 02660351 |
| 1 (-IVON06) 02670351 |
| IVCORR = 782 02680351 |
| 40060 IF (IVCOMP - 782) 20060, 10060, 20060 02690351 |
| 30060 IVDELE = IVDELE + 1 02700351 |
| WRITE (I02,80000) IVTNUM 02710351 |
| IF (ICZERO) 10060, 0071, 20060 02720351 |
| 10060 IVPASS = IVPASS + 1 02730351 |
| WRITE (I02,80002) IVTNUM 02740351 |
| GO TO 0071 02750351 |
| 20060 IVFAIL = IVFAIL + 1 02760351 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02770351 |
| 0071 CONTINUE 02780351 |
| C 02790351 |
| C **** FCVS PROGRAM 351 - TEST 007 **** 02800351 |
| C 02810351 |
| C IN TEST 7, AN INTEGER EXPRESSION INVOLVING ALL FIVE 02820351 |
| C ARITHMETIC OPERATORS TOGETHER WITH PARENTHESES IS EVALUATED, 02830351 |
| C BUT UNLIKE TESTS 1 THROUGH 6 WHERE ALL OPERANDS WERE INTEGER 02840351 |
| C VARIABLES, THE OPERANDS IN TEST 7 ARE CLASSED AS INTEGER 02850351 |
| C VARIABLES, INTEGER CONSTANTS, INTEGER ARRAY ELEMENTS, AND INTEGER 02860351 |
| C FUNCTION REFERENCES. 02870351 |
| C 02880351 |
| IVTNUM = 7 02890351 |
| IF (ICZERO) 30070, 0070, 30070 02900351 |
| 0070 CONTINUE 02910351 |
| IVON01 = 573 02920351 |
| IVON02 = 1 02930351 |
| IVON03 = 3 02940351 |
| IVON04 = 2 02950351 |
| IVON05 = 3 02960351 |
| IADN11(3) = 3071 02970351 |
| IVCOMP = (IVON01 + 1) - (5 + IADN11(IVON03)) / 02980351 |
| 1 (IFOS01(IVON03,IVON04,IVON05) ** IVON02) 02990351 |
| IVCORR = 574 03000351 |
| 40070 IF (IVCOMP - 574) 20070, 10070, 20070 03010351 |
| 30070 IVDELE = IVDELE + 1 03020351 |
| WRITE (I02,80000) IVTNUM 03030351 |
| IF (ICZERO) 10070, 0081, 20070 03040351 |
| 10070 IVPASS = IVPASS + 1 03050351 |
| WRITE (I02,80002) IVTNUM 03060351 |
| GO TO 0081 03070351 |
| 20070 IVFAIL = IVFAIL + 1 03080351 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03090351 |
| 0081 CONTINUE 03100351 |
| C 03110351 |
| C **** FCVS PROGRAM 351 - TEST 008 **** 03120351 |
| C 03130351 |
| C TEST 8 IS IDENTICAL TO TEST 7 EXCEPT THAT PARENTHESES ARE 03140351 |
| C USED TO CHANGE THE ORDER OF SUB-EXPRESSION EVALUATION. 03150351 |
| C 03160351 |
| IVTNUM = 8 03170351 |
| IF (ICZERO) 30080, 0080, 30080 03180351 |
| 0080 CONTINUE 03190351 |
| IVON01 = 573 03200351 |
| IVON02 = 1 03210351 |
| IVON03 = 3 03220351 |
| IVON04 = 2 03230351 |
| IVON05 = 3 03240351 |
| IADN11(3) = 3071 03250351 |
| IVCOMP = ((IVON01 + 1) - (5 + IADN11(IVON03))) / 03260351 |
| 1 IFOS01(IVON03,IVON04,IVON05) ** IVON02 03270351 |
| IVCORR = 0 03280351 |
| 40080 IF (IVCOMP) 20080, 10080, 20080 03290351 |
| 30080 IVDELE = IVDELE + 1 03300351 |
| WRITE (I02,80000) IVTNUM 03310351 |
| IF (ICZERO) 10080, 0091, 20080 03320351 |
| 10080 IVPASS = IVPASS + 1 03330351 |
| WRITE (I02,80002) IVTNUM 03340351 |
| GO TO 0091 03350351 |
| 20080 IVFAIL = IVFAIL + 1 03360351 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03370351 |
| 0091 CONTINUE 03380351 |
| C 03390351 |
| C **** FCVS PROGRAM 351 - TEST 009 **** 03400351 |
| C 03410351 |
| C TEST 9 IS SIMILAR TO TESTS 7 AND 8 EXCEPT THAT THE 03420351 |
| C FUNCTION REFERENCE IN TURN EVALUATES ARRAY ELEMENTS. 03430351 |
| C 03440351 |
| IVTNUM = 9 03450351 |
| IF (ICZERO) 30090, 0090, 30090 03460351 |
| 0090 CONTINUE 03470351 |
| IVON01 = 7 03480351 |
| IVON02 = 3 03490351 |
| IVON03 = 2 03500351 |
| IVON04 = 1 03510351 |
| IVON05 = 4 03520351 |
| IADN11(1) = 5 03530351 |
| IADN11(2) = 2 03540351 |
| IADN11(4) = 2 03550351 |
| IVCOMP = (IVON01 - 8 * IFOS02(IVON04,IVON03)) / IADN11(IVON05) + 03560351 |
| 1 13 ** IVON02 03570351 |
| IVCORR = 2193 03580351 |
| 40090 IF (IVCOMP - 2193) 20090, 10090, 20090 03590351 |
| 30090 IVDELE = IVDELE + 1 03600351 |
| WRITE (I02,80000) IVTNUM 03610351 |
| IF (ICZERO) 10090, 0101, 20090 03620351 |
| 10090 IVPASS = IVPASS + 1 03630351 |
| WRITE (I02,80002) IVTNUM 03640351 |
| GO TO 0101 03650351 |
| 20090 IVFAIL = IVFAIL + 1 03660351 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03670351 |
| 0101 CONTINUE 03680351 |
| C 03690351 |
| C **** FCVS PROGRAM 351 - TEST 010 **** 03700351 |
| C 03710351 |
| C TEST 10 EVALUATES AN INTEGER EXPRESSION WHICH CONTAINS 03720351 |
| C FUNCTION REFERENCES NESTED TO THREE LEVELS. THE OUTER TWO 03730351 |
| C LEVELS ARE STATEMENT FUNCTION REFERENCES AND THE INNERMOST LEVEL 03740351 |
| C IS AN INTRINSIC FUNCTION REFERENCE. 03750351 |
| C 03760351 |
| IVTNUM = 10 03770351 |
| IF (ICZERO) 30100, 0100, 30100 03780351 |
| 0100 CONTINUE 03790351 |
| IVON01 = -51 03800351 |
| IVON02 = 4 03810351 |
| IVON03 = -101 03820351 |
| IVON04 = 13 03830351 |
| IVON05 = 3 03840351 |
| IVON06 = 5 03850351 |
| IVON07 = -37 03860351 |
| IADN11(4) = 87 03870351 |
| IADN11(5) = 409 03880351 |
| IVCOMP = (IVON01 + IFOS03(IVON02,IVON03,IVON04)) * IVON05 - 03890351 |
| 1 IFOS04(IVON06,IVON07) 03900351 |
| IVCORR = 6733 03910351 |
| 40100 IF (IVCOMP - 6733) 20100, 10100, 20100 03920351 |
| 30100 IVDELE = IVDELE + 1 03930351 |
| WRITE (I02,80000) IVTNUM 03940351 |
| IF (ICZERO) 10100, 0111, 20100 03950351 |
| 10100 IVPASS = IVPASS + 1 03960351 |
| WRITE (I02,80002) IVTNUM 03970351 |
| GO TO 0111 03980351 |
| 20100 IVFAIL = IVFAIL + 1 03990351 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04000351 |
| 0111 CONTINUE 04010351 |
| C 04020351 |
| C TESTS 11 THROUGH 20 REPEAT TESTS 1 THROUGH 10 EXCEPT THAT 04030351 |
| C TESTS 11 THROUGH 20 DEAL ENTIRELY WITH REAL ARITHMETIC 04040351 |
| C EXPRESSIONS. 04050351 |
| C 04060351 |
| C 04070351 |
| C **** FCVS PROGRAM 351 - TEST 011 **** 04080351 |
| C 04090351 |
| C TEST 11 TESTS A REAL EXPRESSION WHERE ALL FIVE ARITHMETIC 04100351 |
| C OPERATORS ARE USED AND ALL OPERAND PRIMARIES ARE SIMPLE REAL 04110351 |
| C VARIABLES. 04120351 |
| C 04130351 |
| IVTNUM = 11 04140351 |
| IF (ICZERO) 30110, 0110, 30110 04150351 |
| 0110 CONTINUE 04160351 |
| RVON01 = 3.2 04170351 |
| RVON02 = 23.051 04180351 |
| RVON03 = 1545 E7 04190351 |
| RVON04 = -23.457 04200351 |
| RVON05 = .02 E3 04210351 |
| RVON06 = 7.210745323 E-10 04220351 |
| RVCOMP = RVON01 ** RVON02 + RVON03 - RVON04 * RVON05 / RVON06 04230351 |
| RVCORR = 1.10683 E12 04240351 |
| 40110 IF (RVCOMP - 1.1063 E12) 20110, 10110, 40111 04250351 |
| 40111 IF (RVCOMP - 1.1073 E12) 10110, 10110, 20110 04260351 |
| 30110 IVDELE = IVDELE + 1 04270351 |
| WRITE (I02,80000) IVTNUM 04280351 |
| IF (ICZERO) 10110, 0121, 20110 04290351 |
| 10110 IVPASS = IVPASS + 1 04300351 |
| WRITE (I02,80002) IVTNUM 04310351 |
| GO TO 0121 04320351 |
| 20110 IVFAIL = IVFAIL + 1 04330351 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 04340351 |
| 0121 CONTINUE 04350351 |
| C 04360351 |
| C **** FCVS PROGRAM 351 - TEST 012 **** 04370351 |
| C 04380351 |
| C TEST 12, LIKE TEST 11, CHECKS A REAL EXPRESSION WHERE ALL 04390351 |
| C FIVE ARITHMETIC OPERATORS ARE USED AND ALL OPERANDS ARE REAL 04400351 |
| C VARIABLES, BUT IN TEST 12, PARENTHESES ARE USED, AS IS ALSO A 04410351 |
| C UNARY OPERATOR. 04420351 |
| C 04430351 |
| IVTNUM = 12 04440351 |
| IF (ICZERO) 30120, 0120, 30120 04450351 |
| 0120 CONTINUE 04460351 |
| RVON01 = 3.2 04470351 |
| RVON02 = 23.051 04480351 |
| RVON03 = 1545 E-3 04490351 |
| RVON04 = 5.75 E-1 04500351 |
| RVON05 = 2.22 E+1 04510351 |
| RVCOMP = -(RVON01 / RVON02) + (RVON03 * RVON04 ** RVON05) 04520351 |
| RVCORR = -.13882 04530351 |
| 40120 IF (RVCOMP + .13887) 20120, 10120, 40121 04540351 |
| 40121 IF (RVCOMP + .13877) 10120, 10120, 20120 04550351 |
| 30120 IVDELE = IVDELE + 1 04560351 |
| WRITE (I02,80000) IVTNUM 04570351 |
| IF (ICZERO) 10120, 0131, 20120 04580351 |
| 10120 IVPASS = IVPASS + 1 04590351 |
| WRITE (I02,80002) IVTNUM 04600351 |
| GO TO 0131 04610351 |
| 20120 IVFAIL = IVFAIL + 1 04620351 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 04630351 |
| 0131 CONTINUE 04640351 |
| C 04650351 |
| C **** FCVS PROGRAM 351 - TEST 013 **** 04660351 |
| C 04670351 |
| C TEST 13 IS SIMILAR TO TEST 12 EXCEPT THAT TEST 13 EMPLOYS 04680351 |
| C NESTED PARENTHESES. 04690351 |
| C 04700351 |
| IVTNUM = 13 04710351 |
| IF (ICZERO) 30130, 0130, 30130 04720351 |
| 0130 CONTINUE 04730351 |
| RVON01 = 3.2 04740351 |
| RVON02 = -63.051 04750351 |
| RVON03 = 1545 E-3 04760351 |
| RVON04 = 5.75 E-1 04770351 |
| RVON05 = 2.22 E1 04780351 |
| RVON06 = 0.523 04790351 |
| RVCOMP = RVON01 ** (-(RVON02 + (RVON03 - RVON04)) - 04800351 |
| 1 (RVON05 / RVON06)) 04810351 |
| RVCORR = 8.27757 E9 04820351 |
| 40130 IF (RVCOMP - 8.2770 E9) 20130, 10130, 40131 04830351 |
| 40131 IF (RVCOMP - 8.2780 E9) 10130, 10130, 20130 04840351 |
| 30130 IVDELE = IVDELE + 1 04850351 |
| WRITE (I02,80000) IVTNUM 04860351 |
| IF (ICZERO) 10130, 0141, 20130 04870351 |
| 10130 IVPASS = IVPASS + 1 04880351 |
| WRITE (I02,80002) IVTNUM 04890351 |
| GO TO 0141 04900351 |
| 20130 IVFAIL = IVFAIL + 1 04910351 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 04920351 |
| 0141 CONTINUE 04930351 |
| C 04940351 |
| C **** FCVS PROGRAM 351 - TEST 014 **** 04950351 |
| C 04960351 |
| C TEST 14 IS SIMILAR TO TESTS 12 AND 13 EXCEPT THAT THE 04970351 |
| C PARENTHESES USED ARE EFFECTIVELY EXTRANEOUS. 04980351 |
| C 04990351 |
| IVTNUM = 14 05000351 |
| IF (ICZERO) 30140, 0140, 30140 05010351 |
| 0140 CONTINUE 05020351 |
| RVON01 = 5.4515 E18 05030351 |
| RVON02 = .076923 05040351 |
| RVON03 = 23 E-2 05050351 |
| RVON04 = 7 E7 05060351 |
| RVON05 = 45.23 E5 05070351 |
| RVON06 = 5.65375 E12 05080351 |
| RVCOMP = ((RVON01) ** (RVON02) + (RVON03) - (RVON04) * (RVON05) / 05090351 |
| 1 (RVON06)) 05100351 |
| RVCORR = -28.147 05110351 |
| 40140 IF (RVCOMP + 28.152) 20140, 10140, 40141 05120351 |
| 40141 IF (RVCOMP + 28.142) 10140, 10140, 20140 05130351 |
| 30140 IVDELE = IVDELE + 1 05140351 |
| WRITE (I02,80000) IVTNUM 05150351 |
| IF (ICZERO) 10140, 0151, 20140 05160351 |
| 10140 IVPASS = IVPASS + 1 05170351 |
| WRITE (I02,80002) IVTNUM 05180351 |
| GO TO 0151 05190351 |
| 20140 IVFAIL = IVFAIL + 1 05200351 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05210351 |
| 0151 CONTINUE 05220351 |
| C 05230351 |
| C **** FCVS PROGRAM 351 - TEST 015 **** 05240351 |
| C 05250351 |
| C TEST 15 CONTINUES THE TESTING OF EXPRESSIONS USING ONLY 05260351 |
| C REAL VARIABLE OPERANDS CONNECTED BY ARITHMETIC OPERATORS, AND 05270351 |
| C USING PARENTHESES TO OVERRIDE PRECEDENCES. 05280351 |
| C 05290351 |
| IVTNUM = 15 05300351 |
| IF (ICZERO) 30150, 0150, 30150 05310351 |
| 0150 CONTINUE 05320351 |
| RVON01 = .11341 E1 05330351 |
| RVON02 = 7.1417 05340351 |
| RVON03 = 5.2113 E1 05350351 |
| RVON04 = 10.001 05360351 |
| RVON05 = 7.241 E5 05370351 |
| RVON06 = 5.7777 E-3 05380351 |
| RVCOMP = -RVON01 ** (RVON02 + RVON03 - RVON04) * (RVON05 / RVON06)05390351 |
| RVCORR = -6.1635 E10 05400351 |
| 40150 IF (RVCOMP + 6.1640 E10) 20150, 10150, 40151 05410351 |
| 40151 IF (RVCOMP + 6.1630 E10) 10150, 10150, 20150 05420351 |
| 30150 IVDELE = IVDELE + 1 05430351 |
| WRITE (I02,80000) IVTNUM 05440351 |
| IF (ICZERO) 10150, 0161, 20150 05450351 |
| 10150 IVPASS = IVPASS + 1 05460351 |
| WRITE (I02,80002) IVTNUM 05470351 |
| GO TO 0161 05480351 |
| 20150 IVFAIL = IVFAIL + 1 05490351 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05500351 |
| 0161 CONTINUE 05510351 |
| C 05520351 |
| C **** FCVS PROGRAM 351 - TEST 016 **** 05530351 |
| C 05540351 |
| C TEST 16 CONTINUES THE TESTING OF EXPRESSIONS USING ONLY 05550351 |
| C REAL VARIABLE OPERANDS CONNECTED BY ARITHMETIC OPERATORS, AND 05560351 |
| C USING PARENTHESES TO OVERRIDE PRECEDENCES. 05570351 |
| C 05580351 |
| IVTNUM = 16 05590351 |
| IF (ICZERO) 30160, 0160, 30160 05600351 |
| 0160 CONTINUE 05610351 |
| RVON01 = 6.4003 E18 05620351 |
| RVON02 = -3.7717 E-2 05630351 |
| RVON03 = -5.1195 E3 05640351 |
| RVON04 = 1.7521 E14 05650351 |
| RVON05 = 1.0533 E3 05660351 |
| RVON06 = -9.4207 E11 05670351 |
| RVCOMP = ((RVON01 * (RVON02 / RVON03)) + RVON04) / RVON05 - 05680351 |
| 1 (-RVON06) 05690351 |
| RVCORR = -7.3096 E11 05700351 |
| 40160 IF (RVCOMP + 7.3101 E11) 20160, 10160, 40161 05710351 |
| 40161 IF (RVCOMP + 7.3091 E11) 10160, 10160, 20160 05720351 |
| 30160 IVDELE = IVDELE + 1 05730351 |
| WRITE (I02,80000) IVTNUM 05740351 |
| IF (ICZERO) 10160, 0171, 20160 05750351 |
| 10160 IVPASS = IVPASS + 1 05760351 |
| WRITE (I02,80002) IVTNUM 05770351 |
| GO TO 0171 05780351 |
| 20160 IVFAIL = IVFAIL + 1 05790351 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05800351 |
| 0171 CONTINUE 05810351 |
| C 05820351 |
| C **** FCVS PROGRAM 351 - TEST 017 **** 05830351 |
| C 05840351 |
| C IN TEST 17, A REAL EXPRESSION INVOLVING ALL FIVE ARITHMETIC 05850351 |
| C OPERATORS IS EVALUATED, BUT UNLIKE TESTS 11 THROUGH 16 WHERE 05860351 |
| C ALL OPERANDS WERE REAL VARIABLES, THE OPERANDS IN TEST 17 ARE 05870351 |
| C CLASSED AS REAL VARIABLES, REAL CONSTANTS, REAL ARRAY ELEMENTS, 05880351 |
| C AND REAL FUNCTION REFERENCES. 05890351 |
| C 05900351 |
| IVTNUM = 17 05910351 |
| IF (ICZERO) 30170, 0170, 30170 05920351 |
| 0170 CONTINUE 05930351 |
| RVON01 = 5.247 E10 05940351 |
| IVON01 = 3 05950351 |
| RVON02 = 1.07 E1 05960351 |
| RVON03 = 5.23 05970351 |
| RVON04 = 1.001 05980351 |
| RVON05 = 1.573 05990351 |
| RADN11(3) = 0.3947 E18 06000351 |
| RVCOMP = (RVON01 + 3.491 E10) - (4 E17 + RADN11(IVON01)) / 06010351 |
| 1 (RFOS01(RVON03,RVON04,RVON05) ** RVON02) 06020351 |
| RVCORR = 7.1526 E10 06030351 |
| 40170 IF (RVCOMP - 7.1521 E10) 20170, 10170, 40171 06040351 |
| 40171 IF (RVCOMP - 7.1531 E10) 10170, 10170, 20170 06050351 |
| 30170 IVDELE = IVDELE + 1 06060351 |
| WRITE (I02,80000) IVTNUM 06070351 |
| IF (ICZERO) 10170, 0181, 20170 06080351 |
| 10170 IVPASS = IVPASS + 1 06090351 |
| WRITE (I02,80002) IVTNUM 06100351 |
| GO TO 0181 06110351 |
| 20170 IVFAIL = IVFAIL + 1 06120351 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 06130351 |
| 0181 CONTINUE 06140351 |
| C 06150351 |
| C **** FCVS PROGRAM 351 - TEST 018 **** 06160351 |
| C 06170351 |
| C TEST 18 IS IDENTICAL TO TEST 17 EXCEPT THAT PARENTHESES ARE 06180351 |
| C USED TO CHANGE THE ORDER OF SUB-EXPRESSION EVALUATION. 06190351 |
| C 06200351 |
| IVTNUM = 18 06210351 |
| IF (ICZERO) 30180, 0180, 30180 06220351 |
| 0180 CONTINUE 06230351 |
| RVON01 = 5.247 E10 06240351 |
| IVON01 = 3 06250351 |
| RVON02 = 1.07 E1 06260351 |
| RVON03 = 5.23 06270351 |
| RVON04 = 1.001 06280351 |
| RVON05 = 1.573 06290351 |
| RADN11(3) = 0.3947 E18 06300351 |
| RVCOMP = ((RVON01 + 3.491 E10) - (4 E17 + RADN11(IVON01))) / 06310351 |
| 1 RFOS01(RVON03,RVON04,RVON05) ** RVON02 06320351 |
| RVCORR = -1.5854 E10 06330351 |
| 40180 IF (RVCOMP + 1.5859 E10) 20180, 10180, 40181 06340351 |
| 40181 IF (RVCOMP + 1.5849 E10) 10180, 10180, 20180 06350351 |
| 30180 IVDELE = IVDELE + 1 06360351 |
| WRITE (I02,80000) IVTNUM 06370351 |
| IF (ICZERO) 10180, 0191, 20180 06380351 |
| 10180 IVPASS = IVPASS + 1 06390351 |
| WRITE (I02,80002) IVTNUM 06400351 |
| GO TO 0191 06410351 |
| 20180 IVFAIL = IVFAIL + 1 06420351 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 06430351 |
| 0191 CONTINUE 06440351 |
| C 06450351 |
| C **** FCVS PROGRAM 351 - TEST 019 **** 06460351 |
| C 06470351 |
| C TEST 19 IS SIMILAR TO TESTS 17 AND 18 EXCEPT THAT THE 06480351 |
| C FUNCTION REFERENCES IN TURN EVALUATE ARRAY ELEMENTS. 06490351 |
| C 06500351 |
| IVTNUM = 19 06510351 |
| IF (ICZERO) 30190, 0190, 30190 06520351 |
| 0190 CONTINUE 06530351 |
| RVON01 = 5.026 E2 06540351 |
| RVON02 = 1.386 E1 06550351 |
| IVON03 = 2 06560351 |
| RVON04 = 1.9999 06570351 |
| RVON05 = 4.0127 06580351 |
| RADN11(1) = 3.004 E18 06590351 |
| RADN11(2) = 2.5705 E-1 06600351 |
| RADN11(4) = 7.993 E16 06610351 |
| RVCOMP = (RVON01 - 5.902 * RFOS02(INT(RVON04),INT(RVON05))) / 06620351 |
| 1 RADN11(IVON03) + 1.5372 ** RVON02 06630351 |
| RVCORR = 1.4797 E3 06640351 |
| 40190 IF (RVCORR - 1.4792 E3) 20190, 10190, 40191 06650351 |
| 40191 IF (RVCORR - 1.4802 E3) 10190, 10190, 20190 06660351 |
| 30190 IVDELE = IVDELE + 1 06670351 |
| WRITE (I02,80000) IVTNUM 06680351 |
| IF (ICZERO) 10190, 0201, 20190 06690351 |
| 10190 IVPASS = IVPASS + 1 06700351 |
| WRITE (I02,80002) IVTNUM 06710351 |
| GO TO 0201 06720351 |
| 20190 IVFAIL = IVFAIL + 1 06730351 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 06740351 |
| 0201 CONTINUE 06750351 |
| C 06760351 |
| C **** FCVS PROGRAM 351 - TEST 020 **** 06770351 |
| C 06780351 |
| C TEST 20 EVALUATES A REAL EXPRESSION WHICH CONTAINS FUNCTION 06790351 |
| C REFERENCES NESTED TO THREE LEVELS. THE OUTER TWO LEVELS ARE 06800351 |
| C STATEMENT FUNCTION REFERENCES AND THE INNERMOST LEVEL IS AN 06810351 |
| C INTRINSIC FUNCTION REFERENCE. 06820351 |
| C 06830351 |
| IVTNUM = 20 06840351 |
| IF (ICZERO) 30200, 0200, 30200 06850351 |
| 0200 CONTINUE 06860351 |
| RVON01 = 4.7117 E05 06870351 |
| RVON02 = 5.987 06880351 |
| RVON03 = 2.00000 E5 06890351 |
| RVON04 = 1.0 E2 06900351 |
| RVON05 = 1.5222 E9 06910351 |
| IVON06 = 4 06920351 |
| RVON07 = -3.2107 E14 06930351 |
| RADN11(4) = 7.425 E14 06940351 |
| RADN11(5) = -2.4015 E5 06950351 |
| RVCOMP = (RVON01 + RFOS03(RVON02,RVON03,RVON04)) * RVON05 - 06960351 |
| 1 RFOS04(IVON06,RVON07) 06970351 |
| RVCORR = -6.4580 E15 06980351 |
| 40200 IF (RVCOMP + 6.4585 E15) 20200, 10200, 40201 06990351 |
| 40201 IF (RVCOMP + 6.4575 E15) 10200, 10200, 20200 07000351 |
| 30200 IVDELE = IVDELE + 1 07010351 |
| WRITE (I02,80000) IVTNUM 07020351 |
| IF (ICZERO) 10200, 0211, 20200 07030351 |
| 10200 IVPASS = IVPASS + 1 07040351 |
| WRITE (I02,80002) IVTNUM 07050351 |
| GO TO 0211 07060351 |
| 20200 IVFAIL = IVFAIL + 1 07070351 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 07080351 |
| 0211 CONTINUE 07090351 |
| C 07100351 |
| C TESTS 21 THROUGH 25 DEAL WITH MIXTURES OF REAL AND INTEGER 07110351 |
| C EXPRESSIONS; I.E., THESE ARE TESTS WHICH EVALUATE EXPRESSIONS 07120351 |
| C CONTAINING BOTH REAL SUB-EXPRESSIONS AND INTEGER SUB-EXPRESSIONS 07130351 |
| C AND THEN ASSIGN THE RESULTS TO EITHER AN INTEGER OR A REAL 07140351 |
| C VARIABLE. 07150351 |
| C 07160351 |
| C 07170351 |
| C **** FCVS PROGRAM 351 - TEST 021 **** 07180351 |
| C 07190351 |
| C TEST 21 USES ALL FIVE ARITHMETIC OPERATORS AND A COMBINATION 07200351 |
| C OF INTEGER AND REAL VARIABLES. NO PARENTHESES ARE USED. FINAL 07210351 |
| C ASSIGNMENT IS TO AN INTEGER VARIABLE. 07220351 |
| C 07230351 |
| IVTNUM = 21 07240351 |
| IF (ICZERO) 30210, 0210, 30210 07250351 |
| 0210 CONTINUE 07260351 |
| IVON01 = 17 07270351 |
| IVON02 = 3 07280351 |
| RVON03 = 5.4732 E+2 07290351 |
| RVON04 = 1.523 07300351 |
| IVON05 = 798 07310351 |
| IVCOMP = IVON01 ** IVON02 + RVON03 - RVON04 * IVON05 / IVON01 07320351 |
| IVCORR = 5388 07330351 |
| 40210 IF (IVCOMP - 5388) 20210, 10210, 20210 07340351 |
| 30210 IVDELE = IVDELE + 1 07350351 |
| WRITE (I02,80000) IVTNUM 07360351 |
| IF (ICZERO) 10210, 0221, 20210 07370351 |
| 10210 IVPASS = IVPASS + 1 07380351 |
| WRITE (I02,80002) IVTNUM 07390351 |
| GO TO 0221 07400351 |
| 20210 IVFAIL = IVFAIL + 1 07410351 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07420351 |
| 0221 CONTINUE 07430351 |
| C 07440351 |
| C **** FCVS PROGRAM 351 - TEST 022 **** 07450351 |
| C 07460351 |
| C TEST 22 IS LIKE TEST 21 EXCEPT THAT PARENTHESES ARE USED, 07470351 |
| C AS IS A UNARY OPERATOR. FINAL ASSIGNMENT IS TO A REAL VARIABLE. 07480351 |
| C 07490351 |
| IVTNUM = 22 07500351 |
| IF (ICZERO) 30220, 0220, 30220 07510351 |
| 0220 CONTINUE 07520351 |
| IVON01 = 798 07530351 |
| IVON02 = 17 07540351 |
| RVON03 = 9.34578 E-2 07550351 |
| IVON04 = 15985 07560351 |
| RVON05 = 0.72357 07570351 |
| RVCOMP = -(IVON01 / IVON02) + (RVON03 * IVON04 ** RVON05) 07580351 |
| RVCORR = 5.68717 E1 07590351 |
| 40220 IF (RVCOMP - 5.6866 E1) 20220, 10220, 40221 07600351 |
| 40221 IF (RVCOMP - 5.6876 E1) 10220, 10220, 20220 07610351 |
| 30220 IVDELE = IVDELE + 1 07620351 |
| WRITE (I02,80000) IVTNUM 07630351 |
| IF (ICZERO) 10220, 0231, 20220 07640351 |
| 10220 IVPASS = IVPASS + 1 07650351 |
| WRITE (I02,80002) IVTNUM 07660351 |
| GO TO 0231 07670351 |
| 20220 IVFAIL = IVFAIL + 1 07680351 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 07690351 |
| 0231 CONTINUE 07700351 |
| C 07710351 |
| C **** FCVS PROGRAM 351 - TEST 023 **** 07720351 |
| C 07730351 |
| C TEST 23 IS SIMILAR TO TEST 22 EXCEPT THAT IT EMPLOYS NESTED 07740351 |
| C PARENTHESES. 07750351 |
| C 07760351 |
| IVTNUM = 23 07770351 |
| IF (ICZERO) 30230, 0230, 30230 07780351 |
| 0230 CONTINUE 07790351 |
| IVON01 = 2 07800351 |
| IVON02 = 183 07810351 |
| RVON03 = 58.7025 07820351 |
| IVON04 = 197 07830351 |
| IVON05 = 87 07840351 |
| RVON06 = 2.4611 E15 07850351 |
| RVCOMP = IVON01 ** (-(IVON02 + (RVON03 - IVON04)) - 07860351 |
| 1 (IVON05 / RVON06)) 07870351 |
| RVCORR = 3.4931 E-14 07880351 |
| 40230 IF (RVCOMP - 3.4926 E-14) 20230, 10230, 40231 07890351 |
| 40231 IF (RVCOMP - 3.4936 E-14) 10230, 10230, 20230 07900351 |
| 30230 IVDELE = IVDELE + 1 07910351 |
| WRITE (I02,80000) IVTNUM 07920351 |
| IF (ICZERO) 10230, 0241, 20230 07930351 |
| 10230 IVPASS = IVPASS + 1 07940351 |
| WRITE (I02,80002) IVTNUM 07950351 |
| GO TO 0241 07960351 |
| 20230 IVFAIL = IVFAIL + 1 07970351 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 07980351 |
| 0241 CONTINUE 07990351 |
| C 08000351 |
| C **** FCVS PROGRAM 351 - TEST 024 **** 08010351 |
| C 08020351 |
| C TEST 24 IS IDENTICAL TO TEST 23 EXCEPT THAT THE FINAL 08030351 |
| C ASSIGNMENT IS TO AN INTEGER VARIABLE INSTEAD OF A REAL VARIABLE. 08040351 |
| C 08050351 |
| IVTNUM = 24 08060351 |
| IF (ICZERO) 30240, 0240, 30240 08070351 |
| 0240 CONTINUE 08080351 |
| IVON01 = 2 08090351 |
| IVON02 = 183 08100351 |
| RVON03 = 58.7025 08110351 |
| IVON04 = 197 08120351 |
| IVON05 = 87 08130351 |
| RVON06 = 2.4611 E15 08140351 |
| IVCOMP = IVON01 ** (-(IVON02 + (RVON03 - IVON04)) - 08150351 |
| 1 (IVON05 / RVON06)) 08160351 |
| IVCORR = 0 08170351 |
| 40240 IF (IVCOMP) 20240, 10240, 20240 08180351 |
| 30240 IVDELE = IVDELE + 1 08190351 |
| WRITE (I02,80000) IVTNUM 08200351 |
| IF (ICZERO) 10240, 0251, 20240 08210351 |
| 10240 IVPASS = IVPASS + 1 08220351 |
| WRITE (I02,80002) IVTNUM 08230351 |
| GO TO 0251 08240351 |
| 20240 IVFAIL = IVFAIL + 1 08250351 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08260351 |
| 0251 CONTINUE 08270351 |
| C 08280351 |
| C **** FCVS PROGRAM 351 - TEST 025 **** 08290351 |
| C 08300351 |
| C TEST 25 IS SIMILAR TO TESTS 9 AND 19 EXCEPT THAT A MIXTURE 08310351 |
| C OF REAL AND INTEGER OPERANDS ARE USED, AND FINAL ASSIGNMENT IS 08320351 |
| C TO A REAL VARIABLE. 08330351 |
| C 08340351 |
| IVTNUM = 25 08350351 |
| IF (ICZERO) 30250, 0250, 30250 08360351 |
| 0250 CONTINUE 08370351 |
| RVON01 = 4.7117 08380351 |
| RVON02 = 5.998 08390351 |
| IVON03 = 2 08400351 |
| RVON04 = 1E2 08410351 |
| IVON05 = 20 08420351 |
| IVON06 = 4 08430351 |
| IVON07 = -3 08440351 |
| RADN11(4) = 7.425 08450351 |
| RADN11(5) = -2.4015 08460351 |
| RVCOMP = (RVON01 + RFOS06(AINT(RVON02),IVON03,RVON04)) * IVON05 - 08470351 |
| 1 IFOS05(IVON06,IVON07) 08480351 |
| RVCORR = 84.234 08490351 |
| 40250 IF (RVCOMP - 84.229) 20250, 10250, 40251 08500351 |
| 40251 IF (RVCOMP - 84.239) 10250, 10250, 20250 08510351 |
| 30250 IVDELE = IVDELE + 1 08520351 |
| WRITE (I02,80000) IVTNUM 08530351 |
| IF (ICZERO) 10250, 0261, 20250 08540351 |
| 10250 IVPASS = IVPASS + 1 08550351 |
| WRITE (I02,80002) IVTNUM 08560351 |
| GO TO 0261 08570351 |
| 20250 IVFAIL = IVFAIL + 1 08580351 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 08590351 |
| 0261 CONTINUE 08600351 |
| C 08610351 |
| C 08620351 |
| C WRITE OUT TEST SUMMARY 08630351 |
| C 08640351 |
| WRITE (I02,90004) 08650351 |
| WRITE (I02,90014) 08660351 |
| WRITE (I02,90004) 08670351 |
| WRITE (I02,90000) 08680351 |
| WRITE (I02,90004) 08690351 |
| WRITE (I02,90020) IVFAIL 08700351 |
| WRITE (I02,90022) IVPASS 08710351 |
| WRITE (I02,90024) IVDELE 08720351 |
| STOP 08730351 |
| 90001 FORMAT (" ",24X,"FM351") 08740351 |
| 90000 FORMAT (" ",20X,"END OF PROGRAM FM351" ) 08750351 |
| C 08760351 |
| C FORMATS FOR TEST DETAIL LINES 08770351 |
| C 08780351 |
| 80000 FORMAT (" ",4X,I5,6X,"DELETED") 08790351 |
| 80002 FORMAT (" ",4X,I5,7X,"PASS") 08800351 |
| 80010 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6) 08810351 |
| 80012 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5) 08820351 |
| 80018 FORMAT (" ",4X,I5,7X,"FAIL",2X,A14,1X,A14) 08830351 |
| C 08840351 |
| C FORMAT STATEMENTS FOR PAGE HEADERS 08850351 |
| C 08860351 |
| 90002 FORMAT ("1") 08870351 |
| 90004 FORMAT (" ") 08880351 |
| 90006 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 08890351 |
| 90008 FORMAT (" ",21X,"VERSION 2.1" ) 08900351 |
| 90010 FORMAT (" ",8X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" ) 08910351 |
| 90012 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL",5X,"COMPUTED",8X,"CORRECT") 08920351 |
| 90014 FORMAT (" ",5X,"----------------------------------------------" ) 08930351 |
| 90016 FORMAT (" ",18X,"SUBSET LEVEL TEST" ) 08940351 |
| C 08950351 |
| C FORMAT STATEMENTS FOR RUN SUMMARY 08960351 |
| C 08970351 |
| 90020 FORMAT (" ",19X,I5," TESTS FAILED" ) 08980351 |
| 90022 FORMAT (" ",19X,I5," TESTS PASSED" ) 08990351 |
| 90024 FORMAT (" ",19X,I5," TESTS DELETED" ) 09000351 |
| END 09010351 |