Table of Contents
Previous: -pointersize
Option: portability
-portability=list
ftnchek will give warnings for a variety of non-portable usages. Examples
include the use of tabs except in comments or inside strings, the use
of Hollerith constants, and the equivalencing of variables of different
data types. This option does not produce warnings for supported extensions
to the Fortran 77 Standard, which may also cause portability problems.
To catch those, use the -f77 setting. By default, all warnings are turned
off.
This setting provides detailed control over the warnings about possible
portability problems. The list consists of keywords separated by commas
or colons. There are three special keywords: all to turn on all the warnings
about nonportable usages, none to turn them all off, and help to print
the list of all the keywords with a brief explanation of each. If list
is omitted, -portability is equivalent to -portability=all , and -noportability
is equivalent to -portability=none . The warning keywords with their meanings
are as follows:
- backslash:
- Backslash character in strings. Since some
compilers treat the backslash as an escape character, its presence can
cause problems even though it is used in a standard-conforming way.
- common-alignment:
- COMMON block variables not in descending order of storage size. Some
compilers require this ordering because of storage alignment requirements.
- hollerith:
- Hollerith constants (other than within FORMAT specifications).
The Hollerith data type is a feature of Fortran IV that has been deleted
in the Fortran 77 standard. It is superseded by the character data type.
Storing Hollerith data in variables of a numeric or logical data type
is nonportable due to differing word sizes.
- long-string:
- String constants,
variables, or expressions over 255 chars long.
- mixed-equivalence:
- Variables
of different data types equivalenced.
- mixed-size:
- Variables declared with
default precision used with variables given explicit precision, in expressions,
assignments, or as arguments. For example, if a variable declared as REAL*8
is treated as equivalent to DOUBLE PRECISION .
- real-do:
- Non-integer DO
loop index and bounds. These can cause a program's results to depend on
the hardware characteristics of the particular computer used.
- param-implicit-type:
- Implicit typing of a parameter by the data type of the value assigned,
if it differs from the default type. This warning can only occur if implicit
parameter typing has been turned on by the -source=8 option. If that option
has been enabled, then any instances where it occurs and where the implicit
type is different from the default type based on the first letter of the
parameter name, then it will be warned about under this option. Implicit
parameter typing can change the semantics of statements where the parameter
is used, causing portability problems.
- tab:
- Tabs in source code. Tabs
are interpreted differently by different compilers. This warning will
be given only once, at the end of the file.
See also: -f77 , -f90 , -f95 ,
-pretty , -wordsize .
Next: -pretty