[MPI3 Fortran] [Fwd: Library-based ASYNCHRONOUS I/O and SYNC MEMORY]
Iain Bason
Iain.Bason at Sun.COM
Tue Sep 9 14:17:51 CDT 2008
On Sep 9, 2008, at 1:12 PM, Dan Nagle wrote:
> Hi,
>
> On Sep 9, 2008, at 12:46 PM, Iain Bason wrote:
>>
>> So if you see a call to dgemm in the source code, you needn't look
>> at the documentation to find out what dgemm does? (Well, probably
>> for that particular subroutine you would just know; but for most
>> procedures in most libraries I think most people have to look at
>> the documentation to find out what they do.)
>
> I can write a perfectly good interface for dgemm().
> I can't for asynchronous procedures.
I'm not sure what your point is.
*My* point was that there are aspects of the semantics of any
procedure that are defined in documentation. For intrinsic
procedures, the documentation is the standard. For external
procedures, the documentation may just be the source code of the
procedure being called. If you want an interface body to contain
complete and accurate documentation of the semantics of the procedure
being called, the only way I know to do that is to include the actual
body of that procedure. If you want something that is less than
complete, you need to decide which bits of information to convey and
which to leave out.
It is unclear (to me) what is the *right* amount of documentation that
should appear in an interface. The current Fortran standard requires
some things (if there is an interface body at all), such as the types,
kinds and ranks of the arguments. It allows other things (e.g., a
procedure may in fact meet the requirements for having the PURE
attribute without in fact being declared PURE). It doesn't provide a
way to specify yet other things (e.g., it will write to a particular
dummy variable only after reading it). I don't know whether there is
a coherent philosophy behind the design.
Iain
More information about the mpiwg-fortran
mailing list