Fortran M is a small set of extensions to Fortran that supports a modular approach to the design of task parallel, message-passing programs. It has the following features. 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. 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.
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. Because message passing is incorporated into the language, a compiler can optimize communication as well as computation. To go to the Fortran M home page at Argonne National Lab which includes an on-line version of the Fortran M User Manual, click here .