ISO Fortran Env の組み込み関数を使用して、Fortran 2008 に慣用的な方法で関数の戻り値の KIND 値を設定するにはどうすればよいでしょうか?
通常、メイン プログラム内では、次のように ISO Fortran 組み込み関数を使用できます。
program name here
use iso_fortran_env
implicit none
integer, parameter :: double=REAL64
real(kind=double) :: some_variable
end program name here
しかし、REAL64 と double はどちらも上記のメイン関数内でのみ定義されるため、これらの組み込み関数を外部関数に使用する便利な方法はないようです。次のように main 内で関数の KIND を定義しようとしています。
program name here
use iso_fortran_env
implicit none
integer, parameter :: double=REAL64
real(kind=double) :: some_function
! Do stuff
end program name here
real function some_function()
! Do stuff
end some_function
少なくとも私のシステムでは、タイプの不一致エラーがスローされます (私のシステムでは double は KIND=8 として定義され、デフォルトの real は KIND=4 として定義されます)。いつでも を使用できますreal(kind=8) function some_function()
が、移植性のために使用したくありません。さらに、ある場所で iso_fortran_env の REAL64 を使用し、別の場所で方向転換して KIND=8 を使用するのは、単に汚いと感じます。
以下のように、それを達成するための簡単な(または少なくとも読みやすい)方法はありますか?
real(kind=REAL64) function some_function()