FM718.f Source File


Contents

Source Code


Source Code

      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