C+ C NAME: C FileInfo C PURPOSE: C Obtain info about open file C CALLING SEQUENCE: subroutine FileInfo(iU,cFile) C INPUTS: C iU integer logical unit number of open file C OUTPUTS: C None C INCLUDE: include 'filparts.h' C CALLS: C isearch, BadI4, AskChar C PROCEDURE: C > Calls INQUIRE to obtain information about the file and prints it on C the screen. The program is paused until user hits any key. C > If iU .ne. FIL__NOUNIT it is used in an `inquire by unit number'. C > If iU .eq. FIL__NOUNIT then FILE is used in an `inquire by file name' (if the C file exists). C MODIFICATION HISTORY: C JAN-1995, Paul Hick (UCSD) C- integer iU character cFile*(*) character cName*80 /'dunno'/ character ACCESS*11 /'dunno'/ character CARCNTRL*7 /'dunno'/ character DIR*7 /'dunno'/ character FM*11 /'dunno'/ character FMD*7 /'dunno'/ character UNF*7 /'dunno'/ character KYD*7 /'dunno'/ character ORGANIZATION*10 /'dunno'/ character RTYPE*9 /'dunno'/ character SEQ*7 /'dunno'/ IRECL = BadI4() if (iU .ne. FIL__NOUNIT) then inquire (iU, ! Inquire by unit number & name=cName, c & organization=ORGANIZATION, & access=ACCESS, & direct=DIR, & sequential=SEQ, & form=FM, c & keyed=KYD, c & carriagecontrol=CARCNTRL, c & recordtype=RTYPE, & recl=IRECL, & formatted=FMD, & unformatted=UNF) else if (iSearch(1,cFile,cName) .ne. 1) return inquire (file=cFile, ! Inquire by file name & name=cName, c & organization=ORGANIZATION, & access=ACCESS, & direct=DIR, & sequential=SEQ, & form=FM, c & keyed=KYD, c & carriagecontrol=CARCNTRL, c & recordtype=RTYPE, & recl=IRECL, & formatted=FMD, & unformatted=UNF) end if write (*,'(/,80(1H-))') write (*,'(1X,A,T40,3H: ,A)') 'INQUIRE results for file ',cName(:itrim(cName)) write (*,'(1X,80(1H-))') write (*,'(1X,T8,A,T40,3H: ,A)') & 'Organization', ORGANIZATION, & 'Open for ', ACCESS//' access', & 'Open for ', FM//' I/O' write (*,'(1X,T8,A)') 'Allowed access types' write (*,'(1X,T8,A,T40,3H: ,A)') & ' Direct access', DIR, & ' Sequential access', SEQ, & ' Formatted access', FMD, & ' Unformatted access', UNF, & ' Keyed access', KYD, & 'Carriagecontrol', CARCNTRL, & 'Recordtype', RTYPE write (*,'(1X,T8,A,T40,3H: ,I5)') 'Recordlength', IRECL write (*,'(1X,80(1H-))') cName = 'continue' call AskChar('',cName) return end