Version I.0 - Initial Release March 1985 Programs: BUGOUT - FORTRAN debugging program and documentation aid CALLS COMMON TRACER CAPITAL - capitalize text files CCLEAN - clean up COMMON blocks in FORTRAN sources CURFIT - least-squares curve fit DOUBLE - display two files side by side FLS - batch FORTRAN compile and link FORTLIST - produce nice FORTRAN listing FORTVMS - convert from FORTRAN to carriage return records FS - batch FORTRAN compile MERLIB - lots of nifty subprograms STRIP72 - remove all characters past column 72 and trailing blanks STUB - generate dummy subprogram stubs and prologues UNTAB - replace tab characters with spaces VMSFORT - convert from carriage return to FORTRAN records Version I.1 May 1985 Modifications: BUGOUT - minor bug fixed in arguments with subscripts FORTLIST - INCLUDE feature added MERLIB - expanded New Programs: CHANGE - change one text string to another without editor Version II.0 September 1985 Modifications: BUGOUT - several rarely-encountered bugs fixed MERLIB - expanded New Programs: BUGOUT VARIABLE - check proper variable usage, plus map CHECK72 - check to see if there are any characters past column 72 EIGHTY/UNEIGHTY - convert listing files to/from 80 columns INCLUDER - replace INCLUDE statements with the file NAMEIO - transportable NAMELIST replacement SNAMEIO - transportable NAMELIST replacement(improved) Version II.1 December 1985 Modifications: NAMEIO/SNAMEIO - bugs related to too many COMMONs fixed - last line had been ignored - array initialization improved - E FORMAT input fixed BUGOUT TRACER - INCLUDE statement added to list of specification statements COMMON - do not process any routine whose name starts in 'QQ' VARIABLE - do not process any routine whose name starts in 'QQ' - data dictionary added - type and size of variables checked across subroutines MERLIB - expanded, minor bug fixed in GETOKE, bug fixed in GETXY New Documents: PROGRAM.STD - suggested FORTRAN 77 programming standards. LIFECYC.TXT - an interesting discussion of the life cycle of software development efforts. Version II.2 February 1986 Modifications: MERLIB - new routines. - minor bug fixed in SEARCH. S/NAMEIO - efficiency improvements. FORTLIST - /NODELETE option added. New Programs: REORDER - reorder the subprograms in a FORTRAN source code in an order specified by the user. Optionally, alphabetizes the subprograms. SPLIT - split a FORTRAN source code into a bunch of files with one subprogram each (e.g., to build a TLB). Version II.3 June 1986 Modifications: BUGOUT VARIABLE - fixed a bug with variably dimensioned arrays. increased number of subprograms to 400. CALLS - fixed bug in CALL map for large number of subroutines; improved efficiency slightly. TRACER - fixed bug in labeled STOP or RETURN statements. VERIFY - a new program has been added to verify that all COMMON blocks in a subprogram are actually used. (all) - read multiple lines from options file. UNTAB - added qualifiers to set tab stops. CCLEAN - removed trailing spaces on output lines. doubled number of continuations permitted. fixed shifting of comment cards within a specification. MERLIB - new routines added. Deletions: CURFIT - this program was deleted because it was merged with DISSPLA, which is licensed software. Version II.4 September 1986 Modifications: BUGOUT - the two programs which made up the preprocessor step, and the three programs which made up the postprocessor step have been combined. Some minor bugs were fixed, flexibility was improved, and efficiency greatly improved. Note!!!! The old versions of the BUGOUT programs and '.COM' files are still included on this release, but will be deleted on the next release. SNAMEIO - now produces only 19 continuation lines in the BLOCK DATA for the variable names. Note!!!! NAMEIO will no longer be supported during the next release as SNAMEIO is more efficient and flexible. MERLIB - new routines. Version III.0 March 1987 Deletions: NAMEIO - this package is no longer maintained. The package previously called SNAMEIO has been renamed NAMEIO. The access to the NAMESTUF.FOR file was made READONLY. Bug fixed in counting of continuation lines. OLDBUGOUT - the old BUGOUT programs and .COM files have been removed as the new BUGOUT is more powerful and efficient. Modifications: MERLIB - cleaned up, documentation updated, miscellaneous small bugs fixed. New routines. BUGOUT - error in handling of blank cards and entry statements fixed. error in categorization of some statements fixed. - modified to check CALL statements for MERLIB routines New Programs: FILTER - replaces ASCII characters or strings with other characters or strings. Note: this program replaces CAPITAL, CHANGE, ASCII, and DEASCII which will be removed from the next release as a result. CLEANUP - a source code cleanup program. This program replaces the functions of CCLEAN plus adding a great many more functions. As a result, CCLEAN will be deleted from the next release of the tools package. Version III.1 April 1987 Modifications: CHECK72 - modified to accept lists of files and wildcard inputs. CLEANUP - modified to check for author information file 'AUTHOR.DAT' in default login directory FILTER - modified to accept lists of files and wildcard inputs and outputs. - fixed bug in interpreting qualifiers FORTVMS - modified to accept lists of filespecs and wildcard inputs MERLIB - new routines, GETOKE modified to allow lowercase letters STRIP72 - modified to accept lists of filespecs and wildcard inputs UNTAB - modified to accept lists of filespecs and wildcard inputs VMSFORT - modified to accept lists of filespecs and wildcard inputs Deletions: CAPITAL, CHANGE - replaced by FILTER CCLEAN - replaced by CLEANUP Version III.2 August 1987 Modifications: BUGOUT - fixed bug in VARIABLE checking EIGHTY/UNEIGHTY - modified to not use column one. This prevents possible confusion with JCL or DCL characters in that column. CLEANUP - fixed bug in spacing statements Version III.3 December 1987 Modifications: MERLIB - Modified routines GETFDIR, GETFTYPE and GETFVERS to include the punctuation. FILTER - Bug fixed in string replacement section. BUGOUT - FORTRAN carriagecontrol replaced with LIST carriagecontrol, NOPRINT option added, POSTBUG modified to parameterize column numbers to better read the .LIS file. - Variable uniqueness checking added to POSTBUG. CLEANUP - Bug fixed in routine to process option strings. Deletions: MERLIB.FOR - the file MERLIB.FOR was deleted since the full source code for MERLIB is kept in MERLIB.TLB, which is easier to handle. The few MACRO routines are still kept in MERLIB.MAR. Version III.4 June 1988 Modifications: CLEANUP - the file CLEANIT.COM was inadvertantly omitted from the version III.3 release.... SINCERE apologies to anyone affected FILTER - added /EXACT and /LOG. Fixed small bugs. Minimized creation of new versions of file if no changes were made. Double quote character now properly handled. Modified to include /AT and /EVERY qualifiers for the /UNTAB option. NAMEIO - INCLUDE statement added. The WRITEC routine (previously removed) was restored. "CHARACTER variable*len" statement added. GROK - modified to print the length of the longest page (i.e., the number of lines between form feeds). UNTAB - bug fixed in /AT and /EVERY. Note: UNTAB will be deleted next release since FILTER now performs this function. BUGOUT - PREBUG: replaced routine GETSTM with call to MERLIB routine GETSTM; parameterized length of subprogram names. MERLIB - new routines added. Cleaned up internally. The file MERLIB.MAR from previous releases has been deleted. The member MACRO in MERLIB.TLB now contains the macro sources. New Programs: SEND - program to send a message to users (used in BATCH jobs). FIFE - the Friendly, Interactive FORTRAN Environment is a general- purpose executive for utilities written in FORTRAN (or other languages with compatible features). It is user friendly, extensible, and efficient. Preliminary version. Version III.5 July 1988 Revisions: EIGHTY/UNEIGHTY - modified to quote control characters and eight bit characters to prevent conflicts with transmission protocols. BUGOUT - Modified to call MERLIB routine PUTSTM; length of names increased to 12 characters. NAMEIO - added PARAMETER statement. Added a common block with unit numbers and error flag. Improved format of output and made it more compatible with input. CLEANUP - added VAX D_LINES option; added checking and conversion for VAX tab/continuation format. MERLIB - many new routines. Bug Fixes: BUGOUT - Bug fixed in POSTBUG: maximum number of references on line of .LIS file now calculated by program (hard coded before). NAMEIO - When arrays were dimensioned in type statements, it didn't use proper index. Version III.6 October 1988 Revisions: BUGOUT - Modified documentation to list maximum storage limits for number of subprograms, variables, common blocks, etc. - Increased number of COMMON blocks from 100 to 150. - Increased number of references to a variable/array from 200 to 225. - maximum number of COMMON blocks per subprogram increased from 50 to 60 and PARAMETERized this number; modified to use only system logical unit numbers (ARTA local standard). - fixed to not delete all .DIC files with same name as input file; fixed bug in FUNCTION handling - bug fixed in label checking. FORTLIST - Modified to accept lowercase source code for input. Print only as many characters as needed (shortens output file). FILTER - /FORTRAN option of /UNTAB was added to change from DEC's alternate source format into standard format. /EXCLUDE qualifier added. - Bug fixed in string replacement option. FS - Allowed version numbers and multiple qualifiers. GROK - Access to input files made READONLY. More information displayed. /EXCLUDE and /OUTPUT qualifiers added. INCLUDER - Improved interpretation of comment cards. Made access to input files READONLY. NAMEIO - Modified to produce FORTRAN 77 compliant code (except for the call to MERLIB routine COMPRESS). Previously, extremely large numbers of variables could result in statements with more than 19 continuation cards; this was fixed. The default input file type was changed to .CMN instead of .FOR, and the default output filename was changed to the same as the input file but with type .FOR. Include files are now opened READONLY. ECHO option added. MERLIB - a number of new routines were added. T$RAP and UNT$RAP were deleted as they were replaced with other routines. New Programs: INSTALL.COM - a procedure to help automate installation and update of the tools package. SMALL - used to break big text files into small ones. RPURGE - do a "reverse purge". In other words, delete all but the OLDEST version of the specified file(s). Deletions: UNTAB - FILTER does it... one less program to maintain. Version III.7 July 1989 Revisions: MERLIB - SCOLOR routine added. FORTLIST - Top and bottom of page labels improved. Additions: LADAM - .COM file to aid maintenance of libraries. Version III.8 July 1990 New Tools: TOUCH - set a file's revision date. Revisions: MERLIB - TRIM, ACOLOR, EDIT, CURSOR_LEFT, CURSOR_RIGHT, SAVE_CURSOR, RESTORE_CURSOR, PRINT_FILE, STRPSTM routines added. Entire library cleaned up and recompiled. FILTER - added EDIT feature to string replacement (see HELP FILTER /KEYBOARD for details). GROK - added /TOTAL flag. BUGOUT - CPU time instrumentation made substantially more accurate; support added for VAX specific statements BYTE, UNION, MAP, STRUCTURE and RECORD; FORTRAN statement length increased to 3000 characters with up to 50 continuations. Bug Fixes: FORTLIST - Bug in previous "improvement" fixed. - Allowed "!" comment cards. MERLIB - Bugs in routine GETSTM fixed - DEC tab source and "!" type comments. READQ fixed to pad string with spaces. GETFILEX had a bug in the exclusion list section. STRIP - increased file name to 80 characters. GROK - Long filenames could not be printed out. FILTER - new file not saved if no changes made. Version III.9 November 1990 Bug Fixes: MERLIB - minor bug fixes to routines GETSTM, MERGE/I/R, PUTSTM, SCALE, SEARCH1, UNTAB, WILD_MATCH - documentation error for NAME_TO_PID fixed - new routines CLEANUP - minor bug fixed in routine GETCRD that checks for control cards BUGOUT - bug fixed in VERIFY checking regarding COMMON blocks with variables intialized in DATA statements - increased number of characters in subprogram names for TIME printout - bug fixed : COMMON,NOVERIFY,NOVARIABLE options together would produce no COMMON checking output - COMMON checking changed so that if an alignment error is found, the size of the COMMON block is reset to the new size, thereby producing less error messages NAMEIO - major update fixing many of the previous problems, including the poor handling of strings