PROGRAM D15R6 C Driver for routine BSSTEP EXTERNAL DERIVS PARAMETER(N=4) DIMENSION Y(N),DYDX(N),YSCAL(N) X=1.0 Y(1)=BESSJ0(X) Y(2)=BESSJ1(X) Y(3)=BESSJ(2,X) Y(4)=BESSJ(3,X) DYDX(1)=-Y(2) DYDX(2)=Y(1)-Y(2) DYDX(3)=Y(2)-2.0*Y(3) DYDX(4)=Y(3)-3.0*Y(4) DO 11 I=1,N YSCAL(I)=1.0 11 CONTINUE HTRY=1.0 WRITE(*,'(/1X,T8,A,T19,A,T31,A,T43,A/)') * 'eps','htry','hdid','hnext' DO 12 I=1,15 EPS=EXP(-FLOAT(I)) CALL BSSTEP(Y,DYDX,N,X,HTRY,EPS,YSCAL,HDID,HNEXT,DERIVS) WRITE(*,'(2X,E12.4,F8.2,2X,2F12.6)') EPS,HTRY,HDID,HNEXT 12 CONTINUE END SUBROUTINE DERIVS(X,Y,DYDX) DIMENSION Y(1),DYDX(1) DYDX(1)=-Y(2) DYDX(2)=Y(1)-(1.0/X)*Y(2) DYDX(3)=Y(2)-(2.0/X)*Y(3) DYDX(4)=Y(3)-(3.0/X)*Y(4) RETURN END