program main
implicit none
integer,parameter :: M=20000,N=500,WORKL=M,iWORKL=M
integer i,j,info
real dataM(M,N),C(M,M),T(N,M),W(M),WORK(WORKL)
integer iWORK(iWORKL)
open(5,file='output_1.47_0.000_1.dat')
do i=1,M
read(5,*) (dataM(i,j),j=1,N)
end do
write(*,*) "load the dat file!"
do i=1,M
dataM(i,:)=dataM(i,:)/sqrt(sum(dataM(i,:)**2))
end do
write(*,*) "dataM has been unitary"
T=transpose(dataM)
C=matmul(dataM,T)
write(*,*) "C has been done!"
call syevd(C,W,'V')
1.png (51.12 KB, 下载次数: 812)
li913 发表于 2020-2-14 21:22
use lapack95,并需要连接 mkl_lapack95.lib 。
li913 发表于 2020-2-16 14:36
linux的话,文件名可能不同。比如 ifort -o lapack.o test.o -O test.out
li913 发表于 2020-2-14 21:22
use lapack95,并需要连接 mkl_lapack95.lib 。
mmSCI 发表于 2020-8-29 15:58
大神,请问如果我只需要计算出最大特征值,不需要计算特征向量和其他特征值,应该是用什么mkl的函数? ...
风平老涡 发表于 2020-8-29 22:57
call syevd(c,w,'N')
or
call syevd(c,w)
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |