Table 1 lists all of the C++ predefined MPI datatypes and their corresponding C and C++ datatypes, Table 2 lists all of the Fortran predefined MPI datatypes and their corresponding Fortran 77 datatypes. Table 3 lists the C++ names for all other MPI datatypes.
MPI::BYTE and MPI::PACKED conform to the same restrictions as MPI_BYTE and MPI_PACKED, listed in Sections 3.2.2 and 3.13 of MPI-1, respectively.
The following table defines groups of MPI predefined datatypes:
[ C integer:] MPI::INT, MPI::LONG, MPI::SHORT,
[ ] MPI::UNSIGNED_SHORT, MPI::UNSIGNED,
[ ] MPI::UNSIGNED_LONG, MPI::SIGNED_CHAR,
[ ] MPI::UNSIGNED_CHAR
[ Fortran integer:] MPI::INTEGER
[ Floating point:] MPI::FLOAT, MPI::DOUBLE, MPI::REAL,
[ ] MPI::DOUBLE_PRECISION,
[ ] MPI::LONG_DOUBLE
[ Logical:] MPI::LOGICAL, MPI::BOOL
[ Complex:] MPI::F_COMPLEX, MPI::COMPLEX,
[ ] MPI::F_DOUBLE_COMPLEX,
[ ] MPI::DOUBLE_COMPLEX,
[ ] MPI::LONG_DOUBLE_COMPLEX
[ Byte:] MPI::BYTE
Valid datatypes for each reduction operation is specified below in terms of the groups defined above.
[ Op] Allowed Types
[ MPI::MAX, MPI::MIN] C integer, Fortran integer, Floating point
[ MPI::SUM, MPI::PROD] C integer, Fortran integer, Floating point, Complex
[ MPI::LAND, MPI::LOR, MPI::LXOR] C integer, Logical
[ MPI::BAND, MPI::BOR, MPI::BXOR] C integer, Fortran integer, Byte
MPI::MINLOC and MPI::MAXLOC perform just as their C and Fortran counterparts; see Section 4.9.3 in MPI-1.