amotry.f90
来自「蒙特卡罗的一个程序分析 与大家分享 共同研究」· F90 代码 · 共 39 行
F90
39 行
FUNCTION amotry(p,y,psum,mp,np,ndim,funkk,ihi,fac, &
Nmin, Nmx, Ubins, Umin, Uwidth, Nham, ham, MaxMol, &
UN_HIST, BETA, ZETA, f1 )
INTEGER ihi,mp,ndim,np,NMAX
REAL amotry,fac,p(mp,np),psum(np),y(mp),funkk
PARAMETER (NMAX=20)
EXTERNAL funkk
integer :: Nmin, Nmx, Ubins, MaxMol, Nham, ham
real :: Umin, Uwidth
real, dimension(Ubins, 0:MaxMol, Nham) :: UN_HIST
real, dimension(Nham) :: BETA, ZETA
real, dimension(Nmin:Nmx) :: f1
! USES funkk
INTEGER j
REAL fac1,fac2,ytry,ptry(NMAX)
fac1=(1.-fac)/ndim
fac2=fac1-fac
do 11 j=1,ndim
ptry(j)=psum(j)*fac1-p(ihi,j)*fac2
11 continue
ytry=funkk(ptry, Nmin, Nmx, Ubins, Umin, Uwidth, Nham, ham, MaxMol, &
UN_HIST, BETA, ZETA, f1 )
if (ytry.lt.y(ihi)) then
y(ihi)=ytry
do 12 j=1,ndim
psum(j)=psum(j)-p(ihi,j)+ptry(j)
p(ihi,j)=ptry(j)
12 continue
endif
amotry=ytry
return
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?