Резюме: рассмотрите возможность просмотра параметров компилятора.
Прошло много времени с тех пор, как я сделал FORTRAN, и я не помню, чтобы использовал HUGE (), но я немного посмотрел на это.Моя машина Intel Linux имеет gfortran 4.1.2.Я обнаружил, что должен был скомпилировать с включенной опцией -fdefault-integer-8, чтобы она работала для 64-битных целых чисел.В частности, с помощью этого кода:
program inttest
print *, huge(1)
end program inttest
выполняется
$ gfortran inttest.for
создал исполняемый файл, который напечатал:
2147483647
Однако, выполнение:
$ gfortran -fdefault-integer-8 inttest.for
привело кисполняемый файл, который дал вывод:
9223372036854775807
Кроме того, когда я объявил переменную как целое число * 8 и скомпилировал без опции -fdefault-integer-8, я получилошибка.Код:
program inttest2
integer*8 test_int
test_int = 9223372036854775807
print *, test_int
end program inttest2
работает
$ gfortran inttest2.for
привело к
В файле inttest.for: 4
test_int = 9223372036854775807
1
Ошибка: целое число слишком большое для его вида в (1)
Однако все работало нормально, когда я скомпилировал с -fdefault-integer-8вариант, и я получил исполняемый файл, который напечатал
9223372036854775807
Возможно, есть другие варианты gfortran, которые были бы полезны, но я не стал исследовать дальше.
Конечно, это не даст вам 10 ^ 14, но может помочь объяснить результаты, которые вы видели.