Fortran was one of the first computer programming languages and,
despite its age, continues to be widely used in science and
engineering. An ongoing modernization process slowly introduces
features found in more modern languages. The result is the ANSI
standards Fortran 77 and
Fortran 90 [300,16]. The books by
Metcalf and Reid [204], Adams et al. [3], and
Brainerd, Goldberg, and Adams [43] provide good introductions to
Fortran 90. Kerrigan [171] addresses the topic of migrating
existing codes to Fortran 90. Chapter 7 reviews some
Fortran 90 features.

Many parallel dialects of Fortran have been designed over the years.
For example, Karp and Babb survey ten such dialects [165].
Most were designed for specifying concurrency in shared-memory
computers and hence do not provide constructs for managing locality.
Nor do they enforce determinism or modularity. Several recent
language designs have emphasized data-parallel programming; these are
discussed in Chapter 7, as is work on parallelizing
compilers. Fortran M is distinguished by its support for task
parallelism, deterministic execution, and modularity. Chandy and
Foster provide both a language description and a more formal
definition [102,51], while the monograph Programming in
Fortran M [106] provides a tutorial and reference manual
for the Argonne Fortran M compiler.

Here is a
Web Tour
providing access to additional information on programming in
Fortran M, including a public-domain compiler, a tutorial, and example
programs.