Что такое зарезервированное слово/переменная Fortran ACCY?

Я пытался просмотреть какой-то очень старый код FORTRAN и наткнулся на следующее утверждение:

IF (XKJ.GT.ACCY) THEN

Я просмотрел весь код и не нашел объявления для «ACCY». Я предполагаю, что это встроенная переменная/константа/функция, но не смог найти определение. Я погуглил и наткнулся на другие образцы FORTRAN с похожими выражениями (но без определения ACCY).

Прошло 20 лет с тех пор, как я смотрел код FORTRAN. Кто-нибудь знает, что такое «ACCY»?


person Tim Cochran    schedule 01.05.2009    source источник
comment
Из любопытства, вы смогли определить источник ACCY?   -  person MikeJ    schedule 02.05.2009
comment
Да. Как и в принятом ответе ниже, я нашел блок COMMON, который находился в отдельном файле (которого у меня изначально не было). У него было определение ACCY.   -  person Tim Cochran    schedule 02.05.2009


Ответы (2)


Это, несомненно, переменная, содержащая «точность», используемая для измерения вычислений с плавающей запятой, которая может дрейфовать из-за неточного представления некоторых чисел с плавающей запятой. В Fortran переменные не нужно объявлять, если вы не используете параметр компилятора (или оператор IMPLICIT) для включения этой функции. Переменные, начинающиеся с A-H и O-Z, автоматически считаются РЕАЛЬНЫМИ переменными (I-N — целые числа). Рассматриваемый компилятор может или не может обнулить память для переменной, поэтому, если она не назначена где-то - обычно в блоке COMMON - она ​​может быть нулевой или каким-то произвольным значением.

person tvanfosson    schedule 01.05.2009
comment
Это именно то, что было. Я ОБЩИЙ блок, для которого у меня не было исходного кода, определял переменную. Спасибо, что указали мне правильное направление. - person Tim Cochran; 01.05.2009

Технически в Fortran нет зарезервированных/ключевых слов. хотя определение ключевого слова как идентификатора делает вещи очень запутанными. Для меня это звучит/выглядит так, как будто определяется имплицитность, и это его первое использование, в котором ACCY будет равен 0.

Определен ли подпрограмма, в которой определен этот фрагмент кода, IMPLICIT NONE? если нет, включите его и посмотрите, помечает ли компилятор ACCY как неопределенный. Если он помечен, вы поймете, почему вы не смогли найти его где-либо еще :)

person MikeJ    schedule 01.05.2009