title: What exactly happens when we use mpi_send/receive functions?
body: <p>when we use <code>mpi_send/receive</code> functions what happens? I mean this communication is done by value or by address of the variable that we desire to be sent and received (for example process 0 wants send variable "a" to process 1. Process 0 what exactly sends value of variable "a" or address of "a" ). And what happens when we use derived data types for communication?</p>