【发布时间】:2015-06-12 22:50:55
【问题描述】:
假设我有一个二维数组 A(:,2),其中只有第一维的大小是未知的。 是否可以仅分配 A 的第一个维度? 如果没有,我每次都必须使用“ allocate(A(n,2)) ”,将 A 视为 A(:,:)。
【问题讨论】:
-
不,你不能一次“分配”一个数组。也许如果您解释了为什么要这样做(对我迟钝的感觉),那么有人可能会提供一个既满足您的要求又满足 Fortran 规则的解决方案。
-
如果你事先知道数组的维度,那么我猜
A(:,1)和A(:,2)指的是不同类型的数量,比如一些 x 和 y 值。那么,主要是为了可读性,单独声明数组可能会更好,例如x_data(:)和y_data(:)。但如果没有更多信息,很难说。 -
正确,您不能将数组声明为
.. dimension (:,2), allocatable。因此,即使您在编写程序时知道某个特定维度,也必须按照您编写的那样使用 allocate 语句分配该维度。