blob: 5abd0a649eae07020be104ea5fddaab67d4940a3 [file] [log] [blame]
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 = 786 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 = 785 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 = ' DIRFILE910' 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