program sist_nao_lineares

use dados
use eliminacao
use funcoes

integer :: it  ! iteracoes

call entradas
call dados_it

do it = 1, itmax ! Passos 1, 2 e 7

	! Passo 3
	call F(N,x,func)
	select case (opcao)
	case(1) ! Metodo de Newton
		call jacobiano
	case(2) ! Metodo de Newton modificado
		call jac_numerico
	end select

	! Passo 4
	A = Jac; b = -func
	call el_gauss

	! Passo 5
	x = x + y

	! Passo 6
	if ( sum(abs(y)) <= tol) exit

end do

call saida

end program sist_nao_lineares