[MPI3 Fortran] [Mpi-forum] Formal Reading of the new Fortran bindings in Chicago, Oct. 24, 2011, Ticket #229

Bill Long longb at cray.com
Tue Oct 25 12:33:59 CDT 2011

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-Fortran-Changes_2011-10-23.txt
>> - 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.


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

More information about the mpiwg-fortran mailing list