380 integer,
intent(in) :: N, rmax
381 double complex,
intent(in) :: T1(0:rmax,0:rmax,0:rmax,0:rmax)
382 double complex,
intent(in) :: T2(0:rmax,0:rmax,0:rmax,0:rmax)
383 double complex,
intent(in) :: MomVec(0:3,N-1)
384 double complex,
intent(in) :: MomInv(BinomTable(2,N)), masses2(0:N-1)
385 double precision,
intent(in) :: norm(0:rmax)
386 double precision,
intent(out) :: Tdiff(0:rmax)
387 integer :: r,n0,n1,n2,n3,i,j,flag
388 double complex :: diffTN
389 double precision :: ratio
390 character(len=*),
parameter :: fmt1 =
"(A8,'(',i2,') = dcmplx(',d25.18,' , ',d25.18,' )')"
391 character(len=*),
parameter :: fmt2 = &
392 "(A6,' TNten(',i1,',',i1,',',i1,',',i1,') = (',d23.16,' , ',d23.16,' ), r=',i2)"
393 character(len=*),
parameter :: fmt3 = &
394 "(A7,'(',i1,',',i2,') = dcmplx(',d25.18,' , ',d25.18,' )')"
397 checkcntten_cll(n) = checkcntten_cll(n) + 1
402 if(diffcntten_cll(n).ge.maxcheck_cll(n)) flag=0
403 if(ncheckout_cll.eq.-1) flag=0
414 difftn = t1(n0,n1,n2,n3)-t2(n0,n1,n2,n3)
415 tdiff(r) = max(tdiff(r),abs(difftn)/norm(r))
416 if ((abs(difftn).gt.checkacc_cll*norm(r)) .and.(flag.eq.1))
then
417 write(ncheckout_cll,*)
'***************************************************************************'
418 write(ncheckout_cll,
'(A15,I2,A16,I10)')
'TNten with N =',n,
', difference NO.', diffcntten_cll(n)+1
419 write(ncheckout_cll,*)
'COLI and DD do not agree! checkacc =', checkacc_cll
420 write(ncheckout_cll,
'(A24,I2,A10,I2,A4,I2)')
'TNten integral with N =', n,
' and rank ', r,
' of ',rmax
421 write(ncheckout_cll,*)
'---------------------------------------------------------------------------'
422 write(ncheckout_cll,*)
'GLOBAL PARAMETERS:'
423 write(ncheckout_cll,*)
'mode ', mode_cll
424 write(ncheckout_cll,*)
'muUV2 ', muuv2_cll
425 write(ncheckout_cll,*)
'muIR2 ', muir2_cll
426 write(ncheckout_cll,*)
'deltaUV ', deltauv_cll
427 write(ncheckout_cll,*)
'deltaIR1 ', deltair1_cll
428 write(ncheckout_cll,*)
'deltaIR2 ', deltair2_cll
429 write(ncheckout_cll,*)
'nminf ', nminf_cll
431 write(ncheckout_cll,*)
'minf2 ', i, minf2_cll(i)
433 write(ncheckout_cll,*)
'dprec ', dprec_cll
434 write(ncheckout_cll,*)
'reqacc ', reqacc_cll
435 write(ncheckout_cll,*)
'critacc ', critacc_cll
436 write(ncheckout_cll,*)
'checkacc ', checkacc_cll
437 write(ncheckout_cll,*)
'ErrFlag ', errflag_cll
438 write(ncheckout_cll,*)
'---------------------------------------------------------------------------'
441 write(ncheckout_cll,fmt3)
'MomVec', j, i, momvec(j,i)
444 do i=1,binomtable(2,n)
445 write(ncheckout_cll,fmt1)
'MomInv ', i, mominv(i)
448 write(ncheckout_cll,fmt1)
'masses2', i, masses2(i)
450 write(ncheckout_cll,*)
'---------------------------------------------------------------------------'
451 write(ncheckout_cll,fmt2)
'COLI:',0,0,0,0,t1(0,0,0,0),0
452 write(ncheckout_cll,fmt2)
'DD :',0,0,0,0,t2(0,0,0,0),0
453 write(ncheckout_cll,fmt2)
'COLI:',n0,n1,n2,n3,t1(n0,n1,n2,n3),r
454 write(ncheckout_cll,fmt2)
'DD :',n0,n1,n2,n3,t2(n0,n1,n2,n3),r
455 if(norm(r).ne.0d0)
then
456 write(ncheckout_cll,*)
'diff:', abs(difftn)/norm(r)
457 ratio=abs(difftn)/norm(r)
459 write(ncheckout_cll,*)
'diff:', 1d50
463 elseif((flag.eq.2).and.(abs(difftn).gt.ratio*norm(r)))
then
464 write(ncheckout_cll,fmt2)
'COLI:',n0,n1,n2,n3,t1(n0,n1,n2,n3),r
465 write(ncheckout_cll,fmt2)
'DD :',n0,n1,n2,n3,t2(n0,n1,n2,n3),r
466 if(norm(r).gt.1d-100)
then
467 write(ncheckout_cll,*)
'diff:', abs(difftn)/norm(r)
468 ratio=abs(difftn)/norm(r)
470 write(ncheckout_cll,*)
'diff:', 1d50
473 elseif ((flag.eq.0).and.(abs(difftn).gt.checkacc_cll*norm(r)))
then
483 write(ncheckout_cll,*)
'*************************************************************************'
484 write(ncheckout_cll,*)
' end TNten '
485 write(ncheckout_cll,*)
486 diffcntten_cll(n) = diffcntten_cll(n) + 1
487 if(diffcntten_cll(n).eq.maxcheck_cll(n))
then
488 write(ncheckout_cll,
'((A),I4)')
' Further output for differences in TNten functions suppressed for N =', n
489 write(ncheckout_cll,*)
491 else if (flag.eq.3)
then
492 diffcntten_cll(n) = diffcntten_cll(n) + 1