module CANAL_NOMES

! objetivo: definir as variáveis principais do programa CANAL

! última alteração = 24 Jun 09

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

implicit none

integer :: unit_main_can = 10 ! identificador do arquivo de listagem do caso
integer :: unit_aux_can  = 90 ! identificador de arquivos auxiliares

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

integer :: modelo_can  ! 1=exato; 2=numérico c/props.constantes; 3=numérico c/props.variáveis 

! propriedades geométricas no centro dos volumes de controle
real*8,dimension(:),allocatable :: xp_can  ! coordenada espacial (m)
real*8,dimension(:),allocatable :: bp_can  ! altura do canal (m)
real*8,dimension(:),allocatable :: ep_can  ! espessura entre tubeira e canal (m)
real*8,dimension(:),allocatable :: tp_can  ! espessura das aletas do canal (m)
real*8,dimension(:),allocatable :: dp_can  ! diâmetro hidráulico da seção transversal do canal (m)
real*8,dimension(:),allocatable :: sbp_can ! área da base do canal (m2)
real*8,dimension(:),allocatable :: sap_can ! área molhada das aletas do canal (m2)
real*8,dimension(:),allocatable :: sp_can  ! área da seção transversal do canal (m2)

! propriedades geométricas na face leste dos volumes de controle
real*8,dimension(:),allocatable :: xe_can ! coordenada espacial (m)
real*8,dimension(:),allocatable :: re_can ! raio da tubeira (m)
real*8,dimension(:),allocatable :: ee_can ! espessura entre tubeira e canal (m)
real*8,dimension(:),allocatable :: le_can ! comprimento médio do escoamento no canal (m)
real*8,dimension(:),allocatable :: se_can ! área da seção transversal do canal (m2)

! *** CAMPOS ***

real*8,dimension(:),allocatable :: p_can     ! pressão (Pa)
real*8,dimension(:),allocatable :: T_can     ! temperatura (K)
real*8,dimension(:),allocatable :: u_can     ! velocidade (m/s)
real*8,dimension(:),allocatable :: ro_can    ! massa específica (kg/m3)

! *** OUTROS ***

real*8 :: p_in_can ! pressão na entrada do canal (Pa)

real*8 :: T_in_can ! temperatura na entrada do canal (K)

real*8 :: fm_t_can ! fluxo de massa em todos os canais (kg/s)
real*8 :: fm_can   ! fluxo de massa num único canal (kg/s)

real*8 :: q_sai_can ! taxa de transferência de calor advectivo na saída dos canais (W)
real*8 :: r_qwc_can ! razão q_wall / q_sai (adimensional)

integer :: itg_can    = 1 ! número da iteração global corrente entre MACH1D e CANAL
integer :: itgmax_can = 1 ! número da iteração global máxima entre MACH1D e CANAL a realizar

integer :: w_p_can       ! freqüência de escrita de p; 0=não escreve
integer :: w_T_can       ! freqüência de escrita de T; 0=não escreve
integer :: w_u_can       ! freqüência de escrita de u; 0=não escreve
integer :: w_ro_can      ! freqüência de escrita de ro; 0=não escreve

integer :: w_grafico_can ! 1 = mostra gráficos dos resultados; 0=não
integer :: g_p_can       ! gráfico de p;  0=não; 1=mostra; 2=mostra com tubeira
integer :: g_T_can       ! gráfico de T;  0=não; 1=mostra; 2=mostra com tubeira
integer :: g_u_can       ! gráfico de u;  0=não; 1=mostra; 2=mostra com tubeira
integer :: g_ro_can      ! gráfico de ro; 0=não; 1=mostra; 2=mostra com tubeira

integer :: w_lista_can          ! 1 = cria listagem do caso; 0=não
integer :: lista_caso_can       ! lista conteúdo do arquivo do caso
integer :: lista_rex_can        ! lista conteúdo do arquivo de saída para o programa REX

integer :: le_canal_ger_can    ! lê conteúdo do arquivo de dados do módulo CANAL_GERAL
integer :: lista_canal_ger_can ! lista conteúdo do arquivo de dados do módulo CANAL_GERAL
integer :: copia_canal_ger_can ! gera back up do arquivo de dados do módulo CANAL_GERAL

character*100 :: titulo_can         ! título do caso a simular
character*50  :: nome_caso_can      ! nome do arquivo do caso a simular
character*50  :: nome_canal_ger_can ! nome do arquivo de dados do módulo CANAL_GERAL
character*50  :: nome_parede_can    ! nome do arquivo de dados do programa PAREDE

character*50 :: arquivo_nome_inicio_modulo_can     ! nome do arquivo de dados do módulo ARQUIVO
character*50 :: exato_canal_nome_inicio_modulo_can ! nome do arquivo de dados do módulo EXATO_CANAL
character*50 :: plota_nome_inicio_modulo_can       ! nome do arquivo de dados do módulo PLOTA
character*50 :: num_ger_nome_inicio_modulo_can     ! nome do arquivo de dados do módulo NUMERICO_GERAL
character*50 :: num_cte_nome_inicio_modulo_can     ! nome do arquivo de dados do módulo NUMERICO_CONSTANTE
character*50 :: num_var_nome_inicio_modulo_can     ! nome do arquivo de dados do módulo NUMERICO_VARIAVEL

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

end module CANAL_NOMES