All floating point values are in big-endian IEEE format [9] of the appropriate size. Floating point values are represented by one of three IEEE formats. These are the IEEE ``Single,'' ``Double,'' and ``Double Extended'' formats, requiring 4, 8 and 16 bytes of storage, respectively. For the IEEE ``Double Extended'' formats, MPI-/ specifies a Format Width of 16 bytes, with 15 exponent bits, bias = +10383, 112 fraction bits, and an encoding analogous to the ``Double'' format. All integral values are in two's complement big-endian format. Big-endian means most significant byte at lowest address byte. For Fortran LOGICAL and C++ bool, 0 implies false and nonzero implies true. Fortran COMPLEX and DOUBLE COMPLEX are represented by a pair of floating point format values for the real and imaginary components. Characters are in ISO 8859-1 format [10]. Wide characters (of type MPI_WCHAR) are in Unicode format [23].
All signed numerals (e.g., MPI_INT, MPI_REAL) have the sign bit at the most significant bit. MPI_COMPLEX and MPI_DOUBLE_COMPLEX have the sign bit of the real and imaginary parts at the most significant bit of each part.
According to IEEE specifications [9], the ``NaN'' (not a number) is system dependent. It should not be interpreted within MPI-/ as anything other than ``NaN.''
All data is byte aligned, regardless of type. All data items are stored contiguously in the file.
Type Length ------------------ ------ MPI_PACKED 1 MPI_BYTE 1 MPI_CHAR 1 MPI_UNSIGNED_CHAR 1 MPI_SIGNED_CHAR 1 MPI_WCHAR 2 MPI_SHORT 2 MPI_UNSIGNED_SHORT 2 MPI_INT 4 MPI_UNSIGNED 4 MPI_LONG 4 MPI_UNSIGNED_LONG 4 MPI_FLOAT 4 MPI_DOUBLE 8 MPI_LONG_DOUBLE 16 MPI_CHARACTER 1 MPI_LOGICAL 4 MPI_INTEGER 4 MPI_REAL 4 MPI_DOUBLE_PRECISION 8 MPI_COMPLEX 2*4 MPI_DOUBLE_COMPLEX 2*8 Optional Type Length ------------------ ------ MPI_INTEGER1 1 MPI_INTEGER2 2 MPI_INTEGER4 4 MPI_INTEGER8 8 MPI_LONG_LONG 8 MPI_UNSIGNED_LONG_LONG 8 MPI_REAL4 4 MPI_REAL8 8 MPI_REAL16 16
The size of the predefined datatypes returned from
MPI_TYPE_CREATE_F90_REAL,
MPI_TYPE_CREATE_F90_COMPLEX, and
MPI_TYPE_CREATE_F90_INTEGER
are defined in Section 10.2.5,
page .
MPI-Standard for MARMOT