Fortran 中的等级 0 和等级 1 不兼容

Incompatible rank 0 and 1 in fortran

ab 是一个 4 x 5 矩阵,即 ab(4,5)x 是一个长度为 4 的数组,即 x(4)

x(4) = ab(4,5)/ab(4,4)
do i = 3, 1, -1
    x(i) = ( ab(i,5) - ab(i,i+1:4) * x(i+1:4) ) / ab(i,i)
end do

do 循环表示等级 0 和 1 不兼容。

您可以使用 SUM 函数将数组乘法简化为标量。即 x(i) = ( ab(i,5) - SUM(ab(i,i+1:4) * x(i+1:4)) ) / ab(i,i)。或者,可以使用 DOT_PRODUCT 函数 DOT_PRODUCT(ab(i,i+1:4) , x(i+1:4))