FTN 
      SUBROUTINE DCATI(IBUF,ISTRT,IEND,DNUM),92069-16173 REV.1912 781219
C 
C 
C*****************************************************************
C (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS RESERVED 
C NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, REPRODUCED, OR
C TRANSLATED TO ANOTHER PROGRAM LANGUAGE WIOTH OUT THE PRIOR
C WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. 
C****************************************************************** 
C 
C 
C     SOURCE:    92069-18173
C     RELOC:     92069-16173
C 
C 
C ABASTRACT:
C 
C DCATI CONVERTS AN ASCII STRING NO LONGER THAN TEN CHARACTERS
C TO A DOUBLE WORD INTEGER.  THE STRING MUST NOT CONTAIN A SIGN.
C 
C CALLING SEQUENCE: 
C 
C     CALL DCATI(IBUF,ISTRT,IEND,DNUM)
C 
C        WHERE: 
C 
C           IBUF
C           IS THE ASCII STRING 
C 
C           ISTRT 
C           IS THE BYTE OFFSET
C 
C           IEND
C           IS THE BYTE OFFSET OF THE END OF THE STRING 
C 
C           DNUM
C           IS A TWO WORD BUFFER WHICH WILL CONTAIN THE DOUBLE
C           WORD INTEGER WHEN DCATI EXITS 
C 
C ON EXIT:
C 
C     DNUM CONTAINS A DOUBLE WORD INTEGER 
C 
C 
C 
C 
C****************************************************************:
C 
      INTEGER IZERO(2),ITEN(2),ICHAR(2) 
      REAL ZERO,TEN,CHAR
      EXTERNAL DAD,DMP
      INTEGER IMAX(5) 
C$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 
C$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 
      EQUIVALENCE (ZERO,IZERO),(TEN,ITEN),(CHAR,ICHAR)
      DATA IZERO/0,0/ 
      DATA ITEN/0,10/ 
      DATA ICHAR/0,0/ 
      DATA IMAX/2H21,2H47,2H48,2H36,2H47/ 
C 
C 
C 
C 
C 
C 
      ICHAR(1) = 0
      DNUM = ZERO 
      IF(ISTRT .GT. IEND) GOTO 40 
      I = IEND - ISTRT + 1
      IF (I .GT. 10) GOTO 40
      IF(I .LT. 10) GOTO 20 
      IF(JSCOM(IBUF,ISTRT,IEND,IMAX,1) .LE. 0) GOTO 20
      DNUM = DBLEI(-1)
      GOTO 40 
C 
C LOOP TO CONVERT INTEGER 
C 
20    CONTINUE
      DO 30 I= ISTRT,IEND 
      CALL SGET(IBUF,I,ICHAR(2) ) 
      ICHAR(2) = ICHAR(2) - 60B 
      IF ( (ICHAR(2) .LT. 0) .OR. (ICHAR(2) .GT. 9))GOTO 40 
      DNUM = DAD ( DMP(DNUM,TEN), CHAR) 
30    CONTINUE
40    RETURN
      END 
                                                                