fortran编译blas程序错误

时间:2014-10-05 07:33:21

标签: matrix compilation fortran blas

我是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

1 个答案:

答案 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或类似的。

完成