C QNA FAST MESSAGE LOOPER(XQLOOP.FTN) C C C PAUL ELKINS C C LOS ALAMOS NATIONAL LAB. C PO BOX 1663 MS-J957 C LOS ALAMOS NM 87545 C 505 667 3502 C INCLUDE '[100,1]XQERRDEF.FTN' C PARAMETER LX=1500/2 !MAXIMUM PACKET SIZE(WORDS) PARAMETER LZ=18 !ERROR COUNTERS BUFFER SIZE PARAMETER XQSYST=4 !XQ: SYSTEM TYPE CODE PARAMETER XQECHO=1 !XQ: ECHO MESSAGE SUB-TYPE CODE C IMPLICIT INTEGER(A-Z) REAL T0,T1,SECNDS INTEGER SBUF(LX),RBUF(LX),PRM1(6),PRM2(6),IOSB1(2),IOSB2(2) INTEGER TSKP(16),EBUF(LZ),PRM3(6),IOSB3(2),TNAM(3),DTSK(3) INTEGER DATA(LZ) BYTE SBUFB(LX*2) DATA L1/1/RLB/"1000/WLB/"400/REF/1/XEF/2/ DATA EEF/3/GLI/"16420/ DATA DTSK/'LW','T.','..'/ EQUIVALENCE (SEQ,SBUF(14)),(RSEQ,RBUF(14)) 1,(SBUFB(1),SBUF(1)),(DATA(1),EBUF(1)) C CALL GETTSK(TSKP,IDS) CALL GETADR(PRM1,RBUF(1)) CALL GETADR(PRM2,SBUF(1)) CALL GETADR(PRM3,EBUF(1)) PRM1(2)=LX*2 PRM2(2)=64 PRM3(2)=LZ*2 CALL WTQIO(GLI,L1,EEF,,IOSB3,PRM3,IDS) SBUF(6)=EBUF(1) SBUF(7)=XQSYST SBUF(13)=XQECHO SBUF(11)=TSKP(1) SBUF(12)=TSKP(2) TYPE 104,DTSK ACCEPT 105,Q,TNAM IF(Q.EQ.0) CALL IRAD50(6,DTSK,SBUF(9)) IF(Q.NE.0) CALL IRAD50(6,TNAM,SBUF(9)) TYPE *,'ENTER TO NODE ADDRESS' ACCEPT *,SBUF(3) DO 5 I=15,LX 5 SBUF(I)=I C 10 TYPE *,'ENTER # OF BYTES PER PACKET' ACCEPT *,TEMP IF(TEMP.GT.LX*2) GOTO 10 IF(TEMP.GE.60) PRM2(2)=(TEMP/2)*2 SEQ=0 TYPE *,'ENTER NUMBER OF PACKETS TO BE SENT' ACCEPT *,NPKT T0=SECNDS(0.0) C DO 20 IX=1,NPKT CALL QIO(RLB,L1,REF,,IOSB1,PRM1,IDS) IF(IDS.NE.1)TYPE *,'XQLOOP REC IDS=',IDS CALL QIO(WLB,L1,XEF,,IOSB2,PRM2,IDS) IF(IDS.NE.1)TYPE *,'XQLOOP XMIT IDS=',IDS CALL WAITFR(REF) IF(RSEQ.NE.SEQ) TYPE *,'XQLOOP SEQ ERROR SEQ,RSEQ=',SEQ,RSEQ IF(IOSB1(1).NE.1) TYPE *,103,IOSB1 20 SEQ=IX C T1=SECNDS(T0) TYPE *,NPKT,' PACKETS SENT',PRM2(2),' BYTES PER PACKET' TYPE 101,(T1/NPKT)*1000 25 CALL WTQIO(GLI,L1,EEF,,IOSB3,PRM3,IDS) IF(IDS.NE.1) TYPE *,'GLI IDS=',IDS IF(IOSB3(1).NE.1) TYPE *,'GLI IOSB=',IOSB3 TYPE 100,DATA(XQNOD),DATA(XQRCNT),DATA(XQXCNT) 1,DATA(XQXERR),DATA(XQLOSS),DATA(XQNCAR) 2,DATA(XQABO),DATA(XQCOLL) 3,DATA(XQRERR),DATA(XQRUNT),DATA(XQDISC) 4,DATA(XQOVF),DATA(XQCRC) GO TO 10 100 FORMAT(' NODE',I6,// 1,' TOTAL PACKETS REVEIVED= ',I6,/ 2,' TOTAL PACKETS TRANSMITTED= ',I6,// 3,' TOTAL TRANSMIT ERROR COUNT= ',I6,/ 4,' LOSS=',I6,' NOCAR=',I6,' ABORT=',I6,' COLL= ',I6,// 5,' TOTAL RECEIVE ERROR COUNT= ',I6,/ 6,' RUNT=',I6,' DISC=',I6,' OVF=',I6,' CRC= ',I6,/) 101 FORMAT(' TIME PER PACKET=',F5.1,' MS') 102 FORMAT(' XQLOOP XMIT IOSB(OCTAL)=',2O7) 103 FORMAT(' XQLOOP REC IOSB(OCTAL)=',2O7) 104 FORMAT('$ENTER REMOTE TASK NAME(D= ',3A2,') ') 105 FORMAT(Q,3A2) END