Advertisement
Guest User

Untitled

a guest
Jan 25th, 2015
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module functions
  2. implicit none
  3. real,parameter:: beta = 0.001, ni = 0.1
  4. contains
  5. function func(x,y)
  6. real, intent(in)::x
  7. real,dimension(:),intent(in):: y
  8. real,dimension(size(y))::func
  9. func(1)= -beta*y(2)*y(1)
  10. func(2)= beta*y(1)*y(2) - ni*y(2)
  11. func(3)= ni*y(2)
  12. end function func
  13. end  module functions
  14.  
  15. program sir
  16. use functions
  17. implicit none
  18. real :: h,x,diff
  19. real, dimension(3) :: y,k1,k2,k3,k4,ynew
  20. integer :: i,n
  21. write (*,*) 'h= '
  22. read (*,*) h
  23. write (*,*) 'n= '
  24. read (*,*) n
  25. write (*,*) 'S init = '
  26. read(*,*) y(1)
  27. write(*,*) 'I init = '
  28. read(*,*) y(2)
  29. write(*,*) 'R init = '
  30. read (*,*) y(3)
  31. x=0.e0
  32. write(*,*) x,y(1),y(2),y(3)
  33. do i=0,n-1
  34. x = x+h
  35. k1(:)=h*func(x,y)
  36. k2(:)=h*func(x+h/2,y+k1/2)
  37. k3(:)=h*func(x+h/2,y+ k2/2)
  38. k4(:)=h*func(x+h,y+k3)
  39. ynew(:)= y (:)+ (k1 +2*k2+2* k3+k4)/6
  40. y(:)= ynew (:)
  41. write(*,*) x,y(1),y(2),y(3)
  42. end do
  43. end program
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement