Что такое зарезервированное слово / переменная ACCY на Фортране?
-
03-07-2019 - |
Вопрос
Я пытался просмотреть какой-то очень старый код FORTRAN и наткнулся на следующее утверждение:
IF (XKJ.GT.ACCY) THEN
Я просмотрел весь код и не нашел объявления для ACCY . Я предполагаю, что это встроенная переменная / константа / функция, но не смог найти определение. Я «погуглил» его и наткнулся на другие образцы FORTRAN с похожими выражениями (но без определения ACCY).
Прошло 20 лет с тех пор, как я посмотрел код FORTRAN. Кто-нибудь знает, что такое ACCY ?
Решение
Это, несомненно, переменная, в которой хранится " точность " используется для измерения вычислений с плавающей запятой - которые могут дрейфовать из-за неточного представления некоторых чисел с плавающей запятой. В Fortran переменные не должны объявляться, если вы не используете опцию компилятора (или оператор IMPLICIT), чтобы включить эту функцию. Переменные, которые начинаются с A-H и O-Z, автоматически учитывают РЕАЛЬНЫЕ переменные (I-N - целые числа). Рассматриваемый компилятор может обнулять или не обнулять память для переменной, поэтому, если она не где-то назначена - обычно это ОБЩИЙ блок - это может быть ноль или какое-то произвольное значение.
Другие советы
Технически, в Fortran нет зарезервированных ключевых слов. хотя определение ключевого слова в качестве идентификатора делает вещи очень запутанными. Это звучит / выглядит для меня так, как будто это определенная простота, и это его первое использование, при котором ACCY будет равно 0.
Определена ли подпрограмма, в которой определен этот фрагмент кода, IMPLICIT NONE ? если нет, включите его и посмотрите, не помечает ли компилятор ACCY как не определенный. Если он помечен, вы поймете, почему не можете найти его здесь :)