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

Hubert Ritzdorf Hubert.Ritzdorf at EMEA.NEC.COM
Fri Mar 22 04:20:02 CDT 2013


Yes, this was also my intention.
The Fortran compiler doesn't check any interoperability issues since
it can assume that a Fortran interoperability is guaranteed by the underlying
subroutine/function. The Fortran compiler uses the specified name to
reference the subroutine/function.

All. other interoperability are solved by the function/subroutine
such as in the non BIND(C) case and such as currently solved by the
MPI libraries.

Hubert 
________________________________________
From: mpi3-fortran-bounces at lists.mpi-forum.org [mpi3-fortran-bounces at lists.mpi-forum.org] on behalf of Bill Long [longb at cray.com]
Sent: Thursday, March 21, 2013 8:47 PM
To: mpi3-fortran at lists.mpi-forum.org
Subject: Re: [MPI3 Fortran] [Mpi-comments] MPI 3.0: Fortran     2008 interface - issue with the LOGICAL kind

My perspective was that the only functionality here is to specify an
alternate external name for the Fortran procedure.  I assume that the
caller and callee are compiled with the same compiler, so that the
issues around vendor-specific calling conventions are not a problem.
(This is why I preferred the NAME( .. ) form, since it omits any concept
of a binding different from the normal conventions for the processor,
except the name.)

Cheers,
Bill


On 3/21/13 2:13 PM, Tobias Burnus wrote:
> Craig Rasmussen wrote:
>> BIND(FORTRAN, name="MPI_Test_f08") seems like a great idea.
>>  Unfortunately I can't find it in the Fortran standard :-(
>
> I have to admit that I do not really see the advantage of having such a
> binding name. Surely, it voids issues to find out about the name
> mangling of a compiler. But besides the mangling, different compilers
> also handle other things differently:
> * Function results: By return value or as by-reference argument.
> Especially for COMPLEX
> * Handling of string lengths - especially for character arrays
> * Array descriptors - might be different from the TS29113 array descriptor
> * etc.
>
> In case of BIND(C), most of the ABI issues is defined by the platform
> ABI together with the C standard, which mostly solves the interop issues
> between different C compiler and different Fortran compilers for BIND(C)
> procedures. But NAME()/Bind(Fortran) doesn't.
>
> With all those issues, I do not really see how NAME(...) or
> BIND(Fortran,name=...) would help - except in very special cases.
>
> Tobisa
> _______________________________________________
> 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


_______________________________________________
mpi3-fortran mailing list
mpi3-fortran at lists.mpi-forum.org
http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-fortran


 Click https://www.mailcontrol.com/sr/qAqGokvOpYnGX2PQPOmvUsPk3Ki21lNCN8bSIIHOpu6sIuPcMfFQb4eUUzO+ssbqAzNTk47hsmFsVqdfswMBgw==  to report this email as spam.




More information about the mpiwg-fortran mailing list