Fortran中的零索引数组?

Pra*_*kla 0 fortran fortran90

有人可以解释什么是Fortran 中的零索引数组以及示例。我没有在互联网上获得任何内容。

kva*_*our 8

一个零索引数组是一个数组,谁的指标起源ZERO。这意味着数组的第一个元素由 index 引用0

Fortran 数组在声明它们时默认以索引 1 开头

INTEGER, DIMENSION(3) :: v
Run Code Online (Sandbox Code Playgroud)

此处,符号v表示大小为 3 的一维数组,其中元素为v(1)v(2)v(3)

但是,Fortran 标准使您可以设置数组的开始和结束索引。例如:

INTEGER, DIMENSION(0:2) :: w
Run Code Online (Sandbox Code Playgroud)

在这种情况下,符号w再次表示大小为 的一维数组3。但是现在有了元素w(0),w(1)w(2)。作为起始索引是0这是一个零索引数组

对于显式形状数组,标准的第 5.3.8.2 节规定该DIMENSION属性可以声明为

DIMENSION ( [lower-bound :] upper-bound )
Run Code Online (Sandbox Code Playgroud)

所以一切皆有可能,如果你愿意,你可以开始-42和结束+42

每个lower-bound和的值upper-bound确定沿特定维度的数组边界,从而确定该维度中数组的范围。如果lower-bound出现则指定下限;否则下限为 1。下限或上限的值可以是正数、负数或零。该维度中数组的下标范围是上下限之间(包括上下限)的整数值集合,前提是上限不小于下限。如果上限小于下限,则范围为空,该维度中的范围为零,数组大小为零。