C*** C TITLE RCVLUP C C Version 1.1 OCT0582 C C C FACILITY: C TEST PROGRAMS FOR THE COMMUNICATIONS DRIVER PACKAGE CDPACK C AND THE COMMUNICATIONS DRIVER C C C ABSTRACT: C MAKES CALLS TO THE ROUTINES OF CDPACK TO RECEIVE MESSAGES C C C AUTHOR Vicky White C Computing Department, C Fermi National Accelerator Lab C C CREATION DATE: JUN0382 C C MODIFIED BY: C VW - OCT0582 - ADDED TIMING AND ERROR THRESHOLD EXIT C C*** IMPLICIT INTEGER(A-Z) REAL T1,TIME,UNITT,SECNDS DIMENSION RBUF(4000) DIMENSION STAT(2) DATA MAXWC/4000/ DATA PTC/1/ DATA UNIT/0/ DATA MAXERR/10/ C CALL DLDEC(' CD UNIT NUMBER',UNIT,UNIT,0) CALL CDASGN(2,'CD',UNIT,STAT) CALL DLOUTO(' ASSIGN STATUS ',STAT(1),STAT(2)) CALL DLDEC(' PTC ',PTC,PTC) CALL CDOPEN(2,PTC,STAT) CALL DLOUTO(' OPEN STATUS ',STAT(1),STAT(2)) CALL CDERRM(STAT(1),ERR) CALL DLYENO(' Q RCV MODE ',QRCV,QRCV) CALL CDMODE(QRCV,0,0,0) CALL DLDEC(' NO OF TRANSFERS [0=INFINITE]',TOT,TOT) CALL DLDEC(' MAX NO. OF ERRORS',MAXERR,MAXERR) 10 CALL CDRCVW(2,PTC,RBUF,MAXWC,STAT) !WAIT FOR MESSAGE IF(STAT(1).EQ.1) GOTO 5 CALL DLOUTO(' RECEIVE STATUS, MSG NO. ',STAT(1),STAT(2),NTOT) CALL CDERRM(STAT(1),IERR) NERR=NERR+1 IF(NERR.GE.ERRMAX) GOTO 99 5 IF(NTOT.EQ.0) T1=SECNDS(0.0) NTOT=NTOT+1 IF(NTOT.LT.TOT.OR.TOT.EQ.0) GOTO 10 99 TIME=SECNDS(T1) UNITT=(TIME/FLOAT(NTOT))*1000. WRITE(5,1000) TIME,UNITT 1000 FORMAT(1X,F10.4,' SECS ',F10.4,' MS/TRANSFER ') CALL EXIT END