【发布时间】:2017-06-02 14:56:33
【问题描述】:
以下链接https://gcc.gnu.org/onlinedocs/gcc-5.4.0/gfortran/MATMUL.html 明确指出,gfortran 期望输入到matmul 的矩阵排名为 1 或 2。但是以下 sn-p 无法编译:
Program scratch
real(kind=8) :: A(10)=(/0,1,2,3,4,5,6,7,8,9/)
real(kind=8) :: B(10)=(/0,1,2,3,4,5,6,7,8,9/)
real(kind=8) :: C(10,10)
print *,rank(A),rank(B)
C=matmul(A,B)
End Program scratch
gfortran 给出错误:
$gfortran scratch.f90
scratch.f90:6:13:
C=matmul(A,B)
1
Error: ‘matrix_b’ argument of ‘matmul’ intrinsic at (1) must be of rank 2
我的 gfortran 是 5.4.0(与上面的链接兼容)。我做的事情真的很愚蠢吗?
【问题讨论】:
-
是的,你这样做了,你正在使用
kind=8。 -
@VladimirF 谢谢你,不幸的是我将声明更改为
real(kind=4)并且 gfortran 报告了同样的错误。 -
非常密切相关,但不是精确重复的stackoverflow.com/questions/22305554/…
标签: fortran gfortran intrinsics