我是BLAS的新手,并尝试编译使用BLAS进行矩阵 - 矩阵乘法的Fortran程序。我有两个矩阵A和B.
integer, parameter :: RK = selected_real_kind(10,2)
real(kind=RK),pointer :: A(:,:), B(:,:), C(:,:)
然后我将一些随机值放入其中并尝试相乘:
call dgemm('N', 'N', N, N, N, 1.0_RK,
A, N, B, N, 0.0_RK, C, N)
N是两个矩阵的大小。所有参数都是正确的吗?
我无法编译并收到以下错误:
call dgemm('N', 'N', N, N, N, 1.0_RK,
1
Error: Syntax error in argument list at (1)
matrixmul.F90:44.2:
A, N, B, N, 0.0_RK, C, N)
1
Error: Unclassifiable statement at (1)
有什么问题?我应该使用一些指定的BLAS标志进行编译吗?我已将BLAS安装为explained here。
答案 0 :(得分:3)
你不能只继续使用Fortran中的新行,你必须指定行的结尾才能继续:
call dgemm('N', 'N', N, N, N, 1.0_RK, &
A, N, B, N, 0.0_RK, C, N)
在固定表格中,您将第六列中的任何内容放在新行上。
没有特殊的BLAS标志,您只需告诉链接器您想要与BLAS库链接。在我的操作系统上,它由-lblas
或-lmkl
或类似的。