Інший спосіб зробити це - спочатку явно вказати точність, яку ви бажаєте в змінній, використовуючи внутрішню SELECTED_REAL_KIND, а потім використати це для визначення та ініціалізації змінних. Щось на зразок:
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15)
REAL(dp) :: x
x = 1.0_dp
Приємною перевагою цього способу є те, що ви можете зберігати визначення dpв модулі, а потім у USEтому модулі, де це потрібно. Тепер, якщо ви хочете коли-небудь змінити точність вашої програми, вам доведеться лише змінити визначення цього місця dpв одному місці замість пошуку та заміни всіх D0s в кінці вашої змінної ініціалізації. (Ось чому я рекомендую не використовувати 1.0D-1синтаксис для визначення Y як запропонованого. Це працює, але ускладнює пошук і зміну всіх примірників у майбутньому.)
Ця сторінка на Fortran Wiki дає хорошу додаткову інформацію про SELECTED_REAL_KIND.