update new files
[unres.git] / source / maxlik / src_FPy.org / amotsa.f
1       real FUNCTION amotsa(p,y,psum,mp,np,ndim,pb,yb,funk,
2      &  ihi,yhi,fac)
3       INTEGER ihi,mp,ndim,np,NMAX
4       REAL fac,yb,yhi,p(mp,np),pb(np),psum(np),y(mp),funk
5       PARAMETER (NMAX=200)
6       EXTERNAL funk
7 CU    USES funk,ran1
8       INTEGER idum,j
9       REAL fac1,fac2,tt,yflu,ytry,ptry(NMAX)
10       real ran1
11       COMMON /ambsa/ tt,idum
12       fac1=(1.-fac)/ndim
13       fac2=fac1-fac
14       do 11 j=1,ndim
15         ptry(j)=psum(j)*fac1-p(ihi,j)*fac2
16 11    continue
17       ytry=funk(ptry)
18       if (ytry.le.yb) then
19         do 12 j=1,ndim
20           pb(j)=ptry(j)
21 12      continue
22         yb=ytry
23       endif
24       yflu=ytry-tt*log(ran1(idum))
25       if (yflu.lt.yhi) then
26         y(ihi)=ytry
27         yhi=yflu
28         do 13 j=1,ndim
29           psum(j)=psum(j)-p(ihi,j)+ptry(j)
30           p(ihi,j)=ptry(j)
31 13      continue
32       endif
33       amotsa=yflu
34       return
35       END
36 C  (C) Copr. 1986-92 Numerical Recipes Software 0!5,.