[MPI3 Fortran] [Mpi-comments] MPI 3.0:Fortran 2008 interface - issue with the LOGICAL kind
Craig Rasmussen
rasmus at cas.uoregon.edu
Fri Mar 15 20:01:34 CDT 2013
On Mar 14, 2013, at 2:14 PM, Rolf Rabenseifner wrote:
> Dear all,
>
> I would like to learn
> - Who is implementing the new mpi_f08 module
> -- for mpich?
> Is this you, Bill Long?
> -- for OpenMPI?
> Is this you, Craig?
Jeff and I have done the Open MPI implementation.
> -- who else is currently implementing the
> new Fortran mpi_f08 module?
> - Do I understand correctly that both implementations:
> -- do use Fortran-written wrappers as MPI user-API?
We use thin Fortran wrappers that call the original Open MPI Fortran wrappers (mpif.h). For performance reasons we will switch to thin Fortran wrappers calling the C implementation directly for some routines latter.
> -- I.e., it is simple to change it to BIND(C) or non-BIND(C)?
We use macro magic to turn BIND(C) on and off so it is not hard for us to change.
> -- I.e., only for the tools people, it is of
> interest whether BIND(C) or non-BIND(C) was chosen?
BIND(C) provides a well known name for the tools people to implement and removes the underscore compiler dependent issue.
Rolf, is an implementation compliant if Fortran wrappers are used in a module to call C directly so that the tools community can't intercept the call in Fortran? Does this break any current tools implementations? I assume it does as I believe the MPI standard requires that a Fortran MPI user be able to intercept the MPI call in Fortran and then call MPI.
> -- What are other implementations do?
>
> I ask this, to learn whether the BIND(C)/non-BIND(C) freedom
> for the implementations can/should be reduced
> to make life easier.
>
> The current proposal #364 is based on minimal restrictions
> based on the missing C-interoperability of LOGICAL.
> I expect, that life can be more simple if we make more
> restrictions, e.g., same BIND(C) roule for all routine groups
> (this would mean no BIND(C) in the moment).
I would like to argue for a solution that would allow BIND(C) to be used within 10 years to remove ALL requirements for the tools community to handle the underscore problem.
-craig
More information about the mpiwg-fortran
mailing list