2 SUBROUTINE pchfe (N, X, F, D, INCFD, SKIP, NE, XE, FE, IERR)
132 INTEGER n, incfd, ne, ierr
133 REAL x(*),
f(incfd,*), d(incfd,*), xe(*), fe(*)
138 INTEGER i, ierc, ir,
j, jfirst, next(2), nj
145 IF (
n.LT.2 ) go to 5001
146 IF ( incfd.LT.1 ) go to 5002
148 IF (
x(
i).LE.
x(
i-1) ) go to 5003
154 IF ( ne.LT.1 ) go to 5004
166 IF (jfirst .GT. ne) go to 5000
171 IF (xe(
j) .GE.
x(ir)) go to 30
179 IF (ir .EQ.
n)
j = ne + 1
186 IF (nj .EQ. 0) go to 50
191 CALL
chfev(
x(ir-1),
x(ir),
f(1,ir-1),
f(1,ir), d(1,ir-1),d(1,ir),
192 * nj, xe(jfirst), fe(jfirst), next, ierc)
194 IF (ierc .LT. 0) go to 5005
196 IF (next(2) .EQ. 0) go to 42
201 IF (ir .LT.
n) go to 41
204 ierr = ierr + next(2)
214 IF (next(1) .EQ. 0) go to 49
219 IF (ir .GT. 2) go to 43
222 ierr = ierr + next(1)
230 DO 44
i = jfirst,
j-1
231 IF (xe(
i) .LT.
x(ir-1)) go to 45
243 IF (xe(
j) .LT.
x(
i)) go to 47
263 IF (ir .LE.
n) go to 10
275 CALL
xermsg(
'SLATEC',
'PCHFE',
276 +
'NUMBER OF DATA POINTS LESS THAN TWO', ierr, 1)
282 CALL
xermsg(
'SLATEC',
'PCHFE',
'INCREMENT LESS THAN ONE', ierr,
289 CALL
xermsg(
'SLATEC',
'PCHFE',
'X-ARRAY NOT STRICTLY INCREASING'
296 CALL
xermsg(
'SLATEC',
'PCHFE',
297 +
'NUMBER OF EVALUATION POINTS LESS THAN ONE', ierr, 1)
304 CALL
xermsg(
'SLATEC',
'PCHFE',
305 +
'ERROR RETURN FROM CHFEV -- FATAL', ierr, 2)