blob: 6a19a3ac2d488220f8a2f265340f29ac128c92f3 [file] [log] [blame]
PROGRAM FM700 00010700
C 00020700
C THIS PROGRAM TESTS THE DATA STATEMENT WITH ANS REF. 00030700
C VARIABLE NAMES, ARRAY NAMES, ARRAY ELEMENT 9.1 00040700
C NAMES, SUBSTRING NAMES, AND IMPLIED-DO LISTS. 9.2 00050700
C 9.3 00060700
C SYMBOLIC NAMES OF CONSTANTS ARE PERMITTED IN THE 00070700
C CLIST OF THE DATA STATEMENT. IF NECESSARY, 00080700
C THE CLIST CONSTANT IS CONVERTED TO THE TYPE 00090700
C OF THE NLIST ENTITY ACCORDING TO THE RULES 00100700
C FOR ARITHMETIC CONVERSION. 00110700
C 00120700
C 00130700
CBB** ********************** BBCCOMNT **********************************00140700
C**** 00150700
C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00160700
C**** VERSION 2.1 00170700
C**** 00180700
C**** 00190700
C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00200700
C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00210700
C**** SOFTWARE STANDARDS VALIDATION GROUP 00220700
C**** BUILDING 225 RM A266 00230700
C**** GAITHERSBURG, MD 20899 00240700
C**** 00250700
C**** 00260700
C**** 00270700
CBE** ********************** BBCCOMNT **********************************00280700
IMPLICIT DOUBLE PRECISION (D), COMPLEX (Z), LOGICAL (L) 00290700
IMPLICIT CHARACTER*27 (C) 00300700
CBB** ********************** BBCINITA **********************************00310700
C**** SPECIFICATION STATEMENTS 00320700
C**** 00330700
CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00340700
1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00350700
CBE** ********************** BBCINITA **********************************00360700
C 00370700
INTEGER I2N001(2,3), I2N002(7), I2N003(3,7) 00380700
INTEGER I2N004(3,10), I2N005(4,5), I2N006(6,8) 00390700
CHARACTER CVCOMP*25, CVCORR*25, CPN001*5 00400700
CHARACTER CVN001*25, CVN002*5, C1N001(3)*5 00410700
CHARACTER C2N001(3,4)*4, CVN003*17 00420700
REAL R2E001(2), R2N001(5,3) 00430700
DOUBLE PRECISION DVCOMP, DVCORR, DVN001, D1N001(9), DPN001 00440700
COMPLEX ZVCOMP, ZVCORR, ZVN001, Z1N001(10) 00450700
PARAMETER (IPN001=-14, CPN001='SEVEN', IPN002=5, DPN001=0.1948D+3)00460700
EQUIVALENCE (ZVCOMP, R2E001) 00470700
DATA IVN001, C1N001, I2N001(2,1), CVN001(11:22) 00480700
1 /-137, 'FIRST', 'SECND', 'THIRD', 65, 'ELEVENTWELVE'/ 00490700
DATA (I2N001(1,I), I=1,3) /-47, 198, -217/ 00500700
DATA IVN002, CVN002 /IPN001, CPN001/ 00510700
DATA I2N002, (I2N003(I,7), I=1,3), C2N001, CVN003(13:16) 00520700
1 /3*19, 7*-4, 13*'SAME'/ 00530700
DATA IVN003, IVN004, RVN001, ZVN001, DVN001, DVN002 00540700
1 /-0.473E+3, 239.2D-1, 71, (71, -27), 6, 9.1534E-2/ 00550700
DATA (I2N004(2,J), J=1,10) /9,8,7,6,5,4,3,2,1,0/ 00560700
DATA ((R2N001(I,J), J=1,3), I=3,5) 00570700
1 /3.1, 3.2, 3.3, 4.1, 4.2, 4.3, 5.1, 5.2, 5.3/ 00580700
DATA (Z1N001(I), I=3,7) /IPN002*(7.3, -2.28)/ 00590700
DATA (D1N001(I), I=1,9,2) /IPN002*DPN001/ 00600700
DATA (I2N005(I,I+1),I=1,4) / 91, -82, 73, -64/ 00610700
DATA ((I2N006(2*I,I*J-1), I=2,3), J=1,3,2) /41, 62, 45, 68/ 00620700
C 00630700
C 00640700
CBB** ********************** BBCINITB **********************************00650700
C**** INITIALIZE SECTION 00660700
DATA ZVERS, ZVERSD, ZDATE 00670700
1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00680700
DATA ZCOMPL, ZNAME, ZTAPE 00690700
1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00700700
DATA ZPROJ, ZTAPED, ZPROG 00710700
1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00720700
DATA REMRKS /' '/ 00730700
C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00740700
C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00750700
C**** 00760700
CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00770700
CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00780700
CZ03 ZPROG = 'PROGRAM NAME' 00790700
CZ04 ZDATE = 'DATE OF TEST' 00800700
CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00810700
CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00820700
CZ07 ZNAME = 'NAME OF USER' 00830700
CZ08 ZTAPE = 'TAPE OWNER/ID' 00840700
CZ09 ZTAPED = 'DATE TAPE COPIED' 00850700
C 00860700
IVPASS = 0 00870700
IVFAIL = 0 00880700
IVDELE = 0 00890700
IVINSP = 0 00900700
IVTOTL = 0 00910700
IVTOTN = 0 00920700
ICZERO = 0 00930700
C 00940700
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00950700
I01 = 05 00960700
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00970700
I02 = 06 00980700
C 00990700
CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 01000700
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 01010700
CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 01020700
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 01030700
C 01040700
CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 01050700
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 01060700
CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 01070700
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 01080700
C 01090700
CBE** ********************** BBCINITB **********************************01100700
ZPROG = 'FM700' 01110700
IVTOTL = 23 01120700
CBB** ********************** BBCHED0A **********************************01130700
C**** 01140700
C**** WRITE REPORT TITLE 01150700
C**** 01160700
WRITE (I02, 90002) 01170700
WRITE (I02, 90006) 01180700
WRITE (I02, 90007) 01190700
WRITE (I02, 90008) ZVERS, ZVERSD 01200700
WRITE (I02, 90009) ZPROG, ZPROG 01210700
WRITE (I02, 90010) ZDATE, ZCOMPL 01220700
CBE** ********************** BBCHED0A **********************************01230700
CBB** ********************** BBCHED0B **********************************01240700
C**** WRITE DETAIL REPORT HEADERS 01250700
C**** 01260700
WRITE (I02,90004) 01270700
WRITE (I02,90004) 01280700
WRITE (I02,90013) 01290700
WRITE (I02,90014) 01300700
WRITE (I02,90015) IVTOTL 01310700
CBE** ********************** BBCHED0B **********************************01320700
C 01330700
C 01340700
C TESTS 1 THRU 5 TEST DATA STATEMENT WITH VARIABLE NAMES, 01350700
C ARRAY NAMES, ARRAY ELEMENT NAMES, SUBSTRING NAMES, AND IMPLIED- 01360700
C DO LISTS. 01370700
C 01380700
CT001* TEST 001 **** FCVS PROGRAM 700 ***** 01390700
C VARIABLE NAME 01400700
C 01410700
IVTNUM = 1 01420700
IVCOMP = 0 01430700
IVCORR = -137 01440700
IVCOMP = IVN001 01450700
40010 IF (IVCOMP + 137) 20010, 10010, 20010 01460700
10010 IVPASS = IVPASS + 1 01470700
WRITE (I02, 80002) IVTNUM 01480700
GO TO 0011 01490700
20010 IVFAIL = IVFAIL + 1 01500700
WRITE (I02, 80010) IVTNUM, IVCOMP, IVCORR 01510700
0011 CONTINUE 01520700
C 01530700
CT002* TEST 002 **** FCVS PROGRAM 700 ***** 01540700
C ARRAY NAME 01550700
C 01560700
IVTNUM = 2 01570700
CVCOMP = ' ' 01580700
CVCORR = 'SECND' 01590700
CVCOMP = C1N001(2) 01600700
IVCOMP = 0 01610700
IF (CVCOMP.EQ.'SECND') IVCOMP = 1 01620700
40020 IF (IVCOMP - 1) 20020, 10020, 20020 01630700
10020 IVPASS = IVPASS + 1 01640700
WRITE (I02, 80002) IVTNUM 01650700
GO TO 0021 01660700
20020 IVFAIL = IVFAIL + 1 01670700
WRITE (I02, 80018) IVTNUM, CVCOMP, CVCORR 01680700
0021 CONTINUE 01690700
C 01700700
CT003* TEST 003 **** FCVS PROGRAM 700 ***** 01710700
C ARRAY ELEMENT NAME 01720700
C 01730700
IVTNUM = 3 01740700
IVCOMP = 0 01750700
IVCORR = 65 01760700
IVCOMP = I2N001(2,1) 01770700
40030 IF (IVCOMP - 65) 20030, 10030, 20030 01780700
10030 IVPASS = IVPASS + 1 01790700
WRITE (I02, 80002) IVTNUM 01800700
GO TO 0031 01810700
20030 IVFAIL = IVFAIL + 1 01820700
WRITE (I02, 80010) IVTNUM, IVCOMP, IVCORR 01830700
0031 CONTINUE 01840700
C 01850700
CT004* TEST 004 **** FCVS PROGRAM 700 ***** 01860700
C SUBSTRING NAME 01870700
C 01880700
IVTNUM = 4 01890700
CVCOMP = ' ' 01900700
CVCORR = 'ELEVENTWELVE' 01910700
CVCOMP = CVN001(11:22) 01920700
IVCOMP = 0 01930700
IF (CVCOMP.EQ.'ELEVENTWELVE') IVCOMP = 1 01940700
40040 IF (IVCOMP - 1) 20040, 10040, 20040 01950700
10040 IVPASS = IVPASS + 1 01960700
WRITE (I02, 80002) IVTNUM 01970700
GO TO 0041 01980700
20040 IVFAIL = IVFAIL + 1 01990700
WRITE (I02, 80018) IVTNUM, CVCOMP, CVCORR 02000700
0041 CONTINUE 02010700
C 02020700
CT005* TEST 005 **** FCVS PROGRAM 700 ***** 02030700
C IMPLIED-DO LIST 02040700
C 02050700
IVTNUM = 5 02060700
IVCOMP = 0 02070700
IVCORR = -217 02080700
IVCOMP = I2N001(1,3) 02090700
40050 IF (IVCOMP + 217) 20050, 10050, 20050 02100700
10050 IVPASS = IVPASS + 1 02110700
WRITE (I02, 80002) IVTNUM 02120700
GO TO 0051 02130700
20050 IVFAIL = IVFAIL + 1 02140700
WRITE (I02, 80010) IVTNUM, IVCOMP, IVCORR 02150700
0051 CONTINUE 02160700
C 02170700
CT006* TEST 006 **** FCVS PROGRAM 700 ***** 02180700
C CLIST CONTAINS A SYMBOLIC NAME OF AN INTEGER CONSTANT 02190700
C 02200700
IVTNUM = 6 02210700
IVCOMP = 0 02220700
IVCORR = -14 02230700
IVCOMP = IVN002 02240700
40060 IF (IVCOMP + 14) 20060, 10060, 20060 02250700
10060 IVPASS = IVPASS + 1 02260700
WRITE (I02, 80002) IVTNUM 02270700
GO TO 0061 02280700
20060 IVFAIL = IVFAIL + 1 02290700
WRITE (I02, 80010) IVTNUM, IVCOMP, IVCORR 02300700
0061 CONTINUE 02310700
C 02320700
CT007* TEST 007 **** FCVS PROGRAM 700 ***** 02330700
C CLIST CONTAINS A SYMBOLIC NAME OF A CHARACTER CONSTANT 02340700
C 02350700
IVTNUM = 7 02360700
CVCOMP = ' ' 02370700
CVCORR = 'SEVEN' 02380700
CVCOMP = CVN002 02390700
IVCOMP = 0 02400700
IF (CVCOMP.EQ.'SEVEN') IVCOMP = 1 02410700
40070 IF (IVCOMP - 1) 20070, 10070, 20070 02420700
10070 IVPASS = IVPASS + 1 02430700
WRITE (I02, 80002) IVTNUM 02440700
GO TO 0071 02450700
20070 IVFAIL = IVFAIL + 1 02460700
WRITE (I02, 80018) IVTNUM, CVCOMP, CVCORR 02470700
0071 CONTINUE 02480700
C 02490700
C TESTS 8 THRU 11 TEST COMBINATIONS OF SUBSTRING NAMES AND 02500700
C ARRAY NAMES AND THE R*C FORMAT OF THE CLIST 02510700
C 02520700
CT008* TEST 008 **** FCVS PROGRAM 700 ***** 02530700
C 02540700
IVTNUM = 8 02550700
IVCOMP = 0 02560700
IVCORR = 23 02570700
IVCOMP = I2N002(3) - I2N002(4) 02580700
40080 IF (IVCOMP - 23) 20080, 10080, 20080 02590700
10080 IVPASS = IVPASS + 1 02600700
WRITE (I02, 80002) IVTNUM 02610700
GO TO 0081 02620700
20080 IVFAIL = IVFAIL + 1 02630700
WRITE (I02, 80010) IVTNUM, IVCOMP, IVCORR 02640700
0081 CONTINUE 02650700
C 02660700
CT009* TEST 009 **** FCVS PROGRAM 700 ***** 02670700
C 02680700
IVTNUM = 9 02690700
IVCOMP = 0 02700700
IVCORR = -4 02710700
DO 0092 I = 1, 3 02720700
IF (I2N003(I,7) + 4) 0093, 0092, 0093 02730700
0092 CONTINUE 02740700
0093 IVCOMP = I2N003(3,7) 02750700
40090 IF (IVCOMP + 4) 20090, 10090, 20090 02760700
10090 IVPASS = IVPASS + 1 02770700
WRITE (I02, 80002) IVTNUM 02780700
GO TO 0091 02790700
20090 IVFAIL = IVFAIL + 1 02800700
WRITE (I02, 80010) IVTNUM, IVCOMP, IVCORR 02810700
0091 CONTINUE 02820700
C 02830700
CT010* TEST 010 **** FCVS PROGRAM 700 ***** 02840700
C 02850700
IVTNUM = 10 02860700
CVCOMP = ' ' 02870700
CVCORR = 'SAME' 02880700
DO 0102 I = 1, 3 02890700
DO 0102 J = 1, 4 02900700
IF (C2N001(I,J).NE.'SAME') GO TO 0103 02910700
0102 CONTINUE 02920700
0103 CVCOMP = C2N001(3,4) 02930700
IVCOMP = 0 02940700
IF (CVCOMP.EQ.'SAME') IVCOMP = 1 02950700
40100 IF (IVCOMP - 1) 20100, 10100, 20100 02960700
10100 IVPASS = IVPASS + 1 02970700
WRITE (I02, 80002) IVTNUM 02980700
GO TO 0101 02990700
20100 IVFAIL = IVFAIL + 1 03000700
WRITE (I02, 80018) IVTNUM, CVCOMP, CVCORR 03010700
0101 CONTINUE 03020700
C 03030700
CT011* TEST 011 **** FCVS PROGRAM 700 ***** 03040700
C 03050700
IVTNUM = 11 03060700
CVCOMP = ' ' 03070700
CVCORR = 'SAME' 03080700
CVCOMP = CVN003(13:16) 03090700
IVCOMP = 0 03100700
IF (CVCOMP.EQ.'SAME') IVCOMP = 1 03110700
40110 IF (IVCOMP - 1) 20110, 10110, 20110 03120700
10110 IVPASS = IVPASS + 1 03130700
WRITE (I02, 80002) IVTNUM 03140700
GO TO 0111 03150700
20110 IVFAIL = IVFAIL + 1 03160700
WRITE (I02, 80018) IVTNUM, CVCOMP, CVCORR 03170700
0111 CONTINUE 03180700
C 03190700
C TESTS 12 THRU 17 TEST ARITHMETIC CONVERSION OF CLIST 03200700
C CONSTANTS TO THE TYPE OF THE CORRESPONDING NLIST ENTITIES 03210700
C 03220700
CT012* TEST 012 **** FCVS PROGRAM 700 ***** 03230700
C REAL TO INTEGER 03240700
C 03250700
IVTNUM = 12 03260700
IVCOMP = 0 03270700
IVCORR = -473 03280700
IVCOMP = IVN003 03290700
40120 IF (IVCOMP + 473) 20120, 10120, 20120 03300700
10120 IVPASS = IVPASS + 1 03310700
WRITE (I02, 80002) IVTNUM 03320700
GO TO 0121 03330700
20120 IVFAIL = IVFAIL + 1 03340700
WRITE (I02, 80010) IVTNUM, IVCOMP, IVCORR 03350700
0121 CONTINUE 03360700
C 03370700
CT013* TEST 013 **** FCVS PROGRAM 700 ***** 03380700
C DOUBLE PRECISION TO INTEGER 03390700
C 03400700
IVTNUM = 13 03410700
IVCOMP = 0 03420700
IVCORR = 23 03430700
IVCOMP = IVN004 03440700
40130 IF (IVCOMP - 23) 20130, 10130, 20130 03450700
10130 IVPASS = IVPASS + 1 03460700
WRITE (I02, 80002) IVTNUM 03470700
GO TO 0131 03480700
20130 IVFAIL = IVFAIL + 1 03490700
WRITE (I02, 80010) IVTNUM, IVCOMP, IVCORR 03500700
0131 CONTINUE 03510700
C 03520700
CT014* TEST 014 **** FCVS PROGRAM 700 ***** 03530700
C INTEGER TO REAL 03540700
C 03550700
IVTNUM = 14 03560700
RVCOMP = 0.0 03570700
RVCORR = 71.0 03580700
RVCOMP = RVN001 03590700
IF (RVCOMP - 0.70996E+02) 20140, 10140, 40140 03600700
40140 IF (RVCOMP - 0.71004E+02) 10140, 10140, 20140 03610700
10140 IVPASS = IVPASS + 1 03620700
WRITE (I02, 80002) IVTNUM 03630700
GO TO 0141 03640700
20140 IVFAIL = IVFAIL + 1 03650700
WRITE (I02, 80012) IVTNUM, RVCOMP, RVCORR 03660700
0141 CONTINUE 03670700
C 03680700
CT015* TEST 015 **** FCVS PROGRAM 700 ***** 03690700
C COMPLEX 03700700
C 03710700
IVTNUM = 15 03720700
ZVCOMP = (0.0, 0.0) 03730700
ZVCORR = (71.0, -27.0) 03740700
ZVCOMP = ZVN001 03750700
IF (R2E001(1) - 0.70996E+02) 20150, 40152, 40151 03760700
40151 IF (R2E001(1) - 0.71004E+02) 40152, 40152, 20150 03770700
40152 IF (R2E001(2) + 0.27002E+02) 20150, 10150, 40150 03780700
40150 IF (R2E001(2) + 0.26998E+02) 10150, 10150, 20150 03790700
10150 IVPASS = IVPASS + 1 03800700
WRITE (I02, 80002) IVTNUM 03810700
GO TO 0151 03820700
20150 IVFAIL = IVFAIL + 1 03830700
WRITE (I02, 80045) IVTNUM, ZVCOMP, ZVCORR 03840700
0151 CONTINUE 03850700
C 03860700
CT016* TEST 016 **** FCVS PROGRAM 700 ***** 03870700
C INTEGER TO DOUBLE PRECISION 03880700
C 03890700
IVTNUM = 16 03900700
DVCOMP = 0.0D0 03910700
DVCORR = 6.0D0 03920700
DVCOMP = DVN001 03930700
IF (DVCOMP - 0.5999999997D+01) 20160, 10160, 40160 03940700
40160 IF (DVCOMP - 0.6000000003D+01) 10160, 10160, 20160 03950700
10160 IVPASS = IVPASS + 1 03960700
WRITE (I02, 80002) IVTNUM 03970700
GO TO 0161 03980700
20160 IVFAIL = IVFAIL + 1 03990700
WRITE (I02, 80031) IVTNUM, DVCOMP, DVCORR 04000700
0161 CONTINUE 04010700
C 04020700
CT017* TEST 017 **** FCVS PROGRAM 700 ***** 04030700
C REAL TO DOUBLE PRECISION 04040700
C 04050700
IVTNUM = 17 04060700
DVCOMP = 0.0D0 04070700
DVCORR = 9.1534D-2 04080700
DVCOMP = DVN002 04090700
IF (DVCOMP - 0.91529D-01) 20170, 10170, 40170 04100700
40170 IF (DVCOMP - 0.91539D-01) 10170, 10170, 20170 04110700
10170 IVPASS = IVPASS + 1 04120700
WRITE (I02, 80002) IVTNUM 04130700
GO TO 0171 04140700
20170 IVFAIL = IVFAIL + 1 04150700
WRITE (I02, 80031) IVTNUM, DVCOMP, DVCORR 04160700
0171 CONTINUE 04170700
C 04180700
C TESTS 18 THRU 21 TEST DIFFERENT DATA TYPES USING THE IMPLIED-DO 04190700
C 04200700
CT018* TEST 018 **** FCVS PROGRAM 700 ***** 04210700
C INTEGER 04220700
C 04230700
IVTNUM = 18 04240700
IVCOMP = 0 04250700
IVCORR = 3 04260700
IVCOMP = I2N004(2,7) 04270700
40180 IF (IVCOMP - 3) 20180, 10180, 20180 04280700
10180 IVPASS = IVPASS + 1 04290700
WRITE (I02, 80002) IVTNUM 04300700
GO TO 0181 04310700
20180 IVFAIL = IVFAIL + 1 04320700
WRITE (I02, 80010) IVTNUM, IVCOMP, IVCORR 04330700
0181 CONTINUE 04340700
C 04350700
CT019* TEST 019 **** FCVS PROGRAM 700 ***** 04360700
C REAL 04370700
C 04380700
IVTNUM = 19 04390700
RVCOMP = 0.0 04400700
RVCORR = 4.1 04410700
RVCOMP = R2N001(4,1) 04420700
IF (RVCOMP - 0.40998E+01) 20190, 10190, 40190 04430700
40190 IF (RVCOMP - 0.41002E+01) 10190, 10190, 20190 04440700
10190 IVPASS = IVPASS + 1 04450700
WRITE (I02, 80002) IVTNUM 04460700
GO TO 0191 04470700
20190 IVFAIL = IVFAIL + 1 04480700
WRITE (I02, 80012) IVTNUM, RVCOMP, RVCORR 04490700
0191 CONTINUE 04500700
C 04510700
CT020* TEST 020 **** FCVS PROGRAM 700 ***** 04520700
C COMPLEX 04530700
C 04540700
IVTNUM = 20 04550700
ZVCOMP = (0.0, 0.0) 04560700
ZVCORR = (7.3, -2.28) 04570700
ZVCOMP = Z1N001(7) 04580700
IF (R2E001(1) - 0.72996E+01) 20200, 40202, 40201 04590700
40201 IF (R2E001(1) - 0.73004E+01) 40202, 40202, 20200 04600700
40202 IF (R2E001(2) + 0.22802E+01) 20200, 10200, 40200 04610700
40200 IF (R2E001(2) + 0.22798E+01) 10200, 10200, 20200 04620700
10200 IVPASS = IVPASS + 1 04630700
WRITE (I02, 80002) IVTNUM 04640700
GO TO 0201 04650700
20200 IVFAIL = IVFAIL + 1 04660700
WRITE (I02, 80045) IVTNUM, ZVCOMP, ZVCORR 04670700
0201 CONTINUE 04680700
C 04690700
CT021* TEST 021 **** FCVS PROGRAM 700 ***** 04700700
C DOUBLE PRECISION 04710700
C 04720700
IVTNUM = 21 04730700
DVCOMP = 0.0D0 04740700
DVCORR = 0.1948D+3 04750700
DVCOMP = D1N001(9) 04760700
IF (DVCOMP - 0.1947999999D+03) 20210, 10210, 40210 04770700
40210 IF (DVCOMP - 0.1948000001D+03) 10210, 10210, 20210 04780700
10210 IVPASS = IVPASS + 1 04790700
WRITE (I02, 80002) IVTNUM 04800700
GO TO 0211 04810700
20210 IVFAIL = IVFAIL + 1 04820700
WRITE (I02, 80031) IVTNUM, DVCOMP, DVCORR 04830700
0211 CONTINUE 04840700
C 04850700
C TESTS 22 AND 23 TEST THAT EACH SUBSCRIPT EXPRESSION 04860700
C IN AN IMPLIED-DO LIST MAY CONTAIN IMPLIED-DO-VARIABLES OF 04870700
C THE LIST THAT HAS THE SUBSCRIPT EXPRESSION WITHIN ITS RANGE. 04880700
C 04890700
CT022* TEST 022 **** FCVS PROGRAM 700 ***** 04900700
C 04910700
IVTNUM = 22 04920700
IVCOMP = 0 04930700
IVCORR = 155 04940700
IVCOMP = I2N005(3,4) - I2N005(2,3) 04950700
40220 IF (IVCOMP - 155) 20220, 10220, 20220 04960700
10220 IVPASS = IVPASS + 1 04970700
WRITE (I02, 80002) IVTNUM 04980700
GO TO 0221 04990700
20220 IVFAIL = IVFAIL + 1 05000700
WRITE (I02, 80010) IVTNUM, IVCOMP, IVCORR 05010700
0221 CONTINUE 05020700
C 05030700
CT023* TEST 023 **** FCVS PROGRAM 700 ***** 05040700
C 05050700
IVTNUM = 23 05060700
IVCOMP = 0 05070700
IVCORR = 130 05080700
IVCOMP = I2N006(6,2) + I2N006(6,8) 05090700
40230 IF (IVCOMP - 130) 20230, 10230, 20230 05100700
10230 IVPASS = IVPASS + 1 05110700
WRITE (I02, 80002) IVTNUM 05120700
GO TO 0231 05130700
20230 IVFAIL = IVFAIL + 1 05140700
WRITE (I02, 80010) IVTNUM, IVCOMP, IVCORR 05150700
0231 CONTINUE 05160700
C 05170700
CBB** ********************** BBCSUM0 **********************************05180700
C**** WRITE OUT TEST SUMMARY 05190700
C**** 05200700
IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 05210700
WRITE (I02, 90004) 05220700
WRITE (I02, 90014) 05230700
WRITE (I02, 90004) 05240700
WRITE (I02, 90020) IVPASS 05250700
WRITE (I02, 90022) IVFAIL 05260700
WRITE (I02, 90024) IVDELE 05270700
WRITE (I02, 90026) IVINSP 05280700
WRITE (I02, 90028) IVTOTN, IVTOTL 05290700
CBE** ********************** BBCSUM0 **********************************05300700
CBB** ********************** BBCFOOT0 **********************************05310700
C**** WRITE OUT REPORT FOOTINGS 05320700
C**** 05330700
WRITE (I02,90016) ZPROG, ZPROG 05340700
WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 05350700
WRITE (I02,90019) 05360700
CBE** ********************** BBCFOOT0 **********************************05370700
90001 FORMAT (" ",56X,"FM700") 05380700
90000 FORMAT (" ",50X,"END OF PROGRAM FM700" ) 05390700
CBB** ********************** BBCFMT0A **********************************05400700
C**** FORMATS FOR TEST DETAIL LINES 05410700
C**** 05420700
80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 05430700
80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 05440700
80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 05450700
80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 05460700
80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 05470700
1I6,/," ",15X,"CORRECT= " ,I6) 05480700
80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 05490700
1E12.5,/," ",16X,"CORRECT= " ,E12.5) 05500700
80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 05510700
1A21,/," ",16X,"CORRECT= " ,A21) 05520700
80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 05530700
80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 05540700
80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 05550700
80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 05560700
80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 05570700
80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 05580700
80050 FORMAT (" ",48X,A31) 05590700
CBE** ********************** BBCFMT0A **********************************05600700
CBB** ********************** BBCFMAT1 **********************************05610700
C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 05620700
C**** 05630700
80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 05640700
1D17.10,/," ",16X,"CORRECT= " ,D17.10) 05650700
80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 05660700
80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 05670700
80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 05680700
80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 05690700
80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 05700700
80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 05710700
80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 05720700
1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 05730700
2"(",F12.5,", ",F12.5,")") 05740700
CBE** ********************** BBCFMAT1 **********************************05750700
CBB** ********************** BBCFMT0B **********************************05760700
C**** FORMAT STATEMENTS FOR PAGE HEADERS 05770700
C**** 05780700
90002 FORMAT ("1") 05790700
90004 FORMAT (" ") 05800700
90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )05810700
90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 05820700
90008 FORMAT (" ",21X,A13,A17) 05830700
90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 05840700
90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 05850700
90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 05860700
1 7X,"REMARKS",24X) 05870700
90014 FORMAT (" ","----------------------------------------------" , 05880700
1 "---------------------------------" ) 05890700
90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 05900700
C**** 05910700
C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 05920700
C**** 05930700
90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 05940700
90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 05950700
1 A13) 05960700
90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 05970700
C**** 05980700
C**** FORMAT STATEMENTS FOR RUN SUMMARY 05990700
C**** 06000700
90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 06010700
90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 06020700
90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 06030700
90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 06040700
90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 06050700
CBE** ********************** BBCFMT0B **********************************06060700
STOP 06070700
END 06080700