Fortran

Each topic is a divided into the following sections:-

Overview

Fortran (originally from Formulae Translation) is general purpose programming language that can trace is origins back to the 1950s. The language has seen several major changes since then. An ANSI standard was ratified in 1977 and the language was called Fortran77 to commemorate the fact. In this form it became widespread in HEP and still represents a very large code base. Any HEP experiment that started before ~1995 is likely to have a significant amount of Fortran77 code. More recently Fortran90, a superset of Fortran77 has emerged but too late to dominate current HEP code development that has now moved on to C++ and Java.

Purpose

Fortran is excellent for computationally intensive applications. Unlike C/C++ array handling is built into the language. Fortran77 is a static language i.e the programmer has to decide at compile time how many and how big all variables and arrays are. This very serious weakness resulted in the HEP community developing several successful Fortran memory managers, the last of the breed was call ZEBRA which forms the basis for such codes as GEANT3 and PAW. Fortran90 is dynamic and has some elements that are "Object Oriented like", but by no stretch of the imagination can it be called an OO language. However it has constructs that allow it to map onto parallel processors so is still competitive in this particular niche.

Availability

Commercial Fortran compilers are available on all major platforms. GNU have a free compiler (g77) for UNIX platforms.

Using at Oxford

Fortran77 is available on Linux and windows.

Further Information

Tutorial

A basic introduction to Fortran77 can be found here

Books

The contact for this page has not read a book on Fortran for ~ 30 years, so won't recommend one. Take a look at Amazon!

Courses

OUCS offers a Programming in Fortran course although it is not available every term.

FAQs

A good FAQ can be found here.

Hints and Tips

I am sorry, this section is currently empty.

References

I am sorry, this section is currently empty.

Contact

Nick West

If you have any comments about this page please send them to Nick West