The article by Appleyard [1] on comparing
Fortran compilers discusses diagnostic capabilities of compilers and
how they can be used to detect different possible errors.

The most recent Fortran 95 compiler from NAG has an option to allow
all unsaved local real and complex variables and `INTENT(OUT)`
dummy arguments to be initialized to signalling NaN, which should aid
in catching errors caused by the use of uninitialized variables -
the related problem of not declared variables has already been solved in
Fortran 90 with the `IMPLICIT NONE` statement. Similar features
are often available in other systems.

Since Fortran continues to be the primary language for numerical scientific
programming, some existing tools are discussed below.

#### Interesting tools for Fortran:

- NAGWare Fortran Tools
could be used in a range of ways, for Quality Assurance,
Standardization, Enforcing coding standards, Porting to new
platforms, and for Converting from fixed format Fortran 77 to free
format Fortran 95.

`http://www.nag.co.uk/nagware/Nq.asp`
- "Cleanscape FortranLint", a source code analyzer for Fortran 77/90/95.

`http://www.cleanscape.net/`
- FTNCHECK by Robert Moniot and provided free. It detects unused,
undeclared, and uninitialized variables.

`http://www.netlib.org/fortran/ftnchek.tgz`
- FOR_STRUCT restructures Fortran into clean, maintainable code.

`http://www.cobalt-blue.com`
- plusFORT contains tools for code restructuring, global static analysis,
and dynamic analysis, as well as coverage analysis of the testing process.

`http://www.polyhedron.co.uk/pf/plusfort.html`
- The Fortran Company

`http://www.fortran.com/fortran/`
- Mathematical software developed at the Jet Propulsion Laboratory

`http://www.mathalacarte.com/`

#### Conversion from Fortran 77 to Fortran 90/95:

1. *John Appleyard*, Comparing Fortran Compilers,
Fortran Forum, Volume 20, Number 1 (April 2001), pp. 6 - 10. See also
the Fortran pages of

`http://www.polyhedron.com`

IFIP WG 2.5 Project 68 on "Accuracy and Reliability
in Scientific Computing".

Last modified: December 4, 2018