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