C*********************************************************************** C***** FORTRAN 77 C***** FM921 C***** INQF4 - (441) C***** C*********************************************************************** C***** GENERAL PURPOSE ANS REF C***** TEST INQUIRE BY FILE ON DIRECT, UNFORMATTED FILE 12.10.3 C***** C***** THE TESTS IN THE UNIT ARE ONLY PERFORMED ON A C***** FILE THAT IS CONNECTED FOR DIRECT, UNFORMATTED ACCESS C***** (ANS REF. 12.2.4.2 AND 12.9.5.1) C***** THIS TEST PERFORMS AN EXPLICIT OPEN, AND PERFORMS C***** A CLOSE WITH STATUS='DELETE' AT THE END OF THE SEGMENT. C***** THIS SEGMENT TESTS THAT AN INQUIRE IS PERFORMED CORRECTLY C***** BEFORE READING OR WRITING TO THE FILE, AFTER WRITING TO C***** THE FILE, AND AFTER READING FROM THE FILE. C***** C***** NOTE: C***** AN INQUIRE STATEMENT IS NEEDED TO TEST THE READ AND C***** WRITE OF MORE THAN A SINGLE RECORD AT A TIME, IN ORDER TO C***** DETERMINE THAT THE RECORD NUMBER IS ADVANCED THE CORRECT C***** NUMBER (ONE MORE THAN THE RECORD NUMBER LAST READ OR WRITTEN). C***** THIS TEST WILL BE PERFORMED IN THE SEGMENTS WHICH TEST C***** DIRECT ACCESS FILES - DIRAF3 (412). C*********************************************************************** CBB** ********************** BBCCOMNT ********************************** C**** C**** 1978 FORTRAN COMPILER VALIDATION SYSTEM C**** VERSION 2.0 C**** C**** C**** SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO C**** GENERAL SERVICES ADMINISTRATION C**** FEDERAL SOFTWARE TESTING CENTER C**** 5203 LEESBURG PIKE, SUITE 1100 C**** FALLS CHURCH, VA. 22041 C**** C**** (703) 756-6153 C**** CBE** ********************** BBCCOMNT ********************************** C***** LOGICAL AVB, BVB CHARACTER*10 B10VK, D10VK, E11VK*11, G10VK C***** BELOW CHARACTER STATEMENT ESTABLISHES THE FILE NAME VARIABLES. CX20 REPLACED BY FEXEC X-20 CONTROL CARD. X-20 IS FOR REPLACING CHARACTER*15 CDIR, CSEQ C THE CHARACTER STATEMENT FOR FILE NAMES ASSOCIATED WITH X-100 C (PROGRAM VARIABLE CDIR) IF NOT VALID FOR THE PROCESSOR. CBB** ********************** BBCINITA ********************************** C**** SPECIFICATION STATEMENTS C**** CHARACTER ZVERS*13, ZVERSD*17, ZDATE*17, ZPROG*5, ZCOMPL*20, 1 ZNAME*20, ZTAPE*10, ZPROJ*13, REMRKS*31, ZTAPED*13 CBE** ********************** BBCINITA ********************************** CBB** ********************** BBCINITB ********************************** C**** INITIALIZE SECTION DATA ZVERS, ZVERSD, ZDATE 1 /'VERSION 2.0 ', '82/08/02*18.33.46', '*NO DATE*TIME'/ DATA ZCOMPL, ZNAME, ZTAPE 1 /'*NONE SPECIFIED*', '*NO COMPANY NAME*', '*NO TAPE*'/ DATA ZPROJ, ZTAPED, ZPROG 1 /'*NO PROJECT*', '*NO TAPE DATE', 'XXXXX'/ DATA REMRKS /' '/ C**** THE FOLLOWING 9 COMMENT LINES (CZ01, CZ02, ...) CAN BE REPLACED C**** FOR IDENTIFYING THE TEST ENVIRONMENT C**** CZ01 ZVERS = 'VERSION OF THE COMPILER VALIDATION SYSTEM' CZ02 ZVERSD = 'CREATION DATE/TIME OF THE COMPILER VALIDATION SYSTEM' CZ03 ZPROG = 'PROGRAM NAME' ZDATE = ' DEC. 1983 ' ZCOMPL = ' ICL VME FORTRAN77 ' ZPROJ = ' LANG. CENTRE' ZNAME = 'ICL ' ZTAPE = 'M999 ' ZTAPED = '831005 ' C IVPASS = 0 IVFAIL = 0 IVDELE = 0 IVINSP = 0 IVTOTL = 0 IVTOTN = 0 ICZERO = 0 C C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. I01 = 05 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. I02 = 06 C CX010 REPLACED BY FEXEC X-010 CONTROL CARD (CARD-READER UNIT NUMBER). C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 CX011 REPLACED BY FEXEC X-011 CONTROL CARD. CX011 IS FOR SYSTEMS C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX010. C CX020 REPLACED BY FEXEC X-020 CONTROL CARD (PRINTER UNIT NUMBER). C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02= 6 CX021 REPLACED BY FEXEC X-021 CONTROL CARD. CX021 IS FOR SYSTEMS C REQUIRING ADDITIONAL STATEMENTS FOR FILES ASSOCIATED WITH CX020. C CBE** ********************** BBCINITB ********************************** C***** C***** THE FOLLOWING STATEMENT MUST BE CHANGED IF C***** THE UNIT GIVEN IS NOT CAPABLE OF BEING OPENED AS A C***** DIRECT, UNFORMATTED FILE. C***** C I10 CONTAINS THE UNIT NUMBER FOR A DIRECT, UNFORMATTED FILE. I10 = 24 CX100 REPLACED BY FEXEC X-100 CONTROL CARD (DIR. FILE UNIT NUMBER). C SPECIFYING I10 = NN OVERRIDES THE DEFAULT I10 = 24. C***** C***** THE FOLLOWING STATEMENT MUST BE CHANGED IF THE NAME C***** GIVEN IS NOT A VALID FILE SPECIFIER FOR A DIRECT, C***** UNFORMATTED FILE. C***** C CDIR CONTAINS THE FILE NAME FOR UNIT I10. CDIR = 'DIRFILE' C CX201 REPLACED BY FEXEC X-201 CONTROL CARD. CX201 IS FOR SYSTEMS C REQUIRING A DIFFERENT FILE SPECIFIER FOR FILES ASSOCIATED WITH C X-100 THAN THE DEFAULT CDIR = ' DIRFILE'. C***** C***** THE FOLLOWING STATEMENT MUST BE CHANGED IF 40 IS C***** NOT A VALID RECORD LENGTH. MVI = 40 C***** NUVI = I02 IOVI = I10 ZPROG = 'FM921' IVTOTL = 3 CBB** ********************** BBCHED0A ********************************** C**** C**** WRITE REPORT TITLE C**** WRITE (I02, 90002) WRITE (I02, 90006) WRITE (I02, 90007) WRITE (I02, 90008) ZVERS, ZVERSD WRITE (I02, 90009) ZPROG, ZPROG WRITE (I02, 90010) ZDATE, ZCOMPL CBE** ********************** BBCHED0A ********************************** C***** WRITE(NUVI,44100) 44100 FORMAT(1H , / 30H INQF4 - (441) INQUIRE BY FILE// 1 31H DIRECT ACCESS UNFORMATTED FILE// 2 19H ANS REF. - 12.10.3) CBB** ********************** BBCHED0B ********************************** C**** WRITE DETAIL REPORT HEADERS C**** WRITE (I02,90004) WRITE (I02,90004) WRITE (I02,90013) WRITE (I02,90014) WRITE (I02,90015) IVTOTL CBE** ********************** BBCHED0B ********************************** C***** C***** OPEN FILE OPEN(FILE=CDIR, UNIT=IOVI, ACCESS='DIRECT', RECL=MVI, 1 FORM='UNFORMATTED',nrec=500) C***** CT001* TEST 1 - FIRST INQUIRE (AFTER OPEN) IVTNUM = 1 INQUIRE(FILE=CDIR, EXIST=AVB, OPENED=BVB, NUMBER=JVI, 1 ACCESS=B10VK, DIRECT=D10VK, RECL=KVI, NEXTREC=LVI, 2 FORM=E11VK, UNFORMATTED=G10VK, ERR=20014, IOSTAT=IVI) C***** IF (IVI .NE. 0) GO TO 20010 IF (.NOT. AVB) GO TO 20010 IF (.NOT. BVB) GO TO 20010 IF (JVI .NE. IOVI) GO TO 20010 IF (B10VK .NE. 'DIRECT') GO TO 20010 IF (D10VK .NE. 'YES') GO TO 20010 IF (KVI .NE. MVI) GO TO 20010 IF (LVI .NE. 1) GO TO 20010 IF (E11VK .NE. 'UNFORMATTED') GO TO 20010 IF (G10VK .NE. 'YES' ) GO TO 20010 WRITE (NUVI, 80002) IVTNUM IVPASS = IVPASS + 1 GO TO 0011 20014 CONTINUE WRITE (NUVI, 20015) IVTNUM 20015 FORMAT (1H ,2X,I3,4X,5H FAIL,12X, 1 46HERROR IN EXECUTION OF INQUIRE STATEMENT (ERR=)/) GO TO 20016 20010 CONTINUE WRITE (NUVI, 20011) IVTNUM 20011 FORMAT(1H ,2X,I3,4X,5H FAIL,12X, 1 29HERROR IN AN INQUIRE SPECIFIER/) 20016 IVFAIL = IVFAIL + 1 WRITE (NUVI, 20012) IVI,AVB,BVB,JVI,B10VK,D10VK,KVI, 1 LVI,E11VK,G10VK 20012 FORMAT (1H ,16X,10HCOMPUTED: ,7HIOSTAT=,I1,8H, EXIST=,L1, 1 9H ,OPENED=,L1,9H, NUMBER=,I4,1H,/ 2 1H ,26X,7HACCESS=,A6,9H, DIRECT=,A3,7H, RECL=, 3 I4,1H,/1H ,26X,8HNEXTREC=,I4,7H, FORM=, 4 A11,1H,/1H ,26X,12HUNFORMATTED=,A3) WRITE (NUVI, 20013) IOVI,MVI 20013 FORMAT (1H ,16X,10HCORRECT: ,19HIOSTAT=0, EXIST=T, , 1 17HOPENED=T, NUMBER=,I4,1H,/ 2 1H ,26X,32HACCESS=DIRECT, DIRECT=YES, RECL=, 3 I4,1H,/1H ,26X,31HNEXTREC= 1, FORM=UNFORMATTED,/ 4 1H ,26X,15HUNFORMATTED=YES) 0011 CONTINUE C***** C***** WRITE A RECORD TO FILE 44103 WRITE(IOVI, REC=1) JVI C***** CT002* TEST 2 - SECOND INQUIRE (AFTER WRITE) IVTNUM = 2 C***** THIS INQUIRE ONLY TESTS THE DIRECT, RECL, AND NEXTREC C***** AS THE OTHER SPECIFIERS HAVE BEEN PREVIOUSLY TESTED INQUIRE(FILE=CDIR, DIRECT=D10VK, RECL=KVI, NEXTREC=LVI, 1 ERR=20024, IOSTAT=IVI) C***** IF (IVI .NE. 0) GO TO 20020 IF (D10VK .NE. 'YES') GO TO 20020 IF (KVI .NE. MVI) GO TO 20020 IF (LVI .NE. 2) GO TO 20020 WRITE (NUVI, 80002) IVTNUM IVPASS = IVPASS + 1 GO TO 0021 20024 CONTINUE WRITE (NUVI, 20025) IVTNUM 20025 FORMAT (1H ,2X,I3,4X,5H FAIL,12X, 1 46HERROR IN EXECUTION OF INQUIRE STATEMENT (ERR=)/) GO TO 20026 20020 CONTINUE WRITE (NUVI, 20021) IVTNUM 20021 FORMAT(1H ,2X,I3,4X,5H FAIL,12X, 1 29HERROR IN AN INQUIRE SPECIFIER/) 20026 IVFAIL = IVFAIL + 1 WRITE (NUVI, 20022) IVI,D10VK,KVI,LVI 20022 FORMAT (1H ,16X,10HCOMPUTED: ,7HIOSTAT=,I1,9H, DIRECT=,A3, 1 7H ,RECL=,I4,10H, NEXTREC=,I4) WRITE (NUVI, 20023) MVI 20023 FORMAT (1H ,16X,10HCORRECT: ,20HIOSTAT=0, DIRECT=YES, 1 7H ,RECL=,I4,14H, NEXTREC= 2) 0021 CONTINUE C***** C***** READ A RECORD FROM FILE 44106 READ(IOVI, REC=1) JVI C***** CT003* TEST 3 - THIRD INQUIRE (AFTER READ) IVTNUM = 3 C***** THIS INQUIRE ONLY TESTS THE DIRECT, RECL, AND NEXTREC C***** AS THE OTHER SPECIFIERS HAVE BEEN PREVIOUSLY TESTED INQUIRE(FILE=CDIR, DIRECT=D10VK, RECL=KVI, NEXTREC=LVI, 1 ERR=20034, IOSTAT=IVI) C***** IF (IVI .NE. 0) GO TO 20030 IF (D10VK .NE. 'YES') GO TO 20030 IF (KVI .NE. MVI) GO TO 20030 IF (LVI .NE. 2) GO TO 20030 WRITE (NUVI, 80002) IVTNUM IVPASS = IVPASS + 1 GO TO 0031 20034 CONTINUE WRITE (NUVI, 20035) IVTNUM 20035 FORMAT (1H ,2X,I3,4X,5H FAIL,12X, 1 46HERROR IN EXECUTION OF INQUIRE STATEMENT (ERR=)/) GO TO 20036 20030 CONTINUE WRITE (NUVI, 20031) IVTNUM 20031 FORMAT(1H ,2X,I3,4X,5H FAIL,12X, 1 29HERROR IN AN INQUIRE SPECIFIER/) 20036 IVFAIL = IVFAIL + 1 WRITE (NUVI, 20032) IVI,D10VK,KVI,LVI 20032 FORMAT (1H ,16X,10HCOMPUTED: ,7HIOSTAT=,I1,9H, DIRECT=,A3, 1 7H ,RECL=,I4,10H, NEXTREC=,I4) WRITE (NUVI, 20033) MVI 20033 FORMAT (1H ,16X,10HCORRECT: ,20HIOSTAT=0, DIRECT=YES, 1 7H ,RECL=,I4,14H, NEXTREC= 2) 0031 CONTINUE C***** CLOSE(UNIT=IOVI, STATUS='DELETE') C***** CBB** ********************** BBCSUM0 ********************************** C**** WRITE OUT TEST SUMMARY C**** IVTOTN = IVPASS + IVFAIL + IVDELE + IVINSP WRITE (I02, 90004) WRITE (I02, 90014) WRITE (I02, 90004) WRITE (I02, 90020) IVPASS WRITE (I02, 90022) IVFAIL WRITE (I02, 90024) IVDELE WRITE (I02, 90026) IVINSP WRITE (I02, 90028) IVTOTN, IVTOTL CBE** ********************** BBCSUM0 ********************************** CBB** ********************** BBCFOOT0 ********************************** C**** WRITE OUT REPORT FOOTINGS C**** WRITE (I02,90016) ZPROG, ZPROG WRITE (I02,90018) ZPROJ, ZNAME, ZTAPE, ZTAPED WRITE (I02,90019) CBE** ********************** BBCFOOT0 ********************************** CBB** ********************** BBCFMT0A ********************************** C**** FORMATS FOR TEST DETAIL LINES C**** 80000 FORMAT (1H ,2X,I3,4X,7HDELETED,32X,A31) 80002 FORMAT (1H ,2X,I3,4X,7H PASS ,32X,A31) 80004 FORMAT (1H ,2X,I3,4X,7HINSPECT,32X,A31) 80008 FORMAT (1H ,2X,I3,4X,7H FAIL ,32X,A31) 80010 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,15X,10HCOMPUTED= , 1I6,/,1H ,15X,10HCORRECT= ,I6) 80012 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,16X,10HCOMPUTED= , 1E12.5,/,1H ,16X,10HCORRECT= ,E12.5) 80018 FORMAT (1H ,2X,I3,4X,7H FAIL ,/,1H ,16X,10HCOMPUTED= , 1A21,/,1H ,16X,10HCORRECT= ,A21) 80020 FORMAT (1H ,16X,10HCOMPUTED= ,A21,1X,A31) 80022 FORMAT (1H ,16X,10HCORRECT= ,A21,1X,A31) 80024 FORMAT (1H ,16X,10HCOMPUTED= ,I6,16X,A31) 80026 FORMAT (1H ,16X,10HCORRECT= ,I6,16X,A31) 80028 FORMAT (1H ,16X,10HCOMPUTED= ,E12.5,10X,A31) 80030 FORMAT (1H ,16X,10HCORRECT= ,E12.5,10X,A31) 80050 FORMAT (1H ,48X,A31) CBE** ********************** BBCFMT0A ********************************** CBB** ********************** BBCFMT0B ********************************** C**** FORMAT STATEMENTS FOR PAGE HEADERS C**** 90002 FORMAT (1H1) 90004 FORMAT (1H ) 90006 FORMAT (1H ,20X,31HFEDERAL SOFTWARE TESTING CENTER) 90007 FORMAT (1H ,19X,34HFORTRAN COMPILER VALIDATION SYSTEM) 90008 FORMAT (1H ,21X,A13,A17) 90009 FORMAT (1H ,/,2H *,A5,6HBEGIN*,12X,15HTEST RESULTS - ,A5,/) 90010 FORMAT (1H ,8X,16HTEST DATE*TIME= ,A17,15H - COMPILER= ,A20) 90013 FORMAT (1H ,8H TEST ,10HPASS/FAIL ,6X,17HDISPLAYED RESULTS, 1 7X,7HREMARKS,24X) 90014 FORMAT (1H ,46H----------------------------------------------, 1 33H---------------------------------) 90015 FORMAT (1H ,48X,17HTHIS PROGRAM HAS ,I3,6H TESTS,/) C**** C**** FORMAT STATEMENTS FOR REPORT FOOTINGS C**** 90016 FORMAT (1H ,/,2H *,A5,4HEND*,14X,14HEND OF TEST - ,A5,/) 90018 FORMAT (1H ,A13,13X,A20,7H * ,A10,1H/, 1 A13) 90019 FORMAT (1H ,26HFOR OFFICIAL USE ONLY ,35X,15HCOPYRIGHT 1982) C**** C**** FORMAT STATEMENTS FOR RUN SUMMARY C**** 90020 FORMAT (1H ,21X,I5,13H TESTS PASSED) 90022 FORMAT (1H ,21X,I5,13H TESTS FAILED) 90024 FORMAT (1H ,21X,I5,14H TESTS DELETED) 90026 FORMAT (1H ,21X,I5,25H TESTS REQUIRE INSPECTION) 90028 FORMAT (1H ,21X,I5,4H OF ,I3,15H TESTS EXECUTED) CBE** ********************** BBCFMT0B ********************************** C***** C***** END OF TEST SEGMENT 441 STOP END