4 *CMZ :- -26/04/91 11.11.56 by Bryan Webber
6 *-- Author : Adapted by Bryan Webber
8 C-----------------------------------------------------------------------
10 FUNCTION HWSTAB(F,AFUN,NN,X,MM)
12 C-----------------------------------------------------------------------
14 C MODIFIED CERN INTERPOLATION ROUTINE DIVDIF
16 C LIKE HWUTAB BUT USES FUNCTION AFUN IN PLACE OF ARRAY A
18 C-----------------------------------------------------------------------
22 INTEGER NN,MM,MMAX,N,M,MPLUS,IX,IY,MID,NPTS,IP,I,J,L,ISUB
24 DOUBLE PRECISION HWSTAB,AFUN,SUM,X,F(NN),T(20),D(20)
42 IF (AFUN(1).GT.AFUN(N)) GOTO 94
46 IF (X.GE.AFUN(MID)) GOTO 92
54 93 IF (IY-IX.GT.1) GOTO 91
60 IF (X.LE.AFUN(MID)) GOTO 95
68 96 IF (IY-IX.GT.1) GOTO 94
84 IF ((1.LE.ISUB).AND.(ISUB.LE.N)) GOTO 100
96 101 IF (IP.LT.NPTS) GOTO 98
102 IF (.NOT.EXTRA) GOTO 12
106 D(M+2)=(D(M+2)-D(M))/(T(M+2)-T(ISUB))
114 D(I)=(D(I)-D(I-1))/(T(I)-T(ISUB))
124 IF (EXTRA) SUM=0.5*(SUM+D(M+2))
130 SUM=D(J)+(X-T(J))*SUM