อีกวิธีในการทำเช่นนี้คือการระบุความแม่นยำที่คุณต้องการในตัวแปรอย่างชัดเจนโดยใช้SELECTED_REAL_KIND intrinsic จากนั้นใช้สิ่งนี้เพื่อกำหนดและเริ่มต้นตัวแปร สิ่งที่ต้องการ:
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15)
REAL(dp) :: x
x = 1.0_dp
ข้อดีที่ดีในการทำเช่นนี้คือคุณสามารถเก็บคำจำกัดความของdpในโมดูลจากนั้นUSEโมดูลนั้นในกรณีที่จำเป็น ตอนนี้ถ้าคุณต้องการเปลี่ยนความแม่นยำของโปรแกรมของคุณคุณจะต้องเปลี่ยนคำจำกัดความdpในที่เดียวแทนการค้นหาและแทนที่D0s ทั้งหมดเมื่อสิ้นสุดการกำหนดค่าเริ่มต้นตัวแปรของคุณ (นี่คือสาเหตุที่ฉันไม่แนะนำให้ใช้1.0D-1ไวยากรณ์เพื่อกำหนด Y ตามที่แนะนำทำงานได้ แต่ทำให้ยากต่อการค้นหาและเปลี่ยนอินสแตนซ์ทั้งหมดในอนาคต)
หน้านี้ใน Fortran SELECTED_REAL_KINDวิกิพีเดียให้ข้อมูลเพิ่มเติมบางอย่างที่ดีใน