1 SUBROUTINE amebsa(p,y,mp,np,ndim,pb,yb,ftol,funk,iter,temptr)
2 INTEGER iter,mp,ndim,np,NMAX
3 REAL ftol,temptr,yb,p(mp,np),pb(np),y(mp),funk
6 CU USES amotsa,funk,ran1
7 INTEGER i,idum,ihi,ilo,inhi,j,m,n
8 REAL rtol,sum,swap,tt,yhi,ylo,ynhi,ysave,yt,ytry,psum(NMAX),
11 COMMON /ambsa/ tt,idum
12 c write (2,*) "amebsa: p and y"
14 c write (iout,'(20e15.5)') (p(i,j),j=1,n),y(i)
16 c write (2,*) "amebsa: ftol",ftol," iter",iter," temptr",temptr
28 ylo=y(1)+tt*log(ran1(idum))
30 yhi=y(2)+tt*log(ran1(idum))
40 yt=y(i)+tt*log(ran1(idum))
50 else if(yt.gt.ynhi) then
55 rtol=2.*abs(yhi-ylo)/(abs(yhi)+abs(ylo))
56 if (rtol.lt.ftol.or.iter.lt.0) then
68 ytry=amotsa(p,y,psum,mp,np,ndim,pb,yb,funk,ihi,yhi,-1.0)
70 ytry=amotsa(p,y,psum,mp,np,ndim,pb,yb,funk,ihi,yhi,2.0)
71 else if (ytry.ge.ynhi) then
73 ytry=amotsa(p,y,psum,mp,np,ndim,pb,yb,funk,ihi,yhi,0.5)
74 if (ytry.ge.ysave) then
78 psum(j)=0.5*(p(i,j)+p(ilo,j))
92 C (C) Copr. 1986-92 Numerical Recipes Software 0!5,.