所以我有一个函数f(x, y, t)
,我可以在x
,y
和t
超过一定的时间间隔进行评估。如果我修复其中一个变量,让我们使用y
,该函数将成为x
和t
的函数,让我们调用g(x, t)
。我知道如何在x
的间隔内获得平均值,我可以将其绘制为t
的函数。
! I use fortran90. assume all variables are valid
foo = 0.0
do i = 1, n
do j = 1, n
foo = foo + g(x(j), t(j))
end do
write(*,*) t(i), foo/n
end do
其中x(j)
是区间内可能x
的数组。
我试图对此进行扩展,以便我也可以在y
的间隔内取平均值,但我不知道该怎么做。
我用了一个例子;我可以发布实际的代码,但它会让人感到困惑。
答案 0 :(得分:0)
您基本上有两种选择:
使用f(x, y, t)
并提供(常量)y
以及其他变量,或
编写一个使用常量g(x, t)
的包装程序y
,设置为编译时或使用全局变量。对于后一种情况,您可以使用诸如
module wrapper
implicit none
integer :: fixedY
contains
function f(x,y,t)
! Declarations missing
! f = ...
end function
function g(x,t)
! Declarations missing
g = f(x, fixedY, t)
end function
end module
在主程序中,首先需要设置fixedY
,然后调用g
:
program test
use wrapper, only: g, fixedY
implicit none
! Set fixedY
fixedY = 2
print *, g(1, 3)
end program
您仍然需要修改它以获得平均值,例如,使用循环(就像您在代码片段中所做的那样)。