我正在尝试为蒙特卡洛重要性抽样编译这个程序,但我遇到了几个问题:
1 - 错误:(1)中数据声明中的语法错误,参考以下行,其中(1)位于“function”之后和之下。
real function f(x)
2 - 错误:在(1)和(2)处有两个主要程序,指的是这两行
program importance1
和
t=0.0
示例代码如下。程序中有更多行代码,但我认为没有任何问题,所以我刚刚发布了第一段。
program importance1
implicit none
real mean_value,t,ta,rr
real x,xtrials,s_square_old,s_square_new,std_dev,std_error,frac_stand_dev
integer k
real :: alpha=0.90
integer :: trials=50
xtrials=trials
real function f(x)
f=exp(x)
return
end
real function g(x)
g=(alpha/(exp(alpha)-1.))*exp(alpha*x)
return
end
t=0.0
s_square_old=0.0
答案 0 :(得分:1)
不知道你有什么想法这样做,但看起来你正在代码中间定义函数,这是错误的地方。在Fortran中,函数单独MODULE
或在CONTAINS
块下的程序末尾:
program importance1
implicit none
real :: mean_value,t,ta,rr
real :: x,xtrials,s_square_old,s_square_new,std_dev,std_error,frac_stand_dev
integer :: k
real :: alpha=0.90
integer :: trials=50
xtrials=trials
t=0.0
s_square_old=0.0
contains
real function f(x)
real :: x
f=exp(x)
end function
real function g(x)
real :: x
g=(alpha/(exp(alpha)-1.))*exp(alpha*x)
end function
end program