[MPI3 Fortran] Teleconference Wednesday, Sept. 17: Summary

Craig Rasmussen crasmussen at lanl.gov
Wed Sep 17 10:17:12 CDT 2008


We just had a productive teleconference regarding Fortran MPI 3.0  
bindings.  I summarize the discussion below.

Cheers,
Craig


>
> Agenda:
>
> 1. Implications of new TYPE(*) and DIMENSION(..) syntax in Fortran.

TYPE(*), DIMENSION(*) will be used for array actual arguments to C  
void* and TYPE(*) will be used for scalar actual arguments.  Many  
compilers have compiler directives to achieve this now so there may  
not be an excessively long wait for this syntax to appear in  
compilers.  It shouldn't make a difference to the users as they won't  
have to change their codes in any case, this will only appear in the  
interface definition.

>
> 2. What KIND parameter to use for integer arguments.

This topic took up most of the discussion.

There are two sides to this:
1. From a users perspective it would be very convenient to use default  
integers, especially for constants.
2. However from an implementation perspective, this becomes tricky  
because it would require many more interfaces to be defined to handle  
all of the different potential kind values.

I think the resolution of this needs wider participation.  I was  
persuaded that we should explicitly specify a kind value, C_INT, in  
most cases.  This will work in most cases for default integer actual  
arguments unless the user specifies compiler options to change the  
default size.  When the user does this he/she should expect some  
things to break and take the steps to correct the problem.

Some arguments, for example, the count argument in MPI_Send should  
require a kind large enough to store a pointer.

>
> 3. Multiple Fortran interfaces?  Subroutine and function interfaces  
> (since we have to have wrappers for subroutines anyway...)

The Fortran standard says that generic resolution shall be used either  
for subroutines or functions but not for both.  Therefore, we will  
specify only subroutine interfaces.

>
> 4. What to do about a high-level interface that is truly Fortran and  
> not low-level C?

I was the only one really in favor of this.  This option would use the  
DIMENSION(..) syntax and would require a lot of work on the  
implementers part.

>
> 5. Optional arguments?

Yes, the error status parameter should be optional.  If other  
parameters were made optional (e.g. MPI_COMM) the user may be required  
to supply the argument name in the call, depending on what arguments  
were left out.

The decision was that ONLY the error status be optional.  However, is  
it a bad think to allow the user to drop some arguments and specify  
others by name?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-fortran/attachments/20080917/38395e6d/attachment-0001.html>


More information about the mpiwg-fortran mailing list