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 <expr> notation are not
       correctly parsed.  An example is:
         100  FORMAT( <N>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.