module malhas_segmentos

use variaveis
use dados

contains

!--------------------------------------------------------------------

subroutine malha_segmentos_retas

	! Cálculo do tamanho do elemento (direção eta)
	dx = 0.5d0/(Nv2)

	! Auxiliar para o número do nó coincidente à linha de simetria do L
	aux1 = 	1

	! Cálculo da posição dos vértices dos volumes de controle
	do i = 1, Nv2

		aux2 = i-1
		aux3 = aux2*Nv1

		raux1 = (i-1.0d0)/(Nv2-1.0d0)
		raux2 = raux1*0.5d0
		raux3 = 1.0d0 - raux2
		raux4 = raux3/(aux1-1.0d0)


		! Parte inferior
		do j = 1,Nv1

			aux4 = aux3 + j
			xv(aux4) = raux2 + (j-1)*raux4
			yv(aux4) = raux2

		end do

	end do

	! Vértices correspondentes a cada volume de controle
	do i = 1, N2

		aux1 = (i-1)*N1
		aux3 = (i-1)*Nv1
		aux4 = aux3 + Nv1

		aux5 = i*Nf1

		do j = 1, N1

			! Vértices, para malha sem fictícios
			aux2 = aux1 + j
			vert(aux2,1) = aux3 + j
			vert(aux2,2) = aux3 + j + 1
			vert(aux2,3) = aux4 + j + 1
			vert(aux2,4) = aux4 + j

			! Vértices, para malha com fictícios
			aux6 = aux5 + j + 1
			vertf(aux6,1) = aux3 + j
			vertf(aux6,2) = aux3 + j + 1
			vertf(aux6,3) = aux4 + j + 1
			vertf(aux6,4) = aux4 + j

		end do

	end do


end subroutine malha_segmentos_retas

!--------------------------------------------------------------------


end module malhas_segmentos