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

Bader, Reinhold Reinhold.Bader
Wed Mar 14 17:49:56 EDT 2012

> 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."


More information about the J3 mailing list