* D01PAF Example Program Text * Mark 14 Revised. NAG Copyright 1989. * .. Parameters .. INTEGER NDIM, LDVERT, SDVERT, MXORD PARAMETER (NDIM=3,LDVERT=NDIM+1,SDVERT=2*(NDIM+1),MXORD=5) INTEGER NOUT PARAMETER (NOUT=6) * .. Local Scalars .. DOUBLE PRECISION ESTERR INTEGER IFAIL, J, K, MAXORD, MINORD, NEVALS * .. Local Arrays .. DOUBLE PRECISION FINVLS(MXORD), VERT(LDVERT,SDVERT) * .. External Functions .. DOUBLE PRECISION FUNCTN EXTERNAL FUNCTN * .. External Subroutines .. EXTERNAL D01PAF * .. Executable Statements .. WRITE (NOUT,*) 'D01PAF Example Program Results' DO 40 J = 1, LDVERT DO 20 K = 1, NDIM VERT(J,K) = 0.0D0 20 CONTINUE IF (J.GT.1) VERT(J,J-1) = 1.0D0 40 CONTINUE MINORD = 0 NEVALS = 1 WRITE (NOUT,*) WRITE (NOUT,*) + 'MAXORD Estimated Estimated Integrand' WRITE (NOUT,*) + ' value accuracy evaluations' DO 60 MAXORD = 1, MXORD IFAIL = 1 * CALL D01PAF(NDIM,VERT,LDVERT,SDVERT,FUNCTN,MINORD,MAXORD, + FINVLS,ESTERR,IFAIL) * IF (IFAIL.EQ.0) THEN WRITE (NOUT,99999) MAXORD, FINVLS(MAXORD), ESTERR, NEVALS NEVALS = (NEVALS*(MAXORD+NDIM+1))/MAXORD ELSE WRITE (NOUT,*) WRITE (NOUT,99998) ' ** D01PAF returned with IFAIL = ', + IFAIL GO TO 80 END IF 60 CONTINUE 80 CONTINUE * 99999 FORMAT (1X,I4,F13.5,E16.3,I15) 99998 FORMAT (1X,A,I5) END * DOUBLE PRECISION FUNCTION FUNCTN(NDIM,X) * .. Scalar Arguments .. INTEGER NDIM * .. Array Arguments .. DOUBLE PRECISION X(NDIM) * .. Intrinsic Functions .. INTRINSIC COS, EXP * .. Executable Statements .. FUNCTN = EXP(X(1)+X(2)+X(3))*COS(X(1)+X(2)+X(3)) RETURN END