The Fortran coarrays course

Download coarrays Download coarrays
Download coarrays
Download coarrays

Fortran coarrays have been around for over 20 years. They were introduced into the 2008 Fortran standard. Further coarray intrinsics and other facilities are included into the 2018 Draft Fortran standard. This coarrays course covers most of the 2008 functionality and some of the 2018 features. The course includes multiple examples and full notes. The course is distributed under BSD license. See LICENSE file. Fortran coarrays are used extensively in CASUP cellular automata library for HPC.

Feedback and support

With any questions, bug reports, feedback and any other comments please submit a ticket.

Course notes

Screen talk, PDF




9-NOV-2017: talk to APSG BCS

I was invited to talk at a meeting of Advanced Programming Specialist Group of BCS on 9-NOV-2017 in London. Here's the recording.

28-SEP-2017: Fortran 2020

I gave a short talk "Choosing the technical content for Fortran 2020" at the 2017 annual general meeting of the Fortran specialist group (FSG AGM) of BCS.

26-APR-2017: PAW17 submissions open

The workshop:

The PGAS applications workshop will again be held as part of the Supercomputing conference, SC17, in Denver, Colorado, USA. Last time Fortran coarrays was an important part of the workshop. This time perhaps even more so because of the availability of the OpenCoarrays transport library for GCC. Consider submitting your work to this workshop and/or attending it!


Pics from a bike trip in South Wales, UK, between Newport and Cardiff.

MAR-2017: ICE with OpenCoarrays on submodule

Submodules is nice new feature in Fortran 2008 standard. Support for it is still shaky. I found bugs in submodule support in Cray CCE, which have been fixed now. It seems gfortran submodule bug exposed by the use of coarrays has also been fixed, see GCC bugzilla PR 71838.

MAR-2017: FreeBSD port of OpenCoarrays

I submitted the first attempt at making a FreeBSD port for OpenCoarrays as PR 217283. At present the port builds with MPICH and passes some (but not all) OpenCoarrays tests. I'm working with Tijl Coosemans, FreeBSD ports committer, to make the port build/work also with OpenMPI and OpenMPI2. An attempt to port OpenCoarrays to a non-linux system uncovered several linuxisms in OpenCoarrays build/install scripts, see OpenCoarays PR #338.

FEB-2017: Informal report from J3 meeting 212, held in Las Vegas, USA.

FEB-2017: notes updated with better images, more detailed information, latest compiler support data.

NOV-2016: the course notes updated with a section on atomics.

JUN-2016: I attended a WG5/J3 annual meeting at Boulder, Colorado, USA. Here's a brief report.

A geodesic from London to Boulder:

geodesic from London to Boulder

18-MAY-2016: cut release 1.6. Updated TAU examples and doc.

13-MAY-2016: updated course notes with basic info on TAU profiling/tracing. Cut release 1.5. For more info see CASUP blog entries for MAY-2016.

4-MAY-2016: Fixed two profiling examples, 5pi and 9laplace, which are now fully supported by TAU. Some profiling results are shown on CASUP pages for MAY-2016. Refer to README files in relevant directories for build instructions.

Other Fortran related projects

validate this page