module TUBEIRA_NOMES

! objetivo: definir as variáveis globais do programa TUBEIRA

! programador: Carlos Henrique Marchi
! local:       SINMEC/UFSC - Florianópolis - SC

! última alteração = 20 Jan 00

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

implicit none

integer :: unit_main = 10 ! identificador do arquivo de listagem do caso
integer :: unit_aux  = 90 ! identificador de arquivos auxiliares

character*(50) :: inicio = 'tubeira.inicio.ent' ! nome do arquivo de dados de inicialização do programa

integer :: n  ! número total de volumes de controle que definem o perfil da tubeira
              ! inclui as duas extremidades do domínio

integer :: ng ! índice do ponto da garganta da tubeira
real*8  :: xg ! coordenada da garganta da tubeira (m)
real*8  :: rc ! raio de curvatura na garganta da tubeira (m)
real*8  :: sg ! área da garganta da tubeira (m2)

integer :: i  ! índice de um ponto específico

integer :: tipo_tubeira ! tipo de tubeira
                        ! 0 = tabela de dados
                        ! 1 = linear
                        ! 2 = parabólica simétrica
                        ! 3 = cossenoidal simétrica
                        ! 4 = cossenoidal simétrica com câmara

integer :: tipo_malha ! tipo de malha
                      ! 1 = uniforme (intervalo entre as coordenadas X dos pontos é constante)
                      ! 2 = não-uniforme de faces centradas

integer :: refino ! refino de malha
                  ! 0 = não
                  ! 1 = refina malha-base de tabela de dados; para tipo de malha = 2 

integer :: sai_binario ! tipo de arquivo de saída binário com a malha
                       ! 0 = não gera arquivo
                       ! 1 = todos os parâmetros (n,ng,xg,sg,rc; xe,re,se,xp,rp,sp,sn)

integer :: w_lista       ! 1 = cria listagem do caso; 0=não
integer :: lista_caso    ! lista conteúdo do arquivo do caso
integer :: lista_arquivo ! lista conteúdo do arquivo de dados do módulo ARQUIVO

integer :: w_x_r_faces ! freqüência de escrita de (xe,re) na listagem do caso; 0=não escreve
integer :: w_x_r_nos   ! freqüência de escrita de (xp,rp) na listagem do caso; 0=não escreve
integer :: w_se        ! freqüência de escrita de (se) na listagem do caso; 0=não escreve
integer :: w_sp        ! freqüência de escrita de (sp) na listagem do caso; 0=não escreve
integer :: w_sn        ! freqüência de escrita de (sw) na listagem do caso; 0=não escreve
integer :: w_grafico   ! freqüência de escrita de (xe,re) para mostrar gráfico da malha; 0=não

integer :: le_tub_ger    ! lê conteúdo do arquivo de dados do módulo TUBEIRA_GERAL
integer :: lista_tub_ger ! lista conteúdo do arquivo de dados do módulo TUBEIRA_GERAL
integer :: copia_tub_ger ! gera back up do arquivo de dados do módulo TUBEIRA_GERAL

character*50 :: nome_tub_ger   ! nome do arquivo de dados do módulo TUBEIRA_GERAL

character*50 :: arquivo_nome_inicio_modulo     ! nome do arquivo de dados do módulo ARQUIVO
character*50 :: plota_nome_inicio_modulo       ! nome do arquivo de dados do módulo PLOTA
character*50 :: tub_par_nome_inicio_modulo     ! nome do arquivo de dados do módulo TUBEIRA_PARABOLICA
character*50 :: tub_cos_cam_nome_inicio_modulo ! nome do arquivo de dados do módulo TUBEIRA_PARABOLICA

character*100 :: titulo      ! título do caso a simular
character*50  :: nome_caso   ! nome do caso a simular
character*50  :: nome_tabela ! nome do arquivo para gerar tubeira via tabela de dados

! propriedades geométricas no centro dos volumes de controle
real*8,dimension(:),allocatable :: xp ! coordenada espacial (m)
real*8,dimension(:),allocatable :: rp ! raio da seção transversal da tubeira (m)
real*8,dimension(:),allocatable :: sp ! área da seção transversal da tubeira (m2)

! propriedades geométricas na face leste dos volumes de controle
real*8,dimension(:),allocatable :: xe ! coordenada espacial (m)
real*8,dimension(:),allocatable :: re ! raio da seção transversal da tubeira (m)
real*8,dimension(:),allocatable :: se ! área da seção transversal da tubeira (m2)

real*8,dimension(:),allocatable :: sn ! área da parede da tubeira de cada volume de controle (m2)

real*8 :: sn_tot ! área total da parede da tubeira (m2)

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

end module TUBEIRA_NOMES