@M。如果運行時初始化可以接受,那麼S. 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
被內部func
經由主機關聯,其是用於嵌套範圍的Fortran行話已知的。你也可以通過使用組合來完成,但它有點更詳細:
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