调用BLAS函数

时间:2016-03-31 16:23:03

标签: 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/ -L /usr/lib  -lblas

虽然我在调用子例程dscal时没有问题但是我为函数dasum

收到以下错误
test.f90:15.2:

x=dasum(N,A,1)
1
Error: Function 'dasum' at (1) has no IMPLICIT type

我是否应该包含某个文件来定义BLAS函数?

1 个答案:

答案 0 :(得分:3)

对于函数,您需要手动指定返回值(如果您感觉豪华,可选择bash):

external

此外,请不要使用real*8,external :: dasum 。它不符合标准,不便携且非常混乱。而是使用real*8参数来定义精度,例如:

kind

等。如果您可以使用real(kind=kind(1.d0)) ,请使用其常量ISO_Fortran_env moduleREAL32

相关问题