Fortran中的Array First Index

时间:2014-06-26 06:13:44

标签: arrays fortran

我认为Fortran中数组的第一个索引是1.但为什么这个代码有效? (代码是Wavewatch的修改部分,http://polar.ncep.noaa.gov/waves/wavewatch/

DO KINDEX=0, TOTAL+1
NUM    = NUM * SCALE
SIG (KINDEX) = NUM
END DO

2 个答案:

答案 0 :(得分:6)

正如您已经被告知Fortran数组索引默认情况下是1,但程序员可以选择用于索引值的整数范围内的任何整数。但是,你应该注意另一种皱纹。 Fortran默认情况下不是在编译时(在许多情况下是不可能的)或在运行时(可能但是很昂贵),检查数组索引表达式是否在边界内。

这个问题在野外有很多Fortran代码,我遇到过一个程序已经工作的情况,显然是正确的,多年没有被发现。使用编译器的选项创建一个程序版本,该程序在运行时检查数组边界表达式,运行它并查看会发生什么。

或者,正如您已经被告知的那样,SIG可能已被声明0作为其最低索引。

答案 1 :(得分:0)

你认为它错了,通过阅读一些书籍,教程或手册来刷新你的知识。可以声明数组从任何整数开始。

       REAL A(42:58)