我试图查看一些非常古老的FORTRAN代码并遇到以下声明:
IF (XKJ.GT.ACCY) THEN
我查看了整个代码,但未找到“ ACCY ”的声明。我假设它是一个内置的变量/常量/函数,但无法找到定义。我用谷歌搜索了它,并遇到了其他类似表达式的FORTRAN样本(但没有定义ACCY)。
我查看FORTRAN代码已有20年了。任何人都知道' ACCY '是什么?
答案 0 :(得分:7)
毫无疑问,这是一个变量,其中包含用于测量浮点计算的“精度” - 由于某些浮点数的不精确表示,浮点计算可能会漂移。在Fortran中,除非使用编译器选项(或IMPLICIT语句)打开此功能,否则不必声明变量。以A-H和O-Z开头的变量会自动考虑REAL变量(I-N是整数)。有问题的编译器可能会或可能不会将变量的内存清零,所以除非它被分配到某处 - 通常是COMMON块 - 它可能是零或某个任意值。
答案 1 :(得分:3)
从技术上讲,Fortran中没有保留/关键字。虽然将关键字定义为标识符会让事情变得非常混乱。它听起来/在我看来,因为它是明确的定义,这是它首次使用ACCY为0.
定义此代码片段的子例程是否定义了IMPLICIT NONE?如果没有,打开它,看看编译器是否将ACCY标记为未定义。如果它被标记你会知道你为什么找不到它的地方:)