SUBROUTINE DBGET2(POS,IOFF,LENGTH,DATA,ECODE) PARAMETER (IPW=64) IMPLICIT INTEGER*4 (A-Z) C C GET THE DATA FIELD FOR A VARIABLE, STARTING AT THE C RECORD POS WITH OFFSET IOFF. C COMMON /TSPBUF/ NOTBUF(6),IREC(IPW) INTEGER*2 ECODE,IOFF DIMENSION DATA(1) C C NRECS = NUMBER OF DATA RECORDS SPANNED BY THIS VARIABLE C LOFF = IOFF + LENGTH NRECS = 1 + (LOFF-2)/IPW J = 1 C C READ FIRST RECORD C CALL DBGET(POS,IREC,ECODE) LEN = MIN0(LOFF,IPW+1) - IOFF CALL IMOV(LEN,IREC(IOFF),DATA(J)) IF (NRECS.EQ.1) RETURN POS = POS+1 J = J+LEN IF (NRECS.EQ.2) GOTO 19 C C READ MIDDLE RECORDS (DIRECTLY INTO DATA() ) C DO 10 I=3,NRECS CALL DBGET(POS,DATA(J),ECODE) POS = POS+1 J = J+IPW 10 CONTINUE IF (J.GT.LENGTH) RETURN C C READ THE LAST RECORD C 19 CONTINUE CALL DBGET(POS,IREC,ECODE) NLAST = LENGTH-J+1 CALL IMOV(NLAST,IREC,DATA(J)) C RETURN END