[MPI3 Fortran] Proposing changes to Fortran 2008
Hubert Ritzdorf
ritzdorf at it.neclab.eu
Fri Mar 21 07:13:52 CDT 2008
Hi,
I think what is required is an option/attribute for an
argument that it should behave such as in Fortran 77 and before:
This means
(*) Don't check (ignore) the type and rank of the corresponding
argument in the calling program
(*) Don't perform copy in/copy out for that argument
before/after calling the routine
(especially important for all non-blocking routines such as
MPI_Isend, MPI_Irecv and all possibly newly introduced
non-blocking MPI routines)
(*) Pass the reference/pointer of the (first) variable to the subroutine;
no descriptor
This is exactly what was done by the old Fortran 77 compilers
(except for character variables on some other compilers (Cray,
...))
This must be still possible, since Fortran must support the old
object files.
This is also important for all derived MPI datatypes
Such an option would be not only beneficial for MPI. I'm also programming
Fortran libraries for coupling climate/weather codes and I have the
problem also
within these Fortran libraries that I cannot give an interface
description for some general routines since the number of possibilities
by different types and ranks is too large. Therefore, I don't provide an
interface description for these routines and Fortran already fulfills
the items
above except for the copy in/copy out requirement.
MPI and Fortran 77 have worked without any problems (except for the
character variables for which sometimes a pointer to a structure was
passed). The problems with the number of interfaces and copy-in/copy-out of
(sub-)vectors/arrays were introduced by Fortran 90.
Thus, an attribute for an argument "Behave such as without interface
description
and don't perform copy-in/copy-out" (or 2 separate attributes "Behave
such as without interface description" and "don't perform
copy-in/copy-out) would be beneficial
for each (FORTRAN) library programmer and would help the compiler guys
in the decision, whether a copy-in/copy out has to be performed, and can
improve
the performance of the Fortran code.
Hubert
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3245 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-fortran/attachments/20080321/f0448748/attachment-0001.bin>
More information about the mpiwg-fortran
mailing list