下面是一个简单的程序
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错误:函数'dasum‘at (1)没有隐式类型
我应该包括一个特定的文件来定义BLAS函数吗?
发布于 2016-03-31 16:41:24
对于函数,需要手动指定返回值(如果感觉很时髦,可以选择为external):
real*8,external :: dasum另外,请不要使用real*8。它不符合标准,不便于携带,也不容易混淆。相反,使用kind参数来定义精度,例如:
real(kind=kind(1.d0))或者类似的。如果可以使用ISO_Fortran_env module,请使用其常量REAL32和REAL64。
https://stackoverflow.com/questions/36338770
复制相似问题