Sophie

Sophie

distrib > Mandriva > 2011.0 > x86_64 > by-pkgid > f13f137693327172bf7ba9b443ff3a61 > files > 134

gcc-gfortran-4.6.1-2.x86_64.rpm

<html lang="en">
<head>
<title>Fortran 2008 status - The GNU Fortran Compiler</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="The GNU Fortran Compiler">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Fortran-2003-and-2008-status.html#Fortran-2003-and-2008-status" title="Fortran 2003 and 2008 status">
<link rel="prev" href="Fortran-2003-status.html#Fortran-2003-status" title="Fortran 2003 status">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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.-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
</head>
<body>
<div class="node">
<a name="Fortran-2008-status"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="Fortran-2003-status.html#Fortran-2003-status">Fortran 2003 status</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Fortran-2003-and-2008-status.html#Fortran-2003-and-2008-status">Fortran 2003 and 2008 status</a>
<hr>
</div>

<h3 class="section">4.2 Fortran 2008 status</h3>

<p>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
<a href="http://www.nag.co.uk/sc22wg5/links.html">http://www.nag.co.uk/sc22wg5/links.html</a>.  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
<a href="http://www.nag.co.uk/sc22wg5/">WG5</a>.

   <p>The GNU Fortran supports several of the new features of Fortran 2008; the
<a href="http://gcc.gnu.org/wiki/Fortran2008Status">wiki</a> has some information
about the current Fortran 2008 implementation status.  In particular, the
following is implemented.

     <ul>
<li>The <samp><span class="option">-std=f2008</span></samp> option and support for the file extensions
<samp><span class="file">.f08</span></samp> and <samp><span class="file">.F08</span></samp>.

     <li>The <code>OPEN</code> statement now supports the <code>NEWUNIT=</code> option,
which returns a unique file unit, thus preventing inadvertent use of the
same unit in different parts of the program.

     <li>The <code>g0</code> format descriptor and unlimited format items.

     <li>The mathematical intrinsics <code>ASINH</code>, <code>ACOSH</code>, <code>ATANH</code>,
<code>ERF</code>, <code>ERFC</code>, <code>GAMMA</code>, <code>LOG_GAMMA</code>, <code>BESSEL_J0</code>,
<code>BESSEL_J1</code>, <code>BESSEL_JN</code>, <code>BESSEL_Y0</code>, <code>BESSEL_Y1</code>,
<code>BESSEL_YN</code>, <code>HYPOT</code>, <code>NORM2</code>, and <code>ERFC_SCALED</code>.

     <li>Using complex arguments with <code>TAN</code>, <code>SINH</code>, <code>COSH</code>,
<code>TANH</code>, <code>ASIN</code>, <code>ACOS</code>, and <code>ATAN</code> is now possible;
<code>ATAN</code>(<var>Y</var>,<var>X</var>) is now an alias for <code>ATAN2</code>(<var>Y</var>,<var>X</var>).

     <li>Support of the <code>PARITY</code> intrinsic functions.

     <li>The following bit intrinsics: <code>LEADZ</code> and <code>TRAILZ</code> for
counting the number of leading and trailing zero bits, <code>POPCNT</code> and
<code>POPPAR</code> for counting the number of one bits and returning the parity;
<code>BGE</code>, <code>BGT</code>, <code>BLE</code>, and <code>BLT</code> for bitwise comparisons;
<code>DSHIFTL</code> and <code>DSHIFTR</code> for combined left and right shifts,
<code>MASKL</code> and <code>MASKR</code> for simple left and right justified masks,
<code>MERGE_BITS</code> for a bitwise merge using a mask, <code>SHIFTA</code>,
<code>SHIFTL</code> and <code>SHIFTR</code> for shift operations, and the
transformational bit intrinsics <code>IALL</code>, <code>IANY</code> and <code>IPARITY</code>.

     <li>Support of the <code>EXECUTE_COMMAND_LINE</code> intrinsic subroutine.

     <li>Support for the <code>STORAGE_SIZE</code> intrinsic inquiry function.

     <li>The <code>INT{8,16,32}</code> and <code>REAL{32,64,128}</code> kind type
parameters and the array-valued named constants <code>INTEGER_KINDS</code>,
<code>LOGICAL_KINDS</code>, <code>REAL_KINDS</code> and <code>CHARACTER_KINDS</code> of
the intrinsic module <code>ISO_FORTRAN_ENV</code>.

     <li>The module procedures <code>C_SIZEOF</code> of the intrinsic module
<code>ISO_C_BINDINGS</code> and <code>COMPILER_VERSION</code> and <code>COMPILER_OPTIONS</code>
of <code>ISO_FORTRAN_ENV</code>.

     <li>Experimental coarray support (for one image only), use the
<samp><span class="option">-fcoarray=single</span></samp> flag to enable it.

     <li>The <code>BLOCK</code> construct is supported.

     <li>The <code>STOP</code> and the new <code>ERROR STOP</code> statements now
support all constant expressions.

     <li>Support for the <code>CONTIGUOUS</code> attribute.

     <li>Support for <code>ALLOCATE</code> with <code>MOLD</code>.

     <li>Support for the <code>IMPURE</code> attribute for procedures, which
allows for <code>ELEMENTAL</code> procedures without the restrictions of
<code>PURE</code>.

     <li>Null pointers (including <code>NULL()</code>) and not-allocated variables
can be used as actual argument to optional non-pointer, non-allocatable
dummy arguments, denoting an absent argument.

     <li>Non-pointer variables with <code>TARGET</code> attribute can be used as
actual argument to <code>POINTER</code> dummies with <code>INTENT(IN)</code>.

     <li>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</code>.

     <li>The <code>EXIT</code> statement (with construct-name) can be now be
used to leave not only the <code>DO</code> but also the <code>ASSOCIATE</code>,
<code>BLOCK</code>, <code>IF</code>, <code>SELECT CASE</code> and <code>SELECT TYPE</code>
constructs.

     <li>Internal procedures can now be used as actual argument.

     <li>Minor features: obsolesce diagnostics for <code>ENTRY</code> with
<samp><span class="option">-std=f2008</span></samp>; a line may start with a semicolon; for internal
and module procedures <code>END</code> can be used instead of
<code>END SUBROUTINE</code> and <code>END FUNCTION</code>; <code>SELECTED_REAL_KIND</code>
now also takes a <code>RADIX</code> argument; intrinsic types are supported
for <code>TYPE</code>(<var>intrinsic-type-spec</var>); multiple type-bound procedures
can be declared in a single <code>PROCEDURE</code> statement; implied-shape
arrays are supported for named constants (<code>PARAMETER</code>). 
</ul>

<!--  -->
<!-- Compiler Characteristics -->
<!--  -->
   </body></html>