FTN4 LOGICAL FUNCTION INUM(IB,NCAR,NBCAR .,I),. 92903-16001 REV.1805 770114 C C SOURCE 92903-18022 C C C C ************************************************************** C * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978. ALL RIGHTS * C * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- * C * PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH- * C * OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * C ************************************************************** C C C ************************************************************* C * * C * INUM IS A LOGICAL FUNCTION TO CONVERT AN ASCII * C * BUFFER INTO AN INTEGER NUMBER. CHECKS ARE MADE AND * C * FUNCTION SUCCEED IF THE INPUT BUFFER IS NOT CORRECT. * C * * C * IF( INUM(IBUF,NCAR,NBCAR,I) ) GOTO ERROR * C * * C * WHERE: * C * IBUF BUFFER * C * NCAR NUMBER OF FIRST CHARACTER TO USE IN * C * THE BUFFER ( 1ST = 1) * C * NBCAR NUMBER OF CHARACTER TO BE USED * C * I INTEGER VARIABLE WHERE THE INTEGER * C * VALUE IS RETURNED. * C * * C ************************************************************* C IF(NBCAR .LE. 0) GOTO 600 INUM=.FALSE. I=0 ISIG=1 L=NBCAR JE=NCAR+NBCAR-1 DO 100 J=NCAR,JE K=IGET1(IB,J) IF(K .EQ. 1H-) GOTO 400 IF(K.EQ.1H+) GO TO 450 IF(K.NE.1H ) GO TO 500 L=L-1 100 CONTINUE RETURN C 400 ISIG=-1 450 J=J+1 L=L-1 500 I=NUMD(IB,J,L) IF(I .LT. 0) GOTO 550 I=I*ISIG RETURN C 550 IF(ISIG .EQ. 1) GOTO 600 C SPECIAL CHECK FOR -32768 IF(IGET2(IB,J) .NE. 2H32) GOTO 600 IF(IGET2(IB,J+2) .NE. 2H76) GOTO 600 IF(IGET1(IB,J+4) .NE. 1H8) GOTO 600 I=-32768 RETURN C C ERROR RETURN ! C 600 INUM=.TRUE. I=0 RETURN END END$