REAL X(21), F(21), D(21), WK(42), FE(101), XE(101), FD(101) REAL XANS(4), FANS(4), ERANS(4), EDANS(4), QANS LOGICAL SPLINE DATA XANS/-0.03,-.02,-.01,0.0/ DATA FANS/0.971920,0.986880,0.996560,1.0/ DATA ERANS/-0.607510E-02,-0.321901E-02,-0.946257E-03,0.0/ DATA EDANS/0.293288,0.267704,0.174490,0.0/ DATA QANS,IANS/0.274679,0/ C C Arithmetic statement functions for Runge's function and derivative. C R(X) = 1.0/(1.0+25.0*X*X) RP(X) = -50.0*X*R(X)**2 C C Compute Runge's function at 21 points in [-1,1]. C DO 1 I=1,21 X(I) = -1.0 + (I-1)/10.0 F(I) = R(X(I)) 1 CONTINUE N = 21 NWK = 42 SPLINE = .FALSE. C C Compute cubic Hermite interpolant because SPLINE is .FALSE. C CALL PCHEZ (N,X,F,D,SPLINE,WK,NWK,IERR) IF (IERR .LT. 0) THEN WRITE (*,*) 'AN ERROR CALLING PCHEZ, IERR= ',IERR STOP ENDIF C NE = 101 C C Evaluate interpolant and derivative at 101 points from -1 to 0. C DO 2 I=1,NE XE(I) = -1.0 + (I-1.0)/(NE-1.0) 2 CONTINUE CALL PCHEV (N,X,F,D,NE,XE,FE,FD,IERR) IF (IERR .NE. 0) THEN WRITE (*,*) 'AN ERROR CALLING PCHEV, IERR= ',IERR STOP ENDIF C DO 3 I=1,NE ERROR = FE(I) - R(XE(I)) ERRORD = FD(I) - RP(XE(I)) WRITE (*,*) XE(I),FE(I),ERROR,ERRORD 3 CONTINUE C C Compute integral over the interval [0,1] C A = 0.0 B = 1.0 Q = PCHQA (N,X,F,D,A,B,IERR) WRITE (*,*) 'INTEGRAL FROM 0 TO 1 = ',Q,' IERR = ',IERR C WRITE (*,*) WRITE (*,*) * ' REFERENCE RESULTS FROM IBM PC/AT OF PRECEDING 5 LINES ' DO 4 I=1,4 WRITE (*,*) XANS(I),FANS(I),ERANS(I),EDANS(I) 4 CONTINUE WRITE (*,*) 'INTEGRAL FROM 0 TO 1 = ',QANS,' IERR = ',IANS C STOP END