c-----------------------------------------------------------------------
c             ----------                         --------
c             subroutine                         contorno
c             ----------                         --------
c-----------------------------------------------------------------------
c
        subroutine contorno(x,y,U)
c---------------------------------
c
        implicit none
c
       include 'memoria.for'
c
c       Declaracao dos Argumentos
c--------------------------------
        double precision  x(*), y(*)
        double precision  U(xmaxdim,ymaxdim)
c
c       Declaracao das Variaveis Locais
c--------------------------------------
        double precision  phi
                 integer  j, i, xnpontos, ynpontos
c
        common /constantes/ phi
        common /pontos/ xnpontos, ynpontos
c
c       ---------------------
c       Condicao de Dirichlet
c----------------------------
c
c       Lado Oeste
c-----------------
        do j = 1,ynpontos
        U(1,j) = 0.0d0
        end do
c
c       Lado Leste
c-----------------
        do j = 1,ynpontos
        U(xnpontos,j) = 0.0d0
        end do
c
c
c       Lado Sul
c---------------
        do i = 2,(xnpontos - 1)
        U(i,1) = dsin(phi*x(i))
        end do
c
c       Lado Norte
c-----------------
        do i = 2,(xnpontos - 1)
        U(i,ynpontos) = 0.0d0
        end do
c
c
c
        return
        end
c-----------------------------------------------------------------------
c-----------------------------------------------------------------------
c-----------------------------------------------------
c       Petronio Pulino
c       Departamento de Matematica Aplicada - D.M.A
c       IMECC - UNICAMP
c       e-mail: pulino@ime.unicamp.br
c         http://www.ime.unicamp.br/~pulino/
c-----------------------------------------------------