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

Bill Long longb at cray.com
Tue Mar 26 11:16:01 CDT 2013

On 3/26/13 8:38 AM, Jeff Squyres (jsquyres) wrote:
> On Mar 25, 2013, at 2:35 PM, Bill Long <longb at cray.com> wrote:

>> 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.

I don't think there is a problem.  To accommodate -i8 you have to 
recompile the MPI module with the -i8 flag set.  We've been shipping two 
mpi modules as long as I can remember; the compiler scripts pick the 
right one based on how the user code is compiled.  Same as how we select 
the right version of other libraries that also have Fortran default type 
arguments. Within the MPI module source the values of MPI_INTEGER and 
the similar data types for other Fortran default types are set based on 
detection of the actual sizes of the default types (which change with 
the compiler options).  If you are using the module compiled with -i8, 
MPI_INTEGER will encode the information for an 8-byte integer.


Bill Long                                           longb at cray.com
Fortran Technical Support    &                 voice: 651-605-9024
Bioinformatics Software Development            fax:   651-605-9142
Cray Inc./Cray Plaza, Suite 210/380 Jackson St./St. Paul, MN 55101

More information about the mpiwg-fortran mailing list