ftnchek (short for Fortran checker) is a free program for checking Fortran 77+ programs for possible bugs, violations of the standard, and portability problems. (Fortran 77+ means that a number of extensions to standard Fortran 77 are supported, including some Fortran 90 features as well as some common vendor features.) Status as of 20 February 2005 ftnchek is now at version 3.3 Here are the new features in version 3.3: 1. Front-end has been rewritten for unlimited lookahead, eliminating the longstanding bug that caused incorrect interpretation of statements whose ambiguity was not resolved in the first line. 2. The -mkhtml option is now available in the MS-DOS version. 3. Added support for Fortran 90 pointer related syntax: ALLOCATE, DEALLOCATE, and NULLIFY statements; the ALLOCATABLE, POINTER and TARGET attributes in type declarations; the pointer assigment operator => and intrinsic functions ALLOCATED and ASSOCIATED; and deferred-shape array declarations. At present these new syntax features are accepted but not properly checked. This feature was added by Robert Landrito. 4. The -f77 and -f90 pointer option controlling warnings about ''Cray pointers'' has been renamed to cray-pointer. The -f77=pointer option now instead controls warnings for code containing Fortran 90 pointer-related syntax. 5. Re-implemented -mkhtml processing so it is now much faster on source files containing many routines. (This also enabled item 2.) 6. Changed the arrangement of the test directory so there is no longer any need to modify the distribution in order to run the test suite (check.bat) under MS-DOS. 7. Fixed bug in reading numeric settings on command line when setting name abbreviated to 3 characters. 8. Fixed bug causing spurious warning for a GOTO referring to a labeled END statement when the statement before END was a FORMAT. 9. New flag -f77=character to control warnings about extensions to the Fortran 77 character data type. Accompanying this new flag is support for Fortran 90 rules for character variable declarations that evaluate to zero or negative length, allowing them and treating negative length values as zero. 10. Fixed minor bug in printing of comments and blank lines following last END statement in -list mode. 11. Fixed bug that caused Fortran 90 type declarations of the form: double precision :: d to be incorrectly parsed, leading to a bogus syntax error. 12. New checking of comparisons under -portability flag for mismatching precision of operands. This checking is now done according to the same rules as for arithmetic operations. Bugs reported in version 3.3.1: 1. On some systems, the configure step fails when attempting to determine size of short. The root cause of this failure has not been determined exactly, but it seems to occur only on systems with more than one compiler installed. Make sure that your PATH variable contains the correct compiler, and/or set the CC environment variable to the desired compiler before running configure. 2. Nonstandard variable formats using the notation are not correctly parsed. An example is: 100 FORMAT( I3 ) This bug will be fixed in the next release. Meantime, a patch for the source code is available on the download site. Send bug reports to: moniot(at)fordham.edu Downloading information: The latest version is available from the site where it is maintained: ftp://ftp.dsm.fordham.edu/pub/ftnchek or http://www.dsm.fordham.edu/~ftnchek It will soon be available also from the linux archive at http://ibiblio.org as well as from netlib: ftp://netlib.org/fortran/ftnchek.tar.gz Executable binaries are available from the dsm site for Linux, Windows, and some other platforms. Binaries for other platforms should appear there soon. Assistance in producing executables for various platforms is welcome. Please inform me if you make such executables available on software servers, so that I can include the information here.