Section 2.3, page 5 contains a new (Apr) paragraph on INTENT:
"MPI's use of OUT, IN and INOUT is intended to indicate to the user how
an argument is to be used, but does not provide a rigorous classification
that can be translated directly into language bindings (e.g. INTENT in
Fortran 90 bindings or const in C bindings). ..."
I would strongly recommend that this paragraph be removed from the document.
It does nothing than confusing the user, and makes *any* Fortran90 binding
which wants to specify INTENT (for performance and/or safety) completely
impossible.
If there are problems with the proper specification of some arguments as
being OUT or INOUT, why not simply specify them as INOUT??? Which are these
controversial procedures/arguments?
I also hope that there is no procedure where a specified intent IN may in
some cases be interpreted as INOUT or OUT: this would imply that C arguments
which are specified in the C language binding to be passed by value then
had to be passed by reference, which sounds strange...
Thanks,
Michael
PS: A "const" qualification does not change the representation of the C type,
and does nothing to the way the C argument is passed. Especially it does
not change the definition status of the argument.
On the other hand, a Fortran INTENT attribute allows the compiler
to avoid copy[in|out] if the intent is specified as [OUT|IN].
It also influences the definition status of the argument in that an
INTENT(OUT) dummy argument becomes undefined on entry, so testing
its value (MPI_BOTTOM, MPI_STATUS_IGNORE, or whatever) is *illegal*.
It is therefore very important that MPI gets its argument intents right
if there should be any future for a proper Fortran 90/95 binding.
======================================================================
Michael Hennecke http://www.uni-karlsruhe.de/~Michael.Hennecke/
----------------------------------------------------------------------
University of Karlsruhe RFC822: hennecke@rz.uni-karlsruhe.de
Computing Center (G20.21 R210) No longer on BITNET :-(
Zirkel 2 * P.O. Box 69 80 Phone: +49 721 608-4862
D-76128 Karlsruhe Fax: +49 721 32550
======================================================================