【2階微分 オイラー法にて】


****** main ******
      external euler2,f1,f2
      
      write(*,*)'h='
      read(*,*)h
      
      write(*,*)'t0='
      read(*,*)t0
      
      write(*,*)'y0='
      read(*,*)y0
      
      write(*,*)'y0''='
      read(*,*)y0d
      
      write(*,*)'tend='
      read(*,*)tend
      
      call euler2(f1,f2,h,t0,y0,y0d,tend)
      stop
      end
      
****** subroutine program*******
      subroutine euler2(f1,f2,h,t0,y0,y0d,tend)
      t =t0
      y =y0
      yd=y0d
      
   20 continue
      if(t.ge.tend)go to 30
      t =t+h
      y =y +h*f1(y,yd,t)
      yd=yd+h*f2(y,yd,t)
      goto 20
      
   30 write(*,*)' y  =',y
      return
      end
      
****** function f1 *******
      function f1(y,yd,t)
      f1 = yd
      return
      end
      
****** function f2 *******
      function f2(y,yd,t)
      f2 = t + 1
      return
      end