[MPI3 Fortran] [Mpi-comments] MPI 3.0: Fortran 2008 interface - issue with the LOGICAL kind

Jeff Squyres (jsquyres) jsquyres at cisco.com
Tue Mar 26 08:38:39 CDT 2013

On Mar 25, 2013, at 2:35 PM, Bill Long <longb at cray.com> wrote:

>> I'm strongly in favor of option 3.  It is the only option that allows
>> the possibility of underscore name mangling disappearing in the future.
>>  I think most (if not all) MPI Fortran implementations will eventually
>> evolve to thin wrappers calling the C API.  

Remember that Open MPI can never do this approach since our C handles != Fortran handles, and Fortran wrappers will not be able to reach back into the back-end C MPI objects (at least, not without a truckload of extra interop code -- the Fortran bindings layer would have to gain an understanding of the back-end MPI C objects, and that seems like a terrible idea).

> 6. You can isolate the issues of Fortran types (compiled with -i8, meaning of LOGICAL, character arguments with len > 1) into the Fortran wrappers so that the C library writers do not have to know about these issues.   Simplifies the maintenance and testing issues for the C library code.

There's a flaw in this logic.

Yes, you divorce the *bindings* between C and Fortran, but the MPI library still has to know whether INTEGER is 4 or 8 bytes (for example) so that it can send/receive them properly.  I.e., the MPI datatypes are intrinsically tied to the language's native types, and are orthogonal to how the bindings are implemented.

Jeff Squyres
jsquyres at cisco.com
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/

More information about the mpiwg-fortran mailing list