I've complete a major overhaul of coarrays, a method for writing parallel programs in standard (F2008) fortran. No special compilation arguments are required. Running on a single machine is unchanged. The syntax is:
or however many cores you want to use. The improvements are for networked coarray programs. In this case, you can run a coarray program on multiple computers using regular networking protocols. Copy your executable to all machines that you want to run on. On one computer, run the master thread using:
Instead of '10', use the total number of images you want to run. The master thread finds the compute nodes and is a central node that manages synchronization of the images. On the computers you want to run images on (including the master node) run
where 'x' is replaced with the number of images that you want to run on that particular computer. Each 'host' will find the master node, which will coordinate running your program. More information, along with a new example of using a multiple cores to perform integration is on the coarray page.
James Tappin reported that the gtk-fortran library now works with g95.
James Tappin reported some more C_LOC mayhem that has been fixed.
Etienne Orliac sent in a crash on an older version of g95 that has thankfully disappeared.
Brian Salter-Duke reported a problem with some broken x86-64 download links that have been fixed.
Paul Keir sent in a problem with intrinsic functions with optional arguments in initialization expressions that has been fixed.
Been working on some upgrades to the coarray library over the past week. The SMP interface remains the same, but the network version will be much easier to use and install.
Michael Richmond pointed out a problem with the source-- different config.guess scripts for the compiler and library sources. This led to the library being installed in the wrong directory. Fixed.
James Tappin sent in a problem with temporary arrays consisting of c_ptr types that has been fixed.
John Harper pointed out an internal error when Z formatting was used on a kind=10 real. Demoted the error to a mere runtime error.
James Tappin sent in some more c-binding mayhem that is hopefully fixed now.
John Harper reported a constraint on PRIVATE/PUBLIC statements that was not being enforced. Added. John also pointed out that IEEE_SELECTED_REAL_KIND wasn't implemented. Added.
Angelo Graziozi reported a problem building under cygwin. The problem is that cygwin implcitly includes ctype.h, whereas g95 uses its own ctype implementation to make it portable across differences in C libraries. The solution we've adopted is to defer to the system ctype if it is included implicitly.
Opening night for Messiah, went really well, out late at the chorus get-together. I'm signed up for all five of our performances, so things may be a little slow in g95-land.
Francesco Spinozzi reported some problems with the x86 debian build. I've fixed the problems with fingers crossed.
James Tappin sent in a problem with C_LOC that has been fixed.
Undid one of the memory leak fixes, since it causes a crash under unknown conditions.
Fiddled a bit with the test suite, plugged a pair of memory leaks.
Stefan Schneider sent in a bug with procedure pointers as derived type components that has been fixed.
James Tappin pointed out that f2003 enumerators were being given the fortran default integer kind instead of the C_INT kind. Fixed.
Got the new debian package builder working, the new prototype build is up. Also planning to do the same thing for x86-64.
Steven Lenz sent in the best kind of bug-- on closer examination it vanished completely.
Apparently, the latest Ubuntu breaks the current debian package. I've spent a few days writing a debian package builder. If you don't know, a debian package is an ar archive containing three files-- a marker file, a tar-gzipped file containing configuration files and a tar-gzipped file containing the program and data. The builder program creates these files without any temporary files.