module para implicit none integer :: i integer,parameter :: N = 501 real(8),parameter :: x0 = 0.d0, & & xN = 20.d0, & & y0 = 0.1d0 real(8) :: h end module para !********************************************************************* program rogi2 use para implicit none real(8),dimension(N) :: x,y call calc_nexty(x,y) stop end program rogi2 !********************************************************************* subroutine calc_nexty(x,y) use para implicit none real(8),dimension(N) :: x,y !/////calculate parameter h = (xN-x0)/dble(N-1) !/////inicialize & boundary condition y(:) = 0.d0 x(:) = 0.d0 y(1) = y0 do i = 2,N y(i) = y(i-1)+h*(y(i-1)-y(i-1)*y(i-1)) end do !/////output result do i = 1,N write(*,*)'i=',i,'y=',y(i) end do return end subroutine calc_nexty