[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