Fortran BLAS daxpy没有添加任何内容,y保持不变

Fortran BLAS daxpy没有添加任何内容,y保持不变,fortran,blas,Fortran,Blas,我遇到以下问题: 我正在尝试使用BLAS子例程,但是当使用它们时,它们似乎不起作用/覆盖解决方案,例如,如果我尝试添加两个向量a和b,并使用 program test real(kind=8), dimension(:), allocatable :: a,b integer ::n print*, "input n, a, b" read*, n allocate(a(n), b(n)) read*, a, b print*, a print*, b call daxpy(n,1,a,1,b,

我遇到以下问题:

我正在尝试使用BLAS子例程,但是当使用它们时,它们似乎不起作用/覆盖解决方案,例如,如果我尝试添加两个向量
a
b
,并使用

program test
real(kind=8), dimension(:), allocatable :: a,b
integer ::n
print*, "input n, a, b"
read*, n
allocate(a(n), b(n))
read*, a, b
print*, a
print*, b
call daxpy(n,1,a,1,b,1)
print*, a
print*, b
deallocate(a, b)
end program test
然后
b
对于非零,两次的结果相同

我假设子程序计算
a+b
,然后将其覆盖到
b


我尝试过只使用
a+b
而不调用BLAS,效果很好。

我认为您需要将双精度文字(或变量)传递到“alpha”(for):

如果我们包含BLAS的一些接口文件(例如,从包含目录获得的mkl_BLAS.fi)

案例(1)给出了一个带有(稍微多一些)明确消息的错误:

test.f90:13:38:

     call daxpy( n, 1,     a, 1, b, 1 )
                                      1
Error: Type mismatch in argument 'da' at (1); passed INTEGER(4) to REAL(8)

请给我们看完整的代码。见和。查看变量声明及其初始值很重要。抱歉,我认为这是不必要的,现在已更新。当您阅读输入时,是否可以显示该输入的外观?例如,我将输入单例向量为1 5 10,然后输出将重复5和10次!这似乎正在发挥作用,非常感谢
program test
    implicit none
    include 'mkl_blas.fi'
    ...
test.f90:13:38:

     call daxpy( n, 1,     a, 1, b, 1 )
                                      1
Error: Type mismatch in argument 'da' at (1); passed INTEGER(4) to REAL(8)