假设我有一个数组 A[a,b]
。 a
的维度是 2
。当a=1
时,b
的维数为3
;当a=2
时,b
的维数为6。
例如,一个数组 A
看起来像
[[1,2,3]
[4,5,6,7,8,9]]
它由 1*3
和 1*6
组合而成。总共 9 个条目,不是来自输入。
有没有什么方法可以在 Fortran 中定义这样的数组?或者我需要其他类型的数据结构?
答案 0 :(得分:2)
您需要更好地描述您想要做什么。使用 allocatable
实体,您可以轻松实现您所描述的内容。
program foo
integer a, b
real, allocatable :: x(:,:)
read(*,*) a
if (a == 1 .or. a == 2) then
b = 3 * a
allocate(x(a,b))
else
stop 'Is this right?'
end if
x = 1
print *, shape(x)
end program foo