A Fortran analyzer and programming aid
Forcheck is is the oldest and most comprehensive Fortran verifier on the
market. It performs a static analysis of Fortran programs or separate Fortran
program units. Forcheck detects more anomalies in your program than most
compilers do. Because it locates bugs as early in the development phase as
possible, it saves you time and helps you to produce more reliable code.
Forcheck is ideally suited to get a fast insight in programs
under development, in existing and in legacy
programs. It composes optimal documentation of your project with cross-reference
tables of each program unit, a survey of the complete program and a call-tree.
Forcheck can be used as a software engineering tool in the various stages of the
development process and can verify the conformance to each level of the Fortran
standard. Beside the full Fortran syntax Forcheck supports many language
extensions of all popular compilers.
Forcheck is fully configurable so you can tune the analysis and output to
your needs. You can store the global information of the analyzed program units
in libraries and reference these libraries in subsequent Forcheck runs to verify
the consistency of all references, usage of modules and common-blocks.
Forcheck is very suitable as a cross-platform development tool. It is
available on many platforms from PC to supercomputer and supports most Fortran
language extensions of all popular compilers on each platform.
Forcheck is a static analyzer for programs coded in Fortran. It
operates on the Fortran source code of the program. It analyses the
individual program units (main program, modules, external procedures,
block data's) and verifies the entire program integrity. It produces
extensive documentation. Forcheck supports Fortran 66, Fortran 77,
Fortran 90, Fortran 95, HPF and many language extensions of the various
The Windows implementation provides
an integrated development environment. In the other implementations the
filenames of files to be analyzed and options can be entered by
command-line, by question and answer, or by specifying a command-file.
The human interface of each implementation is specifically designed to
conform to the host operating system. Options can be specified to tune
the analysis and output. On-line documentation is supplied.
During program-unit analysis
Forcheck verifies the syntax and the static semantics of the program
unit as precisely as can reasonably be done during static analysis.
Optionally the syntax can be verified for conformance to the Fortran
77, Fortran 90, or Fortran 95 standard. Obsolescent Fortran 90 or
Fortran 95 syntax can be flagged. Forcheck signals unassigned
variables, data type conflicts, illegal transfer of control,
inconsistent usage of procedures, illegal usage of intrinsic
procedures, extensions of common-blocks through equivalences, and many
Optionally Forcheck lists
the source code and composes cross-reference tables for all syntactic
elements: program and procedure entries, named constants, labels,
variables, derived types, referenced procedures, common blocks, and
external input/output. For all of these items the data types and
operation codes (actions performed) are presented. Warnings are given
for illegally used, for potential unintentional usage and for unused
items, e.g. 'unreferenced', or 'variable, initialized in DATA
statement, changed'. Moreover unreferenced modules, common blocks and
include files are listed.
At wish Forcheck composes a
hierarchical call-tree of all referenced procedures for all or
specified roots. Recursive references are flagged. To keep the output
as compact and clearly strucŽtured as possible, needless repetitions of
sub-trees are suppressed. Unreferenced procedures with their references
are presented in separate trees.
Global Program Analysis
Forcheck verifies the type
of all referenced procedures and the argument lists. Besides inspection
of the number of arguments and argument data types, Forcheck informs
you if an argument is a constant, expression, or occurs more than once
in the actual argument list, while a new value is assigned to the dummy
argument in the procedure. You are also informed whether an actual
array or character datum is shorter than the dummy or if the ranks of
noncharacter arrays differ. The consistency of common blocks is
verified for data types and length. If the number, data type, data type
length, array rank or array size in the various occurrences of a common
block differ, you will be informed. When analyzing a complete program
Forcheck signals unreferŽenced and unassigned common-block elements and
public module variables.
Global Program Information
Optionally Forcheck lists
all analyzed program units and procedures with the names of the files
in which they are stored and page numbers of the source code listings.
Cross-reference tables are constructed for referenced procedures,
modules, common blocks, common-block elements, include files and
external input/output, with types and operation codes.
The analysis is concluded by a summary
of all messages presented, and a list with the number of messages
given, the number of statements, the number of program units, the
number of files, etc.
All global information, gathered
during program-unit analysis, can be stored in (indexed) library files.
If a program unit is modified, or a new program unit is constructed,
the global information of this modified, or new program unit is
replaced in, or added to a library file. The interface of the program
unit with the rest of the program will be verified using these library
files. When referring to library files, Forcheck keeps track of the
versions of the program units. Each time you store the global
program-unit information of a specific program unit in a library file
its version number is updated. The version number is displayed on the
source code listings and the program cross-references. For the program
analysis you can specify the library files or program units to be
included or referenced.
An utility is supplied to remove program
units from the library file, to compress it or to list the program
Forcheck supports most language
extensions of many compilers. By activating a specific configuration
file you can instruct Forcheck to emulate the compiler of your choice.
This is most useful for host-target program development.
The destination of Forcheck output
and the page-size can be determined by the user during command-line
entry. The actual output presented can be specified using command-line
options. Forcheck can be tuned to your specific needs by adapting the
configuration file used. The syntax extensions and intrinsic procedures
you want Forcheck to accept can be specified in this configuration
file. The severity level of each syntax message can be adjusted or a
message can be suppressed entirely. The way Forcheck numbers lines or
statements can be selected.
Forcheck is accompanied by an
installation guide and an extensive user's guide. For the PC windows
implementation the installation guide and user's guide have been
integrated. In the user's guide the operation of Forcheck is explained.
All options are documented, examples are presented. Moreover we clarify
what Forcheck exactly verifies and what its limitations are. The syntax
messages are listed and elucidated. All Fortran extensions that
Forcheck accepts are listed. A glossary and index are included. Online
help is provided.
- Performs a full static analysis of an entire
Fortran program or a separate analysis of one or more program units.
- Detects more anomalies in your program than the compiler. Because it locates
bugs as early in the development phase as possible, it saves you time and helps
you to produce more reliable code.
- Is ideally suited to get a fast insight in existing and legacy programs. It
composes optimal documentation with a call-tree
tables both on the program-unit as on the program level.
- Can be used as a software engineering tool in the various stages of the development process.
- Is suitable for small and large projects.
- Can verify the conformance to the various levels of the Fortran standard.
Moreover it bts many language extensions of all
popular compilers. FORCHECK is fully configurable so you can tune the analysis and output to
- Stores the global information of the analyzed program-units in libraries which can be referenced in subsequent FORCHECK
runs to verify the consistency of all references and common-blocks.
- Is very suitable as a cross-platform development
- Is available on many platforms from PC to
supercomputer. It bts most Fortran syntax
extensions of all popular compilers.
- Provided with an intuitive IDE for Windows.
- Is sold with full guarantee and bt.
- Is in use at many sites. Look what users say about FORCHECK !
The following compilers and most of their extensions are currently directly supported.
If the compiler you use is not in this list you can easily compose a configuration file
to enable the data types, Fortran extensions, intrinsic functions, and open/close/inquire
keywords you want FORCHECK to accept. We kindly offer help to perform this task.
- Absoft Fortran and Absoft Pro Fortran
- Apollo/Domain Fortran
- Control Data 4000 Fortran
- Convex Fortran
- Cray Fortran
- Cyber Fortran NOS/VE
- DEC PDP-11 Fortran
- Compaq Visual Fortran
- Digital Research Fortran-77
- Fujitsu Fortran
- F2c Fortran 77
- GNU Fortran
- HP Fortran for OpenVMS Alpha
- HP Fortran for Tru64 UNIX Alpha
- HP Fortran
- IBM XL Fortran for AIX
- IBM Professional Fortran
- IBM VS Fortran V2
- Intel Visual Fortran
- Lahey Fortran
- Lahey/Fujitsu Fortran
- Microsoft Fortran
- Microsoft Fortran Powerstation
- NAGWare Compiler
- NAS Fortran
- NDP Fortran
- Portland Group Fortran
- Prime Fortran
- Prospero Fortran
- Salford FTN Fortran
- Silicon Graphics
- Sun Fortran
- Unisys 1100 Fortran 77
- Watcom FORTRAN 77
The above content is Copyright © by Leiden University