The count argument specified to the receive routine is the number of elements for which there is space in the receive buffer. This will not always be the same as the number of elements actually received.
Processes can receive messages of different sizes.
The number of elements which was actually received can be found by querying the communication envelope, namely the status variable, after a communication call. This routine queries the information contained in status to find out how many of the MPI datatype are contained in the message, returning the result in count .