| PROGRAM FM509 00010509 |
| C 00020509 |
| C THIS ROUTINE TESTS SUBROUTINE SUBPROGRAMS AND ANS REF. 00030509 |
| C FUNCTION SUBPROGRAMS WITH MULTIPLE ENTRIES. 15.6.1 00040509 |
| C THIS ROUTINE ALSO TESTS THE USE OF SYMBOLIC 15.7, 15.7.1 00050509 |
| C NAMES OF CONSTANTS, SUBSTRINGS NAMES, AND 15.9.2 00060509 |
| C ARRAY ELEMENT SUBSTRINGS AS ARGUMENTS. 15.9.3.2 00070509 |
| C 15.9.3.3 00080509 |
| C THIS ROUTINE USES THE SUBROUTINE SUBPROGRAMS SN510, 00090509 |
| C SN511, AND SN512, AND THE FUNCTION SUBPROGRAM RF513. 00100509 |
| C 00110509 |
| CBB** ********************** BBCCOMNT **********************************00120509 |
| C**** 00130509 |
| C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00140509 |
| C**** VERSION 2.1 00150509 |
| C**** 00160509 |
| C**** 00170509 |
| C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00180509 |
| C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00190509 |
| C**** SOFTWARE STANDARDS VALIDATION GROUP 00200509 |
| C**** BUILDING 225 RM A266 00210509 |
| C**** GAITHERSBURG, MD 20899 00220509 |
| C**** 00230509 |
| C**** 00240509 |
| C**** 00250509 |
| CBE** ********************** BBCCOMNT **********************************00260509 |
| IMPLICIT DOUBLE PRECISION (D), COMPLEX (Z), LOGICAL (L) 00270509 |
| IMPLICIT CHARACTER*27 (C) 00280509 |
| CBB** ********************** BBCINITA **********************************00290509 |
| C**** SPECIFICATION STATEMENTS 00300509 |
| C**** 00310509 |
| CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00320509 |
| 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00330509 |
| CBE** ********************** BBCINITA **********************************00340509 |
| C 00350509 |
| INTEGER I2N001(2,2) 00360509 |
| CHARACTER CVCOMP*12,CVCORR*12,CVN001*30 00370509 |
| CHARACTER C1N001(6)*10 00380509 |
| PARAMETER (IPN001=31) 00390509 |
| COMMON IVC001, IVC002, IVC003 00400509 |
| EXTERNAL RF513 00410509 |
| DATA I2N001 /1, 3, 5, 7/ 00420509 |
| DATA CVN001 /'REDORANGEYELLOWGREENBLUEVIOLET'/ 00430509 |
| DATA C1N001 /'FIRST-AID:','SECONDRATE','THIRD-TERM', 00440509 |
| 1 'FOURTH-DAY','FIFTHROUND','SIXTHMONTH'/ 00450509 |
| C 00460509 |
| C 00470509 |
| CBB** ********************** BBCINITB **********************************00480509 |
| C**** INITIALIZE SECTION 00490509 |
| DATA ZVERS, ZVERSD, ZDATE 00500509 |
| 1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00510509 |
| DATA ZCOMPL, ZNAME, ZTAPE 00520509 |
| 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00530509 |
| DATA ZPROJ, ZTAPED, ZPROG 00540509 |
| 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00550509 |
| DATA REMRKS /' '/ 00560509 |
| C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00570509 |
| C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00580509 |
| C**** 00590509 |
| CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00600509 |
| CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00610509 |
| CZ03 ZPROG = 'PROGRAM NAME' 00620509 |
| CZ04 ZDATE = 'DATE OF TEST' 00630509 |
| CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00640509 |
| CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00650509 |
| CZ07 ZNAME = 'NAME OF USER' 00660509 |
| CZ08 ZTAPE = 'TAPE OWNER/ID' 00670509 |
| CZ09 ZTAPED = 'DATE TAPE COPIED' 00680509 |
| C 00690509 |
| IVPASS = 0 00700509 |
| IVFAIL = 0 00710509 |
| IVDELE = 0 00720509 |
| IVINSP = 0 00730509 |
| IVTOTL = 0 00740509 |
| IVTOTN = 0 00750509 |
| ICZERO = 0 00760509 |
| C 00770509 |
| C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00780509 |
| I01 = 05 00790509 |
| C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00800509 |
| I02 = 06 00810509 |
| C 00820509 |
| CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00830509 |
| C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00840509 |
| CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00850509 |
| C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00860509 |
| C 00870509 |
| CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00880509 |
| C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00890509 |
| CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00900509 |
| C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00910509 |
| C 00920509 |
| CBE** ********************** BBCINITB **********************************00930509 |
| ZPROG = 'FM509' 00940509 |
| IVTOTL = 16 00950509 |
| CBB** ********************** BBCHED0A **********************************00960509 |
| C**** 00970509 |
| C**** WRITE REPORT TITLE 00980509 |
| C**** 00990509 |
| WRITE (I02, 90002) 01000509 |
| WRITE (I02, 90006) 01010509 |
| WRITE (I02, 90007) 01020509 |
| WRITE (I02, 90008) ZVERS, ZVERSD 01030509 |
| WRITE (I02, 90009) ZPROG, ZPROG 01040509 |
| WRITE (I02, 90010) ZDATE, ZCOMPL 01050509 |
| CBE** ********************** BBCHED0A **********************************01060509 |
| CBB** ********************** BBCHED0B **********************************01070509 |
| C**** WRITE DETAIL REPORT HEADERS 01080509 |
| C**** 01090509 |
| WRITE (I02,90004) 01100509 |
| WRITE (I02,90004) 01110509 |
| WRITE (I02,90013) 01120509 |
| WRITE (I02,90014) 01130509 |
| WRITE (I02,90015) IVTOTL 01140509 |
| CBE** ********************** BBCHED0B **********************************01150509 |
| C 01160509 |
| CT001* TEST 001 **** FCVS PROGRAM 509 **** 01170509 |
| C SUBROUTINE WITH MULTIPLE ENTRIES 01180509 |
| C 01190509 |
| IVTNUM = 1 01200509 |
| IVCOMP = 0 01210509 |
| IVCORR = 25 01220509 |
| IVD020=3 01220509 |
| CALL SN510(IVD020,IVN001) 01230509 |
| CALL EN851(IVN001,IVCOMP) 01240509 |
| 40010 IF (IVCOMP - 25) 20010, 10010, 20010 01250509 |
| 10010 IVPASS = IVPASS + 1 01260509 |
| WRITE (I02,80002) IVTNUM 01270509 |
| GO TO 0011 01280509 |
| 20010 IVFAIL = IVFAIL + 1 01290509 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01300509 |
| 0011 CONTINUE 01310509 |
| C 01320509 |
| CT002* TEST 002 **** FCVS PROGRAM 509 **** 01330509 |
| C ENTRY WITH ONE ARGUMENT 01340509 |
| C 01350509 |
| IVTNUM = 2 01360509 |
| IVCOMP = 0 01370509 |
| IVCORR = 137 01380509 |
| IVN001 = 37 01390509 |
| CALL EN852(IVN001) 01400509 |
| IVCOMP = IVN001 01410509 |
| 40020 IF (IVCOMP - 137) 20020, 10020, 20020 01420509 |
| 10020 IVPASS = IVPASS + 1 01430509 |
| WRITE (I02,80002) IVTNUM 01440509 |
| GO TO 0021 01450509 |
| 20020 IVFAIL = IVFAIL + 1 01460509 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01470509 |
| 0021 CONTINUE 01480509 |
| C 01490509 |
| CT003* TEST 003 **** FCVS PROGRAM 509 **** 01500509 |
| C ENTRY WITH TWO ARGUMENT 01510509 |
| C 01520509 |
| IVTNUM = 3 01530509 |
| IVCOMP = 0 01540509 |
| IVCORR = -51 01550509 |
| CALL EN853(-9,IVCOMP) 01560509 |
| 40030 IF (IVCOMP + 51) 20030, 10030, 20030 01570509 |
| 10030 IVPASS = IVPASS + 1 01580509 |
| WRITE (I02,80002) IVTNUM 01590509 |
| GO TO 0031 01600509 |
| 20030 IVFAIL = IVFAIL + 1 01610509 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01620509 |
| 0031 CONTINUE 01630509 |
| C 01640509 |
| CT004* TEST 004 **** FCVS PROGRAM 509 **** 01650509 |
| C ENTRY WITH THREE ARGUMENTS 01660509 |
| C 01670509 |
| IVTNUM = 4 01680509 |
| IVCOMP = 0 01690509 |
| IVCORR = -71 01700509 |
| CALL EN854(275,147,IVCOMP) 01710509 |
| 40040 IF (IVCOMP + 71) 20040, 10040, 20040 01720509 |
| 10040 IVPASS = IVPASS + 1 01730509 |
| WRITE (I02,80002) IVTNUM 01740509 |
| GO TO 0041 01750509 |
| 20040 IVFAIL = IVFAIL + 1 01760509 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01770509 |
| 0041 CONTINUE 01780509 |
| C 01790509 |
| CT005* TEST 005 **** FCVS PROGRAM 509 **** 01800509 |
| C ENTRY WITH FOUR ARGUMENTS 01810509 |
| C 01820509 |
| IVTNUM = 5 01830509 |
| IVCOMP = 0 01840509 |
| IVCORR = 567 01850509 |
| CALL EN855(12,-15,63,IVCOMP) 01860509 |
| 40050 IF (IVCOMP - 567) 20050, 10050, 20050 01870509 |
| 10050 IVPASS = IVPASS + 1 01880509 |
| WRITE (I02,80002) IVTNUM 01890509 |
| GO TO 0051 01900509 |
| 20050 IVFAIL = IVFAIL + 1 01910509 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01920509 |
| 0051 CONTINUE 01930509 |
| C 01940509 |
| CT006* TEST 006 **** FCVS PROGRAM 509 **** 01950509 |
| C ENTRY WITH ARRAY AS DUMMY ARGUMENT 01960509 |
| C 01970509 |
| IVTNUM = 6 01980509 |
| IVCOMP = 0 01990509 |
| IVCORR = 16 02000509 |
| IVN001 = 2 02010509 |
| CALL EN856(IVN001,I2N001,IVCOMP) 02020509 |
| 40060 IF (IVCOMP - 16) 20060, 10060, 20060 02030509 |
| 10060 IVPASS = IVPASS + 1 02040509 |
| WRITE (I02,80002) IVTNUM 02050509 |
| GO TO 0061 02060509 |
| 20060 IVFAIL = IVFAIL + 1 02070509 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02080509 |
| 0061 CONTINUE 02090509 |
| C 02100509 |
| CT007* TEST 007 **** FCVS PROGRAM 509 **** 02110509 |
| C ENTRY WITH PROCEDURE AS DUMMY ARGUMENT 02120509 |
| C 02130509 |
| IVTNUM = 7 02140509 |
| RVCOMP = 0.0 02150509 |
| RVCORR = 2.25 02160509 |
| CALL EN857(1.5,RVCOMP,RF513) 02170509 |
| IF (RVCOMP - 0.22498E+01) 20070, 10070, 40070 02180509 |
| 40070 IF (RVCOMP - 0.22502E+01) 10070, 10070, 20070 02190509 |
| 10070 IVPASS = IVPASS + 1 02200509 |
| WRITE (I02,80002) IVTNUM 02210509 |
| GO TO 0071 02220509 |
| 20070 IVFAIL = IVFAIL + 1 02230509 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 02240509 |
| 0071 CONTINUE 02250509 |
| C 02260509 |
| CT008* TEST 008 **** FCVS PROGRAM 509 **** 02270509 |
| C ENTRY WITH ASTERISK AS DUMMY ARGUMENT 02280509 |
| C 02290509 |
| IVTNUM = 8 02300509 |
| IVCOMP = 0 02310509 |
| IVCORR = 19 02320509 |
| IVN001 = 2 02330509 |
| CALL EN858(IVN001,*0082,*0083) 02340509 |
| 0082 IVCOMP = 5 02350509 |
| GO TO 0084 02360509 |
| 0083 IVCOMP = 19 02370509 |
| 0084 CONTINUE 02380509 |
| 40080 IF (IVCOMP - 19) 20080, 10080, 20080 02390509 |
| 10080 IVPASS = IVPASS + 1 02400509 |
| WRITE (I02,80002) IVTNUM 02410509 |
| GO TO 0081 02420509 |
| 20080 IVFAIL = IVFAIL + 1 02430509 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02440509 |
| 0081 CONTINUE 02450509 |
| C 02460509 |
| C TESTS 9 AND 10 TEST ENTRY WITHOUT ARGUMENTS 02470509 |
| C 02480509 |
| CT009* TEST 009 **** FCVS PROGRAM 509 **** 02490509 |
| C 02500509 |
| IVTNUM = 9 02510509 |
| IVCOMP = 0 02520509 |
| IVCORR = 88 02530509 |
| IVC002 = 65 02540509 |
| IVC003 = 23 02550509 |
| CALL EN859( ) 02560509 |
| IVCOMP = IVC001 02570509 |
| 40090 IF (IVCOMP - 88) 20090, 10090, 20090 02580509 |
| 10090 IVPASS = IVPASS + 1 02590509 |
| WRITE (I02,80002) IVTNUM 02600509 |
| GO TO 0091 02610509 |
| 20090 IVFAIL = IVFAIL + 1 02620509 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02630509 |
| 0091 CONTINUE 02640509 |
| C 02650509 |
| CT010* TEST 010 **** FCVS PROGRAM 509 **** 02660509 |
| C 02670509 |
| IVTNUM = 10 02680509 |
| IVCOMP = 0 02690509 |
| IVCORR = -13 02700509 |
| IVC001 = 4 02710509 |
| IVC002 = -17 02720509 |
| CALL EN860 02730509 |
| IVCOMP = IVC003 02740509 |
| 40100 IF (IVCOMP + 13) 20100, 10100, 20100 02750509 |
| 10100 IVPASS = IVPASS + 1 02760509 |
| WRITE (I02,80002) IVTNUM 02770509 |
| GO TO 0101 02780509 |
| 20100 IVFAIL = IVFAIL + 1 02790509 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02800509 |
| 0101 CONTINUE 02810509 |
| C 02820509 |
| CT011* TEST 011 **** FCVS PROGRAM 509 **** 02830509 |
| C FUNCTION SUBPROGRAM WITH MULTIPLE ENTRIES 02840509 |
| C 02850509 |
| IVTNUM = 11 02860509 |
| RVCOMP = 0.0 02870509 |
| RVCORR = 3.675E-3 02880509 |
| RVN001 = RF513(3.5E-2) 02890509 |
| RVCOMP = EF852(RVN001) 02900509 |
| IF (RVCOMP - 0.36748E-02) 20110, 10110, 40110 02910509 |
| 40110 IF (RVCOMP - 0.36752E-02) 10110, 10110, 20110 02920509 |
| 10110 IVPASS = IVPASS + 1 02930509 |
| WRITE (I02,80002) IVTNUM 02940509 |
| GO TO 0111 02950509 |
| 20110 IVFAIL = IVFAIL + 1 02960509 |
| WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 02970509 |
| 0111 CONTINUE 02980509 |
| C 02990509 |
| CT012* TEST 012 **** FCVS PROGRAM 509 **** 03000509 |
| C SYMBOLIC NAME OF A CONSTANT AS AN ACTUAL ARGUMENT 03010509 |
| C 03020509 |
| IVTNUM = 12 03030509 |
| IVCOMP = 0 03040509 |
| IVCORR = 34 03050509 |
| CALL SN510(IPN001,IVCOMP) 03060509 |
| 40120 IF (IVCOMP - 34) 20120, 10120, 20120 03070509 |
| 10120 IVPASS = IVPASS + 1 03080509 |
| WRITE (I02,80002) IVTNUM 03090509 |
| GO TO 0121 03100509 |
| 20120 IVFAIL = IVFAIL + 1 03110509 |
| WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03120509 |
| 0121 CONTINUE 03130509 |
| C 03140509 |
| C TESTS 13 AND 14 TEST THE USE OF A SUBSTRING AS AN ACTUAL ARGUMENT 03150509 |
| C WHICH IS ASSOCIATED WITH A DUMMY ARGUMENT THAT IS A VARIABLE 03160509 |
| C 03170509 |
| C 03180509 |
| CT013* TEST 013 **** FCVS PROGRAM 509 **** 03190509 |
| C 03200509 |
| IVTNUM = 13 03210509 |
| CVCOMP = ' ' 03220509 |
| CVCORR = 'COLOR=YELLOW ' 03230509 |
| CALL SN511(CVN001(10:15),CVCOMP) 03240509 |
| IVCOMP = 0 03250509 |
| IF (CVCOMP.EQ.'COLOR=YELLOW ') IVCOMP = 1 03260509 |
| 40130 IF (IVCOMP - 1) 20130, 10130, 20130 03270509 |
| 10130 IVPASS = IVPASS + 1 03280509 |
| WRITE (I02,80002) IVTNUM 03290509 |
| GO TO 0131 03300509 |
| 20130 IVFAIL = IVFAIL + 1 03310509 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 03320509 |
| 0131 CONTINUE 03330509 |
| C 03340509 |
| CT014* TEST 014 **** FCVS PROGRAM 509 **** 03350509 |
| C 03360509 |
| IVTNUM = 14 03370509 |
| CVCOMP = ' ' 03380509 |
| CVCORR = 'COLOR=VIOLET ' 03390509 |
| CALL SN511(CVN001(25:30),CVCOMP) 03400509 |
| IVCOMP = 0 03410509 |
| IF (CVCOMP.EQ.'COLOR=VIOLET ') IVCOMP = 1 03420509 |
| 40140 IF (IVCOMP - 1) 20140, 10140, 20140 03430509 |
| 10140 IVPASS = IVPASS + 1 03440509 |
| WRITE (I02,80002) IVTNUM 03450509 |
| GO TO 0141 03460509 |
| 20140 IVFAIL = IVFAIL + 1 03470509 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 03480509 |
| 0141 CONTINUE 03490509 |
| C 03500509 |
| C TESTS 15 AND 16 TEST THE USE OF AN ARRAY ELEMENT SUBSTRING AS AN 03510509 |
| C ACTUAL ARGUMENT WHICH IS ASSOCIATED WITH A DUMMY ARGUMENT THAT 03520509 |
| C IS AN ARRAY 03530509 |
| C 03540509 |
| C 03550509 |
| CT015* TEST 015 **** FCVS PROGRAM 509 **** 03560509 |
| C 03570509 |
| IVTNUM = 15 03580509 |
| CVCOMP = ' ' 03590509 |
| CVCORR = 'RST-AID: ' 03600509 |
| CALL SN512(C1N001(1)(3:10),CVCOMP) 03610509 |
| IVCOMP = 0 03620509 |
| IF (CVCOMP.EQ.'RST-AID: ') IVCOMP = 1 03630509 |
| 40150 IF (IVCOMP - 1) 20150, 10150, 20150 03640509 |
| 10150 IVPASS = IVPASS + 1 03650509 |
| WRITE (I02,80002) IVTNUM 03660509 |
| GO TO 0151 03670509 |
| 20150 IVFAIL = IVFAIL + 1 03680509 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 03690509 |
| 0151 CONTINUE 03700509 |
| C 03710509 |
| CT016* TEST 016 **** FCVS PROGRAM 509 **** 03720509 |
| C 03730509 |
| IVTNUM = 16 03740509 |
| CVCOMP = ' ' 03750509 |
| CVCORR = 'IFTHROUN ' 03760509 |
| CALL SN512(C1N001(5)(2:9),CVCOMP) 03770509 |
| IVCOMP = 0 03780509 |
| IF (CVCOMP.EQ.'IFTHROUN ') IVCOMP = 1 03790509 |
| 40160 IF (IVCOMP - 1) 20160, 10160, 20160 03800509 |
| 10160 IVPASS = IVPASS + 1 03810509 |
| WRITE (I02,80002) IVTNUM 03820509 |
| GO TO 0161 03830509 |
| 20160 IVFAIL = IVFAIL + 1 03840509 |
| WRITE (I02,80018) IVTNUM, CVCOMP, CVCORR 03850509 |
| 0161 CONTINUE 03860509 |
| C 03870509 |
| CBB** ********************** BBCSUM0 **********************************03880509 |
| C**** WRITE OUT TEST SUMMARY 03890509 |
| C**** 03900509 |
| IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 03910509 |
| WRITE (I02, 90004) 03920509 |
| WRITE (I02, 90014) 03930509 |
| WRITE (I02, 90004) 03940509 |
| WRITE (I02, 90020) IVPASS 03950509 |
| WRITE (I02, 90022) IVFAIL 03960509 |
| WRITE (I02, 90024) IVDELE 03970509 |
| WRITE (I02, 90026) IVINSP 03980509 |
| WRITE (I02, 90028) IVTOTN, IVTOTL 03990509 |
| CBE** ********************** BBCSUM0 **********************************04000509 |
| CBB** ********************** BBCFOOT0 **********************************04010509 |
| C**** WRITE OUT REPORT FOOTINGS 04020509 |
| C**** 04030509 |
| WRITE (I02,90016) ZPROG, ZPROG 04040509 |
| WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 04050509 |
| WRITE (I02,90019) 04060509 |
| CBE** ********************** BBCFOOT0 **********************************04070509 |
| 90001 FORMAT (" ",56X,"FM509") 04080509 |
| 90000 FORMAT (" ",50X,"END OF PROGRAM FM509" ) 04090509 |
| CBB** ********************** BBCFMT0A **********************************04100509 |
| C**** FORMATS FOR TEST DETAIL LINES 04110509 |
| C**** 04120509 |
| 80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 04130509 |
| 80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 04140509 |
| 80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 04150509 |
| 80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 04160509 |
| 80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 04170509 |
| 1I6,/," ",15X,"CORRECT= " ,I6) 04180509 |
| 80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04190509 |
| 1E12.5,/," ",16X,"CORRECT= " ,E12.5) 04200509 |
| 80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04210509 |
| 1A21,/," ",16X,"CORRECT= " ,A21) 04220509 |
| 80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 04230509 |
| 80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 04240509 |
| 80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 04250509 |
| 80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 04260509 |
| 80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 04270509 |
| 80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 04280509 |
| 80050 FORMAT (" ",48X,A31) 04290509 |
| CBE** ********************** BBCFMT0A **********************************04300509 |
| CBB** ********************** BBCFMAT1 **********************************04310509 |
| C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 04320509 |
| C**** 04330509 |
| 80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04340509 |
| 1D17.10,/," ",16X,"CORRECT= " ,D17.10) 04350509 |
| 80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 04360509 |
| 80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 04370509 |
| 80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 04380509 |
| 80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 04390509 |
| 80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 04400509 |
| 80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 04410509 |
| 80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 04420509 |
| 1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 04430509 |
| 2"(",F12.5,", ",F12.5,")") 04440509 |
| CBE** ********************** BBCFMAT1 **********************************04450509 |
| CBB** ********************** BBCFMT0B **********************************04460509 |
| C**** FORMAT STATEMENTS FOR PAGE HEADERS 04470509 |
| C**** 04480509 |
| 90002 FORMAT ("1") 04490509 |
| 90004 FORMAT (" ") 04500509 |
| 90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )04510509 |
| 90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 04520509 |
| 90008 FORMAT (" ",21X,A13,A17) 04530509 |
| 90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 04540509 |
| 90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 04550509 |
| 90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 04560509 |
| 1 7X,"REMARKS",24X) 04570509 |
| 90014 FORMAT (" ","----------------------------------------------" , 04580509 |
| 1 "---------------------------------" ) 04590509 |
| 90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 04600509 |
| C**** 04610509 |
| C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 04620509 |
| C**** 04630509 |
| 90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 04640509 |
| 90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 04650509 |
| 1 A13) 04660509 |
| 90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 04670509 |
| C**** 04680509 |
| C**** FORMAT STATEMENTS FOR RUN SUMMARY 04690509 |
| C**** 04700509 |
| 90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 04710509 |
| 90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 04720509 |
| 90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 04730509 |
| 90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 04740509 |
| 90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 04750509 |
| CBE** ********************** BBCFMT0B **********************************04760509 |
| STOP 04770509 |
| END 04780509 |
| |
| C 00010510 |
| C THIS ROUTINE IS TO BE RUN WITH ROUTINE 509. 00020510 |
| C 00030510 |
| C THIS SUBROUTINE IS CALLED IN THE MAIN PROGRAM TO TEST IF 00040510 |
| C MULTIPLE ENTRIES ARE PERMITTED IN A SUBROUTINE SUBPROGRAM. 00050510 |
| C 00060510 |
| SUBROUTINE SN510(IVD021,IVD002) 00070510 |
| INTEGER I2D001(2,2) 00080510 |
| COMMON IVC001, IVC002, IVC003 00090510 |
| IVD001 = IVD021 00090510 |
| DO 70010 IVN001 = 1, 3 00100510 |
| IVD001 = IVD001 + 1 00110510 |
| 70010 CONTINUE 00120510 |
| IVD002 = IVD001 00130510 |
| RETURN 00140510 |
| ENTRY EN851(IVD003,IVD004) 00150510 |
| IVD004 = 3*IVD003 + 7 00160510 |
| RETURN 00170510 |
| ENTRY EN852(IVD005) 00180510 |
| IVD005 = IVD005 + 100 00190510 |
| RETURN 00200510 |
| ENTRY EN853(IVD006,IVD007) 00210510 |
| IVD007 = 5*(IVD006 + 2) - 16 00220510 |
| RETURN 00230510 |
| ENTRY EN854(IVD008,IVD009,IVD010) 00240510 |
| IVD010 = 4*(IVD008 - 2*IVD009) + 5 00250510 |
| RETURN 00260510 |
| ENTRY EN855(IVD011, IVD012, IVD013, IVD014) 00270510 |
| IVD014 = IVD013*(2*IVD011 + IVD012) 00280510 |
| RETURN 00290510 |
| ENTRY EN856(IVD015,I2D001,IVD016) 00300510 |
| IVD016 = 0 00310510 |
| DO 70020 IVN001 = 1, IVD015 00320510 |
| DO 70020 IVN002 = 1, IVD015 00330510 |
| 70020 IVD016 = IVD016 + I2D001(IVN001,IVN002) 00340510 |
| RETURN 00350510 |
| ENTRY EN857(RVD017,RVD018,RFD001) 00360510 |
| RVD018 = RFD001(RVD017) 00370510 |
| RETURN 00380510 |
| ENTRY EN858(IVD019,*,*) 00390510 |
| RETURN IVD019 00400510 |
| ENTRY EN859( ) 00410510 |
| IVC001 = IVC002 + IVC003 00420510 |
| RETURN 00430510 |
| ENTRY EN860 00440510 |
| IVC003 = IVC001 + IVC002 00450510 |
| RETURN 00460510 |
| END 00470510 |
| C 00480510 |
| |
| C 00010511 |
| C THIS ROUTINE IS TO BE RUN WITH ROUTINE 509. 00020511 |
| C 00030511 |
| C THIS SUBROUTINE IS CALLED IN THE MAIN PROGRAM TO TEST THE USE 00040511 |
| C OF A SUBSTRING NAME AS AN ACTUAL ARGUMENT WHICH IS 00050511 |
| C ASSOCIATED WITH A DUMMY ARGUMENT THAT IS A VARIBLE 00060511 |
| C 00070511 |
| SUBROUTINE SN511(CVD001,CVD002) 00080511 |
| CHARACTER CVD001*6, CVD002*12 00090511 |
| CVD002 = 'COLOR='//CVD001 00100511 |
| RETURN 00110511 |
| END 00120511 |
| |
| C 00010512 |
| C THIS ROUTINE IS TO BE RUN WIHT ROUTINE 509. 00020512 |
| C 00030512 |
| C THIS SUBROUTINE IS CALLED IN THE MAIN PROGRAM TO TEST THE USE OF 00040512 |
| C AN ARRAY ELEMENT SUBSTRING AS AN ACTUAL ARGUMENT WHICH 00050512 |
| C IS ASSOCIATED WITH A DUMMY ARGUMENT THAT IS AN ARRAY. 00060512 |
| C 00070512 |
| SUBROUTINE SN512(C1D001,CVD001) 00080512 |
| CHARACTER C1D001(6)*8,CVD001*8 00090512 |
| CVD001 = C1D001(1) 00100512 |
| RETURN 00110512 |
| END 00120512 |
| |
| C 00010513 |
| C THIS FUNCTION IS TO BE RUN WITH ROUTINE 509. 00020513 |
| C 00030513 |
| C THIS FUNCTION IS REFERENCED IN THE MAIN PROGRAM TO TEST IF 00040513 |
| C MULTIPLE ENTRIES ARE PERMITTED IN A FUNCTION SUBPROGRAM. 00050513 |
| C 00060513 |
| FUNCTION RF513(RVD001) 00070513 |
| RF513 = RVD001**2 00080513 |
| RETURN 00090513 |
| ENTRY EF852(RVD002) 00100513 |
| EF852 = 3*RVD002 00110513 |
| RETURN 00120513 |
| END 00130513 |