Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran 调用BLAS函数_Fortran_Blas - Fatal编程技术网

Fortran 调用BLAS函数

Fortran 调用BLAS函数,fortran,blas,Fortran,Blas,这里有一个简单的程序 PROGRAM MAIN implicit none integer, PARAMETER :: N=10 real*8 :: A(N) real*8 :: x=0.1D0 integer :: i=1 Do i=1,N A(i)=i end do call dscal(N,x, A, 1) x=dasum(N,A,1) END PROGRAM MAIN 我用命令编译 gfortran test.f90 -o test -O1 -I /usr/include/

这里有一个简单的程序

PROGRAM MAIN
implicit none
integer, PARAMETER :: N=10
real*8 :: A(N)
real*8 :: x=0.1D0
integer :: i=1
Do i=1,N
A(i)=i
end do
call dscal(N,x, A, 1)

x=dasum(N,A,1)

END PROGRAM MAIN
我用命令编译

gfortran   test.f90  -o test -O1  -I /usr/include/ -L /usr/lib  -lblas
虽然调用子例程
dscal
没有问题,但函数
dasum


我应该包括一个特定的文件来定义BLAS函数吗?

对于函数,您需要手动指定返回值(如果您觉得很时髦,还可以选择一个
外部
):


此外,请不要使用
real*8
。它不符合标准,不便于携带,而且很容易混淆。使用
kind
参数定义精度,例如:

real(kind=kind(1.d0))

等等。如果可以使用
ISO_Fortran_env模块
,请使用其常量
REAL32
REAL64

您使用哪种BLAS实现?供应商通常在模块中为过程提供接口。@francescalus
libblas.so.3
库在正确编译时是否链接到可执行文件中。我是否应该手动指定我使用的所有BLAS/LAPACK函数的返回值?有没有包含这些定义的文件?原则上是的。但是,有些实现提供了可用于此目的的模块。MKL提供。
real*8,external :: dasum
real(kind=kind(1.d0))