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