[O-MPI users] [Beowulf] MPI ABI
William Gropp
gropp at mcs.anl.gov
Tue Oct 11 05:59:17 PDT 2005
At 06:13 AM 10/11/2005, Toon Knapen wrote:
>Greg Lindahl wrote:
> >>ignoring the politics for a moment, what are the technical sticking points?
> >
> > Fortran name-mangling
>
>Up to the MPI 1.2, f77 is used so only functions that are new in MPI2
>will be available in a mangled version only. So all others can be linked
>with using C linkage conventions.
Fortran name mangling here means how are Fortran routine names in the
source code mapped to names in the object library. For example, is
MPI_Init
in the Fortran source mapped to
MPI_INIT
mpi_init
mpi_init_
mpi_init__
MPI_Init_
Each of these has been chosen by some Fortran 77 compiler. Confusion over
this is one of the most common problems that users face, particularly when
they use command line options to *change* the way the Fortran compiler maps
the names in their code.
Calling conventions introduce another issue. How are Fortran CHARACTER
data passed to and from a routine? A common but not universal choice in
the Unix world is to pass the address of the character data in the position
that the argument occurs in the calling sequence and append as an integer
value (not pointer to integer) the length of the CHARACTER data to the end
of the argument list. Other compilers insert the length immediately after
the address of the character data and still others pass the address of a
dope vector describing the character data.
Bill
> > Fortran LOGICAL
>
>
>could you elaborate?
What is the value of .TRUE.? Is it 1? 0? -1? Any negative value? All of
those have been used by some Fortran 77 compiler. The Fortran standard
leaves this up to the implementer.
Bill
>_______________________________________________
>Beowulf mailing list, Beowulf at beowulf.org
>To change your subscription (digest mode or unsubscribe) visit
>http://www.beowulf.org/mailman/listinfo/beowulf
William Gropp
http://www.mcs.anl.gov/~gropp
More information about the Beowulf
mailing list