The following options control the dialect of Fortran that the compiler accepts:
This option controls whether certain
Fortran 90 constructs are recognized.
(Other Fortran 90 constructs
might or might not be recognized depending on other options such as
-ff90-intrinsics-enable, and the
current level of support for Fortran 90.)
See Fortran 90, for more information.
The default is
-fvxt specifies that the VXT Fortran interpretations
for those constructs are to be chosen.
See VXT Fortran, for more information.
$as a valid character in a symbol name.
\is not to be specially interpreted in character and Hollerith constants a la C and many UNIX Fortran compilers.
For example, with
-fbackslash in effect,
three characters, with the second one being newline.
-fno-backslash, it specifies four characters,
g77 implements a fairly general form of backslash
processing that is incompatible with the narrower forms supported
by some other compilers.
'A\003B' is a three-character string in
whereas other compilers that support backslash might not support
the three-octal-digit form, and thus treat that string as longer
than three characters.
See Backslash in Constants, for
information on why
-fbackslash is the default
See Ugly Implicit Argument Conversion, for more information.
ASSIGN 10 TO I) or used to hold numeric data (as in
I = 3).
See Ugly Assigned Labels, for more information.
1is really an assumed-size array, as if
*had been specified for the final dimension instead of
DIMENSION X(1) is treated as if it
See Ugly Assumed-Size Arrays, for more information.
CALL FOO(,) is treated as
CALL FOO(%VAL(0), %VAL(0)).
That is, two null arguments are specified
by the procedure call when
-fugly-comma is in force.
F = FUNC() is treated as
F = FUNC(%VAL(0)).
The default behavior,
-fno-ugly-comma, is to ignore
a single trailing comma in an argument list.
So, by default,
CALL FOO(X,) is treated
exactly the same as
See Ugly Null Arguments, for more information.
)when expr is a
COMPLEXtype other than
COMPLEX(KIND=1)--usually this is used to permit
DOUBLE COMPLEX) operands.
-ff90 option controls the interpretation
of this construct.
See Ugly Complex Part Extraction, for more information.
DATAstatements), and use of character constants to initialize numeric types and vice versa.
DATA I/'F'/, CHRVAR/65/, J/4HABCD/ is disallowed by
See Ugly Conversion of Initializers, for more information.
LOGICALvariables and expressions as potential stand-ins for each other.
For example, automatic conversion between
LOGICAL is enabled, for many contexts, via this option.
See Ugly Integer Conversions, for more information.
DOloops are to be executed at least once each time they are reached.
ANSI FORTRAN 77 and more recent versions of the Fortran standard
specify that the body of an iterative
DO loop is not executed
if the number of iterations calculated from the parameters of the
loop is less than 1.
DO 10 I = 1, 0.)
Such a loop is called a zero-trip loop.
Prior to ANSI FORTRAN 77, many compilers implemented
such that the body of a loop would be executed at least once, even
if the iteration count was zero.
Fortran code written assuming this behavior is said to require
For example, some code written to the FORTRAN 66 standard
expects this behavior from its
DO loops, although that
standard did not specify this behavior.
-fonetrip option specifies that the source file(s) being
compiled require one-trip loops.
This option affects only those loops specified by the (iterative)
statement and by implied-
DO lists in I/O statements.
Loops specified by implied-
DO lists in
specification (non-executable) statements are not affected.
Z'ABCD', are typeless instead of
You can test for yourself whether a particular compiler treats
the prefix form as
INTEGER(KIND=1) or typeless by running the
EQUIVALENCE (I, R) R = Z'ABCD1234' J = Z'ABCD1234' IF (J .EQ. I) PRINT *, 'Prefix form is TYPELESS' IF (J .NE. I) PRINT *, 'Prefix form is INTEGER' END
Reports indicate that many compilers process this form as
INTEGER(KIND=1), though a few as typeless, and at least one
based on a command-line option specifying some kind of
-fintrin-case-loweris the default.
-fmatch-case-loweris the default.
-fsource-case-loweris the default.
-fsymbol-case-anyis the default.
-fintrin-case-upper -fmatch-case-upper -fsource-case-preserve -fsymbol-case-upper. (Requires all pertinent source to be in uppercase.)
-fintrin-case-lower -fmatch-case-lower -fsource-case-preserve -fsymbol-case-lower. (Requires all pertinent source to be in lowercase.)
-fintrin-case-initcap -fmatch-case-initcap -fsource-case-preserve -fsymbol-case-initcap. (Requires all pertinent source to be in initial capitals, as in
-fintrin-case-any -fmatch-case-any -fsource-case-upper -fsymbol-case-any. (Maps all pertinent source to uppercase.)
-fintrin-case-any -fmatch-case-any -fsource-case-lower -fsymbol-case-any. (Maps all pertinent source to lowercase.)
-fintrin-case-any -fmatch-case-any -fsource-case-preserve -fsymbol-case-any. (Preserves all case in user-defined symbols, while allowing any-case matching of intrinsics and keywords. For example,
call Foo(i,I)would pass two different variables named
Ito a procedure named
-fbadu77-intrinsics-enableis the default. See Intrinsic Groups.
-ff2c-intrinsics-enableis the default. See Intrinsic Groups.
-ff90-intrinsics-enableis the default. See Intrinsic Groups.
-fgnu-intrinsics-enableis the default. See Intrinsic Groups.
-fmil-intrinsics-enableis the default. See Intrinsic Groups.
-funix-intrinsics-enableis the default. See Intrinsic Groups.
-fvxt-intrinsics-enableis the default. See Intrinsic Groups.
Popular values for n include 72 (the
standard and the default), 80 (card image), and 132 (corresponds
to "extended-source" options in some popular compilers).
n may be
none, meaning that the entire line is meaningful
and that continued character constants never have implicit spaces appended
to them to fill out the line.
-ffixed-line-length-0 means the same thing as
See Source Form, for more information.