PROGRAM xvegas C driver for routine vegas INTEGER idum,init,itmax,j,ncall,ndim,nprn REAL avgi,chi2a,sd,xoff COMMON /ranno/ idum COMMON /tofxn/ xoff,ndim REAL region(20) EXTERNAL fxn write(*,*) 'IDUM=' read(*,*) idum idum=-abs(idum) 1 write(*,*) 'ENTER NDIM,XOFF,NCALL,ITMAX,NPRN' read(*,*,END=999) ndim,xoff,ncall,itmax,nprn avgi=0. sd=0. chi2a=0. do 11 j=1,ndim region(j)=0. region(j+ndim)=1. 11 continue init = -1 call vegas(region,ndim,fxn,init,ncall,itmax,nprn,avgi,sd,chi2a) write(*,*) 'Number of iterations performed:',itmax write(*,*) 'Integral, Standard Dev., Chi-sq.',avgi,sd,chi2a init = 1 call vegas(region,ndim,fxn,init,ncall,itmax,nprn,avgi,sd,chi2a) write(*,*) 'Additional iterations performed:',itmax write(*,*) 'Integral, Standard Dev., Chi-sq.',avgi,sd,chi2a 999 write(*,*) 'NORMAL COMPLETION' STOP END REAL FUNCTION fxn(pt,wgt) INTEGER j,ndim REAL sum,xoff,wgt COMMON /tofxn/ xoff,ndim REAL pt(*) sum=0. do 11 j=1,ndim sum=sum+100.*(pt(j)-xoff)**2 11 continue if (sum.lt.80.) then fxn=exp(-sum) else fxn=0. endif fxn=fxn*(5.64189**ndim) return END