<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1999-2015 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "Funding Free Software", the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below).  A copy of the license is included in the section entitled
"GNU Free Documentation License".

(a) The FSF's Front-Cover Text is:

A GNU Manual

(b) The FSF's Back-Cover Text is:

You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development. -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>The GNU Fortran Compiler: Code Gen Options</title>

<meta name="description" content="The GNU Fortran Compiler: Code Gen Options">
<meta name="keywords" content="The GNU Fortran Compiler: Code Gen Options">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Invoking-GNU-Fortran.html#Invoking-GNU-Fortran" rel="up" title="Invoking GNU Fortran">
<link href="Environment-Variables.html#Environment-Variables" rel="next" title="Environment Variables">
<link href="Runtime-Options.html#Runtime-Options" rel="prev" title="Runtime Options">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Code-Gen-Options"></a>
<div class="header">
<p>
Next: <a href="Environment-Variables.html#Environment-Variables" accesskey="n" rel="next">Environment Variables</a>, Previous: <a href="Runtime-Options.html#Runtime-Options" accesskey="p" rel="prev">Runtime Options</a>, Up: <a href="Invoking-GNU-Fortran.html#Invoking-GNU-Fortran" accesskey="u" rel="up">Invoking GNU Fortran</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Options-for-code-generation-conventions"></a>
<h3 class="section">2.9 Options for code generation conventions</h3>
<a name="index-code-generation_002c-conventions"></a>
<a name="index-options_002c-code-generation"></a>
<a name="index-options_002c-run_002dtime"></a>

<p>These machine-independent options control the interface conventions
used in code generation.
</p>
<p>Most of them have both positive and negative forms; the negative form
of <samp>-ffoo</samp> would be <samp>-fno-foo</samp>.  In the table below, only
one of the forms is listed&mdash;the one which is not the default.  You
can figure out the other form by either removing <samp>no-</samp> or adding
it.
</p>
<dl compact="compact">
<dt><code>-fno-automatic</code></dt>
<dd><a name="index-fno_002dautomatic"></a>
<a name="index-SAVE-statement"></a>
<a name="index-statement_002c-SAVE"></a>
<p>Treat each program unit (except those marked as RECURSIVE) as if the
<code>SAVE</code> statement were specified for every local variable and array
referenced in it. Does not affect common blocks. (Some Fortran compilers
provide this option under the name <samp>-static</samp> or <samp>-save</samp>.)
The default, which is <samp>-fautomatic</samp>, uses the stack for local
variables smaller than the value given by <samp>-fmax-stack-var-size</samp>.
Use the option <samp>-frecursive</samp> to use no static memory. 
</p>
</dd>
<dt><code>-ff2c</code></dt>
<dd><a name="index-ff2c"></a>
<a name="index-calling-convention"></a>
<a name="index-f2c-calling-convention"></a>
<a name="index-g77-calling-convention"></a>
<a name="index-libf2c-calling-convention"></a>
<p>Generate code designed to be compatible with code generated
by <code>g77</code> and <code>f2c</code>.
</p>
<p>The calling conventions used by <code>g77</code> (originally implemented
in <code>f2c</code>) require functions that return type
default <code>REAL</code> to actually return the C type <code>double</code>, and
functions that return type <code>COMPLEX</code> to return the values via an
extra argument in the calling sequence that points to where to
store the return value.  Under the default GNU calling conventions, such
functions simply return their results as they would in GNU
C&mdash;default <code>REAL</code> functions return the C type <code>float</code>, and
<code>COMPLEX</code> functions return the GNU C type <code>complex</code>.
Additionally, this option implies the <samp>-fsecond-underscore</samp>
option, unless <samp>-fno-second-underscore</samp> is explicitly requested.
</p>
<p>This does not affect the generation of code that interfaces with
the <code>libgfortran</code> library.
</p>
<p><em>Caution:</em> It is not a good idea to mix Fortran code compiled with
<samp>-ff2c</samp> with code compiled with the default <samp>-fno-f2c</samp>
calling conventions as, calling <code>COMPLEX</code> or default <code>REAL</code>
functions between program parts which were compiled with different
calling conventions will break at execution time.
</p>
<p><em>Caution:</em> This will break code which passes intrinsic functions
of type default <code>REAL</code> or <code>COMPLEX</code> as actual arguments, as
the library implementations use the <samp>-fno-f2c</samp> calling conventions.
</p>
</dd>
<dt><code>-fno-underscoring</code></dt>
<dd><a name="index-fno_002dunderscoring"></a>
<a name="index-underscore"></a>
<a name="index-symbol-names_002c-underscores"></a>
<a name="index-transforming-symbol-names"></a>
<a name="index-symbol-names_002c-transforming"></a>
<p>Do not transform names of entities specified in the Fortran
source file by appending underscores to them.
</p>
<p>With <samp>-funderscoring</samp> in effect, GNU Fortran appends one
underscore to external names with no underscores.  This is done to ensure
compatibility with code produced by many UNIX Fortran compilers.
</p>
<p><em>Caution</em>: The default behavior of GNU Fortran is
incompatible with <code>f2c</code> and <code>g77</code>, please use the
<samp>-ff2c</samp> option if you want object files compiled with
GNU Fortran to be compatible with object code created with these
tools.
</p>
<p>Use of <samp>-fno-underscoring</samp> is not recommended unless you are
experimenting with issues such as integration of GNU Fortran into
existing system environments (vis-&agrave;-vis existing libraries, tools,
and so on).
</p>
<p>For example, with <samp>-funderscoring</samp>, and assuming that <code>j()</code> and
<code>max_count()</code> are external functions while <code>my_var</code> and
<code>lvar</code> are local variables, a statement like
</p><div class="smallexample">
<pre class="smallexample">I = J() + MAX_COUNT (MY_VAR, LVAR)
</pre></div>
<p>is implemented as something akin to:
</p><div class="smallexample">
<pre class="smallexample">i = j_() + max_count__(&amp;my_var__, &amp;lvar);
</pre></div>

<p>With <samp>-fno-underscoring</samp>, the same statement is implemented as:
</p>
<div class="smallexample">
<pre class="smallexample">i = j() + max_count(&amp;my_var, &amp;lvar);
</pre></div>

<p>Use of <samp>-fno-underscoring</samp> allows direct specification of
user-defined names while debugging and when interfacing GNU Fortran
code with other languages.
</p>
<p>Note that just because the names match does <em>not</em> mean that the
interface implemented by GNU Fortran for an external name matches the
interface implemented by some other language for that same name.
That is, getting code produced by GNU Fortran to link to code produced
by some other compiler using this or any other method can be only a
small part of the overall solution&mdash;getting the code generated by
both compilers to agree on issues other than naming can require
significant effort, and, unlike naming disagreements, linkers normally
cannot detect disagreements in these other areas.
</p>
<p>Also, note that with <samp>-fno-underscoring</samp>, the lack of appended
underscores introduces the very real possibility that a user-defined
external name will conflict with a name in a system library, which
could make finding unresolved-reference bugs quite difficult in some
cases&mdash;they might occur at program run time, and show up only as
buggy behavior at run time.
</p>
<p>In future versions of GNU Fortran we hope to improve naming and linking
issues so that debugging always involves using the names as they appear
in the source, even if the names as seen by the linker are mangled to
prevent accidental linking between procedures with incompatible
interfaces.
</p>
</dd>
<dt><code>-fsecond-underscore</code></dt>
<dd><a name="index-fsecond_002dunderscore"></a>
<a name="index-underscore-1"></a>
<a name="index-symbol-names_002c-underscores-1"></a>
<a name="index-transforming-symbol-names-1"></a>
<a name="index-symbol-names_002c-transforming-1"></a>
<a name="index-f2c-calling-convention-1"></a>
<a name="index-g77-calling-convention-1"></a>
<a name="index-libf2c-calling-convention-1"></a>
<p>By default, GNU Fortran appends an underscore to external
names.  If this option is used GNU Fortran appends two
underscores to names with underscores and one underscore to external names
with no underscores.  GNU Fortran also appends two underscores to
internal names with underscores to avoid naming collisions with external
names.
</p>
<p>This option has no effect if <samp>-fno-underscoring</samp> is
in effect.  It is implied by the <samp>-ff2c</samp> option.
</p>
<p>Otherwise, with this option, an external name such as <code>MAX_COUNT</code>
is implemented as a reference to the link-time external symbol
<code>max_count__</code>, instead of <code>max_count_</code>.  This is required
for compatibility with <code>g77</code> and <code>f2c</code>, and is implied
by use of the <samp>-ff2c</samp> option.
</p>
</dd>
<dt><code>-fcoarray=<var>&lt;keyword&gt;</var></code></dt>
<dd><a name="index-fcoarray"></a>
<a name="index-coarrays"></a>

<dl compact="compact">
<dt>&lsquo;<samp>none</samp>&rsquo;</dt>
<dd><p>Disable coarray support; using coarray declarations and image-control
statements will produce a compile-time error. (Default)
</p>
</dd>
<dt>&lsquo;<samp>single</samp>&rsquo;</dt>
<dd><p>Single-image mode, i.e. <code>num_images()</code> is always one.
</p>
</dd>
<dt>&lsquo;<samp>lib</samp>&rsquo;</dt>
<dd><p>Library-based coarray parallelization; a suitable GNU Fortran coarray
library needs to be linked.
</p></dd>
</dl>


</dd>
<dt><code>-fcheck=<var>&lt;keyword&gt;</var></code></dt>
<dd><a name="index-fcheck"></a>
<a name="index-array_002c-bounds-checking"></a>
<a name="index-bounds-checking"></a>
<a name="index-pointer-checking"></a>
<a name="index-memory-checking"></a>
<a name="index-range-checking"></a>
<a name="index-subscript-checking"></a>
<a name="index-checking-subscripts"></a>
<a name="index-run_002dtime-checking"></a>
<a name="index-checking-array-temporaries"></a>

<p>Enable the generation of run-time checks; the argument shall be
a comma-delimited list of the following keywords.
</p>
<dl compact="compact">
<dt>&lsquo;<samp>all</samp>&rsquo;</dt>
<dd><p>Enable all run-time test of <samp>-fcheck</samp>.
</p>
</dd>
<dt>&lsquo;<samp>array-temps</samp>&rsquo;</dt>
<dd><p>Warns at run time when for passing an actual argument a temporary array
had to be generated. The information generated by this warning is
sometimes useful in optimization, in order to avoid such temporaries.
</p>
<p>Note: The warning is only printed once per location.
</p>
</dd>
<dt>&lsquo;<samp>bounds</samp>&rsquo;</dt>
<dd><p>Enable generation of run-time checks for array subscripts
and against the declared minimum and maximum values.  It also
checks array indices for assumed and deferred
shape arrays against the actual allocated bounds and ensures that all string
lengths are equal for character array constructors without an explicit
typespec.
</p>
<p>Some checks require that <samp>-fcheck=bounds</samp> is set for
the compilation of the main program.
</p>
<p>Note: In the future this may also include other forms of checking, e.g.,
checking substring references.
</p>
</dd>
<dt>&lsquo;<samp>do</samp>&rsquo;</dt>
<dd><p>Enable generation of run-time checks for invalid modification of loop
iteration variables.
</p>
</dd>
<dt>&lsquo;<samp>mem</samp>&rsquo;</dt>
<dd><p>Enable generation of run-time checks for memory allocation.
Note: This option does not affect explicit allocations using the
<code>ALLOCATE</code> statement, which will be always checked.
</p>
</dd>
<dt>&lsquo;<samp>pointer</samp>&rsquo;</dt>
<dd><p>Enable generation of run-time checks for pointers and allocatables.
</p>
</dd>
<dt>&lsquo;<samp>recursion</samp>&rsquo;</dt>
<dd><p>Enable generation of run-time checks for recursively called subroutines and
functions which are not marked as recursive. See also <samp>-frecursive</samp>.
Note: This check does not work for OpenMP programs and is disabled if used
together with <samp>-frecursive</samp> and <samp>-fopenmp</samp>.
</p></dd>
</dl>


</dd>
<dt><code>-fbounds-check</code></dt>
<dd><a name="index-fbounds_002dcheck"></a>
<p>Deprecated alias for <samp>-fcheck=bounds</samp>.
</p>
</dd>
<dt><code>-fcheck-array-temporaries</code></dt>
<dd><a name="index-fcheck_002darray_002dtemporaries"></a>
<p>Deprecated alias for <samp>-fcheck=array-temps</samp>.
</p>
</dd>
<dt><code>-fmax-array-constructor=<var>n</var></code></dt>
<dd><a name="index-fmax_002darray_002dconstructor"></a>
<p>This option can be used to increase the upper limit permitted in 
array constructors.  The code below requires this option to expand
the array at compile time.
</p>
<div class="smallexample">
<pre class="smallexample">program test
implicit none
integer j
integer, parameter :: n = 100000
integer, parameter :: i(n) = (/ (2*j, j = 1, n) /)
print '(10(I0,1X))', i
end program test
</pre></div>

<p><em>Caution:  This option can lead to long compile times and excessively
large object files.</em>
</p>
<p>The default value for <var>n</var> is 65535.
</p>

</dd>
<dt><code>-fmax-stack-var-size=<var>n</var></code></dt>
<dd><a name="index-fmax_002dstack_002dvar_002dsize"></a>
<p>This option specifies the size in bytes of the largest array that will be put
on the stack; if the size is exceeded static memory is used (except in
procedures marked as RECURSIVE). Use the option <samp>-frecursive</samp> to
allow for recursive procedures which do not have a RECURSIVE attribute or
for parallel programs. Use <samp>-fno-automatic</samp> to never use the stack.
</p>
<p>This option currently only affects local arrays declared with constant
bounds, and may not apply to all character variables.
Future versions of GNU Fortran may improve this behavior.
</p>
<p>The default value for <var>n</var> is 32768.
</p>
</dd>
<dt><code>-fstack-arrays</code></dt>
<dd><a name="index-fstack_002darrays"></a>
<p>Adding this option will make the Fortran compiler put all local arrays,
even those of unknown size onto stack memory.  If your program uses very
large local arrays it is possible that you will have to extend your runtime
limits for stack memory on some operating systems. This flag is enabled
by default at optimization level <samp>-Ofast</samp>.
</p>

</dd>
<dt><code>-fpack-derived</code></dt>
<dd><a name="index-fpack_002dderived"></a>
<a name="index-structure-packing"></a>
<p>This option tells GNU Fortran to pack derived type members as closely as
possible.  Code compiled with this option is likely to be incompatible
with code compiled without this option, and may execute slower.
</p>
</dd>
<dt><code>-frepack-arrays</code></dt>
<dd><a name="index-frepack_002darrays"></a>
<a name="index-repacking-arrays"></a>
<p>In some circumstances GNU Fortran may pass assumed shape array
sections via a descriptor describing a noncontiguous area of memory.
This option adds code to the function prologue to repack the data into
a contiguous block at runtime.
</p>
<p>This should result in faster accesses to the array.  However it can introduce
significant overhead to the function call, especially  when the passed data
is noncontiguous.
</p>
</dd>
<dt><code>-fshort-enums</code></dt>
<dd><a name="index-fshort_002denums"></a>
<p>This option is provided for interoperability with C code that was
compiled with the <samp>-fshort-enums</samp> option.  It will make
GNU Fortran choose the smallest <code>INTEGER</code> kind a given
enumerator set will fit in, and give all its enumerators this kind.
</p>
</dd>
<dt><code>-fexternal-blas</code></dt>
<dd><a name="index-fexternal_002dblas"></a>
<p>This option will make <code>gfortran</code> generate calls to BLAS functions
for some matrix operations like <code>MATMUL</code>, instead of using our own
algorithms, if the size of the matrices involved is larger than a given
limit (see <samp>-fblas-matmul-limit</samp>).  This may be profitable if an
optimized vendor BLAS library is available.  The BLAS library will have
to be specified at link time.
</p>
</dd>
<dt><code>-fblas-matmul-limit=<var>n</var></code></dt>
<dd><a name="index-fblas_002dmatmul_002dlimit"></a>
<p>Only significant when <samp>-fexternal-blas</samp> is in effect.
Matrix multiplication of matrices with size larger than (or equal to) <var>n</var>
will be performed by calls to BLAS functions, while others will be
handled by <code>gfortran</code> internal algorithms. If the matrices
involved are not square, the size comparison is performed using the
geometric mean of the dimensions of the argument and result matrices.
</p>
<p>The default value for <var>n</var> is 30.
</p>
</dd>
<dt><code>-frecursive</code></dt>
<dd><a name="index-frecursive"></a>
<p>Allow indirect recursion by forcing all local arrays to be allocated
on the stack. This flag cannot be used together with
<samp>-fmax-stack-var-size=</samp> or <samp>-fno-automatic</samp>.
</p>
</dd>
<dt><code>-finit-local-zero</code></dt>
<dt><code>-finit-integer=<var>n</var></code></dt>
<dt><code>-finit-real=<var>&lt;zero|inf|-inf|nan|snan&gt;</var></code></dt>
<dt><code>-finit-logical=<var>&lt;true|false&gt;</var></code></dt>
<dt><code>-finit-character=<var>n</var></code></dt>
<dd><a name="index-finit_002dlocal_002dzero"></a>
<a name="index-finit_002dinteger"></a>
<a name="index-finit_002dreal"></a>
<a name="index-finit_002dlogical"></a>
<a name="index-finit_002dcharacter"></a>
<p>The <samp>-finit-local-zero</samp> option instructs the compiler to
initialize local <code>INTEGER</code>, <code>REAL</code>, and <code>COMPLEX</code>
variables to zero, <code>LOGICAL</code> variables to false, and
<code>CHARACTER</code> variables to a string of null bytes.  Finer-grained
initialization options are provided by the
<samp>-finit-integer=<var>n</var></samp>,
<samp>-finit-real=<var>&lt;zero|inf|-inf|nan|snan&gt;</var></samp> (which also initializes
the real and imaginary parts of local <code>COMPLEX</code> variables),
<samp>-finit-logical=<var>&lt;true|false&gt;</var></samp>, and
<samp>-finit-character=<var>n</var></samp> (where <var>n</var> is an ASCII character
value) options.  These options do not initialize
</p><ul>
<li> allocatable arrays
</li><li> components of derived type variables
</li><li> variables that appear in an <code>EQUIVALENCE</code> statement.
</li></ul>
<p>(These limitations may be removed in future releases).
</p>
<p>Note that the <samp>-finit-real=nan</samp> option initializes <code>REAL</code>
and <code>COMPLEX</code> variables with a quiet NaN. For a signalling NaN
use <samp>-finit-real=snan</samp>; note, however, that compile-time
optimizations may convert them into quiet NaN and that trapping
needs to be enabled (e.g. via <samp>-ffpe-trap</samp>).
</p>
<p>Finally, note that enabling any of the <samp>-finit-*</samp> options will
silence warnings that would have been emitted by <samp>-Wuninitialized</samp>
for the affected local variables.
</p>
</dd>
<dt><code>-falign-commons</code></dt>
<dd><a name="index-falign_002dcommons"></a>
<a name="index-alignment-of-COMMON-blocks-1"></a>
<p>By default, <code>gfortran</code> enforces proper alignment of all variables in a
<code>COMMON</code> block by padding them as needed. On certain platforms this is mandatory,
on others it increases performance. If a <code>COMMON</code> block is not declared with
consistent data types everywhere, this padding can cause trouble, and
<samp>-fno-align-commons</samp> can be used to disable automatic alignment. The
same form of this option should be used for all files that share a <code>COMMON</code> block.
To avoid potential alignment issues in <code>COMMON</code> blocks, it is recommended to order
objects from largest to smallest.
</p>
</dd>
<dt><code>-fno-protect-parens</code></dt>
<dd><a name="index-fno_002dprotect_002dparens"></a>
<a name="index-re_002dassociation-of-parenthesized-expressions"></a>
<p>By default the parentheses in expression are honored for all optimization
levels such that the compiler does not do any re-association. Using
<samp>-fno-protect-parens</samp> allows the compiler to reorder <code>REAL</code> and
<code>COMPLEX</code> expressions to produce faster code. Note that for the re-association
optimization <samp>-fno-signed-zeros</samp> and <samp>-fno-trapping-math</samp>
need to be in effect. The parentheses protection is enabled by default, unless
<samp>-Ofast</samp> is given.
</p>
</dd>
<dt><code>-frealloc-lhs</code></dt>
<dd><a name="index-frealloc_002dlhs"></a>
<a name="index-Reallocate-the-LHS-in-assignments"></a>
<p>An allocatable left-hand side of an intrinsic assignment is automatically
(re)allocated if it is either unallocated or has a different shape. The
option is enabled by default except when <samp>-std=f95</samp> is given. See
also <samp>-Wrealloc-lhs</samp>.
</p>
</dd>
<dt><code>-faggressive-function-elimination</code></dt>
<dd><a name="index-faggressive_002dfunction_002delimination"></a>
<a name="index-Elimination-of-functions-with-identical-argument-lists"></a>
<p>Functions with identical argument lists are eliminated within
statements, regardless of whether these functions are marked
<code>PURE</code> or not. For example, in
</p><div class="smallexample">
<pre class="smallexample">  a = f(b,c) + f(b,c)
</pre></div>
<p>there will only be a single call to <code>f</code>.  This option only works
if <samp>-ffrontend-optimize</samp> is in effect.
</p>
</dd>
<dt><code>-ffrontend-optimize</code></dt>
<dd><a name="index-frontend_002doptimize"></a>
<a name="index-Front_002dend-optimization"></a>
<p>This option performs front-end optimization, based on manipulating
parts the Fortran parse tree.  Enabled by default by any <samp>-O</samp>
option.  Optimizations enabled by this option include elimination of
identical function calls within expressions, removing unnecessary
calls to <code>TRIM</code> in comparisons and assignments and replacing
<code>TRIM(a)</code> with <code>a(1:LEN_TRIM(a))</code>. 
It can be deselected by specifying <samp>-fno-frontend-optimize</samp>.
</p></dd>
</dl>

<p>See <a href="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options">Options for Code Generation Conventions</a> in <cite>Using the GNU Compiler Collection (GCC)</cite>, for information on more options
offered by the GBE
shared by <code>gfortran</code>, <code>gcc</code>, and other GNU compilers.
</p>

<hr>
<div class="header">
<p>
Next: <a href="Environment-Variables.html#Environment-Variables" accesskey="n" rel="next">Environment Variables</a>, Previous: <a href="Runtime-Options.html#Runtime-Options" accesskey="p" rel="prev">Runtime Options</a>, Up: <a href="Invoking-GNU-Fortran.html#Invoking-GNU-Fortran" accesskey="u" rel="up">Invoking GNU Fortran</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>
