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

Bill Long longb at cray.com
Mon Mar 4 10:13:36 CST 2013



On 3/4/13 9:47 AM, Rolf Rabenseifner wrote:
> Dear all,
>
> I forget to say thank you to all of you who helped to solve
> this hard problem. It was a really helpful discussion.
> It is a pity that we could not keep the BIND(C) for
> all routines in mpi_f08, which was one goal with mpi_f08 and TS 29113.
>
> In my proposal #364, we have to remove BIND(C) from
>   - the 30 normal MPI routines with LOGICAL arguments,

I would be strongly against this, as it prevents putting the wrapper 
routines in a module.  We will have to start over from scratch with a 
vastly inferior implementation, with reduced performance.   (Unless you 
concurrently delete completely the mpif.h include file, in which case 
the BIND(C) on the wrappers is no needed any longer.)


>   - the  9 MPI routines with callbacks in the argument list,
>   - and 10 predefined callbacks,
> i.e., from 49 out of 357 MPI routines.
>
> I do not see a better solution that can be done by the MPI Forum.
> Better solutions are still possible for the 30 normal routines
> and/or for the 9 routines with callback-arguments as soon as
> the Fortran standard will include some additions and
> those additions are provided by the compilers - but if this
> will happen then it will not happen soon.
>
> It was luck that all routines with buffer arguments do not
> have also a LOGICAL argument.
>
> Best regards
> Rolf
>
> ------------------
> Malcolm and all MPI implementors,
> and TOOLS implementors,
>
> First Malcolm, thank you for your helpful answer.
> After all the discussion, the MPI-3.0 errata decision is
> very simple: Remove BIND(C) everywhere where LOGICAL is around.
>
> I did it in the ticket #364
> https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/364
>
> I hope that one of the implementors with Fortran knowledge goes
> through my proposal and returns an "okay" as a review on the ticket.
>
> The major changes:
>   - BIND(C) removed on all callback abstract interfaces.
>   - BIND(C) removed on all predefined callbacks.
>   - Creating a new routine group "MPI_TEST" for all MPI routines
>     with LOGICAL arguments, except MPI_OP_CREATE, which is already
>     in an own group.
>   - Telling that the routines in the groups MPI_TEST,
>     MPI_OP_CREATE, MPI_REGISTER_DATEREP, and MPI_COMM_KEYVAL_CREATE
>     cannot be implemented with BIND(C) in Fortran 2008 + TS 29113 and earlier.
>
> TOOLS implementors should be aware that I added this new routine group.
>
> Best regards
> Rolf
>
> ----- Original Message -----
>> From: "Malcolm Cohen" <malcolm at nag-j.co.jp>
>> To: "MPI-3 Fortran working group" <mpi3-fortran at lists.mpi-forum.org>
>> Sent: Monday, March 4, 2013 3:56:50 AM
>> Subject: Re: [MPI3 Fortran] Fwd: [Mpi-comments] MPI 3.0:Fortran 2008 interface - issue with the LOGICAL kind
>>>     (B1) Is it possible, that a BIND(C) routine
>>>          has a dummy argument that is a non-BIND(C)
>>>          ABSTRACT INTERFACE procedure argument?
>>
>> That is not possible: all dummy arguments of a BIND(C) routine must be
>> interoperable - for procedures that requires BIND(C).
>>
>> It would be reasonable to extend C_FUNLOC and C_F_PROCPOINTER to
>> permit
>> non-interoperable procedures, similarly to how we permit
>> non-interoperable
>> variables in C_LOC and C_F_POINTER. Then the argument could be
>> C_FUNPTR (by
>> value). I don't know whether this would help you though.
>>
>>>     (B2) Do we have any problem with
>>>          the TYPE(C_PTR), VALUE dummy arguments
>>>          in the ABSTRACT INTERFACE MPI_User_function
>>>          on MPI-3.0 page 183 line 45 - page 184 line 3
>>>          if the we remove the BIND(C) from this
>>>          ABSTRACT INTERFACE (i.e. on page 183, line 47).
>>
>> No problem.
>>
>> Cheers,
>> --
>> ................................Malcolm Cohen, Nihon NAG, Tokyo.
>>
>> _______________________________________________
>> mpi3-fortran mailing list
>> mpi3-fortran at lists.mpi-forum.org
>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-fortran
>

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