c c 3414 Summer 2002 c HW4, Problem 2(b) c real m, g, k common m, g, k m = 0.11 g = -9.8 k = 0.002 read *, nsteps h = 2.0/nsteps vcur = 16.0 print *, 'Taylor-2' do i = 1, nsteps vold = vcur tcur = h*i vcur = vold + h * (f(vold) + 0.5*h*ft(vold)) print 1000, tcur, vcur 1000 format(f4.1,f8.4) enddo stop end function f(v) c c Note that f() does not depend explicitly on t. c real m, g, k common m, g, k f = g - k*v*abs(v)/m return end function ft(v) c c Returns derivative of F with respect to t. c real m, g, k common m, g, k if (v.gt.0.0) then fv = -2.0*k*v/m else fv = 2.0*k*v/m endif ft = fv*f(v) return end