~useakat/+junk/ggng_v2

« back to all changes in this revision

Viewing changes to jgggcf.f

  • Committer: Yoshitaro Takaesu
  • Date: 2012-01-21 14:28:43 UTC
  • Revision ID: useakat@gmal.com-20120121142843-f61jhhnt54r6ndmz
initialized

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
      subroutine jgggcf(w1,w2,w3,g, jggg)
 
2
c
 
3
c This subroutine computes an off-shell gluon current
 
4
c from the four-point gluon coupling.
 
5
c
 
6
c input:
 
7
c       complex w1(6)          : first  gluon                        w1
 
8
c       complex w2(6)          : second gluon                        w2
 
9
c       complex w3(6)          : third  gluon                        w3
 
10
c       real    g              : coupling constant
 
11
c
 
12
c output:
 
13
c       complex jggg(6)        : gluon current             j^mu(w':w1,w2,w3)
 
14
c
 
15
      implicit none
 
16
      double complex w1(6),w2(6),w3(6),jggg(6)
 
17
      double complex dw1(0:3),dw2(0:3),dw3(0:3)
 
18
      double complex jj(0:3),dv,w32,w13,w21,dg2,g
 
19
      double precision p1(0:3),p2(0:3),p3(0:3),q(0:3),q2
 
20
 
 
21
      double precision rZero, rOne
 
22
      parameter( rZero = 0.0d0, rOne = 1.0d0 )
 
23
 
 
24
      jggg(5) = w1(5)+w2(5)+w3(5)
 
25
      jggg(6) = w1(6)+w2(6)+w3(6)
 
26
 
 
27
      dw1(0) = dcmplx(w1(1))
 
28
      dw1(1) = dcmplx(w1(2))
 
29
      dw1(2) = dcmplx(w1(3))
 
30
      dw1(3) = dcmplx(w1(4))
 
31
      dw2(0) = dcmplx(w2(1))
 
32
      dw2(1) = dcmplx(w2(2))
 
33
      dw2(2) = dcmplx(w2(3))
 
34
      dw2(3) = dcmplx(w2(4))
 
35
      dw3(0) = dcmplx(w3(1))
 
36
      dw3(1) = dcmplx(w3(2))
 
37
      dw3(2) = dcmplx(w3(3))
 
38
      dw3(3) = dcmplx(w3(4))
 
39
      q(0) = -dble(jggg(5))
 
40
      q(1) = -dble(jggg(6))
 
41
      q(2) = -dimag(jggg(6))
 
42
      q(3) = -dimag(jggg(5))
 
43
 
 
44
      q2 = q(0)**2 -(q(1)**2 +q(2)**2 +q(3)**2)
 
45
 
 
46
      dg2 = g*g
 
47
 
 
48
      dv = rOne/dcmplx( q2 )
 
49
 
 
50
      w32 = dw3(0)*dw2(0)-dw3(1)*dw2(1)-dw3(2)*dw2(2)-dw3(3)*dw2(3)
 
51
      w13 = dw1(0)*dw3(0)-dw1(1)*dw3(1)-dw1(2)*dw3(2)-dw1(3)*dw3(3)
 
52
      w21 = dw2(0)*dw1(0)-dw2(1)*dw1(1)-dw2(2)*dw1(2)-dw2(3)*dw1(3)
 
53
 
 
54
      jj(0) = dg2*( -dw1(0)*w32 + 2d0*dw2(0)*w13 - dw3(0) *w21 )
 
55
      jj(1) = dg2*( -dw1(1)*w32 + 2d0*dw2(1)*w13 - dw3(1) *w21 )
 
56
      jj(2) = dg2*( -dw1(2)*w32 + 2d0*dw2(2)*w13 - dw3(2) *w21 )
 
57
      jj(3) = dg2*( -dw1(3)*w32 + 2d0*dw2(3)*w13 - dw3(3) *w21 )
 
58
 
 
59
      jggg(1) = dcmplx( jj(0)*dv )
 
60
      jggg(2) = dcmplx( jj(1)*dv )
 
61
      jggg(3) = dcmplx( jj(2)*dv )
 
62
      jggg(4) = dcmplx( jj(3)*dv )
 
63
c
 
64
      return
 
65
      end