[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


in the Fortran source mapped to


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.


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


>Beowulf mailing list, Beowulf at beowulf.org
>To change your subscription (digest mode or unsubscribe) visit 

William Gropp

More information about the Beowulf mailing list