c----------------------------------------------------------------------- c these are the subroutines for the c c Problem VAN der Pol (ODE) c ODE of dimension 2 c c----------------------------------------------------------------------- subroutine prob(problm,neqn,tbegin,tend,ijac,mljac,mujac) character*(*) problm integer neqn,ijac,mljac,mujac double precision tbegin,tend problm = 'vdpol' neqn = 2 tbegin = 0d0 tend = 1000d0 ijac = 1 mljac = neqn mujac = neqn return end c----------------------------------------------------------------------- subroutine init(neqn,y) integer neqn double precision y(neqn) y(1) = 2d0 y(2) = 0d0 return end c----------------------------------------------------------------------- subroutine feval(neqn,t,y,dy) integer neqn double precision t,y(neqn),dy(neqn) dy(1) = y(2) dy(2) = -y(1)+1000d0*y(2)*(1-y(1)**2) return end c----------------------------------------------------------------------- subroutine jeval(neqn,t,y,jac,ldim) integer neqn,ldim double precision t,y(neqn),jac(ldim,neqn) integer i,j do 20 j=1,neqn do 10 i=1,neqn jac(i,j)=0d0 10 continue 20 continue jac(1,1) = 0d0 jac(1,2) = 1d0 jac(2,1) = -(1+2*1000d0*y(1)*y(2)) jac(2,2) = 1000d0*(1-y(1)**2) return end c----------------------------------------------------------------------- subroutine solut(neqn,y) integer neqn double precision y(neqn) y( 1) = -.18636462548081D+01 y( 2) = .75354308654258D-03 return end