FM910.f Source File

*********** 00010911 FM911 00020911 * 00030911 * SN911 EAQ - (806) 00040911 * THIS SUBROUTINE IS CALLED BY FM910 00050911 ********** 00060911



Contents

Source Code


Source Code

      PROGRAM FM910

C***********************************************************************00010910
C*****   FM910                                                          00020910
C*****                       DIRAF2 - (411)                             00030910
C*****   THIS PROGRAM CALLS SUBROUTINE SN911 IN FILE FM911              00040910
C***********************************************************************00050910
C*****  TESTING OF DIRECT ACCESS FILES                         ANS REF  00060910
C*****          UNFORMATTED WITH BOTH SEQUENTIAL AND DIRECT     12.5    00070910
C*****          ACCESS TO THE SAME FILE                                 00080910
C*****          NAMED FILE AND SCRATCH FILE                             00090910
C*****                                                                  00100910
C*****          USES SUBROUTINE SN911                                   00110910
C*****                                                                  00120910
CBB** ********************** BBCCOMNT **********************************00130910
C****                                                                   00140910
C****            1978 FORTRAN COMPILER VALIDATION SYSTEM                00150910
C****                          VERSION 2.1                              00160910
C****                                                                   00170910
C****                                                                   00180910
C****           SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO         00190910
C****          NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY           00200910
C****               SOFTWARE STANDARDS VALIDATION GROUP                 00210910
C****                      BUILDING 225  RM A266                        00220910
C****                     GAITHERSBURG, MD  20899                       00230910
C****                                                                   00240910
C****                                                                   00250910
C****                                                                   00260910
CBE** ********************** BBCCOMNT **********************************00270910
C*****                                                                  00280910
C*****  S P E C I F I C A T I O N S  SEGMENT 910                        00290910
        DIMENSION L1I(10), N1I(15), F1S(10), H1S(15)                    00300910
        CHARACTER*4 A4VK, B4VK, D4VK, A41K(10), C41K(15)                00310910
        LOGICAL AVB, BVB, C1B(10), E1B(15)                              00320910
        DOUBLE PRECISION AVD, BVD, D1D(10), B1D(15)                     00330910
        COMPLEX AVC, BVC, C1C(10), D1C(15)                              00340910
C*****                                                                  00350910
C***** BELOW CHARACTER STATEMENT ESTABLISHES THE FILE NAME VARIABLES.   00360910
CX20   REPLACED BY FEXEC X-20  CONTROL CARD.  X-20  IS FOR REPLACING    00370910
        CHARACTER*15 CDIR                                               00380910
C      THE CHARACTER STATEMENT FOR FILE NAMES ASSOCIATED WITH X-100     00390910
C      (PROGRAM VARIABLE CDIR) IF NOT VALID FOR THE PROCESSOR.          00400910
CBB** ********************** BBCINITA **********************************00410910
C**** SPECIFICATION STATEMENTS                                          00420910
C****                                                                   00430910
      CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20,      00440910
     1          ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13      00450910
CBE** ********************** BBCINITA **********************************00460910
CBB** ********************** BBCINITB **********************************00470910
C**** INITIALIZE SECTION                                                00480910
      DATA  ZVERS,                  ZVERSD,             ZDATE           00490910
     1      /'VERSION 2.1  ',  '93/10/21*21.02.00',  '*NO DATE*TIME'/   00500910
      DATA       ZCOMPL,             ZNAME,             ZTAPE           00510910
     1      /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/      00520910
      DATA       ZPROJ,           ZTAPED,         ZPROG                 00530910
     1      /'*NO PROJECT*',   '*NO TAPE DATE',  'XXXXX'/               00540910
      DATA   REMRKS /'                               '/                 00550910
C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED   00560910
C**** FOR IDENTIFYING THE TEST ENVIRONMENT                              00570910
C****                                                                   00580910
CZ01  ZVERS  = 'VERSION OF THE COMPILER VALIDATION SYSTEM'              00590910
CZ02  ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM'   00600910
CZ03  ZPROG  = 'PROGRAM NAME'                                           00610910
CZ04  ZDATE  = 'DATE OF TEST'                                           00620910
CZ05  ZCOMPL = 'COMPILER IDENTIFICATION'                                00630910
CZ06  ZPROJ  = 'PROJECT NUMBER/IDENTIFICATION'                          00640910
CZ07  ZNAME  = 'NAME OF USER'                                           00650910
CZ08  ZTAPE  = 'TAPE OWNER/ID'                                          00660910
CZ09  ZTAPED = 'DATE TAPE COPIED'                                       00670910
C                                                                       00680910
      IVPASS = 0                                                        00690910
      IVFAIL = 0                                                        00700910
      IVDELE = 0                                                        00710910
      IVINSP = 0                                                        00720910
      IVTOTL = 0                                                        00730910
      IVTOTN = 0                                                        00740910
      ICZERO = 0                                                        00750910
C                                                                       00760910
C     I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER.         00770910
      I01 = 05                                                          00780910
C     I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER.             00790910
      I02 = 06                                                          00800910
C                                                                       00810910
CX010   REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). 00820910
C     THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5      00830910
CX011   REPLACED BY FEXEC X-011 CONTROL CARD.  CX011 IS FOR SYSTEMS     00840910
C     REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010.  00850910
C                                                                       00860910
CX020   REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER).     00870910
C     THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6       00880910
CX021   REPLACED BY FEXEC X-021 CONTROL CARD.  CX021 IS FOR SYSTEMS     00890910
C     REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020.  00900910
C                                                                       00910910
CBE** ********************** BBCINITB **********************************00920910
C*****                                                                  00930910
C*****    THE FOLLOWING STATEMENT MUST BE CHANGED IF THE                00940910
C*****    UNITS GIVEN ARE NOT CAPABLE OF BEING OPENED AS SPECIFIED.     00950910
C*****                                                                  00960910
C     I10 CONTAINS THE UNIT NUMBER FOR A NAMED DIRECT ACCESS FILE.      00970910
      I10 = 24                                                          00980910
CX100   REPLACED BY FEXEC X-100 CONTROL CARD (DIR. FILE UNIT NUMBER).   00990910
C     SPECIFYING I10 = NN OVERRIDES THE DEFAULT I10 = 24.               01000910
C*****                                                                  01010910
C     I11 CONTAINS THE UNIT NUMBER FOR A SCRATCH DIRECT ACCESS FILE.    01020910
      I11 = 25                                                          01030910
CX110   REPLACED BY FEXEC X-110 CONTROL CARD (DIR. FILE UNIT NUMBER).   01040910
C     SPECIFYING I11 = NN OVERRIDES THE DEFAULT I11 = 25.               01050910
C*****                                                                  01060910
C*****  THE FOLLOWING STATEMENT MUST BE CHANGED IF THE NAME             01070910
C*****  GIVEN IS NOT A VALID FILE SPECIFIER FOR A DIRECT,               01080910
C*****  UNFORMATTED FILE.                                               01090910
C*****                                                                  01100910
C     CDIR CONTAINS THE FILE NAME FOR UNIT I10.                         01110910
      CDIR = '        DIRFILE'                                          01120910
C                                                                       01130910
CX201   REPLACED BY FEXEC X-201 CONTROL CARD.  CX201 IS FOR SYSTEMS     01140910
C     REQUIRING A DIFFERENT FILE SPECIFIER FOR FILES ASSOCIATED WITH    01150910
C     X-100 THAN THE DEFAULT CDIR = '        DIRFILE'.                  01160910
C*****                          FILE NUMBER AND NAME ASSIGNMENT         01170910
      NUVI = I02                                                        01180910
      IMVI = I10                                                        01190910
      KMVI = I11                                                        01200910
      IVTOTL = 6                                                        01210910
      ZPROG = 'FM910'                                                   01220910
CBB** ********************** BBCHED0A **********************************01230910
C****                                                                   01240910
C**** WRITE REPORT TITLE                                                01250910
C****                                                                   01260910
      WRITE (I02, 90002)                                                01270910
      WRITE (I02, 90006)                                                01280910
      WRITE (I02, 90007)                                                01290910
      WRITE (I02, 90008)  ZVERS, ZVERSD                                 01300910
      WRITE (I02, 90009)  ZPROG, ZPROG                                  01310910
      WRITE (I02, 90010)  ZDATE, ZCOMPL                                 01320910
CBE** ********************** BBCHED0A **********************************01330910
C*****                                                                  01340910
C*****    HEADER FOR SEGMENT 910                                        01350910
        WRITE(NUVI,41100)                                               01360910
41100   FORMAT(" ",/" DIRAF2 - (411) DIRECT ACCESS UNFORMATTED FILE" // 01370910
     1          " WITH OPTION TO OPEN AS A SEQUENTIAL FILE" //          01380910
     2          " ANS REF. - 12.5" )                                    01390910
CBB** ********************** BBCHED0B **********************************01400910
C**** WRITE DETAIL REPORT HEADERS                                       01410910
C****                                                                   01420910
      WRITE (I02,90004)                                                 01430910
      WRITE (I02,90004)                                                 01440910
      WRITE (I02,90013)                                                 01450910
      WRITE (I02,90014)                                                 01460910
      WRITE (I02,90015) IVTOTL                                          01470910
CBE** ********************** BBCHED0B **********************************01480910
C*****                                  INITIALIZE DATA                 01490910
        CALL SN911(L1I,N1I,F1S,H1S,C1B,E1B,D1D,B1D,C1C,D1C,A41K,C41K)   01500910
        MMVI = 0                                                        01510910
C*****                                                                  01520910
        OPEN(FILE=CDIR, UNIT=IMVI, ACCESS='DIRECT',RECL=132,            01530910
     1           STATUS='NEW')                                          01540910
C*****                          WRITE DIRECT FILE IN SEQUENTIAL ORDER   01550910
        DO 41101 IVI = 1,10                                             01560910
        AVS = F1S (IVI)                                                 01570910
        A4VK = A41K (IVI)                                               01580910
        AVB = C1B (IVI)                                                 01590910
        AVD = D1D (IVI)                                                 01600910
        AVC = C1C (IVI)                                                 01610910
        WRITE(UNIT=IMVI, REC= IVI) IVI, AVS, A4VK, AVB, AVD, AVC        01620910
41101   CONTINUE                                                        01630910
C*****                        CHECK TO SEE IF IT CAN BE OPEN SEQUENTIAL 01640910
        INQUIRE(UNIT=IMVI,SEQUENTIAL=D4VK)                              01650910
        CLOSE(UNIT=IMVI)                                                01660910
        IF(D4VK .EQ. 'YES ') GOTO 41103                                 01670910
        WRITE(NUVI,41102)                                               01680910
41102   FORMAT(" ",48X,"TESTS 2 THRU 6 ARE EXPECTED TO " /              01690910
     1         " ",48X,"EXECUTE                        " /              01700910
     2         " ",48X,"TEST 1 IS OPTIONAL AND IS NOT  " /              01710910
     3         " ",48X,"EXECUTED IF DIRECT ACCESS      " /              01720910
     4         " ",48X,"FILE CANNOT BE REOPENED AS     " /              01730910
     5         " ",48X,"A SEQUENTIAL FILE              " )              01740910
        GOTO 41119                                                      01750910
CT001*  TEST 1                          READ IT SEQUENTIALY             01760910
41103      IVTNUM = 1                                                   01770910
           IVCOMP = 0                                                   01780910
        OPEN(FILE=CDIR, UNIT=IMVI, ACCESS='SEQUENTIAL', STATUS='OLD',   01790910
     1      FORM='UNFORMATTED')                                         01800910
        REWIND(UNIT=IMVI)                                               01810910
        DO 41104 IVI = 1, 10                                            01820910
        READ(UNIT=IMVI) KVI, BVS, B4VK, BVB, BVD, BVC                   01830910
        IF (IVI .NE. KVI) GOTO 20010                                    01840910
        IF (BVS .LT. F1S(IVI) .OR. BVS .GT. F1S(IVI)) GOTO 20010        01850910
        IF (B4VK .NE. A41K(IVI)) GOTO 20010                             01860910
        IF ((BVB .AND. .NOT. C1B(IVI)) .OR.                             01870910
     1      (.NOT. BVB .AND. C1B(IVI))) GOTO 20010                      01880910
        IF (BVD .LT. D1D(IVI) .OR. BVD .GT. D1D(IVI)) GOTO 20010        01890910
        IF ((REAL(BVC) .LT. REAL(C1C(IVI))) .OR. (REAL(BVC) .GT.        01900910
     1    REAL(C1C(IVI))) .OR. (AIMAG(BVC) .LT. AIMAG(C1C(IVI)))        01910910
     2    .OR. (AIMAG(BVC) .GT. AIMAG(C1C(IVI)))) GOTO 20010            01920910
           GO TO 41104                                                  01930910
20010      IVCOMP = IVCOMP + 1                                          01940910
           IF (IVCOMP .LE. 1) IVFAIL = IVFAIL + 1                       01950910
           WRITE (NUVI, 70010) IVTNUM, IVI                              01960910
           WRITE (NUVI, 70020) KVI, BVS, B4VK, BVB, BVD, BVC, IVI,      01970910
     1                         F1S(IVI), A41K(IVI), C1B(IVI), D1D(IVI), 01980910
     1                         C1C(IVI)                                 01990910
70010      FORMAT (" ",2X,I3,4X," FAIL ON REC " ,I2)                    02000910
70020      FORMAT (" ",16X,"COMPUTED: " ,I2,1X,F5.2,1X,A4,1X,L1,1X,     02010910
     1                                  D10.3,1X,"(",F6.3,", ",F6.3,")"/02020910
     1             " ",16X,"CORRECT:  " ,I2,1X,F5.2,1X,A4,1X,L1,1X,     02030910
     1                                  D10.3,1X,"(",F6.3,", ",F6.3,")")02040910
41104   CONTINUE                                                        02050910
           IF (IVCOMP - 0) 0011, 10010, 0011                            02060910
10010      IVPASS = IVPASS + 1                                          02070910
           WRITE (NUVI, 80002) IVTNUM                                   02080910
 0011      CONTINUE                                                     02090910
C*****                                                                  02100910
41118   CLOSE(UNIT=IMVI)                                                02110910
CT002*  TEST 2                             REOPEN AS DIRECT FILE,       02120910
C*****                                  AND READ IN SEQUENTIAL ORDER    02130910
41119      IVTNUM = 2                                                   02140910
           IVCOMP = 0                                                   02150910
C*****                                                                  02160910
        OPEN(FILE=CDIR, UNIT=IMVI, ACCESS='DIRECT', STATUS='OLD',       02170910
     1       RECL=132)                                                  02180910
        DO 41120 IVI = 1, 10                                            02190910
        READ(UNIT=IMVI, REC = IVI) KVI, BVS, B4VK, BVB, BVD, BVC        02200910
        IF (IVI .NE. KVI) GOTO 20020                                    02210910
        IF (BVS .LT. F1S(IVI) .OR. BVS .GT. F1S(IVI)) GOTO 20020        02220910
        IF (B4VK .NE. A41K(IVI)) GOTO 20020                             02230910
        IF ((BVB .AND. .NOT. C1B(IVI)) .OR.                             02240910
     1      (.NOT. BVB .AND. C1B(IVI))) GOTO 20020                      02250910
        IF (BVD .LT. D1D(IVI) .OR. BVD .GT. D1D(IVI)) GOTO 20020        02260910
        IF ((REAL(BVC) .LT. REAL(C1C(IVI))) .OR. (REAL(BVC) .GT.        02270910
     1    REAL(C1C(IVI))) .OR. (AIMAG(BVC) .LT. AIMAG(C1C(IVI)))        02280910
     2    .OR. (AIMAG(BVC) .GT. AIMAG(C1C(IVI)))) GOTO 20020            02290910
           GO TO 41120                                                  02300910
20020      IVCOMP = IVCOMP + 1                                          02310910
           IF (IVCOMP .LE. 1) IVFAIL = IVFAIL + 1                       02320910
           WRITE (NUVI, 70010) IVTNUM, IVI                              02330910
           WRITE (NUVI, 70020) KVI, BVS, B4VK, BVB, BVD, BVC, IVI,      02340910
     1                         F1S(IVI), A41K(IVI), C1B(IVI), D1D(IVI), 02350910
     1                         C1C(IVI)                                 02360910
41120   CONTINUE                                                        02370910
           IF (IVCOMP - 0) 0021, 10020, 0021                            02380910
10020      IVPASS = IVPASS + 1                                          02390910
           WRITE (NUVI, 80002) IVTNUM                                   02400910
 0021      CONTINUE                                                     02410910
C*****                                                                  02420910
41121   CLOSE(UNIT=IMVI)                                                02430910
CT003*  TEST 3                                  READ IT AS DIRECT       02440910
C*****                                      FILE IN NONSEQUENTIAL ORDER 02450910
           IVTNUM = 3                                                   02460910
           IVCOMP = 0                                                   02470910
C*****                                                                  02480910
        OPEN(FILE=CDIR, UNIT=IMVI, ACCESS='DIRECT', STATUS='OLD',       02490910
     1       RECL=132)                                                  02500910
        DO 41122 IVI = 1, 10                                            02510910
        JVI = L1I(IVI)                                                  02520910
        READ(UNIT=IMVI, REC = JVI) KVI, BVS, B4VK, BVB, BVD, BVC        02530910
        IF (KVI .NE. JVI) GOTO 20030                                    02540910
        IF (BVS .LT. F1S(JVI) .OR. BVS .GT. F1S(JVI)) GOTO 20030        02550910
        IF (B4VK .NE. A41K(JVI)) GOTO 20030                             02560910
        IF ((BVB .AND. .NOT. C1B(JVI)) .OR.                             02570910
     1      (.NOT. BVB .AND. C1B(JVI))) GOTO 20030                      02580910
        IF (BVD .LT. D1D(JVI) .OR. BVD .GT. D1D(JVI)) GOTO 20030        02590910
        IF ((REAL(BVC) .LT. REAL(C1C(JVI))) .OR. (REAL(BVC) .GT.        02600910
     1    REAL(C1C(JVI))) .OR. (AIMAG(BVC) .LT. AIMAG(C1C(JVI)))        02610910
     2    .OR. (AIMAG(BVC) .GT. AIMAG(C1C(JVI)))) GOTO 20030            02620910
           GO TO 41122                                                  02630910
20030      IVCOMP = IVCOMP + 1                                          02640910
           IF (IVCOMP .LE. 1) IVFAIL = IVFAIL + 1                       02650910
           WRITE (NUVI, 70010) IVTNUM, JVI                              02660910
           WRITE (NUVI, 70020) KVI, BVS, B4VK, BVB, BVD, BVC, JVI,      02670910
     1                         F1S(JVI), A41K(JVI), C1B(JVI), D1D(JVI), 02680910
     1                         C1C(JVI)                                 02690910
41122   CONTINUE                                                        02700910
           IF (IVCOMP - 0) 0031, 10030, 0031                            02710910
10030      IVPASS = IVPASS + 1                                          02720910
           WRITE (NUVI, 80002) IVTNUM                                   02730910
 0031      CONTINUE                                                     02740910
C*****                                                                  02750910
41123   OPEN(UNIT=KMVI, ACCESS='DIRECT', RECL=80, STATUS='SCRATCH')     02760910
C*****                                                                  02770910
CT004*  TEST 4                  CHECK RECL AND NEXTREC ON SCRATCH FILE  02780910
           IVTNUM = 4                                                   02790910
        INQUIRE(UNIT=KMVI,RECL=IVI,NEXTREC=KVI)                         02800910
        IF (IVI .NE. 80) GOTO 20040                                     02810910
        IF (KVI .NE. 1) GOTO 20040                                      02820910
10040      IVPASS = IVPASS + 1                                          02830910
           WRITE (NUVI, 80002) IVTNUM                                   02840910
           GO TO 0041                                                   02850910
20040      IVFAIL = IVFAIL + 1                                          02860910
           WRITE (NUVI, 70030) IVTNUM                                   02870910
           WRITE (NUVI, 70040) IVI, KVI                                 02880910
70030      FORMAT (" ",2X,I3,4X," FAIL ON RECL AND/OR NEXTREC" )        02890910
70040      FORMAT (" ",16X,"COMPUTED:  RECL=" ,I4,", NEXTREC=" ,I4/     02900910
     1             " ",16X,"CORRECT:   RECL=  80, NEXTREC=   1" )       02910910
 0041      CONTINUE                                                     02920910
C*****                                                                  02930910
C*****                                 WRITE DIRECT ACCESS              02940910
C*****                          SCRATCH FILE IN NONSEQUENTIAL ORDER     02950910
        DO 41126 IVI = 1,15                                             02960910
        JVI = N1I (IVI)                                                 02970910
        AVS = H1S (JVI)                                                 02980910
        A4VK = C41K (JVI)                                               02990910
        AVB = E1B (JVI)                                                 03000910
        AVC = D1C(JVI)                                                  03010910
        AVD = B1D(JVI)                                                  03020910
        WRITE(UNIT=KMVI, REC= JVI) AVB, AVC, A4VK, JVI, AVD, AVS        03030910
41126   CONTINUE                                                        03040910
CT005*  TEST 5                  CHECK DIRECT ACCESS SCRATCH FILE        03050910
C*****                        BY READING IT IN NONSEQUENTIAL ORDER      03060910
           IVTNUM = 5                                                   03070910
           IVCOMP = 0                                                   03080910
        MMVI = -1                                                       03090910
        DO 41127 IVI = 15,1,-1                                          03100910
        JVI = N1I (IVI)                                                 03110910
        READ(UNIT=KMVI, REC = JVI) BVB, BVC, B4VK, KVI, BVD, BVS        03120910
        IF (KVI .NE. JVI) GOTO 20050                                    03130910
        IF (BVS .LT. H1S(JVI) .OR. BVS .GT. H1S(JVI)) GOTO 20050        03140910
        IF (B4VK .NE. C41K(JVI)) GOTO 20050                             03150910
        IF ((BVB .AND. .NOT. E1B(JVI)) .OR.                             03160910
     1      (.NOT. BVB .AND. E1B(JVI))) GOTO 20050                      03170910
        IF (BVD .LT. B1D(JVI) .OR. BVD .GT. B1D(JVI)) GOTO 20050        03180910
        IF ((REAL(BVC) .LT. REAL(D1C(JVI))) .OR. (REAL(BVC) .GT.        03190910
     1    REAL(D1C(JVI))) .OR. (AIMAG(BVC) .LT. AIMAG(D1C(JVI)))        03200910
     2    .OR. (AIMAG(BVC) .GT. AIMAG(D1C(JVI)))) GOTO 20050            03210910
           GO TO 41127                                                  03220910
20050      IVCOMP = IVCOMP + 1                                          03230910
           IF (IVCOMP .LE. 1) IVFAIL = IVFAIL + 1                       03240910
           WRITE (NUVI, 70010) IVTNUM, JVI                              03250910
           WRITE (NUVI, 70020) KVI, BVS, B4VK, BVB, BVD, BVC, JVI,      03260910
     1                         H1S(JVI), C41K(JVI), E1B(JVI), B1D(JVI), 03270910
     1                         D1C(JVI)                                 03280910
41127   CONTINUE                                                        03290910
           IF (IVCOMP - 0) 0051, 10050, 0051                            03300910
10050      IVPASS = IVPASS + 1                                          03310910
           WRITE (NUVI, 80002) IVTNUM                                   03320910
 0051      CONTINUE                                                     03330910
C*****                                                                  03340910
CT006*  TEST 6                     CHECK RECL AND NEXTREC AFTER READING 03350910
           IVTNUM = 6                                                   03360910
        INQUIRE(UNIT=KMVI,RECL=IVI,NEXTREC=KVI)                         03370910
        IF (IVI .NE. 80) GOTO 20060                                     03380910
        IF (KVI .NE. 6) GOTO 20060                                      03390910
10060      IVPASS = IVPASS + 1                                          03400910
           WRITE (NUVI, 80002) IVTNUM                                   03410910
           GO TO 0061                                                   03420910
20060      IVFAIL = IVFAIL + 1                                          03430910
           WRITE (NUVI, 70050) IVTNUM                                   03440910
           WRITE (NUVI, 70060) IVI, KVI                                 03450910
70050      FORMAT (" ",2X,I3,4X," FAIL ON RECL AND/OR NEXTREC" )        03460910
70060      FORMAT (" ",16X,"COMPUTED:  RECL=" ,I4,", NEXTREC=" ,I4/     03470910
     1             " ",16X,"CORRECT:   RECL=  80, NEXTREC=   6" )       03480910
 0061      CONTINUE                                                     03490910
C*****                                                                  03500910
           CLOSE (UNIT=IMVI,STATUS='DELETE')                            03510910
C*****                                                                  03520910
C****                                                                   04070910
CBB** ********************** BBCSUM0  **********************************04080910
C**** WRITE OUT TEST SUMMARY                                            04090910
C****                                                                   04100910
      IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP                        04110910
      WRITE (I02, 90004)                                                04120910
      WRITE (I02, 90014)                                                04130910
      WRITE (I02, 90004)                                                04140910
      WRITE (I02, 90020) IVPASS                                         04150910
      WRITE (I02, 90022) IVFAIL                                         04160910
      WRITE (I02, 90024) IVDELE                                         04170910
      WRITE (I02, 90026) IVINSP                                         04180910
      WRITE (I02, 90028) IVTOTN, IVTOTL                                 04190910
CBE** ********************** BBCSUM0  **********************************04200910
CBB** ********************** BBCFOOT0 **********************************04210910
C**** WRITE OUT REPORT FOOTINGS                                         04220910
C****                                                                   04230910
      WRITE (I02,90016) ZPROG, ZPROG                                    04240910
      WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED                     04250910
      WRITE (I02,90019)                                                 04260910
CBE** ********************** BBCFOOT0 **********************************04270910
CBB** ********************** BBCFMT0A **********************************04280910
C**** FORMATS FOR TEST DETAIL LINES                                     04290910
C****                                                                   04300910
80000 FORMAT (" ",2X,I3,4X,"DELETED",32X,A31)                           04310910
80002 FORMAT (" ",2X,I3,4X," PASS  ",32X,A31)                           04320910
80004 FORMAT (" ",2X,I3,4X,"INSPECT",32X,A31)                           04330910
80008 FORMAT (" ",2X,I3,4X," FAIL  ",32X,A31)                           04340910
80010 FORMAT (" ",2X,I3,4X," FAIL  ",/," ",15X,"COMPUTED= " ,           04350910
     1I6,/," ",15X,"CORRECT=  " ,I6)                                    04360910
80012 FORMAT (" ",2X,I3,4X," FAIL  ",/," ",16X,"COMPUTED= " ,           04370910
     1E12.5,/," ",16X,"CORRECT=  " ,E12.5)                              04380910
80018 FORMAT (" ",2X,I3,4X," FAIL  ",/," ",16X,"COMPUTED= " ,           04390910
     1A21,/," ",16X,"CORRECT=  " ,A21)                                  04400910
80020 FORMAT (" ",16X,"COMPUTED= " ,A21,1X,A31)                         04410910
80022 FORMAT (" ",16X,"CORRECT=  " ,A21,1X,A31)                         04420910
80024 FORMAT (" ",16X,"COMPUTED= " ,I6,16X,A31)                         04430910
80026 FORMAT (" ",16X,"CORRECT=  " ,I6,16X,A31)                         04440910
80028 FORMAT (" ",16X,"COMPUTED= " ,E12.5,10X,A31)                      04450910
80030 FORMAT (" ",16X,"CORRECT=  " ,E12.5,10X,A31)                      04460910
80050 FORMAT (" ",48X,A31)                                              04470910
CBE** ********************** BBCFMT0A **********************************04480910
CBB** ********************** BBCFMAT1 **********************************04490910
C**** FORMATS FOR TEST DETAIL LINES - FULL LANGUAGE                     04500910
C****                                                                   04510910
80031 FORMAT (" ",2X,I3,4X," FAIL  ",/," ",16X,"COMPUTED= " ,           04520910
     1D17.10,/," ",16X,"CORRECT=  " ,D17.10)                            04530910
80033 FORMAT (" ",16X,"COMPUTED= " ,D17.10,10X,A31)                     04540910
80035 FORMAT (" ",16X,"CORRECT=  " ,D17.10,10X,A31)                     04550910
80037 FORMAT (" ",16X,"COMPUTED= " ,"(",E12.5,", ",E12.5,")",6X,A31)    04560910
80039 FORMAT (" ",16X,"CORRECT=  " ,"(",E12.5,", ",E12.5,")",6X,A31)    04570910
80041 FORMAT (" ",16X,"COMPUTED= " ,"(",F12.5,", ",F12.5,")",6X,A31)    04580910
80043 FORMAT (" ",16X,"CORRECT=  " ,"(",F12.5,", ",F12.5,")",6X,A31)    04590910
80045 FORMAT (" ",2X,I3,4X," FAIL  ",/," ",16X,"COMPUTED= " ,           04600910
     1"(",F12.5,", ",F12.5,")"/," ",16X,"CORRECT=  " ,                  04610910
     2"(",F12.5,", ",F12.5,")")                                         04620910
CBE** ********************** BBCFMAT1 **********************************04630910
CBB** ********************** BBCFMT0B **********************************04640910
C**** FORMAT STATEMENTS FOR PAGE HEADERS                                04650910
C****                                                                   04660910
90002 FORMAT ("1")                                                      04670910
90004 FORMAT (" ")                                                      04680910
90006 FORMAT (" ",20X,"NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY" )04690910
90007 FORMAT (" ",19X,"FORTRAN COMPILER VALIDATION SYSTEM" )            04700910
90008 FORMAT (" ",21X,A13,A17)                                          04710910
90009 FORMAT (" ",/," *",A5,"BEGIN*",12X,"TEST RESULTS - " ,A5,/)       04720910
90010 FORMAT (" ",8X,"TEST DATE*TIME= " ,A17,"  -  COMPILER= " ,A20)    04730910
90013 FORMAT (" "," TEST   ","PASS/FAIL " ,6X,"DISPLAYED RESULTS" ,     04740910
     1       7X,"REMARKS",24X)                                          04750910
90014 FORMAT (" ","----------------------------------------------" ,    04760910
     1        "---------------------------------" )                     04770910
90015 FORMAT (" ",48X,"THIS PROGRAM HAS " ,I3," TESTS",/)               04780910
C****                                                                   04790910
C**** FORMAT STATEMENTS FOR REPORT FOOTINGS                             04800910
C****                                                                   04810910
90016 FORMAT (" ",/," *",A5,"END*",14X,"END OF TEST - " ,A5,/)          04820910
90018 FORMAT (" ",A13,13X,A20,"   *   ",A10,"/",                        04830910
     1        A13)                                                      04840910
90019 FORMAT (" ","FOR OFFICIAL USE ONLY     " ,35X,"COPYRIGHT  1982" ) 04850910
C****                                                                   04860910
C**** FORMAT STATEMENTS FOR RUN SUMMARY                                 04870910
C****                                                                   04880910
90020 FORMAT (" ",21X,I5," TESTS PASSED" )                              04890910
90022 FORMAT (" ",21X,I5," TESTS FAILED" )                              04900910
90024 FORMAT (" ",21X,I5," TESTS DELETED" )                             04910910
90026 FORMAT (" ",21X,I5," TESTS REQUIRE INSPECTION" )                  04920910
90028 FORMAT (" ",21X,I5," OF ",I3," TESTS EXECUTED" )                  04930910
CBE** ********************** BBCFMT0B **********************************04940910
C*****                                                                  04950910
C*****    END OF TEST SEGMENT 910                                       04960910
      STOP                                                              04970910
      END                                                               04980910

C********************************************************************** 00010911
C*****   FM911                                                          00020911
C*****                                                                  00030911
C*****    SN911                 EAQ - (806)                             00040911
C*****  THIS SUBROUTINE IS CALLED BY FM910                              00050911
C********************************************************************** 00060911
        SUBROUTINE SN911(LW1I, NW1I, FW1S, HW1S, CW1B, EW1B, DW1D,      00070911
     1      BW1D,CW1C, DW1C, A4W1K, C4W1K)                              00080911
C*****                                                                  00090911
C*****  SUBROUTINE USED WITH SEGMENT DIRAF2 (411) TO SUPPLY VALUES      00100911
C*****  TO ARRAYS THRU THE DUMMY ARGUMENT LIST                          00110911
C*****                                                                  00120911
        DIMENSION LW1I(10),LT1I(10),NT1I(15),NW1I(15)                   00130911
        REAL FT1S(10),FW1S(10),HT1S(15),HW1S(15)                        00140911
        LOGICAL CT1B(10),CW1B(10),ET1B(15),EW1B(15)                     00150911
        DOUBLE PRECISION DT1D(10),DW1D(10),BT1D(15),BW1D(15)            00160911
        COMPLEX CW1C(10),CT1C(10),DW1C(15),DT1C(15)                     00170911
        CHARACTER*4 A4T1K(10),A4W1K(10),C4T1K(15),C4W1K(15)             00180911
C*****                                                                  00190911
        DATA LT1I /2, 3, 1, 3, 10, 8, 9, 6, 7, 5/                       00200911
        DATA NT1I /5, 7, 3, 9, 4, 11, 8, 13, 14, 12, 6, 10, 2, 15, 1/   00210911
        DATA FT1S /1.0, 2.0, 3.0, 4.0, 5.0, 6.5, 7.1, 8.2, 9.9, 10.0/   00220911
        DATA HT1S /2.34, 2.3,1.9, 2.3, 9.9, 1.1, 8.8, 7.6, 2.3, 10.1,   00230911
     1           3.4, 5.60, 34.9, 3.48, 23.8/                           00240911
        DATA A4T1K / 'AAAA',  'BBBB',  'CCCC',  'DDDD',  'EDFG',  'JLKD'00250911
     1             , 'CDFE',  'LKJH',  'JHGF',  'LLLL'/                 00260911
        DATA C4T1K / 'HDFK',  'LKJH',  'ASDF',  'LKJH',  'XMNC',  'ALXM'00270911
     1             , 'IEOW',  'IERU',  'DJNC',  'DJAL',  'KDFJ',  'ABCD'00280911
     2             , 'ASDF',  'GHJK',  'QWER'/                          00290911
        DATA CT1B /.TRUE., .FALSE., .TRUE., .TRUE., .TRUE., .FALSE.,    00300911
     1            .FALSE., .TRUE., .TRUE., .FALSE./                     00310911
        DATA ET1B /.FALSE., .FALSE., .FALSE., .TRUE., .FALSE., .FALSE., 00320911
     1            .TRUE., .TRUE., .FALSE., .TRUE., .TRUE., .TRUE.,      00330911
     2            .FALSE., .TRUE., .FALSE./                             00340911
        DATA DT1D /1.23D1, 2.34D1, 3.45D3, 4.56D4, 5.602D0, 34.35D1,    00350911
     1            2.34D1, 398.0D0, 3.49D-1, 0.99D1/                     00360911
        DATA BT1D /3.45D1, 34.5D0, 34.5D4, 2.93D3, 0.09D-2, 3.4D-1,     00370911
     1            34.0D1, 85.0D1, 3.968D0, 3.48D1, 39.3D4, 0.09D3,      00380911
     2            389.098D1, 483.98D0, 3456.0D-4/                       00390911
        DATA CT1C /(1.2, 3.4), (9.8, 34.5), (3.4, 34.9), (9.0, 34.9),   00400911
     1            (2.3, 3.9), (3.98, 8.9), (3.112, 3.4), (8.0, 1.2),    00410911
     2            (2.56, 2.1), (3.4, 4.5)/                              00420911
        DATA DT1C /(2.3, 3.9), (3.98, 8.9), (3.112, 3.4), (8.0, 1.2),   00430911
     1            (2.56, 2.1), (3.4, 4.5), (3.4, 34.9), (9.0, 34.9),    00440911
     2            (1.2, 3.4), (9.8, 34.5), (3.4, 34.9), (9.0, 34.9),    00450911
     3            (3.112, 3.4), (8.0, 1.2), (3.112, 3.4)/               00460911
                                                                        00470911
C*****                                                                  00480911
        DO 1  IVI = 1, 10                                               00490911
        LW1I(IVI) = LT1I(IVI)                                           00500911
        FW1S(IVI) = FT1S(IVI)                                           00510911
        CW1B(IVI) = CT1B(IVI)                                           00520911
        DW1D(IVI) = DT1D(IVI)                                           00530911
        CW1C(IVI) = CT1C(IVI)                                           00540911
        A4W1K(IVI) = A4T1K(IVI)                                         00550911
1       CONTINUE                                                        00560911
C*****                                                                  00570911
        DO 2 IVI = 1, 15                                                00580911
        NW1I(IVI) = NT1I(IVI)                                           00590911
        HW1S(IVI) = HT1S(IVI)                                           00600911
        EW1B(IVI) = ET1B(IVI)                                           00610911
        BW1D(IVI) = BT1D(IVI)                                           00620911
        DW1C(IVI) = DT1C(IVI)                                           00630911
        C4W1K(IVI) = C4T1K(IVI)                                         00640911
2       CONTINUE                                                        00650911
C*****                                                                  00660911
        RETURN                                                          00670911
        END                                                             00680911