The Azimuth Project
FORTRAN

Contents

Idea

FORTRAN is a programming language designed for numerical computation.

This page is a stub collecting information, with the long term goal of a GCM written with modern tools in mind. “Modern” is to be understood in the sense of general software engineering, which does not consider FORTRAN as a modern programming language.

Details

FORTRAN seems to be used exclusively by scientists interested in high performance numerical computing, it is hardly taught by computer science departments.

This leads to an unfortunate schism in the high performance computing community: On one hand, there are scientists with various backgrounds but less training in software engineering using FORTRAN, on the other hand there is a large number of computer scientists and industrial programmers who neither know nor are interested in FORTRAN.

Compiler and IDE

Windows

The following tools are all available for free.

Compiler

A FORTRAN compiler for Windows is included in the MinGW ( “Minimalist GNU for Windows”) tool collection, see MinGW.

One can also use Cygwin. Ensure that the MingGW resp. the Cygwin installation is contained in your Windows path variable.

Integrated Development Environment

Both MinGW and Cygwin can be integrated with Eclipse using the plugin Photran. You will need to download Eclipse with the C/C++ - Plugin. Simply follow the installation instructions on the Photran homepage at the Eclipse project.

Do not forget to include your compiler on the Windows path variable. The Photran installation guide explains what needs to be done for Cygwin.

Hello World

You need to create a FORTRAN project. Check that your compiler is listed in the Includes-Section of your new project. Create a new FORTRAN source file for our hello world program.

Note that the compiler will probably infer your FORTRAN dialect from the file ending, so in order to get the following to work, name your file e.g. HELLO.f90 to indicate FORTRAN 90. If you don’t do that, your compiler may treat your code as FORTRAN 77, which won’t work.

And this is “hello world” in FORTRAN 90:

 program hello
      print *, "Hello World!"
 end program hello

References

Books

A good introductory book (Wikipedia’s references are slightly outdated, last visited on 25.01.2013):

  • Michael Metcalf, John Reid, Malcolm Cohen: Modern Fortran Explained. Oxford University Press, Oxford 2011

Online

There is a project concerned with the automatic translation of FORTRAN numerical libraries to Java: