Sends and receives can be blocking or non-blocking. Those that are blocking wait until the send or receive has finished before continuing with other instructions. The non-blocking ones continue with other instructions even when the send or receive has not yet finished. (Blocking operations may also be refered to as synchronous. Non-blocking operations are also called asynchronous.)
The non-blocking send and receives in FORTRAN are mp_send and mp_recv.
NOTE: All commands for C have a c between the mp and _ of the MPL commands for FORTRAN. Other MPL commands (in FORTRAN) which you may find useful are:
For example, in Fortran, use
CALL mp_environ(totaltasks, task_id)
In C, use
returncharacter = mpc_environ(&totaltasks, &task_id)