Я относительно новичок в использовании языка Fortran, и я имею дело с предварительно написанной программой, в которую мне нужно внести некоторые изменения, и у меня есть все 8-байтовые переменные, объявленные как REAL(8) в области операторов программы. Однако при присвоении числовых значений переменным и/или массивам автор оригинальной программы всегда использует что-то вроде:
...
НАСТОЯЩИЙ(8) А
A = 1.d0
...
Является ли это строго необходимым, учитывая, что «A» объявлено не как DOUBLE PRECISION, а буквально как REAL(8), даже если подумать — я думаю — оба имеют один и тот же вид?
Кроме того, я где-то читал, что от использования REAL(8) следует отказаться? Это так? Почему?
Насколько мне известно (и я, конечно, могу ошибаться), количество байтов, используемых в переменной DOUBLE PRECISION, зависит от компилятора, что делает его опасным (я полагаю) или, по крайней мере, нежелательным его использование вместо REAL(8) , если я намерен объявить 8-байтовую переменную.
(Я работаю с Фортраном 90/95)
Буду признателен за комментарии, разъясняющие этот вопрос! Большое спасибо!
real(8)
с магической константой 8..d0
объявляет константу какdouble precision
, а неreal(8)
.real(8)
не всегда означает 8 байт и вообще не должен существовать. Целые числа, такие как1
, и степени двойки, такие как0.25
, точно представляются в двоичном виде. Я не использую реальные виды для целочисленных констант. Я просто используюA = 1
. - person Vladimir F   schedule 29.04.2021