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

Rolf Rabenseifner rabenseifner at hlrs.de
Mon Mar 4 09:47:29 CST 2013


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

-- 
Dr. Rolf Rabenseifner . . . . . . . . . .. email rabenseifner at hlrs.de
High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530
University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832
Head of Dpmt Parallel Computing . . . www.hlrs.de/people/rabenseifner
Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307)



More information about the mpiwg-fortran mailing list