program rk4ex real x1,x2,f1,f2,k1,k2,k3,k4,m1,m2,m3,m4 dt = 1.25/2.0 x1 = 0 x2 = 0 open(13,file="data.d") do 10 t=0,25,dt write(13,20) t,x1,x2,0.5*t*sin(t),0.5*t*sin(t)-x1 k1 = f1(x1, x2, t)*dt m1 = f2(x1, x2,t)*dt k2 = f1(x1+0.5*k1, x2+0.5*m1, t+0.5*dt)*dt m2 = f2(x1+0.5*k1, x2+0.5*m1, t+0.5*dt)*dt k3 = f1(x1+0.5* k2,x2+0.5*m2, t+0.5*dt)*dt m3 = f2(x1+0.5* k2,x2+0.5*m2, t+0.5*dt)*dt k4 = f1(x1+k3, x2+m3, t+dt)*dt m4 = f2(x1+k3, x2+m3, t+dt)*dt x1 = x1 + 1.0/6.0*(k1+2*k2+2*k3+k4) x2 = x2 + 1.0/6.0*(m1+2*m2+2*m3+m4) 10 continue 20 format(5(F12.4)) end real function f1(x1,x2,t) real x1,x2,t f1 = x2 return end real function f2(x1,x2,t) real x1,x2,t f2 = -x1+cos(t) return end