FORTRAN Programming Tools Release III.4 Submitted by Art Ragosta and Laura Jurgeleit US Army Aviation Research and Technology Activity NASA Ames Research Center MS 219-3 Moffett Field, Calif 94035-1099 (415) 694-5578 This package contains a set of programming tools of either general interest or specifically aimed at FORTRAN 77 users. Although many of the tools are transportable, some of the programs and all of the command files are specific to the VAX family running VMS version 4.0 or higher. The following tools are included : 1. MERLIB - a library of FORTRAN and MACRO routines that provide useful capabilities for FORTRAN programmers. This library can also be linked to any language that is capable of supporting the FORTRAN interface on the VAX. 2. BUGOUT - a set of programs for the debugging and optimization of FORTRAN source codes. This package is specifically for the determination of coding problems that could result in addressing errors (e.g., COMMON blocks of different lengths in different routines, CALL statements with more or fewer arguments than the SUBROUTINE statement). Additional capabilities include automatic compilation with /DEBUG=BOUNDS, continual traceback printout, proper initialization and use of variables, and CPU time used by each subprogram. 3. CHECK72 - a program to verify that no text has been typed beyond column 72 (or 80) of a FORTRAN source deck (or other file). 4. DOUBLE - a program to list two files side-by-side on a VT100-compatible terminal. 5. EIGHTY - a program used to crunch a text file whose records are longer than 80 columns into 80 columns. UNEIGHTY restores the records to full length. (This program was written because our HASP communications will not transfer files with records longer than 80 columns.) 6. FILTER - a program to replace text strings with other text strings. 7. FLS, FS - .COM files used to submit FORTRAN compiles to the batch queues. 8. FORTLIST - a useful listing program that formats a FORTRAN file, produces a listing with page numbers and dates, and creates a table of contents and index by subprogram name. 9. FORTVMS - a program for reformatting a file with FORTRAN-compatible carriage controls into a VMS-standard listing format. 10. NAMEIO - a program to replace NAMELIST I/O with transportable, FORTRAN 77 code. 11. REORDER - a program to reorder the subprograms in a source file. 12. SPLIT - a program to split FORTRAN source codes into subprograms. 13. STRIP72 - a program to remove all characters beyond column 72 and remove trailing blanks. STRIP removes all trailing blanks only. 14. STUB - a program to create dummy subprograms with a standard format prologue of comment cards. 15. UNTAB - a program to replace tab characters with the correct number of blanks. 16. VMSFORT - a program for reformatting a file with VMS-standard carriage control to the FORTRAN-compatible control characters. 17. CLEANUP - a source-code cleanup and structuring utility for FORTRAN 77. 18. GROK - returns number of characters, words, lines, carriage control type, length of longest line, and existence of TABs. 19. INCLUDER - replace INCLUDE statements in a source code with the file referenced. 20. SEND - a nifty little send_message_to_username routine used by some of the batch procedures. 21. FIFE - the Friendly, Interactive FORTRAN Environment is a general purpose executive program for development of flexible, user-friendly systems. The user interface is command-oriented (maybe an optional menu-based interface will be provided in the future) and has been found to meet with good user appeal. Modules and new commands can be added with great ease. This version is preliminary but has already been found to be quite useable. Notes : A. As of release III.0 of the tools package, some of the programs are now written by or maintained by Laura Jurgeleit of the Aviation Research and Technology Activity. B. There are several MACRO routines that were provided on earlier DECUS releases that are provided in object form because they are used by other routines. The source code is now provided in file DECUS.MAR. C. All other programs are the exclusive work of the submitters except FORTLIST which was based on a program written by Ed Austin at the Applied Technology Laboratory, Ft. Eustis, Va. and later modified by the submitters and Koreen Clay of the Technology Development Corporation. D. All routines in the MERLIB library are similarly the work of the submitters except as noted in B, above. Some of the algorithms were derived from text books; these routines are referenced in the source code. E. The .COM files are all designed to run from a system account accessed as logical name 'MERLIN:'. It will be necessary to change all references to MERLIN: to an appropriate directory or to define this logical name. F. See the file REVISIONS.TXT for the major changes since the previous release of this package. G. The ADAM text editor, which previously was released as part of the FORTRAN Programming Tools, is now available separately as VAX-305 from DECUS. We highly recommend it for serious FORTRAN programmers. There are two documents of special note in this release of the tools package. They are PROGRAM.STD and LIFECYC.TXT. PROGRAM.STD is a set of programming standards developed for FORTRAN 77 programs. These standards are suggested on the basis of transportability, efficiency, and maintainability. It has been found that abiding by these standards, especially on large systems developed by multiple programmers, enhances these traits. The author is presenting these standards solely as a suggestion. I will neither defend nor modify the standards. It will be noted that most of the programs in this package abide to a large degree with these standards but, since many of the tools are not intended to be transportable, the transportability issue was less severe for this package. LIFECYC.TXT is a document describing the full life cycle of a software development project. This document was developed jointly by the submitter and Kristine Tischer, formerly of Computer Sciences Corporation. The descriptions in this document follow particular methodologies which are the subject of constant debate in the software industry. It is the opinion of the submitter that the exact methodology used is less important than the existence of a disciplined approach with adequate verification and documentation. Similarly to the programming standards, I will not defend nor maintain this document; it is provided on the belief that it may prove useful to people involved in large scale development efforts. The methodologies described can be found in detail in many books and magazine articles (some references are provided -- the references to government documents are largely relevant to the project for which the lifecycle analysis was prepared and are not, unfortunately, widely available). Files of type '.DOC' are the documentation files for individual tools. Files of type '.TXT' are documentation for the FPT package as a whole.