C E X A M P L E 2 C - - - - - - - - C BYTE MESS1(6), MESS2(8), BUFF(8) INTEGER FLAG, ISNT, COUNT1, COUNT2, COUNT3 EQUIVALENCE (MESS1(1),COUNT1), (MESS2(1),COUNT2), (BUFF(1),COUNT3) DATA MESS1/4,0,1HF,1HG,1HH,1HI/ DATA ISNT/O40/ DATA MESS2/5,0,1HA,1HB,1HC,1HD,1HE,0/ WRITE(5,7) CALL SENTS(MESS1,0) CALL CHAIN(' CHAIN',1) WRITE(5,5) NTDB=1 CALL DECTDB(NTDB) CALL TDPRIV(ALL,NTDB) CALL RUNTS(' SUBTASK2',NTDB,1,MESS2,WAIT) CALL CHKEV(ISTAT,NTDB) CALL RDEVTS(ISTAT,NTDB) IF (ISTAT.AND.ISNT.EQ.0)GOTO 200 LENGTH=8 CALL RECV(BUFF,LENGTH,ISNDER) FLAG=.TRUE. DO 30 J=2,7 30 IF (MESS2(J).NE.BUFF(J))FLAG=.FALSE. IF (.NOT.FLAG) GOTO 300 IF (ISNDER.LT.0)GOTO 400 WRITE(5,3)(BUFF(J),J=3,7) 500 CALL EXIT 200 WRITE(5,201) GOTO 500 300 WRITE(5,301) GOTO 500 400 WRITE(5,401) GOTO 500 7 FORMAT(' SENDING "FGHI" TO CHAIN TASK') 5 FORMAT(' RUNNING SUBTASK -- SENDING "ABCDE"') 3 FORMAT(' MESSAGE RECEIVED FROM SUBTASK ="',5A1,'"') 201 FORMAT(' STATUS OF SENT EXPECTED, BUT NOT FOUND') 301 FORMAT(' MESSAGE RECEIVED NOT EQUAL TO MESSAGE SENT') 401 FORMAT(' WORNG SENDER') END