主题:求助:lapack问题
我用ifort安装lapack,调用的时候出了问题,用dsyevr对角化出来的结果不对。
用gfortran安装就没有问题。有谁用ifort安装lapack的,能不能帮我测试一下,
看一看你们的结果。我用的是 intel fortran 10.00
程序如下
program main
implicit none
integer( 4 ) :: n, il, iu, m, isuppz( 6 ), iwork( 30 ), lwork, liwork, info
real( 8 ) :: a( 3, 3 ), z( 3, 3 ), w( 3 ), work( 80 ), vl, vu, abstol
n = 3
il = 1
iu = 3
abstol = 0.0_8
lwork = 80
liwork = 30
a( 1, 1 ) = 0.694444444444445_8
a( 2, 1 ) = 0.208135487069874_8
a( 3, 1 ) = 1.069274406890994E-002_8
a( 1, 2 ) = 0.208135487069874_8
a( 2, 2 ) = -0.211332634659698_8
a( 3, 2 ) = 0.133515358818456_8
a( 1, 3 ) = 1.069274406890994E-002_8
a( 2, 3 ) = 0.133515358818456_8
a( 3, 3 ) = -0.417584606439560_8
call dsyevr( 'V', 'I', 'U', n, a, n, vl, vu, il, iu, abstol, &
m, w, z, n, isuppz, work, lwork, iwork, liwork, info )
print *, "eval"
print *, w
end program main
我用ifort编译lapack 得到的结果:
0.174584482225418 0.174584482225418 0.174584482225418
用gfortran编译lapack得到的结果是:
-0.489430566447896 -0.186354201199526 0.741311970992605
用gfortran安装就没有问题。有谁用ifort安装lapack的,能不能帮我测试一下,
看一看你们的结果。我用的是 intel fortran 10.00
程序如下
program main
implicit none
integer( 4 ) :: n, il, iu, m, isuppz( 6 ), iwork( 30 ), lwork, liwork, info
real( 8 ) :: a( 3, 3 ), z( 3, 3 ), w( 3 ), work( 80 ), vl, vu, abstol
n = 3
il = 1
iu = 3
abstol = 0.0_8
lwork = 80
liwork = 30
a( 1, 1 ) = 0.694444444444445_8
a( 2, 1 ) = 0.208135487069874_8
a( 3, 1 ) = 1.069274406890994E-002_8
a( 1, 2 ) = 0.208135487069874_8
a( 2, 2 ) = -0.211332634659698_8
a( 3, 2 ) = 0.133515358818456_8
a( 1, 3 ) = 1.069274406890994E-002_8
a( 2, 3 ) = 0.133515358818456_8
a( 3, 3 ) = -0.417584606439560_8
call dsyevr( 'V', 'I', 'U', n, a, n, vl, vu, il, iu, abstol, &
m, w, z, n, isuppz, work, lwork, iwork, liwork, info )
print *, "eval"
print *, w
end program main
我用ifort编译lapack 得到的结果:
0.174584482225418 0.174584482225418 0.174584482225418
用gfortran编译lapack得到的结果是:
-0.489430566447896 -0.186354201199526 0.741311970992605