gfortran — the GNU Fortran compiler, part of GCC
Gfortran is the name of the GNU Fortran project, developing a free Fortran 95/2003/2008/2018 compiler for GCC, the GNU Compiler Collection. 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.
This wiki contains links to binary packages for gfortran, up-to-date status of the compiler, recently fixed bugs, etc. You can find here our "getting started" web page for new users of gfortran.
The official homepage for gfortran also contains a limited amount of general information about the project, its goals and the ways you can contribute.
A Guide to Building gcc/gfortran is available.
Contents
Quick links
What's new in gfortran: 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 6, 7, 8, 9
Download
Binaries for Windows, Linux, MacOS and much more!
Vendor-provided packages for common OS distributions
Platforms where gfortran is known to work
Manuals and other documentation
Michael Metcalf's article on Fortran language features in Wikipedia
Fortran GUI Interface (Fortran interface for Gtk)
- GNU Fortran-related mailing lists and news groups
GNU Fortran user list (less active than the one above)
comp.lang.fortran news group (Fortran in general) - comp.lang.fortran rhinocerus.net
Fortran 90 mailing list (Fortran in general, less active than comp.lang.fortran)
Bugs fixed in 2018, Bugs submitted in 2018, All bugs closed in 2018
Bugs fixed in 2019, Bugs submitted in 2019, All bugs closed in 2019
Bugs fixed in 2020, Bugs submitted in 2020, All bugs closed in 2020
Bugs fixed in 2021, Bugs submitted in 2021, All bugs closed in 2021
Bugs fixed in 2022, Bugs submitted in 2022, All bugs closed in 2022
Bugs fixed in 2023, Bugs submitted in 2023, All bugs closed in 2023
Bugs fixed in 2024, Bugs submitted in 2024, All bugs closed in 2024
ftagshtml A call graph generator for Fortran and C
f90cache A Fortran 90 compiler cache (works like ccache)
There is also a list of bugs that we do not want to fix, at least at present.
Using gfortran
For gfortran developers
For those despairing of git: Some help can be found in the GitCookbook.
- Bug Bashing (status 6th May 2024; incl. some double counting)
Regressions 89 bugs 12 assigned
PRs where a valid program is rejected or wrong code is produced 2 bugs, 0 assigned (Fortran 95 with default options)
Serious bugs 4 bugs 1 assigned; includes Fortran 95 bugs from above plus selected other bugs with high priority
PRs where wrong code is produced 161 bugs 16 assigned [often triggered for special cases only]
PRs where a valid Fortran program is not accepted (internal compiler error, wrongly rejected), wrong code is produced or where the compile time or memory is excessively high 400 bugs 35 assigned
PRs where invalid code is accepted or gives an internal compiler error 157 bugs 5 assigned
PRs which show where the diagnostics can be improved 157 bugs 1 assigned
All reports (bug reports, feature requests etc.): 1281 reports
Graphical bug count timeline (Bugzilla account unfortunately required)
Projects for inclusion into gfortran-4.6: please add your own projects there, with an approximate date of merging and state of readiness
Action list for gfortran-4.5: summary of gfortran get-together of 2008-11-28
Fortran 2003 implementation status of the GNU Fortran Compiler (time line)
Fortran 2008 implementation status of the GNU Fortran Compiler
Fortran 2018 implementation status of the GNU Fortran Compiler
Implementation status of '''TS 29113''' on further interoperability of Fortran with C
Beginner's guide to writing testcases - see also on the main Wiki HowToPrepareATestcase
SymbolVersioning for runtime libraries.
GFortranScalarizer documents the scalarizer gfortran uses internally to translate array fortran statements into scalar code enclosed in a loop.
Manuals and other documentation
GFortran documentation is included with the GCC documentation, which is available from the GCC website. There is documentation for released compilers, and also documentation for the latest snapshot from the development tree. The manuals are re-generated nightly.
Documentation for the current development snapshot (PDF); optimization flags (PDF)
Documentation for the 5.1 release (PDF); optimization flags (PDF)
Documentation for the 4.9.2 release (PDF); optimization flags (PDF)
Documentation for the 4.8.4 release (PDF); optimization flags (PDF)
Documentation for the 4.7.4 release (PDF); optimization flags (PDF)
Documentation for the 4.6.4 release (PDF); optimization flags (PDF)
Documentation for the 4.5.4 release (PDF); optimization flags (PDF)
Documentation for the 4.4.7 release (PDF); optimization flags (PDF)
Documentation for the 4.3.6 release (PDF); optimization flags (PDF)
Documentation for the 4.2.4 release (PDF); optimization flags (PDF)
Documentation for the 4.1.2 release (PDF); optimization flags (PDF)
Documentation of the GNU Fortran Internals (PDF).
Doxygen documentation of the compiler, points to the full Doxygen documentation, including sources, globals and symbols. This allows you to follow the frontend code in some considerable detail.
GFortranUsage contains helpful info about using gfortran
g77 was the predecessor to gfortran. As of gcc-4.0, it is no longer actively supported
Draft versions of the Fortran standards can be downloaded from the standards committee websites; see GFortranStandards for details.
Floating point accuracy: Semantics of Floating Point Math in GCC, x87 note, Math_Optimization_Flags, Goldberg paper 2, Monniaux paper
Reporting bugs
You can report bugs in GCC bugzilla. You can look for existing bugs, track bug fixing progress, and report new bugs there. The list of all open gfortran bugs (including enhancement requests and low-priority bugs) can be found here. Before submitting a bug report, please update your version of gfortran to the latest available release of GCC. For example, if you find a bug with gfortran 4.0.2, then upgrade to at least GCC 4.1.0 and see if the bug is still present.
There is a separate page for the most wanted gfortran bugs, which contains a list of bugs that block gfortran from building major packages. Some ideas for enhancing gfortran can also be of interest...
Use the gfortran mailing list, fortran@gcc.gnu.org , to ask the gfortran community your questions, and report bugs if you are uncertain on how to handle bugzilla. We'll be glad to help!