GNU extension
@item @emph{Class}:
-Non-elemental subroutine
+Subroutine
@item @emph{Syntax}:
@code{CALL ABORT}
F95 and later
@item @emph{Class}:
-transformational function
+Transformational function
@item @emph{Syntax}:
@code{RESULT = ALL(MASK [, DIM])}
GNU extension
@item @emph{Class}:
-Non-elemental function
+Function
@item @emph{Syntax}:
@code{RESULT = AND(I, J)}
F95 and later
@item @emph{Class}:
-transformational function
+Transformational function
@item @emph{Syntax}:
@code{RESULT = ANY(MASK [, DIM])}
GNU extension
@item @emph{Class}:
-Subroutine, non-elemental function
+Subroutine, function
@item @emph{Syntax}:
@multitable @columnfractions .80
GNU extension
@item @emph{Class}:
-Subroutine, non-elemental function
+Subroutine, function
@item @emph{Syntax}:
@multitable @columnfractions .80
print *, 'Status: ', status
end program chmod_test
@end smallexample
-@code{CHMOD} as non-elemental function:
+@code{CHMOD} as function:
@smallexample
program chmod_test
implicit none
F95 and later
@item @emph{Class}:
-transformational function
+Transformational function
@item @emph{Syntax}:
@code{RESULT = COUNT(MASK [, DIM])}
GNU extension
@item @emph{Class}:
-Subroutine
+Subroutine, function
@item @emph{Syntax}:
@multitable @columnfractions .80
F95 and later
@item @emph{Class}:
-transformational function
+Transformational function
@item @emph{Syntax}:
@code{RESULT = DOT_PRODUCT(X, Y)}
become, negative, or numerically less than previous values, during a single
run of the compiled program.
-If @code{DTIME} is invoked as a function, it can not be invoked as a
-subroutine, and vice versa.
+This intrinsic is provided in both subroutine and function forms; however,
+only one form can be used in any given program unit.
@var{TARRAY} and @var{RESULT} are @code{INTENT(OUT)} and provide the following:
GNU extension
@item @emph{Class}:
-Subroutine
+Subroutine, function
@item @emph{Syntax}:
@multitable @columnfractions .80
become, negative, or numerically less than previous values, during a single
run of the compiled program.
-If @code{ETIME} is invoked as a function, it can not be invoked as a
-subroutine, and vice versa.
+This intrinsic is provided in both subroutine and function forms; however,
+only one form can be used in any given program unit.
@var{TARRAY} and @var{RESULT} are @code{INTENT(OUT)} and provide the following:
GNU extension
@item @emph{Class}:
-Subroutine
+Subroutine, function
@item @emph{Syntax}:
@multitable @columnfractions .80
@code{CTIME}) in @var{DATE}. It is equivalent to @code{CALL CTIME(DATE,
TIME())}.
-If @code{FDATE} is invoked as a function, it can not be invoked as a
-subroutine, and vice versa.
+This intrinsic is provided in both subroutine and function forms; however,
+only one form can be used in any given program unit.
@var{DATE} is an @code{INTENT(OUT)} @code{CHARACTER} variable.
GNU extension
@item @emph{Class}:
-Subroutine
+Subroutine, function
@item @emph{Syntax}:
@multitable @columnfractions .80
formatted output. Stream I/O should not be mixed with normal record-oriented
(formatted or unformatted) I/O on the same unit; the results are unpredictable.
-This intrinsic routine is provided for backwards compatibility with
+This intrinsic is provided in both subroutine and function forms; however,
+only one form can be used in any given program unit.
+
+Note that the @code{FGET} intrinsic is provided for backwards compatibility with
@command{g77}. GNU Fortran provides the Fortran 2003 Stream facility.
Programmers should consider the use of new stream IO feature in new code
for future portability. See also @ref{Fortran 2003 status}.
GNU extension
@item @emph{Class}:
-Non-elemental subroutine
+Subroutine, function
@item @emph{Syntax}:
@code{CALL FGET(C [, STATUS])}
Stream I/O should not be mixed with normal record-oriented (formatted or
unformatted) I/O on the same unit; the results are unpredictable.
-This intrinsic routine is provided for backwards compatibility with
-@command{g77}. GNU Fortran provides the Fortran 2003 Stream facility.
+This intrinsic is provided in both subroutine and function forms; however,
+only one form can be used in any given program unit.
+
+Note that the @code{FGET} intrinsic is provided for backwards compatibility
+with @command{g77}. GNU Fortran provides the Fortran 2003 Stream facility.
Programmers should consider the use of new stream IO feature in new code
for future portability. See also @ref{Fortran 2003 status}.
GNU extension
@item @emph{Class}:
-Non-elemental subroutine
+Subroutine, function
@item @emph{Syntax}:
@code{CALL FGETC(UNIT, C [, STATUS])}
GNU extension
@item @emph{Class}:
-Non-elemental subroutine
+Subroutine
@item @emph{Syntax}:
@code{CALL FLUSH(UNIT)}
GNU extension
@item @emph{Class}:
-Non-elemental function
+Function
@item @emph{Syntax}:
@code{RESULT = FNUM(UNIT)}
formatted output. Stream I/O should not be mixed with normal record-oriented
(formatted or unformatted) I/O on the same unit; the results are unpredictable.
-This intrinsic routine is provided for backwards compatibility with
+This intrinsic is provided in both subroutine and function forms; however,
+only one form can be used in any given program unit.
+
+Note that the @code{FGET} intrinsic is provided for backwards compatibility with
@command{g77}. GNU Fortran provides the Fortran 2003 Stream facility.
Programmers should consider the use of new stream IO feature in new code
for future portability. See also @ref{Fortran 2003 status}.
GNU extension
@item @emph{Class}:
-Non-elemental subroutine
+Subroutine, function
@item @emph{Syntax}:
@code{CALL FPUT(C [, STATUS])}
output. Stream I/O should not be mixed with normal record-oriented
(formatted or unformatted) I/O on the same unit; the results are unpredictable.
-This intrinsic routine is provided for backwards compatibility with
+This intrinsic is provided in both subroutine and function forms; however,
+only one form can be used in any given program unit.
+
+Note that the @code{FGET} intrinsic is provided for backwards compatibility with
@command{g77}. GNU Fortran provides the Fortran 2003 Stream facility.
Programmers should consider the use of new stream IO feature in new code
for future portability. See also @ref{Fortran 2003 status}.
GNU extension
@item @emph{Class}:
-Non-elemental subroutine
+Subroutine, function
@item @emph{Syntax}:
@code{CALL FPUTC(UNIT, C [, STATUS])}
The elements in @code{BUFF} are the same as described by @ref{STAT}.
+This intrinsic is provided in both subroutine and function forms; however,
+only one form can be used in any given program unit.
+
@item @emph{Standard}:
GNU extension
@item @emph{Class}:
-Non-elemental subroutine
+Subroutine, function
@item @emph{Syntax}:
@code{CALL FSTAT(UNIT, BUFF [, STATUS])}
@item @emph{Description}:
Get current working directory.
+This intrinsic is provided in both subroutine and function forms; however,
+only one form can be used in any given program unit.
+
@item @emph{Standard}:
GNU extension
@item @emph{Class}:
-Non-elemental subroutine.
+Subroutine, function
@item @emph{Syntax}:
@code{CALL GETCWD(CWD [, STATUS])}
GNU extension
@item @emph{Class}:
-function
+Function
@item @emph{Syntax}:
@code{RESULT = GETGID()}
GNU extension
@item @emph{Class}:
-function
+Function
@item @emph{Syntax}:
@code{RESULT = GETPID()}
GNU extension
@item @emph{Class}:
-function
+Function
@item @emph{Syntax}:
@code{RESULT = GETUID()}
GNU extension
@item @emph{Class}:
-Non-elemental Function
+Function
@item @emph{Syntax}:
@code{RESULT = IARGC()}
GNU extension
@item @emph{Class}:
-Non-elemental function
+Function
@item @emph{Syntax}:
@code{RESULT = IERRNO()}
GNU extension
@item @emph{Class}:
-Non-elemental function
+Function
@item @emph{Syntax}:
@code{RESULT = IRAND(FLAG)}
GNU extension.
@item @emph{Class}:
-Non-elemental function.
+Function
@item @emph{Syntax}:
@code{RESULT = ISATTY(UNIT)}
Sends the signal specified by @var{SIGNAL} to the process @var{PID}.
See @code{kill(2)}.
+This intrinsic is provided in both subroutine and function forms; however,
+only one form can be used in any given program unit.
+
@item @emph{Class}:
-Subroutine
+Subroutine, function
@item @emph{Syntax}:
@code{CALL KILL(PID, SIGNAL [, STATUS])}
GNU extension
@item @emph{Class}:
-Subroutine, non-elemental function
+Subroutine, function
@item @emph{Syntax}:
@multitable @columnfractions .80
The elements in @code{BUFF} are the same as described by @ref{STAT}.
+This intrinsic is provided in both subroutine and function forms; however,
+only one form can be used in any given program unit.
+
@item @emph{Standard}:
GNU extension
@item @emph{Class}:
-Non-elemental subroutine
+Subroutine, function
@item @emph{Syntax}:
@code{CALL LSTAT(FILE, BUFF [, STATUS])}
GNU extension
@item @emph{Class}:
-Non-elemental function
+Function
@item @emph{Syntax}:
@code{PTR = MALLOC(SIZE)}
GNU extension
@item @emph{Class}:
-Non-elemental function
+Function
@item @emph{Syntax}:
@code{RESULT = MCLOCK()}
GNU extension
@item @emph{Class}:
-Non-elemental function
+Function
@item @emph{Syntax}:
@code{RESULT = MCLOCK8()}
GNU extension
@item @emph{Class}:
-Non-elemental function
+Function
@item @emph{Syntax}:
@code{RESULT = OR(X, Y)}
GNU extension
@item @emph{Class}:
-Non-elemental function
+Function
@item @emph{See also}:
@ref{RAND}, @ref{RANDOM_NUMBER}
GNU extension
@item @emph{Class}:
-Non-elemental function
+Function
@item @emph{Syntax}:
@code{RESULT = RAND(FLAG)}
GNU extension
@item @emph{Class}:
-Subroutine, non-elemental function
+Subroutine, function
@item @emph{Syntax}:
@multitable @columnfractions .80
GNU extension
@item @emph{Class}:
-Non-elemental function
+Function
@item @emph{Syntax}:
@code{RESULT = SECNDS (X)}
GNU extension
@item @emph{Class}:
-Subroutine, non-elemental function
+Subroutine, function
@item @emph{Syntax}:
@multitable @columnfractions .80
GNU extension
@item @emph{Class}:
-Subroutine, non-elemental function
+Subroutine, function
@item @emph{Syntax}:
@multitable @columnfractions .80
GNU extension
@item @emph{Class}:
-Non-elemental subroutine
+Subroutine
@item @emph{Syntax}:
@code{CALL SRAND(SEED)}
Not all these elements are relevant on all systems.
If an element is not relevant, it is returned as 0.
+This intrinsic is provided in both subroutine and function forms; however,
+only one form can be used in any given program unit.
@item @emph{Standard}:
GNU extension
@item @emph{Class}:
-Non-elemental subroutine
+Subroutine, function
@item @emph{Syntax}:
@code{CALL STAT(FILE,BUFF[,STATUS])}
GNU extension
@item @emph{Class}:
-Subroutine, non-elemental function
+Subroutine, function
@item @emph{Syntax}:
@multitable @columnfractions .80
GNU extension
@item @emph{Class}:
-Subroutine, non-elemental function
+Subroutine, function
@item @emph{Syntax}:
@multitable @columnfractions .80
GNU extension
@item @emph{Class}:
-Non-elemental function
+Function
@item @emph{Syntax}:
@code{RESULT = TIME()}
GNU extension
@item @emph{Class}:
-Non-elemental function
+Function
@item @emph{Syntax}:
@code{RESULT = TIME8()}
GNU extension
@item @emph{Class}:
-Subroutine, non-elemental function
+Subroutine, function
@item @emph{Syntax}:
@multitable @columnfractions .80
GNU extension
@item @emph{Class}:
-Subroutine, non-elemental function
+Subroutine, function
@item @emph{Syntax}:
@multitable @columnfractions .80
GNU extension
@item @emph{Class}:
-Non-elemental function
+Function
@item @emph{Syntax}:
@code{RESULT = XOR(X, Y)}
* Runtime Options:: Influencing runtime behavior
* Code Gen Options:: Specifying conventions for function calls, data layout
and register usage.
-* Environment Variables:: Env vars that affect @command{gfortran}.
+* Environment Variables:: Environment variables that affect @command{gfortran}.
@end menu
@node Option Summary
-@section Option Summary
+@section Option summary
@c man begin OPTIONS
@table @emph
@item Fortran Language Options
-@xref{Fortran Dialect Options,,Options Controlling Fortran Dialect}.
+@xref{Fortran Dialect Options,,Options controlling Fortran dialect}.
@gccoptlist{-fall-intrinsics -ffree-form -fno-fixed-form @gol
-fdollar-ok -fimplicit-none -fmax-identifier-length @gol
-std=@var{std} -fd-lines-as-code -fd-lines-as-comments @gol
-fcray-pointer -fopenmp -frange-check -fno-backslash }
@item Error and Warning Options
-@xref{Error and Warning Options,,Options to Request or Suppress Errors
-and Warnings}.
+@xref{Error and Warning Options,,Options to request or suppress errors
+and warnings}.
@gccoptlist{-fmax-errors=@var{n} @gol
-fsyntax-only -pedantic -pedantic-errors @gol
-w -Wall -Waliasing -Wampersand -Wcharacter-truncation -Wconversion @gol
-Wimplicit-interface -Wline-truncation -Wnonstd-intrinsics -Wsurprising @gol
--Wno-tabs -Wunderflow -W}
+-Wno-tabs -Wunderflow}
@item Debugging Options
-@xref{Debugging Options,,Options for Debugging Your Program or GCC}.
+@xref{Debugging Options,,Options for debugging your program or GNU Fortran}.
@gccoptlist{-fdump-parse-tree -ffpe-trap=@var{list} @gol
-fdump-core -fbacktrace}
@item Directory Options
-@xref{Directory Options,,Options for Directory Search}.
+@xref{Directory Options,,Options for directory search}.
@gccoptlist{-I@var{dir} -J@var{dir} -M@var{dir} -fintrinsic-modules-path @var{dir}}
@item Link Options
-fmax-subrecord-length=@var{length}}
@item Code Generation Options
-@xref{Code Gen Options,,Options for Code Generation Conventions}.
+@xref{Code Gen Options,,Options for code generation conventions}.
@gccoptlist{-fno-automatic -ff2c -fno-underscoring
-fsecond-underscore @gol
-fbounds-check -fmax-stack-var-size=@var{n} @gol
@end menu
@node Fortran Dialect Options
-@section Options Controlling Fortran Dialect
+@section Options controlling Fortran dialect
@cindex dialect options
@cindex language, dialect options
@cindex options, dialect
@end table
@node Error and Warning Options
-@section Options to Request or Suppress Errors and Warnings
+@section Options to request or suppress errors and warnings
@cindex options, warnings
@cindex options, errors
@cindex warnings, suppressing
Like @option{-pedantic}, except that errors are produced rather than
warnings.
-@item -w
-@opindex @code{w}
-@cindex warnings, none
-Inhibit all warning messages.
-
@item -Wall
@opindex @code{Wall}
@cindex all warnings
@opindex @code{Werror}
@cindex warnings, to errors
Turns all warnings into errors.
-
-@item -W
-@opindex @code{W}
-@cindex warnings, extra
-@cindex extra warnings
-Turns on ``extra warnings'' and, if optimization is specified
-via @option{-O}, the @option{-Wuninitialized} option.
-(This might change in future versions of GNU Fortran.)
@end table
@xref{Error and Warning Options,,Options to Request or Suppress Errors and
Some of these have no effect when compiling programs written in Fortran.
@node Debugging Options
-@section Options for Debugging Your Program or GNU Fortran
+@section Options for debugging your program or GNU Fortran
@cindex options, debugging
@cindex debugging information options
debugging options.
@node Directory Options
-@section Options for Directory Search
+@section Options for directory search
@cindex directory, options
@cindex options, directory search
@cindex search path
@end table
@node Link Options
-@section Influencing the Linking Step
+@section Influencing the linking step
@cindex options, linking
@cindex linking, static
@node Runtime Options
-@section Influencing Runtime Behavior
+@section Influencing runtime behavior
@cindex options, runtime
These options affect the runtime behavior of programs compiled with GNU Fortran.
@opindex @code{frecord-marker=}@var{length}
Specify the length of record markers for unformatted files.
Valid values for @var{length} are 4 and 8. Default is 4.
-@emph{This is different from previous versions of gfortran},
+@emph{This is different from previous versions of @command{gfortran}},
which specified a default record marker length of 8 on most
systems. If you want to read or write files compatible
-with earlier versions of gfortran, use @option{-frecord-marker=8}.
+with earlier versions of @command{gfortran}, use @option{-frecord-marker=8}.
@item -fmax-subrecord-length=@var{length}
@opindex @code{fmax-subrecord-length=}@var{length}
@end table
@node Code Gen Options
-@section Options for Code Generation Conventions
+@section Options for code generation conventions
@cindex code generation, conventions
@cindex options, code generation
@cindex options, run-time
@item -fexternal-blas
@opindex @code{fexternal-blas}
-This option will make gfortran generate calls to BLAS functions for some
-matrix operations like @code{MATMUL}, instead of using our own
+This option will make @command{gfortran} generate calls to BLAS functions
+for some matrix operations like @code{MATMUL}, instead of using our own
algorithms, if the size of the matrices involved is larger than a given
limit (see @option{-fblas-matmul-limit}). This may be profitable if an
optimized vendor BLAS library is available. The BLAS library will have
@c man end
@node Environment Variables
-@section Environment Variables Affecting @command{gfortran}
+@section Environment variables affecting @command{gfortran}
@cindex environment variable
@c man begin ENVIRONMENT