~maddevelopers/mg5amcnlo/3.0.1

« back to all changes in this revision

Viewing changes to vendor/IREGI/src/qcdloop/ql/qlI4array.f

  • Committer: Marco Zaro
  • Date: 2014-01-27 16:54:10 UTC
  • mfrom: (78.124.55 MG5_aMC_2.1)
  • Revision ID: marco.zaro@gmail.com-20140127165410-5lma8c2hzbzm426j
merged with lp:~maddevelopers/madgraph5/MG5_aMC_2.1 r 267

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      Double complex function qlI4array(xpi,musq,ep)
 
2
      implicit none
 
3
      include 'qlconstants.f'
 
4
      logical qlnonzero
 
5
      double precision xpi(13),xpio(13),musq,musqo
 
6
      integer ep,j,massive,ier,Npt
 
7
      double complex Ival(-2:0)
 
8
      parameter(Npt=10)
 
9
      data xpio/13*0d0/
 
10
      save Ival,xpio,musqo
 
11
 
 
12
C--If we have already calculated this qlI4, use the saved value
 
13
C--else setup the arrays
 
14
      if    ((xpi(1) .eq. xpio(1))
 
15
     . .and. (xpi(2) .eq. xpio(2))
 
16
     . .and. (xpi(3) .eq. xpio(3))
 
17
     . .and. (xpi(4) .eq. xpio(4))
 
18
     . .and. (xpi(5) .eq. xpio(5))
 
19
     . .and. (xpi(6) .eq. xpio(6))
 
20
     . .and. (xpi(7) .eq. xpio(7))
 
21
     . .and. (xpi(8) .eq. xpio(8))
 
22
     . .and. (xpi(9) .eq. xpio(9))
 
23
     . .and. (xpi(10) .eq. xpio(10))
 
24
     . .and. (musq .eq. musqo)) then
 
25
      qlI4array=Ival(ep)
 
26
      return
 
27
      else
 
28
C--   save new array as old
 
29
      do j=1,Npt
 
30
      xpio(j)=xpi(j)
 
31
      enddo
 
32
      musqo=musq
 
33
 
 
34
C---  count number of internal masses
 
35
      massive=0
 
36
      do j=1,4
 
37
      if (qlnonzero(xpi(j))) massive=massive+1
 
38
      enddo
 
39
 
 
40
      if (massive .eq. 0) then 
 
41
      call qlI4sub0m(xpi,musq,Ival)
 
42
      elseif (massive .eq. 1) then 
 
43
      call qlI4sub1m(xpi,musq,Ival)
 
44
      elseif (massive .eq. 2) then 
 
45
      call qlI4sub2m(xpi,musq,Ival)
 
46
      elseif (massive .eq. 3) then 
 
47
      call qlI4sub3m(xpi,musq,Ival)
 
48
      elseif (massive .eq. 4) then 
 
49
      xpi(11) = +xpi(5)+xpi(6)+xpi(7)+xpi(8)-xpi(9)-xpi(10)
 
50
      xpi(12) = -xpi(5)+xpi(6)-xpi(7)+xpi(8)+xpi(9)+xpi(10)
 
51
      xpi(13) = +xpi(5)-xpi(6)+xpi(7)-xpi(8)+xpi(9)+xpi(10)
 
52
      Ival(-2)=czip
 
53
      Ival(-1)=czip
 
54
      ier = 0
 
55
      call qlI4fin(Ival(0),xpi,ier)
 
56
      endif
 
57
      endif
 
58
      qlI4array=Ival(ep)
 
59
      return
 
60
      end