README file for ftnchek version 3.1 Author: Robert Moniot Fordham University New York, NY 10023 USA Telephone: (212) 636-6311 E-mail: moniot@fordham.edu Date: May 28, 2001 Ftnchek (short for Fortran checker) is designed to detect certain errors in a Fortran program that a compiler usually does not. Ftnchek is not primarily intended to detect syntax errors. Its purpose is to assist the user in finding semantic errors. Semantic errors are legal in the Fortran language but are wasteful or may cause incorrect operation. For example, variables which are never used may indicate some omission in the program; uninitialized variables contain garbage which may cause incorrect results to be calculated; and variables which are not declared may not have the intended type. Ftnchek is written in C. You must have a C compiler for the machine on which you wish to build it. The URL for ftnchek's home page is http://www.dsm.fordham.edu/~ftnchek. Source code, binary executables for some platforms, and other information are available there. INSTALLING FTNCHEK ------------------ See the file INSTALL for detailed instructions on how to install ftnchek on your system. NEW FEATURES ------------ Here are the new features in version 3.1: o Block structure of the program is now kept track of, and proper nesting of blocks is checked. o New check for modification of a DO index-variable within the range of the loop. o New option -style to allow extra-picky warnings about obsolescent or old-fashioned programming constructions. o Limited support for attribute-based type declarations (using ::). See the manual for limitations on the accepted syntax. Note that this new feature should be seen as a first step toward full support for Fortran 90 type declarations, but it is not there yet. The level of support may be sufficient for novice programmers, but it is not yet ready for serious use. o Some implementation changes were made for faster execution. The improvement in speed is greatest for small and medium-sized programs, which are now processed about 2 times faster. o The html documentation is now produced using Verhoeven/Hamilton (vh) man2html. This change served mainly to simplify the production of the html from the man page (fewer corrections need to be made by hand), and there is very little difference in appearance of the documentation as viewed with browser. The main difference in the results is in the hrefs referring to man pages, which now look like, e.g., http://localhost/cgi-bin/man/man2html?1+tar for a reference to the tar(1) man page. o New support for users who want to mine project files for information about a program: first, a bug was fixed that caused the project file to have garbage in some information fields for subprogram actual arguments that are PARAMETERs. (This bug had no effect on ftnchek's checking of such arguments.) Also, the -project switch was changed from an on/off flag into an option-list to allow the user to prevent the usual trimming of superfluous information stored in the project file. To take advantage of this new option, use '-project=create,no-trim-*' to suppress the trimming and force all subprogram calls and common block declarations to be stored. (The previous syntax of simply '-project' has the same effect as formerly, and should be used if you are creating project files for their originally intended purpose.) See the file PATCHES for further changes made after the initial release of this version. NOTE: For VMS, it is recommendend to obtain the file shell_mung.c. This file is not necessary to build ftnchek, but without it wildcards in file names on the command line will not be expanded. This file is no longer bundled with ftnchek, but is obtainable at the ftnchek home site and elsewhere.