(j3.2006) (SC22WG5.4654) AW: Vote on N1904

Craig Rasmussn crasmussen
Thu Mar 15 14:11:16 EDT 2012

The intent (surely, no pun intended) for MPI-3 receive buffers was to stay away from requirement that "the dummy argument becomes undefined on invocation of the procedure."  Thus all of the MPI-3 TYPE(*) dummy arguments are either INTENT(IN) or no intent is specified.

Would appreciate advice if anyone believes that this was the wrong decision.


On Mar 15, 2012, at 7:26 AM, Reinhold Bader wrote:

> I managed to check the latest draft of the new Fortran MPI-3 interface today -
> receive buffers are not specified with any INTENT.
> INTENT(OUT) is specified for some other arguments in MPI-3 calls, like MPI
> request handles or the error argument, but all these cases do not use
> TYPE(*).
> Regards
> Reinhold
> Am 14.03.2012 22:49, schrieb Bader, Reinhold:
>> [...]
>>> Note that the proposals to simply forbid INTENT(OUT) together with
>>> assumed-type exclude reasonable uses of INTENT(OUT) (e.g. for MPI
>>> receive buffers), but some constraint along those lines seems the best
>>> solution.
>> The MPI-3 draft for the new Fortran bindings contains some remarks
>> concerning INTENT(OUT) for receive buffers which - if I remember
>> correctly - can be interpreted along the following lines
>> * don't take the Fortran semantics of the MPI spec too seriously as an implementor -
>>    you're allowed to specify INTENT(INOUT) here [and would be required to
>>    if you use TYPE(*) and the above restriction is implemented in the TS]
>> * programmer, please don't rely on other things than the buffer elements
>>    written by your send NOT becoming undefined
>> Rolf may be able to shed more light on this, so am putting him on CC here.
>> In any case, it is not the purpose of MPI-3 to enable communication of
>> data of types described below, so while I'm not convinced that loosening
>> of the planned INTENT(OUT) prohibition is necessary, the below would
>> certainly not impact MPI-3.
>>> The following is badly worded and may not be enough, but is
>>> put forward as a possibility:
>>> "If the actual argument corresponding to an assumed-type dummy argument
>>> is of a type with default-initialized components, or of a type that has
>>> has components that have the ALLOCATABLE or POINTER attributes, or are
>>> of types with default-initialized components, the assumed-type entity
>>> shall not have the INTENT(OUT) attribute."
>> Regards
>> Reinhold
> -- 
> Dr. Reinhold Bader
> Leibniz Supercomputing Centre (http://www.lrz.de) / HPC Support
> Tel. +49 89 35831 8825 - Fax  +49 89 35831 8625
> _______________________________________________
> J3 mailing list
> J3 at j3-fortran.org
> http://j3-fortran.org/mailman/listinfo/j3

More information about the J3 mailing list