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