      program speedeigen
C
C  a benchmark program for eigenvalues
C
C  CWJ  SDSU March 2005
C
C
      implicit none

      integer size
      parameter(size=500)
      
      integer n

      real a(size,size)  ! the matrix in question
      real e(size)       ! eigenvalues
      real work(size)
      real vec(size,size) ! eigenvectors


      n = size

      call fillmatrix(size,n,a)
      call eig(a,n,size,e,vec,work)
      end

C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

      subroutine fillmatrix(size,n,a)
C
C  fills a matrix with random elements
C  makes it symmetric
C   
C  calls function GAUSSVAR (from RANLIB)

      implicit none
      integer size
      real a(size,size)
      integer n
      integer i,j
      integer seed
      data seed/17891/

      real gaussvar

      do i = 1,n
	do j = i,n
           a(i,j)=gaussvar(seed)
           a(j,i)=a(i,j)
        enddo
      enddo
      return
      end


      

