5 * Revision 1.1.1.1 1996/04/01 15:03:24 mclareni
10 INTEGER FUNCTION EXMBUC(NUMBER, NDIM, BUCKTS, GOOD, MAXFUN, MAXDPH
12 INTEGER NUMBER, NDIM, MAXFUN, MAXDPH
13 REAL GOOD, BUCKTS(IRM)
16 COMMON /ANSWER/ INTGRL,ERROR,ERRMAX,GEFF,Q2,Q3,Q5,NUMBR,MBUC
17 COMMON /DEPTHS/ FSTDPH,INCDPH
18 INTEGER FSTDPH,INCDPH,NTREES
19 REAL INTGRL,VAR,ERROR,ERRMAX,VARMAX,VARMX2,PRCNT
20 REAL Q2,Q3,Q5,GEFF,SEFF,FMAX,FMIN,TOTVOL
21 COMMON /QUADRE/ DEGREE
23 COMMON /MAXERR/ ERRPCT,ERRABS
25 COMMON /FUNN/ NFUN, NFOPT, NFCUT
26 INTEGER NFUN, NFOPT, NFCUT
27 COMMON /SIGSPL/ COORD,PLACE,FSTENT,DOSPLT
28 COMMON /BUKSZE/ MAXWRD
30 COMMON /LIMITS/ GMINUS(10),GPLUS(10)
31 LOGICAL FSTENT,DOSPLT,UTERM,USRTRM
35 IF(NUMBER.NE.1) GOTO 40
49 10 IF(DEGREE.NE.1.AND.DEGREE.NE.2.AND.DEGREE.NE.3.AND.DEGREE.NE.5)
51 IF(DEGREE.NE.1) GOTO 30
54 TOTVOL=TOTVOL*(GPLUS(I)-GMINUS(I))
72 INTGRL=INTGRL+BUCKTS(PTR+1)
74 IF(BUCKTS(PTR+2).LE.VARMAX) GOTO 50
79 50 IF(BUCKTS(PTR+2).LE.VARMX2) GOTO 60
81 60 IF(DEGREE.NE.1) GOTO 70
82 GEFF=GEFF+(BUCKTS(PTR+5)-BUCKTS(PTR+6))*BUCKTS(PTR+7)
83 FMAX=MAX(FMAX,BUCKTS(PTR+5))
84 FMIN=MIN(FMIN,BUCKTS(PTR+6))
85 70 IF(DEGREE.GE.2) Q2=Q2+BUCKTS(PTR+5)
86 IF(DEGREE.GE.3) Q3=Q3+BUCKTS(PTR+6)
87 IF(DEGREE.EQ.5) Q5=Q5+BUCKTS(PTR+7)
92 IF(DEGREE.EQ.1) GEFF=INTGRL/GEFF
93 IF(GOOD.LE.0) GOTO 100
94 IF(INTGRL.EQ.0.0E+0) GOTO 90
95 PRCNT=ERROR/ABS(INTGRL)
100 110 UTERM=USRTRM(NTREES)
101 IF(IPRINT.LE.0) GOTO 220
102 IF(MOD(NTREES,IPRINT).NE.0 .AND. NFUN.LT.MAXFUN .AND. PRCNT.GT
103 1.GUUD .AND. .NOT.UTERM) GOTO 220
104 WRITE(6,120) NTREES,NUMBER,INTGRL,ERROR,ERRMAX,MBUC
105 120 FORMAT(///' ITERATION ',I5,'.',I10,' REGIONS'/
106 1 ' APPROXIMATE INTEGRAL = ',G13.5,' WITH TOTAL RSS SPREAD ',
107 2 G13.5/' THE LARGEST SINGLE SPREAD IS ',G13.5,
109 IF(DEGREE.NE.1) GOTO 140
110 SEFF=INTGRL/((FMAX-FMIN)*TOTVOL)
111 WRITE(6,130) GEFF,SEFF
112 130 FORMAT(' ESTIMATED RANGEN EFFICIENCY =',G13.5/
113 *' SIMPLE ACCEPT/REJECT =',G13.5)
114 140 IF(DEGREE.LT.2) GOTO 160
116 150 FORMAT(' 2ND DEGREE QUADRATURE = ',G13.5)
117 160 IF(DEGREE.LT.3) GOTO 180
119 170 FORMAT(' 3RD DEGREE QUADRATURE = ',G13.5)
120 180 IF(DEGREE.NE.5) GOTO 200
122 190 FORMAT(' 5TH DEGREE QUADRATURE = ',G13.5)
123 200 WRITE(6,210) NFUN,NFOPT,NFCUT
124 210 FORMAT(1X,I10,' INTEGRAND EVALUATIONS SO FAR'/1X,I10,
125 1 ' IN OPTIMIZATION, ',I10,' IN FINDING CUTS')
126 220 IF(NFUN.LT.MAXFUN) GOTO 250
127 IF(IPRINT.LE.0) GOTO 240
129 230 FORMAT(' THIS EXCEEDES SPECIFIED LIMIT OF',I10)
132 250 IF(PRCNT.GT.GUUD) GOTO 280
133 IF(IPRINT.LE.0) GOTO 270
135 260 FORMAT(' TOTAL RSS SPREAD ',G13.5,' IS BELOW SPECIFIED MAXIMUM')
138 280 IF(.NOT.(UTERM)) GOTO 310
139 IF(IPRINT.LE.0) GOTO 300
141 290 FORMAT(' USER REQUESTED TERMINATION')