FORTRAN Reference Manual
Interprocess Communication
FORTRAN Reference Manual—528615-001
14-5
Using $RECEIVE
Using $RECEIVE
You can use $RECEIVE for interprocess communication in one of three ways: as an 
input file, as an input/output file, or as two separate files for independent input and 
output.
Observe the following when using $RECEIVE files:
•
You can assign any FORTRAN unit to $RECEIVE through a run-time file 
assignment, a UNIT compiler directive, or an OPEN statement.
•
You must access a unit connected to $RECEIVE as a sequential file.
•
A write operation to a unit connected to $RECEIVE is valid only after a successful 
read operation from a (possibly different) unit assigned to $RECEIVE.
Figure 14-4. Structure Allocation to Support NonStop Requester Processes
VST1404.vsd
Reply 1
Reply 2
Reply 3
Reply 4
Reply 1
Reply 2
Reply 3
Reply 4
Reply 1
Reply 2
Reply 3
Reply 4
1
2
3
4
1
2
3
4
1
2
3
4
24
bytes
24
bytes
24
bytes
MAXREPLY= 24
Requester 1
Replies
MAXREPLY= 24
Requester 2
Replies
MAXREPLY= 24
Requester 3
Replies
SYNCDEPTH
= 4
OPEN = 3
Received Message 1
Received Message 2
Received Message 3
Received Message 4
Received Message 5
Received Message 6
Received Message 7
Received Message 8
1
2
3
4
5
6
7
8
QDEPTH
= 8
Received Message Table
MAXREPLY = 24
QDEPTH = 8
SYNCDEPTH = 4
OPEN = 3
Server
 loop: . . .
WRITE to server
. . .
WRITE to server
. . .
WRITE to server
. . .
WRITE to server
CHECKPOINT
 GO TO loop
 loop: . . .
WRITE to server
. . .
WRITE to server
. . .
WRITE to server
. . .
WRITE to server
CHECKPOINT
 GO TO loop
 loop: . . .
WRITE to server
. . .
WRITE to server
. . .
WRITE to server
. . .
WRITE to server
CHECKPOINT
 GO TO loop
Requesters
Requester A Requester B
Requester C










