| PROGRAM FM352 00010352 |
| C 00020352 |
| C 00030352 |
| C THIS PROGRAM CHECKS BASIC RELATIONAL EXPRESSIONS INVOLVING 00040352 |
| C OPERANDS OF REAL DATA TYPE. IN EACH TEST, NOT ONLY THE RELATIONAL00050352 |
| C EXPRESSION IS TESTED, BUT THE TRICHOTOMY LAW OF MATHEMATICAL 00060352 |
| C RELATIONSHIPS IS ALSO TESTED (E.G., IF A .LT. B, THEN A CAN NOT 00070352 |
| C BE .GT. THAN B, AND A CAN NOT BE .EQ. B). A TEST VARIABLE 00080352 |
| C (IVCOMP) IS USED TO REPORT THE RESULT OF THE TEST AS FOLLOWS, 00090352 |
| C IVCOMP = 0 IF BOTH THE TESTED RELATIONAL OPERATOR AND THE 00100352 |
| C TRICHOTOMY TEST PASS. 00110352 |
| C IVCOMP = 1 IF THE RELATIONAL TEST FAILS AND THE TRICHOTOMY 00120352 |
| C TEST PASSES (WHICH WOULD INDICATE THAT A TESTED 00130352 |
| C NOT .LT., .GT., OR .EQ. B). 00140352 |
| C IVCOMP = 2 IF THE RELATIONAL TEST PASSES AND THE TRICHOTOMY 00150352 |
| C TEST FAILS (WHICH WOULD INDICATE THAT A TESTED 00160352 |
| C .LT., .GT., AND .EQ. B). 00170352 |
| C IVCOMP = 3 IF BOTH THE RELATIONAL TEST AND THE TRICHOTOMY 00180352 |
| C TEST FAIL (WHICH WOULD INDICATE THE RELATIONAL 00190352 |
| C EXPRESSION TESTED OPPOSITE TO THAT EXPECTED 00200352 |
| C (E.G., WHERE A WAS SUPPOSED TO BE .LT. B, IN 00210352 |
| C FACT A .LT. B WAS FOUND TO BE FALSE AND A .GE. B 00220352 |
| C WAS FOUND TO BE TRUE). 00230352 |
| C 00240352 |
| C 00250352 |
| C REFERENCES - 00260352 |
| C 00270352 |
| C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, X3.9-197700280352 |
| C SECTION 4.4, REAL TYPE 00290352 |
| C SECTION 6.3, RELATIONAL EXPRESSIONS 00300352 |
| C SECTION 6.5, PRECEDENCE OF OPERATORS 00310352 |
| C SECTION 6.6, EVALUATION OF EXPRESSIONS 00320352 |
| C 00330352 |
| C 00340352 |
| C ******************************************************************00350352 |
| C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00360352 |
| C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00370352 |
| C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00380352 |
| C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00390352 |
| C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00400352 |
| C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00410352 |
| C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00420352 |
| C THE RESULT OF EXECUTING THESE TESTS. 00430352 |
| C 00440352 |
| C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00450352 |
| C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00460352 |
| C 00470352 |
| C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00480352 |
| C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00490352 |
| C SOFTWARE STANDARDS VALIDATION GROUP 00500352 |
| C BUILDING 225 RM A266 00510352 |
| C GAITHERSBURG, MD 20899 00520352 |
| C ******************************************************************00530352 |
| C 00540352 |
| C 00550352 |
| IMPLICIT LOGICAL (L) 00560352 |
| IMPLICIT CHARACTER*14 (C) 00570352 |
| C 00580352 |
| DIMENSION RADN11(2) 00590352 |
| RFOS01(RDON01,RDON02) = RDON01 + RDON02 00600352 |
| C 00610352 |
| C 00620352 |
| C 00630352 |
| C INITIALIZATION SECTION. 00640352 |
| C 00650352 |
| C INITIALIZE CONSTANTS 00660352 |
| C ******************** 00670352 |
| C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00680352 |
| I01 = 5 00690352 |
| C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00700352 |
| I02 = 6 00710352 |
| C SYSTEM ENVIRONMENT SECTION 00720352 |
| C 00730352 |
| CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD.00740352 |
| C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00750352 |
| C (UNIT NUMBER FOR CARD READER). 00760352 |
| CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00770352 |
| C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00780352 |
| C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00790352 |
| C 00800352 |
| CX020 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD.00810352 |
| C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00820352 |
| C (UNIT NUMBER FOR PRINTER). 00830352 |
| CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00840352 |
| C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00850352 |
| C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00860352 |
| C 00870352 |
| IVPASS = 0 00880352 |
| IVFAIL = 0 00890352 |
| IVDELE = 0 00900352 |
| ICZERO = 0 00910352 |
| C 00920352 |
| C WRITE OUT PAGE HEADERS 00930352 |
| C 00940352 |
| WRITE (I02,90002) 00950352 |
| WRITE (I02,90006) 00960352 |
| WRITE (I02,90008) 00970352 |
| WRITE (I02,90004) 00980352 |
| WRITE (I02,90010) 00990352 |
| WRITE (I02,90004) 01000352 |
| WRITE (I02,90016) 01010352 |
| WRITE (I02,90001) 01020352 |
| WRITE (I02,90004) 01030352 |
| WRITE (I02,90012) 01040352 |
| WRITE (I02,90014) 01050352 |
| WRITE (I02,90004) 01060352 |
| C 01070352 |
| C 01080352 |
| C TESTS 1 THROUGH 13 CHECK BASIC RELATIONAL EXPRESSIONS USING 01090352 |
| C ONLY REAL VARIABLE OPERANDS. ALL THE VARIABLES ARE ASSIGNED REAL 01100352 |
| C CONSTANTS WITH EXPONENTIAL FORMAT. 01110352 |
| C 01120352 |
| C 01130352 |
| C **** FCVS PROGRAM 352 - TEST 001 **** 01140352 |
| C 01150352 |
| C TEST 1 CHECKS THE .LT. OPERATOR USING TWO REAL OPERANDS 01160352 |
| C WHERE THE MANTISSAS ARE EQUAL BUT THE EXPONENTS ARE DIFFERENT. 01170352 |
| C 01180352 |
| IVTNUM = 1 01190352 |
| IF (ICZERO) 30010, 0010, 30010 01200352 |
| 0010 CONTINUE 01210352 |
| RVON01 = 1.0001 E17 01220352 |
| RVON02 = 1.0001 E18 01230352 |
| IVCOMP = 0 01240352 |
| IVCORR = 0 01250352 |
| 40010 IF(RVON01 .LT. RVON02) GO TO 40011 01260352 |
| IVCOMP = 1 01270352 |
| 40011 IF (RVON01 .GE. RVON02) IVCOMP = IVCOMP + 2 01280352 |
| IF (IVCOMP) 20010, 10010, 20010 01290352 |
| 30010 IVDELE = IVDELE + 1 01300352 |
| WRITE (I02,80000) IVTNUM 01310352 |
| IF (ICZERO) 10010, 0021, 20010 01320352 |
| 10010 IVPASS = IVPASS + 1 01330352 |
| WRITE (I02,80002) IVTNUM 01340352 |
| GO TO 0021 01350352 |
| 20010 IVFAIL = IVFAIL + 1 01360352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01370352 |
| 0021 CONTINUE 01380352 |
| C 01390352 |
| C **** FCVS PROGRAM 352 - TEST 002 **** 01400352 |
| C 01410352 |
| C TEST 2 CHECKS THE .LT. OPERATOR USING TWO REAL OPERANDS 01420352 |
| C WHERE THE EXPONENTS ARE EQUAL BUT THE MANTISSAS ARE DIFFERENT. 01430352 |
| C 01440352 |
| IVTNUM = 2 01450352 |
| IF (ICZERO) 30020, 0020, 30020 01460352 |
| 0020 CONTINUE 01470352 |
| RVON01 = 1.0001 E17 01480352 |
| RVON02 = 1.9999 E17 01490352 |
| IVCOMP = 0 01500352 |
| IVCORR = 0 01510352 |
| 40020 IF (RVON01 .LT. RVON02) GO TO 40021 01520352 |
| IVCOMP = 1 01530352 |
| 40021 IF (RVON01 .GE. RVON02) IVCOMP = IVCOMP + 2 01540352 |
| IF (IVCOMP) 20020, 10020, 20020 01550352 |
| 30020 IVDELE = IVDELE + 1 01560352 |
| WRITE (I02,80000) IVTNUM 01570352 |
| IF (ICZERO) 10020, 0031, 20020 01580352 |
| 10020 IVPASS = IVPASS + 1 01590352 |
| WRITE (I02,80002) IVTNUM 01600352 |
| GO TO 0031 01610352 |
| 20020 IVFAIL = IVFAIL + 1 01620352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01630352 |
| 0031 CONTINUE 01640352 |
| C 01650352 |
| C **** FCVS PROGRAM 352 - TEST 003 **** 01660352 |
| C 01670352 |
| C TEST 3 CHECKS THE .LE. OPERATOR USING TWO REAL OPERANDS 01680352 |
| C WHERE THE MANTISSAS ARE EQUAL BUT THE EXPONENTS ARE DIFFERENT. 01690352 |
| C 01700352 |
| IVTNUM = 3 01710352 |
| IF (ICZERO) 30030, 0030, 30030 01720352 |
| 0030 CONTINUE 01730352 |
| RVON01 = 1.0001 E17 01740352 |
| RVON02 = 1.0001 E18 01750352 |
| IVCOMP = 0 01760352 |
| IVCORR = 0 01770352 |
| 40030 IF (RVON01 .LE. RVON02) GO TO 40031 01780352 |
| IVCOMP = 1 01790352 |
| 40031 IF (RVON01 .GT. RVON02) IVCOMP = IVCOMP + 2 01800352 |
| IF (IVCOMP) 20030, 10030, 20030 01810352 |
| 30030 IVDELE = IVDELE + 1 01820352 |
| WRITE (I02,80000) IVTNUM 01830352 |
| IF (ICZERO) 10030, 0041, 20030 01840352 |
| 10030 IVPASS = IVPASS + 1 01850352 |
| WRITE (I02,80002) IVTNUM 01860352 |
| GO TO 0041 01870352 |
| 20030 IVFAIL = IVFAIL + 1 01880352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01890352 |
| 0041 CONTINUE 01900352 |
| C 01910352 |
| C **** FCVS PROGRAM 352 - TEST 004 **** 01920352 |
| C 01930352 |
| C TEST 4 CHECKS THE .LE. OPERATOR USING TWO REAL OPERANDS 01940352 |
| C WHERE THE EXPONENTS ARE EQUAL BUT THE MANTISSAS ARE DIFFERENT. 01950352 |
| C 01960352 |
| IVTNUM = 4 01970352 |
| IF (ICZERO) 30040, 0040, 30040 01980352 |
| 0040 CONTINUE 01990352 |
| RVON01 = 1.0001 E17 02000352 |
| RVON02 = 1.9999 E17 02010352 |
| IVCOMP = 0 02020352 |
| IVCORR = 0 02030352 |
| 40040 IF (RVON01 .LE. RVON02) GO TO 40041 02040352 |
| IVCOMP = 1 02050352 |
| 40041 IF (RVON01 .GT. RVON02) IVCOMP = IVCOMP + 2 02060352 |
| IF (IVCOMP) 20040, 10040, 20040 02070352 |
| 30040 IVDELE = IVDELE + 1 02080352 |
| WRITE (I02,80000) IVTNUM 02090352 |
| IF (ICZERO) 10040, 0051, 20040 02100352 |
| 10040 IVPASS = IVPASS + 1 02110352 |
| WRITE (I02,80002) IVTNUM 02120352 |
| GO TO 0051 02130352 |
| 20040 IVFAIL = IVFAIL + 1 02140352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02150352 |
| 0051 CONTINUE 02160352 |
| C 02170352 |
| C **** FCVS PROGRAM 352 - TEST 005 **** 02180352 |
| C 02190352 |
| C TEST 5 CHECKS THE .LE. OPERATOR USING TWO REAL OPERANDS 02200352 |
| C WHICH HAVE BEEN ASSIGNED THE SAME REAL CONSTANT. 02210352 |
| C 02220352 |
| IVTNUM = 5 02230352 |
| IF (ICZERO) 30050, 0050, 30050 02240352 |
| 0050 CONTINUE 02250352 |
| RVON01 = 1.0001 E17 02260352 |
| RVON02 = 1.0001 E17 02270352 |
| IVCOMP = 0 02280352 |
| IVCORR = 0 02290352 |
| 40050 IF (RVON01 .LE. RVON02) GO TO 40051 02300352 |
| IVCOMP = 1 02310352 |
| 40051 IF (RVON01 .GT. RVON02) IVCOMP = IVCOMP + 2 02320352 |
| IF (IVCOMP) 20050, 10050, 20050 02330352 |
| 30050 IVDELE = IVDELE + 1 02340352 |
| WRITE (I02,80000) IVTNUM 02350352 |
| IF (ICZERO) 10050, 0061, 20050 02360352 |
| 10050 IVPASS = IVPASS + 1 02370352 |
| WRITE (I02,80002) IVTNUM 02380352 |
| GO TO 0061 02390352 |
| 20050 IVFAIL = IVFAIL + 1 02400352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02410352 |
| 0061 CONTINUE 02420352 |
| C 02430352 |
| C **** FCVS PROGRAM 352 - TEST 006 **** 02440352 |
| C 02450352 |
| C TEST 6 CHECKS THE .NE. OPERATOR USING TWO REAL OPERANDS 02460352 |
| C WHERE THE MANTISSAS ARE EQUAL BUT THE EXPONENTS ARE DIFFERENT. 02470352 |
| C 02480352 |
| IVTNUM = 6 02490352 |
| IF (ICZERO) 30060, 0060, 30060 02500352 |
| 0060 CONTINUE 02510352 |
| RVON01 = 1.0001 E17 02520352 |
| RVON02 = 1.0001 E18 02530352 |
| IVCOMP = 0 02540352 |
| IVCORR = 0 02550352 |
| 40060 IF (RVON01 .NE. RVON02) GO TO 40061 02560352 |
| IVCOMP = 1 02570352 |
| 40061 IF (RVON01 .EQ. RVON02) IVCOMP = IVCOMP + 2 02580352 |
| IF (IVCOMP) 20060, 10060, 20060 02590352 |
| 30060 IVDELE = IVDELE + 1 02600352 |
| WRITE (I02,80000) IVTNUM 02610352 |
| IF (ICZERO) 10060, 0071, 20060 02620352 |
| 10060 IVPASS = IVPASS + 1 02630352 |
| WRITE (I02,80002) IVTNUM 02640352 |
| GO TO 0071 02650352 |
| 20060 IVFAIL = IVFAIL + 1 02660352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02670352 |
| 0071 CONTINUE 02680352 |
| C 02690352 |
| C **** FCVS PROGRAM 352 - TEST 007 **** 02700352 |
| C 02710352 |
| C TEST 7 CHECKS THE .NE. OPERATOR USING TWO REAL OPERANDS 02720352 |
| C WHERE THE EXPONENTS ARE EQUAL BUT THE MANTISSAS ARE DIFFERENT. 02730352 |
| C 02740352 |
| IVTNUM = 7 02750352 |
| IF (ICZERO) 30070, 0070, 30070 02760352 |
| 0070 CONTINUE 02770352 |
| RVON01 = 1.0001 E17 02780352 |
| RVON02 = 1.9999 E17 02790352 |
| IVCOMP = 0 02800352 |
| IVCORR = 0 02810352 |
| 40070 IF (RVON01 .NE. RVON02) GO TO 40071 02820352 |
| IVCOMP = 1 02830352 |
| 40071 IF (RVON01 .EQ. RVON02) IVCOMP = IVCOMP + 2 02840352 |
| IF (IVCOMP) 20070, 10070, 20070 02850352 |
| 30070 IVDELE = IVDELE + 1 02860352 |
| WRITE (I02,80000) IVTNUM 02870352 |
| IF (ICZERO) 10070, 0081, 20070 02880352 |
| 10070 IVPASS = IVPASS + 1 02890352 |
| WRITE (I02,80002) IVTNUM 02900352 |
| GO TO 0081 02910352 |
| 20070 IVFAIL = IVFAIL + 1 02920352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02930352 |
| 0081 CONTINUE 02940352 |
| C 02950352 |
| C **** FCVS PROGRAM 352 - TEST 008 **** 02960352 |
| C 02970352 |
| C TEST 8 CHECKS THE .EQ. OPERATOR USING TWO REAL OPERANDS 02980352 |
| C WHICH HAVE BEEN ASSIGNED THE SAME REAL CONSTANT. 02990352 |
| C 03000352 |
| IVTNUM = 8 03010352 |
| IF (ICZERO) 30080, 0080, 30080 03020352 |
| 0080 CONTINUE 03030352 |
| RVON01 = 1.0001 E17 03040352 |
| RVON02 = 1.0001 E17 03050352 |
| IVCOMP = 0 03060352 |
| IVCORR = 0 03070352 |
| 40080 IF (RVON01 .EQ. RVON02) GO TO 40081 03080352 |
| IVCOMP = 1 03090352 |
| 40081 IF (RVON01 .NE. RVON02) IVCOMP = IVCOMP + 2 03100352 |
| IF (IVCOMP) 20080, 10080, 20080 03110352 |
| 30080 IVDELE = IVDELE + 1 03120352 |
| WRITE (I02,80000) IVTNUM 03130352 |
| IF (ICZERO) 10080, 0091, 20080 03140352 |
| 10080 IVPASS = IVPASS + 1 03150352 |
| WRITE (I02,80002) IVTNUM 03160352 |
| GO TO 0091 03170352 |
| 20080 IVFAIL = IVFAIL + 1 03180352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03190352 |
| 0091 CONTINUE 03200352 |
| C 03210352 |
| C **** FCVS PROGRAM 352 - TEST 009 **** 03220352 |
| C 03230352 |
| C TEST 9 CHECKS THE .GT. OPERATOR USING TWO REAL OPERANDS 03240352 |
| C WHERE THE MANTISSAS ARE EQUAL BUT THE EXPONENTS ARE DIFFERENT. 03250352 |
| C 03260352 |
| IVTNUM = 9 03270352 |
| IF (ICZERO) 30090, 0090, 30090 03280352 |
| 0090 CONTINUE 03290352 |
| RVON01 = 1.0001 E18 03300352 |
| RVON02 = 1.0001 E17 03310352 |
| IVCOMP = 0 03320352 |
| IVCORR = 0 03330352 |
| 40090 IF(RVON01 .GT. RVON02) GO TO 40091 03340352 |
| IVCOMP = 1 03350352 |
| 40091 IF (RVON01 .LE. RVON02) IVCOMP = IVCOMP + 2 03360352 |
| IF (IVCOMP) 20090, 10090, 20090 03370352 |
| 30090 IVDELE = IVDELE + 1 03380352 |
| WRITE (I02,80000) IVTNUM 03390352 |
| IF (ICZERO) 10090, 0101, 20090 03400352 |
| 10090 IVPASS = IVPASS + 1 03410352 |
| WRITE (I02,80002) IVTNUM 03420352 |
| GO TO 0101 03430352 |
| 20090 IVFAIL = IVFAIL + 1 03440352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03450352 |
| 0101 CONTINUE 03460352 |
| C 03470352 |
| C **** FCVS PROGRAM 352 - TEST 010 **** 03480352 |
| C 03490352 |
| C TEST 10 CHECKS THE .GT. OPERATOR USING TWO REAL OPERANDS 03500352 |
| C WHERE THE EXPONENTS ARE EQUAL BUT THE MANTISSAS ARE DIFFERENT. 03510352 |
| C 03520352 |
| IVTNUM = 10 03530352 |
| IF (ICZERO) 30100, 0100, 30100 03540352 |
| 0100 CONTINUE 03550352 |
| RVON01 = 1.9999 E17 03560352 |
| RVON02 = 1.0001 E17 03570352 |
| IVCOMP = 0 03580352 |
| IVCORR = 0 03590352 |
| 40100 IF (RVON01 .GT. RVON02) GO TO 40101 03600352 |
| IVCOMP = 1 03610352 |
| 40101 IF (RVON01 .LE. RVON02) IVCOMP = IVCOMP + 2 03620352 |
| IF (IVCOMP) 20100, 10100, 20100 03630352 |
| 30100 IVDELE = IVDELE + 1 03640352 |
| WRITE (I02,80000) IVTNUM 03650352 |
| IF (ICZERO) 10100, 0111, 20100 03660352 |
| 10100 IVPASS = IVPASS + 1 03670352 |
| WRITE (I02,80002) IVTNUM 03680352 |
| GO TO 0111 03690352 |
| 20100 IVFAIL = IVFAIL + 1 03700352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03710352 |
| 0111 CONTINUE 03720352 |
| C 03730352 |
| C **** FCVS PROGRAM 352 - TEST 011 **** 03740352 |
| C 03750352 |
| C TEST 11 CHECKS THE .GE. OPERATOR USING TWO REAL OPERANDS 03760352 |
| C WHERE THE MANTISSAS ARE EQUAL BUT THE EXPONENTS ARE DIFFERENT. 03770352 |
| C 03780352 |
| IVTNUM = 11 03790352 |
| IF (ICZERO) 30110, 0110, 30110 03800352 |
| 0110 CONTINUE 03810352 |
| RVON01 = 1.0001 E18 03820352 |
| RVON02 = 1.0001 E17 03830352 |
| IVCOMP = 0 03840352 |
| IVCORR = 0 03850352 |
| 40110 IF (RVON01 .GE. RVON02) GO TO 40111 03860352 |
| IVCOMP = 1 03870352 |
| 40111 IF (RVON01 .LT. RVON02) IVCOMP = IVCOMP + 2 03880352 |
| IF (IVCOMP) 20110, 10110, 20110 03890352 |
| 30110 IVDELE = IVDELE + 1 03900352 |
| WRITE (I02,80000) IVTNUM 03910352 |
| IF (ICZERO) 10110, 0121, 20110 03920352 |
| 10110 IVPASS = IVPASS + 1 03930352 |
| WRITE (I02,80002) IVTNUM 03940352 |
| GO TO 0121 03950352 |
| 20110 IVFAIL = IVFAIL + 1 03960352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03970352 |
| 0121 CONTINUE 03980352 |
| C 03990352 |
| C **** FCVS PROGRAM 352 - TEST 012 **** 04000352 |
| C 04010352 |
| C TEST 12 CHECKS THE .GE. OPERATOR USING TWO REAL OPERANDS 04020352 |
| C WHERE THE EXPONENTS ARE EQUAL BUT THE MANTISSAS ARE DIFFERENT. 04030352 |
| C 04040352 |
| IVTNUM = 12 04050352 |
| IF (ICZERO) 30120, 0120, 30120 04060352 |
| 0120 CONTINUE 04070352 |
| RVON01 = 1.9999 E17 04080352 |
| RVON02 = 1.0001 E17 04090352 |
| IVCOMP = 0 04100352 |
| IVCORR = 0 04110352 |
| 40120 IF (RVON01 .GE. RVON02) GO TO 40121 04120352 |
| IVCOMP = 1 04130352 |
| 40121 IF (RVON01 .LT. RVON02) IVCOMP = IVCOMP + 2 04140352 |
| IF (IVCOMP) 20120, 10120, 20120 04150352 |
| 30120 IVDELE = IVDELE + 1 04160352 |
| WRITE (I02,80000) IVTNUM 04170352 |
| IF (ICZERO) 10120, 0131, 20120 04180352 |
| 10120 IVPASS = IVPASS + 1 04190352 |
| WRITE (I02,80002) IVTNUM 04200352 |
| GO TO 0131 04210352 |
| 20120 IVFAIL = IVFAIL + 1 04220352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04230352 |
| 0131 CONTINUE 04240352 |
| C 04250352 |
| C **** FCVS PROGRAM 352 - TEST 013 **** 04260352 |
| C 04270352 |
| C TEST 13 CHECKS THE .GE. OPERATOR USING TWO REAL OPERANDS 04280352 |
| C WHERE EACH HAS BEEN ASSIGNED THE SAME REAL CONSTANT. 04290352 |
| C 04300352 |
| IVTNUM = 13 04310352 |
| IF (ICZERO) 30130, 0130, 30130 04320352 |
| 0130 CONTINUE 04330352 |
| RVON01 = 1.0001 E17 04340352 |
| RVON02 = 1.0001 E17 04350352 |
| IVCOMP = 0 04360352 |
| IVCORR = 0 04370352 |
| 40130 IF (RVON01 .GE. RVON02) GO TO 40131 04380352 |
| IVCOMP = 1 04390352 |
| 40131 IF (RVON01 .LT. RVON02) IVCOMP = IVCOMP + 2 04400352 |
| IF (IVCOMP) 20130, 10130, 20130 04410352 |
| 30130 IVDELE = IVDELE + 1 04420352 |
| WRITE (I02,80000) IVTNUM 04430352 |
| IF (ICZERO) 10130, 0141, 20130 04440352 |
| 10130 IVPASS = IVPASS + 1 04450352 |
| WRITE (I02,80002) IVTNUM 04460352 |
| GO TO 0141 04470352 |
| 20130 IVFAIL = IVFAIL + 1 04480352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04490352 |
| 0141 CONTINUE 04500352 |
| C 04510352 |
| C TESTS 14 THROUGH 28 REPETITIVELY CHECK THE .LT. RELATIONSHIP 04520352 |
| C USING ALL TYPES AND ORDERINGS OF TWO REAL OPERANDS. 04530352 |
| C 04540352 |
| C 04550352 |
| C TESTS 14 THROUGH 16 CHECK REAL-VARIABLE .LT OTHER-REAL-TYPES.04560352 |
| C 04570352 |
| C 04580352 |
| C **** FCVS PROGRAM 352 - TEST 014 **** 04590352 |
| C 04600352 |
| C TEST 14 CHECKS REAL-VARIABLE .LT. REAL-CONSTANT 04610352 |
| C 04620352 |
| IVTNUM = 14 04630352 |
| IF (ICZERO) 30140, 0140, 30140 04640352 |
| 0140 CONTINUE 04650352 |
| RVON01 = 1.0001 E17 04660352 |
| IVCOMP = 0 04670352 |
| IVCORR = 0 04680352 |
| 40140 IF (RVON01 .LT. 1.9999 E17) GO TO 40141 04690352 |
| IVCOMP = 1 04700352 |
| 40141 IF (RVON01 .GE. 1.9999 E17) IVCOMP = IVCOMP + 2 04710352 |
| IF (IVCOMP) 20140, 10140, 20140 04720352 |
| 30140 IVDELE = IVDELE + 1 04730352 |
| WRITE (I02,80000) IVTNUM 04740352 |
| IF (ICZERO) 10140, 0151, 20140 04750352 |
| 10140 IVPASS = IVPASS + 1 04760352 |
| WRITE (I02,80002) IVTNUM 04770352 |
| GO TO 0151 04780352 |
| 20140 IVFAIL = IVFAIL + 1 04790352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04800352 |
| 0151 CONTINUE 04810352 |
| C 04820352 |
| C **** FCVS PROGRAM 352 - TEST 015 **** 04830352 |
| C 04840352 |
| C TEST 15 CHECKS REAL-VARIABLE .LT. ARRAY-ELEMENT 04850352 |
| C 04860352 |
| IVTNUM = 15 04870352 |
| IF (ICZERO) 30150, 0150, 30150 04880352 |
| 0150 CONTINUE 04890352 |
| RADN11(1) = 1.9999 E17 04900352 |
| RVON01 = 1.0001 E17 04910352 |
| IVCOMP = 0 04920352 |
| IVCORR = 0 04930352 |
| 40150 IF (RVON01 .LT. RADN11(1)) GO TO 40151 04940352 |
| IVCOMP = 1 04950352 |
| 40151 IF (RVON01 .GE. RADN11(1)) IVCOMP = IVCOMP + 2 04960352 |
| IF (IVCOMP) 20150, 10150, 20150 04970352 |
| 30150 IVDELE = IVDELE + 1 04980352 |
| WRITE (I02,80000) IVTNUM 04990352 |
| IF (ICZERO) 10150, 0161, 20150 05000352 |
| 10150 IVPASS = IVPASS + 1 05010352 |
| WRITE (I02,80002) IVTNUM 05020352 |
| GO TO 0161 05030352 |
| 20150 IVFAIL = IVFAIL + 1 05040352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05050352 |
| 0161 CONTINUE 05060352 |
| C 05070352 |
| C **** FCVS PROGRAM 352 - TEST 016 **** 05080352 |
| C 05090352 |
| C TEST 16 CHECKS REAL-VARIABLE .LT. FUNCTION-REFERENCE 05100352 |
| C 05110352 |
| IVTNUM = 16 05120352 |
| IF (ICZERO) 30160, 0160, 30160 05130352 |
| 0160 CONTINUE 05140352 |
| RVON01 = 1.0001 E17 05150352 |
| RVON02 = 1 E17 05160352 |
| RVON03 = 0.9999 E17 05170352 |
| IVCOMP = 0 05180352 |
| IVCORR = 0 05190352 |
| 40160 IF (RVON01 .LT. RFOS01(RVON02,RVON03)) GO TO 40161 05200352 |
| IVCOMP = 1 05210352 |
| 40161 IF (RVON01 .GE. RFOS01(RVON02,RVON03)) IVCOMP = IVCOMP + 2 05220352 |
| IF (IVCOMP) 20160, 10160, 20160 05230352 |
| 30160 IVDELE = IVDELE + 1 05240352 |
| WRITE (I02,80000) IVTNUM 05250352 |
| IF (ICZERO) 10160, 0171, 20160 05260352 |
| 10160 IVPASS = IVPASS + 1 05270352 |
| WRITE (I02,80002) IVTNUM 05280352 |
| GO TO 0171 05290352 |
| 20160 IVFAIL = IVFAIL + 1 05300352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05310352 |
| 0171 CONTINUE 05320352 |
| C 05330352 |
| C TESTS 17 THROUGH 20 CHECK REAL-CONSTANT .LT. OTHER-REAL-TYPES05340352 |
| C 05350352 |
| C 05360352 |
| C **** FCVS PROGRAM 352 - TEST 017 **** 05370352 |
| C 05380352 |
| C TEST 17 CHECKS REAL-CONSTANT .LT. REAL-CONSTANT 05390352 |
| C 05400352 |
| IVTNUM = 17 05410352 |
| IF (ICZERO) 30170, 0170, 30170 05420352 |
| 0170 CONTINUE 05430352 |
| IVCOMP = 0 05440352 |
| IVCORR = 0 05450352 |
| 40170 IF (1.0001 E17 .LT. 1.9999 E17) GO TO 40171 05460352 |
| IVCOMP = 1 05470352 |
| 40171 IF (1.0001 E17 .GE. 1.9999 E17) IVCOMP = IVCOMP + 2 05480352 |
| IF (IVCOMP) 20170, 10170, 20170 05490352 |
| 30170 IVDELE = IVDELE + 1 05500352 |
| WRITE (I02,80000) IVTNUM 05510352 |
| IF (ICZERO) 10170, 0181, 20170 05520352 |
| 10170 IVPASS = IVPASS + 1 05530352 |
| WRITE (I02,80002) IVTNUM 05540352 |
| GO TO 0181 05550352 |
| 20170 IVFAIL = IVFAIL + 1 05560352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05570352 |
| 0181 CONTINUE 05580352 |
| C 05590352 |
| C **** FCVS PROGRAM 352 - TEST 018 **** 05600352 |
| C 05610352 |
| C TEST 18 CHECKS REAL-CONSTANT .LT. REAL-ARRAY-ELEMENT 05620352 |
| C 05630352 |
| IVTNUM = 18 05640352 |
| IF (ICZERO) 30180, 0180, 30180 05650352 |
| 0180 CONTINUE 05660352 |
| RADN11(1) = 1.9999 E17 05670352 |
| IVCOMP = 0 05680352 |
| IVCORR = 0 05690352 |
| 40180 IF (1.0001 E17 .LT. RADN11(1)) GO TO 40181 05700352 |
| IVCOMP = 1 05710352 |
| 40181 IF (1.0001 E17 .GE. RADN11(1)) IVCOMP = IVCOMP + 2 05720352 |
| IF (IVCOMP) 20180, 10180, 20180 05730352 |
| 30180 IVDELE = IVDELE + 1 05740352 |
| WRITE (I02,80000) IVTNUM 05750352 |
| IF (ICZERO) 10180, 0191, 20180 05760352 |
| 10180 IVPASS = IVPASS + 1 05770352 |
| WRITE (I02,80002) IVTNUM 05780352 |
| GO TO 0191 05790352 |
| 20180 IVFAIL = IVFAIL + 1 05800352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05810352 |
| 0191 CONTINUE 05820352 |
| C 05830352 |
| C **** FCVS PROGRAM 352 - TEST 019 **** 05840352 |
| C 05850352 |
| C TEST 19 CHECKS REAL-CONSTANT .LT. REAL-VARIABLE 05860352 |
| C 05870352 |
| IVTNUM = 19 05880352 |
| IF (ICZERO) 30190, 0190, 30190 05890352 |
| 0190 CONTINUE 05900352 |
| RVON01 = 1.9999 E17 05910352 |
| IVCOMP = 0 05920352 |
| IVCORR = 0 05930352 |
| 40190 IF (1.0001 E17 .LT. RVON01) GO TO 40191 05940352 |
| IVCOMP = 1 05950352 |
| 40191 IF (1.0001 E17 .GE. RVON01) IVCOMP = IVCOMP + 2 05960352 |
| IF (IVCOMP) 20190, 10190, 20190 05970352 |
| 30190 IVDELE = IVDELE + 1 05980352 |
| WRITE (I02,80000) IVTNUM 05990352 |
| IF (ICZERO) 10190, 0201, 20190 06000352 |
| 10190 IVPASS = IVPASS + 1 06010352 |
| WRITE (I02,80002) IVTNUM 06020352 |
| GO TO 0201 06030352 |
| 20190 IVFAIL = IVFAIL + 1 06040352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06050352 |
| 0201 CONTINUE 06060352 |
| C 06070352 |
| C **** FCVS PROGRAM 352 - TEST 020 **** 06080352 |
| C 06090352 |
| C TEST 20 CHECKS REAL-CONSTANT .LT. REAL-FUNCTION-REFERENCE 06100352 |
| C 06110352 |
| IVTNUM = 20 06120352 |
| IF (ICZERO) 30200, 0200, 30200 06130352 |
| 0200 CONTINUE 06140352 |
| RVON01 = 1 E17 06150352 |
| RVON02 = 0.9999 E17 06160352 |
| IVCOMP = 0 06170352 |
| IVCORR = 0 06180352 |
| 40200 IF (1.0001 E17 .LT. RFOS01(RVON01,RVON02)) GO TO 40201 06190352 |
| IVCOMP = 1 06200352 |
| 40201 IF (1.0001 E17 .GE. RFOS01(RVON01,RVON02)) IVCOMP = IVCOMP + 2 06210352 |
| IF (IVCOMP) 20200, 10200, 20200 06220352 |
| 30200 IVDELE = IVDELE + 1 06230352 |
| WRITE (I02,80000) IVTNUM 06240352 |
| IF (ICZERO) 10200, 0211, 20200 06250352 |
| 10200 IVPASS = IVPASS + 1 06260352 |
| WRITE (I02,80002) IVTNUM 06270352 |
| GO TO 0211 06280352 |
| 20200 IVFAIL = IVFAIL + 1 06290352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06300352 |
| 0211 CONTINUE 06310352 |
| C 06320352 |
| C TESTS 21 THROUGH 24 CHECK REAL-ARRAY-ELEMENT .LT. OTHER-REALS06330352 |
| C 06340352 |
| C 06350352 |
| C **** FCVS PROGRAM 352 - TEST 021 **** 06360352 |
| C 06370352 |
| C TEST 21 CHECKS REAL-ARRAY-ELEMENT .LT. REAL-CONSTANT 06380352 |
| C 06390352 |
| IVTNUM = 21 06400352 |
| IF (ICZERO) 30210, 0210, 30210 06410352 |
| 0210 CONTINUE 06420352 |
| RADN11(1) = 1.0001 E17 06430352 |
| IVCOMP = 0 06440352 |
| IVCORR = 0 06450352 |
| 40210 IF (RADN11(1) .LT. 1.9999 E17) GO TO 40211 06460352 |
| IVCOMP = 1 06470352 |
| 40211 IF (RADN11(1) .GE. 1.9999 E17) IVCOMP = IVCOMP + 2 06480352 |
| IF (IVCOMP) 20210, 10210, 20210 06490352 |
| 30210 IVDELE = IVDELE + 1 06500352 |
| WRITE (I02,80000) IVTNUM 06510352 |
| IF (ICZERO) 10210, 0221, 20210 06520352 |
| 10210 IVPASS = IVPASS + 1 06530352 |
| WRITE (I02,80002) IVTNUM 06540352 |
| GO TO 0221 06550352 |
| 20210 IVFAIL = IVFAIL + 1 06560352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06570352 |
| 0221 CONTINUE 06580352 |
| C 06590352 |
| C **** FCVS PROGRAM 352 - TEST 022 **** 06600352 |
| C 06610352 |
| C TEST 22 CHECKS REAL-ARRAY-ELEMENT .LT. REAL-ARRAY-ELEMENT 06620352 |
| C 06630352 |
| IVTNUM = 22 06640352 |
| IF (ICZERO) 30220, 0220, 30220 06650352 |
| 0220 CONTINUE 06660352 |
| RADN11(1) = 1.0001 E17 06670352 |
| RADN11(2) = 1.9999 E17 06680352 |
| IVCOMP = 0 06690352 |
| IVCORR = 0 06700352 |
| 40220 IF (RADN11(1) .LT. RADN11(2)) GO TO 40221 06710352 |
| IVCOMP = 1 06720352 |
| 40221 IF (RADN11(1) .GE. RADN11(2)) IVCOMP = IVCOMP + 2 06730352 |
| IF (IVCOMP) 20220, 10220, 20220 06740352 |
| 30220 IVDELE = IVDELE + 1 06750352 |
| WRITE (I02,80000) IVTNUM 06760352 |
| IF (ICZERO) 10220, 0231, 20220 06770352 |
| 10220 IVPASS = IVPASS + 1 06780352 |
| WRITE (I02,80002) IVTNUM 06790352 |
| GO TO 0231 06800352 |
| 20220 IVFAIL = IVFAIL + 1 06810352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06820352 |
| 0231 CONTINUE 06830352 |
| C 06840352 |
| C **** FCVS PROGRAM 352 - TEST 023 **** 06850352 |
| C 06860352 |
| C TEST 23 CHECKS REAL-ARRAY-ELEMENT .LT. REAL-VARIABLE 06870352 |
| C 06880352 |
| IVTNUM = 23 06890352 |
| IF (ICZERO) 30230, 0230, 30230 06900352 |
| 0230 CONTINUE 06910352 |
| RVON01 = 1.9999 E17 06920352 |
| RADN11(1) = 1.0001 E17 06930352 |
| IVCORR = 0 06940352 |
| IVCOMP = 0 06950352 |
| 40230 IF (RADN11(1) .LT. RVON01) GO TO 40231 06960352 |
| IVCOMP = 1 06970352 |
| 40231 IF (RADN11(1) .GE. RVON01) IVCOMP = IVCOMP + 2 06980352 |
| IF (IVCOMP) 20230, 10230, 20230 06990352 |
| 30230 IVDELE = IVDELE + 1 07000352 |
| WRITE (I02,80000) IVTNUM 07010352 |
| IF (ICZERO) 10230, 0241, 20230 07020352 |
| 10230 IVPASS = IVPASS + 1 07030352 |
| WRITE (I02,80002) IVTNUM 07040352 |
| GO TO 0241 07050352 |
| 20230 IVFAIL = IVFAIL + 1 07060352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07070352 |
| 0241 CONTINUE 07080352 |
| C 07090352 |
| C **** FCVS PROGRAM 352 - TEST 024 **** 07100352 |
| C 07110352 |
| C TEST 24 CHECKS REAL-ARRAY-ELEMENT .LT. REAL-FUNCTION-REF. 07120352 |
| C 07130352 |
| IVTNUM = 24 07140352 |
| IF (ICZERO) 30240, 0240, 30240 07150352 |
| 0240 CONTINUE 07160352 |
| RVON01 = 1.0000 E17 07170352 |
| RVON02 = 0.9999 E17 07180352 |
| RADN11(1) = 1.0001 E17 07190352 |
| IVCORR = 0 07200352 |
| IVCOMP = 0 07210352 |
| 40240 IF (RADN11(1) .LT. RFOS01(RVON01,RVON02)) GO TO 40241 07220352 |
| IVCOMP = 1 07230352 |
| 40241 IF (RADN11(1) .GE. RFOS01(RVON01,RVON02)) IVCOMP = IVCOMP + 2 07240352 |
| IF (IVCOMP) 20240, 10240, 20240 07250352 |
| 30240 IVDELE = IVDELE + 1 07260352 |
| WRITE (I02,80000) IVTNUM 07270352 |
| IF (ICZERO) 10240, 0251, 20240 07280352 |
| 10240 IVPASS = IVPASS + 1 07290352 |
| WRITE (I02,80002) IVTNUM 07300352 |
| GO TO 0251 07310352 |
| 20240 IVFAIL = IVFAIL + 1 07320352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07330352 |
| 0251 CONTINUE 07340352 |
| C 07350352 |
| C TESTS 25 THROUGH 28 CHECK REAL-FUNCTION-REFERENCE .LT. 07360352 |
| C OTHER-REAL-TYPES 07370352 |
| C 07380352 |
| C 07390352 |
| C **** FCVS PROGRAM 352 - TEST 025 **** 07400352 |
| C 07410352 |
| C TEST 25 CHECKS REAL-FUNCTION-REFERENCE .LT. REAL-CONSTANT 07420352 |
| C 07430352 |
| IVTNUM = 25 07440352 |
| IF (ICZERO) 30250, 0250, 30250 07450352 |
| 0250 CONTINUE 07460352 |
| RVON01 = 1.0000 E17 07470352 |
| RVON02 = 0.0001 E17 07480352 |
| IVCOMP = 0 07490352 |
| IVCORR = 0 07500352 |
| 40250 IF (RFOS01(RVON01,RVON02) .LT. 1.9999 E17) GO TO 40251 07510352 |
| IVCOMP = 1 07520352 |
| 40251 IF (RFOS01(RVON01,RVON02) .GE. 1.9999 E17) IVCOMP = IVCOMP + 2 07530352 |
| IF (IVCOMP) 20250, 10250, 20250 07540352 |
| 30250 IVDELE = IVDELE + 1 07550352 |
| WRITE (I02,80000) IVTNUM 07560352 |
| IF (ICZERO) 10250, 0261, 20250 07570352 |
| 10250 IVPASS = IVPASS + 1 07580352 |
| WRITE (I02,80002) IVTNUM 07590352 |
| GO TO 0261 07600352 |
| 20250 IVFAIL = IVFAIL + 1 07610352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07620352 |
| 0261 CONTINUE 07630352 |
| C 07640352 |
| C **** FCVS PROGRAM 352 - TEST 026 **** 07650352 |
| C 07660352 |
| C TEST 26 CHECKS REAL-FUNCTION-REFERENCE .LT. REAL-ARRAY-ELEMNT07670352 |
| C 07680352 |
| IVTNUM = 26 07690352 |
| IF (ICZERO) 30260, 0260, 30260 07700352 |
| 0260 CONTINUE 07710352 |
| RVON01 = 1 E17 07720352 |
| RVON02 = 0.0001 E17 07730352 |
| RADN11(1) = 1.9999 E17 07740352 |
| IVCOMP = 0 07750352 |
| IVCORR = 0 07760352 |
| 40260 IF (RFOS01(RVON01,RVON02) .LT. RADN11(1)) GO TO 40261 07770352 |
| IVCOMP = 1 07780352 |
| 40261 IF (RFOS01(RVON01,RVON02) .GE. RADN11(1)) IVCOMP = IVCOMP + 2 07790352 |
| IF (IVCOMP) 20260, 10260, 20260 07800352 |
| 30260 IVDELE = IVDELE + 1 07810352 |
| WRITE (I02,80000) IVTNUM 07820352 |
| IF (ICZERO) 10260, 0271, 20260 07830352 |
| 10260 IVPASS = IVPASS + 1 07840352 |
| WRITE (I02,80002) IVTNUM 07850352 |
| GO TO 0271 07860352 |
| 20260 IVFAIL = IVFAIL + 1 07870352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07880352 |
| 0271 CONTINUE 07890352 |
| C 07900352 |
| C **** FCVS PROGRAM 352 - TEST 027 **** 07910352 |
| C 07920352 |
| C TEST 27 CHECKS REAL-FUNCTION-REFERENCE .LT. REAL-VARIABLE 07930352 |
| C 07940352 |
| IVTNUM = 27 07950352 |
| IF (ICZERO) 30270, 0270, 30270 07960352 |
| 0270 CONTINUE 07970352 |
| RVON01 = 1 E17 07980352 |
| RVON02 = 0.0001 E17 07990352 |
| RVON03 = 1.9999 E17 08000352 |
| IVCOMP = 0 08010352 |
| IVCORR = 0 08020352 |
| 40270 IF (RFOS01(RVON01,RVON02) .LT. RVON03) GO TO 40271 08030352 |
| IVCOMP = 1 08040352 |
| 40271 IF (RFOS01(RVON01,RVON02) .GE. RVON03) IVCOMP = IVCOMP + 2 08050352 |
| IF (IVCOMP) 20270, 10270, 20270 08060352 |
| 30270 IVDELE = IVDELE + 1 08070352 |
| WRITE (I02,80000) IVTNUM 08080352 |
| IF (ICZERO) 10270, 0281, 20270 08090352 |
| 10270 IVPASS = IVPASS + 1 08100352 |
| WRITE (I02,80002) IVTNUM 08110352 |
| GO TO 0281 08120352 |
| 20270 IVFAIL = IVFAIL + 1 08130352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08140352 |
| 0281 CONTINUE 08150352 |
| C 08160352 |
| C **** FCVS PROGRAM 352 - TEST 028 **** 08170352 |
| C 08180352 |
| C TEST 28 CHECKS REAL-FUNCTION-REFERENCE .LT REAL-FUNCTION-REF.08190352 |
| C 08200352 |
| IVTNUM = 28 08210352 |
| IF (ICZERO) 30280, 0280, 30280 08220352 |
| 0280 CONTINUE 08230352 |
| RVON01 = 1 E17 08240352 |
| RVON02 = 0.0001 E17 08250352 |
| RVON03 = 0.9999 E17 08260352 |
| IVCOMP = 0 08270352 |
| IVCORR = 0 08280352 |
| 40280 IF (RFOS01(RVON01,RVON02) .LT. RFOS01(RVON01,RVON03)) GO TO 40281 08290352 |
| IVCOMP = 1 08300352 |
| 40281 IF (RFOS01(RVON01,RVON02) .GE. RFOS01(RVON01,RVON03)) 08310352 |
| 1 IVCOMP = IVCOMP + 2 08320352 |
| IF (IVCOMP) 20280, 10280, 20280 08330352 |
| 30280 IVDELE = IVDELE + 1 08340352 |
| WRITE (I02,80000) IVTNUM 08350352 |
| IF (ICZERO) 10280, 0291, 20280 08360352 |
| 10280 IVPASS = IVPASS + 1 08370352 |
| WRITE (I02,80002) IVTNUM 08380352 |
| GO TO 0291 08390352 |
| 20280 IVFAIL = IVFAIL + 1 08400352 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08410352 |
| 0291 CONTINUE 08420352 |
| C 08430352 |
| C 08440352 |
| C WRITE OUT TEST SUMMARY 08450352 |
| C 08460352 |
| WRITE (I02,90004) 08470352 |
| WRITE (I02,90014) 08480352 |
| WRITE (I02,90004) 08490352 |
| WRITE (I02,90000) 08500352 |
| WRITE (I02,90004) 08510352 |
| WRITE (I02,90020) IVFAIL 08520352 |
| WRITE (I02,90022) IVPASS 08530352 |
| WRITE (I02,90024) IVDELE 08540352 |
| STOP 08550352 |
| 90001 FORMAT (" ",24X,"FM352") 08560352 |
| 90000 FORMAT (" ",20X,"END OF PROGRAM FM352" ) 08570352 |
| C 08580352 |
| C FORMATS FOR TEST DETAIL LINES 08590352 |
| C 08600352 |
| 80000 FORMAT (" ",4X,I5,6X,"DELETED") 08610352 |
| 80002 FORMAT (" ",4X,I5,7X,"PASS") 08620352 |
| 80010 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6) 08630352 |
| 80012 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5) 08640352 |
| 80018 FORMAT (" ",4X,I5,7X,"FAIL",2X,A14,1X,A14) 08650352 |
| C 08660352 |
| C FORMAT STATEMENTS FOR PAGE HEADERS 08670352 |
| C 08680352 |
| 90002 FORMAT ("1") 08690352 |
| 90004 FORMAT (" ") 08700352 |
| 90006 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 08710352 |
| 90008 FORMAT (" ",21X,"VERSION 2.1" ) 08720352 |
| 90010 FORMAT (" ",8X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" ) 08730352 |
| 90012 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL",5X,"COMPUTED",8X,"CORRECT") 08740352 |
| 90014 FORMAT (" ",5X,"----------------------------------------------" ) 08750352 |
| 90016 FORMAT (" ",18X,"SUBSET LEVEL TEST" ) 08760352 |
| C 08770352 |
| C FORMAT STATEMENTS FOR RUN SUMMARY 08780352 |
| C 08790352 |
| 90020 FORMAT (" ",19X,I5," TESTS FAILED" ) 08800352 |
| 90022 FORMAT (" ",19X,I5," TESTS PASSED" ) 08810352 |
| 90024 FORMAT (" ",19X,I5," TESTS DELETED" ) 08820352 |
| END 08830352 |