回答:
これを行う別の方法は、最初にSELECTED_REAL_KIND組み込みを使用して変数に希望する精度を明示的に指定し、次にこれを使用して変数を定義および初期化することです。何かのようなもの:
INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15)
REAL(dp) :: x
x = 1.0_dp
この方法で実行することの優れた利点dp
は、モジュールの定義をモジュールに保存し、USE
必要に応じてそのモジュールを保存できることです。プログラムの精度を変更したい場合は、変数の初期化の最後にあるdp
すべてのを検索して置き換えるD0
のではなく、その1つの場所での定義を変更するだけで済みます。(これが、1.0D-1
Yを定義するために構文を使用しないことをお勧めする理由でもあります。これは機能しますが、将来すべてのインスタンスを見つけて変更することが難しくなります。)
Fortran Wikiのこのページには、に関するいくつかの優れた追加情報が記載されていSELECTED_REAL_KIND
ます。
_dp
方式を使用する主な理由は、精度が移植可能な方法で明確に定義されるためです。
変数を倍精度として宣言しましたが、それらを単精度値で初期化しました。
あなたは書くことができたでしょう:
X=1.0d0
Y=1.0d-1
以下のバロンの答えは、リテラル倍精度を作成するもう1つの方法です。これにより、後で変数の精度を変更できるという利点があります。