Gfortran is the GNU Fortran 95 compiler front end,
designed initially as a free replacement for,
or alternative to, the unix @command{f95} command;
-@command{gfortran} is command you'll use to invoke the compiler.
+@command{gfortran} is the command you'll use to invoke the compiler.
Gfortran is still in an early state of development.
@command{gfortran} can generate code for most constructs and expressions,
The @command{gcc} command is the @dfn{driver} program for
all the languages in the GNU Compiler Collection (GCC);
With @command{gcc},
-you can compiler the source code of any language for
+you can compile the source code of any language for
which a front end is available in GCC.
@item
@item
A collection of run-time libraries.
-These libraries contains the machine code needed to support
+These libraries contain the machine code needed to support
capabilities of the Fortran language that are not directly
provided by the machine code generated by the
@command{gfortran} compilation phase,
but is now known as the @dfn{GNU Compiler Collection}.
GCC provides the GNU system with a very versatile
compiler middle end (shared optimization passes),
-and with back ends (code generators) for many different
+and back ends (code generators) for many different
computer architectures and operating systems.
The code of the middle end and back end are shared by all
compiler front ends that are in the GNU Compiler Collection.
A GCC front end is essentially a source code parser
-and a pass to generate a representation of the semantics
-of the program in the source code in the GCC language
-independent intermediate language,
-called @dfn{GENERIC}.
+and an intermediate code generator. The code generator translates the
+semantics of the source code into a language independent form called
+@dfn{GENERIC}.
The parser takes a source file written in a
particular computer language, reads and parses it,
This data structure represents the whole program
or a subroutine or a function.
The ``tree'' is passed to the GCC middle end,
-which will perform optimization passes on it,
-pass the optimized AST and generate assembly
-for the program unit.
+which will perform optimization passes on it. The optimized AST is then
+handed off too the back end which assembles the program unit.
Different phases in this translation process can be,
and in fact @emph{are} merged in many compiler front ends.
GNU Fortran 95 has a strict separation between the
parser and code generator.
-The goal of the gfortran project is to build a new front end for GCC:
-A Fortran 95 front end.
+The goal of the gfortran project is to build a new front end for GCC.
+Specifically, a Fortran 95 front end.
In a non-gfortran installation,
@command{gcc} will not be able to compile Fortran 95 source code
(only the ``C'' front end has to be compiled if you want to build GCC,
The start of the GNU Fortran 95 project was announced on
the GCC homepage in March 18, 2000
(even though Andy had already been working on it for a while,
-or course).
+of course).
Gfortran is currently reaching the stage where is is able to compile real
world programs. However it is still under development and has many rough
@item
User-specified alignment rules for structures.
@item
-Flag to generate a @code{Makefile} info.
+Flag to generate @code{Makefile} info.
@item
Automatically extend single precision constants to double.
option in the g95 development mailing list.
@item
-Allow setting default unit number.
+Allow setting the default unit number.
@item
-Option to initialize of otherwise uninitialized integer and floating
+Option to initialize otherwise uninitialized integer and floating
point variables.
@item
Set precision for fp units that support it (i387).
@item
-Variables for setting fp rounding mode.
+Variable for setting fp rounding mode.
@item
Variable to fill uninitialized variables with a user-defined bit
@section Extensions to namelist
@cindex Namelist
-@command{gfortran} fully supports the fortran95 standard for namelist io
+@command{gfortran} fully supports the Fortran 95 standard for namelist I/O
including array qualifiers, substrings and fully qualified derived types.
The output from a namelist write is compatible with namelist read. The
output has all names in upper case and indentation to column 1 after the
CH=abcd, /
@end smallexample
-To aid this dialog, when input is from stdin, errors produce send their
+To aid this dialog, when input is from stdin, errors send their
messages to stderr and execution continues, even if IOSTAT is set.
@node X format descriptor
@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
+These options affect how @command{gfortran} searches
+for files specified by 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
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.
+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