blob: 157ce4829c869ade2fa283130f9ab151f7def2ab [file] [log] [blame]
PROGRAM FM718 00010718
C 00020718
C THIS ROUTINE TESTS LOGICAL EXPRESSIONS AND ANS REF. 00030718
C USE OF THE LOGICAL OPERATORS .NOT., .AND., .OR., 6.4, 6.4.2, 00040718
C .EQV., AND .NEQV. 6.4.3, 6.4.400050718
C 00060718
CBB** ********************** BBCCOMNT **********************************00070718
C**** 00080718
C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM 00090718
C**** VERSION 2.1 00100718
C**** 00110718
C**** 00120718
C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00130718
C**** NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00140718
C**** SOFTWARE STANDARDS VALIDATION GROUP 00150718
C**** BUILDING 225 RM A266 00160718
C**** GAITHERSBURG, MD 20899 00170718
C**** 00180718
C**** 00190718
C**** 00200718
CBE** ********************** BBCCOMNT **********************************00210718
IMPLICIT DOUBLE PRECISION (D), COMPLEX (Z), LOGICAL (L) 00220718
IMPLICIT CHARACTER*27 (C) 00230718
CBB** ********************** BBCINITA **********************************00240718
C**** SPECIFICATION STATEMENTS 00250718
C**** 00260718
CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 00270718
1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 00280718
CBE** ********************** BBCINITA **********************************00290718
C 00300718
LOGICAL LPN001, LPN002, LPN003, LPN004 00310718
LOGICAL LVCOMP, LVCORR, LVN001 00320718
PARAMETER (LPN001 = .TRUE., LPN002 = .FALSE., 00330718
1 LPN003 = .TRUE., LPN004 = .FALSE.) 00340718
C 00350718
C 00360718
CBB** ********************** BBCINITB **********************************00370718
C**** INITIALIZE SECTION 00380718
DATA ZVERS, ZVERSD, ZDATE 00390718
1 /'VERSION 2.1 ', '93/10/21*21.02.00', '*NO DATE*TIME'/ 00400718
DATA ZCOMPL, ZNAME, ZTAPE 00410718
1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ 00420718
DATA ZPROJ, ZTAPED, ZPROG 00430718
1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ 00440718
DATA REMRKS /' '/ 00450718
C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED 00460718
C**** FOR IDENTIFYING THE TEST ENVIRONMENT 00470718
C**** 00480718
CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' 00490718
CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' 00500718
CZ03 ZPROG = 'PROGRAM NAME' 00510718
CZ04 ZDATE = 'DATE OF TEST' 00520718
CZ05 ZCOMPL = 'COMPILER IDENTIFICATION' 00530718
CZ06 ZPROJ = 'PROJECT NUMBER/IDENTIFICATION' 00540718
CZ07 ZNAME = 'NAME OF USER' 00550718
CZ08 ZTAPE = 'TAPE OWNER/ID' 00560718
CZ09 ZTAPED = 'DATE TAPE COPIED' 00570718
C 00580718
IVPASS = 0 00590718
IVFAIL = 0 00600718
IVDELE = 0 00610718
IVINSP = 0 00620718
IVTOTL = 0 00630718
IVTOTN = 0 00640718
ICZERO = 0 00650718
C 00660718
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00670718
I01 = 05 00680718
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00690718
I02 = 06 00700718
C 00710718
CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00720718
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00730718
CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS 00740718
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. 00750718
C 00760718
CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). 00770718
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 00780718
CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS 00790718
C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. 00800718
C 00810718
CBE** ********************** BBCINITB **********************************00820718
ZPROG='FM718' 00830718
IVTOTL = 29 00840718
CBB** ********************** BBCHED0A **********************************00850718
C**** 00860718
C**** WRITE REPORT TITLE 00870718
C**** 00880718
WRITE (I02, 90002) 00890718
WRITE (I02, 90006) 00900718
WRITE (I02, 90007) 00910718
WRITE (I02, 90008) ZVERS, ZVERSD 00920718
WRITE (I02, 90009) ZPROG, ZPROG 00930718
WRITE (I02, 90010) ZDATE, ZCOMPL 00940718
CBE** ********************** BBCHED0A **********************************00950718
CBB** ********************** BBCHED0B **********************************00960718
C**** WRITE DETAIL REPORT HEADERS 00970718
C**** 00980718
WRITE (I02,90004) 00990718
WRITE (I02,90004) 01000718
WRITE (I02,90013) 01010718
WRITE (I02,90014) 01020718
WRITE (I02,90015) IVTOTL 01030718
CBE** ********************** BBCHED0B **********************************01040718
C 01050718
CT001* TEST 001 **** FCVS PROGRAM 718 **** 01060718
C 01070718
C LOGICAL EXPRESSION CONTAINING SYMBOLIC NAME OF A LOGICAL CONSTANT 01080718
C 01090718
IVTNUM = 1 01100718
LVCORR = .TRUE. 01110718
LVCOMP = LPN001 01120718
IVCOMP = 0 01130718
IF (LVCOMP) IVCOMP = 1 01140718
IF (IVCOMP - 1) 20010, 10010, 20010 01150718
10010 IVPASS = IVPASS + 1 01160718
WRITE (I02,80002) IVTNUM 01170718
GO TO 0011 01180718
20010 IVFAIL = IVFAIL + 1 01190718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01200718
0011 CONTINUE 01210718
C 01220718
C TESTS 2-3 - TEST LOGICAL EXPRESSIONS INVOLVING .NOT. 01230718
C 01240718
C 01250718
CT002* TEST 002 **** FCVS PROGRAM 718 **** 01260718
C 01270718
C 01280718
IVTNUM = 2 01290718
LVCORR = .TRUE. 01300718
LVCOMP = .NOT..FALSE. 01310718
IVCOMP = 0 01320718
IF (LVCOMP) IVCOMP = 1 01330718
IF (IVCOMP - 1) 20020, 10020, 20020 01340718
10020 IVPASS = IVPASS + 1 01350718
WRITE (I02,80002) IVTNUM 01360718
GO TO 0021 01370718
20020 IVFAIL = IVFAIL + 1 01380718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01390718
0021 CONTINUE 01400718
C 01410718
CT003* TEST 003 **** FCVS PROGRAM 718 **** 01420718
C 01430718
C 01440718
IVTNUM = 3 01450718
IVCORR = 1 01460718
IVCOMP = 0 01470718
IF (.NOT. LPN002) IVCOMP = 1 01480718
40030 IF (IVCOMP - 1) 20030, 10030, 20030 01490718
10030 IVPASS = IVPASS + 1 01500718
WRITE (I02,80002) IVTNUM 01510718
GO TO 0031 01520718
20030 IVFAIL = IVFAIL + 1 01530718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01540718
0031 CONTINUE 01550718
C 01560718
C TESTS 4-5 - TEST LOGICAL EXPRESSIONS INVOLVING .AND. 01570718
C 01580718
C 01590718
CT004* TEST 004 **** FCVS PROGRAM 718 **** 01600718
C 01610718
C 01620718
IVTNUM = 4 01630718
LVCORR = .TRUE. 01640718
LVCOMP = .TRUE..AND.LPN003 01650718
IVCOMP = 0 01660718
IF (LVCOMP) IVCOMP = 1 01670718
IF (IVCOMP - 1) 20040, 10040, 20040 01680718
10040 IVPASS = IVPASS + 1 01690718
WRITE (I02,80002) IVTNUM 01700718
GO TO 0041 01710718
20040 IVFAIL = IVFAIL + 1 01720718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01730718
0041 CONTINUE 01740718
C 01750718
CT005* TEST 005 **** FCVS PROGRAM 718 **** 01760718
C 01770718
C 01780718
IVTNUM = 5 01790718
IVCORR = 1 01800718
IVCOMP = 0 01810718
IF (LPN003.AND..TRUE.) IVCOMP = 1 01820718
40050 IF (IVCOMP - 1) 20050, 10050, 20050 01830718
10050 IVPASS = IVPASS + 1 01840718
WRITE (I02,80002) IVTNUM 01850718
GO TO 0051 01860718
20050 IVFAIL = IVFAIL + 1 01870718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01880718
0051 CONTINUE 01890718
C 01900718
C TESTS 6-7 - TEST LOGICAL EXPRESSIONS INVOLVING .OR. 01910718
C 01920718
C 01930718
CT006* TEST 006 **** FCVS PROGRAM 718 **** 01940718
C 01950718
C 01960718
IVTNUM = 6 01970718
LVCORR = .TRUE. 01980718
LVCOMP = .TRUE..OR.LPN004 01990718
IVCOMP = 0 02000718
IF (LVCOMP) IVCOMP = 1 02010718
IF (IVCOMP - 1) 20060, 10060, 20060 02020718
10060 IVPASS = IVPASS + 1 02030718
WRITE (I02,80002) IVTNUM 02040718
GO TO 0061 02050718
20060 IVFAIL = IVFAIL + 1 02060718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02070718
0061 CONTINUE 02080718
C 02090718
CT007* TEST 007 **** FCVS PROGRAM 718 **** 02100718
C 02110718
C 02120718
IVTNUM = 7 02130718
IVCORR = 1 02140718
IVCOMP = 0 02150718
IF (LPN001.OR..FALSE.) IVCOMP = 1 02160718
40070 IF (IVCOMP - 1) 20070, 10070, 20070 02170718
10070 IVPASS = IVPASS + 1 02180718
WRITE (I02,80002) IVTNUM 02190718
GO TO 0071 02200718
20070 IVFAIL = IVFAIL + 1 02210718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02220718
0071 CONTINUE 02230718
C 02240718
C TESTS 8-9 - TEST LOGICAL EXPRESSIONS INVOLVING .EQV. 02250718
C 02260718
C 02270718
CT008* TEST 008 **** FCVS PROGRAM 718 **** 02280718
C 02290718
C 02300718
IVTNUM = 8 02310718
LVCORR = .TRUE. 02320718
LVCOMP = .FALSE..EQV.LPN002 02330718
IVCOMP = 0 02340718
IF (LVCOMP) IVCOMP = 1 02350718
IF (IVCOMP - 1) 20080, 10080, 20080 02360718
10080 IVPASS = IVPASS + 1 02370718
WRITE (I02,80002) IVTNUM 02380718
GO TO 0081 02390718
20080 IVFAIL = IVFAIL + 1 02400718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02410718
0081 CONTINUE 02420718
C 02430718
CT009* TEST 009 **** FCVS PROGRAM 718 **** 02440718
C 02450718
C 02460718
IVTNUM = 9 02470718
IVCORR = 1 02480718
IVCOMP = 0 02490718
IF (LPN003.EQV..TRUE.) IVCOMP = 1 02500718
40090 IF (IVCOMP - 1) 20090, 10090, 20090 02510718
10090 IVPASS = IVPASS + 1 02520718
WRITE (I02,80002) IVTNUM 02530718
GO TO 0091 02540718
20090 IVFAIL = IVFAIL + 1 02550718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02560718
0091 CONTINUE 02570718
C 02580718
C TESTS 10-11 - TEST LOGICAL EXPRESSIONS INVOLVING .NEQV. 02590718
C 02600718
C 02610718
CT010* TEST 010 **** FCVS PROGRAM 718 **** 02620718
C 02630718
C 02640718
IVTNUM = 10 02650718
LVCORR = .TRUE. 02660718
LVCOMP = .FALSE..NEQV.LPN001 02670718
IVCOMP = 0 02680718
IF (LVCOMP) IVCOMP = 1 02690718
IF (IVCOMP - 1) 20100, 10100, 20100 02700718
10100 IVPASS = IVPASS + 1 02710718
WRITE (I02,80002) IVTNUM 02720718
GO TO 0101 02730718
20100 IVFAIL = IVFAIL + 1 02740718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02750718
0101 CONTINUE 02760718
C 02770718
CT011* TEST 011 **** FCVS PROGRAM 718 **** 02780718
C 02790718
C 02800718
IVTNUM = 11 02810718
IVCORR = 1 02820718
IVCOMP = 0 02830718
IF (LPN003.NEQV..FALSE.) IVCOMP = 1 02840718
40110 IF (IVCOMP - 1) 20110, 10110, 20110 02850718
10110 IVPASS = IVPASS + 1 02860718
WRITE (I02,80002) IVTNUM 02870718
GO TO 0111 02880718
20110 IVFAIL = IVFAIL + 1 02890718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02900718
0111 CONTINUE 02910718
C 02920718
C TESTS 12-17 - TEST LOGICAL EXPRESSIONS INVOLVING VARIOUS COMBINA- 02930718
C TIONS OF LOGICAL OPERATORS AND ALSO TEST PRECEDENCE AMONG THE 02940718
C LOGICAL OPERATORS WITH OR WITHOUT PARENTHESES 02950718
C 02960718
C 02970718
CT012* TEST 012 **** FCVS PROGRAM 718 **** 02980718
C 02990718
C 03000718
IVTNUM = 12 03010718
LVCORR = .TRUE. 03020718
LVN001 = .TRUE. 03030718
LVCOMP = LVN001.EQV.LPN002.AND..TRUE..NEQV.LPN003 03040718
IVCOMP = 0 03050718
IF (LVCOMP) IVCOMP = 1 03060718
IF (IVCOMP - 1) 20120, 10120, 20120 03070718
10120 IVPASS = IVPASS + 1 03080718
WRITE (I02,80002) IVTNUM 03090718
GO TO 0121 03100718
20120 IVFAIL = IVFAIL + 1 03110718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03120718
0121 CONTINUE 03130718
C 03140718
CT013* TEST 013 **** FCVS PROGRAM 718 **** 03150718
C 03160718
C 03170718
IVTNUM = 13 03180718
LVCORR = .FALSE. 03190718
LVCOMP = (.TRUE..EQV..FALSE.).AND.(LVN001.NEQV.LPN003) 03200718
IVCOMP = 0 03210718
IF (LVCOMP) IVCOMP = 1 03220718
IF (IVCOMP - 0) 20130, 10130, 20130 03230718
10130 IVPASS = IVPASS + 1 03240718
WRITE (I02,80002) IVTNUM 03250718
GO TO 0131 03260718
20130 IVFAIL = IVFAIL + 1 03270718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03280718
0131 CONTINUE 03290718
C 03300718
CT014* TEST 014 **** FCVS PROGRAM 718 **** 03310718
C 03320718
C 03330718
IVTNUM = 14 03340718
LVCORR = .TRUE. 03350718
LVN001 = .FALSE. 03360718
LVCOMP = LVN001.EQV.LPN002.AND..NOT.LPN001.OR..FALSE. 03370718
IVCOMP = 0 03380718
IF (LVCOMP) IVCOMP = 1 03390718
IF (IVCOMP - 1) 20140, 10140, 20140 03400718
10140 IVPASS = IVPASS + 1 03410718
WRITE (I02,80002) IVTNUM 03420718
GO TO 0141 03430718
20140 IVFAIL = IVFAIL + 1 03440718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03450718
0141 CONTINUE 03460718
C 03470718
CT015* TEST 015 **** FCVS PROGRAM 718 **** 03480718
C 03490718
C 03500718
IVTNUM = 15 03510718
LVCORR = .FALSE. 03520718
LVCOMP = (LVN001.EQV.LPN002).AND.(.NOT.LPN001.OR..FALSE.) 03530718
IVCOMP = 0 03540718
IF (LVCOMP) IVCOMP = 1 03550718
IF (IVCOMP - 0) 20150, 10150, 20150 03560718
10150 IVPASS = IVPASS + 1 03570718
WRITE (I02,80002) IVTNUM 03580718
GO TO 0151 03590718
20150 IVFAIL = IVFAIL + 1 03600718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03610718
0151 CONTINUE 03620718
C 03630718
CT016* TEST 016 **** FCVS PROGRAM 718 **** 03640718
C 03650718
C 03660718
IVTNUM = 16 03670718
LVCORR = .TRUE. 03680718
LVCOMP = LPN001.EQV.LVN001.OR..NOT.LPN003.NEQV..TRUE. 03690718
IVCOMP = 0 03700718
IF (LVCOMP) IVCOMP = 1 03710718
IF (IVCOMP - 1) 20160, 10160, 20160 03720718
10160 IVPASS = IVPASS + 1 03730718
WRITE (I02,80002) IVTNUM 03740718
GO TO 0161 03750718
20160 IVFAIL = IVFAIL + 1 03760718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03770718
0161 CONTINUE 03780718
C 03790718
CT017* TEST 017 **** FCVS PROGRAM 718 **** 03800718
C 03810718
C 03820718
IVTNUM = 17 03830718
LVCORR = .TRUE. 03840718
LVCOMP = LPN001.AND.(LVN001.OR..NOT.(LPN002.EQV.(LPN003.NEQV. 03850718
1 LPN004))) 03860718
IVCOMP = 0 03870718
IF (LVCOMP) IVCOMP = 1 03880718
IF (IVCOMP - 1) 20170, 10170, 20170 03890718
10170 IVPASS = IVPASS + 1 03900718
WRITE (I02,80002) IVTNUM 03910718
GO TO 0171 03920718
20170 IVFAIL = IVFAIL + 1 03930718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03940718
0171 CONTINUE 03950718
C 03960718
C TESTS 18-21 - TEST LOGICAL EXPRESSIONS INVOLOVING .EQV. 03970718
C 03980718
C 03990718
CT018* TEST 018 **** FCVS PROGRAM 718 **** 04000718
C 04010718
C 04020718
IVTNUM = 18 04030718
LVCORR = .TRUE. 04040718
LVCOMP = LPN001.EQV.LPN003 04050718
IVCOMP = 0 04060718
IF (LVCOMP) IVCOMP = 1 04070718
IF (IVCOMP - 1) 20180, 10180, 20180 04080718
10180 IVPASS = IVPASS + 1 04090718
WRITE (I02,80002) IVTNUM 04100718
GO TO 0181 04110718
20180 IVFAIL = IVFAIL + 1 04120718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04130718
0181 CONTINUE 04140718
C 04150718
CT019* TEST 019 **** FCVS PROGRAM 718 **** 04160718
C 04170718
C 04180718
IVTNUM = 19 04190718
LVCORR = .FALSE. 04200718
LVCOMP = LPN001.EQV.LPN002 04210718
IVCOMP = 0 04220718
IF (LVCOMP) IVCOMP = 1 04230718
IF (IVCOMP - 0) 20190, 10190, 20190 04240718
10190 IVPASS = IVPASS + 1 04250718
WRITE (I02,80002) IVTNUM 04260718
GO TO 0191 04270718
20190 IVFAIL = IVFAIL + 1 04280718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04290718
0191 CONTINUE 04300718
C 04310718
CT020* TEST 020 **** FCVS PROGRAM 718 **** 04320718
C 04330718
C 04340718
IVTNUM = 20 04350718
LVCORR = .FALSE. 04360718
LVCOMP = LPN002.EQV.LPN003 04370718
IVCOMP = 0 04380718
IF (LVCOMP) IVCOMP = 1 04390718
IF (IVCOMP - 0) 20200, 10200, 20200 04400718
10200 IVPASS = IVPASS + 1 04410718
WRITE (I02,80002) IVTNUM 04420718
GO TO 0201 04430718
20200 IVFAIL = IVFAIL + 1 04440718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04450718
0201 CONTINUE 04460718
C 04470718
CT021* TEST 021 **** FCVS PROGRAM 718 **** 04480718
C 04490718
C 04500718
IVTNUM = 21 04510718
LVCORR = .TRUE. 04520718
LVCOMP = LPN002.EQV.LPN004 04530718
IVCOMP = 0 04540718
IF (LVCOMP) IVCOMP = 1 04550718
IF (IVCOMP - 1) 20210, 10210, 20210 04560718
10210 IVPASS = IVPASS + 1 04570718
WRITE (I02,80002) IVTNUM 04580718
GO TO 0211 04590718
20210 IVFAIL = IVFAIL + 1 04600718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04610718
0211 CONTINUE 04620718
C 04630718
C TESTS 22-25 - TEST LOGICAL EXPRESSIONS INVOLVING .NEQV. 04640718
C 04650718
C 04660718
CT022* TEST 022 **** FCVS PROGRAM 718 **** 04670718
C 04680718
C 04690718
IVTNUM = 22 04700718
LVCORR = .FALSE. 04710718
LVCOMP = LPN001.NEQV.LPN003 04720718
IVCOMP = 0 04730718
IF (LVCOMP) IVCOMP = 1 04740718
IF (IVCOMP - 0) 20220, 10220, 20220 04750718
10220 IVPASS = IVPASS + 1 04760718
WRITE (I02,80002) IVTNUM 04770718
GO TO 0221 04780718
20220 IVFAIL = IVFAIL + 1 04790718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04800718
0221 CONTINUE 04810718
C 04820718
CT023* TEST 023 **** FCVS PROGRAM 718 **** 04830718
C 04840718
C 04850718
IVTNUM = 23 04860718
LVCORR = .TRUE. 04870718
LVCOMP = LPN001.NEQV.LPN002 04880718
IVCOMP = 0 04890718
IF (LVCOMP) IVCOMP = 1 04900718
IF (IVCOMP - 1) 20230, 10230, 20230 04910718
10230 IVPASS = IVPASS + 1 04920718
WRITE (I02,80002) IVTNUM 04930718
GO TO 0231 04940718
20230 IVFAIL = IVFAIL + 1 04950718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04960718
0231 CONTINUE 04970718
C 04980718
CT024* TEST 024 **** FCVS PROGRAM 718 **** 04990718
C 05000718
C 05010718
IVTNUM = 24 05020718
LVCORR = .TRUE. 05030718
LVCOMP = LPN002.NEQV.LPN003 05040718
IVCOMP = 0 05050718
IF (LVCOMP) IVCOMP = 1 05060718
IF (IVCOMP - 1) 20240, 10240, 20240 05070718
10240 IVPASS = IVPASS + 1 05080718
WRITE (I02,80002) IVTNUM 05090718
GO TO 0241 05100718
20240 IVFAIL = IVFAIL + 1 05110718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05120718
0241 CONTINUE 05130718
C 05140718
CT025* TEST 025 **** FCVS PROGRAM 718 **** 05150718
C 05160718
C 05170718
IVTNUM = 25 05180718
LVCORR = .FALSE. 05190718
LVCOMP = LPN002.NEQV.LPN004 05200718
IVCOMP = 0 05210718
IF (LVCOMP) IVCOMP = 1 05220718
IF (IVCOMP - 0) 20250, 10250, 20250 05230718
10250 IVPASS = IVPASS + 1 05240718
WRITE (I02,80002) IVTNUM 05250718
GO TO 0251 05260718
20250 IVFAIL = IVFAIL + 1 05270718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05280718
0251 CONTINUE 05290718
C 05300718
C TESTS 26-29 TEST LOGICAL CONSTANT EXPRESSIONS USING SYMBOLIC NAMES 05310718
C OF LOGICAL CONSTANTS 05320718
C 05330718
C 05340718
CT026* TEST 026 **** FCVS PROGRAM 718 **** 05350718
C 05360718
C 05370718
IVTNUM = 26 05380718
LVCORR = .FALSE. 05390718
LVCOMP = LPN001.EQV.LPN002.NEQV.LPN004 05400718
IVCOMP = 0 05410718
IF (LVCOMP) IVCOMP = 1 05420718
IF (IVCOMP - 0) 20260, 10260, 20260 05430718
10260 IVPASS = IVPASS + 1 05440718
WRITE (I02,80002) IVTNUM 05450718
GO TO 0261 05460718
20260 IVFAIL = IVFAIL + 1 05470718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05480718
0261 CONTINUE 05490718
C 05500718
CT027* TEST 027 **** FCVS PROGRAM 718 **** 05510718
C 05520718
C 05530718
IVTNUM = 27 05540718
LVCORR = .TRUE. 05550718
LVCOMP = LPN003.NEQV.LPN001.AND.LPN002 05560718
IVCOMP = 0 05570718
IF (LVCOMP) IVCOMP = 1 05580718
IF (IVCOMP - 1) 20270, 10270, 20270 05590718
10270 IVPASS = IVPASS + 1 05600718
WRITE (I02,80002) IVTNUM 05610718
GO TO 0271 05620718
20270 IVFAIL = IVFAIL + 1 05630718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05640718
0271 CONTINUE 05650718
C 05660718
CT028* TEST 028 **** FCVS PROGRAM 718 **** 05670718
C 05680718
C 05690718
IVTNUM = 28 05700718
LVCORR = .FALSE. 05710718
LVCOMP = (LPN003.NEQV.LPN001).AND.LPN002 05720718
IVCOMP = 0 05730718
IF (LVCOMP) IVCOMP = 1 05740718
IF (IVCOMP - 0) 20280, 10280, 20280 05750718
10280 IVPASS = IVPASS + 1 05760718
WRITE (I02,80002) IVTNUM 05770718
GO TO 0281 05780718
20280 IVFAIL = IVFAIL + 1 05790718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05800718
0281 CONTINUE 05810718
C 05820718
CT029* TEST 029 **** FCVS PROGRAM 718 **** 05830718
C 05840718
C 05850718
IVTNUM = 29 05860718
LVCORR = .TRUE. 05870718
LVCOMP = .NOT.(LPN002.EQV.LPN004.AND.LPN001.OR.LPN003) 05880718
IVCOMP = 0 05890718
IF (LVCOMP) IVCOMP = 1 05900718
IF (IVCOMP - 1) 20290, 10290, 20290 05910718
10290 IVPASS = IVPASS + 1 05920718
WRITE (I02,80002) IVTNUM 05930718
GO TO 0291 05940718
20290 IVFAIL = IVFAIL + 1 05950718
WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05960718
0291 CONTINUE 05970718
C 05980718
CBB** ********************** BBCSUM0 **********************************05990718
C**** WRITE OUT TEST SUMMARY 06000718
C**** 06010718
IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP 06020718
WRITE (I02, 90004) 06030718
WRITE (I02, 90014) 06040718
WRITE (I02, 90004) 06050718
WRITE (I02, 90020) IVPASS 06060718
WRITE (I02, 90022) IVFAIL 06070718
WRITE (I02, 90024) IVDELE 06080718
WRITE (I02, 90026) IVINSP 06090718
WRITE (I02, 90028) IVTOTN, IVTOTL 06100718
CBE** ********************** BBCSUM0 **********************************06110718
CBB** ********************** BBCFOOT0 **********************************06120718
C**** WRITE OUT REPORT FOOTINGS 06130718
C**** 06140718
WRITE (I02,90016) ZPROG, ZPROG 06150718
WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED 06160718
WRITE (I02,90019) 06170718
CBE** ********************** BBCFOOT0 **********************************06180718
90001 FORMAT (" ",56X,"FM718") 06190718
90000 FORMAT (" ",50X,"END OF PROGRAM FM718" ) 06200718
CBB** ********************** BBCFMT0A **********************************06210718
C**** FORMATS FOR TEST DETAIL LINES 06220718
C**** 06230718
80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31) 06240718
80002 FORMAT (" ",2X,I3,4X," PASS ",32X,A31) 06250718
80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31) 06260718
80008 FORMAT (" ",2X,I3,4X," FAIL ",32X,A31) 06270718
80010 FORMAT (" ",2X,I3,4X," FAIL ",/," ",15X,"COMPUTED= " , 06280718
1I6,/," ",15X,"CORRECT= " ,I6) 06290718
80012 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 06300718
1E12.5,/," ",16X,"CORRECT= " ,E12.5) 06310718
80018 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 06320718
1A21,/," ",16X,"CORRECT= " ,A21) 06330718
80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31) 06340718
80022 FORMAT (" ",16X,"CORRECT= " ,A21,1X,A31) 06350718
80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31) 06360718
80026 FORMAT (" ",16X,"CORRECT= " ,I6,16X,A31) 06370718
80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31) 06380718
80030 FORMAT (" ",16X,"CORRECT= " ,E12.5,10X,A31) 06390718
80050 FORMAT (" ",48X,A31) 06400718
CBE** ********************** BBCFMT0A **********************************06410718
CBB** ********************** BBCFMAT1 **********************************06420718
C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE 06430718
C**** 06440718
80031 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 06450718
1D17.10,/," ",16X,"CORRECT= " ,D17.10) 06460718
80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31) 06470718
80035 FORMAT (" ",16X,"CORRECT= " ,D17.10,10X,A31) 06480718
80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31) 06490718
80039 FORMAT (" ",16X,"CORRECT= " ,"(",E12.5,", ",E12.5,")",6X,A31) 06500718
80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31) 06510718
80043 FORMAT (" ",16X,"CORRECT= " ,"(",F12.5,", ",F12.5,")",6X,A31) 06520718
80045 FORMAT (" ",2X,I3,4X," FAIL ",/," ",16X,"COMPUTED= " , 06530718
1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT= " , 06540718
2"(",F12.5,", ",F12.5,")") 06550718
CBE** ********************** BBCFMAT1 **********************************06560718
CBB** ********************** BBCFMT0B **********************************06570718
C**** FORMAT STATEMENTS FOR PAGE HEADERS 06580718
C**** 06590718
90002 FORMAT ("1") 06600718
90004 FORMAT (" ") 06610718
90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )06620718
90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 06630718
90008 FORMAT (" ",21X,A13,A17) 06640718
90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/) 06650718
90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17," - COMPILER= " ,A20) 06660718
90013 FORMAT (" "," TEST ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" , 06670718
1 7X,"REMARKS",24X) 06680718
90014 FORMAT (" ","----------------------------------------------" , 06690718
1 "---------------------------------" ) 06700718
90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/) 06710718
C**** 06720718
C**** FORMAT STATEMENTS FOR REPORT FOOTINGS 06730718
C**** 06740718
90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/) 06750718
90018 FORMAT (" ",A13,13X,A20," * ",A10,"/", 06760718
1 A13) 06770718
90019 FORMAT (" ","FOR OFFICIAL USE ONLY " ,35X,"COPYRIGHT 1982" ) 06780718
C**** 06790718
C**** FORMAT STATEMENTS FOR RUN SUMMARY 06800718
C**** 06810718
90020 FORMAT (" ",21X,I5," TESTS PASSED" ) 06820718
90022 FORMAT (" ",21X,I5," TESTS FAILED" ) 06830718
90024 FORMAT (" ",21X,I5," TESTS DELETED" ) 06840718
90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" ) 06850718
90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" ) 06860718
CBE** ********************** BBCFMT0B **********************************06870718
END 06880718