Each Fortran M process has its own address space. The only mechanism by which it can interact with its environment is via the ports passed to it as arguments. A process uses the SEND , ENDCHANNEL , and RECEIVE statements to send and receive messages on these ports. These statements are similar in syntax and semantics to Fortran's WRITE , ENDFILE , and READ statements, respectively, and can include END= , ERR= , and IOSTAT= specifiers to indicate how to recover from various exceptional conditions.