Fortran M Programming Language


Ian Foster, Robert Olson, Steve Tuecke, Ming Xu, Dave Kohr

Fortran M is a small set of extensions to Fortran 77 that supports a modular approach to the design of message-passing programs. It has the following features.

(1) Modularity. Programs are constructed by using explicitly-declared communication channels to plug together program modules called processes. A process can encapsulate common data, subprocesses, and internal communication.

(2) Safety. Operations on channels are restricted so as to guarantee deterministic execution, even in dynamic computations that create and delete processes and channels. Channels are typed, so a compiler can check for correct usage.

(3) Architecture Independence. The mapping of processes to processors can be specified with respect to a virtual computer with size and shape different from that of the target computer. Mapping is specified by annotations that influence performance but not correctness.

(4) Efficiency. Fortran M can be compiled efficiently for uniprocessors, shared-memory computers, distributed-memory computers, and networks of workstations. Because message passing is incorporated into the language, a compiler can optimize communication as well as computation.

CIT Airshed Model

The CIT Airshed Model is a code used to simulate the time evolution of atmospheric pollutants, specifically in the Los Angeles basin. The parallel code is based on a sequential Fortran program, and uses FM to implement a more complex communication structure. You can see more information and a movie.

Particle in Cell

This parallel code uses FM's lightweight threading and communication mechanisms. A set of overheads provides a brief explanation of the application; a paper provides more details.

Computational Biology (SCIMMS)

SCIMMS is an algorithm for analyzing chromatography data. The parallel code is based on a sequential Fortran program, and uses FM to implement a fairly simple communication structure. Click here to read more about the application and its parallel implementation.

For more informaton see the Fortran M Applications Page.


Catalog #:

IBM RS/6000 AIX 3.2, SunOS 4.1.x


FM Compiler (Source)
FM Compiler (IBM RS/6000 AIX 3.2 binaries)
FM Compiler (SunOS 4.1.x binaries)
Programming in Fortran M (Postscript)
Programming in Fortran M (Latex source)


Danny Powell<>


Compatability libraries are available that allow the integration of message-passing programs into an Fortran M framework. Send mail to for details. A compilation system that integrates Fortran M and HPF is under development in collaboration with Syracuse University.

More information can be found at the Fortran M Web pages. (