13 subroutine ixxxxx(p, fmass, nhel, nsf ,fi)
28 double complex fi(6),chi(2)
29 double precision p(0:3),sf(2),sfomeg(2),omega(2),fmass,
30 & pp,pp3,sqp0p3,sqm(0:1)
31 integer nhel,nsf,ip,im,nh
33 double precision rZero, rHalf, rTwo
34 parameter( rzero = 0.0d0, rhalf = 0.5d0, rtwo = 2.0d0 )
73 fi(1) = dcmplx(p(0),p(3))*nsf*(-1)
74 fi(2) = dcmplx(p(1),p(2))*nsf*(-1)
78 if ( fmass.ne.rzero )
then
80 pp = min(p(0),dsqrt(p(1)**2+p(2)**2+p(3)**2))
82 if ( pp.eq.rzero )
then
84 sqm(0) = dsqrt(abs(fmass))
85 sqm(1) = sign(sqm(0),fmass)
90 fi(4) = im*nsf * sqm(ip)
91 fi(5) = ip*nsf * sqm(im)
96 sf(1) = dble(1+nsf+(1-nsf)*nh)*rhalf
97 sf(2) = dble(1+nsf-(1-nsf)*nh)*rhalf
98 omega(1) = dsqrt(p(0)+pp)
99 omega(2) = fmass/omega(1)
102 sfomeg(1) = sf(1)*omega(ip)
103 sfomeg(2) = sf(2)*omega(im)
104 pp3 = max(pp+p(3),rzero)
105 chi(1) = dcmplx( dsqrt(pp3*rhalf/pp) )
106 if ( pp3.eq.rzero )
then
107 chi(2) = dcmplx(-nh )
109 chi(2) = dcmplx( nh*p(1) , p(2) )/dsqrt(rtwo*pp*pp3)
112 fi(3) = sfomeg(1)*chi(im)
113 fi(4) = sfomeg(1)*chi(ip)
114 fi(5) = sfomeg(2)*chi(im)
115 fi(6) = sfomeg(2)*chi(ip)
121 if(p(1).eq.0d0.and.p(2).eq.0d0.and.p(3).lt.0d0)
then
124 sqp0p3 = dsqrt(max(p(0)+p(3),rzero))*nsf
126 chi(1) = dcmplx( sqp0p3 )
127 if ( sqp0p3.eq.rzero )
then
128 chi(2) = dcmplx(-nhel )*dsqrt(rtwo*p(0))
130 chi(2) = dcmplx( nh*p(1), p(2) )/sqp0p3
133 fi(3) = dcmplx( rzero )
134 fi(4) = dcmplx( rzero )
140 fi(5) = dcmplx( rzero )
141 fi(6) = dcmplx( rzero )
149 subroutine oxxxxx(p,fmass,nhel,nsf , fo)
164 double complex fo(6),chi(2)
165 double precision p(0:3),sf(2),sfomeg(2),omega(2),fmass,
166 & pp,pp3,sqp0p3,sqm(0:1)
167 integer nhel,nsf,nh,ip,im
169 double precision rZero, rHalf, rTwo
170 parameter( rzero = 0.0d0, rhalf = 0.5d0, rtwo = 2.0d0 )
209 fo(1) = dcmplx(p(0),p(3))*nsf
210 fo(2) = dcmplx(p(1),p(2))*nsf
214 if ( fmass.ne.rzero )
then
216 pp = min(p(0),dsqrt(p(1)**2+p(2)**2+p(3)**2))
218 if ( pp.eq.rzero )
then
220 sqm(0) = dsqrt(abs(fmass))
221 sqm(1) = sign(sqm(0),fmass)
223 ip = nhel * (-1) * ((1-nh)/2)
224 fo(3) = im * sqm(abs(ip))
225 fo(4) = ip*nsf * sqm(abs(ip))
226 fo(5) = im*nsf * sqm(abs(im))
227 fo(6) = ip * sqm(abs(im))
230 pp = min(p(0),dsqrt(p(1)**2+p(2)**2+p(3)**2))
231 sf(1) = dble(1+nsf+(1-nsf)*nh)*rhalf
232 sf(2) = dble(1+nsf-(1-nsf)*nh)*rhalf
233 omega(1) = dsqrt(p(0)+pp)
234 omega(2) = fmass/omega(1)
237 sfomeg(1) = sf(1)*omega(ip)
238 sfomeg(2) = sf(2)*omega(im)
239 pp3 = max(pp+p(3),rzero)
240 chi(1) = dcmplx( dsqrt(pp3*rhalf/pp) )
241 if ( pp3.eq.rzero )
then
242 chi(2) = dcmplx(-nh )
244 chi(2) = dcmplx( nh*p(1) , -p(2) )/dsqrt(rtwo*pp*pp3)
247 fo(3) = sfomeg(2)*chi(im)
248 fo(4) = sfomeg(2)*chi(ip)
249 fo(5) = sfomeg(1)*chi(im)
250 fo(6) = sfomeg(1)*chi(ip)
256 if(p(1).eq.0d0.and.p(2).eq.0d0.and.p(3).lt.0d0)
then
259 sqp0p3 = dsqrt(max(p(0)+p(3),rzero))*nsf
261 chi(1) = dcmplx( sqp0p3 )
262 if ( sqp0p3.eq.rzero )
then
263 chi(2) = dcmplx(-nhel )*dsqrt(rtwo*p(0))
265 chi(2) = dcmplx( nh*p(1), -p(2) )/sqp0p3
270 fo(5) = dcmplx( rzero )
271 fo(6) = dcmplx( rzero )
273 fo(3) = dcmplx( rzero )
274 fo(4) = dcmplx( rzero )
284 subroutine pxxxxx(p,tmass,nhel,nst , tc)
301 double precision p(0:3), tmass
303 double complex tc(18)
305 double complex ft(6,4), ep(4), em(4), e0(4)
306 double precision pt, pt2, pp, pzpt, emp, sqh, sqs
309 double precision rZero, rHalf, rOne, rTwo
310 parameter( rzero = 0.0d0, rhalf = 0.5d0 )
311 parameter( rone = 1.0d0, rtwo = 2.0d0 )
315 tc(1) = dcmplx(p(0),p(3))*nst
316 tc(2) = dcmplx(p(1),p(2))*nst
321 subroutine sxxxxx(p,nss , sc)
334 double precision p(0:3)
337 double precision rOne
338 parameter( rone = 1.0d0 )
372 sc(3) = dcmplx( rone )
373 sc(1) = dcmplx(p(0),p(3))*nss
374 sc(2) = dcmplx(p(1),p(2))*nss
379 subroutine txxxxx(p,tmass,nhel,nst , tc)
394 double precision p(0:3), tmass
396 double complex tc(18)
398 double complex ft(6,4), ep(4), em(4), e0(4)
399 double precision pt, pt2, pp, pzpt, emp, sqh, sqs
402 double precision rZero, rHalf, rOne, rTwo
403 parameter( rzero = 0.0d0, rhalf = 0.5d0 )
404 parameter( rone = 1.0d0, rtwo = 2.0d0 )
407 parameter( stdo = 6 )
410 sqs = sqrt(rhalf/3.d0)
412 pt2 = p(1)**2 + p(2)**2
413 pp = min(p(0),sqrt(pt2+p(3)**2))
414 pt = min(pp,sqrt(pt2))
416 ft(5,1) = dcmplx(p(0),p(3))*nst
417 ft(6,1) = dcmplx(p(1),p(2))*nst
419 if ( nhel.ge.0 )
then
421 if ( pp.eq.rzero )
then
422 ep(1) = dcmplx( rzero )
423 ep(2) = dcmplx( -sqh )
424 ep(3) = dcmplx( rzero , nst*sqh )
425 ep(4) = dcmplx( rzero )
427 ep(1) = dcmplx( rzero )
428 ep(4) = dcmplx( pt/pp*sqh )
429 if ( pt.ne.rzero )
then
430 pzpt = p(3)/(pp*pt)*sqh
431 ep(2) = dcmplx( -p(1)*pzpt , -nst*p(2)/pt*sqh )
432 ep(3) = dcmplx( -p(2)*pzpt , nst*p(1)/pt*sqh )
434 ep(2) = dcmplx( -sqh )
435 ep(3) = dcmplx( rzero , nst*sign(sqh,p(3)) )
440 if ( nhel.le.0 )
then
442 if ( pp.eq.rzero )
then
443 em(1) = dcmplx( rzero )
444 em(2) = dcmplx( sqh )
445 em(3) = dcmplx( rzero , nst*sqh )
446 em(4) = dcmplx( rzero )
448 em(1) = dcmplx( rzero )
449 em(4) = dcmplx( -pt/pp*sqh )
450 if ( pt.ne.rzero )
then
451 pzpt = -p(3)/(pp*pt)*sqh
452 em(2) = dcmplx( -p(1)*pzpt , -nst*p(2)/pt*sqh )
453 em(3) = dcmplx( -p(2)*pzpt , nst*p(1)/pt*sqh )
455 em(2) = dcmplx( sqh )
456 em(3) = dcmplx( rzero , nst*sign(sqh,p(3)) )
461 if ( abs(nhel).le.1 )
then
463 if ( pp.eq.rzero )
then
464 e0(1) = dcmplx( rzero )
465 e0(2) = dcmplx( rzero )
466 e0(3) = dcmplx( rzero )
467 e0(4) = dcmplx( rone )
469 emp = p(0)/(tmass*pp)
470 e0(1) = dcmplx( pp/tmass )
471 e0(4) = dcmplx( p(3)*emp )
472 if ( pt.ne.rzero )
then
473 e0(2) = dcmplx( p(1)*emp )
474 e0(3) = dcmplx( p(2)*emp )
476 e0(2) = dcmplx( rzero )
477 e0(3) = dcmplx( rzero )
482 if ( nhel.eq.2 )
then
485 ft(i,j) = ep(i)*ep(j)
488 else if ( nhel.eq.-2 )
then
491 ft(i,j) = em(i)*em(j)
494 else if (tmass.eq.0)
then
500 else if (tmass.ne.0)
then
501 if ( nhel.eq.1 )
then
504 ft(i,j) = sqh*( ep(i)*e0(j) + e0(i)*ep(j) )
507 else if ( nhel.eq.0 )
then
510 ft(i,j) = sqs*( ep(i)*em(j) + em(i)*ep(j)
511 & + rtwo*e0(i)*e0(j) )
514 else if ( nhel.eq.-1 )
then
517 ft(i,j) = sqh*( em(i)*e0(j) + e0(i)*em(j) )
521 write(stdo,*)
'invalid helicity in TXXXXX'
549 subroutine vxxxxx(p,vmass,nhel,nsv , vc)
565 double precision p(0:3),vmass,hel,hel0,pt,pt2,pp,pzpt,emp,sqh
566 integer nhel,nsv,nsvahl
568 double precision rZero, rHalf, rOne, rTwo
569 parameter( rzero = 0.0d0, rhalf = 0.5d0 )
570 parameter( rone = 1.0d0, rtwo = 2.0d0 )
618 nsvahl = nsv*dabs(hel)
619 pt2 = p(1)**2+p(2)**2
620 pp = min(p(0),dsqrt(pt2+p(3)**2))
621 pt = min(pp,dsqrt(pt2))
623 vc(1) = dcmplx(p(0),p(3))*nsv
624 vc(2) = dcmplx(p(1),p(2))*nsv
644 if ( vmass.ne.rzero )
then
646 hel0 = rone-dabs(hel)
648 if ( pp.eq.rzero )
then
650 vc(3) = dcmplx( rzero )
651 vc(4) = dcmplx(-hel*sqh )
652 vc(5) = dcmplx( rzero , nsvahl*sqh )
653 vc(6) = dcmplx( hel0 )
657 emp = p(0)/(vmass*pp)
658 vc(3) = dcmplx( hel0*pp/vmass )
659 vc(6) = dcmplx( hel0*p(3)*emp+hel*pt/pp*sqh )
660 if ( pt.ne.rzero )
then
661 pzpt = p(3)/(pp*pt)*sqh*hel
662 vc(4) = dcmplx( hel0*p(1)*emp-p(1)*pzpt ,
663 & -nsvahl*p(2)/pt*sqh )
664 vc(5) = dcmplx( hel0*p(2)*emp-p(2)*pzpt ,
665 & nsvahl*p(1)/pt*sqh )
667 vc(4) = dcmplx( -hel*sqh )
668 vc(5) = dcmplx( rzero , nsvahl*sign(sqh,p(3)) )
676 pt = sqrt(p(1)**2+p(2)**2)
677 vc(3) = dcmplx( rzero )
678 vc(6) = dcmplx( hel*pt/pp*sqh )
679 if ( pt.ne.rzero )
then
680 pzpt = p(3)/(pp*pt)*sqh*hel
681 vc(4) = dcmplx( -p(1)*pzpt , -nsv*p(2)/pt*sqh )
682 vc(5) = dcmplx( -p(2)*pzpt , nsv*p(1)/pt*sqh )
684 vc(4) = dcmplx( -hel*sqh )
685 vc(5) = dcmplx( rzero , nsv*sign(sqh,p(3)) )
693 subroutine boostx(p,q , pboost)
708 double precision p(0:3),q(0:3),pboost(0:3),pq,qq,m,lf
710 double precision rZero
711 parameter( rzero = 0.0d0 )
719 qq = q(1)**2+q(2)**2+q(3)**2
761 if ( qq.ne.rzero )
then
762 pq = p(1)*q(1)+p(2)*q(2)+p(3)*q(3)
763 m = sqrt(max(q(0)**2-qq,1d-99))
764 lf = ((q(0)-m)*pq/qq+p(0))/m
765 pboost(0) = (p(0)*q(0)+pq)/m
766 pboost(1) = p(1)+q(1)*lf
767 pboost(2) = p(2)+q(2)*lf
768 pboost(3) = p(3)+q(3)*lf
779 subroutine momntx(energy,mass,costh,phi , p)
793 double precision p(0:3),energy,mass,costh,phi,pp,sinth
795 double precision rZero, rOne
796 parameter( rzero = 0.0d0, rone = 1.0d0 )
830 if ( energy.eq.mass )
then
838 pp = sqrt((energy-mass)*(energy+mass))
839 sinth = sqrt((rone-costh)*(rone+costh))
841 if ( phi.eq.rzero )
then
845 p(1) = pp*sinth*cos(phi)
846 p(2) = pp*sinth*sin(phi)
853 subroutine rotxxx(p,q , prot)
868 double precision p(0:3),q(0:3),prot(0:3),qt2,qt,psgn,qq,p1
870 double precision rZero, rOne
871 parameter( rzero = 0.0d0, rone = 1.0d0 )
880 qt2 = q(1)**2 + q(2)**2
897 if ( qt2.eq.rzero )
then
898 if ( q(3).eq.rzero )
then
903 psgn = dsign(rone,q(3))
909 qq = sqrt(qt2+q(3)**2)
912 prot(1) = q(1)*q(3)/qq/qt*p1 -q(2)/qt*p(2) +q(1)/qq*p(3)
913 prot(2) = q(2)*q(3)/qq/qt*p1 +q(1)/qt*p(2) +q(2)/qq*p(3)
914 prot(3) = -qt/qq*p1 +q(3)/qq*p(3)
920 subroutine mom2cx(esum,mass1,mass2,costh1,phi1 , p1,p2)
937 double precision p1(0:3),p2(0:3),
938 & esum,mass1,mass2,costh1,phi1,md2,ed,pp,sinth1
940 double precision rZero, rHalf, rOne, rTwo
941 parameter( rzero = 0.0d0, rhalf = 0.5d0 )
942 parameter( rone = 1.0d0, rtwo = 2.0d0 )
979 md2 = (mass1-mass2)*(mass1+mass2)
981 if ( mass1*mass2.eq.rzero )
then
982 pp = (esum-abs(ed))*rhalf
984 pp = sqrt(max((md2/esum)**2-rtwo*(mass1**2+mass2**2)+esum**2,1d
986 sinth1 = sqrt((rone-costh1)*(rone+costh1))
988 p1(0) = max((esum+ed)*rhalf,rzero)
989 p1(1) = pp*sinth1*cos(phi1)
990 p1(2) = pp*sinth1*sin(phi1)
993 p2(0) = max((esum-ed)*rhalf,rzero)
1000 subroutine irxxxx(p,rmass,nhel,nsr , ri)
1018 double precision p(0:3),rmass
1020 double complex ri(18)
1022 double complex rc(6,4),ep(4),em(4),e0(4),fip(4),fim(4),chi(2)
1023 double precision pp,pt2,pt,pzpt,emp, sf(2),sfomeg(2),omega(2),pp3,
1025 integer i,j,nsv,ip,im,nh
1027 double precision rZero, rHalf, rOne, rTwo, rThree, sqh,sq2,sq3
1028 parameter( rzero = 0.0d0, rhalf = 0.5d0 )
1029 parameter( rone = 1.0d0, rtwo = 2.0d0, rthree = 3.0d0 )
1072 pt2 = p(1)**2 + p(2)**2
1073 pp = min(p(0),sqrt(pt2+p(3)**2))
1074 pt = min(pp,sqrt(pt2))
1076 rc(5,1) = -1*dcmplx(p(0),p(3))*nsr
1077 rc(6,1) = -1*dcmplx(p(1),p(2))*nsr
1081 if ( nhel.ge.1 )
then
1083 if ( pp.eq.rzero )
then
1084 ep(1) = dcmplx( rzero )
1085 ep(2) = dcmplx( -sqh )
1086 ep(3) = dcmplx( rzero , nsv*sqh )
1087 ep(4) = dcmplx( rzero )
1089 ep(1) = dcmplx( rzero )
1090 ep(4) = dcmplx( pt/pp*sqh )
1091 if ( pt.ne.rzero )
then
1092 pzpt = p(3)/(pp*pt)*sqh
1093 ep(2) = dcmplx( -p(1)*pzpt , -nsv*p(2)/pt*sqh )
1094 ep(3) = dcmplx( -p(2)*pzpt , nsv*p(1)/pt*sqh )
1096 ep(2) = dcmplx( -sqh )
1097 ep(3) = dcmplx( rzero , nsv*sign(sqh,p(3)) )
1102 if ( nhel.le.-1 )
then
1104 if ( pp.eq.rzero )
then
1105 em(1) = dcmplx( rzero )
1106 em(2) = dcmplx( sqh )
1107 em(3) = dcmplx( rzero , nsv*sqh )
1108 em(4) = dcmplx( rzero )
1110 em(1) = dcmplx( rzero )
1111 em(4) = dcmplx( -pt/pp*sqh )
1112 if ( pt.ne.rzero )
then
1113 pzpt = -p(3)/(pp*pt)*sqh
1114 em(2) = dcmplx( -p(1)*pzpt , -nsv*p(2)/pt*sqh )
1115 em(3) = dcmplx( -p(2)*pzpt , nsv*p(1)/pt*sqh )
1117 em(2) = dcmplx( sqh )
1118 em(3) = dcmplx( rzero , nsv*sign(sqh,p(3)) )
1123 if ( abs(nhel).le.1 )
then
1125 if ( pp.eq.rzero )
then
1126 e0(1) = dcmplx( rzero )
1127 e0(2) = dcmplx( rzero )
1128 e0(3) = dcmplx( rzero )
1129 e0(4) = dcmplx( rone )
1131 emp = p(0)/(rmass*pp)
1132 e0(1) = dcmplx( pp/rmass )
1133 e0(4) = dcmplx( p(3)*emp )
1134 if ( pt.ne.rzero )
then
1135 e0(2) = dcmplx( p(1)*emp )
1136 e0(3) = dcmplx( p(2)*emp )
1138 e0(2) = dcmplx( rzero )
1139 e0(3) = dcmplx( rzero )
1144 if ( nhel.ge.-1 )
then
1147 if ( rmass.ne.rzero )
then
1148 pp = min(p(0),dsqrt(p(1)**2+p(2)**2+p(3)**2))
1149 if ( pp.eq.rzero )
then
1154 fip(2) = im*nsr * sqm
1155 fip(3) = ip*nsr * sqm
1158 sf(1) = dble(1+nsr+(1-nsr)*nh)*rhalf
1159 sf(2) = dble(1+nsr-(1-nsr)*nh)*rhalf
1160 omega(1) = dsqrt(p(0)+pp)
1161 omega(2) = rmass/omega(1)
1164 sfomeg(1) = sf(1)*omega(ip)
1165 sfomeg(2) = sf(2)*omega(im)
1166 pp3 = max(pp+p(3),rzero)
1167 chi(1) = dcmplx( dsqrt(pp3*rhalf/pp) )
1168 if ( pp3.eq.rzero )
then
1169 chi(2) = dcmplx(-nh )
1171 chi(2) = dcmplx( nh*p(1) , p(2) )/dsqrt(rtwo*pp*pp3)
1173 fip(1) = sfomeg(1)*chi(im)
1174 fip(2) = sfomeg(1)*chi(ip)
1175 fip(3) = sfomeg(2)*chi(im)
1176 fip(4) = sfomeg(2)*chi(ip)
1179 sqp0p3 = dsqrt(max(p(0)+p(3),rzero))*nsr
1180 chi(1) = dcmplx( sqp0p3 )
1181 if ( sqp0p3.eq.rzero )
then
1182 chi(2) = dcmplx(-nhel )*dsqrt(rtwo*p(0))
1184 chi(2) = dcmplx( nh*p(1), p(2) )/sqp0p3
1187 fip(1) = dcmplx( rzero )
1188 fip(2) = dcmplx( rzero )
1194 fip(3) = dcmplx( rzero )
1195 fip(4) = dcmplx( rzero )
1200 if ( nhel.le.1 )
then
1203 if ( rmass.ne.rzero )
then
1204 pp = min(p(0),dsqrt(p(1)**2+p(2)**2+p(3)**2))
1205 if ( pp.eq.rzero )
then
1210 fim(2) = im*nsr * sqm
1211 fim(3) = ip*nsr * sqm
1214 sf(1) = dble(1+nsr+(1-nsr)*nh)*rhalf
1215 sf(2) = dble(1+nsr-(1-nsr)*nh)*rhalf
1216 omega(1) = dsqrt(p(0)+pp)
1217 omega(2) = rmass/omega(1)
1220 sfomeg(1) = sf(1)*omega(ip)
1221 sfomeg(2) = sf(2)*omega(im)
1222 pp3 = max(pp+p(3),rzero)
1223 chi(1) = dcmplx( dsqrt(pp3*rhalf/pp) )
1224 if ( pp3.eq.rzero )
then
1225 chi(2) = dcmplx(-nh )
1227 chi(2) = dcmplx( nh*p(1) , p(2) )/dsqrt(rtwo*pp*pp3)
1229 fim(1) = sfomeg(1)*chi(im)
1230 fim(2) = sfomeg(1)*chi(ip)
1231 fim(3) = sfomeg(2)*chi(im)
1232 fim(4) = sfomeg(2)*chi(ip)
1235 sqp0p3 = dsqrt(max(p(0)+p(3),rzero))*nsr
1236 chi(1) = dcmplx( sqp0p3 )
1237 if ( sqp0p3.eq.rzero )
then
1238 chi(2) = dcmplx(-nhel )*dsqrt(rtwo*p(0))
1240 chi(2) = dcmplx( nh*p(1), p(2) )/sqp0p3
1243 fim(1) = dcmplx( rzero )
1244 fim(2) = dcmplx( rzero )
1250 fim(3) = dcmplx( rzero )
1251 fim(4) = dcmplx( rzero )
1257 if ( nhel.eq.3 )
then
1260 rc(i,j) = ep(i)*fip(j)
1263 else if ( nhel.eq.1 )
then
1266 if ( pt.eq.rzero .and. p(3).ge.0d0 )
then
1267 rc(i,j) = sq2/sq3*e0(i)*fip(j) +rone/sq3*ep(i)*fim(j)
1268 elseif ( pt.eq.rzero .and. p(3).lt.0d0 )
then
1269 rc(i,j) = sq2/sq3*e0(i)*fip(j) -rone/sq3*ep(i)*fim(j)
1271 rc(i,j) = sq2/sq3*e0(i)*fip(j)
1272 & +rone/sq3*ep(i)*fim(j) *dcmplx(p(1),nsr*p(2))/pt
1276 else if ( nhel.eq.-1 )
then
1279 if ( pt.eq.rzero .and.p(3).ge.0d0 )
then
1280 rc(i,j) = rone/sq3*em(i)*fip(j) +sq2/sq3*e0(i)*fim(j)
1281 elseif ( pt.eq.rzero .and.p(3).lt.0d0 )
then
1282 rc(i,j) = rone/sq3*em(i)*fip(j) -sq2/sq3*e0(i)*fim(j)
1284 rc(i,j) = rone/sq3*em(i)*fip(j)
1285 & + sq2/sq3*e0(i)*fim(j) *dcmplx(p(1),nsr*p(2))/pt
1292 if ( pt.eq.rzero .and. p(3).ge.0d0 )
then
1293 rc(i,j) = em(i)*fim(j)
1294 elseif ( pt.eq.rzero .and. p(3).lt.0d0 )
then
1295 rc(i,j) = -em(i)*fim(j)
1297 rc(i,j) = em(i)*fim(j) *dcmplx(p(1),nsr*p(2))/pt
1324 subroutine orxxxx(p,rmass,nhel,nsr , ro)
1342 double precision p(0:3),rmass
1344 double complex ro(18),fipp(4),fimm(4)
1346 double complex rc(6,4),ep(4),em(4),e0(4),fop(4),fom(4),chi(2)
1347 double precision pp,pt2,pt,pzpt,emp, sf(2),sfomeg(2),omega(2),pp3,
1349 integer i,j,nsv,ip,im,nh
1351 double precision rZero, rHalf, rOne, rTwo, rThree, sqh,sq2,sq3
1352 parameter( rzero = 0.0d0, rhalf = 0.5d0 )
1353 parameter( rone = 1.0d0, rtwo = 2.0d0, rthree = 3.0d0 )
1396 pt2 = p(1)**2 + p(2)**2
1397 pp = min(p(0),sqrt(pt2+p(3)**2))
1398 pt = min(pp,sqrt(pt2))
1400 rc(5,1) = dcmplx(p(0),p(3))*nsr
1401 rc(6,1) = dcmplx(p(1),p(2))*nsr
1405 if ( nhel.ge.1 )
then
1407 if ( pp.eq.rzero )
then
1408 ep(1) = dcmplx( rzero )
1409 ep(2) = dcmplx( -sqh )
1410 ep(3) = dcmplx( rzero , nsv*sqh )
1411 ep(4) = dcmplx( rzero )
1413 ep(1) = dcmplx( rzero )
1414 ep(4) = dcmplx( pt/pp*sqh )
1415 if ( pt.ne.rzero )
then
1416 pzpt = p(3)/(pp*pt)*sqh
1417 ep(2) = dcmplx( -p(1)*pzpt , -nsv*p(2)/pt*sqh )
1418 ep(3) = dcmplx( -p(2)*pzpt , nsv*p(1)/pt*sqh )
1420 ep(2) = dcmplx( -sqh )
1421 ep(3) = dcmplx( rzero , nsv*sign(sqh,p(3)) )
1426 if ( nhel.le.-1 )
then
1428 if ( pp.eq.rzero )
then
1429 em(1) = dcmplx( rzero )
1430 em(2) = dcmplx( sqh )
1431 em(3) = dcmplx( rzero , nsv*sqh )
1432 em(4) = dcmplx( rzero )
1434 em(1) = dcmplx( rzero )
1435 em(4) = dcmplx( -pt/pp*sqh )
1436 if ( pt.ne.rzero )
then
1437 pzpt = -p(3)/(pp*pt)*sqh
1438 em(2) = dcmplx( -p(1)*pzpt , -nsv*p(2)/pt*sqh )
1439 em(3) = dcmplx( -p(2)*pzpt , nsv*p(1)/pt*sqh )
1441 em(2) = dcmplx( sqh )
1442 em(3) = dcmplx( rzero , nsv*sign(sqh,p(3)) )
1447 if ( abs(nhel).le.1 )
then
1449 if ( pp.eq.rzero )
then
1450 e0(1) = dcmplx( rzero )
1451 e0(2) = dcmplx( rzero )
1452 e0(3) = dcmplx( rzero )
1453 e0(4) = dcmplx( rone )
1455 emp = p(0)/(rmass*pp)
1456 e0(1) = dcmplx( pp/rmass )
1457 e0(4) = dcmplx( p(3)*emp )
1458 if ( pt.ne.rzero )
then
1459 e0(2) = dcmplx( p(1)*emp )
1460 e0(3) = dcmplx( p(2)*emp )
1462 e0(2) = dcmplx( rzero )
1463 e0(3) = dcmplx( rzero )
1468 if ( nhel.ge.-1 )
then
1472 if ( rmass.ne.rzero )
then
1474 pp = min(p(0),dsqrt(p(1)**2+p(2)**2+p(3)**2))
1476 if ( pp.eq.rzero )
then
1478 sqm(0) = dsqrt(abs(rmass))
1479 sqm(1) = sign(sqm(0),rmass)
1483 fop(1) = im * sqm(im)
1484 fop(2) = ip*nsr * sqm(im)
1485 fop(3) = im*nsr * sqm(-ip)
1486 fop(4) = ip * sqm(-ip)
1490 pp = min(p(0),dsqrt(p(1)**2+p(2)**2+p(3)**2))
1491 sf(1) = dble(1+nsr+(1-nsr)*nh)*rhalf
1492 sf(2) = dble(1+nsr-(1-nsr)*nh)*rhalf
1493 omega(1) = dsqrt(p(0)+pp)
1494 omega(2) = rmass/omega(1)
1497 sfomeg(1) = sf(1)*omega(ip)
1498 sfomeg(2) = sf(2)*omega(im)
1499 pp3 = max(pp+p(3),rzero)
1500 chi(1) = dcmplx( dsqrt(pp3*rhalf/pp) )
1501 if ( pp3.eq.rzero )
then
1502 chi(2) = dcmplx(-nh )
1504 chi(2) = dcmplx( nh*p(1) , -p(2) )/dsqrt(rtwo*pp*pp3)
1507 fop(1) = sfomeg(2)*chi(im)
1508 fop(2) = sfomeg(2)*chi(ip)
1509 fop(3) = sfomeg(1)*chi(im)
1510 fop(4) = sfomeg(1)*chi(ip)
1516 if(p(1).eq.0d0.and.p(2).eq.0d0.and.p(3).lt.0d0)
then
1519 sqp0p3 = dsqrt(max(p(0)+p(3),rzero))*nsr
1521 chi(1) = dcmplx( sqp0p3 )
1522 if ( sqp0p3.eq.rzero )
then
1523 chi(2) = dcmplx(-nhel )*dsqrt(rtwo*p(0))
1525 chi(2) = dcmplx( nh*p(1), -p(2) )/sqp0p3
1530 fop(3) = dcmplx( rzero )
1531 fop(4) = dcmplx( rzero )
1533 fop(1) = dcmplx( rzero )
1534 fop(2) = dcmplx( rzero )
1541 if ( nhel.le.1 )
then
1545 if ( rmass.ne.rzero )
then
1547 pp = min(p(0),dsqrt(p(1)**2+p(2)**2+p(3)**2))
1549 if ( pp.eq.rzero )
then
1551 sqm(0) = dsqrt(abs(rmass))
1552 sqm(1) = sign(sqm(0),rmass)
1556 fom(1) = im * sqm(im)
1557 fom(2) = ip*nsr * sqm(im)
1558 fom(3) = im*nsr * sqm(-ip)
1559 fom(4) = ip * sqm(-ip)
1563 pp = min(p(0),dsqrt(p(1)**2+p(2)**2+p(3)**2))
1564 sf(1) = dble(1+nsr+(1-nsr)*nh)*rhalf
1565 sf(2) = dble(1+nsr-(1-nsr)*nh)*rhalf
1566 omega(1) = dsqrt(p(0)+pp)
1567 omega(2) = rmass/omega(1)
1570 sfomeg(1) = sf(1)*omega(ip)
1571 sfomeg(2) = sf(2)*omega(im)
1572 pp3 = max(pp+p(3),rzero)
1573 chi(1) = dcmplx( dsqrt(pp3*rhalf/pp) )
1574 if ( pp3.eq.rzero )
then
1575 chi(2) = dcmplx(-nh )
1577 chi(2) = dcmplx( nh*p(1) , -p(2) )/dsqrt(rtwo*pp*pp3)
1580 fom(1) = sfomeg(2)*chi(im)
1581 fom(2) = sfomeg(2)*chi(ip)
1582 fom(3) = sfomeg(1)*chi(im)
1583 fom(4) = sfomeg(1)*chi(ip)
1589 if(p(1).eq.0d0.and.p(2).eq.0d0.and.p(3).lt.0d0)
then
1592 sqp0p3 = dsqrt(max(p(0)+p(3),rzero))*nsr
1594 chi(1) = dcmplx( sqp0p3 )
1595 if ( sqp0p3.eq.rzero )
then
1596 chi(2) = dcmplx(-nhel )*dsqrt(rtwo*p(0))
1598 chi(2) = dcmplx( nh*p(1), -p(2) )/sqp0p3
1603 fom(3) = dcmplx( rzero )
1604 fom(4) = dcmplx( rzero )
1606 fom(1) = dcmplx( rzero )
1607 fom(2) = dcmplx( rzero )
1615 if ( nhel.eq.3 )
then
1618 rc(i,j) = ep(i)*fop(j)
1621 else if ( nhel.eq.1 )
then
1624 if ( pt.eq.rzero .and. p(3).ge.0d0 )
then
1625 rc(i,j) = sq2/sq3*e0(i)*fop(j)
1626 & +rone/sq3*ep(i)*fom(j)
1627 elseif ( pt.eq.rzero .and. p(3).lt.0d0 )
then
1628 rc(i,j) = sq2/sq3*e0(i)*fop(j)
1629 & -rone/sq3*ep(i)*fom(j)
1631 rc(i,j) = sq2/sq3*e0(i)*fop(j)
1632 & +rone/sq3*ep(i)*fom(j)
1633 & *dcmplx(p(1),-nsr*p(2))/pt
1637 else if ( nhel.eq.-1 )
then
1640 if ( pt.eq.rzero .and.p(3).ge.0d0 )
then
1641 rc(i,j) = rone/sq3*em(i)*fop(j)
1642 & +sq2/sq3*e0(i)*fom(j)
1643 elseif ( pt.eq.rzero .and.p(3).lt.0d0 )
then
1644 rc(i,j) = rone/sq3*em(i)*fop(j)
1645 & -sq2/sq3*e0(i)*fom(j)
1647 rc(i,j) = rone/sq3*em(i)*fop(j)
1648 & + sq2/sq3*e0(i)*fom(j)
1649 & *dcmplx(p(1),-nsr*p(2))/pt
1656 if ( pt.eq.rzero .and. p(3).ge.0d0 )
then
1657 rc(i,j) = em(i)*fom(j)
1658 elseif ( pt.eq.rzero .and. p(3).lt.0d0 )
then
1659 rc(i,j) = -em(i)*fom(j)
1661 rc(i,j) = em(i)*fom(j)*dcmplx(p(1),-nsr*p(2))/pt
1695 SUBROUTINE ffv1_0(F1, F2, V3, COUP,VERTEX)
1698 parameter(ci=(0d0,1d0))
1705 tmp15 = (f1(3)*(f2(5)*(v3(3)+v3(6))+f2(6)*(v3(4)+ci*(v3(5))))
1706 $ +(f1(4)*(f2(5)*(v3(4)-ci*(v3(5)))+f2(6)*(v3(3)-v3(6)))
1707 $ +(f1(5)*(f2(3)*(v3(3)-v3(6))-f2(4)*(v3(4)+ci*(v3(5))))
1708 $ +f1(6)*(f2(3)*(+ci*(v3(5))-v3(4))+f2(4)*(v3(3)+v3(6))))))
1709 vertex = coup*(-ci) * tmp15
1716 SUBROUTINE ffv1_1(F2, V3, COUP, M1, W1,F1)
1719 parameter(ci=(0d0,1d0))
1728 f1(1) = +f2(1)+v3(1)
1729 f1(2) = +f2(2)+v3(2)
1730 p1(0) = -dble(f1(1))
1731 p1(1) = -dble(f1(2))
1732 p1(2) = -dimag(f1(2))
1733 p1(3) = -dimag(f1(1))
1734 denom = coup/(p1(0)**2-p1(1)**2-p1(2)**2-p1(3)**2 - m1 * (m1
1736 f1(3)= denom*ci*(f2(3)*(p1(0)*(v3(6)-v3(3))+(p1(1)*(v3(4)
1737 $ -ci*(v3(5)))+(p1(2)*(v3(5)+ci*(v3(4)))+p1(3)*(v3(6)-v3(3)))))
1738 $ +(f2(4)*(p1(0)*(v3(4)+ci*(v3(5)))+(p1(1)*(-1d0)*(v3(3)+v3(6))
1739 $ +(p1(2)*(-1d0)*(+ci*(v3(3)+v3(6)))+p1(3)*(v3(4)+ci*(v3(5))))))
1740 $ +m1*(f2(5)*(v3(3)+v3(6))+f2(6)*(v3(4)+ci*(v3(5))))))
1741 f1(4)= denom*(-ci)*(f2(3)*(p1(0)*(+ci*(v3(5))-v3(4))+(p1(1)*(v3(3)
1742 $ -v3(6))+(p1(2)*(-ci*(v3(3))+ci*(v3(6)))+p1(3)*(v3(4)-ci
1743 $ *(v3(5))))))+(f2(4)*(p1(0)*(v3(3)+v3(6))+(p1(1)*(-1d0)*(v3(4)
1744 $ +ci*(v3(5)))+(p1(2)*(+ci*(v3(4))-v3(5))-p1(3)*(v3(3)+v3(6)))))
1745 $ +m1*(f2(5)*(+ci*(v3(5))-v3(4))+f2(6)*(v3(6)-v3(3)))))
1746 f1(5)= denom*(-ci)*(f2(5)*(p1(0)*(v3(3)+v3(6))+(p1(1)*(+ci*(v3(5))
1747 $ -v3(4))+(p1(2)*(-1d0)*(v3(5)+ci*(v3(4)))-p1(3)*(v3(3)+v3(6)))))
1748 $ +(f2(6)*(p1(0)*(v3(4)+ci*(v3(5)))+(p1(1)*(v3(6)-v3(3))
1749 $ +(p1(2)*(-ci*(v3(3))+ci*(v3(6)))-p1(3)*(v3(4)+ci*(v3(5))))))
1750 $ +m1*(f2(3)*(v3(6)-v3(3))+f2(4)*(v3(4)+ci*(v3(5))))))
1751 f1(6)= denom*ci*(f2(5)*(p1(0)*(+ci*(v3(5))-v3(4))+(p1(1)*(v3(3)
1752 $ +v3(6))+(p1(2)*(-1d0)*(+ci*(v3(3)+v3(6)))+p1(3)*(+ci*(v3(5))
1753 $ -v3(4)))))+(f2(6)*(p1(0)*(v3(6)-v3(3))+(p1(1)*(v3(4)+ci
1754 $ *(v3(5)))+(p1(2)*(v3(5)-ci*(v3(4)))+p1(3)*(v3(6)-v3(3)))))
1755 $ +m1*(f2(3)*(+ci*(v3(5))-v3(4))+f2(4)*(v3(3)+v3(6)))))
1764 SUBROUTINE ffv1_2(F1, V3, COUP, M2, W2,F2)
1767 parameter(ci=(0d0,1d0))
1776 f2(1) = +f1(1)+v3(1)
1777 f2(2) = +f1(2)+v3(2)
1778 p2(0) = -dble(f2(1))
1779 p2(1) = -dble(f2(2))
1780 p2(2) = -dimag(f2(2))
1781 p2(3) = -dimag(f2(1))
1782 denom = coup/(p2(0)**2-p2(1)**2-p2(2)**2-p2(3)**2 - m2 * (m2
1784 f2(3)= denom*ci*(f1(3)*(p2(0)*(v3(3)+v3(6))+(p2(1)*(-1d0)*(v3(4)
1785 $ +ci*(v3(5)))+(p2(2)*(+ci*(v3(4))-v3(5))-p2(3)*(v3(3)+v3(6)))))
1786 $ +(f1(4)*(p2(0)*(v3(4)-ci*(v3(5)))+(p2(1)*(v3(6)-v3(3))
1787 $ +(p2(2)*(-ci*(v3(6))+ci*(v3(3)))+p2(3)*(+ci*(v3(5))-v3(4)))))
1788 $ +m2*(f1(5)*(v3(3)-v3(6))+f1(6)*(+ci*(v3(5))-v3(4)))))
1789 f2(4)= denom*(-ci)*(f1(3)*(p2(0)*(-1d0)*(v3(4)+ci*(v3(5)))+(p2(1)
1790 $ *(v3(3)+v3(6))+(p2(2)*(+ci*(v3(3)+v3(6)))-p2(3)*(v3(4)
1791 $ +ci*(v3(5))))))+(f1(4)*(p2(0)*(v3(6)-v3(3))+(p2(1)*(v3(4)
1792 $ -ci*(v3(5)))+(p2(2)*(v3(5)+ci*(v3(4)))+p2(3)*(v3(6)-v3(3)))))
1793 $ +m2*(f1(5)*(v3(4)+ci*(v3(5)))-f1(6)*(v3(3)+v3(6)))))
1794 f2(5)= denom*(-ci)*(f1(5)*(p2(0)*(v3(6)-v3(3))+(p2(1)*(v3(4)
1795 $ +ci*(v3(5)))+(p2(2)*(v3(5)-ci*(v3(4)))+p2(3)*(v3(6)-v3(3)))))
1796 $ +(f1(6)*(p2(0)*(v3(4)-ci*(v3(5)))+(p2(1)*(-1d0)*(v3(3)+v3(6))
1797 $ +(p2(2)*(+ci*(v3(3)+v3(6)))+p2(3)*(v3(4)-ci*(v3(5))))))
1798 $ +m2*(f1(3)*(-1d0)*(v3(3)+v3(6))+f1(4)*(+ci*(v3(5))-v3(4)))))
1799 f2(6)= denom*ci*(f1(5)*(p2(0)*(-1d0)*(v3(4)+ci*(v3(5)))+(p2(1)
1800 $ *(v3(3)-v3(6))+(p2(2)*(-ci*(v3(6))+ci*(v3(3)))+p2(3)*(v3(4)
1801 $ +ci*(v3(5))))))+(f1(6)*(p2(0)*(v3(3)+v3(6))+(p2(1)*(+ci*(v3(5))
1802 $ -v3(4))+(p2(2)*(-1d0)*(v3(5)+ci*(v3(4)))-p2(3)*(v3(3)+v3(6)))))
1803 $ +m2*(f1(3)*(v3(4)+ci*(v3(5)))+f1(4)*(v3(3)-v3(6)))))
1810 SUBROUTINE ffv1p0_3(F1, F2, COUP, M3, W3,V3)
1813 parameter(ci=(0d0,1d0))
1822 v3(1) = +f1(1)+f2(1)
1823 v3(2) = +f1(2)+f2(2)
1824 p3(0) = -dble(v3(1))
1825 p3(1) = -dble(v3(2))
1826 p3(2) = -dimag(v3(2))
1827 p3(3) = -dimag(v3(1))
1828 denom = coup/(p3(0)**2-p3(1)**2-p3(2)**2-p3(3)**2 - m3 * (m3
1830 v3(3)= denom*(-ci)*(f2(5)*f1(3)+f2(6)*f1(4)+f2(3)*f1(5)+f2(4)
1832 v3(4)= denom*(-ci)*(f2(4)*f1(5)+f2(3)*f1(6)-f2(6)*f1(3)-f2(5)
1834 v3(5)= denom*(-ci)*(-ci*(f2(6)*f1(3)+f2(3)*f1(6))+ci*(f2(5)*f1(4)
1836 v3(6)= denom*(-ci)*(f2(6)*f1(4)+f2(3)*f1(5)-f2(5)*f1(3)-f2(4)
1844 SUBROUTINE ffv2_0(F1, F2, V3, COUP,VERTEX)
1847 parameter(ci=(0d0,1d0))
1854 tmp13 = (f1(3)*(f2(5)*(v3(3)+v3(6))+f2(6)*(v3(4)+ci*(v3(5))))
1855 $ +f1(4)*(f2(5)*(v3(4)-ci*(v3(5)))+f2(6)*(v3(3)-v3(6))))
1856 vertex = coup*(-ci) * tmp13
1864 SUBROUTINE ffv2_5_0(F1, F2, V3, COUP1, COUP2,VERTEX)
1867 parameter(ci=(0d0,1d0))
1875 CALL ffv2_0(f1,f2,v3,coup1,vertex)
1876 CALL ffv5_0(f1,f2,v3,coup2,tmp)
1877 vertex = vertex + tmp
1885 SUBROUTINE ffv2_3_0(F1, F2, V3, COUP1, COUP2,VERTEX)
1888 parameter(ci=(0d0,1d0))
1896 CALL ffv2_0(f1,f2,v3,coup1,vertex)
1897 CALL ffv3_0(f1,f2,v3,coup2,tmp)
1898 vertex = vertex + tmp
1906 SUBROUTINE ffv2_4_0(F1, F2, V3, COUP1, COUP2,VERTEX)
1909 parameter(ci=(0d0,1d0))
1917 CALL ffv2_0(f1,f2,v3,coup1,vertex)
1918 CALL ffv4_0(f1,f2,v3,coup2,tmp)
1919 vertex = vertex + tmp
1926 SUBROUTINE ffv2_1(F2, V3, COUP, M1, W1,F1)
1929 parameter(ci=(0d0,1d0))
1938 f1(1) = +f2(1)+v3(1)
1939 f1(2) = +f2(2)+v3(2)
1940 p1(0) = -dble(f1(1))
1941 p1(1) = -dble(f1(2))
1942 p1(2) = -dimag(f1(2))
1943 p1(3) = -dimag(f1(1))
1944 denom = coup/(p1(0)**2-p1(1)**2-p1(2)**2-p1(3)**2 - m1 * (m1
1946 f1(3)= denom*ci * m1*(f2(5)*(v3(3)+v3(6))+f2(6)*(v3(4)+ci
1948 f1(4)= denom*(-ci) * m1*(f2(5)*(+ci*(v3(5))-v3(4))+f2(6)*(v3(6)
1950 f1(5)= denom*(-ci)*(f2(5)*(p1(0)*(v3(3)+v3(6))+(p1(1)*(+ci*(v3(5))
1951 $ -v3(4))+(p1(2)*(-1d0)*(v3(5)+ci*(v3(4)))-p1(3)*(v3(3)+v3(6)))))
1952 $ +f2(6)*(p1(0)*(v3(4)+ci*(v3(5)))+(p1(1)*(v3(6)-v3(3))+(p1(2)*(
1953 $ -ci*(v3(3))+ci*(v3(6)))-p1(3)*(v3(4)+ci*(v3(5)))))))
1954 f1(6)= denom*(-ci)*(f2(5)*(p1(0)*(v3(4)-ci*(v3(5)))+(p1(1)*
1955 $ (-1d0)*(v3(3)+v3(6))+(p1(2)*(+ci*(v3(3)+v3(6)))+p1(3)*(v3(4)
1956 $ -ci*(v3(5))))))+f2(6)*(p1(0)*(v3(3)-v3(6))+(p1(1)*(-1d0)*(v3(4)
1957 $ +ci*(v3(5)))+(p1(2)*(+ci*(v3(4))-v3(5))+p1(3)*(v3(3)-v3(6))))))
1965 SUBROUTINE ffv2_3_1(F2, V3, COUP1, COUP2, M1, W1,F1)
1968 parameter(ci=(0d0,1d0))
1980 CALL ffv2_1(f2,v3,coup1,m1,w1,f1)
1981 CALL ffv3_1(f2,v3,coup2,m1,w1,ftmp)
1983 f1(i) = f1(i) + ftmp(i)
1992 SUBROUTINE ffv2_4_1(F2, V3, COUP1, COUP2, M1, W1,F1)
1995 parameter(ci=(0d0,1d0))
2007 CALL ffv2_1(f2,v3,coup1,m1,w1,f1)
2008 CALL ffv4_1(f2,v3,coup2,m1,w1,ftmp)
2010 f1(i) = f1(i) + ftmp(i)
2019 SUBROUTINE ffv2_2(F1, V3, COUP, M2, W2,F2)
2022 parameter(ci=(0d0,1d0))
2031 f2(1) = +f1(1)+v3(1)
2032 f2(2) = +f1(2)+v3(2)
2033 p2(0) = -dble(f2(1))
2034 p2(1) = -dble(f2(2))
2035 p2(2) = -dimag(f2(2))
2036 p2(3) = -dimag(f2(1))
2037 denom = coup/(p2(0)**2-p2(1)**2-p2(2)**2-p2(3)**2 - m2 * (m2
2039 f2(3)= denom*ci*(f1(3)*(p2(0)*(v3(3)+v3(6))+(p2(1)*(-1d0)*(v3(4)
2040 $ +ci*(v3(5)))+(p2(2)*(+ci*(v3(4))-v3(5))-p2(3)*(v3(3)+v3(6)))))
2041 $ +f1(4)*(p2(0)*(v3(4)-ci*(v3(5)))+(p2(1)*(v3(6)-v3(3))+(p2(2)*(
2042 $ -ci*(v3(6))+ci*(v3(3)))+p2(3)*(+ci*(v3(5))-v3(4))))))
2043 f2(4)= denom*ci*(f1(3)*(p2(0)*(v3(4)+ci*(v3(5)))+(p2(1)*
2044 $ (-1d0)*(v3(3)+v3(6))+(p2(2)*(-1d0)*(+ci*(v3(3)+v3(6)))+p2(3)*(v3(
2045 $ +ci*(v3(5))))))+f1(4)*(p2(0)*(v3(3)-v3(6))+(p2(1)*(+ci*(v3(5))
2046 $ -v3(4))+(p2(2)*(-1d0)*(v3(5)+ci*(v3(4)))+p2(3)*(v3(3)-v3(6))))))
2047 f2(5)= denom*(-ci) * m2*(f1(3)*(-1d0)*(v3(3)+v3(6))+f1(4)*(
2048 $ +ci*(v3(5))-v3(4)))
2049 f2(6)= denom*ci * m2*(f1(3)*(v3(4)+ci*(v3(5)))+f1(4)*(v3(3)
2058 SUBROUTINE ffv2_5_2(F1, V3, COUP1, COUP2, M2, W2,F2)
2061 parameter(ci=(0d0,1d0))
2073 CALL ffv2_2(f1,v3,coup1,m2,w2,f2)
2074 CALL ffv5_2(f1,v3,coup2,m2,w2,ftmp)
2076 f2(i) = f2(i) + ftmp(i)
2085 SUBROUTINE ffv2_4_2(F1, V3, COUP1, COUP2, M2, W2,F2)
2088 parameter(ci=(0d0,1d0))
2100 CALL ffv2_2(f1,v3,coup1,m2,w2,f2)
2101 CALL ffv4_2(f1,v3,coup2,m2,w2,ftmp)
2103 f2(i) = f2(i) + ftmp(i)
2112 SUBROUTINE ffv2_3_2(F1, V3, COUP1, COUP2, M2, W2,F2)
2115 parameter(ci=(0d0,1d0))
2127 CALL ffv2_2(f1,v3,coup1,m2,w2,f2)
2128 CALL ffv3_2(f1,v3,coup2,m2,w2,ftmp)
2130 f2(i) = f2(i) + ftmp(i)
2139 SUBROUTINE ffv2_3(F1, F2, COUP, M3, W3,V3)
2142 parameter(ci=(0d0,1d0))
2154 IF (m3.NE.0d0) om3=1d0/m3**2
2155 v3(1) = +f1(1)+f2(1)
2156 v3(2) = +f1(2)+f2(2)
2157 p3(0) = -dble(v3(1))
2158 p3(1) = -dble(v3(2))
2159 p3(2) = -dimag(v3(2))
2160 p3(3) = -dimag(v3(1))
2161 tmp0 = (f1(3)*(f2(5)*(p3(0)+p3(3))+f2(6)*(p3(1)+ci*(p3(2))))
2162 $ +f1(4)*(f2(5)*(p3(1)-ci*(p3(2)))+f2(6)*(p3(0)-p3(3))))
2163 denom = coup/(p3(0)**2-p3(1)**2-p3(2)**2-p3(3)**2 - m3 * (m3
2165 v3(3)= denom*(-ci)*(f2(5)*f1(3)+f2(6)*f1(4)-p3(0)*om3*tmp0)
2166 v3(4)= denom*(-ci)*(-f2(6)*f1(3)-f2(5)*f1(4)-p3(1)*om3*tmp0)
2167 v3(5)= denom*(-ci)*(-ci*(f2(6)*f1(3))+ci*(f2(5)*f1(4))-p3(2)*om3
2169 v3(6)= denom*(-ci)*(f2(6)*f1(4)-f2(5)*f1(3)-p3(3)*om3*tmp0)
2177 SUBROUTINE ffv2_3_3(F1, F2, COUP1, COUP2, M3, W3,V3)
2180 parameter(ci=(0d0,1d0))
2193 CALL ffv2_3(f1,f2,coup1,m3,w3,v3)
2194 CALL ffv3_3(f1,f2,coup2,m3,w3,vtmp)
2196 v3(i) = v3(i) + vtmp(i)
2205 SUBROUTINE ffv2_5_3(F1, F2, COUP1, COUP2, M3, W3,V3)
2208 parameter(ci=(0d0,1d0))
2221 CALL ffv2_3(f1,f2,coup1,m3,w3,v3)
2222 CALL ffv5_3(f1,f2,coup2,m3,w3,vtmp)
2224 v3(i) = v3(i) + vtmp(i)
2233 SUBROUTINE ffv2_4_3(F1, F2, COUP1, COUP2, M3, W3,V3)
2236 parameter(ci=(0d0,1d0))
2249 CALL ffv2_3(f1,f2,coup1,m3,w3,v3)
2250 CALL ffv4_3(f1,f2,coup2,m3,w3,vtmp)
2252 v3(i) = v3(i) + vtmp(i)
2261 SUBROUTINE ffv3_0(F1, F2, V3, COUP,VERTEX)
2264 parameter(ci=(0d0,1d0))
2272 tmp14 = (f1(5)*(f2(3)*(v3(3)-v3(6))-f2(4)*(v3(4)+ci*(v3(5))))
2273 $ +f1(6)*(f2(3)*(+ci*(v3(5))-v3(4))+f2(4)*(v3(3)+v3(6))))
2274 tmp13 = (f1(3)*(f2(5)*(v3(3)+v3(6))+f2(6)*(v3(4)+ci*(v3(5))))
2275 $ +f1(4)*(f2(5)*(v3(4)-ci*(v3(5)))+f2(6)*(v3(3)-v3(6))))
2276 vertex = coup*(-ci*(tmp13)+2d0 * ci*(tmp14))
2284 SUBROUTINE ffv3_1(F2, V3, COUP, M1, W1,F1)
2287 parameter(ci=(0d0,1d0))
2296 f1(1) = +f2(1)+v3(1)
2297 f1(2) = +f2(2)+v3(2)
2298 p1(0) = -dble(f1(1))
2299 p1(1) = -dble(f1(2))
2300 p1(2) = -dimag(f1(2))
2301 p1(3) = -dimag(f1(1))
2302 denom = coup/(p1(0)**2-p1(1)**2-p1(2)**2-p1(3)**2 - m1 * (m1
2304 f1(3)= denom*(-2d0) * ci*(f2(3)*(p1(0)*(v3(6)-v3(3))+(p1(1)*(v3(4)
2305 $ -ci*(v3(5)))+(p1(2)*(v3(5)+ci*(v3(4)))+p1(3)*(v3(6)-v3(3)))))+(
2306 $ +1d0/2d0*(m1*(+2d0*(f2(5)*(-1d0)/2d0*(v3(3)+v3(6)))-f2(6)*(v3(4)
2307 $ +ci*(v3(5)))))+f2(4)*(p1(0)*(v3(4)+ci*(v3(5)))+(p1(1)*
2308 $ (-1d0)*(v3(3)+v3(6))+(p1(2)*(-1d0)*(+ci*(v3(3)+v3(6)))+p1(3)*(v3(
2310 f1(4)= denom*(-2d0) * ci*(f2(3)*(p1(0)*(v3(4)-ci*(v3(5)))
2311 $ +(p1(1)*(v3(6)-v3(3))+(p1(2)*(-ci*(v3(6))+ci*(v3(3)))+p1(3)*(
2312 $ +ci*(v3(5))-v3(4)))))+(+1d0/2d0*(m1*(f2(6)*(v3(6)-v3(3))
2313 $ +2d0*(f2(5)*1d0/2d0*(+ci*(v3(5))-v3(4)))))+f2(4)*(p1(0)*
2314 $ (-1d0)*(v3(3)+v3(6))+(p1(1)*(v3(4)+ci*(v3(5)))+(p1(2)*(v3(5)
2315 $ -ci*(v3(4)))+p1(3)*(v3(3)+v3(6)))))))
2316 f1(5)= denom*ci*(f2(5)*(p1(0)*(-1d0)*(v3(3)+v3(6))+(p1(1)*(v3(4)
2317 $ -ci*(v3(5)))+(p1(2)*(v3(5)+ci*(v3(4)))+p1(3)*(v3(3)+v3(6)))))
2318 $ +(f2(6)*(p1(0)*(-1d0)*(v3(4)+ci*(v3(5)))+(p1(1)*(v3(3)-v3(6))
2319 $ +(p1(2)*(-ci*(v3(6))+ci*(v3(3)))+p1(3)*(v3(4)+ci*(v3(5))))))
2320 $ +m1*(f2(3)*2d0*(v3(6)-v3(3))+2d0*(f2(4)*(v3(4)+ci*(v3(5)))))))
2321 f1(6)= denom*(-ci)*(f2(5)*(p1(0)*(v3(4)-ci*(v3(5)))+(p1(1)*
2322 $ (-1d0)*(v3(3)+v3(6))+(p1(2)*(+ci*(v3(3)+v3(6)))+p1(3)*(v3(4)
2323 $ -ci*(v3(5))))))+(f2(6)*(p1(0)*(v3(3)-v3(6))+(p1(1)*(-1d0)*(v3(4)
2324 $ +ci*(v3(5)))+(p1(2)*(+ci*(v3(4))-v3(5))+p1(3)*(v3(3)-v3(6)))))
2325 $ +m1*(f2(3)*2d0*(+ci*(v3(5))-v3(4))+2d0*(f2(4)*(v3(3)+v3(6))))))
2333 SUBROUTINE ffv3_2(F1, V3, COUP, M2, W2,F2)
2336 parameter(ci=(0d0,1d0))
2345 f2(1) = +f1(1)+v3(1)
2346 f2(2) = +f1(2)+v3(2)
2347 p2(0) = -dble(f2(1))
2348 p2(1) = -dble(f2(2))
2349 p2(2) = -dimag(f2(2))
2350 p2(3) = -dimag(f2(1))
2351 denom = coup/(p2(0)**2-p2(1)**2-p2(2)**2-p2(3)**2 - m2 * (m2
2353 f2(3)= denom*ci*(f1(3)*(p2(0)*(v3(3)+v3(6))+(p2(1)*(-1d0)*(v3(4)
2354 $ +ci*(v3(5)))+(p2(2)*(+ci*(v3(4))-v3(5))-p2(3)*(v3(3)+v3(6)))))
2355 $ +(f1(4)*(p2(0)*(v3(4)-ci*(v3(5)))+(p2(1)*(v3(6)-v3(3))
2356 $ +(p2(2)*(-ci*(v3(6))+ci*(v3(3)))+p2(3)*(+ci*(v3(5))-v3(4)))))
2357 $ +m2*(f1(5)*2d0*(v3(6)-v3(3))+2d0*(f1(6)*(v3(4)-ci*(v3(5)))))))
2358 f2(4)= denom*ci*(f1(3)*(p2(0)*(v3(4)+ci*(v3(5)))+(p2(1)*
2359 $ (-1d0)*(v3(3)+v3(6))+(p2(2)*(-1d0)*(+ci*(v3(3)+v3(6)))+p2(3)*(v3(
2360 $ +ci*(v3(5))))))+(f1(4)*(p2(0)*(v3(3)-v3(6))+(p2(1)*(+ci*(v3(5))
2361 $ -v3(4))+(p2(2)*(-1d0)*(v3(5)+ci*(v3(4)))+p2(3)*(v3(3)-v3(6)))))
2362 $ +m2*(f1(5)*2d0*(v3(4)+ci*(v3(5)))-2d0*(f1(6)*(v3(3)+v3(6))))))
2363 f2(5)= denom*2d0 * ci*(f1(5)*(p2(0)*(v3(6)-v3(3))+(p2(1)*(v3(4)
2364 $ +ci*(v3(5)))+(p2(2)*(v3(5)-ci*(v3(4)))+p2(3)*(v3(6)-v3(3)))))+(
2365 $ +1d0/2d0*(m2*(f1(4)*(v3(4)-ci*(v3(5)))+2d0*(f1(3)*1d0/2d0
2366 $ *(v3(3)+v3(6)))))+f1(6)*(p2(0)*(v3(4)-ci*(v3(5)))+(p2(1)*
2367 $ (-1d0)*(v3(3)+v3(6))+(p2(2)*(+ci*(v3(3)+v3(6)))+p2(3)*(v3(4)
2369 f2(6)= denom*2d0 * ci*(f1(5)*(p2(0)*(v3(4)+ci*(v3(5)))+(p2(1)
2370 $ *(v3(6)-v3(3))+(p2(2)*(-ci*(v3(3))+ci*(v3(6)))-p2(3)*(v3(4)
2371 $ +ci*(v3(5))))))+(+1d0/2d0*(m2*(f1(4)*(v3(3)-v3(6))+2d0*(f1(3)
2372 $ *1d0/2d0*(v3(4)+ci*(v3(5))))))+f1(6)*(p2(0)*(-1d0)*(v3(3)+v3(6))
2373 $ +(p2(1)*(v3(4)-ci*(v3(5)))+(p2(2)*(v3(5)+ci*(v3(4)))+p2(3)
2374 $ *(v3(3)+v3(6)))))))
2382 SUBROUTINE ffv3_3(F1, F2, COUP, M3, W3,V3)
2385 parameter(ci=(0d0,1d0))
2398 IF (m3.NE.0d0) om3=1d0/m3**2
2399 v3(1) = +f1(1)+f2(1)
2400 v3(2) = +f1(2)+f2(2)
2401 p3(0) = -dble(v3(1))
2402 p3(1) = -dble(v3(2))
2403 p3(2) = -dimag(v3(2))
2404 p3(3) = -dimag(v3(1))
2405 tmp1 = (f1(5)*(f2(3)*(p3(0)-p3(3))-f2(4)*(p3(1)+ci*(p3(2))))
2406 $ +f1(6)*(f2(3)*(+ci*(p3(2))-p3(1))+f2(4)*(p3(0)+p3(3))))
2407 tmp0 = (f1(3)*(f2(5)*(p3(0)+p3(3))+f2(6)*(p3(1)+ci*(p3(2))))
2408 $ +f1(4)*(f2(5)*(p3(1)-ci*(p3(2)))+f2(6)*(p3(0)-p3(3))))
2409 denom = coup/(p3(0)**2-p3(1)**2-p3(2)**2-p3(3)**2 - m3 * (m3
2411 v3(3)= denom*2d0 * ci*(om3*1d0/2d0 * p3(0)*(tmp0-2d0*(tmp1))
2412 $ +(-1d0/2d0*(f2(5)*f1(3)+f2(6)*f1(4))+f2(3)*f1(5)+f2(4)*f1(6)))
2413 v3(4)= denom*2d0 * ci*(om3*1d0/2d0 * p3(1)*(tmp0-2d0*(tmp1))+(
2414 $ +1d0/2d0*(f2(6)*f1(3)+f2(5)*f1(4))+f2(4)*f1(5)+f2(3)*f1(6)))
2415 v3(5)= denom*(-2d0) * ci*(om3*1d0/2d0 * p3(2)*(+2d0*(tmp1)-tmp0)
2416 $ +(-1d0/2d0 * ci*(f2(6)*f1(3))+1d0/2d0 * ci*(f2(5)*f1(4))
2417 $ -ci*(f2(4)*f1(5))+ci*(f2(3)*f1(6))))
2418 v3(6)= denom*(-2d0) * ci*(om3*1d0/2d0 * p3(3)*(+2d0*(tmp1)-tmp0)
2419 $ +(-1d0/2d0*(f2(5)*f1(3))+1d0/2d0*(f2(6)*f1(4))-f2(3)*f1(5)
2428 SUBROUTINE ffv4_0(F1, F2, V3, COUP,VERTEX)
2431 parameter(ci=(0d0,1d0))
2439 tmp14 = (f1(5)*(f2(3)*(v3(3)-v3(6))-f2(4)*(v3(4)+ci*(v3(5))))
2440 $ +f1(6)*(f2(3)*(+ci*(v3(5))-v3(4))+f2(4)*(v3(3)+v3(6))))
2441 tmp13 = (f1(3)*(f2(5)*(v3(3)+v3(6))+f2(6)*(v3(4)+ci*(v3(5))))
2442 $ +f1(4)*(f2(5)*(v3(4)-ci*(v3(5)))+f2(6)*(v3(3)-v3(6))))
2443 vertex = coup*(-1d0)*(+ci*(tmp13)+2d0 * ci*(tmp14))
2451 SUBROUTINE ffv4_1(F2, V3, COUP, M1, W1,F1)
2454 parameter(ci=(0d0,1d0))
2463 f1(1) = +f2(1)+v3(1)
2464 f1(2) = +f2(2)+v3(2)
2465 p1(0) = -dble(f1(1))
2466 p1(1) = -dble(f1(2))
2467 p1(2) = -dimag(f1(2))
2468 p1(3) = -dimag(f1(1))
2469 denom = coup/(p1(0)**2-p1(1)**2-p1(2)**2-p1(3)**2 - m1 * (m1
2471 f1(3)= denom*2d0 * ci*(f2(3)*(p1(0)*(v3(6)-v3(3))+(p1(1)*(v3(4)
2472 $ -ci*(v3(5)))+(p1(2)*(v3(5)+ci*(v3(4)))+p1(3)*(v3(6)-v3(3)))))+(
2473 $ +1d0/2d0*(m1*(f2(6)*(v3(4)+ci*(v3(5)))+2d0*(f2(5)*1d0/2d0
2474 $ *(v3(3)+v3(6)))))+f2(4)*(p1(0)*(v3(4)+ci*(v3(5)))+(p1(1)*
2475 $ (-1d0)*(v3(3)+v3(6))+(p1(2)*(-1d0)*(+ci*(v3(3)+v3(6)))+p1(3)*(v3(
2477 f1(4)= denom*2d0 * ci*(f2(3)*(p1(0)*(v3(4)-ci*(v3(5)))+(p1(1)
2478 $ *(v3(6)-v3(3))+(p1(2)*(-ci*(v3(6))+ci*(v3(3)))+p1(3)*(
2479 $ +ci*(v3(5))-v3(4)))))+(+1d0/2d0*(m1*(f2(6)*(v3(3)-v3(6))
2480 $ +2d0*(f2(5)*1d0/2d0*(v3(4)-ci*(v3(5))))))+f2(4)*(p1(0)*
2481 $ (-1d0)*(v3(3)+v3(6))+(p1(1)*(v3(4)+ci*(v3(5)))+(p1(2)*(v3(5)
2482 $ -ci*(v3(4)))+p1(3)*(v3(3)+v3(6)))))))
2483 f1(5)= denom*(-ci)*(f2(5)*(p1(0)*(v3(3)+v3(6))+(p1(1)*(+ci*(v3(5))
2484 $ -v3(4))+(p1(2)*(-1d0)*(v3(5)+ci*(v3(4)))-p1(3)*(v3(3)+v3(6)))))
2485 $ +(f2(6)*(p1(0)*(v3(4)+ci*(v3(5)))+(p1(1)*(v3(6)-v3(3))
2486 $ +(p1(2)*(-ci*(v3(3))+ci*(v3(6)))-p1(3)*(v3(4)+ci*(v3(5))))))
2487 $ +m1*(f2(3)*2d0*(v3(6)-v3(3))+2d0*(f2(4)*(v3(4)+ci*(v3(5)))))))
2488 f1(6)= denom*ci*(f2(5)*(p1(0)*(+ci*(v3(5))-v3(4))+(p1(1)*(v3(3)
2489 $ +v3(6))+(p1(2)*(-1d0)*(+ci*(v3(3)+v3(6)))+p1(3)*(+ci*(v3(5))
2490 $ -v3(4)))))+(f2(6)*(p1(0)*(v3(6)-v3(3))+(p1(1)*(v3(4)+ci
2491 $ *(v3(5)))+(p1(2)*(v3(5)-ci*(v3(4)))+p1(3)*(v3(6)-v3(3)))))
2492 $ +m1*(f2(3)*2d0*(+ci*(v3(5))-v3(4))+2d0*(f2(4)*(v3(3)+v3(6))))))
2500 SUBROUTINE ffv4_2(F1, V3, COUP, M2, W2,F2)
2503 parameter(ci=(0d0,1d0))
2512 f2(1) = +f1(1)+v3(1)
2513 f2(2) = +f1(2)+v3(2)
2514 p2(0) = -dble(f2(1))
2515 p2(1) = -dble(f2(2))
2516 p2(2) = -dimag(f2(2))
2517 p2(3) = -dimag(f2(1))
2518 denom = coup/(p2(0)**2-p2(1)**2-p2(2)**2-p2(3)**2 - m2 * (m2
2520 f2(3)= denom*ci*(f1(3)*(p2(0)*(v3(3)+v3(6))+(p2(1)*(-1d0)*(v3(4)
2521 $ +ci*(v3(5)))+(p2(2)*(+ci*(v3(4))-v3(5))-p2(3)*(v3(3)+v3(6)))))
2522 $ +(f1(4)*(p2(0)*(v3(4)-ci*(v3(5)))+(p2(1)*(v3(6)-v3(3))
2523 $ +(p2(2)*(-ci*(v3(6))+ci*(v3(3)))+p2(3)*(+ci*(v3(5))-v3(4)))))
2524 $ +m2*(f1(5)*2d0*(v3(3)-v3(6))+2d0*(f1(6)*(+ci*(v3(5))-v3(4))))))
2525 f2(4)= denom*ci*(f1(3)*(p2(0)*(v3(4)+ci*(v3(5)))+(p2(1)*
2526 $ (-1d0)*(v3(3)+v3(6))+(p2(2)*(-1d0)*(+ci*(v3(3)+v3(6)))+p2(3)*(v3(
2527 $ +ci*(v3(5))))))+(f1(4)*(p2(0)*(v3(3)-v3(6))+(p2(1)*(+ci*(v3(5))
2528 $ -v3(4))+(p2(2)*(-1d0)*(v3(5)+ci*(v3(4)))+p2(3)*(v3(3)-v3(6)))))
2529 $ +m2*(f1(5)*(-2d0)*(v3(4)+ci*(v3(5)))+2d0*(f1(6)*(v3(3)+v3(6))))))
2530 f2(5)= denom*(-2d0) * ci*(f1(5)*(p2(0)*(v3(6)-v3(3))+(p2(1)*(v3(4)
2531 $ +ci*(v3(5)))+(p2(2)*(v3(5)-ci*(v3(4)))+p2(3)*(v3(6)-v3(3)))))+(
2532 $ +1d0/2d0*(m2*(f1(4)*(+ci*(v3(5))-v3(4))+2d0*(f1(3)*(-1d0)/2d0
2533 $ *(v3(3)+v3(6)))))+f1(6)*(p2(0)*(v3(4)-ci*(v3(5)))+(p2(1)*
2534 $ (-1d0)*(v3(3)+v3(6))+(p2(2)*(+ci*(v3(3)+v3(6)))+p2(3)*(v3(4)
2536 f2(6)= denom*(-2d0) * ci*(f1(5)*(p2(0)*(v3(4)+ci*(v3(5)))
2537 $ +(p2(1)*(v3(6)-v3(3))+(p2(2)*(-ci*(v3(3))+ci*(v3(6)))-p2(3)
2538 $ *(v3(4)+ci*(v3(5))))))+(+1d0/2d0*(m2*(f1(4)*(v3(6)-v3(3))
2539 $ +2d0*(f1(3)*(-1d0)/2d0*(v3(4)+ci*(v3(5))))))+f1(6)*(p2(0)*
2540 $ (-1d0)*(v3(3)+v3(6))+(p2(1)*(v3(4)-ci*(v3(5)))+(p2(2)*(v3(5)
2541 $ +ci*(v3(4)))+p2(3)*(v3(3)+v3(6)))))))
2549 SUBROUTINE ffv4_3(F1, F2, COUP, M3, W3,V3)
2552 parameter(ci=(0d0,1d0))
2565 IF (m3.NE.0d0) om3=1d0/m3**2
2566 v3(1) = +f1(1)+f2(1)
2567 v3(2) = +f1(2)+f2(2)
2568 p3(0) = -dble(v3(1))
2569 p3(1) = -dble(v3(2))
2570 p3(2) = -dimag(v3(2))
2571 p3(3) = -dimag(v3(1))
2572 tmp1 = (f1(5)*(f2(3)*(p3(0)-p3(3))-f2(4)*(p3(1)+ci*(p3(2))))
2573 $ +f1(6)*(f2(3)*(+ci*(p3(2))-p3(1))+f2(4)*(p3(0)+p3(3))))
2574 tmp0 = (f1(3)*(f2(5)*(p3(0)+p3(3))+f2(6)*(p3(1)+ci*(p3(2))))
2575 $ +f1(4)*(f2(5)*(p3(1)-ci*(p3(2)))+f2(6)*(p3(0)-p3(3))))
2576 denom = coup/(p3(0)**2-p3(1)**2-p3(2)**2-p3(3)**2 - m3 * (m3
2578 v3(3)= denom*(-2d0) * ci*(om3*(-1d0)/2d0 * p3(0)*(tmp0+2d0*(tmp1))
2579 $ +1d0/2d0*(f2(5)*f1(3)+f2(6)*f1(4))+f2(3)*f1(5)+f2(4)*f1(6)))
2580 v3(4)= denom*(-2d0) * ci*(om3*(-1d0)/2d0 * p3(1)*(tmp0+2d0*(tmp1))
2581 $ +(-1d0/2d0*(f2(6)*f1(3)+f2(5)*f1(4))+f2(4)*f1(5)+f2(3)*f1(6)))
2582 v3(5)= denom*2d0 * ci*(om3*1d0/2d0 * p3(2)*(tmp0+2d0*(tmp1))+(
2583 $ +1d0/2d0 * ci*(f2(6)*f1(3))-1d0/2d0 * ci*(f2(5)*f1(4))
2584 $ -ci*(f2(4)*f1(5))+ci*(f2(3)*f1(6))))
2585 v3(6)= denom*2d0 * ci*(om3*1d0/2d0 * p3(3)*(tmp0+2d0*(tmp1))+(
2586 $ +1d0/2d0*(f2(5)*f1(3))-1d0/2d0*(f2(6)*f1(4))-f2(3)*f1(5)
2595 SUBROUTINE ffv5_0(F1, F2, V3, COUP,VERTEX)
2598 parameter(ci=(0d0,1d0))
2606 tmp14 = (f1(5)*(f2(3)*(v3(3)-v3(6))-f2(4)*(v3(4)+ci*(v3(5))))
2607 $ +f1(6)*(f2(3)*(+ci*(v3(5))-v3(4))+f2(4)*(v3(3)+v3(6))))
2608 tmp13 = (f1(3)*(f2(5)*(v3(3)+v3(6))+f2(6)*(v3(4)+ci*(v3(5))))
2609 $ +f1(4)*(f2(5)*(v3(4)-ci*(v3(5)))+f2(6)*(v3(3)-v3(6))))
2610 vertex = coup*(-1d0)*(+ci*(tmp13)+4d0 * ci*(tmp14))
2617 SUBROUTINE ffv5_2(F1, V3, COUP, M2, W2,F2)
2620 parameter(ci=(0d0,1d0))
2629 f2(1) = +f1(1)+v3(1)
2630 f2(2) = +f1(2)+v3(2)
2631 p2(0) = -dble(f2(1))
2632 p2(1) = -dble(f2(2))
2633 p2(2) = -dimag(f2(2))
2634 p2(3) = -dimag(f2(1))
2635 denom = coup/(p2(0)**2-p2(1)**2-p2(2)**2-p2(3)**2 - m2 * (m2
2637 f2(3)= denom*ci*(f1(3)*(p2(0)*(v3(3)+v3(6))+(p2(1)*(-1d0)*(v3(4)
2638 $ +ci*(v3(5)))+(p2(2)*(+ci*(v3(4))-v3(5))-p2(3)*(v3(3)+v3(6)))))
2639 $ +(f1(4)*(p2(0)*(v3(4)-ci*(v3(5)))+(p2(1)*(v3(6)-v3(3))
2640 $ +(p2(2)*(-ci*(v3(6))+ci*(v3(3)))+p2(3)*(+ci*(v3(5))-v3(4)))))
2641 $ +m2*(f1(5)*4d0*(v3(3)-v3(6))+4d0*(f1(6)*(+ci*(v3(5))-v3(4))))))
2642 f2(4)= denom*ci*(f1(3)*(p2(0)*(v3(4)+ci*(v3(5)))+(p2(1)*
2643 $ (-1d0)*(v3(3)+v3(6))+(p2(2)*(-1d0)*(+ci*(v3(3)+v3(6)))+p2(3)*(v3(
2644 $ +ci*(v3(5))))))+(f1(4)*(p2(0)*(v3(3)-v3(6))+(p2(1)*(+ci*(v3(5))
2645 $ -v3(4))+(p2(2)*(-1d0)*(v3(5)+ci*(v3(4)))+p2(3)*(v3(3)-v3(6)))))
2646 $ +m2*(f1(5)*(-4d0)*(v3(4)+ci*(v3(5)))+4d0*(f1(6)*(v3(3)+v3(6))))))
2647 f2(5)= denom*(-4d0) * ci*(f1(5)*(p2(0)*(v3(6)-v3(3))+(p2(1)*(v3(4)
2648 $ +ci*(v3(5)))+(p2(2)*(v3(5)-ci*(v3(4)))+p2(3)*(v3(6)-v3(3)))))+(
2649 $ +1d0/4d0*(m2*(f1(4)*(+ci*(v3(5))-v3(4))+4d0*(f1(3)*(-1d0)/4d0
2650 $ *(v3(3)+v3(6)))))+f1(6)*(p2(0)*(v3(4)-ci*(v3(5)))+(p2(1)*
2651 $ (-1d0)*(v3(3)+v3(6))+(p2(2)*(+ci*(v3(3)+v3(6)))+p2(3)*(v3(4)
2653 f2(6)= denom*(-4d0) * ci*(f1(5)*(p2(0)*(v3(4)+ci*(v3(5)))
2654 $ +(p2(1)*(v3(6)-v3(3))+(p2(2)*(-ci*(v3(3))+ci*(v3(6)))-p2(3)
2655 $ *(v3(4)+ci*(v3(5))))))+(+1d0/4d0*(m2*(f1(4)*(v3(6)-v3(3))
2656 $ +4d0*(f1(3)*(-1d0)/4d0*(v3(4)+ci*(v3(5))))))+f1(6)*(p2(0)*
2657 $ (-1d0)*(v3(3)+v3(6))+(p2(1)*(v3(4)-ci*(v3(5)))+(p2(2)*(v3(5)
2658 $ +ci*(v3(4)))+p2(3)*(v3(3)+v3(6)))))))
2666 SUBROUTINE ffv5_3(F1, F2, COUP, M3, W3,V3)
2669 parameter(ci=(0d0,1d0))
2682 IF (m3.NE.0d0) om3=1d0/m3**2
2683 v3(1) = +f1(1)+f2(1)
2684 v3(2) = +f1(2)+f2(2)
2685 p3(0) = -dble(v3(1))
2686 p3(1) = -dble(v3(2))
2687 p3(2) = -dimag(v3(2))
2688 p3(3) = -dimag(v3(1))
2689 tmp1 = (f1(5)*(f2(3)*(p3(0)-p3(3))-f2(4)*(p3(1)+ci*(p3(2))))
2690 $ +f1(6)*(f2(3)*(+ci*(p3(2))-p3(1))+f2(4)*(p3(0)+p3(3))))
2691 tmp0 = (f1(3)*(f2(5)*(p3(0)+p3(3))+f2(6)*(p3(1)+ci*(p3(2))))
2692 $ +f1(4)*(f2(5)*(p3(1)-ci*(p3(2)))+f2(6)*(p3(0)-p3(3))))
2693 denom = coup/(p3(0)**2-p3(1)**2-p3(2)**2-p3(3)**2 - m3 * (m3
2695 v3(3)= denom*(-4d0) * ci*(om3*(-1d0)/4d0 * p3(0)*(tmp0+4d0*(tmp1))
2696 $ +1d0/4d0*(f2(5)*f1(3)+f2(6)*f1(4))+f2(3)*f1(5)+f2(4)*f1(6)))
2697 v3(4)= denom*(-4d0) * ci*(om3*(-1d0)/4d0 * p3(1)*(tmp0+4d0*(tmp1))
2698 $ +(-1d0/4d0*(f2(6)*f1(3)+f2(5)*f1(4))+f2(4)*f1(5)+f2(3)*f1(6)))
2699 v3(5)= denom*4d0 * ci*(om3*1d0/4d0 * p3(2)*(tmp0+4d0*(tmp1))+(
2700 $ +1d0/4d0 * ci*(f2(6)*f1(3))-1d0/4d0 * ci*(f2(5)*f1(4))
2701 $ -ci*(f2(4)*f1(5))+ci*(f2(3)*f1(6))))
2702 v3(6)= denom*4d0 * ci*(om3*1d0/4d0 * p3(3)*(tmp0+4d0*(tmp1))+(
2703 $ +1d0/4d0*(f2(5)*f1(3))-1d0/4d0*(f2(6)*f1(4))-f2(3)*f1(5)
2713 SUBROUTINE vvv1_0(V1, V2, V3, COUP,VERTEX)
2716 parameter(ci=(0d0,1d0))
2736 p1(2) = dimag(v1(2))
2737 p1(3) = dimag(v1(1))
2740 p2(2) = dimag(v2(2))
2741 p2(3) = dimag(v2(1))
2744 p3(2) = dimag(v3(2))
2745 p3(3) = dimag(v3(1))
2746 tmp9 = (p3(0)*v2(3)-p3(1)*v2(4)-p3(2)*v2(5)-p3(3)*v2(6))
2747 tmp8 = (v2(3)*p1(0)-v2(4)*p1(1)-v2(5)*p1(2)-v2(6)*p1(3))
2748 tmp2 = (v2(3)*v1(3)-v2(4)*v1(4)-v2(5)*v1(5)-v2(6)*v1(6))
2749 tmp5 = (v3(3)*p1(0)-v3(4)*p1(1)-v3(5)*p1(2)-v3(6)*p1(3))
2750 tmp7 = (v1(3)*v3(3)-v1(4)*v3(4)-v1(5)*v3(5)-v1(6)*v3(6))
2751 tmp6 = (v3(3)*p2(0)-v3(4)*p2(1)-v3(5)*p2(2)-v3(6)*p2(3))
2752 tmp11 = (v1(3)*p2(0)-v1(4)*p2(1)-v1(5)*p2(2)-v1(6)*p2(3))
2753 tmp10 = (v2(3)*v3(3)-v2(4)*v3(4)-v2(5)*v3(5)-v2(6)*v3(6))
2754 tmp12 = (p3(0)*v1(3)-p3(1)*v1(4)-p3(2)*v1(5)-p3(3)*v1(6))
2755 vertex = coup*(tmp10*(-ci*(tmp11)+ci*(tmp12))+(tmp2*(-ci*(tmp5)
2756 $ +ci*(tmp6))+tmp7*(-ci*(tmp9)+ci*(tmp8))))
2764 SUBROUTINE ffs4_3(F1, F2, COUP, M3, W3,S3)
2767 parameter(ci=(0d0,1d0))
2778 s3(1) = +f1(1)+f2(1)
2779 s3(2) = +f1(2)+f2(2)
2780 p3(0) = -dble(s3(1))
2781 p3(1) = -dble(s3(2))
2782 p3(2) = -dimag(s3(2))
2783 p3(3) = -dimag(s3(1))
2784 tmp4 = (f2(5)*f1(5)+f2(6)*f1(6))
2785 tmp3 = (f2(3)*f1(3)+f2(4)*f1(4))
2786 denom = coup/(p3(0)**2-p3(1)**2-p3(2)**2-p3(3)**2 - m3 * (m3
2788 s3(3)= denom*(+ci*(tmp3+tmp4))
2796 SUBROUTINE vvs1_0(V1, V2, S3, COUP,VERTEX)
2799 parameter(ci=(0d0,1d0))
2806 tmp2 = (v2(3)*v1(3)-v2(4)*v1(4)-v2(5)*v1(5)-v2(6)*v1(6))
2807 vertex = coup*(-ci) * tmp2*s3(3)
2814 SUBROUTINE ffv2_5_1(F2, V3, COUP1, COUP2, M1, W1,F1)
2817 parameter(ci=(0d0,1d0))
2829 CALL ffv2_1(f2,v3,coup1,m1,w1,f1)
2830 CALL ffv5_1(f2,v3,coup2,m1,w1,ftmp)
2832 f1(i) = f1(i) + ftmp(i)
2840 SUBROUTINE ffv5_1(F2, V3, COUP, M1, W1,F1)
2843 parameter(ci=(0d0,1d0))
2852 f1(1) = +f2(1)+v3(1)
2853 f1(2) = +f2(2)+v3(2)
2854 p1(0) = -dble(f1(1))
2855 p1(1) = -dble(f1(2))
2856 p1(2) = -dimag(f1(2))
2857 p1(3) = -dimag(f1(1))
2858 denom = coup/(p1(0)**2-p1(1)**2-p1(2)**2-p1(3)**2 - m1 * (m1
2860 f1(3)= denom*4d0 * ci*(f2(3)*(p1(0)*(v3(6)-v3(3))+(p1(1)*(v3(4)
2861 $ -ci*(v3(5)))+(p1(2)*(v3(5)+ci*(v3(4)))+p1(3)*(v3(6)-v3(3)))))+(
2862 $ +1d0/4d0*(m1*(f2(6)*(v3(4)+ci*(v3(5)))+4d0*(f2(5)*1d0/4d0
2863 $ *(v3(3)+v3(6)))))+f2(4)*(p1(0)*(v3(4)+ci*(v3(5)))+(p1(1)*
2864 $ (-1d0)*(v3(3)+v3(6))+(p1(2)*(-1d0)*(+ci*(v3(3)+v3(6)))+p1(3)*(v3(
2866 f1(4)= denom*4d0 * ci*(f2(3)*(p1(0)*(v3(4)-ci*(v3(5)))+(p1(1)
2867 $ *(v3(6)-v3(3))+(p1(2)*(-ci*(v3(6))+ci*(v3(3)))+p1(3)*(
2868 $ +ci*(v3(5))-v3(4)))))+(+1d0/4d0*(m1*(f2(6)*(v3(3)-v3(6))
2869 $ +4d0*(f2(5)*1d0/4d0*(v3(4)-ci*(v3(5))))))+f2(4)*(p1(0)*
2870 $ (-1d0)*(v3(3)+v3(6))+(p1(1)*(v3(4)+ci*(v3(5)))+(p1(2)*(v3(5)
2871 $ -ci*(v3(4)))+p1(3)*(v3(3)+v3(6)))))))
2872 f1(5)= denom*(-ci)*(f2(5)*(p1(0)*(v3(3)+v3(6))+(p1(1)*(+ci*(v3(5))
2873 $ -v3(4))+(p1(2)*(-1d0)*(v3(5)+ci*(v3(4)))-p1(3)*(v3(3)+v3(6)))))
2874 $ +(f2(6)*(p1(0)*(v3(4)+ci*(v3(5)))+(p1(1)*(v3(6)-v3(3))
2875 $ +(p1(2)*(-ci*(v3(3))+ci*(v3(6)))-p1(3)*(v3(4)+ci*(v3(5))))))
2876 $ +m1*(f2(3)*4d0*(v3(6)-v3(3))+4d0*(f2(4)*(v3(4)+ci*(v3(5)))))))
2877 f1(6)= denom*ci*(f2(5)*(p1(0)*(+ci*(v3(5))-v3(4))+(p1(1)*(v3(3)
2878 $ +v3(6))+(p1(2)*(-1d0)*(+ci*(v3(3)+v3(6)))+p1(3)*(+ci*(v3(5))
2879 $ -v3(4)))))+(f2(6)*(p1(0)*(v3(6)-v3(3))+(p1(1)*(v3(4)+ci
2880 $ *(v3(5)))+(p1(2)*(v3(5)-ci*(v3(4)))+p1(3)*(v3(6)-v3(3)))))
2881 $ +m1*(f2(3)*4d0*(+ci*(v3(5))-v3(4))+4d0*(f2(4)*(v3(3)+v3(6))))))
2889 SUBROUTINE vvv1p0_1(V2, V3, COUP, M1, W1,V1)
2892 parameter(ci=(0d0,1d0))
2910 p2(2) = dimag(v2(2))
2911 p2(3) = dimag(v2(1))
2914 p3(2) = dimag(v3(2))
2915 p3(3) = dimag(v3(1))
2916 v1(1) = +v2(1)+v3(1)
2917 v1(2) = +v2(2)+v3(2)
2918 p1(0) = -dble(v1(1))
2919 p1(1) = -dble(v1(2))
2920 p1(2) = -dimag(v1(2))
2921 p1(3) = -dimag(v1(1))
2922 tmp14 = (v2(3)*v3(3)-v2(4)*v3(4)-v2(5)*v3(5)-v2(6)*v3(6))
2923 tmp12 = (p3(0)*v2(3)-p3(1)*v2(4)-p3(2)*v2(5)-p3(3)*v2(6))
2924 tmp9 = (v3(3)*p2(0)-v3(4)*p2(1)-v3(5)*p2(2)-v3(6)*p2(3))
2925 tmp8 = (v3(3)*p1(0)-v3(4)*p1(1)-v3(5)*p1(2)-v3(6)*p1(3))
2926 tmp10 = (v2(3)*p1(0)-v2(4)*p1(1)-v2(5)*p1(2)-v2(6)*p1(3))
2927 denom = coup/(p1(0)**2-p1(1)**2-p1(2)**2-p1(3)**2 - m1 * (m1
2929 v1(3)= denom*(tmp14*(-ci*(p2(0))+ci*(p3(0)))+(v2(3)*(-ci*(tmp8)
2930 $ +ci*(tmp9))+v3(3)*(-ci*(tmp12)+ci*(tmp10))))
2931 v1(4)= denom*(tmp14*(-ci*(p2(1))+ci*(p3(1)))+(v2(4)*(-ci*(tmp8)
2932 $ +ci*(tmp9))+v3(4)*(-ci*(tmp12)+ci*(tmp10))))
2933 v1(5)= denom*(tmp14*(-ci*(p2(2))+ci*(p3(2)))+(v2(5)*(-ci*(tmp8)
2934 $ +ci*(tmp9))+v3(5)*(-ci*(tmp12)+ci*(tmp10))))
2935 v1(6)= denom*(tmp14*(-ci*(p2(3))+ci*(p3(3)))+(v2(6)*(-ci*(tmp8)
2936 $ +ci*(tmp9))+v3(6)*(-ci*(tmp12)+ci*(tmp10))))