Jump to content

FORTRAN: Difference between revisions

From EDM2
No edit summary
Line 1: Line 1:
Early and highly influential programming language designed by [[IBM]] in the 1950's, by now primarily used in numerical and scientific computing but on top of the usual inertia and the wide availability of libraries, FORTRAN can produce numerical code that is significantly faster that what you can expect from languages like [[C]] and [[Pascal]]. While Fortran was a major influence on the European [[Algol]] languages in the late 1950's, things have essentially turned around 180 degrees with all FORTRAN standards since the early 70's being heavily influenced by structured Algol derivatives like Pascal and [[Modula-2]].
Early and highly influential programming language designed by [[IBM]] in the 1950's, by now primarily used in numerical and scientific computing but on top of the usual inertia and the wide availability of libraries, FORTRAN can produce numerical code that is significantly faster that what you can expect from languages like [[C]] and [[Pascal]]. While Fortran was a major influence on the European [[Algol]] languages in the late 1950's, things have essentially turned around 180 degrees with all FORTRAN standards since the early 70's being heavily influenced by structured Algol derivatives like Pascal and [[Modula-2]].


Classic FORTRAN is always spelled all caps, Fortran 95 and later however are expected to be formatted as other nouns. We tend to use the older conventions here since only a couple of F95 OS/2 implementations showed up and they did not sell well so the bulk of OS/2 programming has traditionally been done in classic FORTRAN.
Classic FORTRAN is always spelled all caps, Fortran 90 and later however are expected to be formatted as other nouns. We tend to use the older conventions here since only a couple of F95 OS/2 implementations showed up and they did not sell well so the bulk of OS/2 programming has traditionally been done in classic FORTRAN.


==A list of OS/2 implementations of FORTRAN==
==A list of OS/2 implementations of FORTRAN==
Line 35: Line 35:
*
*
==Publications==
==Publications==
*
* T. Ellis: FORTRAN 77 Programming: with an Introduction to the FORTRAN 90 Standard  - 1990 - ISBN: 0201416387 - Out of print.
====Local articles====
====Local articles====
*  
*  


====External articles====
====External articles====
* Jeanne Adams: [https://www.cisl.ucar.edu/zine/96/spring/articles/3.f90-century.html Fortran evolving into the next century] - Explains some of the changes from Fortran90 to Fortran95.




Line 46: Line 47:
* [https://www.dur.ac.uk/resources/its/info/guides/47AdvancedFortran.pdf Advanced Fortran 90/95 Programming] by University of Durham Information Technology Service
* [https://www.dur.ac.uk/resources/its/info/guides/47AdvancedFortran.pdf Advanced Fortran 90/95 Programming] by University of Durham Information Technology Service
* Clive Page: [http://www.star.le.ac.uk/~cgp/f90course/f90.html Fortran90 for Fortran77 Programmers]
* Clive Page: [http://www.star.le.ac.uk/~cgp/f90course/f90.html Fortran90 for Fortran77 Programmers]
* Rob Davies, Alan Rea and Dimitris Tsaptsinos: [http://www.uv.es/dogarcar/man/IntrFortran90.pdf Introduction to Fortran 90; An introduction Course for Novice Programmers; Student Notes]
* Timothy H. Kaiser: [http://www.sdsc.edu/~tkaiser/f90.html Advanced Fortran90]


==Links==
==Links==
Line 64: Line 67:
* There were three sets of corrections, clarifications and minor additions to the Fortran90 standard published in [http://www.j3-fortran.org/doc/standing/archive/006/f90/Corrigendum_1.pdf TECHNICAL CORRIGENDUM 1], [http://www.j3-fortran.org/doc/standing/archive/006/f90/Corrigendum_2.pdf TECHNICAL CORRIGENDUM 2] and [http://www.j3-fortran.org/doc/standing/archive/006/f90/Corrigendum_3.pdf TECHNICAL CORRIGENDUM 3].
* There were three sets of corrections, clarifications and minor additions to the Fortran90 standard published in [http://www.j3-fortran.org/doc/standing/archive/006/f90/Corrigendum_1.pdf TECHNICAL CORRIGENDUM 1], [http://www.j3-fortran.org/doc/standing/archive/006/f90/Corrigendum_2.pdf TECHNICAL CORRIGENDUM 2] and [http://www.j3-fortran.org/doc/standing/archive/006/f90/Corrigendum_3.pdf TECHNICAL CORRIGENDUM 3].
* ISO also published [http://www.nag.co.uk/sc22wg5/Guidelines_for_Bindings-a.html Guidelines for Bindings to Fortran 90]
* ISO also published [http://www.nag.co.uk/sc22wg5/Guidelines_for_Bindings-a.html Guidelines for Bindings to Fortran 90]
* The UK MET Office published the [http://research.metoffice.gov.uk/research/nwp/numerical/fortran90/f90_standards.html European Standards For Writing and Documenting Exchangeable Fortran 90 Code]
* The UK MET Office published the [http://research.metoffice.gov.uk/research/nwp/numerical/fortran90/f90_standards.html European Standards For Writing and Documenting Exchangeable Fortran 90 Code].
 
====Fortran95====
====Fortran95====
* [http://j3-fortran.org/doc/standing/archive/007/97-007r2/pdf/97-007r2.pdf Fortran95] - 1997 Draft standard
* [http://j3-fortran.org/doc/standing/archive/007/97-007r2/pdf/97-007r2.pdf Fortran95] - 1997 Draft standard
* There were two sets of corrections, clarifications and minor additions to the Fortran95 standard published in [http://www.j3-fortran.org/doc/standing/archive/006/f95/Corrigendum_1.pdf TECHNICAL CORRIGENDUM 1] and [http://www.j3-fortran.org/doc/standing/archive/006/f95/Corrigendum_2.pdf TECHNICAL CORRIGENDUM 2].
* There were two sets of corrections, clarifications and minor additions to the Fortran95 standard published in [http://www.j3-fortran.org/doc/standing/archive/006/f95/Corrigendum_1.pdf TECHNICAL CORRIGENDUM 1] and [http://www.j3-fortran.org/doc/standing/archive/006/f95/Corrigendum_2.pdf TECHNICAL CORRIGENDUM 2].
====Fortran20xx====
====Fortran20xx====
* [ftp://ftp.nag.co.uk/sc22wg5/N1601-N1650/N1601.pdf.gz Draft Fortran2003 standard] - See also [http://www.futa.edu.ng/materials/FORTRANTEXT.pdf Fortran2003 handbook]
* [ftp://ftp.nag.co.uk/sc22wg5/N1601-N1650/N1601.pdf.gz Draft Fortran2003 standard] - See also [http://www.futa.edu.ng/materials/FORTRANTEXT.pdf Fortran2003 handbook]
Line 73: Line 78:
* [http://www.j3-fortran.org/doc/standing/links/010.pdf Workplan for Fortran2015]
* [http://www.j3-fortran.org/doc/standing/links/010.pdf Workplan for Fortran2015]


====Fortran MP====
Extensions to FORTRAN77, 90 and 95 to support programming multi-processor machines, the v4 also supports Fortran2003
* [http://www.openmp.org/mp-documents/fspec10.pdf OpenMP Fortran Application Program Interface - Version 1.0] - 1997
* [http://www.openmp.org/mp-documents/fspec11.pdf OpenMP Fortran Application Program Interface - Version 1.1] - 1999 - Includes previously published errata and interpretations to the 1.0 standard
* [http://www.openmp.org/mp-documents/fspec20.pdf OpenMP Fortran Application Program Interface - Version 2.0] - 2000
* [http://www.openmp.org/mp-documents/ferrata20.html Errata for OpenMP 2.0]
* [http://www.openmp.org/mp-documents/spec25.pdf OpenMP Application Program Interface - Version 2.5] - 2005
* [http://www.openmp.org/mp-documents/spec30.pdf OpenMP Application Program Interface - Version 3.0] - 2008
* [http://www.openmp.org/mp-documents/OpenMP3.1.pdf OpenMP Application Program Interface - Version 3.1] - 2011
* [http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf OpenMP Application Program Interface - Version 4.0.0] - 2013
* [http://openmp.org/mp-documents/OpenMP_Examples_4.0.1.pdf OpenMP Examples 4.0.1]
====Standards bodies====
* [http://www.j3-fortran.org/ Fortran Standards Committee homepage] - The home of FORTRAN standardisation since 1966, although usually credited to ANSI the standard is actually developed by "National Committee for Information Technology Standards" (NCITS) nowadays known as "InterNational Committee for Information Technology Standards " (INCITS), despite having no presence outside the USA.
* [http://www.j3-fortran.org/ Fortran Standards Committee homepage] - The home of FORTRAN standardisation since 1966, although usually credited to ANSI the standard is actually developed by "National Committee for Information Technology Standards" (NCITS) nowadays known as "InterNational Committee for Information Technology Standards " (INCITS), despite having no presence outside the USA.
* [http://openmp.org OpenMP] - Standards body for the Fortran MP variants.


==FORTRAN History==
==FORTRAN History==

Revision as of 17:26, 13 January 2015

Early and highly influential programming language designed by IBM in the 1950's, by now primarily used in numerical and scientific computing but on top of the usual inertia and the wide availability of libraries, FORTRAN can produce numerical code that is significantly faster that what you can expect from languages like C and Pascal. While Fortran was a major influence on the European Algol languages in the late 1950's, things have essentially turned around 180 degrees with all FORTRAN standards since the early 70's being heavily influenced by structured Algol derivatives like Pascal and Modula-2.

Classic FORTRAN is always spelled all caps, Fortran 90 and later however are expected to be formatted as other nouns. We tend to use the older conventions here since only a couple of F95 OS/2 implementations showed up and they did not sell well so the bulk of OS/2 programming has traditionally been done in classic FORTRAN.

A list of OS/2 implementations of FORTRAN

Libraries and bindings

A list of DOS implementations of FORTRAN

A list of FORTRAN implementations that run under WinOS/2

  • Microsoft FORTRAN77 - Commercial - Discontinued
  • Prospero FORTRAN 77 - Commercial - Discontinued - 16 bit development possible by cross-compiling from DOS or OS/2 with an optional library/linker package.

A list of FORTRAN implementations that run under Java

  • F2J Open source - Current

A list of FORTRAN implementations in JavaScript

Publications

  • T. Ellis: FORTRAN 77 Programming: with an Introduction to the FORTRAN 90 Standard - 1990 - ISBN: 0201416387 - Out of print.

Local articles

External articles


Tutorials and other learning material

Links

USENET

Standards

FORTRAN to FORTRAN IV

FORTRAN66 & FORTRAN77

Fortran 90

Fortran95

Fortran20xx

Fortran MP

Extensions to FORTRAN77, 90 and 95 to support programming multi-processor machines, the v4 also supports Fortran2003

Standards bodies

  • Fortran Standards Committee homepage - The home of FORTRAN standardisation since 1966, although usually credited to ANSI the standard is actually developed by "National Committee for Information Technology Standards" (NCITS) nowadays known as "InterNational Committee for Information Technology Standards " (INCITS), despite having no presence outside the USA.
  • OpenMP - Standards body for the Fortran MP variants.

FORTRAN History

  • Developed primarily by John Backus then working from the IBM headquarters on Madison Avenue in New York City, USA and formally introduced as an optional software for the IBM 704 computer in April 1957 even though IBM had shipped versions in 1956. The basic idea behind FORTRAN was for it to resemble common algebra notation as much as possible.