PROGRAM CKSUM2 PARAMETER IOBLK=16 PARAMETER IORVB="21*"400 REAL*4 TIME INTEGER*2 SUMADD,SUMEOR INTEGER*2 IOST1(2),IOPRM1(6),BUF1(256*IOBLK) INTEGER*2 IOST2(2),IOPRM2(6),BUF2(256*IOBLK) DATA IOPRM1/6*0/,IOPRM2/6*0/ OPEN (UNIT=1,FILE='TEST.DAT',STATUS='OLD',BUFFERCOUNT=-1) SUMADD = 0 SUMEOR = 0 CALL GETADR(IOPRM1(1),BUF1(1)) IOPRM1(2) = 512*IOBLK CALL GETADR(IOPRM2(1),BUF2(1)) IOPRM2(2) = 512*IOBLK TIME = SECNDS(0.0) IOPRM1(5) = 1 CALL QIO(IORVB,1,1,,IOST1,IOPRM1) IOPRM2(5) = IOPRM1(5) + IOBLK CALL QIO(IORVB,1,2,,IOST2,IOPRM2) 100 CALL WAITFR(1) IF (IOST1(2) .EQ. 0) GOTO 999 DO 110 I = 1,IOST1(2)/2 SUMADD = SUMADD + BUF1(I) SUMEOR = IEOR(SUMEOR,BUF1(I)) 110 CONTINUE IOPRM1(5) = IOPRM2(5) + IOBLK CALL QIO(IORVB,1,1,,IOST1,IOPRM1) CALL WAITFR(2) IF (IOST2(2) .EQ. 0) GOTO 999 DO 120 I = 1,IOST2(2)/2 SUMADD = SUMADD + BUF2(I) SUMEOR = IEOR(SUMEOR,BUF2(I)) 120 CONTINUE IOPRM2(5) = IOPRM1(5) + IOBLK CALL QIO(IORVB,1,2,,IOST2,IOPRM2) GOTO 100 999 TIME = SECNDS(TIME) WRITE (5,1000) TIME,SUMADD,SUMEOR 1000 FORMAT (' Elapse seconds = ',F6.2,' Checksums = ',O6,1X,O6) STOP END