43
41
double precision xratmax
44
42
common/ccheckcnt/i_momcmp_count,xratmax
46
46
integer n_mp, n_disc
49
integer nhits_in_grids(maxchannels)
50
real* 8 xgrid(0:nintervals,ndimmax,maxchannels),ymax(nintervals
51
$ ,ndimmax,maxchannels),ymax_virt(0:maxchannels),ans(nintegrals
52
$ ,0:maxchannels),unc(nintegrals,0:maxchannels),chi2(nintegrals
53
$ ,0:maxchannels),x(ndimmax),itmax_fl
54
47
integer ixi_i,iphi_i,iy_ij,vn
55
integer ifold(ndimmax)
57
integer ifold_energy,ifold_phi,ifold_yij
58
common /cifoldnumbers/ifold_energy,ifold_phi,ifold_yij
62
50
double precision evtsgn
63
51
common /c_unwgt/evtsgn,unwgt
73
61
double precision virtual_over_born
74
62
common/c_vob/virtual_over_born
75
double precision average_virtual(0:n_ave_virt,maxchannels)
76
$ ,virtual_fraction(maxchannels)
77
common/c_avg_virt/average_virtual,virtual_fraction
78
63
include 'orders.inc'
80
common /c_n_ord_virt/n_ord_virt
82
65
c timing statistics
83
66
include "timing_variables.inc"
95
78
integer ntot_granny,derntot,ncase(0:6)
96
79
common /c_granny_counters/ ntot_granny,ncase,derntot,deravg,derstd
97
80
& ,dermax,xi_i_fks_ev_der_max,y_ij_fks_ev_der_max
98
logical fixed_order,nlo_ps
99
common /c_fnlo_nlops/fixed_order,nlo_ps
83
common/cuseitmax/useitmax
88
useitmax=.false. ! to be overwritten in open_output_files.f if need be
106
90
c Setup the timing variable
172
158
write(*,*)'NLO computations require muF1=muF2'
175
write(*,*) "about to integrate ", ndim,ncall,itmax
161
write(*,*) "about to integrate ", ndim,ncalls0,itmax
177
163
if (imode.eq.0) iappl=0 ! overwrite when starting completely fresh
178
164
if(iappl.ne.0) then
194
197
doreweight=.false.
195
198
do_rwgt_scale=.false.
196
199
do_rwgt_pdf=.false.
200
xgrid(j,i,kchan)=0.d0
205
201
doreweight=do_rwgt_scale.or.do_rwgt_pdf
207
open (unit=12, file='mint_grids',status='old')
212
read (12,*) (xgrid(j,i,kchan),i=1,ndim)
214
do j=1,nintervals_virt
216
read (12,*) (ave_virt(j,i,k,kchan),i=1,ndim)
219
read(12,*) ans(1,kchan),unc(1,kchan),dummy,dummy
220
$ ,nhits_in_grids(kchan)
221
read(12,*) virtual_fraction(kchan),average_virtual(0
223
ans(1,0)=ans(1,0)+ans(1,kchan)
224
unc(1,0)=unc(1,0)+unc(1,kchan)**2
226
unc(1,0)=sqrt(unc(1,0))
228
write (*,*) "Update iterations and points to",itmax,ncall
231
204
write (*,*) 'imode is ',imode
236
209
virtual_fraction(kchan)=1d0
239
C check for zero cross-section
240
C if restoring grids corresponding to sigma=0, just terminate the run
241
if (imode.ne.0.and.ans(1,0).eq.0d0.and.unc(1,0).eq.0d0) then
243
call close_run_zero_res(ncall, itmax, ndim)
246
call mint(sigint,ndim,ncall,itmax,imode,xgrid,ymax
247
$ ,ymax_virt,ans,unc,chi2,nhits_in_grids)
249
214
call deallocate_weight_lines
250
write(*,*)'Final result [ABS]:',ans(1,0),' +/-',unc(1,0)
251
write(*,*)'Final result:',ans(2,0),' +/-',unc(2,0)
252
write(*,*)'chi**2 per D.o.F.:',chi2(1,0)
253
open(unit=58,file='results.dat',status='unknown')
255
write(58,*) ans(1,kchan),unc(2,kchan),0d0,0,0,0,0,0d0,0d0
261
open (unit=12, file='mint_grids',status='unknown')
264
write (12,*) (xgrid(j,i,kchan),i=1,ndim)
266
do j=1,nintervals_virt
268
write (12,*) (ave_virt(j,i,k,kchan),i=1,ndim)
271
write (12,*) ans(1,kchan),unc(1,kchan),ncall,itmax
272
$ ,nhits_in_grids(kchan)
273
write (12,*) virtual_fraction(kchan),average_virtual(0
278
217
write (*,*) 'Unknown imode',imode
351
290
open (unit=12, file='res.dat',status='unknown')
352
291
do kchan=0,nchans
353
292
write (12,*)ans(1,kchan),unc(1,kchan),ans(2,kchan),unc(2,kchan)
293
$ ,itmax,ncalls0,tTot
419
358
common/counterevnts/p1_cnt,wgt_cnt,pswgt_cnt,jac_cnt
420
359
double precision p_born(0:3,nexternal-1)
421
360
common /pborn/ p_born
422
double precision virt_wgt_mint(0:n_ave_virt),
423
& born_wgt_mint(0:n_ave_virt)
424
common /virt_born_wgt_mint/virt_wgt_mint,born_wgt_mint
425
361
double precision virtual_over_born
426
362
common/c_vob/virtual_over_born
427
363
logical calculatedBorn
487
call generate_momenta(ndim,iconfig,jac,x,p)
421
call generate_momenta(nndim,iconfig,jac,x,p)
488
422
if (p_born(0,1).lt.0d0) goto 12
489
423
call compute_prefactors_nbody(vegas_wgt)
490
424
call set_cms_stuff(izero)
528
462
call update_fks_dir(iFKS)
529
call generate_momenta(ndim,iconfig,jac,x,p)
463
call generate_momenta(nndim,iconfig,jac,x,p)
530
464
if (p_born(0,1).lt.0d0) cycle
531
465
call compute_prefactors_n1body(vegas_wgt,jac)
532
466
call set_cms_stuff(izero)
744
subroutine get_user_params(ncall,itmax,irestart)
678
subroutine get_user_params(ncall,nitmax,irestart)
745
679
c**********************************************************************
746
680
c Routine to get user specified parameters for run
747
681
c**********************************************************************
825
756
read(buffer,*) ncall
826
757
write (*,*) 'Number of phase-space points per iteration:',ncall
827
758
elseif(buffer(1:11).eq.'NITERATIONS') then
828
read(buffer(14:),*) itmax
829
write (*,*) 'Maximum number of iterations is:',itmax
759
read(buffer(14:),*) nitmax
760
write (*,*) 'Maximum number of iterations is:',nitmax
830
761
elseif(buffer(1:8).eq.'ACCURACY') then
831
762
read(buffer(11:),*) accuracy
832
763
write (*,*) 'Desired accuracy is:',accuracy