[MPI3 Fortran] Choice buffer woes

Jeff Squyres jsquyres at cisco.com
Fri May 28 08:29:35 CDT 2010

Armed with a whiteboard and our laptops, Craig and I spent a few days in a room together earlier this week advancing the state of our prototype F08 MPI bindings implementation.  We made lots of progress (per emails from earlier this week), but were stymied on an important issue: MPI choice buffers.

We thought that we would be able to use ifort's !DEC$ ATTRIBUTES NO_ARG_CHECK functionality to emulate the new F08-style syntax in a "close enough" manner.  Unfortunately, it seems that this functionality only passes a dope vector when the caller passes an array.  If the caller passes a scalar, only the address of that scalar is passed.  After consultation with Steve Lionel, it doesn't look like there's any way for the called function to know whether it received just an address or a dope vector.

This is problematic for MPI.

Does anyone know of a Fortran compiler out there that has "ignore TKR" kinds of functionality and either a) always passes a dope vector or b) somehow notifies the called function whether it got an address or a dope vector?  (either would be fine for the MPI bindings prototype)

I mention this issue because without a working prototype, we can't take the bindings proposal to the overall MPI Forum.

Jeff Squyres
jsquyres at cisco.com
For corporate legal information go to:

More information about the mpiwg-fortran mailing list