Інший спосіб зробити це - спочатку явно вказати точність, яку ви бажаєте в змінній, використовуючи внутрішню 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
.