FORTRAN - 将数组值赋给变量

时间:2014-02-25 09:10:08

标签: arrays variables resize fortran

有没有办法将数组的值赋予变量的形状?即使我选择一个数组的单个值,比如说A(1:1, 1:1),它仍然会在我编译并且想要将其赋值给变量时抱怨:

Error: Incompatible ranks 0 and 1 in assignment at (1)

最终的目标是这样的:

H = MAXVAL(matrix) - epsilon
IF ( matrix(i:i, i:i) >= H ) THEN

... 但我不能进行这种比较,因为H是一个变量而matrix(i:i, i:i)是1x1数组。这也是制作H和数组的唯一可能吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

不要指定范围,请使用单个元素:

A(1,1)=1

您的陈述将为:

H = MAXVAL(matrix) - epsilon
IF ( matrix(i, i) >= H ) THEN

背景:

Fortran允许您处理子数组,如:

A(1:10,2:5)

这将是10x4数组。所以A(1:1,1:1)实际上是一个数组(1x1)(如你所说)。另一方面,A(1,1)是一个标量,可以这样对待。