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 + -
显示快捷键?