| PROGRAM FM710 00010710 |
| C 00020710 |
| C THIS ROUTINE TESTS SUBSCRIPT EXPRESSIONS AND ANS REF. 00030710 |
| C CHARACTER SUBSTRINGS. 5.4.2, 5.4.300040710 |
| C 5.7.1, 5.7.200050710 |
| C 00060710 |
| C THIS ROUTINE ASSUMES THE INTRINSIC FUNCTIONS 00070710 |
| C INT AND IABS ARE WORKING. 00080710 |
| C 00090710 |
| CBB** ********************** BBCCOMNT **********************************00100710 |
| C**** 00110710 |
| C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00120710 |
| C**** VERSION 2.1 00130710 |
| C**** 00140710 |
| C**** 00150710 |
| C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00160710 |
| C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00170710 |
| C**** SOFTWARE STANDARDS VALIDATION GROUP 00180710 |
| C**** BUILDING 225 RM A266 00190710 |
| C**** GAITHERSBURG, MD 20899 00200710 |
| C**** 00210710 |
| C**** 00220710 |
| C**** 00230710 |
| CBE** ********************** BBCCOMNT **********************************00240710 |
| IMPLICIT DOUBLE PRECISION (D), COMPLEX (Z), LOGICAL (L) 00250710 |
| IMPLICIT CHARACTER*27 (C) 00260710 |
| CBB** ********************** BBCINITA **********************************00270710 |
| C**** SPECIFICATION STATEMENTS 00280710 |
| C**** 00290710 |
| CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00300710 |
| 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00310710 |
| CBE** ********************** BBCINITA **********************************00320710 |
| C 00330710 |
| DIMENSION I2N001(2,3), I2N002(3,5), I1N003(-1:8), I2N004(10,4) 00340710 |
| CHARACTER*10 CVCOMP, CVCORR, CVN001, C2N001(2,4) 00350710 |
| DATA I2N001 /1,2,3,4,5,6/ 00360710 |
| DATA I2N002 /11,21,31,12,22,32,13,23,33,14,24,34,15,25,35/ 00370710 |
| DATA I1N003 /1,2,3,4,5,6,7,8,9,10/ 00380710 |
| DATA I2N004 / 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 00390710 |
| 1 4,-2, 6,-3, 8,-4,10,-5, 2,-1, 00400710 |
| 2 1, 3, 5, 7, 9, 2, 4, 6, 8, 10, 00410710 |
| 3 -10,-9,-8,-7,-6,-5,-4,-3,-2,-1 / 00420710 |
| DATA C2N001 /'11FIRSTELE','21SECONDXX','12THIRDXYZ','22FOURTHWW', 00430710 |
| 1 '13FIFTHABC','23SIXTHIJK','14SEVENTHH','24EIGHTHUV'/ 00440710 |
| C 00450710 |
| C 00460710 |
| CBB** ********************** BBCINITB **********************************00470710 |
| C**** INITIALIZE SECTION 00480710 |
| DATA ZVERS, ZVERSD, ZDATE 00490710 |
| 1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00500710 |
| DATA ZCOMPL, ZNAME, ZTAPE 00510710 |
| 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00520710 |
| DATA ZPROJ, ZTAPED, ZPROG 00530710 |
| 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00540710 |
| DATA REMRKS /' '/ 00550710 |
| C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00560710 |
| C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00570710 |
| C**** 00580710 |
| CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00590710 |
| CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00600710 |
| CZ03 ZPROG = 'PROGRAM NAME' 00610710 |
| CZ04 ZDATE = 'DATE OF TEST' 00620710 |
| CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00630710 |
| CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00640710 |
| CZ07 ZNAME = 'NAME OF USER' 00650710 |
| CZ08 ZTAPE = 'TAPE OWNER/ID' 00660710 |
| CZ09 ZTAPED = 'DATE TAPE COPIED' 00670710 |
| C 00680710 |
| IVPASS = 0 00690710 |
| IVFAIL = 0 00700710 |
| IVDELE = 0 00710710 |
| IVINSP = 0 00720710 |
| IVTOTL = 0 00730710 |
| IVTOTN = 0 00740710 |
| ICZERO = 0 00750710 |
| C 00760710 |
| C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00770710 |
| I01 = 05 00780710 |
| C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00790710 |
| I02 = 06 00800710 |
| C 00810710 |
| CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00820710 |
| C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00830710 |
| CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00840710 |
| C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00850710 |
| C 00860710 |
| CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00870710 |
| C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00880710 |
| CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00890710 |
| C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00900710 |
| C 00910710 |
| CBE** ********************** BBCINITB **********************************00920710 |
| ZPROG='FM710' 00930710 |
| IVTOTL = 19 00940710 |
| CBB** ********************** BBCHED0A **********************************00950710 |
| C**** 00960710 |
| C**** WRITE REPORT TITLE 00970710 |
| C**** 00980710 |
| WRITE (I02, 90002) 00990710 |
| WRITE (I02, 90006) 01000710 |
| WRITE (I02, 90007) 01010710 |
| WRITE (I02, 90008) ZVERS, ZVERSD 01020710 |
| WRITE (I02, 90009) ZPROG, ZPROG 01030710 |
| WRITE (I02, 90010) ZDATE, ZCOMPL 01040710 |
| CBE** ********************** BBCHED0A **********************************01050710 |
| CBB** ********************** BBCHED0B **********************************01060710 |
| C**** WRITE DETAIL REPORT HEADERS 01070710 |
| C**** 01080710 |
| WRITE (I02,90004) 01090710 |
| WRITE (I02,90004) 01100710 |
| WRITE (I02,90013) 01110710 |
| WRITE (I02,90014) 01120710 |
| WRITE (I02,90015) IVTOTL 01130710 |
| CBE** ********************** BBCHED0B **********************************01140710 |
| C 01150710 |
| C TESTS 1-2 - SUBSCRIPT EXPRESSION TO IDENTIFY VARIOUS 01160710 |
| C ARRAY ELEMENTS 01170710 |
| C 01180710 |
| C 01190710 |
| CT001* TEST 001 **** FCVS PROGRAM 710 **** 01200710 |
| C 01210710 |
| C TEST 001 ARRAY ELEMENT REFERENCE 01220710 |
| C 01230710 |
| IVTNUM = 1 01240710 |
| IVCOMP = 0 01250710 |
| IVCORR = 34 01260710 |
| IVCOMP = I2N002(I2N001(1,2),I2N001(2,3)/2 + 1) 01270710 |
| 40010 IF (IVCOMP - 34) 20010, 10010, 20010 01280710 |
| 10010 IVPASS = IVPASS + 1 01290710 |
| WRITE (I02,80002) IVTNUM 01300710 |
| GO TO 0011 01310710 |
| 20010 IVFAIL = IVFAIL + 1 01320710 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01330710 |
| 0011 CONTINUE 01340710 |
| C 01350710 |
| CT002* TEST 002 **** FCVS PROGRAM 710 **** 01360710 |
| C 01370710 |
| C TEST 002 FUNCTION REFERENCE 01380710 |
| C 01390710 |
| IVTNUM = 2 01400710 |
| RVD001 = 2.64 01410710 |
| IVCOMP = 0 01420710 |
| IVCORR = 25 01430710 |
| IVCOMP = I2N002(INT(RVD001), 19 - IABS(-7)*2) 01440710 |
| 40020 IF (IVCOMP - 25) 20020, 10020, 20020 01450710 |
| 10020 IVPASS = IVPASS + 1 01460710 |
| WRITE (I02,80002) IVTNUM 01470710 |
| GO TO 0021 01480710 |
| 20020 IVFAIL = IVFAIL + 1 01490710 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01500710 |
| 0021 CONTINUE 01510710 |
| C 01520710 |
| C TESTS 3-7 - TEST SUBSCRIPT VALUE IN IDENTIFYING 01530710 |
| C ARRAY ELEMENTS 01540710 |
| C 01550710 |
| CT003* TEST 003 **** FCVS PROGRAM 710 **** 01560710 |
| C 01570710 |
| C TEST 003 RANGE 01580710 |
| C 01590710 |
| IVTNUM = 3 01600710 |
| WRITE (I02, 80004) IVTNUM 01610710 |
| WRITE (I02, 80020) 01620710 |
| WRITE (I02, 70030) (I1N003(IVN001), IVN001=5,8) 01630710 |
| 70030 FORMAT (" ",26X,4I4) 01640710 |
| IVINSP = IVINSP + 1 01650710 |
| WRITE (I02, 80022) 01660710 |
| WRITE (I02, 70031) 01670710 |
| 70031 FORMAT (" ",26X," 7 8 9 10" ) 01680710 |
| C 01690710 |
| CT004* TEST 004 **** FCVS PROGRAM 710 **** 01700710 |
| C 01710710 |
| C TEST 004 SINGLE ELEMENT 01720710 |
| C 01730710 |
| IVTNUM = 4 01740710 |
| IVCOMP = 0 01750710 |
| IVCORR = 4 01760710 |
| IVCOMP = I1N003(2) 01770710 |
| 40040 IF (IVCOMP - 4) 20040, 10040, 20040 01780710 |
| 10040 IVPASS = IVPASS + 1 01790710 |
| WRITE (I02,80002) IVTNUM 01800710 |
| GO TO 0041 01810710 |
| 20040 IVFAIL = IVFAIL + 1 01820710 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01830710 |
| 0041 CONTINUE 01840710 |
| C 01850710 |
| CT005* TEST 005 **** FCVS PROGRAM 710 **** 01860710 |
| C 01870710 |
| C TEST 005 EXPRESSION 01880710 |
| C 01890710 |
| IVTNUM = 5 01900710 |
| IVN001 = -3 01910710 |
| IVCOMP = 0 01920710 |
| IVCORR = 1 01930710 |
| IVCOMP = I1N003((IVN001+5)*3 - 7) 01940710 |
| 40050 IF (IVCOMP - 1) 20050, 10050, 20050 01950710 |
| 10050 IVPASS = IVPASS + 1 01960710 |
| WRITE (I02,80002) IVTNUM 01970710 |
| GO TO 0051 01980710 |
| 20050 IVFAIL = IVFAIL + 1 01990710 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02000710 |
| 0051 CONTINUE 02010710 |
| C 02020710 |
| CT006* TEST 006 **** FCVS PROGRAM 710 **** 02030710 |
| C 02040710 |
| C TEST 006 31ST ELEMENT IN 2 DIMENSIONAL, 40 ELEMENT ARRAY 02050710 |
| C 02060710 |
| IVTNUM = 6 02070710 |
| IVCOMP = 0 02080710 |
| IVCORR = -10 02090710 |
| IVCOMP = I2N004(1,4) 02100710 |
| 40060 IF (IVCOMP + 10) 20060, 10060, 20060 02110710 |
| 10060 IVPASS = IVPASS + 1 02120710 |
| WRITE (I02,80002) IVTNUM 02130710 |
| GO TO 0061 02140710 |
| 20060 IVFAIL = IVFAIL + 1 02150710 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02160710 |
| 0061 CONTINUE 02170710 |
| C 02180710 |
| CT007* TEST 007 **** FCVS PROGRAM 710 **** 02190710 |
| C 02200710 |
| C TEST 007 4TH ELEMENT OF FIRST ARRAY EQUAL TO 02210710 |
| C 11TH ELEMENT OF SECOND ARRAY 02220710 |
| C 02230710 |
| IVTNUM = 7 02240710 |
| IVCOMP = 0 02250710 |
| IVCORR = 1 02260710 |
| IF (I1N003(2).EQ.I2N004(1,2)) IVCOMP = 1 02270710 |
| 40070 IF (IVCOMP - 1) 20070, 10070, 20070 02280710 |
| 10070 IVPASS = IVPASS + 1 02290710 |
| WRITE (I02,80002) IVTNUM 02300710 |
| GO TO 0071 02310710 |
| 20070 IVFAIL = IVFAIL + 1 02320710 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02330710 |
| 0071 CONTINUE 02340710 |
| C 02350710 |
| C TESTS 8-15 - CHARACTER SUBSTRING NAME 02360710 |
| C 02370710 |
| C 02380710 |
| CT008* TEST 008 **** FCVS PROGRAM 710 **** 02390710 |
| C 02400710 |
| C TEST 008 USING LEFT AND RIGHT POSITION OF SUBSTRING 02410710 |
| C 02420710 |
| IVTNUM = 8 02430710 |
| CVCOMP = ' ' 02440710 |
| IVCOMP = 0 02450710 |
| CVN001 = 'THIS IS IT' 02460710 |
| CVCORR = 'HIS ' 02470710 |
| CVCOMP = CVN001(2:4) 02480710 |
| IF (CVCOMP .EQ. 'HIS ') IVCOMP = 1 02490710 |
| IF (IVCOMP - 1) 20080, 10080, 20080 02500710 |
| 10080 IVPASS = IVPASS + 1 02510710 |
| WRITE (I02,80002) IVTNUM 02520710 |
| GO TO 0081 02530710 |
| 20080 IVFAIL = IVFAIL + 1 02540710 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 02550710 |
| 0081 CONTINUE 02560710 |
| C 02570710 |
| CT009* TEST 009 **** FCVS PROGRAM 710 **** 02580710 |
| C 02590710 |
| C TEST 009 LEFT POSITION OMITTED, VALUE OF 1 ASSUMED 02600710 |
| C 02610710 |
| IVTNUM = 9 02620710 |
| CVCOMP = ' ' 02630710 |
| IVCOMP = 0 02640710 |
| CVCORR = 'THIS ' 02650710 |
| CVCOMP = CVN001(:4) 02660710 |
| IF (CVCOMP .EQ. 'THIS ') IVCOMP = 1 02670710 |
| IF (IVCOMP - 1) 20090, 10090, 20090 02680710 |
| 10090 IVPASS = IVPASS + 1 02690710 |
| WRITE (I02,80002) IVTNUM 02700710 |
| GO TO 0091 02710710 |
| 20090 IVFAIL = IVFAIL + 1 02720710 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 02730710 |
| 0091 CONTINUE 02740710 |
| C 02750710 |
| CT010* TEST 010 **** FCVS PROGRAM 710 **** 02760710 |
| C 02770710 |
| C TEST 010 RIGHT POSITION OMITTED, RIGHT-HAND END OF STRING ASSUMED 02780710 |
| C 02790710 |
| IVTNUM = 10 02800710 |
| CVCOMP = ' ' 02810710 |
| IVCOMP = 0 02820710 |
| CVCORR = 'S IS IT ' 02830710 |
| CVCOMP = CVN001(4:) 02840710 |
| IF (CVCOMP .EQ. 'S IS IT ') IVCOMP = 1 02850710 |
| IF (IVCOMP - 1) 20100, 10100, 20100 02860710 |
| 10100 IVPASS = IVPASS + 1 02870710 |
| WRITE (I02,80002) IVTNUM 02880710 |
| GO TO 0101 02890710 |
| 20100 IVFAIL = IVFAIL + 1 02900710 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 02910710 |
| 0101 CONTINUE 02920710 |
| C 02930710 |
| CT011* TEST 011 **** FCVS PROGRAM 710 **** 02940710 |
| C 02950710 |
| C TEST 011 EXTRACT SUBSTRING FROM ARRAY 02960710 |
| C 02970710 |
| IVTNUM = 11 02980710 |
| CVCOMP = ' ' 02990710 |
| IVCOMP = 0 03000710 |
| CVCORR = '12THIR ' 03010710 |
| CVCOMP = C2N001(1,2)(1:6) 03020710 |
| IF (CVCOMP .EQ. '12THIR ') IVCOMP = 1 03030710 |
| IF (IVCOMP - 1) 20110, 10110, 20110 03040710 |
| 10110 IVPASS = IVPASS + 1 03050710 |
| WRITE (I02,80002) IVTNUM 03060710 |
| GO TO 0111 03070710 |
| 20110 IVFAIL = IVFAIL + 1 03080710 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 03090710 |
| 0111 CONTINUE 03100710 |
| C 03110710 |
| CT012* TEST 012 **** FCVS PROGRAM 710 **** 03120710 |
| C 03130710 |
| C TEST 012 ENTIRE SUBSTRING 03140710 |
| C 03150710 |
| IVTNUM = 12 03160710 |
| CVCOMP = ' ' 03170710 |
| IVCOMP = 0 03180710 |
| CVCORR = 'THIS IS IT' 03190710 |
| CVCOMP = CVN001(:) 03200710 |
| IF (CVCOMP .EQ. 'THIS IS IT') IVCOMP = 1 03210710 |
| IF (IVCOMP - 1) 20120, 10120, 20120 03220710 |
| 10120 IVPASS = IVPASS + 1 03230710 |
| WRITE (I02,80002) IVTNUM 03240710 |
| GO TO 0121 03250710 |
| 20120 IVFAIL = IVFAIL + 1 03260710 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 03270710 |
| 0121 CONTINUE 03280710 |
| C 03290710 |
| CT013* TEST 013 **** FCVS PROGRAM 710 **** 03300710 |
| C 03310710 |
| C TEST 013 ENTIRE SUBSTRING FROM ARRAY 03320710 |
| C 03330710 |
| IVTNUM = 13 03340710 |
| CVCOMP = ' ' 03350710 |
| IVCOMP = 0 03360710 |
| CVCORR = '23SIXTHIJK' 03370710 |
| CVCOMP = C2N001(2,3)(:) 03380710 |
| IF (CVCOMP .EQ. '23SIXTHIJK') IVCOMP = 1 03390710 |
| IF (IVCOMP - 1) 20130, 10130, 20130 03400710 |
| 10130 IVPASS = IVPASS + 1 03410710 |
| WRITE (I02,80002) IVTNUM 03420710 |
| GO TO 0131 03430710 |
| 20130 IVFAIL = IVFAIL + 1 03440710 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 03450710 |
| 0131 CONTINUE 03460710 |
| C 03470710 |
| CT014* TEST 014 **** FCVS PROGRAM 710 **** 03480710 |
| C 03490710 |
| C RIGHT POSITION OMITTED USING ARRAY 03500710 |
| C 03510710 |
| IVTNUM = 14 03520710 |
| CVCOMP = ' ' 03530710 |
| IVCOMP = 0 03540710 |
| CVCORR = 'EVENTHH ' 03550710 |
| CVCOMP = C2N001(1,4)(4:) 03560710 |
| IF (CVCOMP .EQ. 'EVENTHH ') IVCOMP = 1 03570710 |
| IF (IVCOMP - 1) 20140, 10140, 20140 03580710 |
| 10140 IVPASS = IVPASS + 1 03590710 |
| WRITE (I02,80002) IVTNUM 03600710 |
| GO TO 0141 03610710 |
| 20140 IVFAIL = IVFAIL + 1 03620710 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 03630710 |
| 0141 CONTINUE 03640710 |
| C 03650710 |
| CT015* TEST 015 **** FCVS PROGRAM 710 **** 03660710 |
| C 03670710 |
| C LEFT POSITION OMITTED 03680710 |
| C 03690710 |
| IVTNUM = 15 03700710 |
| CVCOMP = ' ' 03710710 |
| IVCOMP = 0 03720710 |
| CVCORR = '24EI ' 03730710 |
| CVCOMP = C2N001(2,4)(:4) 03740710 |
| IF (CVCOMP .EQ. '24EI ') IVCOMP = 1 03750710 |
| IF (IVCOMP - 1) 20150, 10150, 20150 03760710 |
| 10150 IVPASS = IVPASS + 1 03770710 |
| WRITE (I02,80002) IVTNUM 03780710 |
| GO TO 0151 03790710 |
| 20150 IVFAIL = IVFAIL + 1 03800710 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 03810710 |
| 0151 CONTINUE 03820710 |
| C 03830710 |
| C TESTS 16-19 - SUBSTRING EXPRESSION 03840710 |
| C 03850710 |
| C 03860710 |
| CT016* TEST 016 **** FCVS PROGRAM 710 **** 03870710 |
| C 03880710 |
| C TEST 016 ARITHMETIC EXPRESSION 03890710 |
| C 03900710 |
| IVTNUM = 16 03910710 |
| CVCOMP = ' ' 03920710 |
| IVCOMP = 0 03930710 |
| CVCORR = 'HIS IS IT ' 03940710 |
| CVCOMP = CVN001(2:5*2) 03950710 |
| IF (CVCOMP .EQ. 'HIS IS IT ') IVCOMP = 1 03960710 |
| IF (IVCOMP - 1) 20160, 10160, 20160 03970710 |
| 10160 IVPASS = IVPASS + 1 03980710 |
| WRITE (I02,80002) IVTNUM 03990710 |
| GO TO 0161 04000710 |
| 20160 IVFAIL = IVFAIL + 1 04010710 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 04020710 |
| 0161 CONTINUE 04030710 |
| C 04040710 |
| CT017* TEST 017 **** FCVS PROGRAM 710 **** 04050710 |
| C 04060710 |
| C TEST 017 SUBSTRING EXPRESSION IN AN ASSIGNMENT STATEMENT 04070710 |
| C 04080710 |
| IVTNUM = 17 04090710 |
| IVN001 = 5 04100710 |
| IVN002 = 8 04110710 |
| CVCOMP = ' ' 04120710 |
| IVCOMP = 0 04130710 |
| CVCORR = 'THISLIKEIT' 04140710 |
| CVN001(IVN001:IVN002) = 'LIKE' 04150710 |
| CVCOMP = CVN001 04160710 |
| IF (CVCOMP .EQ. 'THISLIKEIT') IVCOMP = 1 04170710 |
| IF (IVCOMP - 1) 20170, 10170, 20170 04180710 |
| 10170 IVPASS = IVPASS + 1 04190710 |
| WRITE (I02,80002) IVTNUM 04200710 |
| GO TO 0171 04210710 |
| 20170 IVFAIL = IVFAIL + 1 04220710 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 04230710 |
| 0171 CONTINUE 04240710 |
| C 04250710 |
| CT018* TEST 018 **** FCVS PROGRAM 710 **** 04260710 |
| C 04270710 |
| C TEST 018 SUBSTRING EXPRESSION CONTAINING ARRAY ELEMENT REFERENCE 04280710 |
| C 04290710 |
| IVTNUM = 18 04300710 |
| CVCOMP = ' ' 04310710 |
| IVCOMP = 0 04320710 |
| CVCORR = 'HISLIKE ' 04330710 |
| CVCOMP = CVN001(I2N001(2,1):I2N002(3,5)-27) 04340710 |
| IF (CVCOMP .EQ. 'HISLIKE ') IVCOMP = 1 04350710 |
| IF (IVCOMP - 1) 20180, 10180, 20180 04360710 |
| 10180 IVPASS = IVPASS + 1 04370710 |
| WRITE (I02,80002) IVTNUM 04380710 |
| GO TO 0181 04390710 |
| 20180 IVFAIL = IVFAIL + 1 04400710 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 04410710 |
| 0181 CONTINUE 04420710 |
| C 04430710 |
| CT019* TEST 019 **** FCVS PROGRAM 710 **** 04440710 |
| C 04450710 |
| C TEST 019 SUBSTRING EXPRESSION CONTAINING FUNCTION REFERENCES 04460710 |
| C 04470710 |
| IVTNUM = 19 04480710 |
| RVD001 = 1.475 04490710 |
| IVN001 = 1 04500710 |
| CVCOMP = ' ' 04510710 |
| IVCOMP = 0 04520710 |
| CVCORR = 'IFTHABC ' 04530710 |
| CVCOMP = C2N001(1,3)(INT(RVD001)+3 : (IVN001*5 + 7)/IABS(-6) + 8) 04540710 |
| IF (CVCOMP .EQ. 'IFTHABC ') IVCOMP = 1 04550710 |
| IF (IVCOMP - 1) 20190, 10190, 20190 04560710 |
| 10190 IVPASS = IVPASS + 1 04570710 |
| WRITE (I02,80002) IVTNUM 04580710 |
| GO TO 0191 04590710 |
| 20190 IVFAIL = IVFAIL + 1 04600710 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 04610710 |
| 0191 CONTINUE 04620710 |
| C 04630710 |
| CBB** ********************** BBCSUM0 **********************************04640710 |
| C**** WRITE OUT TEST SUMMARY 04650710 |
| C**** 04660710 |
| IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 04670710 |
| WRITE (I02, 90004) 04680710 |
| WRITE (I02, 90014) 04690710 |
| WRITE (I02, 90004) 04700710 |
| WRITE (I02, 90020) IVPASS 04710710 |
| WRITE (I02, 90022) IVFAIL 04720710 |
| WRITE (I02, 90024) IVDELE 04730710 |
| WRITE (I02, 90026) IVINSP 04740710 |
| WRITE (I02, 90028) IVTOTN, IVTOTL 04750710 |
| CBE** ********************** BBCSUM0 **********************************04760710 |
| CBB** ********************** BBCFOOT0 **********************************04770710 |
| C**** WRITE OUT REPORT FOOTINGS 04780710 |
| C**** 04790710 |
| WRITE (I02,90016) ZPROG, ZPROG 04800710 |
| WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 04810710 |
| WRITE (I02,90019) 04820710 |
| CBE** ********************** BBCFOOT0 **********************************04830710 |
| 90001 FORMAT (" ",56X,"FM710") 04840710 |
| 90000 FORMAT (" ",50X,"END OF PROGRAM FM710" ) 04850710 |
| CBB** ********************** BBCFMT0A **********************************04860710 |
| C**** FORMATS FOR TEST DETAIL LINES 04870710 |
| C**** 04880710 |
| 80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 04890710 |
| 80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 04900710 |
| 80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 04910710 |
| 80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 04920710 |
| 80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 04930710 |
| 1I6,/," ",15X,"CORRECT= " ,I6) 04940710 |
| 80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04950710 |
| 1E12.5,/," ",16X,"CORRECT= " ,E12.5) 04960710 |
| 80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04970710 |
| 1A21,/," ",16X,"CORRECT= " ,A21) 04980710 |
| 80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 04990710 |
| 80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 05000710 |
| 80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 05010710 |
| 80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 05020710 |
| 80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 05030710 |
| 80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 05040710 |
| 80050 FORMAT (" ",48X,A31) 05050710 |
| CBE** ********************** BBCFMT0A **********************************05060710 |
| CBB** ********************** BBCFMAT1 **********************************05070710 |
| C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 05080710 |
| C**** 05090710 |
| 80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 05100710 |
| 1D17.10,/," ",16X,"CORRECT= " ,D17.10) 05110710 |
| 80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 05120710 |
| 80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 05130710 |
| 80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 05140710 |
| 80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 05150710 |
| 80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 05160710 |
| 80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 05170710 |
| 80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 05180710 |
| 1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 05190710 |
| 2"(",F12.5,", ",F12.5,")") 05200710 |
| CBE** ********************** BBCFMAT1 **********************************05210710 |
| CBB** ********************** BBCFMT0B **********************************05220710 |
| C**** FORMAT STATEMENTS FOR PAGE HEADERS 05230710 |
| C**** 05240710 |
| 90002 FORMAT ("1") 05250710 |
| 90004 FORMAT (" ") 05260710 |
| 90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )05270710 |
| 90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 05280710 |
| 90008 FORMAT (" ",21X,A13,A17) 05290710 |
| 90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 05300710 |
| 90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 05310710 |
| 90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 05320710 |
| 1 7X,"REMARKS",24X) 05330710 |
| 90014 FORMAT (" ","----------------------------------------------" , 05340710 |
| 1 "---------------------------------" ) 05350710 |
| 90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 05360710 |
| C**** 05370710 |
| C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 05380710 |
| C**** 05390710 |
| 90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 05400710 |
| 90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 05410710 |
| 1 A13) 05420710 |
| 90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 05430710 |
| C**** 05440710 |
| C**** FORMAT STATEMENTS FOR RUN SUMMARY 05450710 |
| C**** 05460710 |
| 90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 05470710 |
| 90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 05480710 |
| 90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 05490710 |
| 90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 05500710 |
| 90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 05510710 |
| CBE** ********************** BBCFMT0B **********************************05520710 |
| END 05530710 |