      program rungekutta1
C
C  illustrates elementary integration of a first-order
C  differential equation via 2nd-order Runge-Kutta
C  compared with Euler
C
C  CWJ SDSU April 2005
C
      implicit none

      real dt,t
      real x,y 
      real k

      integer i,n

      print*,' Enter dt '
      read*,dt

      n = int(3./dt)

      x = 1.
      y = 1.0
      do i = 0,n
         t = i*dt
C         write(6,101)t,x,exp(-t*t/2.)
C     Euler
         x = x - dt*t*x
C  2nd order Runge-Kutta
         k = -dt*t*y
         y = y-dt*(t+0.5*dt)*(y+0.5*k)
         t = t+dt
         write(6,102)t,x,y,exp(-t**2/2.)
  102 format(f6.3,2x,3f10.5)
         write(15,*)t,x
         write(16,*)t,y
         write(17,*)t,exp(-t**2/2.)
      enddo

      end

