dsyev in fortran 90

时间:2017-07-17 07:45:55

标签: ubuntu lapack blas

我在Ubuntu-Virtualbox的终端使用FORTRAN 90 我需要编写一个对齐矩阵4X4的程序,调用LAPACK和BLAS并打印其特征值列表

我安装了LAPACK和BLAS库:

sudo apt-get install libblas3gf libblas-doc libblas-dev liblapack3gf liblapack-doc liblapack-dev

我的节目是:

program matrices   
implicit none  
double precision :: A (4,4)  
double precision,allocatable :: work (:,:)  
double precision,allocatable :: W (:,:)  
integer :: i, j  
integer :: lwork  
integer :: info, JOBZ, UPLO, N, LDA  
N=4  
do i=1,N  
   do j=1,N  
      A(i,j)=0  
   end do  
end do  
do i = 1, N  
     A(i,i) = 2  
     A(i,i+1) = -1  
     A(i+1,i) = -1  
end do  
LDA=N  
lwork = MAX(1,3*N-1)  
ALLOCATE(work(1:lwork,1:lwork))  
ALLOCATE(W(1:N,1:N))  
CALL dsyev(JOBZ,UPLO,N,A,LDA,W,work,lwork,info)  
WRITE(*,"(3X,A,I3)") 'Diagonalization performed, info equals ',info  
WRITE(*,*)  
end program matrices

这是我收到的:

hila@hila-VirtualBox:~$ gfortran -o tbxu matrices.f90 -lblas -llapack
hila@hila-VirtualBox:~$ gfortran matrices.f90
/tmp/cceiQMkG.o: In function `MAIN__':
matrices.f90:(.text+0x548): undefined reference to `dsyev_'
collect2: error: ld returned 1 exit status
你可以帮助我,告诉我我做错了吗?

0 个答案:

没有答案