COLEMAN@UMBSKY.BITNET (01/27/88)
Hello! After three weeks of relative inactivity, I'm ready to distribute the INDEX program which Paul Charette of the Naval Underwater Systems Centre (charettep@nusc-wpn.arpa) obtained from a DECUS tape. For those of you who either don't recall all the details or never saw his messages, they can be found below in their entirety. Just send me your BITnet address and I'll get it to you as soon as humanly possible. ARPAnet readers -- read below for the node address and other relevant info for FTPing it. Steve Coleman Computing Services University of Massachusetts at Boston Harbor Campus Boston Mass 02125 USA (617) 929-7805 BITnet: COLEMAN@UMBSKY =============================================================================== (Message #1) Greetings and Permutations, About two weeks ago, I requested information about a program which would analyze FORTRAN code and generate flow charts. Thanks to responses by many of you, I traced down INDEX, a DECUS program which is touted as a "FORTRAN Cross Referencer and Flow Chart Generator". (embed disclaimer) I haven't had time to test it out, so I can't speak for it's usefulness or reliability, but it looks quite useful. If you would like a copy, I will gladly forward the source to you. I wish I could make it available for Anonymous FTP, but our site doesn't allow anonymous access. Be warned, however, that it is quite large, however (23 files, ~3000 blocks of source, with the largest file having 880 blocks). I tried packing it using VMS_SHAR, with MAX_PART_SIZE = 64 INDEX-FORTRAN CROSS REFERENCE AND FLOW CHART ABSTRACT INDEX is a FORTRAN source cross-referencing and flow charting utility that allows the user to look at individual source files (optionally saving the data for an overall SUPER INDEX) and determine what variables are used on what lines and how they are used. Furthermore the user can select for display/save for SUPER INDEX only those variables or COMMON blocks with the characteristics that he is interested in-global/local, assigned value/not assigned value, used/unused, imported/exported, etc in any combination. Also available is the optional ability to show up to four additional items of information for display during the regular and SUPER INDEX: The variable storage location information (local, in COMMON, passed by argument, etc). The variable type (REAL F_Floating, structured etc) Usage in FUNCTION/SUBROUTINE calls (routine used in and argument number). A user selected tag of up to 31 characters. The data saved for a SUPER INDEX listing (consisting of 6 data items as outlined above) can be displayed with a great deal of flexibility as to the data item selection, order and format (or saved in an ISAM data file for the user to work on directly). A special option of the SUPER INDEX allows the output of a list of module entry points which pass data in and out by argument, the name of each argument and it's type , the name of any module which call that entry point along with the the name of each variable passed in the corresponding argument position and it's type. The resulting information supplied allows the user to follow the flow of data throughout a program or find the usage of any selected data variable as required. If selected, the user may at the same time generate a flow chart of the source file currently being cross-referenced. If wanted, the user can generate in place of the SUPER INDEX, an entry point cross reference listing showing who calls who and is called by who (with optional graphical tree output). ============================================================================= (Message #2) INDEX is now available through anonymous FTP from garfld.msfc.nasa.gov. Their ARPAnet node number is 128.158.1.1. The anonymous account username is ANON. The password is GUEST. Enjoy! ============================================================================= -------
KIMBLE@UTKVX3.BITNET (04/04/88)
index
JOE@FHCRCVAX.BITNET (Joe Meadows) (04/05/88)
This is a modification for the INDEX / FIND utility. Note that INDEX and FIND are the same utility, only the name is different. This utility can be found on the Fall '87 Decus tape, under [VAX87E.MEADOWS.INDEX], and was posted previously to info-vax. This fixes behaviour of /CHARACTERISTICS qualifier. --- In search.c , find the following ----------- if (search->si_v_char) { if (((search->si_l_charset & fh2->fh2$l_filechar) == search->si_l_charset) && ((search->si_l_charclr & fh2->fh2$l_filechar) == search->si_l_charclr)) --- and change to ------------------------------ if (search->si_v_char) { if ((search->si_l_charset & fh2->fh2$l_filechar) && (!(search->si_l_charclr & fh2->fh2$l_filechar))) ------------------------------------------------ This solves two problems at once, the previous code would force all negated keywords to behave as though they were not negated, and all present keywords would have to be true (i.e. /CHAR=(READ,WRITE) would only match if the file had BOTH read and write verify set, whereas the help said it would be EITHER). The behaviour with this modification is as documented, if any of the present keywords hold true and if none of the negated keywords hold true for the file, then the file is displayed. A possible future modification would be to modify it so that you can ask that BOTH need to be set. Perhaps I could change it so that /CHARACTERISTICS=(READ+WRITE) would test for read AND write, and /CHARACTERISTICS=(READ,WRITE) would test for read OR write. No one has written to me asking for such a modification, so perhaps it's not such a wanted item.. Joe Meadows Jr. VAX/VMS System Manager / guru in training Fred Hutchinson Cancer Research Center 1124 Columbia St. Seattle Wa. 98104 bitnet - JOE@FHCRCVAX arpa - JOE%FHCRCVAX.BITNET@WISCVM.WISC.EDU voice - (206) 467-4970