Commit 3994c6b1 by Tobias Burnus Committed by Tobias Burnus

gfortran.texi: Add second space after end-of-sentence period...

2010-09-24  Tobias Burnus  <burnus@net-b.de>

        * gfortran.texi: Add second space after end-of-sentence period;
        change / to /@/ to allow hyphenation of URLs.
        (Standards): Remove duplicated OpenMP, update wording given that
        Fortran 2008 now released.
        (Fortran 2008 status): Update and add list of implemented features.

From-SVN: r164584
parent 6fd71fde
2010-09-24 Tobias Burnus <burnus@net-b.de>
* gfortran.texi: Add second space after end-of-sentence period;
change / to /@/ to allow hyphenation of URLs.
(Standards): Remove duplicated OpenMP, update wording given that
Fortran 2008 now released.
(Fortran 2008 status): Update and add list of implemented features.
2010-09-24 Tobias Burnus <burnus@net-b.de>
PR fortran/40571
* iso-fortran-env.def: Add NAMED_KINDARRAY with
character_kinds, integer_kinds, logical_kinds and
......
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename gfortran.info
@set copyrights-gfortran 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
......@@ -407,8 +407,8 @@ through a C preprocessor (CPP; sometimes also called the Fortran preprocessor,
FPP) to allow for conditional compilation. In the case of GNU Fortran,
this is the GNU C Preprocessor in the traditional mode. On systems with
case-preserving file names, the preprocessor is automatically invoked if the
filename extension is @code{.F}, @code{.FOR}, @code{.FTN}, @code{.fpp},
@code{.FPP}, @code{.F90}, @code{.F95}, @code{.F03} or @code{.F08}. To manually
filename extension is @file{.F}, @file{.FOR}, @file{.FTN}, @file{.fpp},
@file{.FPP}, @file{.F90}, @file{.F95}, @file{.F03} or @file{.F08}. To manually
invoke the preprocessor on any file, use @option{-cpp}, to disable
preprocessing on files where the preprocessor is run automatically, use
@option{-nocpp}.
......@@ -474,9 +474,8 @@ standard-compliant Fortran 95, Fortran 90, and Fortran 77 programs,
including a number of standard and non-standard extensions, and can be
used on real-world programs. In particular, the supported extensions
include OpenMP, Cray-style pointers, and several Fortran 2003 and Fortran
2008 features such as enumeration, stream I/O, and some of the
enhancements to allocatable array support from TR 15581. However, it is
still under development and has a few remaining rough edges.
2008 features, including TR 15581. However, it is still under
development and has a few remaining rough edges.
At present, the GNU Fortran compiler passes the
@uref{http://www.fortran-2000.com/ArnaudRecipes/fcvs21_f95.html,
......@@ -491,7 +490,7 @@ large real-world programs, including
@uref{http://mysite.verizon.net/serveall/moene.pdf, the HIRLAM
weather-forecasting code} and
@uref{http://www.theochem.uwa.edu.au/tonto/, the Tonto quantum
chemistry package}; see @url{http://gcc.gnu.org/wiki/GfortranApps} for an
chemistry package}; see @url{http://gcc.gnu.org/@/wiki/@/GfortranApps} for an
extended list.
Among other things, the GNU Fortran compiler is intended as a replacement
......@@ -521,25 +520,17 @@ future standards---in particular, Fortran 2003 and Fortran 2008.
The GNU Fortran compiler implements
ISO/IEC 1539:1997 (Fortran 95). As such, it can also compile essentially all
standard-compliant Fortran 90 and Fortran 77 programs. It also supports
the ISO/IEC TR-15581 enhancements to allocatable arrays, and
the @uref{http://www.openmp.org/drupal/mp-documents/spec25.pdf,
OpenMP Application Program Interface v2.5} specification.
the ISO/IEC TR-15581 enhancements to allocatable arrays.
In the future, the GNU Fortran compiler will also support ISO/IEC
1539-1:2004 (Fortran 2003) and future Fortran standards. Partial support
of that standard is already provided; the current status of Fortran 2003
support is reported in the @ref{Fortran 2003 status} section of the
documentation.
The next version of the Fortran standard (Fortran 2008) is currently
being developed and the GNU Fortran compiler supports some of its new
features. This support is based on the latest draft of the standard
(available from @url{http://www.nag.co.uk/sc22wg5/}) and no guarantee of
future compatibility is made, as the final standard might differ from the
draft. For more information, see the @ref{Fortran 2008 status} section.
1539-1:2004 (Fortran 2003), ISO/IEC 1539-1:2010 (Fortran 2008) and
future Fortran standards. Partial support of the Fortran 2003 and
Fortran 2008 standard is already provided; the current status of the
support is reported in the @ref{Fortran 2003 status} and
@ref{Fortran 2008 status} sections of the documentation.
Additionally, the GNU Fortran compilers supports the OpenMP specification
(version 3.0, @url{http://openmp.org/wp/openmp-specifications/}).
(version 3.0, @url{http://openmp.org/@/wp/@/openmp-specifications/}).
@node Varying Length Character Strings
@subsection Varying Length Character Strings
......@@ -938,21 +929,103 @@ Extension of derived-types (the @code{EXTENDS(...)} syntax).
@node Fortran 2008 status
@section Fortran 2008 status
The next version of the Fortran standard after Fortran 2003 is currently
being worked on by the Working Group 5 of Sub-Committee 22 of the Joint
Technical Committee 1 of the International Organization for
Standardization (ISO) and the International Electrotechnical Commission
(IEC). This group is known as @uref{http://www.nag.co.uk/sc22wg5/, WG5}.
The next revision of the Fortran standard is informally referred to as
Fortran 2008, reflecting its planned release year. The GNU Fortran
compiler has support for some of the new features in Fortran 2008. This
support is based on the latest draft, available from
@url{http://www.nag.co.uk/sc22wg5/}. However, as the final standard may
differ from the drafts, no guarantee of backward compatibility can be
made and you should only use it for experimental purposes.
The latest version of the Fortran standard is ISO/IEC 1539-1:2010, informally
known as Fortran 2008. The official version is available from International
Organization for Standardization (ISO) or its national member organizations.
The the final draft (FDIS) can be downloaded free of charge from
@url{http://www.nag.co.uk/@/sc22wg5/@/links.html}. Fortran is developed by the
Working Group 5 of Sub-Committee 22 of the Joint Technical Committee 1 of the
International Organization for Standardization and the International
Electrotechnical Commission (IEC). This group is known as
@uref{http://www.nag.co.uk/sc22wg5/, WG5}.
The GNU Fortran supports several of the new features of Fortran 2008; the
@uref{http://gcc.gnu.org/wiki/Fortran2008Status, wiki} has some information
about the current Fortran 2008 implementation status. In particular, the
following is implemented.
@itemize
@item The @option{-std=f2008} option and support for the file extensions
@file{.f08} and @file{.F08}.
@item The @code{OPEN} statement now supports the @code{NEWUNIT=} option,
which returns a unique file unit, thus preventing inadvertent use of the
same unit in different parts of the program.
@item The @code{g0} format descriptor and unlimited format items.
@item The mathematical intrinsics @code{ASINH}, @code{ACOSH}, @code{ATANH},
@code{ERF}, @code{ERFC}, @code{GAMMA}, @code{LOG_GAMMA}, @code{BESSEL_J0},
@code{BESSEL_J1}, @code{BESSEL_JN}, @code{BESSEL_Y0}, @code{BESSEL_Y1},
@code{BESSEL_YN}, @code{HYPOT}, @code{NORM2}, and @code{ERFC_SCALED}.
@item Using complex arguments with @code{TAN}, @code{SINH}, @code{COSH},
@code{TANH}, @code{ASIN}, @code{ACOS}, and @code{ATAN} is now possible;
@code{ATAN}(@var{Y},@var{X}) is now an alias for @code{ATAN2}(@var{Y},@var{X}).
@item Support of the @code{PARITY} intrinsic functions.
@item The following bit intrinsics: @code{LEADZ} and @code{TRAILZ} for
counting the number of leading and trailing zero bits, @code{POPCNT} and
@code{POPPAR} for counting the number of one bits and returning the parity;
@code{BGE}, @code{BGT}, @code{BLE}, and @code{BLT} for bitwise comparisons;
@code{DSHIFTL} and @code{DSHIFTR} for combined left and right shifts,
@code{MASKL} and @code{MASKR} for simple left and right justified masks,
@code{MERGE_BITS} for a bitwise merge using a mask, @code{SHIFTA},
@code{SHIFTL} and @code{SHIFTR} for shift operations, and the
transformational bit intrinsics @code{IALL}, @code{IANY} and @code{IPARITY}.
@item Support of the @code{EXECUTE_COMMAND_LINE} intrinsic subroutine.
@item Support for the @code{STORAGE_SIZE} intrinsic inquiry function.
@item The @code{INT@{8,16,32@}} and @code{REAL@{32,64,128@}} kind type
parameters of the intrinsic module @code{ISO_FORTRAN_ENV}.
@item Experimental coarray support (for one image only), use the
@option{-fcoarray=single} flag to enable it.
@item The @code{BLOCK} construct is supported.
@item The @code{STOP} and the new @code{ERROR STOP} statements now
support all constant expressions.
@item Support for the @code{CONTIGUOUS} attribute.
@item Support for @code{ALLOCATE} with @code{MOLD}.
@item Support for the @code{IMPURE} attribute for procedures, which
allows for @code{ELEMENTAL} procedures without the restrictions of
@code{PURE}.
@item Null pointers (including @code{NULL()}) and not-allocated variables
can be used as actual argument to optional non-pointer, non-allocatable
dummy arguments, denoting an absent argument.
@item Non-pointer variables with @code{TARGET} attribute can be used as
actual argument to @code{POINTER} dummies with @code{INTENT(IN)}.
@item Pointers including procedure pointers and those in a derived
type (pointer components) can now be initialized by a target instead
of only by @code{NULL}.
@item The @code{EXIT} statement (with construct-name) can be now be
used to leave not only the @code{DO} but also the @code{ASSOCIATE},
@code{BLOCK}, @code{IF}, @code{SELECT CASE} and @code{SELECT TYPE}
constructs.
@item Internal procedures can now be used as actual argument.
@item Minor features: obsolesce diagnostics for @code{ENTRY} with
@option{-std=f2008}; a line may start with a semicolon; for internal
and module procedures @code{END} can be used instead of
@code{END SUBROUTINE} and @code{END FUNCTION}; @code{SELECTED_REAL_KIND}
now also takes a @code{RADIX} argument; intrinsic types are supported
for @code{TYPE}(@var{intrinsic-type-spec}); multiple type-bound procedures
can be declared in a single @code{PROCEDURE} statement; implied-shape
arrays are supported for named constants (@code{PARAMETER}).
@end itemize
The @uref{http://gcc.gnu.org/wiki/Fortran2008Status, wiki} has some information
about the current Fortran 2008 implementation status.
@c ---------------------------------------------------------------------
......@@ -2756,7 +2829,7 @@ keep code private on request.
Find bugs and write more test cases! Test cases are especially very
welcome, because it allows us to concentrate on fixing bugs instead of
isolating them. Going through the bugzilla database at
@url{http://gcc.gnu.org/bugzilla/} to reduce testcases posted there and
@url{http://gcc.gnu.org/@/bugzilla/} to reduce testcases posted there and
add more information (for example, for which version does the testcase
work, for which versions does it fail?) is also very helpful.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment