FORTRAN Reference Manual

Interprocess Communication
FORTRAN Reference Manual528615-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