21.4. The Fortran Application Binary Interface

PreviousUpNext
Up: Application Binary Interface (ABI) Next: Fortran Type Registration Previous: Calling Conventions and Binary Representations

Fortran support for the ABI is more complicated than C, because the sizes of INTEGER, REAL, and DOUBLE PRECISION can be changed with compiler options; there is no ABI constancy even with a single Fortran compiler and platform. This flexibility creates a difficult situation for the MPI C ABI because the functions defined in Section Transfer of Handles and Section Status in the MPI C API depend on the size of INTEGER via MPI_Fint. As a result, the functions defined in Section Transfer of Handles and Section Status as well as MPI_F08_Status are not part of this ABI. Instead, to support Fortran and other use cases where obtaining an integer associated with an MPI handle is necessary, new functions are added that do not depend on MPI_Fint.

MPI applications can discover the size of Fortran types such as MPI_INTEGER and MPI_REAL using MPI_TYPE_SIZE. Lack of support in the implementation for optional predefined datatypes is indicated when the type size returned is MPI_UNDEFINED.
Rationale.

Prior to the ABI, optional predefined datatypes were not present in the MPI header and modules. When absent, usage would generate compilation errors. The standard ABI must define a value for all predefined datatypes, including the optional ones. Therefore, the absence of optional datatypes must be detected at runtime. ( End of rationale.)


PreviousUpNext
Up: Application Binary Interface (ABI) Next: Fortran Type Registration Previous: Calling Conventions and Binary Representations


Return to MPI-5.0 Standard Index
Return to MPI Forum Home Page

(Unofficial) MPI-5.0 of June 9, 2025
HTML Generated on March 2, 2025