This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Update of the Fortran web pages by Steve Kargl.


I applied the (attached) patch to the Fortran web pages. Most of the changes were contributed by Steve Kargl; I added some due to the prodding of Gerald's validator scripts ;-)

--
Toon Moene - mailto:toon@moene.indiv.nluug.nl - phoneto: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
Maintainer, GNU Fortran 77: http://gcc.gnu.org/onlinedocs/g77_news.html
GNU Fortran 95: http://gcc.gnu.org/fortran/ (under construction)
2004-04-03  Steve Kargl  <kargl@troutmask.apl.washington.edu>
            Toon Moene  <toon@moene.indiv.nluug.nl>

	* compilerstatus.html, extensions.html, index.html,
	librarystatus.html, todo.html, usage.html:
	Change G95 to gfortran; expand contractions to correct English;
	remove text that states that *.f files are compiled by g77;
	correct subject-verb conjugation problems.
	* contributors.html: Add Bud Davis and Scott Robert Ladd.
	Add <title> </title> and closing </body>, </html>.

*** compilerstatus.html.orig	Sat Nov  1 14:51:57 2003
--- compilerstatus.html	Sat Apr  3 13:57:04 2004
***************
*** 1,10 ****
  <html>
  <head>
! <title>G95: Compiler Status</title>
  </head>
  
  <body>
! <h1>G95: Compiler Status</h1>
  
  <h2>Contents</h2>
  <ul>
--- 1,10 ----
  <html>
  <head>
! <title>gfortran: Compiler Status</title>
  </head>
  
  <body>
! <h1>gfortran: Compiler Status</h1>
  
  <h2>Contents</h2>
  <ul>
***************
*** 17,30 ****
  
  <h2 id="ov">Overview</h2>
  <p>
! G95 is not complete, but it should already be usable for some user
  code. The implementations of <code>COMMON</code> and
  <code>EQUIVALENCE</code> are fairly new and thus not well tested, so
  give them a try.  We provide <a href="librarystatus.html">details
! on the status of the run time library</a>. G95 is regularly compiled
  on i386 GNU/Linux, PowerPC GNU/Linux, Cygwin and FreeBSD/i386, and can
  thus be built out of the box most of the time there.
! We're interested in your experiences on other platforms.
  </p>
  
  <p>
--- 17,30 ----
  
  <h2 id="ov">Overview</h2>
  <p>
! Gfortran is not complete, but it should already be usable for some user
  code. The implementations of <code>COMMON</code> and
  <code>EQUIVALENCE</code> are fairly new and thus not well tested, so
  give them a try.  We provide <a href="librarystatus.html">details
! on the status of the run time library</a>. Gfortran is regularly compiled
  on i386 GNU/Linux, PowerPC GNU/Linux, Cygwin and FreeBSD/i386, and can
  thus be built out of the box most of the time there.
! We are interested in your experiences on other platforms.
  </p>
  
  <p>
*************** the <a href="todo.html">Open Projects</a
*** 33,54 ****
  </p>
  
  <h2 id="fe">Front end</h2>
! <p>This is the part of G95 which parses a source file, verifies that it's
  valid Fortran 95, performs compile time replacement of constants
  (<code>PARAMETER</code> variables) and reads and generate module files. This is
  almost complete. Every non-Fortran 95 source should be rejected, every
  Fortran 95 source should pass. If you find a source file where this is
  not true, please tell us. You can use the <code>-fsyntax-only</code>
! switch to make g95 quit after running the front end, effectively reducing it
! to a syntax checker.</p>
  
  <p>Open projects include support for legacy
  constructs, like the language features deleted from Fortran 95.</p>
  
  <h2 id="me_intf">Middle end Interface</h2>
! <p>These are the parts of G95 that take the parse tree generated by the
  front end and translate it to the GENERIC form required by the GCC
! back end. Work is ongoing in these parts of G95, but a large part
  has already been completed.</p>
  
  <p>Current issues being worked on include:</p>
--- 33,54 ----
  </p>
  
  <h2 id="fe">Front end</h2>
! <p>This is the part of gfortran which parses a source file, verifies that it is
  valid Fortran 95, performs compile time replacement of constants
  (<code>PARAMETER</code> variables) and reads and generate module files. This is
  almost complete. Every non-Fortran 95 source should be rejected, every
  Fortran 95 source should pass. If you find a source file where this is
  not true, please tell us. You can use the <code>-fsyntax-only</code>
! switch to make gfortran quit after running the front end, effectively reducing
! it to a syntax checker.</p>
  
  <p>Open projects include support for legacy
  constructs, like the language features deleted from Fortran 95.</p>
  
  <h2 id="me_intf">Middle end Interface</h2>
! <p>These are the parts of gfortran that take the parse tree generated by the
  front end and translate it to the GENERIC form required by the GCC
! back end. Work is ongoing in these parts of gfortran, but a large part
  has already been completed.</p>
  
  <p>Current issues being worked on include:</p>
*************** e.g. <code>TRANSPOSE(TRANSPOSE(A(:,:))</
*** 60,79 ****
  </ul>
  
  <h2 id="be">Middle end and Back end</h2>
! G95 uses the middle end and back end of GCC, more specifically, it is built on
! the <a href="../projects/tree-ssa/">Tree-SSA</a> branch
! of GCC which is meant to become part of GCC 3.5. We hope to be able to
! include at least a beta version of G95 into GCC by this time.
  
  <h2 id="rb">Reporting Bugs</h2>
! If you think you found a bug, please report it to our
  <code><a href="../bugs.html">bug database</a></code>.
  Please include the information necessary to reproduce the bug,
! especially a minimal Fortran source that triggers the bug, information
! on your computer architecture and the version of G95 you're using
  (e.g. one of the binaries distributed by us, the date of the CVS
! sources you used to compile G95 yourself etc.). If you're not sure if the
! bug you found is an issue with the front end or the back end, please try
  using the <code>-fsyntax-only</code> command line switch.
  
  </body>
--- 60,79 ----
  </ul>
  
  <h2 id="be">Middle end and Back end</h2>
! Gfortran uses the middle end and back end of GCC, more specifically, it is
! built on the <a href="../projects/tree-ssa/">Tree-SSA</a> branch
! of GCC, which is meant to become part of GCC 3.5. We hope to be able to
! include at least a beta version of gfortran into GCC by this time.
  
  <h2 id="rb">Reporting Bugs</h2>
! If you think you have found a bug, please report it to our
  <code><a href="../bugs.html">bug database</a></code>.
  Please include the information necessary to reproduce the bug,
! especially minimal Fortran source code that triggers the bug, information
! on your computer architecture and the version of gfortran you are using
  (e.g. one of the binaries distributed by us, the date of the CVS
! sources you used to compile gfortran yourself etc.). If you are not sure if the
! bug you have found is an issue with the front end or the back end, please try
  using the <code>-fsyntax-only</code> command line switch.
  
  </body>
*** contributors.html.orig	Fri Dec 12 20:29:43 2003
--- contributors.html	Sat Apr  3 14:17:36 2004
***************
*** 1,6 ****
  <html>
  <body>
! <h1>Contributors to G95</h1>
  
  <p>Andy Vaught started writing the parser for g95 in the summer of
  1999.  Early 2000 he moved the project to SourceForge.  In
--- 1,9 ----
  <html>
+ <head>
+ <title>Contributors to gfortran</title>
+ </head>
  <body>
! <h1>Contributors to gfortran</h1>
  
  <p>Andy Vaught started writing the parser for g95 in the summer of
  1999.  Early 2000 he moved the project to SourceForge.  In
*************** As of July 25th, 2003, g95 is part of GC
*** 32,37 ****
--- 35,41 ----
  <h2>Small patches (no copyright assignment)</h2>
  <ul>
     <li>Niels Kristian Bech Jensen</li>
+    <li>Scott Robert Ladd</li>
     <li>Steven G. Johnson</li>
     <li>Tobias Schlueter</li>
  </ul>
*************** As of July 25th, 2003, g95 is part of GC
*** 40,45 ****
--- 44,50 ----
  <h2>Small fixes</h2>
  <ul>
     <li>Toon Moene</li>
+    <li>Bud Davis</li>
  </ul>
  
  
*************** As of July 25th, 2003, g95 is part of GC
*** 50,52 ****
--- 55,59 ----
     <li>W. Clodius</li>
     <li>Claus Fischer</li>
  </ul>
+ </body>
+ </html>
*** extensions.html.orig	Mon Oct 20 23:29:19 2003
--- extensions.html	Sat Apr  3 13:57:04 2004
***************
*** 1,11 ****
  <html>
  
  <head>
! <title>Extensions to G95</title>
  </head>
  
  <body>
! <h1>Extensions to G95</h1>
  
  <p>
  The primary goal of the GNU Fortran Project is the construction
--- 1,11 ----
  <html>
  
  <head>
! <title>Extensions to gfortran</title>
  </head>
  
  <body>
! <h1>Extensions to gfortran</h1>
  
  <p>
  The primary goal of the GNU Fortran Project is the construction
*** index.html.orig	Sat Dec 13 12:50:21 2003
--- index.html	Sat Apr  3 13:57:04 2004
***************
*** 8,20 ****
  
  <h1>Welcome to the home of<br />GNU Fortran 95</h1>
  
! <p>The GNU Fortran 95 project, or G95, is developing a Fortran 95
  compiler front end, as well as runtime libraries, for 
! GCC, the GNU Compiler Collection.  G95 development is a part of the
  <a href="http://www.gnu.org/";>GNU Project</a>, aiming to bring free
! number crunching to all GNU system variants, including GNU/Linux.
! The G95 development effort uses an open development environment in
! order to attract a larger team of developers and to ensure that G95 can
  work on multiple architectures and diverse environments.</p>
  
  <p>In particular, the project wishes to reach the users of the
--- 8,20 ----
  
  <h1>Welcome to the home of<br />GNU Fortran 95</h1>
  
! <p>The GNU Fortran 95 project, or gfortran, is developing a Fortran 95
  compiler front end, as well as runtime libraries, for 
! GCC, the GNU Compiler Collection.  Gfortran development is a part of the
  <a href="http://www.gnu.org/";>GNU Project</a>, aiming to bring free
! number crunching to all GNU system variants.
! The gfortran development effort uses an open development environment in
! order to attract a larger team of developers and to ensure that gfortran can
  work on multiple architectures and diverse environments.</p>
  
  <p>In particular, the project wishes to reach the users of the
*************** mailing list; for details please refer t
*** 30,42 ****
  
  <h2>Project goal</h2>
  <p>We strive to provide a high quality release, which we want to work
! well on a variety of native (including GNU/Linux) targets.  We do not
! believe we can make the best Fortran 95 compiler, but we want it to be
! adequate.</p>
! <p>The focus is on standard conformance and on good performance of the
! executables produced by the compiler.  Secondary goals include
! reasonable compile speed, a small memory foot print, and the ability
  to build a cross-compiler.</p>
  <p>We expect to provide the following
  <a href="extensions.html">language extensions</a>.</p>
  
--- 30,44 ----
  
  <h2>Project goal</h2>
  <p>We strive to provide a high quality release, which we want to work
! well on a variety of native targets.  Although we
! believe we cannot make the best Fortran 95 compiler for any given target,
! we want gfortran to be adequate.</p>
! 
! <p>The focus is on conformance to the Fortran 95 standard and on good
! performance of the executables produced by the compiler.  Secondary goals
! include reasonable compile speed, a small memory foot print, and the ability
  to build a cross-compiler.</p>
+ 
  <p>We expect to provide the following
  <a href="extensions.html">language extensions</a>.</p>
  
*************** We also keep a <a href="todo.html">TODO 
*** 48,54 ****
  
  <h2>Contributing</h2>
  <p>We encourage everyone to <a href="../contribute.html">contribute changes</a>
! and help test G95.  G95 is developed on the so-called "tree-ssa" branch of GCC.
  We provide read access to our development sources for everybody with
  <a href="../projects/tree-ssa/">anonymous CVS</a>.
  Daily snapshots of the branch are also <a
--- 50,57 ----
  
  <h2>Contributing</h2>
  <p>We encourage everyone to <a href="../contribute.html">contribute changes</a>
! and help test gfortran.  Gfortran is developed on the so-called "tree-ssa"
! branch of GCC.
  We provide read access to our development sources for everybody with
  <a href="../projects/tree-ssa/">anonymous CVS</a>.
  Daily snapshots of the branch are also <a
*************** available</a>.</p>
*** 60,67 ****
  use the compiler once you have built it (or downloaded the binary).</p>
  
  <h2>Suggested reading</h2>
! <p>We provide links to some <a href="../readings.html#fortran">information</a> relevant to
! Fortran programmers.</p>
  
  
  <h2>News/Announcements</h2>
--- 63,70 ----
  use the compiler once you have built it (or downloaded the binary).</p>
  
  <h2>Suggested reading</h2>
! <p>We provide links to some <a href="../readings.html#fortran">information</a>
! relevant to Fortran programmers.</p>
  
  
  <h2>News/Announcements</h2>
*************** page is preserved for historical reasons
*** 73,80 ****
  <dt><b>July 05, 2003</b></dt>
  <dd>New x86 GNU/Linux binaries have been released
  (<a href="http://sourceforge.net/project/showfiles.php?group_id=70680";>download</a>).
! Note these tend to get out of date fairly quicky, so it's recommended
! that you compile your own from GCC CVS if possible.</dd>
  
  <dt><b>July 27, 2003</b></dt>
  <dd>gcc-g95 has been integrated into the <a
--- 76,83 ----
  <dt><b>July 05, 2003</b></dt>
  <dd>New x86 GNU/Linux binaries have been released
  (<a href="http://sourceforge.net/project/showfiles.php?group_id=70680";>download</a>).
! Note these tend to get out of date fairly quicky, so it is recommended
! that you compile gfortran from GCC CVS if possible.</dd>
  
  <dt><b>July 27, 2003</b></dt>
  <dd>gcc-g95 has been integrated into the <a
*************** These include a complete FORALL implemen
*** 95,101 ****
  IO, amongst other things.</dd>
  
  <dt><b>June 28, 2003</b></dt>
! <dd>We're sorry that anonymous access to our CVS is not up-to-date and
  therefore unusable to non-developers.  This is due to ongoing problems
  with the SourceForge servers.</dd>
  
--- 98,104 ----
  IO, amongst other things.</dd>
  
  <dt><b>June 28, 2003</b></dt>
! <dd>We are sorry that anonymous access to our CVS is not up-to-date and
  therefore unusable to non-developers.  This is due to ongoing problems
  with the SourceForge servers.</dd>
  
*** librarystatus.html.orig	Tue Dec 30 21:52:44 2003
--- librarystatus.html	Sat Apr  3 13:57:04 2004
***************
*** 1,10 ****
  <html>
  <head>
! <title>G95: Runtime library status</title>
  </head>
  
  <body>
! <h1>G95: Runtime library status</h1>
  
  <h2>Contents</h2>
  
--- 1,10 ----
  <html>
  <head>
! <title>gfortran: Runtime library status</title>
  </head>
  
  <body>
! <h1>gfortran: Runtime library status</h1>
  
  <h2>Contents</h2>
  
*************** available, or to fall back to a call to 
*** 36,43 ****
  <p>Implementation of some non-elemental intrinsic functions (eg. DOT_PRODUCT,
  AVERAGE) is not yet optimal.  This is hard because we have to make decisions
  whether to use inline code (good for small arrays as no function call
! overhead) or generate function calls (good for large arrays as it allows use of
! hand-optimized assembly routines, SIMD instructions, etc.)</p>
  
  <p>Implementations marked <b>*</b> are performed by the frontend, and
  are never seen by the code generation routines.  Other calls may also
--- 36,43 ----
  <p>Implementation of some non-elemental intrinsic functions (eg. DOT_PRODUCT,
  AVERAGE) is not yet optimal.  This is hard because we have to make decisions
  whether to use inline code (good for small arrays as no function call
! overhead occurs) or generate function calls (good for large arrays as it allows
! use of hand-optimized assembly routines, SIMD instructions, etc.)</p>
  
  <p>Implementations marked <b>*</b> are performed by the frontend, and
  are never seen by the code generation routines.  Other calls may also
*** todo.html.orig	Sat Dec 13 12:32:59 2003
--- todo.html	Sat Apr  3 13:57:04 2004
***************
*** 1,14 ****
  <html>
  <head>
! <title>G95: Open Projects</title>
  </head>
  
  <body>
  
! <h1>G95: Open Projects</h1>
  
  <p>This list is probably not complete, but it seems long enough
! already :-)  Some of the items are also filed as a bug report
  in our <a href="http://gcc.gnu.org/bugzilla/";>bugzilla problem
  report database</a> as indicated below.</p>
  
--- 1,14 ----
  <html>
  <head>
! <title>gfortran: Open Projects</title>
  </head>
  
  <body>
  
! <h1>gfortran: Open Projects</h1>
  
  <p>This list is probably not complete, but it seems long enough
! already.  Some of the items are also filed as a bug reports
  in our <a href="http://gcc.gnu.org/bugzilla/";>bugzilla problem
  report database</a> as indicated below.</p>
  
*************** report database</a> as indicated below.<
*** 32,38 ****
    <li>Improve error printing for diagnostics within simplification
    functions.</li>
    <li>See about making Emacs-parsable error messages.</li>
!   <li>Don't bother storing non-parameter variable initializers in modules.</li>
    <li>Check for improper (full section) use of assumed size arrays.</li>
    <li>Do something about the expr-&gt;symbol vs expr-&gt;value.function.esym mess.</li>
  </ul>
--- 32,38 ----
    <li>Improve error printing for diagnostics within simplification
    functions.</li>
    <li>See about making Emacs-parsable error messages.</li>
!   <li>Do not bother storing non-parameter variable initializers in modules.</li>
    <li>Check for improper (full section) use of assumed size arrays.</li>
    <li>Do something about the expr-&gt;symbol vs expr-&gt;value.function.esym mess.</li>
  </ul>
*************** report database</a> as indicated below.<
*** 54,60 ****
    <li>Finish compiler side of intrinsic functions.</li>
    <li>Produce debugging information.</li>
    <li>Improve generated code (lots of room for that).</li>
!   <li>Don't create array descriptors where we don't need them (temporary
        arrays).</li>
    <li>Support large (unexpanded) array constructors as variable
        initializers.</li>
--- 54,60 ----
    <li>Finish compiler side of intrinsic functions.</li>
    <li>Produce debugging information.</li>
    <li>Improve generated code (lots of room for that).</li>
!   <li>Do not create array descriptors where we do not need them (temporary
        arrays).</li>
    <li>Support large (unexpanded) array constructors as variable
        initializers.</li>
*************** report database</a> as indicated below.<
*** 87,93 ****
  <ul>
    <li>Figure out what causes the remaining testsuite parse failures.</li>
    <li>Add more testcases to the execution test suite.</li>
!   <li>Add negative tests (ie check invalid code is rejected).</li>
  </ul>
  
  
--- 87,93 ----
  <ul>
    <li>Figure out what causes the remaining testsuite parse failures.</li>
    <li>Add more testcases to the execution test suite.</li>
!   <li>Add negative tests (i.e. check invalid code is rejected).</li>
  </ul>
  
  
*** usage.html.orig	Sat Feb 14 20:47:09 2004
--- usage.html	Sat Apr  3 13:57:04 2004
***************
*** 1,10 ****
  <html>
  <head>
! <title>G95: Using the Compiler</title>
  </head>
  
  <body>
! <h1>G95: Using the Compiler</h1>
  
  <h2>Contents</h2>
  <ul>
--- 1,10 ----
  <html>
  <head>
! <title>gfortran: Using the Compiler</title>
  </head>
  
  <body>
! <h1>gfortran: Using the Compiler</h1>
  
  <h2>Contents</h2>
  <ul>
***************
*** 15,53 ****
      <li><a href="#fixed">Compiling Fixed Form Sources</a></li>
      <li><a href="#fname">Compiling Files Not Named
                                     <code>*.f9[05]</code></a></li>
!     <li><a href="#g77">Compatibility With G77</a></li>
!     <li><a href="#fend">Running the Compiler Frontend</a></li>
      </ul>
  </li>
  </ul>
  
  <h2><a name="intro">Introduction</a></h2>
  <p>
! This page is meant to give a quick overview on how to use G95. It
  is merely a substitute for a complete manual, which has not yet been
  written.
  </p>
  
  <p>
! G95 builds on GCC, and thus
  shares most characteristics with it. If you know how to use GCC, there
  will not be much new information for you in this document. Especially,
  the options for optimization and the generation of debugging
! information will not be outlined here.
  </p>
  
  <h2><a name="bu">Basic Usage</a></h2>
  <p>
! G95 is used to compile a source file, <code>source.f90</code>, to
  an object file, <code>object.o</code>, or an executable,
  <code>executable</code>. Along the way it generates module description
  files for the modules it encounters, these are named
! <code><i>nameofmodule</i>.mod</code>. If a module is used, G95 will
! read from these same file. 
  </p>
  
  <p>
! In order to compile the source file <code>source.f90</code>
  one would run: <code>gfortran -c source.f90</code><br />
  The output file will automatically be named
  <code>source.o</code>. This is an object file, which cannot be executed.
--- 15,53 ----
      <li><a href="#fixed">Compiling Fixed Form Sources</a></li>
      <li><a href="#fname">Compiling Files Not Named
                                     <code>*.f9[05]</code></a></li>
!     <li><a href="#g77">Compatibility With g77</a></li>
!     <li><a href="#fend">Running the Compiler front end</a></li>
      </ul>
  </li>
  </ul>
  
  <h2><a name="intro">Introduction</a></h2>
  <p>
! This page is meant to give a quick overview on how to use gfortran. It
  is merely a substitute for a complete manual, which has not yet been
  written.
  </p>
  
  <p>
! Gfortran builds on GCC, and thus
  shares most characteristics with it. If you know how to use GCC, there
  will not be much new information for you in this document. Especially,
  the options for optimization and the generation of debugging
! information are not outlined here.
  </p>
  
  <h2><a name="bu">Basic Usage</a></h2>
  <p>
! Gfortran is used to compile a source file, <code>source.f90</code>, to
  an object file, <code>object.o</code>, or an executable,
  <code>executable</code>. Along the way it generates module description
  files for the modules it encounters, these are named
! <code><i>nameofmodule</i>.mod</code>. If a module is used, gfortran will
! read from these same files. 
  </p>
  
  <p>
! In order to compile the source file <code>source.f90</code>,
  one would run: <code>gfortran -c source.f90</code><br />
  The output file will automatically be named
  <code>source.o</code>. This is an object file, which cannot be executed.
*************** One may also skip the separate compilati
*** 71,106 ****
  such as <code>gfortran -o executable source1.f90 source2.f90</code> which
  will compile the source files <code>source1.f90</code> and
  <code>source2.f90</code>, link and generate the executable
! <code>executable</code> in one step. You can also put object files on this command
! line, they will be automatically linked in during the link step.
  </p>
  
  <h2><a name="ao">Advanced Options</a></h2>
  <p>
! Sometimes the basic possibilities given above don't match the user's
  needs. Therefore this section outlines other stuff the user might
  want to know. 
  </p>
  
  <h3><a name="fixed">Compiling Fixed Form Sources</a></h3>
  <p>
! When <code>gfortran</code> is run on a file, whose name ends in <code>.f90</code> or
! <code>.f95</code>, g95 assumes a free form source file. If that file
  actually is a fixed form source file, the user has to give the
  <code>-ffixed-form</code> command line option. The precise semantics
! of this option, and other options relating to fixed form vs. free form
! input are the same as in G77, and may be found in G77's documentation.
  </p>
  
  <h3><a name="fname">Compiling Files Not Named <code>*.f9[05]</code></a></h3>
  <p>
! When running <code>gfortran</code> one actually doesn't run the compiler,
  but the compiler driver. This driver interprets the command
  line options given, and hands the work off to the actual compiler,
  the assembler, and the linker. By default, this compiler driver
  decides by the extensions of the given file names what to do. A file
! named <code>foo.c</code> is handed to the C compiler, a file named
! <code>bar.f</code> is handed to the Fortran 77 compiler, a file named
  <code>moo.f90</code> is handed to the Fortran 95 compiler, etc. To
  overrule this behavior, one has to precede the filename by the argument
  <code>-x <i>lang</i></code>, where <code><i>lang</i></code> is a string
--- 71,106 ----
  such as <code>gfortran -o executable source1.f90 source2.f90</code> which
  will compile the source files <code>source1.f90</code> and
  <code>source2.f90</code>, link and generate the executable
! <code>executable</code> in one step. You can also put object files on this
! command line, they will be automatically linked in during the link step.
  </p>
  
  <h2><a name="ao">Advanced Options</a></h2>
  <p>
! Sometimes the basic possibilities given above do not match the user's
  needs. Therefore this section outlines other stuff the user might
  want to know. 
  </p>
  
  <h3><a name="fixed">Compiling Fixed Form Sources</a></h3>
  <p>
! When <code>gfortran</code> is run on a file, whose name ends in
! <code>.f90</code> or
! <code>.f95</code>, gfortran assumes a free form source file. If that file
  actually is a fixed form source file, the user has to give the
  <code>-ffixed-form</code> command line option. The precise semantics
! of this option, and other options relating to fixed form versus free form
! input are the same as in g77, and may be found in g77's documentation.
  </p>
  
  <h3><a name="fname">Compiling Files Not Named <code>*.f9[05]</code></a></h3>
  <p>
! When running <code>gfortran</code> one actually does not run the compiler,
  but the compiler driver. This driver interprets the command
  line options given, and hands the work off to the actual compiler,
  the assembler, and the linker. By default, this compiler driver
  decides by the extensions of the given file names what to do. A file
! named <code>foo.c</code> is handed to the C compiler and a file named
  <code>moo.f90</code> is handed to the Fortran 95 compiler, etc. To
  overrule this behavior, one has to precede the filename by the argument
  <code>-x <i>lang</i></code>, where <code><i>lang</i></code> is a string
*************** identifying the requested language. For 
*** 109,121 ****
  </p>
  
  <p>
- It is important to notice that files named <code>*.f</code> are by
- default assumed to be written in Fortran 77, and are not handled by
- G95. In order to compile such files with G95, one thus has to explicitly
- give <code>-x f95</code>, as in <code>gfortran -c -x f95 bar.f</code>.
- </p> 
- 
- <p>
  Since Fortran allows for two different kinds of input, free form
  source code and fixed form source code, the compiler has to know which
  kind of input it is given. The rule in place is as follows: files whose name
--- 109,114 ----
*************** be explicitly given. This may be done by
*** 126,166 ****
  described above, which may also be used to override these rules.
  </p>
  
! <h3><a name="g77">Compatibility with G77</a></h3>
  <p>
  In order to efficiently implement the passing of array sections,
  binary compatibility to Fortran 77 had to be abandoned. If the user
  wishes to link his sources with old Fortran 77 codes, the command line
  option <code>-fg77-calls</code> changes back to the old calling
! convention used by G77.
  </p>
  
  <p>
! When linking with code compiled by G77, one also has to take care, because
! G77 and G95 use different libraries. Especially I/O might get messed
! up due to this. Your safest bet is to only use I/O in either the G77 compiled
! parts or the G95 compiled parts, but not both, and to use the compiler
  driver of the part which uses I/O in the final link step. There might be
! circumstances where doing I/O in both works, but there's nothing
  guaranteed. In the final link step you should also explicitly specify
! the libraries of both compilers, i.e. <code>-lgfortran</code> for G95,
! <code>-lg2c</code> for G77.
  </p>
  
  <h3><a name="fend">Running the Compiler Frontend</a></h3>
  <p>
! One may use G95 as a syntax checker (or verify that G95's frontend
! correctly accepts/rejects a program), by specifying
! <code>-fsyntax-only</code> on the command line. G95 will then not
  generate object files.
  </p>
  
  <p>
  When given the command line option <code>-fdump-parse-tree</code>,
! G95 will print a representation of the parsed program, detailing both
  the data objects and the executable statements of the program in a
! Lisp-inspired notation. One remark for Fortran oldtimers:
! <code>ASSIGN</code> in these dumps doesn't refer to the
  <code>ASSIGN</code> statement, but to the operation of assignment,
  i.e. sloppily speaking, the <code>=</code> operator.
  </p>
--- 119,159 ----
  described above, which may also be used to override these rules.
  </p>
  
! <h3><a name="g77">Compatibility with g77</a></h3>
  <p>
  In order to efficiently implement the passing of array sections,
  binary compatibility to Fortran 77 had to be abandoned. If the user
  wishes to link his sources with old Fortran 77 codes, the command line
  option <code>-fg77-calls</code> changes back to the old calling
! convention used by g77.
  </p>
  
  <p>
! When linking with code compiled by g77, one also has to take care, because
! g77 and gfortran use different libraries. Especially I/O might get messed
! up due to this. Your safest bet is to only use I/O in either the g77 compiled
! parts or the g95 compiled parts, but not both, and to use the compiler
  driver of the part which uses I/O in the final link step. There might be
! circumstances where doing I/O in both works, but there is nothing
  guaranteed. In the final link step you should also explicitly specify
! the libraries of both compilers, i.e. <code>-lgfortran</code> for gfortran,
! <code>-lg2c</code> for g77.
  </p>
  
  <h3><a name="fend">Running the Compiler Frontend</a></h3>
  <p>
! One may use gfortran as a syntax checker (or verify that gfortran's frontend
! correctly accepts or rejects a program), by specifying
! <code>-fsyntax-only</code> on the command line. Gfortran will then not
  generate object files.
  </p>
  
  <p>
  When given the command line option <code>-fdump-parse-tree</code>,
! gfortran will print a representation of the parsed program, detailing both
  the data objects and the executable statements of the program in a
! Lisp-inspired notation. One remark for Fortran old timers:
! <code>ASSIGN</code> in these dumps does not refer to the
  <code>ASSIGN</code> statement, but to the operation of assignment,
  i.e. sloppily speaking, the <code>=</code> operator.
  </p>

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]