@M。実行時の初期化があなたに受け入れられれば、B. B.の答えはうまくいきます。あなたが本当にコンパイル時に設定されているFortranのparameter
を、したいです場合は、このようにそれを行うことができます。
program main
implicit none
real, parameter :: a = 1.0
real :: res
res = func()
write(*,*) res
contains
function func()
real, parameter :: b = a + 1.0
real :: func
func = b
end function func
end program main
私は混乱の一部は、言語の違いによるものです疑います。多くの場合、「パラメータ」は関数の引数を意味するために使用されますが、Fortranでは決してそのように使用されません。代わりに、C/C++でconst
に似た何かを意味します。だから、あなたの質問から私が本当にFortranを望んでいるかどうかはわかりませんparameter
。上記の私の例で
は、パラメータa
は、ネストされたスコープのためのFortran LINGOあるホストアソシエーションを介しfunc
内部に知られています。 アソシエーションを使用してモジュールで行うこともできますが、少し冗長です。
module mypars
implicit none
real, parameter :: a = 1.0
end module mypars
module myfuncs
implicit none
contains
function func()
use mypars, only: a
real, parameter :: b = a + 1.0
real :: func
func = b
end function func
end module myfuncs
program main
use myfuncs, only: func
implicit none
real :: res
res = func()
print *, res
end program main