Re: [MPI3 Fortran] MPI buffer arguments - void and call-by-reference
On Feb 16 2009, Aleksandar Donev wrote:
I am lost. What do Fortran pointers have to do with MPI?
Surely it has to do with C pointers (did I ever qualify with Fortran specifically?)?
Because you referred to their association status. Fortran pointers have one; C pointers don't.
Where do you get from the Fortran standard, including the C interop chapter, that if you take a pointer inside a C routine (MPI) and keep it, you can use it to change the value of the actual after the call completes???
Oh, I didn't make that assumption - no fear! Despite the fact that it is done in C.2.3 in Annex C :-) This debate is largely about how to enable that facility.
If a Fortran pointer is the target of a C pointer, it has to have the TARGET attribute---see clause 15 in F2003.
You mean 15.1.2.5 (C_LOC)? I don't think that means what bit looks as if it does, but let's skip that for now. Let's just note that your belief that TARGET is the way to do that means that the example in C.2.3 is broken :-) I am not adamantly opposed to the use of TARGET, because it is definitely plausible. I still don't think that it helps, but need to research the standard to be sure. Regards, Nick Maclaren, University of Cambridge Computing Service, New Museums Site, Pembroke Street, Cambridge CB2 3QH, England. Email: [email protected] Tel.: +44 1223 334761 Fax: +44 1223 334679
participants (1)
-
N.M. Maclaren