and it's conceivable that you might have better performance with
CALL MPI_ISEND()
DO I = 1, N
call do_a_little_of_my_work() ! no MPI progress is being made here
CALL MPI_TEST() ! enough MPI progress is being made here that the receiver has something to do
END DO
CALL MPI_WAIT()
Whether performance improves or not is not guaranteed by the MPI standard.Right. That's a separate issue.
And the SECOND desire is to use Persistent communication for even better speedup.