[MPI3 Fortran] Summary of items on the table
crasmussen at lanl.gov
Mon Apr 28 16:47:49 CDT 2008
On Apr 28, 2008, at 2:29 PM, Bill Long wrote:
> Aleksandar Donev wrote:
>> On Monday 28 April 2008 12:51, Bill Long wrote:
>>> Changing the actual argument to a C_LOC reference also has the side
>>> effect of making the actual argument an expression whose value is
>>> not a
>>> Fortran pointer. Thus, the corresponding dummy argument cannot be
>>> defined. A problem for about half of the interesting MPI cases.
>> That's a bogus complaint. The actual is a C pointer, and cannot be
>> changed, indeed. But its target can be changed through the
>> pointer, which is exactly the intent here.
> The problem is that the Fortran standard supports those semantics
> only for a Fortran pointer, not for a C pointer. I know it "will
> work anyway", but that does not mean it is valid.
The goal is to get rid of "it will work anyway" with the MPI 3
bindings. I was thinking of using C_F_POINTER to make it standards
compliant. I assume we are talking about intent(out) arguments
(MPI_Recv). However, I'm afraid that MPI users will revolt from
changing their code in this way and stick with the unsafe "it will
work anyway" bindings they have been using for a decade.
From preliminary feedback at the MPI Forum meeting the wish would be
for bindings that limit the effect on existing code.
More information about the mpiwg-fortran