[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