Fortran中的数组声明符,没有下限和上限0

ste*_*ert 2 fortran

根据Fortran标准信息,我可以找到(F77,F90/95)一个数组声明符,其中没有下限假定该下限为1.由于上限需要大于或等于下限,会不允许以下声明:

INTEGER A(0)
Run Code Online (Sandbox Code Playgroud)

但是,我不能让ifort和gfortran以任何方式抱怨这个说法.编译器是否需要将此标记为错误?

Wil*_*cat 5

由于上限需要大于或等于下限,这将使得以下语句不被允许.

来自Fortran 2008标准:

5.3.8.2显式形状数组
[...] 3每个下限和上限的值确定数组沿特定维度的边界,从而确定该维度中数组的范围.如果出现下限,则表示下限; 否则下限为1.下限或上限的值可以是正数,负数或零.该维度中数组的下标范围是包含下限和上限的整数值的集合,前提是上限不小于下限.如果上限小于下限,则范围为空,该维度中的范围为零,并且数组的大小为零.