主题:请高手指点怎么用lapack库计算本征值啊?
我的程序如下:请高手指点一下怎么改就可以用lapack库计算本征值和本征矢了啊?
program caculation
implicit none
integer i,q, k,r,p,j,a,b
real t,u
integer, parameter :: n=10
integer,parameter :: m=6
real :: H(4*n*m,4*n*m)
real :: S(4*n*m,4*n*m)
t=-2.79
u=0.3
do a=1,4*m*n
do b=1,4*m*n
H(b,a)=0
end do
end do
do i=1,4*n*m-1
H(i,i+1)=t
H(i+1,i)=t
S(i,i+1)=u
S(i+1,i)=u
end do
do q=1,m-1
H(4*q*n,4*q*n+1)=0
H(4*q*n+1,4*q*n)=0
S(4*q*n,4*q*n+1)=0
S(4*q*n+1,4*q*n)=0
end do
do r=0,m-2
do k=0,n-1
H(4*r*n+4*k+1,4*n*(r+1)+4*k+2)=t
H(4*r*n+4*k+2,4*n*(r+1)+4*k+1)=t
S(4*r*n+4*k+1,4*n*(r+1)+4*k+2)=u
S(4*r*n+4*k+2,4*n*(r+1)+4*k+1)=u
end do
end do
do r=0,m-2
do p=1,n
H(4*n*r+4*p,4*n*(r+1)+4*p-1)=t
H(4*n*(r+1)+4*p-1,4*n*r+4*p)=t
S(4*n*r+4*p,4*n*(r+1)+4*p-1)=u
S(4*n*(r+1)+4*p-1,4*n*r+4*p)=u
end do
end do
end
program caculation
implicit none
integer i,q, k,r,p,j,a,b
real t,u
integer, parameter :: n=10
integer,parameter :: m=6
real :: H(4*n*m,4*n*m)
real :: S(4*n*m,4*n*m)
t=-2.79
u=0.3
do a=1,4*m*n
do b=1,4*m*n
H(b,a)=0
end do
end do
do i=1,4*n*m-1
H(i,i+1)=t
H(i+1,i)=t
S(i,i+1)=u
S(i+1,i)=u
end do
do q=1,m-1
H(4*q*n,4*q*n+1)=0
H(4*q*n+1,4*q*n)=0
S(4*q*n,4*q*n+1)=0
S(4*q*n+1,4*q*n)=0
end do
do r=0,m-2
do k=0,n-1
H(4*r*n+4*k+1,4*n*(r+1)+4*k+2)=t
H(4*r*n+4*k+2,4*n*(r+1)+4*k+1)=t
S(4*r*n+4*k+1,4*n*(r+1)+4*k+2)=u
S(4*r*n+4*k+2,4*n*(r+1)+4*k+1)=u
end do
end do
do r=0,m-2
do p=1,n
H(4*n*r+4*p,4*n*(r+1)+4*p-1)=t
H(4*n*(r+1)+4*p-1,4*n*r+4*p)=t
S(4*n*r+4*p,4*n*(r+1)+4*p-1)=u
S(4*n*(r+1)+4*p-1,4*n*r+4*p)=u
end do
end do
end