* D02JAF Example Program Text * Mark 15 Revised. NAG Copyright 1991. * .. Parameters .. INTEGER N, K1MAX, KPMAX, LW PARAMETER (N=2,K1MAX=8,KPMAX=15,LW=2*(KPMAX+N)*(K1MAX+1) + +7*K1MAX) INTEGER NOUT PARAMETER (NOUT=6) * .. Local Scalars .. DOUBLE PRECISION X, X0, X1, Y INTEGER I, IA1, IFAIL, K1, KP, M * .. Local Arrays .. DOUBLE PRECISION C(K1MAX), W(LW) INTEGER IW(K1MAX) * .. External Functions .. DOUBLE PRECISION CF EXTERNAL CF * .. External Subroutines .. EXTERNAL BC, D02JAF, E02AKF * .. Intrinsic Functions .. INTRINSIC DBLE * .. Executable Statements .. WRITE (NOUT,*) 'D02JAF Example Program Results' X0 = -1.0D0 X1 = 1.0D0 WRITE (NOUT,*) WRITE (NOUT,*) ' KP K1 Chebyshev coefficients' DO 40 KP = 10, KPMAX, 5 DO 20 K1 = 4, K1MAX, 2 IFAIL = 1 * CALL D02JAF(N,CF,BC,X0,X1,K1,KP,C,W,LW,IW,IFAIL) * IF (IFAIL.EQ.0) THEN WRITE (NOUT,99998) KP, K1, (C(I),I=1,K1) ELSE IF (IFAIL.GT.0) THEN WRITE (NOUT,99999) KP, K1, IFAIL ELSE WRITE (NOUT,99995) IFAIL END IF GO TO 80 END IF 20 CONTINUE 40 CONTINUE K1 = 8 M = 9 IA1 = 1 WRITE (NOUT,*) WRITE (NOUT,99997) 'Last computed solution evaluated at', M, + ' equally spaced points' WRITE (NOUT,*) WRITE (NOUT,*) ' X Y' DO 60 I = 1, M X = (X0*DBLE(M-I)+X1*DBLE(I-1))/DBLE(M-1) IFAIL = 1 * CALL E02AKF(K1,X0,X1,C,IA1,K1MAX,X,Y,IFAIL) * WRITE (NOUT,99996) X, Y 60 CONTINUE 80 CONTINUE * 99999 FORMAT (1X,2(I3,1X),' D02JAF fails with IFAIL =',I4) 99998 FORMAT (1X,2(I3,1X),8F8.4) 99997 FORMAT (1X,A,I5,A) 99996 FORMAT (1X,2F10.4) 99995 FORMAT (1X,/1X,' ** D02JAF returned with IFAIL = ',I5) END * DOUBLE PRECISION FUNCTION CF(J,X) * .. Scalar Arguments .. DOUBLE PRECISION X INTEGER J * .. Executable Statements .. IF (J.EQ.2) THEN CF = 0.0D0 ELSE CF = 1.0D0 END IF RETURN END * SUBROUTINE BC(I,J,RHS) * .. Scalar Arguments .. DOUBLE PRECISION RHS INTEGER I, J * .. Executable Statements .. RHS = 0.0D0 IF (I.EQ.1) THEN J = 1 ELSE J = -1 END IF RETURN END