0

我不是 100% 的角色在1:这里。从哪个索引开始复制?但是为什么不为 rank 2 数组设置两个这样的参数呢?

4

2 回答 2

2

更明确一点:

在 Fortran90 及更高版本中,您通过提供单个索引来访问单个数组值,并通过提供由冒号分隔的索引范围来访问子数组(数组的窗口)。

a(1) = 0. 
a(2:5) = (/3.14,2.71,1.62,0./)

你也可以给出一个步长。

a(1:5:2) = (/0,2.71,0./)

最后,您可以省略值并插入默认值。因此,如果a从索引 1 运行到 5,那么我可以将上面的内容写为

a(::2) = (/0,2.71,0./)

1和5是隐含的。显然,如果它使代码不清楚,你不应该忽略这些。

使用多维数组,您可以在每个维度上混合和匹配这些,如您的示例中所示。

于 2013-06-08T05:24:55.873 回答
1

您正在获取 的切片array2,即从行到D第 'th 列中的元素,并将它们放入其中元素通过的切片中1Carray11A

所以两个切片都是一维数组

切片可能不是 Fortran 中的正确术语

于 2013-06-07T20:52:51.570 回答