	implicit none	
	real dydx(2),y(2),h,yout(2),x
	integer i
	external derivs
	parameter (h=0.1)

	open(10,file='ode.dat')
	
	call initialize(y,x)
	
	do i=1,100
		call derivs(x,y,dydx)
		call rk4(y,dydx,2,x,h,yout,derivs)
		y(1)=yout(1)
		y(2)=yout(2)
		x=x+h
		write (10,*) x,yout(1),yout(2)
	enddo

	end
cccccccccccccccccccccccccccccccccccccccc
	subroutine initialize(y,x)
	real y(2),x

	y(1)=0.0
	y(2)=1.0
	x=0.0

	return
	end
ccccccccccccccccccccccccccccccccccccccc
	subroutine derivs(x,y,dydx)
	real x,y(2),dydx(2)

	dydx(1)=y(2)
	dydx(2)=-sin(x)

	return
	end
cccccccccccccccccccccccccccccccccccccccccc
