我在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
你可以帮助我,告诉我我做错了吗?