| @c Copyright (C) 2004,2005 |
| @c Free Software Foundation, Inc. |
| @c This is part of the GFORTRAN manual. |
| @c For copying conditions, see the file gfortran.texi. |
| |
| @ignore |
| @c man begin COPYRIGHT |
| Copyright @copyright{} 2004 |
| 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.2 or |
| any later version published by the Free Software Foundation; with the |
| Invariant Sections being ``GNU General Public License'' and ``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 gfdl(7) man page. |
| |
| (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. |
| @c man end |
| @c Set file name and title for the man page. |
| @setfilename gfortran |
| @settitle GNU Fortran 95 compiler. |
| @c man begin SYNOPSIS |
| gfortran [@option{-c}|@option{-S}|@option{-E}] |
| [@option{-g}] [@option{-pg}] [@option{-O}@var{level}] |
| [@option{-W}@var{warn}@dots{}] [@option{-pedantic}] |
| [@option{-I}@var{dir}@dots{}] [@option{-L}@var{dir}@dots{}] |
| [@option{-D}@var{macro}[=@var{defn}]@dots{}] [@option{-U}@var{macro}] |
| [@option{-f}@var{option}@dots{}] |
| [@option{-m}@var{machine-option}@dots{}] |
| [@option{-o} @var{outfile}] @var{infile}@dots{} |
| |
| Only the most useful options are listed here; see below for the |
| remainder. |
| @c man end |
| @c man begin SEEALSO |
| gpl(7), gfdl(7), fsf-funding(7), |
| cpp(1), gcov(1), gcc(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1) |
| and the Info entries for @file{gcc}, @file{cpp}, @file{gfortran}, @file{as}, |
| @file{ld}, @file{binutils} and @file{gdb}. |
| @c man end |
| @c man begin BUGS |
| For instructions on reporting bugs, see |
| @w{@uref{http://gcc.gnu.org/bugs.html}}. |
| @c man end |
| @c man begin AUTHOR |
| See the Info entry for @command{gfortran} for contributors to GCC and |
| GFORTRAN@. |
| @c man end |
| @end ignore |
| |
| @node Invoking GFORTRAN |
| @chapter GNU Fortran 95 Command Options |
| @cindex GNU Fortran 95 command options |
| @cindex command options |
| @cindex options, GNU Fortran 95 command |
| |
| @c man begin DESCRIPTION |
| |
| The @command{gfortran} command supports all the options supported by the |
| @command{gcc} command. Only options specific to gfortran are documented here. |
| |
| @emph{Gfortran is not yet a fully conformant Fortran 95 compiler}. |
| It can generate code for most constructs and expressions, |
| but work remains to be done. In particular, there are known |
| deficiencies with ENTRY, NAMELIST, and sophisticated use of |
| MODULES, POINTERS and DERIVED TYPES. For those whose Fortran |
| codes conform to either the Fortran 77 standard or the |
| GNU Fortran 77 language, we recommend to use @command{g77} |
| from GCC 3.4. We recommend that distributors continue to provide |
| packages of g77-3.4 until we announce that @command{gfortran} |
| fully replaces @command{g77}. |
| The gfortran developers welcome any feedback on user experience |
| with @command{gfortran} at @email{fortran@@gcc.gnu.org}. |
| |
| @xref{Invoking GCC,,GCC Command Options,gcc,Using the GNU Compiler |
| Collection (GCC)}, for information |
| on the non-Fortran-specific aspects of the @command{gcc} command (and, |
| therefore, the @command{gfortran} command). |
| |
| @cindex options, negative forms |
| @cindex negative forms of options |
| All @command{gcc} and @command{gfortran} options |
| are accepted both by @command{gfortran} and by @command{gcc} |
| (as well as any other drivers built at the same time, |
| such as @command{g++}), |
| since adding @command{gfortran} to the @command{gcc} distribution |
| enables acceptance of @command{gfortran} options |
| by all of the relevant drivers. |
| |
| In some cases, options have positive and negative forms; |
| the negative form of @option{-ffoo} would be @option{-fno-foo}. |
| This manual documents only one of these two forms, whichever |
| one is not the default. |
| @c man end |
| |
| @menu |
| * Option Summary:: Brief list of all @command{gfortran} options, |
| without explanations. |
| * Fortran Dialect Options:: Controlling the variant of Fortran language |
| compiled. |
| * Warning Options:: How picky should the compiler be? |
| * Debugging Options:: Symbol tables, measurements, and debugging dumps. |
| * Directory Options:: Where to find module files |
| * Code Gen Options:: Specifying conventions for function calls, data layout |
| and register usage. |
| * Environment Variables:: Env vars that affect GNU Fortran. |
| @end menu |
| |
| @node Option Summary |
| @section Option Summary |
| |
| @c man begin OPTIONS |
| |
| Here is a summary of all the options specific to GNU Fortran, grouped |
| by type. Explanations are in the following sections. |
| |
| @table @emph |
| @item Fortran Language Options |
| @xref{Fortran Dialect Options,,Options Controlling Fortran Dialect}. |
| @gccoptlist{ |
| -ffree-form -fno-fixed-form @gol |
| -fdollar-ok -fimplicit-none -fmax-identifier-length @gol |
| -std=@var{std} |
| -ffixed-line-length-@var{n} -ffixed-line-length-none @gol |
| -fdefault-double-8 -fdefault-integer-8 -fdefault-real-8 } |
| |
| @item Warning Options |
| @xref{Warning Options,,Options to Request or Suppress Warnings}. |
| @gccoptlist{ |
| -fsyntax-only -pedantic -pedantic-errors @gol |
| -w -Wall -Waliasing -Wconversion @gol |
| -Wimplicit-interface -Wnonstd-intrinsics -Wsurprising -Wunderflow @gol |
| -Wunused-labels -Wline-truncation @gol |
| -Werror -W} |
| |
| @item Debugging Options |
| @xref{Debugging Options,,Options for Debugging Your Program or GCC}. |
| @gccoptlist{ |
| -fdump-parse-tree} |
| |
| @item Directory Options |
| @xref{Directory Options,,Options for Directory Search}. |
| @gccoptlist{ |
| -I@var{dir} -M@var{dir}} |
| |
| @item Code Generation Options |
| @xref{Code Gen Options,,Options for Code Generation Conventions}. |
| @gccoptlist{ |
| -ff2c -fno-underscoring -fsecond-underscore @gol |
| -fbounds-check -fmax-stack-var-size=@var{n} @gol |
| -fpackderived -frepack-arrays} |
| @end table |
| |
| @menu |
| * Fortran Dialect Options:: Controlling the variant of Fortran language |
| compiled. |
| * Warning Options:: How picky should the compiler be? |
| * Debugging Options:: Symbol tables, measurements, and debugging dumps. |
| * Directory Options:: Where to find module files |
| * Code Gen Options:: Specifying conventions for function calls, data layout |
| and register usage. |
| @end menu |
| |
| @node Fortran Dialect Options |
| @section Options Controlling Fortran Dialect |
| @cindex dialect options |
| @cindex language, dialect options |
| @cindex options, dialect |
| |
| The following options control the dialect of Fortran |
| that the compiler accepts: |
| |
| @table @gcctabopt |
| @cindex -ffree-form option |
| @cindex options, -ffree-form |
| @cindex -fno-fixed-form option |
| @cindex options, -fno-fixed-form |
| @cindex source file format |
| @cindex free form |
| @cindex fixed form |
| @cindex Source Form |
| @cindex Fortran 90, features |
| @item -ffree-form |
| @item -ffixed-form |
| Specify the layout used by the the source file. The free form layout |
| was introduced in Fortran 90. Fixed form was traditionally used in |
| older Fortran programs. |
| |
| @cindex option, -fdefault-double-8 |
| @cindex -fdefault-double-8, option |
| @item -fdefault-double-8 |
| Set the "DOUBLE PRECISION" type to an 8 byte wide. |
| |
| @cindex option, -fdefault-integer-8 |
| @cindex -fdefault-integer-8, option |
| @item -fdefault-integer-8 |
| Set the default integer and logical types to an 8 byte wide type. |
| Do nothing if this is already the default. |
| |
| @cindex option, -fdefault-real-8 |
| @cindex -fdefault-real-8, option |
| @item -fdefault-real-8 |
| Set the default real type to an 8 byte wide type. |
| Do nothing if this is already the default. |
| |
| @cindex -fdollar-ok option |
| @cindex options, -fdollar-ok |
| @item -fdollar-ok |
| @cindex dollar sign |
| @cindex symbol names |
| @cindex character set |
| Allow @samp{$} as a valid character in a symbol name. |
| |
| @cindex -fno-backslash option |
| @cindex options, -fno-backslash |
| @item -fno-backslash |
| @cindex backslash |
| @cindex escape characters |
| @item |
| Compile switch to change the interpretation of a backslash from |
| ``C''-style escape characters to a single backslash character. |
| |
| @cindex -ffixed-line-length-@var{n} option |
| @cindex options, -ffixed-line-length-@var{n} |
| @item -ffixed-line-length-@var{n} |
| @cindex source file format |
| @cindex lines, length |
| @cindex length of source lines |
| @cindex fixed form |
| @cindex limits, lengths of source lines |
| Set column after which characters are ignored in typical fixed-form |
| lines in the source file, and through which spaces are assumed (as |
| if padded to that length) after the ends of short fixed-form lines. |
| |
| @cindex card image |
| @cindex extended-source option |
| Popular values for @var{n} include 72 (the |
| standard and the default), 80 (card image), and 132 (corresponds |
| to ``extended-source'' options in some popular compilers). |
| @var{n} may be @samp{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. |
| @option{-ffixed-line-length-0} means the same thing as |
| @option{-ffixed-line-length-none}. |
| |
| @cindex -fmax-identifier-length=@var{n} option |
| @cindex option -fmax-identifier-length=@var{n} |
| @item -fmax-identifier-length=@var{n} |
| Specify the maximum allowed identifier length. Typical values are |
| 31 (Fortran 95) and 63 (Fortran 200x). |
| |
| @cindex -fimplicit-none option |
| @cindex options, -fimplicit-none |
| @item -fimplicit-none |
| Specify that no implicit typing is allowed, unless overridden by explicit |
| @samp{IMPLICIT} statements. This is the equivalent of adding |
| @samp{implicit none} to the start of every procedure. |
| |
| @cindex -std=@var{std} option |
| @cindex option, -std=@var{std} |
| @item -std=@var{std} |
| Conform to the specified standard. Allowed values for @var{std} are |
| @samp{gnu} and @samp{f95}. |
| |
| @end table |
| |
| @node Warning Options |
| @section Options to Request or Suppress Warnings |
| @cindex options, warnings |
| @cindex warnings, suppressing |
| @cindex messages, warning |
| @cindex suppressing warnings |
| |
| Warnings are diagnostic messages that report constructions which |
| are not inherently erroneous but which are risky or suggest there |
| might have been an error. |
| |
| You can request many specific warnings with options beginning @option{-W}, |
| for example @option{-Wimplicit} to request warnings on implicit |
| declarations. Each of these specific warning options also has a |
| negative form beginning @option{-Wno-} to turn off warnings; |
| for example, @option{-Wno-implicit}. This manual lists only one of the |
| two forms, whichever is not the default. |
| |
| These options control the amount and kinds of warnings produced by GNU |
| Fortran: |
| |
| @table @gcctabopt |
| @cindex syntax checking |
| @cindex -fsyntax-only option |
| @cindex options, -fsyntax-only |
| @item -fsyntax-only |
| Check the code for syntax errors, but don't do anything beyond that. |
| |
| @cindex -pedantic option |
| @cindex options, -pedantic |
| @item -pedantic |
| Issue warnings for uses of extensions to FORTRAN 95. |
| @option{-pedantic} also applies to C-language constructs where they |
| occur in GNU Fortran source files, such as use of @samp{\e} in a |
| character constant within a directive like @samp{#include}. |
| |
| Valid FORTRAN 95 programs should compile properly with or without |
| this option. |
| However, without this option, certain GNU extensions and traditional |
| Fortran features are supported as well. |
| With this option, many of them are rejected. |
| |
| Some users try to use @option{-pedantic} to check programs for conformance. |
| They soon find that it does not do quite what they want---it finds some |
| nonstandard practices, but not all. |
| However, improvements to @command{gfortran} in this area are welcome. |
| |
| This should be used in conjunction with -std=@var{std}. |
| |
| @cindex -pedantic-errors option |
| @cindex options, -pedantic-errors |
| @item -pedantic-errors |
| Like @option{-pedantic}, except that errors are produced rather than |
| warnings. |
| |
| @cindex -w option |
| @cindex options, -w |
| @item -w |
| Inhibit all warning messages. |
| |
| |
| @cindex -Wall option |
| @cindex options, -Wall |
| @item -Wall |
| @cindex all warnings |
| @cindex warnings, all |
| Enables commonly used warning options that which pertain to usage that |
| we recommend avoiding and that we believe is easy to avoid. |
| This currently includes @option{-Wunused-labels}, @option{-Waliasing}, |
| @option{-Wsurprising}, @option{-Wnonstd-intrinsic} and |
| @option{-Wline-truncation}. |
| |
| |
| @cindex -Waliasing option |
| @cindex options, -Waliasing |
| @item -Waliasing |
| @cindex aliasing |
| Warn about possible aliasing of dummy arguments. The following example |
| will trigger the warning as it would be illegal to @code{bar} to |
| modify either parameter. |
| @smallexample |
| INTEGER A |
| CALL BAR(A,A) |
| @end smallexample |
| |
| |
| @cindex -Wconversion option |
| @cindex options, -Wconversion |
| @item -Wconversion |
| @cindex conversion |
| Warn about implicit conversions between different types. |
| |
| |
| @cindex -Wimplicit-interface option |
| @cindex options, -Wimplicit-interface |
| @item -Wimplicit-interface |
| Warn about when procedure are called without an explicit interface. |
| Note this only checks that an explicit interface is present. It does not |
| check that the declared interfaces are consistent across program units. |
| |
| |
| @cindex -Wnonstd-intrinsic option |
| @cindex options, -Wnonstd-intrinsic |
| @item -Wnonstd-intrinsic |
| Warn if the user tries to use an intrinsic that does not belong to the |
| standard the user has chosen via the -std option. |
| |
| |
| @cindex -Wsurprising |
| @cindex options, -Wsurprising |
| @item -Wsurprising |
| @cindex Suspicious |
| Produce a warning when ``suspicious'' code constructs are encountered. |
| While technically legal these usually indicate that an error has been made. |
| |
| This currently produces a warning under the following circumstances: |
| |
| @itemize @bullet |
| @item |
| An INTEGER SELECT construct has a CASE that can never be matched as its |
| lower value is greater than its upper value. |
| |
| @item |
| A LOGICAL SELECT construct has three CASE statements. |
| @end itemize |
| |
| @cindex -Wunderflow |
| @cindex options, -Wunderflow |
| @item -Wunderflow |
| @cindex UNDERFLOW |
| Produce a warning when numerical constant expressions are |
| encountered, which yield an UNDERFLOW during compilation. |
| |
| |
| @cindex -Wunused-labels option |
| @cindex options, -Wunused-labels |
| @item -Wunused-labels |
| @cindex unused labels |
| @cindex labels, unused |
| Warn whenever a label is defined but never referenced. |
| |
| |
| @cindex -Werror |
| @cindex options, -Werror |
| @item -Werror |
| Turns all warnings into errors. |
| |
| |
| @cindex -W option |
| @cindex options, -W |
| @item -W |
| @cindex extra warnings |
| @cindex warnings, extra |
| Turns on ``extra warnings'' and, if optimization is specified |
| via @option{-O}, the @option{-Wuninitialized} option. |
| (This might change in future versions of @command{gfortran} |
| @end table |
| |
| @xref{Warning Options,,Options to Request or Suppress Warnings, |
| gcc,Using the GNU Compiler Collection (GCC)}, for information on more |
| options offered by the GBE shared by @command{gfortran}, @command{gcc} and |
| other GNU compilers. |
| |
| Some of these have no effect when compiling programs written in Fortran. |
| |
| @node Debugging Options |
| @section Options for Debugging Your Program or GNU Fortran |
| @cindex options, debugging |
| @cindex debugging information options |
| |
| GNU Fortran has various special options that are used for debugging |
| either your program or @command{gfortran} |
| |
| @table @gcctabopt |
| @cindex -fdump-parse-tree option |
| @cindex option, -fdump-parse-tree |
| @item -fdump-parse-tree |
| Output the internal parse tree before starting code generation. Only |
| really useful for debugging gfortran itself. |
| @end table |
| |
| @xref{Debugging Options,,Options for Debugging Your Program or GCC, |
| gcc,Using the GNU Compiler Collection (GCC)}, for more information on |
| debugging options. |
| |
| @node Directory Options |
| @section Options for Directory Search |
| @cindex directory, options |
| @cindex options, directory search |
| @cindex search path |
| |
| @cindex INCLUDE directive |
| @cindex directive, INCLUDE |
| There options affect how affect how @command{gfortran} searches |
| for files specified via the @code{INCLUDE} directive, and where it searches |
| for previously compiled modules. |
| |
| It also affects the search paths used by @command{cpp} when used to preprocess |
| Fortran source. |
| |
| @table @gcctabopt |
| @cindex -Idir option |
| @cindex options, -Idir |
| @item -I@var{dir} |
| @cindex directory, search paths for inclusion |
| @cindex inclusion, directory search paths for |
| @cindex search paths, for included files |
| @cindex paths, search |
| @cindex module search path |
| These affect interpretation of the @code{INCLUDE} directive |
| (as well as of the @code{#include} directive of the @command{cpp} |
| preprocessor). |
| |
| Also note that the general behavior of @option{-I} and |
| @code{INCLUDE} is pretty much the same as of @option{-I} with |
| @code{#include} in the @command{cpp} preprocessor, with regard to |
| looking for @file{header.gcc} files and other such things. |
| |
| This path is also used to search for @samp{.mod} files when previously |
| compiled modules are required by a @code{USE} statement. |
| |
| @xref{Directory Options,,Options for Directory Search, |
| gcc,Using the GNU Compiler Collection (GCC)}, for information on the |
| @option{-I} option. |
| |
| @cindex -Mdir option |
| @cindex option, -Mdir |
| @item -M@var{dir} |
| @item -J@var{dir} |
| This option specifies where to put @samp{.mod} files for compiled modules. |
| It is also added to the list of directories to searched by an @code{USE} |
| statement. |
| |
| The default is the current directory. |
| |
| @option{-J} is an alias for @option{-M} to avoid conflicts with existing |
| GCC options. |
| @end table |
| |
| @node Code Gen Options |
| @section Options for Code Generation Conventions |
| @cindex code generation, conventions |
| @cindex options, code generation |
| @cindex run-time, options |
| |
| These machine-independent options control the interface conventions |
| used in code generation. |
| |
| Most of them have both positive and negative forms; the negative form |
| of @option{-ffoo} would be @option{-fno-foo}. In the table below, only |
| one of the forms is listed---the one which is not the default. You |
| can figure out the other form by either removing @option{no-} or adding |
| it. |
| |
| |
| @table @gcctabopt |
| @cindex @option{-ff2c} option |
| @cindex options, @option{-ff2c} |
| @item -ff2c |
| @cindex calling convention |
| @cindex @command{f2c} calling convention |
| @cindex @command{g77} calling convention |
| @cindex libf2c calling convention |
| Generate code designed to be compatible with code generated |
| by @command{g77} and @command{f2c}. |
| |
| The calling conventions used by @command{g77} (originally implemented |
| in @command{f2c}) require functions that return type |
| default @code{REAL} to actually return the C type @code{double}, and |
| functions that return type @code{COMPLEX} 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 -- default @code{REAL} functions return the C type @code{float}, and |
| @code{COMPLEX} functions return the GNU C type @code{complex}. |
| Additionally, this option implies the @option{-fsecond-underscore} |
| option, unless @option{-fno-second-underscore} is explicitly requested. |
| |
| This does not affect the generation of code that interfaces with |
| the @command{libgfortran} library. |
| |
| @emph{Caution:} It is not a good idea to mix Fortran code compiled |
| with @code{-ff2c} with code compiled with the default @code{-fno-f2c} |
| calling conventions as, calling @code{COMPLEX} or default @code{REAL} |
| functions between program parts which were compiled with different |
| calling conventions will break at execution time. |
| |
| @emph{Caution:} This will break code which passes intrinsic functions |
| of type default @code{REAL} or @code{COMPLEX} as actual arguments, as |
| the library implementations use the @command{-fno-f2c} calling conventions. |
| |
| @cindex @option{-fno-underscoring option} |
| @cindex options, @option{-fno-underscoring} |
| @item -fno-underscoring |
| @cindex underscore |
| @cindex symbol names, underscores |
| @cindex transforming symbol names |
| @cindex symbol names, transforming |
| Do not transform names of entities specified in the Fortran |
| source file by appending underscores to them. |
| |
| With @option{-funderscoring} in effect, @command{gfortran} appends one |
| underscore to external names with no underscores. |
| |
| This is done to ensure compatibility with code produced by many |
| UNIX Fortran compilers. |
| |
| @emph{Caution}: The default behavior of @command{gfortran} is |
| incompatible with @command{f2c} and @command{g77}, please use the |
| @option{-ff2c} option if you want object files compiled with |
| @option{gfortran} to be compatible with object code created with these |
| tools. |
| |
| Use of @option{-fno-underscoring} is not recommended unless you are |
| experimenting with issues such as integration of (GNU) Fortran into |
| existing system environments (vis-a-vis existing libraries, tools, and |
| so on). |
| |
| For example, with @option{-funderscoring}, and assuming other defaults like |
| @option{-fcase-lower} and that @samp{j()} and @samp{max_count()} are |
| external functions while @samp{my_var} and @samp{lvar} are local variables, |
| a statement like |
| |
| @smallexample |
| I = J() + MAX_COUNT (MY_VAR, LVAR) |
| @end smallexample |
| |
| @noindent |
| is implemented as something akin to: |
| |
| @smallexample |
| i = j_() + max_count__(&my_var__, &lvar); |
| @end smallexample |
| |
| With @option{-fno-underscoring}, the same statement is implemented as: |
| |
| @smallexample |
| i = j() + max_count(&my_var, &lvar); |
| @end smallexample |
| |
| Use of @option{-fno-underscoring} allows direct specification of |
| user-defined names while debugging and when interfacing @command{gfortran} |
| code with other languages. |
| |
| Note that just because the names match does @emph{not} mean that the |
| interface implemented by @command{gfortran} for an external name matches the |
| interface implemented by some other language for that same name. |
| That is, getting code produced by @command{gfortran} 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---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. |
| |
| Also, note that with @option{-fno-underscoring}, 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---they might occur at program run time, and show up only as |
| buggy behavior at run time. |
| |
| In future versions of @command{gfortran} 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. |
| |
| @cindex @option{-fsecond-underscore option} |
| @cindex options, @option{-fsecond-underscore} |
| @item -fsecond-underscore |
| @cindex underscore |
| @cindex symbol names, underscores |
| @cindex transforming symbol names |
| @cindex symbol names, transforming |
| @cindex @command{f2c} calling convention |
| @cindex @command{g77} calling convention |
| @cindex libf2c calling convention |
| By default, @command{gfortran} appends an underscore to external |
| names. If this option is used @command{gfortran} appends two |
| underscores to names with underscores and one underscore to external names |
| with no underscores. (@command{gfortran} also appends two underscores to |
| internal names with underscores to avoid naming collisions with external |
| names. |
| |
| This option has no effect if @option{-fno-underscoring} is |
| in effect. It is implied by the @option{-ff2c} option. |
| |
| Otherwise, with this option, an external name such as @samp{MAX_COUNT} |
| is implemented as a reference to the link-time external symbol |
| @samp{max_count__}, instead of @samp{max_count_}. This is required |
| for compatibility with @command{g77} and @command{f2c}, and is implied |
| by use of the @option{-ff2c} option. |
| |
| |
| @cindex -fbounds-check option |
| @cindex -ffortran-bounds-check option |
| @item -fbounds-check |
| @cindex bounds checking |
| @cindex range checking |
| @cindex array bounds checking |
| @cindex subscript checking |
| @cindex checking subscripts |
| 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. |
| |
| In the future this may also include other forms of checking, eg. checking |
| substring references. |
| |
| |
| @cindex -fmax-stack-var-size option |
| @item -fmax-stack-var-size=@var{n} |
| This option specifies the size in bytes of the largest array that will be put |
| on the stack. |
| |
| This option currently only affects local arrays declared with constant |
| bounds, and may not apply to all character variables. |
| Future versions of @command{gfortran} may improve this behavior. |
| |
| The default value for @var{n} is 32768. |
| |
| @cindex -fpackderived |
| @item -fpackderived |
| @cindex Structure packing |
| This option tells gfortran 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. |
| |
| @cindex -frepack-arrays option |
| @item -frepack-arrays |
| @cindex Repacking arrays |
| In some circumstances @command{gfortran} may pass assumed shape array |
| sections via a descriptor describing a discontiguous area of memory. |
| This option adds code to the function prologue to repack the data into |
| a contiguous block at runtime. |
| |
| 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 discontiguous. |
| @end table |
| |
| @xref{Code Gen Options,,Options for Code Generation Conventions, |
| gcc,Using the GNU Compiler Collection (GCC)}, for information on more options |
| offered by the GBE |
| shared by @command{gfortran} @command{gcc} and other GNU compilers. |
| |
| |
| @c man end |
| |
| @node Environment Variables |
| @section Environment Variables Affecting GNU Fortran |
| @cindex environment variables |
| |
| @c man begin ENVIRONMENT |
| |
| GNU Fortran 95 currently does not make use of any environment |
| variables to control its operation above and beyond those |
| that affect the operation of @command{gcc}. |
| |
| @xref{Environment Variables,,Environment Variables Affecting GCC, |
| gcc,Using the GNU Compiler Collection (GCC)}, for information on environment |
| variables. |
| |
| @c man end |