在 Python 中是否存在解包参数列表的 Fortran 等价物?
Is there a Fortran equivalent of unpacking a list of arguments in Python?
我正在编写我的第一个数值优化程序(牛顿法)和我的第一个 Fortran 程序。我从 Python 开始理解第一个问题,现在我正在移植到 Fortran 来处理另一个问题。 (一次一件事,对吧?)
在 Python 中,有一种将参数传递给函数的简便方法:unpacking a list,如下所示:
def f(x_1, x_2):
"""Just a function with two arguments."""
return math.sqrt(x_1 ** 2 + x_2 ** 2)
...
f(*[4, 3]) # calls f with parameters 4 and 3
# output: 5
Fortran 有类似这个明星运算符的东西吗?我将我的二维点放入矩阵中,并且我正在尝试学习将我的二维点之一 "vectors" 传递给要评估的函数的最传统方法。它看起来有点像这样:
! "double precision", using SELECTED_REAL_KIND
REAL(KIND=dp), DIMENSION(100, 2) :: iterates = 0.0_dp
! f expects two REALs
REAL(KIND=dp) :: first_value = f(iterates(1, :))
没有
您可以让您的函数接受向量。如果函数来自依赖,你可以写一个包装器:
function f_array_input(x)
real(kind=dp), intent(in) :: x(2)
real(kind=dp) :: f_array_input
f_array_input = f(x(1), x(2))
end function
(
我正在编写我的第一个数值优化程序(牛顿法)和我的第一个 Fortran 程序。我从 Python 开始理解第一个问题,现在我正在移植到 Fortran 来处理另一个问题。 (一次一件事,对吧?)
在 Python 中,有一种将参数传递给函数的简便方法:unpacking a list,如下所示:
def f(x_1, x_2):
"""Just a function with two arguments."""
return math.sqrt(x_1 ** 2 + x_2 ** 2)
...
f(*[4, 3]) # calls f with parameters 4 and 3
# output: 5
Fortran 有类似这个明星运算符的东西吗?我将我的二维点放入矩阵中,并且我正在尝试学习将我的二维点之一 "vectors" 传递给要评估的函数的最传统方法。它看起来有点像这样:
! "double precision", using SELECTED_REAL_KIND
REAL(KIND=dp), DIMENSION(100, 2) :: iterates = 0.0_dp
! f expects two REALs
REAL(KIND=dp) :: first_value = f(iterates(1, :))
没有
您可以让您的函数接受向量。如果函数来自依赖,你可以写一个包装器:
function f_array_input(x)
real(kind=dp), intent(in) :: x(2)
real(kind=dp) :: f_array_input
f_array_input = f(x(1), x(2))
end function
(