ftnchek FAQ

This is a very preliminary FAQ.  Originally written February 28,
1999. Slightly updated September 22, 2000 and August 23, 2002.

Q1) Where can I get the latest version of ftnchek?

Q2) Are there any plans for ftnchek to support Fortran 90?

Q3) What other Fortran syntax checkers are there?

Q4) Why is ftnchek not spelled ftncheck?

Q5) What are some sources of Fortran information?

Q6) Is ftnchek Year-2000 compliant?

Q7) Ftnchek ignores my "#include" file (or other preprocessor directives)

Q8) Ftnchek's error messages aren't interpreted properly by Emacs (or
    other development tool) to allow it to jump automatically to the
    location of the error.

Q9) Is the Mike Myers mentioned in the comment section of average.f
    the same as the Mike Myers who plays Austin Powers in the movies?

==================================================================

Q1) Where can I get the latest version of ftnchek?

A1) Many places.  Probably the most reliable place to get it is Netlib,
    whose net address is netlib.org.  The URL is
		ftp://netlib.org/fortran/ftnchek.tar.gz
    Unlike most software archives, the netlib maintainers keep naming the
    file ftnchek.tar.gz regardless of the version.  But don't worry.  I
    always make sure they have the newest version as soon as it is
    released.

    Ftnchek has its own home page.  The URL is
	      http://www.dsm.fordham.edu/~ftnchek
    This site has current information about the status of the ftnchek
    project, as well as links for downloading the software.  This is
    always the very most up-to-date site, since it is the location
    where ftnchek is maintained.  But the server is old and slow, so if
    you just want the software, you are better off finding a Netlib
    mirror near you.

    Ftnchek has also been placed onto many Linux software archives.
    For instance, it can be found in
	  http://www.ibiblio.org/pub/Linux/devel/lang/fortran/
    A Debian package is available at
	  http://www.debian.org/Packages/unstable/devel/ftnchek.html
    The version available at these and other Linux sites is not always
    the very latest, however, since it takes some time for the new
    version to find its way there.


Q2) Are there any plans for ftnchek to support Fortran 90?

A2) Eventually, I hope so.  But basically, I work on ftnchek in my
    spare time, of which I don't have much these days.  At the present
    level of effort, progress is slow.  I am trying to recruit
    volunteers to help get ftnchek to support more Fortran 90 features:
    see http://www.dsm.fordham.edu/~ftnchek/f90-project.html for more
    details if you are interested in volunteering.

    On the bright side, Fortran 90 itself has many features to help avoid
    the pitfalls that ftnchek was designed to catch.

    Also, there are other static analyzer programs that do understand
    Fortran 90 (see Q3).  Unfortunately they are not free, however.


Q3) What other Fortran syntax checkers are there?

A3) Here are a few I happen to have URL's for.  None of them are free.
    They are listed in alphabetical order, with no ranking or endorsement
    implied.

    1. forcheck:
        Forcheck b.v.
	Torenmolen 23
	2317 NV Leiden
	The Netherlands
	Phone: +31 71 5236066
	E-mail: mailto:info@forcheck.nl
	Website: http://www.forcheck.nl


    2. FORTRAN-lint (flint and flint90)
	Cleanscape Software International
	1530 Meridian Ave Ste. 200
	San Jose, CA 95125-5318
	Phone: (408) 978-7000 and (800) 944-5468.
	FAX: (650) 978-7002.
	Email: sales@cleanscape.net
	URL: http://www.cleanscape.net/

    3. Forwarn
	Quibus Enterprises, Inc.
	3340 Marble Terrace
	Colorado Springs, CO 80906 USA
	+1-719-527-1384
	URL: http://kumo.swcp.com/fortran/quibus_forwarn.html

    4. OpenVMS Source Code Analyzer SCA
	Available from Digital (now a division of Compaq).
	URL: http://www.digital.com

    Note: forcheck and flint90 support Fortran 90.  SCA supports
    multiple languages including Fortran 90.

Q4) Why is ftnchek not spelled ftncheck?

A4) Originally, ftnchek was named forchek, which seemed like a spiffy
    name at the time.  However, the Forcheck people (See Q3) objected
    (rightly) that the two names were sufficiently similar to cause
    confusion.  Since their program was first on the scene, mine had to
    be renamed.  So I changed "for" to "ftn," and continued leaving the
    "c" out of the name so as to increase the difference between it and
    Forcheck.

    By the way, you may pronounce the name any way you like.  Personal-
    ly, I usually pronounce it "Eff-Tee-En-Chek."


Q5) What are some sources of Fortran information?

A5) The Fortran-FAQ, posted occasionally to comp.lang.fortran, is full
    of useful information.  The Fortran Company has links to many
    sources of information on the World-Wide-Web.  Its URL is
		   http://www.fortran.com/


Q6) Is ftnchek Year-2000 compliant?

A6) Yes, ftnchek is safe for the Year 2000.  It cannot suffer from the
    Millenium Bug any more than a bald man can have dandruff.  Since
    ftnchek is a very simple application, and does not make any use of
    date or time functions, it is immune to the Y2K problem.

    Of course, ftnchek relies on the underlying operating system on
    which it runs.  If the operating system fails due to a Y2K problem,
    then ftnchek, like all other software on that system, may become
    unavailable.


Q7) Ftnchek ignores my "#include" file (or other preprocessor directives)
   and gives all sorts of bogus errors as a result.

A7) Ftnchek does not process any "#" directives except for "# line".  If
    you want to use "#include" or "#define" in your program, then you must
    run it through the preprocessor before giving it to ftnchek.  Since
    ftnchek does process the "# line" directives generated by the
    preprocessor, the error messages will have the correct file names and
    line numbers.  Consult your compiler manual for how to make it run the
    preprocessor only.

    There is a program named ftnpp for use as a preprocessor with more
    Fortran-awareness than cpp.  (The advantage of ftnpp over cpp is
    that replacements and conditional compilation extend into files
    included using the Fortran-standard INCLUDE statement.)  The ftnpp
    program is available by anonymous ftp from ftp.dsm.fordham.edu.
    At this writing, ftnpp has only been tested on a few platforms.
    Fixes for operation on other platforms are requested.

    Note that ftnchek does process INCLUDE statements, which are part
    of Fortran 90 (unlike #include).  These have a completely different
    syntax.  If you replace the "#include" statements by INCLUDE
    statements, your program will be more portable.


Q8) Ftnchek's error messages aren't interpreted properly by Emacs (or
    other development tool) to allow it to jump automatically to the
    location of the error.

A8) Use the -nonovice flag.  This changes the format of the error
    messages to one that is more similar to the messages generated by
    typical compilers.  I designed ftnchek to give friendlier output
    for novices by default, since novices by definition don't know how
    to change the defaults.  Advanced users who need this feature know
    how to read the docs to find the options they need.


Q9) Is the Mike Myers mentioned in the comment section of average.f
    the same as the Mike Myers who plays Austin Powers in the movies?

A9) No.

==================================================================

Bob Moniot
Fordham University
Fordham College at Lincoln Center
New York, NY  10023  (212) 636-6311

Email: moniot@fordham.edu
URL:   http://www.dsm.fordham.edu/~moniot/