The MPI status object is a struct containing 8 integers: the three public member fields described in Section Return Status and 5 private member fields that are reserved for implementations and must never be directly accessed by applications.
The MPI status object is defined in C as follows:
typedef struct { int MPI_SOURCE; int MPI_TAG; int MPI_ERROR; int MPI_internal[5]; } MPI_Status;The MPI status object must use exactly eight C int worth of storage.
Advice
to implementors.
The alignment of the status object may be less than the alignment
of a pointer or MPI_Count. Therefore, implementatons
that store such a value in the status object must take care to access
it using a method that does not depend on alignment greater than int.
Such methods include memcpy and type-punning.
( End of advice to implementors.)
Rationale.
This definition provides sufficient space to accommodate implementation-specific
information and leads to memory alignment that allows efficient access to arrays
of status objects.
( End of rationale.)