The model implementation uses the packing and unpacking functions described in Section and the nonblocking communication functions described in Section .
We assume that a circular queue of pending message entries (PME) is maintained. Each entry contains a communication request that identifies a pending nonblocking send, a pointer to the next entry and the packed message data. The entries are stored in successive locations in the buffer. Free space is available between the queue tail and the queue head.
A buffered send call results in the execution of the following algorithm.