On 10/25/11 11:18 AM, George Bosilca wrote:
On Oct 25, 2011, at 06:31 , Rolf Rabenseifner wrote:
==============================
In general I'm totally confused about the usage of INTENT(IN)/INTENT(OUT) through the document. In the changed proposed you remove INTENT(OUT) from the status argument on the MPI_Probe and friends, because they might not modify the output buffer. Then why do you add it to the MPI_Buffer_detach? Do the MPI library have to modify the entire buffer to qualify as a correct implementation?
Your question is related to https://svn.mpi-forum.org/trac/mpi-forum-web/attachment/ticket/229/MPI-Fortr... - line 41, 60, and 69 (as part of lines 22-83) about the probe variants, - line 130 (as part of lines 116-218) about MPI_BUFFER_DETACH.
In MPI_BUFFER_DETACH, the buf is an OUT argument!
Last time we talked about this you said INTENT(OUT) should only be used if the entire buffer is modified by the call. There is no guarantee that the entire attached buffer will be written by the MPI library (it will depends on the application anyway). Thus, to insure F08 correctness, a valid MPI library will have to overwrite the attached buffer on MPI_BUFFER_DETACH.
Might be going a bit too far. INTENT(OUT) causes the dummy argument to become undefined on entry to the subprogram (and deallocated if is is allocatable). However, there is no mandate that (all of) the argument be defined - you are just not allowed to reference the undefined parts. Cheers, Bill -- Bill Long [email protected] 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