Next: Warning Options, Previous: Shorthand Options, Up: Invoking G77
The following options control the dialect of Fortran that the compiler accepts:
-ffree-form
-fno-fixed-form
-ff90
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 -fvxt, -ff90-intrinsics-enable, and the current level of support for Fortran 90.)
See Fortran 90, for more information.
-fvxt
The default is -fno-vxt. -fvxt specifies that the VXT Fortran interpretations for those constructs are to be chosen.
See VXT Fortran, for more information.
-fdollar-ok
-fno-backslash
For example, with -fbackslash in effect, `A\nB' specifies three characters, with the second one being newline. With -fno-backslash, it specifies four characters, `A', `\', `n', and `B'.
Note that g77 implements a fairly general form of backslash processing that is incompatible with the narrower forms supported by some other compilers. For example, `'A\003B'' is a three-character string in g77 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 instead of -fno-backslash.
-fno-ugly-args
See Ugly Implicit Argument Conversion, for more information.
-fugly-assign
See Ugly Assigned Labels, for more information.
-fugly-assumed
For example, `DIMENSION X(1)' is treated as if it had read `DIMENSION X(*)'.
See Ugly Assumed-Size Arrays, for more information.
-fugly-comma
For example, `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. And `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 `CALL FOO(X)'.
See Ugly Null Arguments, for more information.
-fugly-complex
COMPLEX
type other than COMPLEX(KIND=1)
—usually
this is used to permit COMPLEX(KIND=2)
(DOUBLE COMPLEX
) operands.
The -ff90 option controls the interpretation of this construct.
See Ugly Complex Part Extraction, for more information.
-fno-ugly-init
PARAMETER
and DATA
statements), and
use of character constants to
initialize numeric types and vice versa.
For example, `DATA I/'F'/, CHRVAR/65/, J/4HABCD/' is disallowed by -fno-ugly-init.
See Ugly Conversion of Initializers, for more information.
-fugly-logint
INTEGER
and LOGICAL
variables and
expressions as potential stand-ins for each other.
For example, automatic conversion between INTEGER
and
LOGICAL
is enabled, for many contexts, via this option.
See Ugly Integer Conversions, for more information.
-fonetrip
DO
loops 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.
(For example, `DO 10 I = 1, 0'.)
Such a loop is called a zero-trip loop.
Prior to ANSI FORTRAN 77, many compilers implemented DO
loops
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
one-trip loops.
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.
The -fonetrip option specifies that the source file(s) being compiled require one-trip loops.
This option affects only those loops specified by the (iterative) DO
statement and by implied-DO
lists in I/O statements.
Loops specified by implied-DO
lists in DATA
and
specification (non-executable) statements are not affected.
-ftypeless-boz
INTEGER(KIND=1)
.
You can test for yourself whether a particular compiler treats
the prefix form as INTEGER(KIND=1)
or typeless by running the
following program:
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
compatibility.
-fintrin-case-initcap
-fintrin-case-upper
-fintrin-case-lower
-fintrin-case-any
-fmatch-case-initcap
-fmatch-case-upper
-fmatch-case-lower
-fmatch-case-any
-fsource-case-upper
-fsource-case-lower
-fsource-case-preserve
-fsymbol-case-initcap
-fsymbol-case-upper
-fsymbol-case-lower
-fsymbol-case-any
-fcase-strict-upper
-fcase-strict-lower
-fcase-initcap
-fcase-upper
-fcase-lower
-fcase-preserve
-fbadu77-intrinsics-delete
-fbadu77-intrinsics-hide
-fbadu77-intrinsics-disable
-fbadu77-intrinsics-enable
-ff2c-intrinsics-delete
-ff2c-intrinsics-hide
-ff2c-intrinsics-disable
-ff2c-intrinsics-enable
-ff90-intrinsics-delete
-ff90-intrinsics-hide
-ff90-intrinsics-disable
-ff90-intrinsics-enable
-fgnu-intrinsics-delete
-fgnu-intrinsics-hide
-fgnu-intrinsics-disable
-fgnu-intrinsics-enable
-fmil-intrinsics-delete
-fmil-intrinsics-hide
-fmil-intrinsics-disable
-fmil-intrinsics-enable
-funix-intrinsics-delete
-funix-intrinsics-hide
-funix-intrinsics-disable
-funix-intrinsics-enable
-fvxt-intrinsics-delete
-fvxt-intrinsics-hide
-fvxt-intrinsics-disable
-fvxt-intrinsics-enable
-ffixed-line-length-
nPopular 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 -ffixed-line-length-none.
See Source Form, for more information.