2 C*******************************************************************
7 C*******************************************************************
8 C SUBROUTINE PERFORMS N-DIMENSIONAL MONTE CARLO INTEG'N
9 C - BY G.P. LEPAGE SEPT 1976/(REV)APR 1978
10 C*******************************************************************
12 SUBROUTINE VEGAS(FXN,AVGI,SD,CHI2A)
13 IMPLICIT REAL*8(A-H,O-Z)
14 #include "bveg1_hijing.inc"
15 #include "bveg2_hijing.inc"
16 #include "bveg3_hijing.inc"
18 DIMENSION D(50,10),DI(50,10),XIN(50),R(50),DX(10),DT(10),X(10)
21 DATA NDMX/50/,ALPH/1.5D0/,ONE/1.D0/,MDS/-1/
28 ENTRY VEGAS1(FXN,AVGI,SD,CHI2A)
29 C - INITIALIZES CUMMULATIVE VARIABLES, BUT NOT GRID
36 ENTRY VEGAS2(FXN,AVGI,SD,CHI2A)
41 NG=(NCALL/2.)**(1./NDIM)
43 IF((2*NG-NDMX).LT.0) GO TO 2
53 DV2G=(CALLS*DXG**NDIM)**2/NPG/NPG/(NPG-ONE)
59 c***this is the line 50
63 C REBIN PRESERVING BIN DENSITY
76 5 IF(RC.GT.DR) GO TO 4
87 IF(NPRN.NE.0) WRITE(16,200) NDIM,CALLS,IT,ITMX,ACC,MDS,ND
88 1 ,(XL(J),XU(J),J=1,NDIM)
90 ENTRY VEGAS3(FXN,AVGI,SD,CHI2A)
91 C - MAIN INTEGRATION LOOP
105 CALL ARAN9(QRAN,NDIM)
108 XN=(KG(J)-QRAN(J))*DXG+ONE
109 c*****this is the line 100
111 IF(IA(J).GT.1) GO TO 13
115 13 XO=XI(IA(J),J)-XI(IA(J)-1,J)
116 RC=XI(IA(J)-1,J)+(XN-IA(J))*XO
117 14 X(J)=XL(J)+RC*DX(J)
127 DI(IA(J),J)=DI(IA(J),J)+F
128 16 IF(MDS.GE.0) D(IA(J),J)=D(IA(J),J)+F2
129 IF(K.LT.NPG) GO TO 12
132 F2B=(F2B-FB)*(F2B+FB)
135 IF(MDS.GE.0) GO TO 18
137 17 D(IA(J),J)=D(IA(J),J)+F2B
139 19 KG(K)=MOD(KG(K),NG)+1
140 IF(KG(K).NE.1) GO TO 11
144 C FINAL RESULTS FOR THIS ITERATION
148 WGT=TI2/(TSI+1.0d-37)
157 CHI2A=SD*(SCHI/SWGT-AVGI*AVGI)/(IT-.999)
159 C****this is the line 150
160 IF(NPRN.EQ.0) GO TO 21
162 WRITE(16,201) IT,TI,TSI,AVGI,SD,CHI2A
163 IF(NPRN.GE.0) GO TO 21
165 20 WRITE(16,202) J,(XI(I,J),DI(I,J),D(I,J),I=1,ND)
178 D(I,J)=(D(I,J)+XN)/3.
179 22 DT(J)=DT(J)+D(I,J)
181 23 DT(J)=DT(J)+D(ND,J)
187 IF (DT(J).GE.1.0D18) THEN
188 WRITE(6,*) '************** A SINGULARITY >1.0D18'
190 C1111 FORMAT(1X,'**************IMPORTANT NOTICE***************')
192 C1112 FORMAT(1X,'THE INTEGRAND GIVES RISE A SINGULARITY >1.0D18')
194 C1113 FORMAT(1X,'PLEASE CHECK THE INTEGRAND AND THE LIMITS')
196 C1114 FORMAT(1X,'**************END NOTICE*************')
198 IF(D(I,J).LE.1.0D-18) GO TO 24
200 R(I)=((XO-ONE)/XO/DLOG(XO))**ALPH
210 c****this is the line 200
212 26 IF(RC.GT.DR) GO TO 25
215 XIN(I)=XN-(XN-XO)*DR/(R(K)+1.0d-30)
216 IF(I.LT.NDM) GO TO 26
221 IF(IT.LT.ITMX.AND.ACC*DABS(AVGI).LT.SD) GO TO 9
222 200 FORMAT('0INPUT PARAMETERS FOR VEGAS: NDIM=',I3,' NCALL=',F8.0
223 1 /28X,' IT=',I5,' ITMX=',I5/28X,' ACC=',G9.3
224 2 /28X,' MDS=',I3,' ND=',I4/28X,' (XL,XU)=',
225 3 (T40,'( ',G12.6,' , ',G12.6,' )'))
226 201 FORMAT(///' INTEGRATION BY VEGAS' / '0ITERATION NO.',I3,
227 1 ': INTEGRAL =',G14.8/21X,'STD DEV =',G10.4 /
228 2 ' ACCUMULATED RESULTS: INTEGRAL =',G14.8 /
229 3 24X,'STD DEV =',G10.4 / 24X,'CHI**2 PER IT''N =',G10.4)
230 202 FORMAT('0DATA FOR AXIS',I2 / ' ',6X,'X',7X,' DELT I ',
231 1 2X,' CONV''CE ',11X,'X',7X,' DELT I ',2X,' CONV''CE '
232 2 ,11X,'X',7X,' DELT I ',2X,' CONV''CE ' /
233 2 (' ',3G12.4,5X,3G12.4,5X,3G12.4))