[MPI3 Fortran] Proposing changes to Fortran 2008

Hubert Ritzdorf ritzdorf at it.neclab.eu
Fri Mar 21 07:13:52 CDT 2008


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 
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 
the performance of the Fortran code.

-------------- 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