module PAREDE_CONSTANTE

! sigla = PAREDE_CTE_

! objetivo: gerar perfil e malha de canais de refrigeração
!           com base em dados constantes

! versão original 1.0 (26 Jan 00)

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

! versão atual    1.0 (26 Jan 00)

! última alteração =   26 Jan 00

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

! RELAÇÃO DAS ROTINAS DESTE MÓDULO:

  ! PAREDE_CTE_calcula
  ! PAREDE_CTE_le_dados
  ! PAREDE_CTE_le_inicio

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

! rotinas onde são lidos ARQUIVOS de dados neste MÓDULO:

  ! PAREDE_CTE_le_dados
  ! PAREDE_CTE_le_inicio

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

! rotinas onde são gerados ARQUIVOS neste MÓDULO:

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

use ARQUIVO ! versão 1.2 (19 Jan 00)

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

implicit none

real*8, private :: e_cte ! espessura entre tubeira e canal (m)
real*8, private :: b_cte ! altura do canal (m)
real*8, private :: t_cte ! espessura das aletas do canal

integer,private :: lista ! lista conteúdo do arquivo de dados do módulo PAREDE_CONSTANTE
integer,private :: le    ! lê conteúdo do arquivo de dados do módulo PAREDE_CONSTANTE
integer,private :: copia ! gera back up do arquivo de dados do módulo PAREDE_CONSTANTE

character*50,private :: nome_constante ! nome do arquivo de dados do módulo PAREDE_CONSTANTE

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

contains

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

  subroutine PAREDE_CTE_calcula ( ee, be, te )

    real*8,dimension(:),intent(out) :: ee ! espessura entre tubeira e canal (m)
    real*8,dimension(:),intent(out) :: be ! altura do canal (m)
    real*8,dimension(:),intent(out) :: te ! espessura das aletas do canal (m)

    ee = e_cte
    be = b_cte
    te = t_cte

  end subroutine PAREDE_CTE_calcula

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

  subroutine PAREDE_CTE_le_dados ( unit )

    integer,intent(in) :: unit ! unidade de leitura do arquivo de dados

    open ( unit, file = trim(nome_constante) )

    read ( unit, * ) e_cte
    read ( unit, * ) b_cte
    read ( unit, * ) t_cte

    close ( unit )

  end subroutine PAREDE_CTE_le_dados

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

  subroutine PAREDE_CTE_le_inicio ( unit, nome )

    integer,      intent(in) :: unit ! unidade do arquivo
    character*(*),intent(in) :: nome ! nome do arquivo de dados de configuração do módulo

    open ( unit, file = trim(nome) )

    read ( unit, * ) nome_constante
    read ( unit, * ) lista
    read ( unit, * ) le
    read ( unit, * ) copia

    close ( unit )

    if ( lista == 1 ) call ARQUIVO_notepad_abre_dado ( nome_constante )

    if ( le    == 1 ) call PAREDE_CTE_le_dados ( unit )

    if ( copia == 1 ) call ARQUIVO_copia_arquivo ( nome_constante )

  end subroutine PAREDE_CTE_le_inicio

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

end module PAREDE_CONSTANTE
