Другой способ сделать это - сначала явно указать желаемую точность в переменной, используя встроенную функцию SELECTED_REAL_KIND, а затем использовать ее для определения и инициализации переменных. Что-то вроде:
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15)
REAL(dp) :: x
x = 1.0_dp
Хорошим преимуществом этого является то, что вы можете сохранить определение dp
в модуле, а затем в USE
том модуле, где это необходимо. Теперь, если вы когда-нибудь захотите изменить точность вашей программы, вам нужно всего лишь изменить определение dp
в этом месте вместо того, чтобы искать и заменять все D0
s в конце инициализации вашей переменной. (Именно поэтому я бы рекомендовал не использовать 1.0D-1
синтаксис для определения Y, как это было предложено. Это работает, но затрудняет поиск и изменение всех экземпляров в будущем.)
Эта страница на Fortran Wiki дает хорошую дополнительную информацию о SELECTED_REAL_KIND
.