Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:13:37

0001 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

0002 c...first,second,third,fourth: get the matrix elements for four      c

0003 c...              group of basic helicity states.                    c

0004 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

0005 c copyright (c) z.x zhang, chafik driouich, paula eerola and x.g. wu c

0006 c reference: hep-ph/0309120                                          c

0007 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

0008 
0009 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

0010 c             nine basic functions from cb and cc sets.              c

0011 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

0012         subroutine bfirst
0013         implicit double precision (a-h,o-z)
0014         implicit integer (i-n)
0015         double complex bfun,colmat,yup,xup,inpup,bundamp
0016       common/upcom/ecm,pmbc,pmb,pmc,fbcc,pmomup(5,8),
0017      &  colmat(10,64),bundamp(4),pmomzero(5,8)
0018       common/tryup/bfun(9,4,64),yup(100),xup(2),idp,idq0,idk1,idk2,
0019      &  idb1,idb2,idc1,idc2
0020       common/counter/ibcstate,nev
0021 c...for transform the subprocess information, i.e.,  whether using

0022 c...the subprocess q\bar{q}->bc+b+\bar{c} to generate events.

0023       common/qqbar/iqqbar,iqcode
0024 
0025 c...(l1,l2,l3,l4=+\-) corresponding to the two helicity states of the particle.

0026        ii=1
0027 c...if (l1.eq.l2 .and. l3.eq.l4) then

0028 c...helicity(-l1,-l2,-l3,-l4,-l5,-l6)=dconjg(helicity(l1,l2,l3,l4,l5,l6))

0029 c...if (l1.eq.l2 .and. l3.ne.l4) then

0030 c...helicity(-l1,-l2,-l3,-l4,-l5,-l6)=-dconjg(helicity(l1,l2,l3,l4,l5,l6))

0031 c...if (l1.ne.l2 .and. l3.eq.l4) then

0032 c...helicity(-l1,-l2,-l3,-l4,-l5,-l6)=-dconjg(helicity(l1,l2,l3,l4,l5,l6))

0033 c...if (l1.ne.l2 .and. l3.ne.l4) then

0034 c...helicity(-l1,-l2,-l3,-l4,-l5,-l6)=dconjg(helicity(l1,l2,l3,l4,l5,l6))

0035 
0036 c...for short, we take the notation: helicity(q_b1,q_b2,q_c1,q_c2,k_1,k_2)=

0037 c...helicity(l1,l2,l3,l4,l5,l6)=m(l1,l2,l3,l4,l5,l6). 

0038 c...and helicity(kk)=helicity(kk,1) (kk=1-64).

0039 
0040 c...helicity(1)=m(+,+,+,+,+,+)

0041         kk=1
0042           if(iqqbar.eq.0) then
0043         bfun(1,ii,kk)=(4*yup(1)*(dotup(idb1,idb1)*((yup(11) - yup(12))
0044      -     *yup(19)*yup(27) +yup(10)*(-(dconjg(yup(5))*yup(5)) + 
0045      -     dconjg(yup(34))*yup(34))) + yup(10)*((-(dconjg(yup(24))*
0046      -     dconjg(yup(34))) +dconjg(yup(5))*yup(2))*yup(20) + 
0047      -     dconjg(yup(35))*dotup(idc1,idc1)*yup(35))))/xup(1)
0048         bfun(2,ii,kk)=(-4*(dotup(idb1,idb1)*yup(9)*(yup(11)*yup(19)*
0049      -     yup(27) + dconjg(yup(34))*yup(10)*yup(34)) +yup(10)* 
0050      -     (-(dconjg(yup(24))*dconjg(yup(34))*yup(9)*yup(20)) + 
0051      -     dotup(idc1,idc1)*(yup(2)*yup(29)*yup(31) + 
0052      -     dconjg(yup(35))*yup(9)*yup(35)))))/xup(1)
0053           bfun(3,ii,kk)=(4*yup(1)*yup(16)*((dconjg(yup(24))*
0054      -     dconjg(yup(34))+dconjg(yup(5))*(-yup(2)+yup(7)))*yup(20) + 
0055      -     dconjg(yup(17))*(dotup(idc1,idc1)*yup(17)-yup(11)*yup(32))+ 
0056      -     dotup(idb1,idb1)*(dconjg(yup(5))*yup(5) -dconjg(yup(34)) 
0057      -     *yup(34))-dconjg(yup(35))*dotup(idc1,idc1)*yup(35)))/xup(1)
0058           bfun(4,ii,kk)=(4*yup(16)*(yup(9)*(dconjg(yup(17))*yup(11)*
0059      -     yup(32) + dconjg(yup(34))*(-(dconjg(yup(24))*yup(20)) + 
0060      -     dotup(idb1,idb1)*yup(34))) +dotup(idc1,idc1)*((yup(2) -
0061      -     yup(7))*yup(29)*yup(31) +yup(9)*(-(dconjg(yup(17))*yup(17))+ 
0062      -     dconjg(yup(35))*yup(35)))))/xup(1)
0063           bfun(5,ii,kk)=(2*yup(1)*yup(16)*yup(27)*yup(29))/xup(1)
0064           bfun(8,ii,kk)=(-4*dotup(idc1,idc1)*yup(29)*(yup(9)*yup(16)*
0065      -     yup(19)+(yup(7)*yup(16) + yup(2)*(-yup(12) + yup(18)))*
0066      -     yup(31)) +4*dconjg(yup(34))*yup(9)*(yup(12) - yup(18))*
0067      -     (-(dconjg(yup(24))*yup(20)) +dotup(idb1,idb1)*yup(34))+ 
0068      -     4*dconjg(yup(35))*(dotup(idc1,idc1)*yup(9)*(yup(12)-yup(18))*
0069      -     yup(35) + 2*dconjg(inpup(idk2,idk1))*dotup(idc1,idk1)*
0070      -     inpup(idq0,idb1)*yup(27)*yup(36)))/xup(1)
0071           bfun(9,ii,kk)=0.0d0
0072 c...helicity(17)=(-,-,-,-,-,-)

0073         do mm=1,9
0074            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0075      &     dconjg(bfun(mm,ii,kk))
0076         end do
0077           end if
0078 
0079 c***********************************************************************

0080           if(iqqbar.eq.1) then
0081           bfun(1,ii,kk)=-4*(dotup(idb1,idb1)*(dotup(idc1,idc1)*yup(8)*
0082      -    yup(30) +dconjg(yup(34))*(-(dconjg(inpup(idq0,idk1))*
0083      -    dconjg(yup(24))*inpup(idc1,idk2))+dconjg(inpup(idc2,idk1))
0084      -    *inpup(idb1,idk2)*yup(43) + yup(5)*(yup(44) - yup(45)))) + 
0085      -    (-(dconjg(yup(24))*dconjg(yup(34))*yup(20)) +dconjg(yup(35)) 
0086      -    *dotup(idc1,idc1)*yup(35))*yup(46) + dconjg(yup(35))*
0087      -    (dconjg(yup(13))*dotup(idc1,idc1) -dconjg(yup(18))*yup(36))
0088      -    *yup(47))
0089         bfun(2,ii,kk)=4*(dconjg(yup(35))*(-(dconjg(inpup(idc2,idk1))
0090      -    *dconjg(yup(34))*inpup(idc1,idb1)) + dotup(idc1,idc1)*yup(6))
0091      -    *yup(48) + dotup(idb1,idb1)*(dconjg(yup(18))*yup(7)*yup(28) + 
0092      -    dotup(idc1,idc1)*yup(8)*yup(29) - dconjg(yup(34))*
0093      -    (dconjg(inpup(idq0,idc2))*inpup(idc1,idk2)* yup(2) + 
0094      -    dconjg(inpup(idc2,idk1))*inpup(idq0,idk2)*yup(20) - 
0095      -    dconjg(yup(14))*yup(49))) + (-(dconjg(yup(24))*dconjg(yup(34))
0096      -    *yup(20)) +dconjg(yup(35))*dotup(idc1,idc1)*yup(35))*yup(50))
0097         bfun(3,ii,kk)=-4*(-((-(dconjg(yup(10))*yup(2))+dotup(idb1,idb1)*
0098      -    yup(8))*(dconjg(yup(9))*yup(1) +dconjg(yup(18))*yup(11))) + 
0099      -    dconjg(yup(34))*(dconjg(inpup(idc2,idk1))*inpup(idc1,idk2)*
0100      -    (-(dconjg(yup(10))*yup(16))-yup(2)*yup(25)+dotup(idb1,idb1)*
0101      -    (yup(19)+yup(31)))+(-(dconjg(yup(24))*yup(20))+
0102      -    dotup(idb1,idb1) *yup(34))*(yup(46) + yup(50))) + 
0103      -    dotup(idc1,idc1)* (yup(2)*yup(8)*yup(25) + dconjg(yup(10))*
0104      -    (yup(8)*yup(16) - yup(2)*(yup(19) + yup(31)))
0105      -     + dconjg(yup(35))*yup(35)*(yup(46) + yup(50))))
0106         bfun(4,ii,kk)=4*(dotup(idb1,idb1)*(-(dotup(idc1,idc1)*
0107      -    (dconjg(inpup(idq0,idk1))**2*inpup(idq0,idk1)*inpup(idq0,idk2) 
0108      -    - dconjg(yup(13))*yup(3) -dconjg(yup(17))*yup(6))) + 
0109      -    dconjg(yup(34))*inpup(idc1,idk2)*(-(dconjg(inpup(idq0,idk1))*
0110      -    (dconjg(yup(23))+dconjg(yup(24)))) + dconjg(inpup(idc2,idk1))
0111      -    *yup(31))) +dconjg(yup(35))*(dotup(idc1,idc1)*
0112      -    (dconjg(inpup(idb2,idk1))*inpup(idq0,idk2)*yup(21) + 
0113      -    dconjg(yup(13))*yup(82)) +dconjg(yup(34))*inpup(idc1,idk2)*
0114      -    (-(dconjg(inpup(idc2,idk1))*yup(51))+dconjg(inpup(idb2,idk1))
0115      -    *yup(83))))
0116 c...helicity(17)=(-,-,-,-,-,-)

0117         do mm=1,4
0118             bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
0119         end do
0120           end if
0121 
0122 c...helicity(2)=m(+,+,+,+,+,-)

0123         kk=2
0124           if(iqqbar.eq.0) then
0125         bfun(1,ii,kk)=(4*dconjg(yup(10))*yup(1)*((-(dconjg(yup(24))
0126      -     *dconjg(yup(34))) +dconjg(yup(5))*yup(2))*yup(20) + 
0127      -     dotup(idb1,idb1)*(-(dconjg(yup(5))*yup(5))+dconjg(yup(34)) 
0128      -     *yup(34)) + dotup(idc1,idc1)*(-(dconjg(yup(13))*yup(13)) + 
0129      -     dconjg(yup(35))*yup(35)) + dconjg(yup(18))*yup(13)*
0130      -     (-dconjg(yup(38)) + yup(36))))/dconjg(yup(8))
0131         bfun(2,ii,kk)=(-4*dconjg(yup(10))*(dotup(idc1,idc1)*
0132      -     (yup(2)*(-yup(19)+yup(29))*yup(31)+yup(9)*(-(dconjg(yup(13))
0133      -     *yup(13))+dconjg(yup(35))*yup(35)))+yup(9)*(dconjg(yup(34))*
0134      -     (-(dconjg(yup(24))*yup(20)) +dotup(idb1,idb1)*yup(34)) + 
0135      -     dconjg(yup(18))*yup(13)*yup(36))))/dconjg(yup(8))
0136           bfun(3,ii,kk)=(-4*yup(1)*(dotup(idb1,idb1)*(dconjg(yup(18))
0137      -     *yup(19)*(yup(28) - yup(31)) + dconjg(yup(16))*
0138      -     (-(dconjg(yup(5))*yup(5)) + dconjg(yup(34))*yup(34))) + 
0139      -     dconjg(yup(16))*((-(dconjg(yup(24))*dconjg(yup(34))) + 
0140      -     dconjg(yup(5))*yup(2))*yup(20) + dconjg(yup(35))* 
0141      -     dotup(idc1,idc1)*yup(35))))/dconjg(yup(8))
0142           bfun(4,ii,kk)=(4*(dotup(idb1,idb1)*(dotup(idc1,idc1)
0143      -     *yup(8)*yup(19)*yup(31)+yup(9)*(dconjg(yup(18))*yup(19)
0144      -     *yup(28) +dconjg(yup(16))*dconjg(yup(34))*yup(34)))
0145      -     +dconjg(yup(16))*(-(dconjg(yup(24))*dconjg(yup(34))*yup(9)*
0146      -     yup(20)) +dotup(idc1,idc1)*(yup(2)*yup(29)*yup(31) + 
0147      -     dconjg(yup(35))*yup(9)*yup(35)))))/dconjg(yup(8))
0148           bfun(5,ii,kk)=(2*dconjg(yup(10))*yup(1)*yup(27)*yup(30))/
0149      -   dconjg(yup(8))
0150           bfun(8,ii,kk)=(4*((-(dconjg(yup(10))*dconjg(yup(24))) + 
0151      -     dconjg(yup(14))*dotup(idb1,idb1))*(dconjg(yup(18))*yup(9)
0152      -     *yup(14)+2*dotup(idc1,idk1)*yup(4)*yup(27))+(dconjg(yup(12)) 
0153      -     - dconjg(yup(18)))*dconjg(yup(34))*yup(9)*(-(dconjg(yup(24))
0154      -     *yup(20)) +dotup(idb1,idb1)*yup(34)) +dotup(idc1,idc1)*
0155      -     (2*dconjg(yup(35))*dotup(idc1,idk1)*yup(8)*yup(35) + 
0156      -     (dconjg(yup(12))-dconjg(yup(18)))*(yup(2)*yup(29)*yup(31)+ 
0157      -     dconjg(yup(35))*yup(9)*yup(35)))))/dconjg(yup(8))
0158           bfun(9,ii,kk)=(4*dconjg(yup(15))*(dotup(idb1,idb1)*yup(5)
0159      -     -yup(2)*yup(20))*yup(28)+4*dconjg(yup(35))*dotup(idc1,idc1)*
0160      -     yup(8)*yup(35))/dconjg(yup(8))
0161 c...helicity(18)=m(-,-,-,-,-,+)

0162         do mm=1,9
0163            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0164      &     dconjg(bfun(mm,ii,kk))
0165         end do
0166           end if
0167 
0168 c...helicity(3)=(+,+,+,+,-,+)

0169         kk=3
0170           if(iqqbar.eq.0) then
0171         bfun(1,ii,kk)=(4*(dconjg(yup(1))*(dotup(idb1,idb1)*yup(11)*
0172      -     yup(19)*yup(27)+dconjg(yup(34))*yup(10)*(-(dconjg(yup(24))
0173      -     *yup(20)) + dotup(idb1,idb1)*yup(34))) +dotup(idc1,idc1)*
0174      -     (dconjg(yup(8))*dotup(idb1,idb1)*yup(19)*yup(31) + yup(10)*
0175      -     (yup(25)*yup(30)*yup(31) + dconjg(yup(1))*dconjg(yup(35))
0176      -     *yup(35)))))/yup(8)
0177         bfun(2,ii,kk)=(-4*dconjg(yup(9))*(dotup(idb1,idb1)*(yup(4)
0178      -     *(dconjg(yup(8))*dconjg(yup(33))-dconjg(yup(4))*yup(10))+ 
0179      -     yup(11)*yup(19)*yup(27) +dconjg(yup(34))*yup(10)*yup(34))+ 
0180      -     yup(10)*(dconjg(yup(24))*(-(dconjg(yup(34))*yup(20))+yup(4) 
0181      -     *yup(25))+dconjg(yup(35))*dotup(idc1,idc1)*yup(35))))/yup(8)
0182           bfun(3,ii,kk)=(-4*yup(16)*(dconjg(yup(1))*(dconjg(yup(17))*
0183      -     yup(11)*yup(32)+dconjg(yup(34))*(-(dconjg(yup(24))*yup(20))+ 
0184      -     dotup(idb1,idb1)*yup(34))) +dotup(idc1,idc1)*(yup(25)*
0185      -     (-yup(19)+yup(30))*yup(31)+dconjg(yup(1))*(-(dconjg(yup(17))
0186      -     *yup(17))+dconjg(yup(35))*yup(35)))))/yup(8)
0187           bfun(4,ii,kk)=(4*dconjg(yup(9))*yup(16)*(-(yup(4)*
0188      -     (dconjg(yup(4))*dotup(idb1,idb1) + (-dconjg(yup(24)) +
0189      -     dconjg(yup(33)))*yup(25))) +dconjg(yup(17))*
0190      -     (-(dotup(idc1,idc1)*yup(17)) + yup(11)*yup(32))
0191      -     + dconjg(yup(34))*(-(dconjg(yup(24))*yup(20)) + 
0192      -     dotup(idb1,idb1)*yup(34)) + dconjg(yup(35))*dotup(idc1,idc1)
0193      -     *yup(35)))/yup(8)
0194         bfun(5,ii,kk)=(2*dconjg(yup(9))*yup(16)*yup(28)*yup(29))/yup(8)
0195         bfun(8,ii,kk)=(4*dconjg(yup(9))*(dconjg(yup(24))*((yup(12)
0196      -     - yup(18))*(-(dconjg(yup(34))*yup(20)) +yup(4)*yup(25)) + 
0197      -     2*dotup(idc1,idk1)*yup(14)*yup(29))+dotup(idb1,idb1)*(yup(12) 
0198      -     -yup(18))*(-(dconjg(yup(4))*yup(4))+dconjg(yup(34))*yup(34))+ 
0199      -     dotup(idc1,idc1)*(-(yup(16)*yup(19)*yup(29)) +dconjg(yup(35)) 
0200      -     *(yup(12) - yup(18))*yup(35))))/yup(8)
0201         bfun(9,ii,kk)=(4*dconjg(yup(5))*yup(11)*yup(20)*yup(30))/yup(8)
0202 c...helicity(19)=(-,-,-,-,+,-)

0203         do mm=1,9
0204            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0205      &     dconjg(bfun(mm,ii,kk))
0206         end do
0207           end if
0208 
0209 c...helicity(4)=(+,+,+,+,-,-)

0210         kk=4
0211         if(iqqbar.eq.0) then
0212           bfun(1,ii,kk)=(4*dconjg(yup(10))*(dotup(idc1,idc1)*
0213      -     ((dconjg(yup(3))*dconjg(yup(12)) - dconjg(yup(1))
0214      -     *dconjg(yup(13)))*yup(13)+yup(25)*yup(30)*yup(31)+ 
0215      -     dconjg(yup(1))*dconjg(yup(35))*yup(35)) +dconjg(yup(1))*
0216      -     (dconjg(yup(34))*(-(dconjg(yup(24))*yup(20)) + 
0217      -     dotup(idb1,idb1)*yup(34)) +dconjg(yup(18))*yup(13) 
0218      -     *yup(36))))/xup(2)
0219         bfun(2,ii,kk)=(4*dconjg(yup(9))*dconjg(yup(10))*(dconjg(yup(24))
0220      -     *(dconjg(yup(34))*yup(20)+yup(4)*(dconjg(yup(7))-yup(25)))+ 
0221      -     dotup(idb1,idb1)*(dconjg(yup(4))*yup(4) - dconjg(yup(34))
0222      -     *yup(34)) + dotup(idc1,idc1)*(dconjg(yup(13))*yup(13) - 
0223      -     dconjg(yup(35))*yup(35)) - dconjg(yup(18))*yup(13)
0224      -     *yup(36)))/xup(2)
0225           bfun(3,ii,kk)=(-4*(dconjg(yup(1))*dconjg(yup(18))*
0226      -     dotup(idb1,idb1)*yup(19)*yup(28) +dconjg(yup(16))*
0227      -     (dconjg(yup(1))*dconjg(yup(34))*(-(dconjg(yup(24))
0228      -     *yup(20)) +dotup(idb1,idb1)*yup(34)) +dotup(idc1,idc1)*
0229      -     (yup(25)*yup(30)*yup(31) + dconjg(yup(1))*dconjg(yup(35))
0230      -     *yup(35)))))/xup(2)
0231           bfun(4,ii,kk)=(4*dconjg(yup(9))*(dotup(idb1,idb1)*
0232      -     ((dconjg(yup(7))*dconjg(yup(14)) - dconjg(yup(4))
0233      -     *dconjg(yup(16)))*yup(4) +dconjg(yup(18))*yup(19)*yup(28)+ 
0234      -     dconjg(yup(16))*dconjg(yup(34))*yup(34)) +dconjg(yup(16))*
0235      -     (dconjg(yup(24))*(-(dconjg(yup(34))*yup(20))+yup(4)*yup(25))+ 
0236      -     dconjg(yup(35))*dotup(idc1,idc1)*yup(35))))/xup(2)
0237         bfun(5,ii,kk)=(2*dconjg(yup(9))*dconjg(yup(10))*yup(28)*yup(30))
0238      -   /xup(2)
0239           bfun(8,ii,kk)=(4*dconjg(yup(9))*(dconjg(yup(12))-
0240      -     dconjg(yup(18)))*(dconjg(yup(24))*(dconjg(yup(10))
0241      -     *yup(14) -dconjg(yup(34))*yup(20) + yup(4)*yup(25)) - 
0242      -     dotup(idb1,idb1)*(dconjg(yup(4))*yup(4) + dconjg(yup(14))
0243      -     *yup(14) -dconjg(yup(34))*yup(34)) +dconjg(yup(35))* 
0244      -     dotup(idc1,idc1)*yup(35)))/xup(2)
0245         bfun(9,ii,kk)=(-4*dconjg(inpup(idb2,idq0))*dconjg(yup(35))*
0246      -    inpup(idk1,idk2)*yup(28)*yup(32))/xup(2)
0247 c...helicity(20)=(-,-,-,-,+,+)

0248         do mm=1,9
0249            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0250      &     dconjg(bfun(mm,ii,kk))
0251         end do
0252           end if
0253 
0254 c**********************************************************************

0255           if(iqqbar.eq.1) then
0256         bfun(1,ii,kk)=-4*(-(dconjg(yup(24))*dconjg(yup(34))*
0257      -    (yup(20)*yup(53) - yup(25)*yup(54))) +dotup(idb1,idb1)*
0258      -    (dconjg(yup(8))*dotup(idc1,idc1)*yup(30) +dconjg(yup(34))*
0259      -    (-(dconjg(inpup(idq0,idk2))*dconjg(yup(24))*inpup(idc1,idk1))+
0260      -    dconjg(inpup(idc2,idk2))*inpup(idb1,idk1)*yup(43) + yup(15)*
0261      -    (yup(55) - yup(56)))) +dconjg(yup(35))*dotup(idc1,idc1)*
0262      -    (yup(35)*yup(53) + dconjg(yup(3))*yup(57)))
0263         bfun(2,ii,kk)=-4*(dotup(idb1,idb1)*(-(dconjg(yup(8))
0264      -    *dotup(idc1,idc1)*yup(29)) +dconjg(yup(34))*
0265      -    (dconjg(inpup(idq0,idc2))*inpup(idc1,idk1)*yup(16) + 
0266      -    dconjg(inpup(idc2,idk2))*inpup(idq0,idk1)*yup(20) + 
0267      -    dconjg(yup(4))*(yup(54) - yup(58)))) +dconjg(yup(35))*
0268      -    (-(dotup(idc1,idc1)*yup(17)) + yup(11)*yup(32))*yup(59) +
0269      -    (dconjg(yup(24))*dconjg(yup(34))*yup(20) - dconjg(yup(35))
0270      -    *dotup(idc1,idc1)*yup(35))*yup(60))
0271           bfun(3,ii,kk)=-4*((dconjg(yup(9))*yup(1) + dconjg(yup(18))*
0272      -    yup(11))*(-(dconjg(yup(8))*dotup(idb1,idb1))+yup(16)*yup(25))+ 
0273      -    dconjg(yup(34))*(dconjg(inpup(idc2,idk2))*inpup(idc1,idk1)*
0274      -    (-(dconjg(yup(10))*yup(16))-yup(2)*yup(25)+dotup(idb1,idb1)*
0275      -    (yup(19) + yup(31))) +(-(dconjg(yup(24))*yup(20)) + 
0276      -    dotup(idb1,idb1)*yup(34))*(yup(53) + yup(60))) + 
0277      -    dotup(idc1,idc1)*(dconjg(yup(8))*yup(2)*yup(25) + 
0278      -    yup(16)*(dconjg(yup(8))*dconjg(yup(10)) -yup(25)*(yup(19) + 
0279      -    yup(31))) +dconjg(yup(35))*yup(35)*(yup(53) + yup(60))))
0280           bfun(4,ii,kk)=-4*(dconjg(inpup(idq0,idk1))*
0281      -    dconjg(inpup(idq0,idk2))*dotup(idb1,idb1)*dotup(idc1,idc1)*
0282      -    inpup(idq0,idk1)**2 +dotup(idb1,idb1)*(-(dotup(idc1,idc1)*
0283      -    (dconjg(yup(3))*yup(13) +dconjg(yup(6))*yup(17))) + 
0284      -    dconjg(inpup(idc2,idk2))*dconjg(yup(34))*(dconjg(yup(3))*
0285      -    inpup(idc1,idb2) -inpup(idc1,idk1)*yup(31))+ dconjg(yup(6))
0286      -    *yup(11)*yup(32))+dconjg(yup(35))*(-(dconjg(inpup(idq0,idk2))
0287      -    *dconjg(yup(38))*dotup(idc1,idc1)*inpup(idb1,idk1)) + 
0288      -    dconjg(inpup(idq0,idk2))*dotup(idc1,idc1)*inpup(idb1,idk1)
0289      -    *yup(61) - dconjg(inpup(idc2,idk2))*dconjg(yup(34))*
0290      -    (-(inpup(idc1,idk1)*yup(51)) + inpup(idb1,idk1)*yup(62))))
0291 c...helicity(20)=(-,-,-,-,+,+)

0292         do mm=1,4
0293            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
0294         end do
0295           end if
0296 
0297 c...helicity(5)=(+,+,+,-,+,+)

0298         kk=5
0299         if(iqqbar.eq.0) then
0300           bfun(1,ii,kk)=(4*pmomup(5,idc1)*(dotup(idb1,idb1)*
0301      -     (-(yup(1)*(dconjg(inpup(idq0,idc2))*yup(14) - 
0302      -     dconjg(inpup(idc1,idq0))*yup(15))*yup(19)) - 
0303      -     (dconjg(inpup(idc1,idq0))*yup(5)*yup(10) - 
0304      -     dconjg(inpup(idk2,idk1))*yup(19)*yup(27))*yup(31)) - 
0305      -     dconjg(yup(35))*yup(10)*(dconjg(inpup(idb2,idk1))
0306      -     *yup(31)*yup(32) + dconjg(inpup(idb2,idq0))*yup(1)*
0307      -     (yup(22) + yup(32)))))/xup(1)
0308         bfun(2,ii,kk)=(4*pmomup(5,idc1)*(dotup(idb1,idb1)*
0309      -     (yup(9)*(dconjg(inpup(idq0,idc2))*yup(14) - 
0310      -     dconjg(inpup(idc1,idq0))*yup(15))*yup(19)+dconjg(yup(4))
0311      -     *yup(4)*(-(dconjg(inpup(idq0,idk1))*yup(10)) - 
0312      -     dconjg(inpup(idk2,idk1))*yup(19)))+dconjg(yup(35))*yup(10)*
0313      -     (dconjg(inpup(idb2,idk1))*yup(22)*yup(31) + 
0314      -     dconjg(inpup(idb2,idq0))*yup(9)*(yup(22)+yup(32)))))/xup(1)
0315           bfun(3,ii,kk)=(4*pmomup(5,idc1)*yup(16)*
0316      -     (dconjg(inpup(idc1,idq0))*dotup(idb1,idb1)*yup(5)*
0317      -     yup(31)+ dconjg(yup(35))*(dconjg(inpup(idb2,idk1))*yup(31)
0318      -     *yup(32) +dconjg(inpup(idb2,idq0))*yup(1)*(yup(22) +
0319      -     yup(32))) +dconjg(yup(17))*(-(dconjg(inpup(idk2,idk1))
0320      -     *yup(31)*yup(32)) +dconjg(inpup(idq0,idk2))*yup(1)*
0321      -     (yup(22) + yup(32)))))/xup(1)
0322           bfun(4,ii,kk)=(-4*pmomup(5,idc1)*yup(16)*
0323      -     (-(dconjg(inpup(idq0,idk1))*dconjg(yup(4))*dotup(idb1,idb1)
0324      -     *yup(4)) +dconjg(yup(35))*(dconjg(inpup(idb2,idk1))
0325      -     *yup(22)*yup(31) +dconjg(inpup(idb2,idq0))*yup(9)*(yup(22)+
0326      -     yup(32))) +dconjg(yup(17))*(-(dconjg(inpup(idk2,idk1))
0327      -     *yup(22)*yup(31)) +dconjg(inpup(idq0,idk2))*yup(9)*
0328      -     (yup(22) + yup(32)))))/xup(1)
0329         bfun(5,ii,kk)=(2*dconjg(inpup(idk1,idq0))*pmomup(5,idc1)*yup(16)
0330      -    *(yup(27) + yup(28))*yup(29))/xup(1)
0331           bfun(8,ii,kk)=(4*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk2))
0332      -     *dconjg(yup(14))*yup(9)*(dotup(idb1,idb1)*yup(14) - yup(16)
0333      -     *yup(23))) -dconjg(inpup(idq0,idk1))*(-(dconjg(yup(4))
0334      -     *dotup(idb1,idb1)*yup(4)*(yup(12)-yup(18)))-dconjg(yup(14)) 
0335      -     *yup(12)*(dotup(idb1,idb1)*yup(14) - yup(16)*yup(23)))-
0336      -     dconjg(yup(35))*((yup(12)-yup(18))*(dconjg(inpup(idb2,idk1))
0337      -     *yup(22)*yup(31)+dconjg(inpup(idb2,idq0))*yup(9)*(yup(22) +
0338      -     yup(32))) +2*dconjg(inpup(idk2,idk1))*dotup(idc1,idk1)*
0339      -     yup(27)*yup(35))))/xup(1)
0340           bfun(9,ii,kk)=(4*dconjg(inpup(idk2,idk1))*dconjg(yup(35))*
0341      -     pmomup(5,idc1)*yup(28)*yup(35))/xup(1)
0342 c...helicity(21)=(-,-,-,+,-,-)

0343         do mm=1,9
0344            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0345      &     -dconjg(bfun(mm,ii,kk))
0346         end do
0347           end if
0348 
0349 c*******************************************************************

0350           if(iqqbar.eq.1) then
0351         bfun(1,ii,kk)=4*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk1))*
0352      -     dotup(idb1,idb1)*((dconjg(yup(10))-dconjg(inpup(idq0,idk1)
0353      -     )*inpup(idk2,idk1))*(yup(27) + yup(28))+ (dconjg(yup(11))
0354      -     + dconjg(yup(18)))*yup(30) +inpup(idb1,idk2)*
0355      -     (dconjg(inpup(idq0,idc2))*yup(37)-dconjg(inpup(idc1,idq0))
0356      -     *yup(43)))) +dconjg(inpup(idb2,idq0))*dconjg(yup(35))*
0357      -     ((yup(22) + yup(32))*yup(46) + (dconjg(yup(11)) + 
0358      -     dconjg(yup(18)))*yup(47)))
0359         bfun(2,ii,kk)=4*pmomup(5,idc1)*(-(dotup(idb1,idb1)*yup(8)*
0360      -     (-(dconjg(inpup(idc1,idq0))*yup(20))+dconjg(inpup(idq0,idc2))
0361      -     *yup(23))) -dconjg(yup(35))*(yup(22) + yup(32))*
0362      -     (-(dconjg(inpup(idb2,idk1))*dconjg(yup(12))) + 
0363      -     dconjg(inpup(idb2,idq0))*yup(50)))
0364           bfun(3,ii,kk)=4*pmomup(5,idc1)*(dconjg(inpup(idq0,idk1))
0365      -    *dconjg(yup(1))*dconjg(yup(10))*yup(2) - 
0366      -    dconjg(inpup(idq0,idk1))*dconjg(yup(1))*dotup(idb1,idb1)*
0367      -    yup(8) -dconjg(inpup(idq0,idk2))*dconjg(yup(11))*
0368      -    dotup(idb1,idb1)*yup(8) - dconjg(inpup(idq0,idk1))*
0369      -    dconjg(yup(10))*dconjg(yup(11))*yup(16) - 
0370      -    dconjg(inpup(idq0,idk1))*dconjg(yup(10))*dconjg(yup(18))*
0371      -    yup(16) +dconjg(inpup(idq0,idk1))*dconjg(yup(11))*
0372      -    dotup(idb1,idb1)*yup(19) + dconjg(inpup(idq0,idk1))*
0373      -    dconjg(yup(18))*dotup(idb1,idb1)*yup(19) - 
0374      -    dconjg(inpup(idq0,idk1))*dconjg(yup(11))*yup(2)*yup(25) - 
0375      -    dconjg(inpup(idq0,idk1))*dconjg(yup(18))*yup(2)*yup(25) + 
0376      -    dconjg(inpup(idq0,idk1))*dconjg(yup(11))*dotup(idb1,idb1)
0377      -    *yup(31) +dconjg(inpup(idq0,idk1))*dconjg(yup(18))*
0378      -    dotup(idb1,idb1)*yup(31) + dconjg(inpup(idc1,idq0))*
0379      -    (dconjg(yup(10))*yup(2)-dotup(idb1,idb1)*yup(8))*yup(40)+ 
0380      -    dconjg(yup(35))*(dconjg(inpup(idb2,idk1))*dconjg(yup(11))*
0381      -    yup(26) + dconjg(inpup(idb2,idq0))*(yup(22) + yup(32))*
0382      -    (yup(46) + yup(50))) +dconjg(inpup(idc1,idq0))*
0383      -    (dconjg(yup(10))*yup(2) -dotup(idb1,idb1)*yup(8))*yup(79))
0384           bfun(4,ii,kk)=-4*pmomup(5,idc1)*(dotup(idb1,idb1)*
0385      -    (-(dconjg(inpup(idq0,idk1))**2*(dconjg(yup(5))*
0386      -    inpup(idc1,idk2) +dconjg(yup(4))*inpup(idc2,idk2))) + 
0387      -    (dconjg(yup(11))+dconjg(yup(18)))*(dconjg(inpup(idb2,idq0))*
0388      -    yup(3)+dconjg(inpup(idb1,idq0))*yup(6)))+ (dconjg(yup(11))
0389      -    + dconjg(yup(18)))*dconjg(yup(35))*(-(dconjg(inpup(idb2,idk1)
0390      -    )*yup(21)) +dconjg(inpup(idb2,idq0))*yup(82)))
0391 c...helicity(21)=(-,-,-,+,-,-)

0392         do mm=1,4
0393            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
0394         end do
0395           end if
0396 
0397 c...helicity(6)=(+,+,+,-,+,-)

0398         kk=6
0399         if(iqqbar.eq.0) then
0400           bfun(1,ii,kk)=(-4*dconjg(yup(10))*pmomup(5,idc1)*
0401      -     (dconjg(inpup(idb2,idq0))*yup(1)*(-((dconjg(yup(11))
0402      -     + dconjg(yup(18)))*yup(13)) +dconjg(yup(35))*(yup(22) 
0403      -     + yup(32))) +yup(31)*(dconjg(inpup(idc1,idq0))*
0404      -     dotup(idb1,idb1)*yup(5) +dconjg(inpup(idb2,idk1))*
0405      -     (-(dconjg(yup(18))*yup(13)) +dconjg(yup(35))*yup(32) 
0406      -     ))))/dconjg(yup(8))
0407         bfun(2,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idc1)*
0408      -     (-(dconjg(inpup(idq0,idk1))*dconjg(yup(4))*dotup(idb1,idb1)
0409      -     *yup(4)) +dconjg(inpup(idb2,idk1))*(-(dconjg(yup(11))
0410      -     *yup(13)) +dconjg(yup(35))*yup(22))*yup(31) + 
0411      -     dconjg(inpup(idb2,idq0))*yup(9)*(-((dconjg(yup(11)) +
0412      -     dconjg(yup(18)))*yup(13)) + dconjg(yup(35))*(yup(22) + 
0413      -     yup(32)))))/dconjg(yup(8))
0414           bfun(3,ii,kk)=(4*pmomup(5,idc1)*(dotup(idb1,idb1)*
0415      -     (dconjg(inpup(idc1,idq0))*dconjg(yup(16))*yup(5) - 
0416      -     dconjg(inpup(idq0,idk1))*dconjg(yup(18))*yup(19))*yup(31)+ 
0417      -     dconjg(yup(16))*dconjg(yup(35))*(dconjg(inpup(idb2,idk1))
0418      -     *yup(31)*yup(32) +dconjg(inpup(idb2,idq0))*yup(1)*
0419      -     (yup(22) + yup(32)))))/dconjg(yup(8))
0420           bfun(4,ii,kk)=(4*pmomup(5,idc1)*(dconjg(inpup(idq0,idk1))
0421      -     *dconjg(yup(11))*dotup(idb1,idb1)*yup(19)*yup(31) - 
0422      -     dconjg(yup(16))*(-(dconjg(inpup(idq0,idk1))*dconjg(yup(4))*
0423      -     dotup(idb1,idb1)*yup(4)) +dconjg(yup(35))*
0424      -     (dconjg(inpup(idb2,idk1))*yup(22)*yup(31) + 
0425      -     dconjg(inpup(idb2,idq0))*yup(9)*(yup(22)+yup(32))))))/
0426      -     dconjg(yup(8))
0427           bfun(5,ii,kk)=(2*dconjg(inpup(idk1,idq0))*dconjg(yup(10))*
0428      -     pmomup(5,idc1)*(yup(27) + yup(28))*yup(30))/dconjg(yup(8))
0429           bfun(8,ii,kk)=(4*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk1))
0430      -     *dconjg(yup(4))*(-dconjg(yup(12)) + dconjg(yup(18)))*
0431      -     dotup(idb1,idb1)*yup(4)) - 2*dotup(idc1,idk1)*
0432      -     (dconjg(inpup(idb2,idq0))*dconjg(yup(35))*yup(8)*yup(22)+ 
0433      -     dconjg(inpup(idq0,idk1))*dconjg(yup(10))*yup(27)*yup(30)) - 
0434      -     dconjg(yup(35))*(dconjg(inpup(idb2,idk1))*(dconjg(yup(12))-
0435      -     dconjg(yup(18)))*yup(22)*yup(31) + dconjg(inpup(idb2,idq0))
0436      -     *yup(9)*(dconjg(yup(12))*(yup(22)+yup(32))-dconjg(yup(18))*
0437      -     (yup(22) - yup(26) + yup(32))))))/dconjg(yup(8))
0438           bfun(9,ii,kk)=(4*dconjg(inpup(idq0,idk1))*dconjg(yup(11))*
0439      -     dconjg(yup(35))*pmomup(5,idc1)*yup(35))/dconjg(yup(8))
0440 c...helicity(22)=(-,-,-,+,-,+)

0441         do mm=1,9
0442            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0443      &     -dconjg(bfun(mm,ii,kk))
0444         end do
0445         end if
0446 
0447 c...helicity(7)=(+,+,+,-,-,+)

0448         kk=7
0449         if(iqqbar.eq.0) then
0450           bfun(1,ii,kk)=(4*dconjg(yup(1))*pmomup(5,idc1)*
0451      -     (-(dotup(idb1,idb1)*(-(dconjg(inpup(idq0,idk1))*
0452      -     dconjg(yup(8))) +dconjg(inpup(idq0,idc2))*yup(14) - 
0453      -     dconjg(inpup(idc1,idq0))*yup(15))*yup(19))+ yup(10)*
0454      -     (dconjg(inpup(idq0,idk1))*yup(25)*yup(30) - 
0455      -     dconjg(inpup(idb2,idq0))*dconjg(yup(35))*
0456      -     (yup(22) + yup(32)))))/yup(8)
0457         bfun(2,ii,kk)=(4*dconjg(yup(9))*pmomup(5,idc1)*(dotup(idb1,idb1)
0458      -     *yup(19)*(dconjg(inpup(idq0,idc2))*yup(14) - 
0459      -     dconjg(inpup(idc1,idq0))*yup(15)-dconjg(inpup(idq0,idk2)) 
0460      -     *yup(31)) + dconjg(inpup(idb2,idq0))*dconjg(yup(35))*
0461      -     yup(10)*(-yup(21) + yup(22) + yup(32))))/yup(8)
0462           bfun(3,ii,kk)=(4*dconjg(yup(1))*pmomup(5,idc1)*yup(16)*
0463      -     (dconjg(inpup(idq0,idk1))*yup(25)*(yup(19) - yup(30)) + 
0464      -     (dconjg(inpup(idq0,idk2))*dconjg(yup(17)) + 
0465      -     dconjg(inpup(idb2,idq0))*dconjg(yup(35)))*
0466      -     (yup(22) + yup(32))))/yup(8)
0467           bfun(4,ii,kk)=(4*dconjg(yup(9))*(dconjg(inpup(idq0,idk2))
0468      -     *dconjg(yup(17))+dconjg(inpup(idb2,idq0))*dconjg(yup(35)))*
0469      -     pmomup(5,idc1)*yup(16)*(yup(21) - yup(22) - yup(32)))/yup(8)
0470           bfun(5,ii,kk)=0.0d0
0471           bfun(8,ii,kk)=(4*dconjg(yup(9))*pmomup(5,idc1)*
0472      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(14))*(dotup(idb1,idb1)
0473      -     *yup(14) - yup(16)*yup(23)))+ dconjg(inpup(idb2,idq0))
0474      -     *dconjg(yup(35))*(-2*dotup(idc1,idk1)*yup(17)+(yup(12)-
0475      -     yup(18))*(yup(21)- yup(22) - yup(32)))))/yup(8)
0476           bfun(9,ii,kk)=(4*dconjg(inpup(idk2,idq0))*pmomup(5,idc1)*
0477      -     (dconjg(yup(5))*yup(20) + yup(25)*yup(28))*yup(30))/yup(8)
0478 c...helicity(23)=(-,-,-,+,+,-)

0479         do mm=1,9
0480            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0481      &     -dconjg(bfun(mm,ii,kk))
0482         end do
0483           end if
0484 
0485 c...helicity(8)=(+,+,+,-,-,-)

0486         kk=8
0487         if (iqqbar.eq.0) then
0488         bfun(1,ii,kk)=(-4*dconjg(yup(1))*dconjg(yup(10))*pmomup(5,idc1)*
0489      -     (dconjg(inpup(idb2,idq0))*dconjg(inpup(idq0,idk1))
0490      -     *inpup(idk2,idk1)*yup(13) - dconjg(inpup(idq0,idk1))*yup(25)*
0491      -     yup(30) + dconjg(inpup(idb2,idq0))*(-((dconjg(yup(11)) +
0492      -     dconjg(yup(18)))*yup(13)) +dconjg(yup(35))*(yup(22) 
0493      -     + yup(32)))))/xup(2)
0494         bfun(2,ii,kk)=(-4*dconjg(inpup(idb2,idq0))*dconjg(yup(9))*
0495      -     dconjg(yup(10))*pmomup(5,idc1)*((dconjg(yup(11)) -
0496      -     dconjg(yup(12)) +dconjg(yup(18)))*yup(13) + 
0497      -      dconjg(yup(35))*(yup(21) - yup(22) - yup(32))))/xup(2)
0498         bfun(3,ii,kk)=(4*dconjg(yup(1))*dconjg(yup(16))*pmomup(5,idc1)*
0499      -     (-(dconjg(inpup(idq0,idk1))*yup(25)*yup(30)) + 
0500      -     dconjg(inpup(idb2,idq0))*dconjg(yup(35))*
0501      -     (yup(22) + yup(32))))/xup(2)
0502           bfun(4,ii,kk)=(4*dconjg(inpup(idb2,idq0))*dconjg(yup(9))*
0503      -     dconjg(yup(16))*dconjg(yup(35))*pmomup(5,idc1)*
0504      -     (yup(21) - yup(22) - yup(32)))/xup(2)
0505           bfun(5,ii,kk)=0.0d0
0506           bfun(8,ii,kk)=(4*dconjg(inpup(idb2,idq0))*dconjg(yup(9))*
0507      -     (dconjg(yup(12)) - dconjg(yup(18)))*dconjg(yup(35))
0508      -     *pmomup(5,idc1)*(yup(21)-yup(22)+yup(26)-yup(32)))/xup(2)
0509           bfun(9,ii,kk)=0.0d0
0510 c...helicity(24)=(-,-,-,+,+,+)

0511         do mm=1,9
0512            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0513      &     -dconjg(bfun(mm,ii,kk))
0514         end do
0515           end if
0516 
0517 c*********************************************************************

0518           if(iqqbar.eq.1) then
0519         bfun(1,ii,kk)=4*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk2))
0520      -     *dotup(idb1,idb1)*((dconjg(inpup(idq0,idk2))*
0521      -     inpup(idk2,idk1) +yup(25))*(yup(27) + yup(28)) + 
0522      -     (dconjg(yup(1))+dconjg(yup(9)))*yup(30)+inpup(idb1,idk1)*
0523      -     (dconjg(inpup(idq0,idc2))*yup(37)-dconjg(inpup(idc1,idq0))
0524      -     *yup(43)))) +dconjg(inpup(idb2,idq0))*dconjg(yup(35))*
0525      -     ((yup(22) + yup(32))*yup(53) + (dconjg(yup(1)) + 
0526      -     dconjg(yup(9)))*yup(57)))
0527         bfun(2,ii,kk)=4*pmomup(5,idc1)*(-(dconjg(yup(8))*
0528      -     dotup(idb1,idb1)*(-(dconjg(inpup(idc1,idq0))*yup(20))+ 
0529      -     dconjg(inpup(idq0,idc2))*yup(23)))-dconjg(yup(35))*(yup(22)
0530      -     + yup(32))*(-(dconjg(inpup(idb2,idk2))*dconjg(yup(7))) + 
0531      -     dconjg(inpup(idb2,idq0))*yup(60)))
0532           bfun(3,ii,kk)=4*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk1))
0533      -     *dconjg(yup(1))*dconjg(yup(8))*dotup(idb1,idb1)) - 
0534      -     dconjg(inpup(idq0,idk2))*dconjg(yup(8))*dconjg(yup(11))*
0535      -     dotup(idb1,idb1) -dconjg(inpup(idq0,idk2))*dconjg(yup(1))*
0536      -     dconjg(yup(10))*yup(16) - dconjg(inpup(idq0,idk2))*
0537      -     dconjg(yup(9))*dconjg(yup(10))*yup(16) + 
0538      -     dconjg(inpup(idq0,idk2))*dconjg(yup(1))*dotup(idb1,idb1)*
0539      -     yup(19) +dconjg(inpup(idq0,idk2))*dconjg(yup(9))*
0540      -     dotup(idb1,idb1)*yup(19) - dconjg(inpup(idq0,idk2))*
0541      -     dconjg(yup(1))*yup(2)* yup(25) - dconjg(inpup(idq0,idk2))*
0542      -     dconjg(yup(9))*yup(2)*yup(25) + dconjg(inpup(idq0,idk2))
0543      -     *dconjg(yup(11))*yup(16)*yup(25)+ dconjg(inpup(idq0,idk2))*
0544      -     dconjg(yup(1))*dotup(idb1,idb1)*yup(31) + 
0545      -     dconjg(inpup(idq0,idk2))*dconjg(yup(9))*dotup(idb1,idb1)
0546      -     *yup(31) +dconjg(inpup(idc1,idq0))*(-(dconjg(yup(8))
0547      -     *dotup(idb1,idb1)) + yup(16)*yup(25))*yup(40) + 
0548      -     dconjg(yup(35))*(dconjg(inpup(idb2,idk2))*dconjg(yup(1))*
0549      -     yup(21) + dconjg(inpup(idb2,idq0))*(yup(22) + yup(32))
0550      -     *(yup(53) + yup(60))) +dconjg(inpup(idc1,idq0))*
0551      -     (-(dconjg(yup(8))*dotup(idb1,idb1)) + yup(16)*yup(25))
0552      -     *yup(79))
0553           bfun(4,ii,kk)=4*dconjg(inpup(idq0,idk2))*pmomup(5,idc1)*
0554      -    (dotup(idb1,idb1)*(-((dconjg(yup(1))+dconjg(yup(9)))*yup(31))+
0555      -    dconjg(yup(6))*(yup(22) + yup(32)) + dconjg(yup(3))*
0556      -    (dconjg(yup(36)) + yup(42))) + dconjg(yup(35))*
0557      -    ((dconjg(yup(1)) + dconjg(yup(9)))*yup(51) +inpup(idb1,idk1)*
0558      -    (-(dconjg(inpup(idc1,idq0))*yup(62))+dconjg(inpup(idq0,idc2))
0559      -    *yup(64))))
0560 c...helicity(24)=(-,-,-,+,+,+)

0561         do mm=1,4
0562            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
0563         end do
0564         end if
0565 
0566 c...helicity(9)=(+,-,-,+,+,+)

0567         kk=9
0568         if(iqqbar.eq.0) then
0569           bfun(1,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*yup(1)*
0570      -     (dconjg(yup(13))*yup(13)*(yup(11)+ yup(18)) +dconjg(yup(8))
0571      -     *yup(7)*yup(30) +yup(10)*(yup(29) + yup(30))*
0572      -     (yup(27) + yup(28) - yup(31))))/xup(1)
0573         bfun(2,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*yup(9)*
0574      -     (yup(13)*(dconjg(yup(3))*yup(7) +dconjg(yup(13))*(yup(11) 
0575      -     +yup(18)))+yup(10)*(-(dconjg(yup(3))*yup(3))-dconjg(yup(6)) 
0576      -     *yup(6) +(yup(27) + yup(28))*(yup(29) + yup(30)))))/xup(1)
0577           bfun(3,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*yup(1)*
0578      -     (dconjg(yup(6))*yup(7)*yup(17) +yup(11)*yup(19)*yup(29) + 
0579      -     yup(18)*yup(19)*yup(29) +yup(16)*(yup(29) + yup(30))*
0580      -     (yup(27) + yup(28) - yup(31))))/xup(1)
0581           bfun(4,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*yup(9)*
0582      -     (-((yup(11) - yup(12) + yup(18))*yup(19)*yup(29)) + 
0583      -     yup(16)*(dconjg(yup(3))*yup(3)- dconjg(inpup(idb1,idq0))
0584      -     *inpup(idq0,idk1)*yup(6) - (yup(27) + yup(28))*(yup(29)
0585      -     + yup(30)))))/xup(1)
0586           bfun(5,ii,kk)=0.0d0
0587           bfun(8,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*yup(9)*
0588      -     (yup(12)-yup(18))*(yup(29)+yup(30))*(yup(19)-yup(27)
0589      -     -yup(28)+yup(31)))/xup(1)
0590           bfun(9,ii,kk)=0.0d0
0591 c...helicity(25)=(-,+,+,-,-,-)

0592         do mm=1,9
0593            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0594      &     dconjg(bfun(mm,ii,kk))
0595         end do
0596           end if
0597 
0598 c**************************************************************

0599           if(iqqbar.eq.1) then
0600           bfun(1,ii,kk)=4*pmomup(5,idb1)*pmomup(5,idc1)*
0601      -     (dotup(idb1,idb1)*yup(8)*(yup(27) + yup(28)) + 
0602      -     dconjg(inpup(idq0,idk1))*dconjg(yup(22))*inpup(idb1,idk2)
0603      -     *yup(30) +dconjg(inpup(idq0,idk1))*dconjg(yup(32))*
0604      -     inpup(idb1,idk2)*yup(30) +dconjg(yup(12))*yup(1)*yup(30) + 
0605      -     dconjg(yup(12))*yup(9)*yup(30) + dconjg(inpup(idq0,idc2))
0606      -     *inpup(idb1,idk2)*yup(7)*yup(37)+dconjg(inpup(idc2,idk1))*
0607      -     inpup(idb1,idk2)*yup(30)*yup(37) +inpup(idb1,idk2)*
0608      -     (-(dconjg(inpup(idc1,idq0))*yup(7))+dconjg(inpup(idc1,idk1)) 
0609      -     *yup(30))*yup(43) +yup(46)*(dconjg(yup(37))*yup(37) + 
0610      -     yup(43)*yup(65)))
0611         bfun(2,ii,kk)=-4*pmomup(5,idb1)*pmomup(5,idc1)*((yup(27)+ 
0612      -     yup(28))*(dotup(idb1,idb1)*yup(8) + yup(30)*yup(50) + 
0613      -     dconjg(yup(13))*yup(66))+yup(43)*(dconjg(inpup(idc1,idk1))*
0614      -     inpup(idb2,idk2)*yup(35)+yup(6)*(-dconjg(yup(54))+yup(67)))+ 
0615      -     yup(37)*(dconjg(inpup(idc2,idk1))*inpup(idb2,idk2)*yup(35) + 
0616      -     yup(6)*(-yup(45) + yup(68))))
0617           bfun(3,ii,kk)=4*pmomup(5,idb1)*pmomup(5,idc1)*(-(
0618      -     (dconjg(yup(10)) +dconjg(yup(16)))*((dconjg(yup(40))
0619      -     + dconjg(yup(79)))*yup(5)-yup(8)*yup(11)-yup(1)*yup(31))) + 
0620      -     inpup(idq0,idk2)*(dconjg(inpup(idc1,idk1))*
0621      -     (dconjg(yup(2))*yup(5) +dconjg(yup(16))*yup(15)) + 
0622      -     dconjg(inpup(idc2,idk1))*(dconjg(yup(2))*yup(4) + 
0623      -     dconjg(yup(16))*yup(14) -(yup(21) + yup(26))*yup(37))) - 
0624      -     dconjg(inpup(idc1,idk1))*inpup(idq0,idk2)*(yup(21)+ yup(26))
0625      -     *yup(43) + (yup(27) + yup(28))*(yup(29) + yup(30))*
0626      -     (yup(46) + yup(50)))
0627         bfun(4,ii,kk)=4*pmomup(5,idb1)*pmomup(5,idc1)*(-((yup(1)+yup(9))
0628      -     *(dconjg(yup(17))*yup(21) +dconjg(yup(13))*yup(38))) - 
0629      -     yup(8)*(yup(69)*yup(70) + yup(37)*yup(83) + yup(43)*yup(84)
0630      -     + yup(71)*yup(85)))
0631 c...helicity(25)=(-,+,+,-,-,-)

0632         do mm=1,4
0633            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
0634         end do
0635           end if
0636 
0637 c...helicity(10)=(+,-,-,+,+,-)

0638         kk=10
0639         if(iqqbar.eq.0) then
0640           bfun(1,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idb1)*pmomup(5,idc1)*
0641      -     yup(1)*(-(dconjg(yup(8))*yup(8))+yup(19)*(yup(27)+yup(28))- 
0642      -     (yup(29)+yup(30))*(yup(27)+yup(28)-yup(31))))/dconjg(yup(8))
0643         bfun(2,ii,kk)=(-4*dconjg(yup(10))*pmomup(5,idb1)*pmomup(5,idc1)*
0644      -     yup(9)*(dconjg(yup(3))*yup(3)+dconjg(yup(6))*yup(6)+(yup(27) 
0645      -     + yup(28))*(yup(19) - yup(29) - yup(30)) - yup(19)*yup(31)
0646      -     ))/dconjg(yup(8))
0647         bfun(3,ii,kk)=(-4*dconjg(yup(16))*pmomup(5,idb1)*pmomup(5,idc1)*
0648      -     yup(1)*(yup(19) - yup(29) - yup(30))*(yup(27) + yup(28)
0649      -     - yup(31)))/dconjg(yup(8))
0650         bfun(4,ii,kk)=(-4*dconjg(yup(16))*pmomup(5,idb1)*pmomup(5,idc1)*
0651      -     yup(9)*(-(dconjg(yup(3))*yup(3)) -dconjg(yup(6))*yup(6) + 
0652      -     dconjg(inpup(idq0,idk2))*inpup(idq0,idk1)*yup(8) - (yup(27)
0653      -     + yup(28))*(yup(19) - yup(29) - yup(30))))/dconjg(yup(8))
0654         bfun(5,ii,kk)=0.0d0
0655         bfun(8,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*yup(9)*
0656      -     (dconjg(yup(14))*(dconjg(yup(10))+dconjg(yup(16)))*yup(14)- 
0657      -     (dconjg(yup(12)) - dconjg(yup(18)))*(yup(29) + yup(30))*
0658      -     (yup(27) + yup(28) - yup(31))))/dconjg(yup(8))
0659         bfun(9,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(15))
0660      -     *yup(5) + yup(8)*yup(28))*(yup(29) + yup(30)))/dconjg(yup(8))
0661 c...helicity(26)=(-,+,+,-,-,+)

0662         do mm=1,9
0663            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0664      &     dconjg(bfun(mm,ii,kk))
0665         end do
0666           end if
0667 
0668 c...helicity(11)=(+,-,-,+,-,+)

0669         kk=11
0670         if(iqqbar.eq.0) then
0671         bfun(1,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*(-(dconjg(yup(1))
0672      -     *dconjg(yup(13))*yup(13)*(yup(11)+yup(18)))-dconjg(yup(2))*
0673      -     (yup(18)*yup(19) + yup(10)*yup(27))*yup(31) + yup(10)*(
0674      -     -(dconjg(yup(1))*(yup(27) + yup(28))*(yup(29) + yup(30))) - 
0675      -     yup(25)*yup(27)*yup(31))))/yup(8)
0676         bfun(2,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*(yup(4)*
0677      -     (-(dconjg(inpup(idc2,idk2))*dconjg(yup(8))*dconjg(yup(13))*
0678      -     inpup(idk1,idb2)) +dconjg(yup(4))*yup(10)*(dconjg(yup(2))
0679      -     + yup(25))) + dconjg(yup(9))*(dconjg(yup(13))*yup(13)
0680      -     *(yup(11) + yup(18)) +yup(10)*(yup(27) + yup(28))*
0681      -     (yup(29) + yup(30)))))/yup(8)
0682         bfun(3,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(1))*
0683      -     yup(11)*yup(19)*yup(29) +yup(18)*yup(19)*(dconjg(yup(1))
0684      -     *yup(29)+yup(25)*yup(31))+yup(16)*(dconjg(yup(1))*(yup(27) 
0685      -     + yup(28))*(yup(29) + yup(30)) + dconjg(yup(2))*yup(27)*
0686      -     yup(31) +yup(25)*yup(27)*yup(31))))/yup(8)
0687           bfun(4,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*
0688      -     (dconjg(inpup(idc2,idk2))*inpup(idq0,idk1)*yup(4)*yup(19)
0689      -     *yup(25) -dconjg(yup(9))*(yup(11) + yup(18))*yup(19)*
0690      -     yup(29)+yup(16)*(-(dconjg(yup(4))*yup(4)*(dconjg(yup(2))
0691      -     + yup(25))) -dconjg(yup(9))*(yup(27) + yup(28))*
0692      -     (yup(29) + yup(30)))))/yup(8)
0693         bfun(5,ii,kk)=(-2*dconjg(yup(8))*pmomup(5,idb1)*pmomup(5,idc1)*
0694      -     (yup(27) + yup(28))*(yup(29) + yup(30)))/yup(8)
0695         bfun(8,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(4))
0696      -     *yup(4)*(yup(12) - yup(18))*(dconjg(yup(2)) + yup(25)) + 
0697      -     (dconjg(yup(9))*yup(18)*yup(19) + (2*dconjg(yup(8))
0698      -     *dotup(idc1,idk1)+dconjg(yup(9))*(yup(12) - yup(18)))*
0699      -     (yup(27) + yup(28)))*(yup(29) + yup(30))))/yup(8)
0700           bfun(9,ii,kk)=0.0d0
0701 c...helicity(27)=(-,+,+,-,+,-)

0702         do mm=1,9
0703            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0704      &     dconjg(bfun(mm,ii,kk))
0705         end do
0706           end if
0707 
0708 c...helicity(12)=(+,-,-,+,-,-)

0709         kk=12
0710         if(iqqbar.eq.0) then
0711         bfun(1,ii,kk)=(-4*dconjg(yup(10))*pmomup(5,idb1)*pmomup(5,idc1)*
0712      -     (-(dconjg(yup(1))*yup(19)*(yup(27)+yup(28))) +dconjg(yup(1)) 
0713      -     *yup(27)*yup(29) +dconjg(yup(1))*yup(28)*yup(29) + 
0714      -     dconjg(yup(1))*yup(27)*yup(30)+dconjg(yup(1))*yup(28)*yup(30)
0715      -     +dconjg(yup(2))*yup(27)*yup(31) - dconjg(yup(7))*yup(27)*
0716      -     yup(31) +yup(25)*yup(27)*yup(31)))/xup(2)
0717         bfun(2,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idb1)*pmomup(5,idc1)*
0718      -     (dconjg(yup(4))*yup(4)*(dconjg(yup(2))-dconjg(yup(7))
0719      -     + yup(25)) -dconjg(yup(9))*(yup(27) + yup(28))*(yup(19) -
0720      -     yup(29) - yup(30))))/xup(2)
0721         bfun(3,ii,kk)=(4*dconjg(yup(16))*pmomup(5,idb1)*pmomup(5,idc1)*
0722      -     (-(dconjg(yup(1))*yup(19)*(yup(27)+yup(28)))+dconjg(yup(1))* 
0723      -     yup(27)*yup(29)+dconjg(yup(1))*yup(28)*yup(29)+dconjg(yup(1))
0724      -     *yup(27)*yup(30)+dconjg(yup(1))*yup(28)*yup(30)+
0725      -     dconjg(yup(2))*yup(27)*yup(31)-dconjg(yup(7))*yup(27)*yup(31) 
0726      -     +yup(25)*yup(27)*yup(31)))/xup(2)
0727         bfun(4,ii,kk)=(-4*dconjg(yup(16))*pmomup(5,idb1)*pmomup(5,idc1)*
0728      -     (dconjg(yup(4))*yup(4)*(dconjg(yup(2)) - dconjg(yup(7))
0729      -     + yup(25)) - dconjg(yup(9))*(yup(27) + yup(28))*
0730      -     (yup(19) - yup(29) - yup(30))))/xup(2)
0731         bfun(5,ii,kk)=0.0d0
0732         bfun(8,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(4))
0733      -     *dconjg(yup(10))*dconjg(yup(12))*yup(14) - dconjg(yup(9))
0734      -     *dconjg(yup(10))*dconjg(yup(14))*yup(14) + (dconjg(yup(4))
0735      -     *dconjg(yup(12)) -dconjg(yup(9))*dconjg(yup(14)))*
0736      -     dconjg(yup(16))*yup(14) + dconjg(yup(4))*dconjg(yup(12))
0737      -     *yup(4)*(dconjg(yup(2)) + yup(25)) + dconjg(yup(9))*
0738      -     dconjg(yup(12))*yup(28)*yup(29) + dconjg(yup(9))*
0739      -     dconjg(yup(12))*yup(28)*yup(30) + dconjg(yup(9))*
0740      -     dconjg(yup(12))*yup(27)*(yup(29)+yup(30)))+4*dconjg(yup(18)) 
0741      -     *pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(4))
0742      -     *yup(4)*(dconjg(yup(2))+yup(25))+dconjg(yup(9))*(yup(27)
0743      -     + yup(28))*(yup(29) + yup(30))))/xup(2)
0744         bfun(9,ii,kk)=0.0d0
0745 c...helicity(28)=(-,+,+,-,+,+)

0746         do mm=1,9
0747            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0748      &     dconjg(bfun(mm,ii,kk))
0749         end do
0750           end if
0751 
0752 c*****************************************************************

0753           if(iqqbar.eq.1) then
0754           bfun(1,ii,kk)=4*pmomup(5,idb1)*pmomup(5,idc1)*
0755      -     (dconjg(yup(8))*dotup(idb1,idb1)*(yup(27) + yup(28)) + 
0756      -     dconjg(inpup(idq0,idk2))*dconjg(yup(22))*
0757      -     inpup(idb1,idk1)*yup(30) +dconjg(inpup(idq0,idk2))* 
0758      -     dconjg(yup(32))*inpup(idb1,idk1)*yup(30) + 
0759      -     dconjg(yup(7))*yup(11)*yup(30) + dconjg(yup(7))*yup(18)
0760      -     *yup(30)-dconjg(inpup(idq0,idc2))*inpup(idk1,idb1)*yup(12)*
0761      -     yup(37) + dconjg(inpup(idc2,idk2))*inpup(idb1,idk1)*yup(30)
0762      -     *yup(37) + (dconjg(inpup(idc1,idq0))*inpup(idk1,idb1)*
0763      -     yup(12)+ dconjg(inpup(idc1,idk2))*inpup(idb1,idk1)*yup(30))
0764      -     *yup(43)+yup(53)*(dconjg(yup(37))*yup(37)+yup(43)*yup(65)))
0765         bfun(2,ii,kk)=-4*pmomup(5,idb1)*pmomup(5,idc1)*((yup(27) +
0766      -     yup(28))* (dconjg(yup(8))*dotup(idb1,idb1) - 
0767      -     dconjg(yup(2))*yup(12) + yup(30)*yup(60)) + yup(43)*(-
0768      -     (dconjg(inpup(idc1,idk2))*inpup(idk1,idb2)*yup(35)) + 
0769      -     yup(17)*(dconjg(yup(49)) - yup(72))) + yup(37)*
0770      -     (-(dconjg(inpup(idc2,idk2))*inpup(idk1,idb2)*yup(35)) + 
0771      -     yup(17)*(-yup(56) + yup(73))))
0772           bfun(3,ii,kk)=4*pmomup(5,idb1)*pmomup(5,idc1)*
0773      -     (-(dconjg(yup(79))*yup(15)*(dconjg(yup(2)) + yup(25))) + 
0774      -     (dconjg(yup(8))*yup(1) - dconjg(yup(40))*yup(15) +
0775      -     yup(11)*yup(19))*(dconjg(yup(2))+yup(25))+inpup(idq0,idk1)*
0776      -     (dconjg(inpup(idc1,idk2))* (dconjg(yup(2))*yup(5) + 
0777      -     dconjg(yup(16))*yup(15)) + dconjg(inpup(idc2,idk2))*
0778      -     (dconjg(yup(2))*yup(4) +dconjg(yup(16))*yup(14) - 
0779      -     (yup(21) + yup(26))*yup(37))) - dconjg(inpup(idc1,idk2))
0780      -     *inpup(idq0,idk1)*(yup(21) + yup(26))*yup(43) + 
0781      -     (yup(27) + yup(28))*(yup(29)+yup(30))* (yup(53)+yup(60)))
0782           bfun(4,ii,kk)=4*pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(2))
0783      -     + yup(25))*((yup(11) + yup(18))*yup(31) + 
0784      -     dconjg(inpup(idc1,idk2))*inpup(idq0,idb1)*yup(43) + 
0785      -     dconjg(inpup(idc1,idk2))*inpup(idq0,idb2)*yup(69) + 
0786      -     dconjg(inpup(idc2,idk2))* (inpup(idq0,idb1)*yup(37) + 
0787      -     inpup(idq0,idb2)*yup(71)))
0788 c...helicity(28)=(-,+,+,-,+,+)

0789         do mm=1,4
0790              bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
0791         end do
0792           end if
0793 
0794 c...helicity(13)=(+,-,-,-,+,+)

0795         kk=13
0796         if(iqqbar.eq.0) then
0797           bfun(1,ii,kk)=(4*pmomup(5,idb1)*(-(dotup(idc1,idc1)*
0798      -     (-(dconjg(inpup(idb2,idq0))*yup(3)) - 
0799      -     dconjg(inpup(idb1,idq0))*yup(6))*yup(10)*yup(31)) - 
0800      -     dconjg(yup(13))*dotup(idc1,idc1)*yup(13)*
0801      -     (-(dconjg(inpup(idq0,idk2))*yup(1)) + dconjg(
0802      -     inpup(idk2,idk1))*yup(31)) -yup(1)*( dconjg(
0803      -     inpup(idc1,idk2))*yup(19)*yup(24)+dconjg(inpup(idc1,idq0))
0804      -     *yup(10)*(yup(23)+yup(24)))*yup(34)))/xup(1)
0805         bfun(2,ii,kk)=(4*pmomup(5,idb1)*yup(9)*
0806      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(13))*dotup(idc1,idc1)
0807      -     *yup(13)) + dconjg(yup(4))*(dconjg(inpup(idk2,idk1))*yup(19)
0808      -     *yup(24)+dconjg(inpup(idq0,idk1))*yup(10)*(yup(23)+yup(24)))
0809      -     +(dconjg(inpup(idc1,idk2))*yup(19)*yup(24) + 
0810      -     dconjg(inpup(idc1,idq0))*yup(10)*(yup(23)+yup(24)))*yup(34)))
0811      -     /xup(1)
0812           bfun(3,ii,kk)=(4*pmomup(5,idb1)*(dotup(idc1,idc1)*
0813      -     (dconjg(inpup(idb1,idq0))*yup(1)*yup(17)*yup(19) + 
0814      -     ((-(dconjg(inpup(idb2,idq0))*yup(3)) - 
0815      -     dconjg(inpup(idb1,idq0))*yup(6))*yup(16) + 
0816      -     dconjg(inpup(idk2,idk1))*yup(19)*yup(29))*yup(31)) + 
0817      -     yup(1)*(dconjg(inpup(idc1,idk2))*yup(19)*yup(23) + 
0818      -     dconjg(inpup(idc1,idq0))*yup(16)*(yup(23) + yup(24)))
0819      -     *yup(34)))/xup(1)
0820           bfun(4,ii,kk)=(-4*pmomup(5,idb1)*yup(9)*
0821      -     (dconjg(inpup(idb1,idq0))*dotup(idc1,idc1)*yup(17)*yup(19) + 
0822      -     dconjg(yup(4))*(dconjg(inpup(idk2,idk1))*yup(19)*yup(23) + 
0823      -     dconjg(inpup(idq0,idk1))*yup(16)*(yup(23) + yup(24))) + 
0824      -     (dconjg(inpup(idc1,idk2))*yup(19)*yup(23) + 
0825      -     dconjg(inpup(idc1,idq0))*yup(16)*(yup(23) + yup(24)))*
0826      -     yup(34)))/xup(1)
0827         bfun(5,ii,kk)=(-2*dconjg(inpup(idq0,idk2))*pmomup(5,idb1)*yup(9)
0828      -     *yup(28)*(yup(29) + yup(30)))/xup(1)
0829           bfun(8,ii,kk)=(-4*pmomup(5,idb1)*yup(9)*(yup(12) - yup(18))*
0830      -     (yup(23)+yup(24))*(dconjg(inpup(idq0,idk1))*dconjg(yup(4))+ 
0831      -     dconjg(inpup(idq0,idk2))*dconjg(yup(14)) + 
0832      -     dconjg(inpup(idc1,idq0))*yup(34)))/xup(1)
0833           bfun(9,ii,kk)=(-4*dconjg(inpup(idk2,idk1))*pmomup(5,idb1)*
0834      -     yup(27)*yup(28)*(yup(29) + yup(30)))/xup(1)
0835 c...helicity(29)=(-,+,+,+,-,-)

0836         do mm=1,9
0837            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0838      &     -dconjg(bfun(mm,ii,kk))
0839         end do
0840           end if
0841 
0842 c*********************************************************************

0843           if(iqqbar.eq.1) then
0844         bfun(1,ii,kk)=-4*pmomup(5,idb1)*(-(dconjg(inpup(idb2,idq0))*
0845      -     dconjg(inpup(idq0,idk1))*dconjg(yup(35))*dotup(idc1,idc1)
0846      -     *inpup(idb1,idk2))+dconjg(inpup(idq0,idk1))*dconjg(yup(10))*
0847      -     dotup(idc1,idc1)*yup(30) + dconjg(inpup(idq0,idk1))**2
0848      -     *dotup(idc1,idc1)*inpup(idk2,idk1)*yup(30) + 
0849      -     dconjg(inpup(idc1,idq0))*dconjg(yup(10))*dconjg(yup(56))
0850      -     *yup(34)- dconjg(inpup(idc1,idq0))*dconjg(inpup(idq0,idk1))*
0851      -     dotup(idb1,idb1)*inpup(idc2,idk2)*yup(34) - 
0852      -     dconjg(inpup(idc1,idk1))*dconjg(yup(10))*yup(24)*yup(34) - 
0853      -     dconjg(inpup(idc1,idk1))*dconjg(yup(12))*yup(24)*yup(34) - 
0854      -     dconjg(inpup(idc1,idq0))*yup(23)*yup(34)*yup(46) + 
0855      -     dconjg(inpup(idq0,idk1))*yup(24)*yup(34)*yup(74))
0856         bfun(2,ii,kk)=4*pmomup(5,idb1)*(dconjg(inpup(idq0,idk1))**2
0857      -     *dotup(idc1,idc1)*inpup(idk2,idk1)*yup(29)-dconjg(yup(16))*
0858      -     (dotup(idc1,idc1)*(dconjg(inpup(idb1,idq0))*yup(6) + 
0859      -     dconjg(inpup(idq0,idk1))*yup(29))+ dconjg(inpup(idc1,idk1))
0860      -     *yup(23)*yup(34)) - yup(34)*(dconjg(inpup(idc1,idk1))*
0861      -     dconjg(yup(12))*yup(23)+ dconjg(inpup(idc1,idq0))*yup(24)*
0862      -     yup(50) - dconjg(inpup(idb2,idq0))*dconjg(inpup(idc1,idq0))
0863      -     *inpup(idc2,idk2)*yup(66) - dconjg(inpup(idq0,idk1))*
0864      -     (-(dconjg(inpup(idc1,idq0))*dotup(idb1,idb1)*
0865      -     inpup(idc2,idk2)) + yup(23)*yup(67))))
0866           bfun(3,ii,kk)=4*pmomup(5,idb1)*(dconjg(inpup(idq0,idk1))
0867      -     *dconjg(yup(2))*dotup(idc1,idc1)*yup(8) - dconjg(yup(16))
0868      -     *dotup(idc1,idc1)*(-(dconjg(inpup(idq0,idk2))*yup(8)) + 
0869      -     dconjg(inpup(idq0,idk1))*(yup(19) + yup(31)))
0870      -     - dconjg(inpup(idq0,idk1))*dconjg(yup(10))*(-(dconjg(yup(1))
0871      -     *yup(9)) -dconjg(yup(11))*yup(18) + dotup(idc1,idc1)
0872      -     *(yup(19) + yup(31))) + dconjg(inpup(idb1,idq0))*(yup(21)
0873      -     + yup(26))*(dotup(idc1,idc1)*yup(8)-dconjg(inpup(idc1,idk1)) 
0874      -     *inpup(idc2,idk2)*yup(34)) - dconjg(yup(16))*
0875      -     (-(dconjg(inpup(idq0,idk1))*(dconjg(yup(1))*yup(9) + 
0876      -     dconjg(yup(11))*yup(18))) +dconjg(inpup(idc1,idk1)) 
0877      -     *yup(33)*yup(34)) + yup(34)*(-(dconjg(inpup(idc1,idk1))*
0878      -     dconjg(inpup(idq0,idk1))*dconjg(yup(2))*inpup(idc2,idk2)) + 
0879      -     dconjg(inpup(idc1,idq0))*(yup(23) + yup(24))*
0880      -     (yup(46) + yup(50))))
0881           bfun(4,ii,kk)=4*pmomup(5,idb1)*(-(dconjg(inpup(idc1,idk1))
0882      -     *inpup(idc2,idk2)*yup(34)*(-(dconjg(inpup(idb1,idq0))*
0883      -     yup(21)) - dconjg(inpup(idb2,idq0))*yup(38))) - 
0884      -     dconjg(inpup(idb2,idq0))*dconjg(inpup(idq0,idk1))*
0885      -     inpup(idc2,idk2)*yup(34)*yup(70) + dconjg(inpup(idq0,idk1))
0886      -     *dotup(idc1,idc1)*(dconjg(yup(13))*(dconjg(yup(61)) - 
0887      -     dconjg(inpup(idq0,idk1))*inpup(idk1,idb2))+dconjg(yup(17))*
0888      -     (dconjg(inpup(idq0,idk1))*inpup(idb1,idk1) + yup(75))) - 
0889      -     dconjg(inpup(idb1,idq0))*dconjg(inpup(idq0,idk1))*
0890      -     inpup(idc2,idk2)*yup(34)*yup(84))
0891 c...helicity(29)=(-,+,+,+,-,-)

0892         do mm=1,4
0893            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
0894         end do
0895           end if
0896 
0897 c...helicity(14)=(+,-,-,-,+,-)

0898         kk=14
0899         if(iqqbar.eq.0) then
0900           bfun(1,ii,kk)=(-4*dconjg(yup(10))*pmomup(5,idb1)*
0901      -     (dotup(idc1,idc1)*(-(dconjg(inpup(idb2,idq0))*yup(3)) - 
0902      -     dconjg(inpup(idb1,idq0))*yup(6)-dconjg(inpup(idq0,idk1)) 
0903      -     *yup(19))*yup(31) +dconjg(inpup(idc1,idq0))*yup(1)*
0904      -     (yup(23) + yup(24) - yup(33))*yup(34)))/dconjg(yup(8))
0905         bfun(2,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idb1)*yup(9)*
0906      -     (yup(23) + yup(24) - yup(33))*(dconjg(inpup(idq0,idk1))
0907      -     *dconjg(yup(4))+dconjg(inpup(idc1,idq0))*yup(34)))/
0908      -     dconjg(yup(8))
0909           bfun(3,ii,kk)=(4*dconjg(yup(16))*pmomup(5,idb1)*
0910      -     (dotup(idc1,idc1)*(-(dconjg(inpup(idb2,idq0))*yup(3)) - 
0911      -     dconjg(inpup(idb1,idq0))*yup(6)-dconjg(inpup(idq0,idk2)) 
0912      -     *yup(8))*yup(31) -dconjg(inpup(idc1,idq0))*yup(1)*
0913      -     (dconjg(inpup(idq0,idk2))*inpup(idc2,idk2) - yup(23)
0914      -     - yup(24))*yup(34)))/dconjg(yup(8))
0915           bfun(4,ii,kk)=(-4*dconjg(yup(16))*pmomup(5,idb1)*yup(9)*
0916      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(11))*yup(27)) + 
0917      -     dconjg(inpup(idq0,idk1))*dconjg(yup(4))*(yup(23)+yup(24)
0918      -     - yup(33)) +dconjg(inpup(idc1,idq0))*(yup(23) + yup(24))*
0919      -     yup(34)))/dconjg(yup(8))
0920           bfun(5,ii,kk)=0.0d0
0921           bfun(8,ii,kk)=(-4*(dconjg(yup(12)) - dconjg(yup(18)))*
0922      -     pmomup(5,idb1)*yup(9)*(yup(23) + yup(24))*
0923      -     (dconjg(inpup(idq0,idk1))*dconjg(yup(4)) + 
0924      -     dconjg(inpup(idc1,idq0))*yup(34)))/dconjg(yup(8))
0925           bfun(9,ii,kk)=(4*dconjg(inpup(idc1,idq0))*dconjg(yup(11))*
0926      -     pmomup(5,idb1)*yup(5)*(yup(29) + yup(30)))/dconjg(yup(8))
0927 c...helicity(30)=(-,+,+,+,-,+)

0928         do mm=1,9
0929            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0930      &     -dconjg(bfun(mm,ii,kk))
0931         end do
0932           end if
0933 
0934 c...helicity(15)=(+,-,-,-,-,+)

0935         kk=15
0936         if(iqqbar.eq.0) then
0937           bfun(1,ii,kk)=(-4*dconjg(yup(1))*pmomup(5,idb1)*
0938      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(13))*
0939      -     dotup(idc1,idc1)*yup(13)) +dconjg(inpup(idc1,idk2)) 
0940      -     *yup(19)*(-(dconjg(yup(2))*yup(5))+yup(24)*yup(34)) + 
0941      -     dconjg(inpup(idc1,idq0))*yup(10)*(-(yup(5)*(dconjg(yup(2))
0942      -     + yup(25))) +(yup(23) + yup(24))*yup(34))))/yup(8)
0943         bfun(2,ii,kk)=(-4*pmomup(5,idb1)*(dconjg(inpup(idq0,idk2))
0944      -     *dconjg(yup(2))*dotup(idc1,idc1)*yup(19)*yup(31) - 
0945      -     dconjg(yup(9))*(-(dconjg(inpup(idq0,idk2))*dconjg(yup(13))
0946      -     *dotup(idc1,idc1)*yup(13)) +(dconjg(inpup(idc1,idk2)) 
0947      -     *yup(19)*yup(24) +dconjg(inpup(idc1,idq0))*yup(10)*
0948      -     (yup(23) + yup(24)))*yup(34))))/yup(8)
0949           bfun(3,ii,kk)=(4*dconjg(yup(1))*pmomup(5,idb1)*
0950      -     (dconjg(inpup(idb1,idq0))*dotup(idc1,idc1)*yup(17)*yup(19) + 
0951      -     dconjg(inpup(idc1,idk2))*yup(19)*(-(yup(5)*yup(25)) +
0952      -     yup(23)*yup(34)) +dconjg(inpup(idc1,idq0))*yup(16)*
0953      -     (-(yup(5)*(dconjg(yup(2)) + yup(25))) +(yup(23) + yup(24)) 
0954      -     *yup(34))))/yup(8)
0955           bfun(4,ii,kk)=(4*pmomup(5,idb1)*(dconjg(inpup(idq0,idk2))
0956      -     *dotup(idc1,idc1)*yup(19)*yup(25)*yup(31) - 
0957      -     dconjg(yup(9))*(dconjg(inpup(idb1,idq0))*dotup(idc1,idc1)*
0958      -     yup(17)*yup(19) + (dconjg(inpup(idc1,idk2))*yup(19)*yup(23)+ 
0959      -     dconjg(inpup(idc1,idq0))*yup(16)*(yup(23) + yup(24)))
0960      -     *yup(34))))/yup(8)
0961           bfun(5,ii,kk)=(-2*dconjg(inpup(idq0,idk2))*dconjg(yup(1))*
0962      -     pmomup(5,idb1)*yup(27)*(yup(29) + yup(30)))/yup(8)
0963           bfun(8,ii,kk)=(4*pmomup(5,idb1)*(yup(23) + yup(24))*
0964      -     (dconjg(inpup(idq0,idk2))*(dconjg(yup(9))*dconjg(yup(14))
0965      -     *yup(18) +2*dconjg(yup(4))*dotup(idc1,idk1)*yup(27)) + 
0966      -     dconjg(inpup(idc1,idq0))*dconjg(yup(9))*(-yup(12)+yup(18))
0967      -     *yup(34)))/yup(8)
0968           bfun(9,ii,kk)=(-4*dconjg(inpup(idc1,idq0))*pmomup(5,idb1)
0969      -    *yup(15)*(dconjg(yup(2))+yup(25))*yup(28))/yup(8)
0970 c...helicity(31)=(-,+,+,+,+,-)

0971         do mm=1,9
0972            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
0973      &     -dconjg(bfun(mm,ii,kk))
0974         end do
0975           end if
0976 
0977 c...helicity(16)=(+,-,-,-,-,-)

0978         kk=16
0979         if(iqqbar.eq.0) then
0980           bfun(1,ii,kk)=(4*dconjg(inpup(idc1,idq0))*dconjg(yup(1))*
0981      -     dconjg(yup(10))*pmomup(5,idb1)*(yup(5)*(dconjg(yup(2))
0982      -     - dconjg(yup(7)) +yup(25)) - (yup(23) + yup(24)-yup(33))
0983      -     *yup(34)))/xup(2)
0984         bfun(2,ii,kk)=(4*dconjg(inpup(idc1,idq0))*dconjg(yup(9))*
0985      -     dconjg(yup(10))*pmomup(5,idb1)*(yup(23) + yup(24) 
0986      -     - yup(33))*yup(34))/xup(2)
0987           bfun(3,ii,kk)=(4*dconjg(inpup(idc1,idq0))*dconjg(yup(1))*
0988      -     dconjg(yup(16))*pmomup(5,idb1)*(-(dconjg(inpup(idq0,idk2))
0989      -     *inpup(idk2,idk1)*yup(5)) -yup(5)*(dconjg(yup(2)) + 
0990      -     yup(25)) +(-(dconjg(inpup(idq0,idk2))*inpup(idc2,idk2)) + 
0991      -     yup(23) + yup(24))*yup(34)))/xup(2)
0992           bfun(4,ii,kk)=(4*dconjg(inpup(idc1,idq0))*dconjg(yup(9))*
0993      -     dconjg(yup(16))*pmomup(5,idb1)*(dconjg(inpup(idq0,idk2))
0994      -     *inpup(idc2,idk2) -yup(23) - yup(24))*yup(34))/xup(2)
0995           bfun(5,ii,kk)=0.0d0
0996           bfun(8,ii,kk)=(-4*dconjg(inpup(idc1,idq0))*dconjg(yup(9))*
0997      -    (dconjg(yup(12))-dconjg(yup(18)))*pmomup(5,idb1)*(yup(23)+
0998      -    yup(24))*yup(34))/xup(2)
0999           bfun(9,ii,kk)=0.0d0
1000 c...helicity(32)=(-,+,+,+,+,+)

1001         do mm=1,9
1002            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
1003      &     -dconjg(bfun(mm,ii,kk))
1004         end do
1005           end if
1006 
1007 c****************************************************************

1008           if(iqqbar.eq.1) then
1009         bfun(1,ii,kk)=-4*pmomup(5,idb1)*(-(dconjg(inpup(idq0,idk2))**2
1010      -     *dotup(idc1,idc1)*inpup(idk2,idk1)*yup(30)) - yup(34)*(-
1011      -     (dconjg(inpup(idc1,idq0))*dconjg(yup(45))*yup(25)) + 
1012      -     dconjg(inpup(idc1,idk2))*yup(24)*(dconjg(yup(7)) + 
1013      -     yup(25)) +dconjg(inpup(idc1,idq0))*yup(23)*yup(53)) + 
1014      -     dconjg(inpup(idq0,idk2))*(dotup(idc1,idc1)*
1015      -     (-(dconjg(inpup(idb2,idq0))*dconjg(yup(35))*inpup(idb1,idk1))
1016      -     + yup(25)*yup(30)) +yup(34)*(-(dconjg(inpup(idc1,idq0))*
1017      -     dotup(idb1,idb1)*inpup(idc2,idk1)) +yup(24)*yup(81))))
1018         bfun(2,ii,kk)=4*pmomup(5,idb1)*(-(dconjg(inpup(idb1,idq0))
1019      -     *dconjg(yup(2))* dotup(idc1,idc1)*yup(17)) - 
1020      -     dconjg(inpup(idq0,idk2))*dconjg(yup(2))*dotup(idc1,idc1)
1021      -     *yup(29) -dconjg(inpup(idq0,idk2))**2*dotup(idc1,idc1)*
1022      -     inpup(idk2,idk1)*yup(29) + dconjg(inpup(idc1,idq0))*
1023      -     dconjg(yup(2))*dconjg(yup(45))*yup(34) - 
1024      -     dconjg(inpup(idc1,idq0))*dconjg(inpup(idq0,idk2))*
1025      -     dotup(idb1,idb1)*inpup(idc2,idk1)*yup(34) - 
1026      -     dconjg(inpup(idc1,idk2))*dconjg(yup(2))*yup(23)*
1027      -     yup(34) - dconjg(inpup(idc1,idk2))*dconjg(yup(7))*
1028      -     yup(23)*yup(34) + dconjg(inpup(idq0,idk2))*dconjg(yup(49))
1029      -     *yup(23)*yup(34) - dconjg(inpup(idc1,idq0))*yup(24)*
1030      -     yup(34)*yup(60))
1031         bfun(3,ii,kk)=4*pmomup(5,idb1)*(dconjg(yup(8))*dotup(idc1,idc1)*
1032      -     (dconjg(inpup(idq0,idk1))*dconjg(yup(2)) + 
1033      -     dconjg(inpup(idb1,idq0))*(yup(21) + yup(26)))
1034      -     + dconjg(inpup(idq0,idk2))*(dconjg(yup(2)) + yup(25))*
1035      -     (dconjg(yup(1))*yup(9) +dconjg(yup(11))*yup(18) - 
1036      -     dotup(idc1,idc1)*(yup(19)+yup(31)))-dconjg(inpup(idq0,idk2))
1037      -     *dconjg(yup(16))*(-(dconjg(yup(8))*dotup(idc1,idc1)) + 
1038      -     dconjg(inpup(idc1,idk2))*inpup(idc2,idk1)*yup(34)) + 
1039      -     yup(34)*(-(dconjg(inpup(idb1,idq0))*
1040      -     dconjg(inpup(idc1,idk2))*inpup(idc2,idk1)*(yup(21)+yup(26)))+ 
1041      -     dconjg(inpup(idc1,idq0))*(yup(23) + yup(24))*(yup(53) + 
1042      -     yup(60))) -dconjg(inpup(idc1,idk2))*dconjg(yup(2))*yup(34)*
1043      -     yup(80))
1044           bfun(4,ii,kk)=-4*pmomup(5,idb1)*(dconjg(inpup(idb2,idq0))
1045      -     *dotup(idc1,idc1)*yup(13)*(dconjg(yup(2)) + yup(25)) + 
1046      -     dconjg(inpup(idb1,idq0))*dotup(idc1,idc1)*yup(17)*
1047      -     (dconjg(yup(2)) + yup(25)) + dconjg(inpup(idq0,idk2))
1048      -     *dotup(idc1,idc1)*yup(25)*yup(31)-dconjg(inpup(idb1,idq0))*
1049      -     dconjg(inpup(idc1,idk2))*inpup(idc2,idk1)*yup(21)*yup(34)+ 
1050      -     dconjg(inpup(idc1,idk2))*yup(23)*yup(25)*yup(34) +
1051      -     dconjg(inpup(idc1,idk2))*yup(24)*yup(25)*yup(34) + 
1052      -     dconjg(yup(2))*(dconjg(inpup(idq0,idk2))*dotup(idc1,idc1)*
1053      -     yup(31) + dconjg(inpup(idc1,idk2))*(yup(23) + yup(24))
1054      -     *yup(34))-dconjg(inpup(idb2,idq0))*dconjg(inpup(idc1,idk2))*
1055      -     inpup(idc2,idk1)*yup(34)*yup(38))
1056 c...helicity(32)=(-,+,+,+,+,+)

1057         do mm=1,4
1058              bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
1059         end do
1060           end if
1061       
1062         if(ibcstate.eq.1) go to 1211
1063 
1064 c...helicity(33)=(+,+,-,+,+,+)

1065         kk=33
1066         if(iqqbar.eq.0) then
1067           bfun(1,ii,kk)=(-4*dconjg(yup(35))*pmomup(5,idc1)*yup(1)*yup(10)
1068      -     *(-(dconjg(yup(38))*inpup(idq0,idb1)) + inpup(idq0,idb1)*
1069      -     (dconjg(yup(42)) + yup(36))))/xup(1)
1070         bfun(2,ii,kk)=(4*pmomup(5,idc1)*yup(9)*yup(10)*
1071      -     (inpup(idq0,idk1)*yup(2)*yup(29) + dconjg(yup(35))*
1072      -     inpup(idq0,idb1)*(dconjg(yup(42)) + yup(36))))/xup(1)
1073           bfun(3,ii,kk)=(-4*pmomup(5,idc1)*yup(1)*yup(16)*
1074      -     (-(inpup(idq0,idb1)*(-(dconjg(yup(35))*dconjg(yup(38))) + 
1075      -     dconjg(yup(17))*yup(12))) +inpup(idq0,idb1)*
1076      -     (dconjg(yup(17))*(yup(11) + yup(18)) -dconjg(yup(35))* 
1077      -     (dconjg(yup(42)) + yup(36)))))/xup(1)
1078           bfun(4,ii,kk)=(-4*pmomup(5,idc1)*yup(9)*yup(16)*
1079      -     (inpup(idq0,idk1)*(yup(2)-yup(7))*yup(29)+inpup(idq0,idb1)*
1080      -     (-(dconjg(yup(17))*(yup(11) + yup(18))) +dconjg(yup(35)) 
1081      -     *(dconjg(yup(42)) + yup(36)))))/xup(1)
1082           bfun(5,ii,kk)=0.0d0
1083           bfun(8,ii,kk)=(-4*dconjg(yup(35))*pmomup(5,idc1)*yup(9)*
1084      -     (yup(12)-yup(18))*(-((dconjg(yup(38))+dconjg(yup(41)))*
1085      -     inpup(idq0,idb1)) + inpup(idq0,idb1)*(dconjg(yup(42)) +
1086      -     yup(36))))/xup(1)
1087           bfun(9,ii,kk)=0.0d0
1088 c...helicity(49)=(-,-,+,-,-,-)

1089         do mm=1,9
1090            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
1091      &     -dconjg(bfun(mm,ii,kk))
1092         end do
1093           end if
1094 
1095 c*****************************************************************

1096           if(iqqbar.eq.1) then
1097         bfun(1,ii,kk)=4*pmomup(5,idc1)*(dotup(idb1,idb1)*
1098      -     (dconjg(yup(39))*inpup(idc1,idq0) +dconjg(yup(24))* 
1099      -     inpup(idc2,idq0))*yup(8)+dconjg(yup(35))*(dconjg(yup(42))
1100      -     +yup(36))*(inpup(idb1,idk2)*yup(7)+inpup(idq0,idb1)* 
1101      -     yup(46)))
1102         bfun(2,ii,kk)=-4*pmomup(5,idc1)*(dotup(idb1,idb1)*
1103      -     (dconjg(yup(15))*inpup(idc1,idq0) + dconjg(yup(14))*
1104      -     inpup(idc2,idq0))*yup(2) + dconjg(inpup(idk2,idk1))*
1105      -     dotup(idb1,idb1)*inpup(idq0,idk2)**2*(yup(27)+yup(28)) + 
1106      -     dotup(idb1,idb1)*inpup(idq0,idk2)*(yup(2)*(yup(27) +
1107      -     yup(28)) -dconjg(inpup(idc2,idk1))*inpup(idq0,idb1)*
1108      -     yup(37)) -dconjg(inpup(idc1,idk1))*dotup(idb1,idb1)*
1109      -     inpup(idq0,idb1)*inpup(idq0,idk2)*yup(43)+dconjg(yup(35))
1110      -     *inpup(idq0,idb1)*((yup(1) + yup(9))*yup(48) + 
1111      -     (dconjg(yup(42)) + yup(36))*yup(50)))
1112           bfun(3,ii,kk)=4*pmomup(5,idc1)*(dconjg(yup(40))*
1113      -     inpup(idq0,idc1)*(dconjg(yup(10))*yup(2) - dotup(idb1,idb1)
1114      -     *yup(8))+dconjg(yup(79))*inpup(idq0,idc1)*(dconjg(yup(10))
1115      -     *yup(2) -dotup(idb1,idb1)*yup(8))+dconjg(inpup(idq0,idk1))
1116      -     *dotup(idb1,idb1)*inpup(idq0,idk2)**2*yup(11) + 
1117      -     inpup(idq0,idk2)* (-(dconjg(yup(10))*(yup(2)*yup(11) 
1118      -     - (yup(1) + yup(9))*yup(16))) + yup(2)*(yup(1) + yup(9))
1119      -     *yup(25) -dotup(idb1,idb1)*((yup(1) + yup(9)) *yup(19) +
1120      -     yup(9)*yup(31)))+ dconjg(yup(35))*(-(dconjg(yup(38))*
1121      -     inpup(idb1,idk2)*yup(1))+inpup(idq0,idb1)*(dconjg(yup(42))
1122      -     + yup(36))*(yup(46) + yup(50))))
1123           bfun(4,ii,kk)=-4*pmomup(5,idc1)*(dotup(idb1,idb1)*
1124      -     ((dconjg(yup(20)) + dconjg(yup(39)))*inpup(idc1,idq0) + 
1125      -     (dconjg(yup(23))+dconjg(yup(24)))*inpup(idc2,idq0))*yup(8)- 
1126      -     inpup(idq0,idk2)*((yup(1)+yup(9))*(dotup(idb1,idb1)*yup(31)- 
1127      -     dconjg(yup(35))*yup(51)) + dconjg(inpup(idb2,idk1))*
1128      -     dconjg(yup(35))*(inpup(idc2,idq0)*yup(83) + 
1129      -     inpup(idc1,idq0)*yup(84))))
1130 c...helicity(49)=(-,-,+,-,-,-)

1131         do mm=1,4
1132            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
1133         end do
1134           end if
1135 
1136 c...helicity(34)=(+,+,-,+,+,-)

1137         kk=34
1138         if(iqqbar.eq.0) then
1139           bfun(1,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idc1)*yup(1)*
1140      -     (-(dconjg(yup(38))*inpup(idq0,idk2)*yup(13)) + 
1141      -     inpup(idq0,idk2)*yup(13)*(dconjg(yup(42))+yup(36)) - 
1142      -     dconjg(yup(35))*(-(dconjg(yup(38))*inpup(idq0,idb1)) + 
1143      -     inpup(idq0,idb1)*(dconjg(yup(42))+yup(36)))))/dconjg(yup(8))
1144         bfun(2,ii,kk)=(-4*dconjg(yup(10))*pmomup(5,idc1)*yup(9)*
1145      -     (inpup(idq0,idk1)*yup(2)*(yup(19) - yup(29)) + 
1146      -     (-(dconjg(yup(35))*inpup(idq0,idb1)) + inpup(idq0,idk2)
1147      -     *yup(13))*(dconjg(yup(42)) + yup(36))))/dconjg(yup(8))
1148           bfun(3,ii,kk)=(-4*pmomup(5,idc1)*yup(1)*(dotup(idb1,idb1)
1149      -     *yup(19)*(inpup(idq0,idk2)*(yup(27) + yup(28)) - 
1150      -     inpup(idq0,idk2)*yup(31))-dconjg(yup(16))*dconjg(yup(35))*
1151      -     (-(dconjg(yup(38))*inpup(idq0,idb1)) + inpup(idq0,idb1)*
1152      -     (dconjg(yup(42)) + yup(36)))))/dconjg(yup(8))
1153           bfun(4,ii,kk)=(-4*pmomup(5,idc1)*yup(9)*
1154      -     (-(dotup(idb1,idb1)*inpup(idq0,idk2)*yup(19)*(yup(27) + 
1155      -     yup(28))) +inpup(idq0,idk1)*(dotup(idb1,idb1)
1156      -     *yup(8)*yup(19) +dconjg(yup(16))*yup(2)*yup(29)) + 
1157      -     dconjg(yup(16))*dconjg(yup(35))*inpup(idq0,idb1)
1158      -     *(dconjg(yup(42)) + yup(36))))/dconjg(yup(8))
1159           bfun(5,ii,kk)=0.0d0
1160           bfun(8,ii,kk)=(-4*pmomup(5,idc1)*yup(9)*(inpup(idq0,idk2)*
1161      -     ((dconjg(yup(10))*dconjg(yup(24)) - dconjg(yup(14))
1162      -     *dotup(idb1,idb1))*yup(14)+2*dconjg(yup(35))*dotup(idc1,idk1)
1163      -     *yup(35))+(dconjg(yup(12))-dconjg(yup(18)))*dconjg(yup(35))*
1164      -     (-(dconjg(yup(38))*inpup(idq0,idb1)) +inpup(idq0,idb1) 
1165      -     *(dconjg(yup(42)) + yup(36)))))/dconjg(yup(8))
1166           bfun(9,ii,kk)=(4*inpup(idq0,idk2)*pmomup(5,idc1)*
1167      -     (dconjg(inpup(idc1,idb2))*dconjg(yup(35))*inpup(idq0,idb1)
1168      -     *yup(5) +yup(2)*yup(28)*yup(29)))/dconjg(yup(8))
1169 c...helicity(50)=(-,-,+,-,-,+)

1170         do mm=1,9
1171            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
1172      &     -dconjg(bfun(mm,ii,kk))
1173         end do
1174           end if
1175 
1176 c...helicity(35)=(+,+,-,+,-,+)

1177         kk=35
1178         if(iqqbar.eq.0) then
1179           bfun(1,ii,kk)=(4*pmomup(5,idc1)*(-(dotup(idb1,idb1)*
1180      -     inpup(idq0,idk1)*yup(18)*yup(19)*yup(31)) - 
1181      -     yup(10)*(dconjg(yup(5))*dotup(idb1,idb1)*
1182      -     inpup(idq0,idc1)*yup(31) + dconjg(yup(35))*
1183      -     (dconjg(yup(42))*inpup(idk1,idb1)*yup(31) + 
1184      -     dconjg(yup(1))*inpup(idq0,idb1)*
1185      -     (dconjg(yup(42)) + yup(36))))))/yup(8)
1186         bfun(2,ii,kk)=(4*pmomup(5,idc1)*(inpup(idq0,idk1)*yup(4)*
1187      -     (dotup(idb1,idb1)*(-(dconjg(yup(8))*dconjg(yup(33))) + 
1188      -     dconjg(yup(4))*yup(10))-dconjg(yup(24))*yup(10)*yup(25))+ 
1189      -     dconjg(yup(9))*dconjg(yup(35))*inpup(idq0,idb1)*
1190      -     yup(10)*(dconjg(yup(42)) + yup(36))))/yup(8)
1191           bfun(3,ii,kk)=(4*pmomup(5,idc1)*yup(16)*
1192      -     (dconjg(yup(5))*dotup(idb1,idb1)*inpup(idq0,idc1)*
1193      -     yup(31)+inpup(idk1,idb1)*(dconjg(yup(35))*dconjg(yup(42)) - 
1194      -     dconjg(yup(17))*yup(18))*yup(31) + dconjg(yup(1))*
1195      -     inpup(idq0,idb1)*(-(dconjg(yup(17))*(yup(11) + yup(18))) + 
1196      -     dconjg(yup(35))*(dconjg(yup(42)) + yup(36)))))/yup(8)
1197           bfun(4,ii,kk)=(-4*pmomup(5,idc1)*yup(16)*(inpup(idq0,idk1)
1198      -     *yup(4)*(dconjg(yup(4))*dotup(idb1,idb1) + 
1199      -     (-dconjg(yup(24))+dconjg(yup(33)))*yup(25))+dconjg(yup(9))
1200      -     *inpup(idq0,idb1)*(-(dconjg(yup(17))*(yup(11) + yup(18))) + 
1201      -     dconjg(yup(35))*(dconjg(yup(42)) + yup(36)))))/yup(8)
1202           bfun(5,ii,kk)=(2*inpup(idq0,idk1)*pmomup(5,idc1)*yup(16)*
1203      -     (yup(27) + yup(28))*yup(29))/yup(8)
1204           bfun(8,ii,kk)=(-4*pmomup(5,idc1)*(inpup(idq0,idk1)*yup(4)
1205      -     *(yup(12) - yup(18))*(dconjg(yup(4))*dotup(idb1,idb1) - 
1206      -     dconjg(yup(24))*yup(25)) +2*dotup(idc1,idk1)*
1207      -     (-(inpup(idq0,idk1)*yup(16)*yup(27)*yup(29)) + 
1208      -     dconjg(yup(8))*dconjg(yup(35))*inpup(idq0,idb1)*yup(36)) + 
1209      -     dconjg(yup(9))*dconjg(yup(35))*(dconjg(yup(41))*
1210      -     inpup(idq0,idb1)*yup(18)+inpup(idq0,idb1)*(yup(12)-yup(18))*
1211      -     (dconjg(yup(42)) + yup(36)))))/yup(8)
1212           bfun(9,ii,kk)=(-4*dconjg(yup(3))*dconjg(yup(35))*
1213      -    inpup(idq0,idb1)*pmomup(5,idc1)*yup(11))/yup(8)
1214 c...helicity(51)=(-,-,+,-,+,-)

1215         do mm=1,9
1216            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
1217      &     -dconjg(bfun(mm,ii,kk))
1218         end do
1219           end if
1220 
1221 c...helicity(36)=(+,+,-,+,-,-)

1222         kk=36
1223         if(iqqbar.eq.0) then
1224           bfun(1,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idc1)*
1225      -     (-(dconjg(yup(5))*dotup(idb1,idb1)*inpup(idq0,idc1)
1226      -     *yup(31)) +dconjg(yup(42))*(-(dconjg(yup(35))*
1227      -     inpup(idk1,idb1)) -inpup(idk2,idk1)*yup(13))*yup(31) - 
1228      -     dconjg(yup(1))*dconjg(yup(35))*inpup(idq0,idb1)*
1229      -     (dconjg(yup(42))+yup(36))+dconjg(yup(1))*inpup(idq0,idk2)
1230      -     *yup(13)*(dconjg(yup(42)) + yup(36))))/xup(2)
1231         bfun(2,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idc1)*
1232      -     (inpup(idq0,idk1)*yup(4)*(dconjg(yup(4))*dotup(idb1,idb1)+ 
1233      -     dconjg(yup(24))*(dconjg(yup(7)) - yup(25)))- dconjg(yup(9))*
1234      -     (-(dconjg(yup(35))*inpup(idq0,idb1)) +inpup(idq0,idk2) 
1235      -     *yup(13))*(dconjg(yup(42)) + yup(36))))/xup(2)
1236           bfun(3,ii,kk)=(-4*pmomup(5,idc1)*(dconjg(yup(1))*
1237      -     dotup(idb1,idb1)*inpup(idq0,idk2)*yup(19)*(yup(27)
1238      -     + yup(28)) -dotup(idb1,idb1)*inpup(idk2,idk1)*yup(19)*
1239      -     yup(27)*yup(31) - dconjg(yup(16))*(dconjg(yup(5))*
1240      -     dotup(idb1,idb1)*inpup(idq0,idc1)*yup(31) +dconjg(yup(35))*
1241      -     (dconjg(yup(42))*inpup(idk1,idb1)*yup(31) + dconjg(yup(1))
1242      -     *inpup(idq0,idb1)*(dconjg(yup(42))+yup(36))))))/xup(2)
1243           bfun(4,ii,kk)=(4*pmomup(5,idc1)*(-(dconjg(yup(4))
1244      -     *dotup(idb1,idb1)*inpup(idk2,idk1)*yup(4)*yup(19)) + 
1245      -     dconjg(yup(9))*dotup(idb1,idb1)*inpup(idq0,idk2)*yup(19)
1246      -     *(yup(27)+yup(28))-dconjg(yup(16))*(inpup(idq0,idk1)*yup(4)*
1247      -     (dconjg(yup(4))*dotup(idb1,idb1) -dconjg(yup(24))*yup(25)) + 
1248      -     dconjg(yup(9))*dconjg(yup(35))*inpup(idq0,idb1)*
1249      -     (dconjg(yup(42)) + yup(36)))))/xup(2)
1250         bfun(5,ii,kk)=(2*dconjg(yup(10))*inpup(idq0,idk1)*pmomup(5,idc1)
1251      -     *(yup(27) + yup(28))*yup(30))/xup(2)
1252           bfun(8,ii,kk)=(-4*pmomup(5,idc1)*(dconjg(yup(9))*
1253      -     (dconjg(yup(10))*dconjg(yup(24)) -dconjg(yup(14))* 
1254      -     dotup(idb1,idb1))*inpup(idq0,idk2)*yup(14) +inpup(idq0,idk1)*
1255      -     (dotup(idb1,idb1)*(dconjg(yup(4))*(dconjg(yup(12)) -
1256      -     dconjg(yup(18)))*yup(4) + dconjg(yup(12))*dconjg(yup(14))
1257      -     *yup(14)) - dconjg(yup(24))*(dconjg(yup(10))*dconjg(yup(12))
1258      -     *yup(14)+(dconjg(yup(12))-dconjg(yup(18)))*yup(4)*yup(25)))+ 
1259      -     dconjg(yup(35))*(-2*dotup(idc1,idk1)*inpup(idk2,idk1)*yup(27)
1260      -     * yup(35) +dconjg(yup(9))*(dconjg(yup(12))-dconjg(yup(18)))*
1261      -     inpup(idq0,idb1)*(dconjg(yup(42)) + yup(36)))))/xup(2)
1262           bfun(9,ii,kk)=(-4*dconjg(yup(35))*inpup(idk2,idk1)
1263      -     *pmomup(5,idc1)*yup(28)*yup(35))/xup(2)
1264 c...helicity(52)=(-,-,+,-,+,+)

1265         do mm=1,9
1266            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
1267      &     -dconjg(bfun(mm,ii,kk))
1268         end do
1269           end if
1270 
1271 c*********************************************************

1272           if(iqqbar.eq.1) then
1273         bfun(1,ii,kk)=4*pmomup(5,idc1)*(dconjg(yup(8))*
1274      -     dotup(idb1,idb1)*(dconjg(yup(39))*inpup(idc1,idq0) + 
1275      -     dconjg(yup(24))*inpup(idc2,idq0)) + dconjg(yup(35))*
1276      -     (dconjg(yup(42))+ yup(36))*(-(inpup(idk1,idb1)*yup(12)) + 
1277      -     inpup(idq0,idb1)*yup(53)))
1278         bfun(2,ii,kk)=-4*pmomup(5,idc1)*(dotup(idb1,idb1)*
1279      -     (dconjg(yup(5))*inpup(idc1,idq0) + dconjg(yup(4))*
1280      -     inpup(idc2,idq0))*(yup(12) + yup(16)) + 
1281      -     dotup(idb1,idb1)*inpup(idq0,idk1)*(yup(16)*(yup(27) + 
1282      -     yup(28)) -dconjg(inpup(idc2,idk2))*inpup(idq0,idb1)*
1283      -     yup(37)) -dconjg(inpup(idc1,idk2))*dotup(idb1,idb1)*
1284      -     inpup(idq0,idb1)*inpup(idq0,idk1)*yup(43)+dconjg(yup(35))
1285      -     *inpup(idq0,idb1)*((yup(11) + yup(18))*yup(59) + 
1286      -     (dconjg(yup(42)) + yup(36))*yup(60)))
1287           bfun(3,ii,kk)=4*pmomup(5,idc1)*(dconjg(inpup(idq0,idk2))
1288      -     *dotup(idb1,idb1)*inpup(idq0,idk1)**2*yup(1) + 
1289      -     (dconjg(yup(40)) + dconjg(yup(79)))*inpup(idq0,idc1)*
1290      -     (-(dconjg(yup(8))*dotup(idb1,idb1)) +yup(16)*yup(25)) + 
1291      -     inpup(idq0,idk1)*(dconjg(yup(10))*yup(16)*(yup(11)+yup(18))+ 
1292      -     (-(yup(1)*yup(16)) + yup(2)*(yup(11) + yup(18)))*yup(25) - 
1293      -     dotup(idb1,idb1)* (yup(18)*yup(19) + (yup(11) + yup(18))*
1294      -     yup(31))) +dconjg(yup(35))*(-(dconjg(yup(41))*
1295      -     inpup(idb1,idk1)*yup(11)) + inpup(idq0,idb1)*
1296      -     (dconjg(yup(42)) + yup(36))*(yup(53) + yup(60))))
1297           bfun(4,ii,kk)=4*pmomup(5,idc1)*(yup(11) + yup(18))*
1298      -     (dotup(idb1,idb1)*(-(dconjg(yup(6))*inpup(idq0,idb1)) - 
1299      -     dconjg(yup(3))*inpup(idq0,idb2) + dconjg(inpup(idq0,idk1))
1300      -     *inpup(idq0,idk1)**2)+ dconjg(yup(35))*inpup(idb1,idk1)*
1301      -     (-dconjg(yup(38)) + yup(61)))
1302 c...helicity(52)=(-,-,+,-,+,+)

1303         do mm=1,4
1304              bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
1305         end do
1306           end if
1307 
1308 c...helicity(37)=(+,+,-,-,+,+)

1309         kk=37
1310         if(iqqbar.eq.0) then
1311           bfun(1,ii,kk)=(4*(yup(1)*(-(dconjg(inpup(idc1,idb2))*
1312      -     dconjg(yup(35))*inpup(idc2,idb1)*yup(10))+dotup(idb1,idb1)*
1313      -     (dconjg(yup(34))*yup(10) + dconjg(inpup(idc1,idk2))*
1314      -     inpup(idc2,idq0)*yup(19)))*yup(34) +dotup(idc1,idc1)*yup(10)*
1315      -     (yup(2)*yup(29)*yup(31)+dconjg(yup(35))*yup(1)*yup(35))))
1316      -     /xup(1)
1317         bfun(2,ii,kk)=(4*yup(9)*(-(dotup(idb1,idb1)*(-(dconjg(yup(4))*
1318      -     (yup(4)*yup(10) -dconjg(inpup(idk2,idk1))*
1319      -     inpup(idc2,idq0)*yup(19))) +dconjg(yup(34))*yup(10)*yup(34) + 
1320      -     dconjg(inpup(idc1,idk2))*inpup(idc2,idq0)*yup(19)*yup(34))) + 
1321      -     dconjg(yup(35))*yup(10)*(dconjg(inpup(idb2,idk1))*
1322      -     dconjg(yup(4))*inpup(idc2,idb1) + dconjg(inpup(idc1,idb2))
1323      -     *inpup(idc2,idb1)*yup(34)-dotup(idc1,idc1)*yup(35))))/xup(1)
1324           bfun(3,ii,kk)=(4*yup(16)*(-((dconjg(yup(34))*dotup(idb1,idb1) + 
1325      -     (dconjg(inpup(idc1,idk2))*dconjg(yup(17)) - 
1326      -     dconjg(inpup(idc1,idb2))*dconjg(yup(35)))*inpup(idc2,idb1))
1327      -     *yup(1)*yup(34))+dotup(idc1,idc1)*((-yup(2)+yup(7))*yup(29)
1328      -     *yup(31) +yup(1)*(dconjg(yup(17))*yup(17) - dconjg(yup(35))
1329      -     *yup(35)))))/xup(1)
1330           bfun(4,ii,kk)=(-4*yup(9)*yup(16)*(dotup(idb1,idb1)*
1331      -     (dconjg(yup(4))*yup(4) - dconjg(yup(34))*yup(34)) + 
1332      -     dconjg(yup(17))*(-(dconjg(inpup(idk2,idk1))*dconjg(yup(4))*
1333      -     inpup(idc2,idb1)) +dotup(idc1,idc1)*yup(17) - 
1334      -     dconjg(inpup(idc1,idk2))*inpup(idc2,idb1)*yup(34)) + 
1335      -     dconjg(yup(35))*(dconjg(inpup(idb2,idk1))*dconjg(yup(4))*
1336      -     inpup(idc2,idb1) +dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
1337      -     yup(34) - dotup(idc1,idc1)*yup(35))))/xup(1)
1338           bfun(5,ii,kk)=(2*yup(9)*yup(16)*yup(28)*yup(29))/xup(1)
1339           bfun(8,ii,kk)=(4*yup(9)*(yup(12) - yup(18))*
1340      -     (dconjg(yup(14))*yup(16)*yup(23) -dotup(idb1,idb1)*
1341      -     (dconjg(yup(4))*yup(4) + dconjg(yup(14))*yup(14) - 
1342      -     dconjg(yup(34))*yup(34)) +dconjg(yup(35))*
1343      -     (-(dconjg(inpup(idb2,idk1))*dconjg(yup(4))*inpup(idc2,idb1))- 
1344      -     dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
1345      -     yup(34) + dotup(idc1,idc1)*yup(35))))/xup(1)
1346           bfun(9,ii,kk)=(-4*dconjg(inpup(idk2,idk1))*dconjg(yup(35))*
1347      -     dconjg(yup(42))*inpup(idq0,idb1)*yup(28))/xup(1)
1348 c...helicity(53)=(-,-,+,+,-,-)

1349         do mm=1,9
1350            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
1351      &     dconjg(bfun(mm,ii,kk))
1352         end do
1353           end if
1354 
1355 c****************************************************************

1356           if(iqqbar.eq.1) then
1357         bfun(1,ii,kk)=4*(dconjg(yup(35))*((dconjg(inpup(idc1,idb2))
1358      -     *inpup(idc2,idb1)*yup(34) - dotup(idc1,idc1)*yup(35))
1359      -     *yup(46)+ (-(dconjg(yup(13))*dotup(idc1,idc1)) + 
1360      -     dconjg(inpup(idc1,idb2))*inpup(idc2,idk2)*yup(34))*yup(47))- 
1361      -     dotup(idb1,idb1)*(dotup(idc1,idc1)*yup(8)*yup(30) + 
1362      -     yup(34)*(-(dconjg(inpup(idq0,idk1))*dconjg(yup(39))
1363      -     *inpup(idc2,idk2))+dconjg(inpup(idc1,idk1))*inpup(idb1,idk2)*
1364      -     yup(37) +yup(4)*(-dconjg(yup(54)) + yup(74)))))
1365         bfun(2,ii,kk)=4*(dconjg(yup(35))*((dotup(idc1,idc1)*yup(6) - 
1366      -     dconjg(inpup(idc1,idk1))*inpup(idc2,idb1)*yup(34))*yup(48)+ 
1367      -     (-(dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*yup(34)) + 
1368      -     dotup(idc1,idc1)*yup(35))*yup(50)) +dotup(idb1,idb1)*
1369      -     (dotup(idc1,idc1)*yup(8)*yup(29) + yup(34)*
1370      -     (inpup(idc2,idk2)*(dconjg(inpup(idc1,idq0))*yup(2) + 
1371      -     dconjg(inpup(idc1,idq0))*yup(7)) - dconjg(inpup(idc1,idk1))
1372      -     *inpup(idq0,idk2)*yup(23) + dconjg(yup(15))*yup(86))))
1373           bfun(3,ii,kk)=4*(-(dconjg(yup(1))*dconjg(yup(10))*yup(2)*
1374      -     yup(9)) + dconjg(yup(1))*dotup(idb1,idb1)*yup(8)*yup(9) - 
1375      -     dconjg(yup(10))*dconjg(yup(11))*yup(2)*yup(18) + 
1376      -     dconjg(yup(11))*dotup(idb1,idb1)*yup(8)*yup(18) + 
1377      -     dconjg(inpup(idc1,idk1))*inpup(idc2,idk2)*(dconjg(yup(10))
1378      -     *yup(16) + yup(2)*yup(25) - dotup(idb1,idb1)*(yup(19) +
1379      -     yup(31)))*yup(34)-dconjg(yup(34))*dotup(idb1,idb1)*yup(34)*
1380      -     yup(46) - dconjg(yup(34))*dotup(idb1,idb1)*yup(34)*yup(50) + 
1381      -     dconjg(inpup(idc1,idb2))*dconjg(yup(35))*inpup(idc2,idb1)
1382      -     *yup(34)*(yup(46)+yup(50))+dotup(idc1,idc1)*(-(yup(2)*yup(8)
1383      -     *yup(25)) - dconjg(yup(10))*(yup(8)*yup(16)- yup(2)*(yup(19)
1384      -     + yup(31)))- dconjg(yup(35))*yup(35)*(yup(46) + yup(50))))
1385         bfun(4,ii,kk)=4*(-(dconjg(inpup(idq0,idk1))**2*dotup(idb1,idb1)*
1386      -     dotup(idc1,idc1)*inpup(idq0,idk1)*inpup(idq0,idk2)) + 
1387      -     dotup(idc1,idc1)* (dotup(idb1,idb1)*(dconjg(yup(13))*yup(3)+ 
1388      -     dconjg(yup(17))*yup(6)) +  dconjg(yup(35))*
1389      -     (dconjg(inpup(idb2,idk1))*inpup(idq0,idk2)*yup(21) + 
1390      -     dconjg(yup(13))*yup(82))) + inpup(idc2,idk2)*yup(34)*
1391      -     (-(dconjg(inpup(idq0,idk1))*(dconjg(yup(20)) +
1392      -     dconjg(yup(39)))*dotup(idb1,idb1))+dconjg(inpup(idc1,idk1))*
1393      -     (dotup(idb1,idb1)*yup(31) -dconjg(yup(35))*yup(51)) + 
1394      -     dconjg(inpup(idb2,idk1))*dconjg(yup(35))*yup(84)))
1395 c...helicity(53)=(-,-,+,+,-,-)

1396         do mm=1,4
1397              bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
1398         end do
1399           end if
1400 
1401 c...helicity(38)=(+,+,-,-,+,-)

1402         kk=38
1403         if(iqqbar.eq.0) then
1404           bfun(1,ii,kk)=(4*dconjg(yup(10))*(yup(1)*(dconjg(yup(34))
1405      -     *dotup(idb1,idb1) +dconjg(inpup(idc1,idb2))*
1406      -     (-(dconjg(yup(35))*inpup(idc2,idb1)) + inpup(idc2,idk2)
1407      -     *yup(13)))*yup(34) +dotup(idc1,idc1)*(yup(2)*(-yup(19)
1408      -     + yup(29))*yup(31) +yup(1)*(-(dconjg(yup(13))*yup(13)) + 
1409      -     dconjg(yup(35))*yup(35)))))/dconjg(yup(8))
1410         bfun(2,ii,kk)=(-4*dconjg(yup(10))*yup(9)*(-((dconjg(yup(13))
1411      -     *dotup(idc1,idc1)-dconjg(inpup(idb2,idk1))*dconjg(yup(4))*
1412      -     inpup(idc2,idk2))*yup(13)) +dconjg(inpup(idc1,idb2))* 
1413      -     inpup(idc2,idk2)*yup(13)*yup(34) + dotup(idb1,idb1)*
1414      -     (-(dconjg(yup(4))*yup(4)) + dconjg(yup(34))*yup(34)) - 
1415      -     dconjg(yup(35))*(dconjg(inpup(idb2,idk1))*dconjg(yup(4))*
1416      -     inpup(idc2,idb1) +dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
1417      -     yup(34) - dotup(idc1,idc1)*yup(35))))/dconjg(yup(8))
1418           bfun(3,ii,kk)=(-4*dotup(idb1,idb1)*(dotup(idc1,idc1)*yup(8)
1419      -     *yup(19)*yup(31)+yup(1)*(dconjg(yup(16))*dconjg(yup(34)) + 
1420      -     dconjg(inpup(idc1,idq0))*inpup(idc2,idk2)*yup(19))*yup(34))+ 
1421      -     4*dconjg(yup(16))*(-(dotup(idc1,idc1)*yup(2)*yup(29)
1422      -     *yup(31)) +dconjg(yup(35))*yup(1)*
1423      -     (dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
1424      -     yup(34) - dotup(idc1,idc1)*yup(35))))/dconjg(yup(8))
1425           bfun(4,ii,kk)=(4*yup(9)*(dotup(idb1,idb1)*(-(dconjg(yup(4))*
1426      -     (dconjg(yup(16))*yup(4) -dconjg(inpup(idq0,idk1))*
1427      -     inpup(idc2,idk2)*yup(19)))+dconjg(yup(16))*dconjg(yup(34))
1428      -     *yup(34) +dconjg(inpup(idc1,idq0))*inpup(idc2,idk2)*
1429      -     yup(19)*yup(34)) -dconjg(yup(16))*dconjg(yup(35))*
1430      -     (dconjg(inpup(idb2,idk1))*dconjg(yup(4))*inpup(idc2,idb1) + 
1431      -     dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
1432      -     yup(34) - dotup(idc1,idc1)*yup(35))))/dconjg(yup(8))
1433           bfun(5,ii,kk)=(2*dconjg(yup(10))*yup(9)*yup(28)*yup(30))
1434      &   /dconjg(yup(8))
1435           bfun(8,ii,kk)=(-4*yup(9)*((dconjg(yup(12)) - dconjg(yup(18)))*
1436      -     dotup(idb1,idb1)*(dconjg(yup(4))*yup(4) - dconjg(yup(34))
1437      -     *yup(34)) +dconjg(yup(35))*(-((dconjg(inpup(idb2,idk1))
1438      -     *dconjg(yup(4))*(-dconjg(yup(12)) + dconjg(yup(18))) - 
1439      -     2*dconjg(inpup(idb2,idq0))*dconjg(yup(14))*dotup(idc1,idk1))*
1440      -     inpup(idc2,idb1)) +dconjg(inpup(idc1,idb2))*(dconjg(yup(12))
1441      -     -dconjg(yup(18)))*inpup(idc2,idb1)*yup(34))+dotup(idc1,idc1)*
1442      -     (dconjg(yup(10))*yup(19)*yup(30) + (-dconjg(yup(12)) +
1443      -     dconjg(yup(18)))*dconjg(yup(35))*yup(35))))/dconjg(yup(8))
1444           bfun(9,ii,kk)=(4*dconjg(inpup(idc1,idb2))*dconjg(yup(11))*
1445      -     dconjg(yup(35))*inpup(idq0,idb1)*yup(5))/dconjg(yup(8))
1446 c...helicity(54)=(-,-,+,+,-,+)

1447         do mm=1,9
1448            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
1449      &     dconjg(bfun(mm,ii,kk))
1450         end do
1451           end if
1452 
1453 c...helicity(39)=(+,+,-,-,-,+)

1454         kk=39
1455         if(iqqbar.eq.0) then
1456           bfun(1,ii,kk)=(4*dconjg(yup(1))* (-(dotup(idb1,idb1)*
1457      -     (dconjg(yup(5))*yup(5)*yup(10) -dconjg(inpup(idc1,idk2))*
1458      -     inpup(idq0,idk1)*yup(5)*yup(19) -(dconjg(yup(34))*yup(10)+ 
1459      -     dconjg(inpup(idc1,idk2))*inpup(idc2,idq0)*yup(19))*yup(34)))+ 
1460      -     dconjg(yup(35))*yup(10)*(dconjg(inpup(idc1,idb2))*
1461      -     (inpup(idk1,idb1)*yup(5) - inpup(idc2,idb1)*yup(34)) + 
1462      -     dotup(idc1,idc1)*yup(35))))/yup(8)
1463         bfun(2,ii,kk)=(-4*(dotup(idc1,idc1)*(dconjg(yup(8))*
1464      -     dotup(idb1,idb1)*yup(19)+yup(10)*yup(25)*yup(30))*yup(31)+ 
1465      -     dconjg(yup(9))*dotup(idb1,idb1)*(dconjg(yup(34))*yup(10) + 
1466      -     dconjg(inpup(idc1,idk2))*inpup(idc2,idq0)*yup(19))*yup(34)) + 
1467      -     4*dconjg(yup(9))*dconjg(yup(35))*yup(10)*
1468      -     (dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
1469      -     yup(34) - dotup(idc1,idc1)*yup(35)))/yup(8)
1470           bfun(3,ii,kk)=(4*dconjg(yup(1))*yup(16)*(dotup(idb1,idb1)*
1471      -     (dconjg(yup(5))*yup(5) - dconjg(yup(34))*yup(34)) + 
1472      -     dconjg(yup(17))*(dotup(idc1,idc1)*yup(17) + 
1473      -     dconjg(inpup(idc1,idk2))*(inpup(idk1,idb1)*yup(5) - 
1474      -     inpup(idc2,idb1)*yup(34))) - dconjg(yup(35))*
1475      -     (dconjg(inpup(idc1,idb2))*(inpup(idk1,idb1)*yup(5) - 
1476      -     inpup(idc2,idb1)*yup(34))+dotup(idc1,idc1)*yup(35))))/yup(8)
1477           bfun(4,ii,kk)=(4*yup(16)*(dconjg(yup(9))*(dconjg(yup(34))
1478      -     *dotup(idb1,idb1)+(dconjg(inpup(idc1,idk2))*dconjg(yup(17))- 
1479      -     dconjg(inpup(idc1,idb2))*dconjg(yup(35)))*inpup(idc2,idb1))
1480      -     *yup(34)+dotup(idc1,idc1)*(yup(25)*(-yup(19)+yup(30))*yup(31) 
1481      -     +dconjg(yup(9))*(-(dconjg(yup(17))*yup(17)) + 
1482      -     dconjg(yup(35))*yup(35)))))/yup(8)
1483           bfun(5,ii,kk)=(2*dconjg(yup(1))*yup(16)*yup(27)*yup(29))/yup(8)
1484           bfun(8,ii,kk)=(4*(2*dconjg(yup(4))*dotup(idc1,idk1)*
1485      -     (dotup(idb1,idb1)*yup(14) - yup(16)*yup(23))*yup(27) +
1486      -     dconjg(yup(9))*(-(dconjg(yup(14))*yup(16)*yup(18)*yup(23)) + 
1487      -     dconjg(inpup(idc1,idb2))*dconjg(yup(35))*inpup(idc2,idb1)*
1488      -     (-yup(12) + yup(18))*yup(34) + dotup(idb1,idb1)*
1489      -     (dconjg(yup(14))*yup(14)*yup(18) +dconjg(yup(34))*(yup(12) 
1490      -     - yup(18))*yup(34))) + dotup(idc1,idc1)*(2*dconjg(yup(8))
1491      -     *dconjg(yup(35))*dotup(idc1,idk1)*yup(35)+(yup(12)-yup(18))*
1492      -     (yup(25)*yup(30)*yup(31) + dconjg(yup(9))*dconjg(yup(35))
1493      -     *yup(35)))))/yup(8)
1494           bfun(9,ii,kk)=(4*(dconjg(yup(5))*dotup(idb1,idb1)*yup(15)*
1495      -     yup(28) + dconjg(yup(35))*(-(dconjg(inpup(idc1,idb2))*
1496      -     inpup(idk1,idb1)*yup(15)*yup(28)) + 
1497      -     dconjg(yup(8))*dotup(idc1,idc1)*yup(35))))/yup(8)
1498 c...helicity(55)=(-,-,+,+,+,-)

1499         do mm=1,9
1500            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
1501      &     dconjg(bfun(mm,ii,kk))
1502         end do
1503           end if
1504 
1505 c...helicity(40)=(+,+,-,-,-,-)

1506         kk=40
1507         if(iqqbar.eq.0) then
1508           bfun(1,ii,kk)=(4*dconjg(yup(1))*dconjg(yup(10))*
1509      -     (-(dconjg(yup(13))*dotup(idc1,idc1)*yup(13)) + 
1510      -     dconjg(inpup(idc1,idb2))*inpup(idk2,idk1)*yup(5)*yup(13) + 
1511      -     dconjg(inpup(idc1,idb2))*inpup(idc2,idk2)*yup(13)*yup(34) - 
1512      -     dotup(idb1,idb1)*(dconjg(yup(5))*yup(5) - dconjg(yup(34))
1513      -     *yup(34)) +dconjg(yup(35))*(dconjg(inpup(idc1,idb2))*
1514      -     (inpup(idk1,idb1)*yup(5) -inpup(idc2,idb1)*yup(34)) + 
1515      -     dotup(idc1,idc1)*yup(35))))/xup(2)
1516         bfun(2,ii,kk)=(4*dconjg(yup(10))*(-(dconjg(yup(9))*
1517      -     (dconjg(yup(34))*dotup(idb1,idb1)+dconjg(inpup(idc1,idb2))*
1518      -     (-(dconjg(yup(35))*inpup(idc2,idb1)) + inpup(idc2,idk2)
1519      -     *yup(13)))*yup(34)) - dotup(idc1,idc1)*((dconjg(yup(3))*
1520      -     dconjg(yup(12)) -dconjg(yup(9))*dconjg(yup(13)))*yup(13) + 
1521      -     yup(25)*yup(30)*yup(31) + dconjg(yup(9))*dconjg(yup(35))
1522      -     *yup(35))))/xup(2)
1523           bfun(3,ii,kk)=(4*dconjg(yup(1))*(dotup(idb1,idb1)*
1524      -     (-(dconjg(inpup(idc1,idq0))*inpup(idk2,idk1)*yup(5)*yup(19))- 
1525      -     dconjg(inpup(idc1,idq0))*inpup(idc2,idk2)*yup(19)*yup(34) + 
1526      -     dconjg(yup(16))*(dconjg(yup(5))*yup(5) - dconjg(yup(34))*
1527      -     yup(34))) - dconjg(yup(16))*dconjg(yup(35))*
1528      -     (dconjg(inpup(idc1,idb2))*(inpup(idk1,idb1)*yup(5) - 
1529      -     inpup(idc2,idb1)*yup(34))+dotup(idc1,idc1)*yup(35))))/xup(2)
1530           bfun(4,ii,kk)=(4*(dconjg(yup(16))*dotup(idc1,idc1)*yup(25)*
1531      -     yup(30)*yup(31) + dconjg(yup(9))*(dotup(idb1,idb1)*
1532      -     (dconjg(yup(16))*dconjg(yup(34)) + dconjg(inpup(idc1,idq0))
1533      -     *inpup(idc2,idk2)*yup(19))*yup(34) - dconjg(yup(16))*
1534      -     dconjg(yup(35))*(dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
1535      -     yup(34) - dotup(idc1,idc1)*yup(35)))))/xup(2)
1536         bfun(5,ii,kk)=(2*dconjg(yup(1))*dconjg(yup(10))*yup(27)*yup(30))
1537      &    /xup(2)
1538           bfun(8,ii,kk)=(-4*dotup(idc1,idc1)*yup(30)*(dconjg(yup(9))*
1539      -     dconjg(yup(10))*yup(19) + (dconjg(yup(7))*dconjg(yup(10)) + 
1540      -     (-dconjg(yup(12)) + dconjg(yup(18)))*yup(25))*yup(31)) + 
1541      -     4*dconjg(yup(9))*(dconjg(yup(12)) - dconjg(yup(18)))*
1542      -     dconjg(yup(34))*dotup(idb1,idb1)*yup(34)+4*dconjg(yup(35))*
1543      -     (-2*dconjg(inpup(idb2,idq0))*dotup(idc1,idk1)*
1544      -     inpup(idk2,idk1)*yup(22)*yup(27) + dconjg(yup(9))*
1545      -     (-dconjg(yup(12)) + dconjg(yup(18)))*
1546      -     (dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
1547      -     yup(34) - dotup(idc1,idc1)*yup(35))))/xup(2)
1548           bfun(9,ii,kk)=0.0d0
1549 c...helicity(56)=(-,-,+,+,+,+)

1550         do mm=1,9
1551            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
1552      &     dconjg(bfun(mm,ii,kk))
1553         end do
1554           end if
1555 
1556 c**********************************************************

1557           if(iqqbar.eq.1) then
1558         bfun(1,ii,kk)=-4*(dconjg(yup(8))*dotup(idb1,idb1)*
1559      -    dotup(idc1,idc1)*yup(30) - dconjg(inpup(idq0,idk2))
1560      -    *dconjg(yup(39))*dotup(idb1,idb1)*inpup(idc2,idk1)*yup(34)+ 
1561      -    dconjg(inpup(idc1,idb2))*dconjg(yup(35))*dconjg(yup(45))
1562      -    *inpup(idk1,idb1)*yup(34) + dconjg(inpup(idc1,idk2))
1563      -    *dotup(idb1,idb1)*inpup(idb1,idk1)*yup(34)*yup(37) - 
1564      -    dconjg(inpup(idc1,idb2))*dconjg(yup(35))*inpup(idc2,idb1)
1565      -    *yup(34)*yup(53) +dconjg(yup(35))*dotup(idc1,idc1)*yup(35)*
1566      -    yup(53) + dconjg(yup(3))*dconjg(yup(35))*dotup(idc1,idc1)
1567      -    *yup(57) -dotup(idb1,idb1)*yup(14)*yup(34)*yup(72) + 
1568      -    dotup(idb1,idb1)*yup(14)*yup(34)*yup(81))
1569         bfun(2,ii,kk)=4*dotup(idb1,idb1)*(dconjg(yup(8))
1570      -    *dotup(idc1,idc1)*yup(29) - (dconjg(yup(5))*
1571      -    (dconjg(yup(45))- dconjg(yup(68)))- dconjg(inpup(idc1,idq0))
1572      -    *inpup(idc2,idk1)*yup(16) + dconjg(inpup(idc1,idk2))*
1573      -    inpup(idq0,idk1)*yup(23))*yup(34)) +4*dconjg(yup(35))*
1574      -    ((dotup(idc1,idc1)*yup(17) -dconjg(inpup(idc1,idk2))* 
1575      -    inpup(idc2,idb1)*yup(34))*yup(59)+(-(dconjg(inpup(idc1,idb2)) 
1576      -    *inpup(idc2,idb1)*yup(34))+dotup(idc1,idc1)*yup(35))*yup(60))
1577         bfun(3,ii,kk)=4*(dconjg(yup(1))*dconjg(yup(8))*dotup(idb1,idb1)*
1578      -    yup(9) + dconjg(yup(8))*dconjg(yup(11))*dotup(idb1,idb1)
1579      -    *yup(18) -dconjg(yup(1))*yup(9)*yup(16)*yup(25) - 
1580      -    dconjg(yup(11))*yup(16)*yup(18)*yup(25) + 
1581      -    dconjg(inpup(idc1,idk2))*inpup(idc2,idk1)*(dconjg(yup(10))
1582      -    *yup(16) + yup(2)*yup(25) - dotup(idb1,idb1)*(yup(19) + 
1583      -    yup(31)))*yup(34)- dconjg(yup(34))*dotup(idb1,idb1)*yup(34)*
1584      -    yup(53) - dconjg(yup(34))*dotup(idb1,idb1)*yup(34)*yup(60) + 
1585      -    dconjg(inpup(idc1,idb2))*dconjg(yup(35))*inpup(idc2,idb1)*
1586      -    yup(34)*(yup(53)+yup(60))+dotup(idc1,idc1)*(-(dconjg(yup(8))
1587      -    *yup(2)*yup(25))+yup(16)*(-(dconjg(yup(8))*dconjg(yup(10)))+ 
1588      -    yup(25)*(yup(19) + yup(31))) - dconjg(yup(35))*yup(35)
1589      -    *(yup(53) + yup(60))))
1590           bfun(4,ii,kk)=-4*(-(dconjg(inpup(idq0,idk2))*dconjg(yup(35))*
1591      -    dconjg(yup(38))*dotup(idc1,idc1)*inpup(idb1,idk1)) + 
1592      -    dconjg(inpup(idq0,idk1))*dconjg(inpup(idq0,idk2))*
1593      -    dotup(idb1,idb1)*dotup(idc1,idc1)*inpup(idq0,idk1)**2 - 
1594      -    dconjg(yup(3))*dotup(idb1,idb1)*dotup(idc1,idc1)*
1595      -    yup(13) - dconjg(yup(6))*dotup(idb1,idb1)*dotup(idc1,idc1)
1596      -    *yup(17) +dconjg(inpup(idc1,idk2))*dconjg(yup(6))*
1597      -    dotup(idb1,idb1)*inpup(idc2,idb1)*yup(34) + 
1598      -    dconjg(inpup(idc1,idk2))*dconjg(yup(3))*
1599      -    dotup(idb1,idb1)*inpup(idc2,idb2)*yup(34) + 
1600      -    dconjg(inpup(idc1,idk2))*inpup(idc2,idk1)*yup(34)*
1601      -    (-(dotup(idb1,idb1)*yup(31)) +dconjg(yup(35))*yup(51)) + 
1602      -    dconjg(inpup(idq0,idk2))*dconjg(yup(35))*
1603      -    dotup(idc1,idc1)*inpup(idb1,idk1)*yup(61) - 
1604      -    dconjg(inpup(idc1,idk2))*dconjg(yup(35))*
1605      -    inpup(idb1,idk1)*yup(34)*yup(64))
1606 c...helicity(56)=(-,-,+,+,+,+)

1607         do mm=1,4
1608             bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
1609         end do
1610           end if
1611 
1612 c...helicity(41)=(+,-,+,+,+,+)

1613         kk=41
1614         if(iqqbar.eq.0) then
1615           bfun(1,ii,kk)=(-4*pmomup(5,idb1)*yup(1)*
1616      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(13))*
1617      -     (-(dconjg(inpup(idk2,idk1))*dconjg(yup(5))*inpup(idc1,idb2))- 
1618      -     dconjg(inpup(idc2,idk2))*dconjg(yup(34))*inpup(idc1,idb2) + 
1619      -     dotup(idc1,idc1)*yup(13))) +dconjg(inpup(idq0,idk1))* 
1620      -     dconjg(yup(5))*yup(10)*(yup(20) + yup(39)) - 
1621      -     dconjg(inpup(idq0,idc2))*dconjg(yup(34))*
1622      -     yup(10)*(yup(20) + yup(39))))/xup(1)
1623         bfun(2,ii,kk)=(4*pmomup(5,idb1)*(dotup(idc1,idc1)*
1624      -     ((-(dconjg(inpup(idb2,idq0))*yup(3))-dconjg(inpup(idb1,idq0))
1625      -     *yup(6))*yup(10)*yup(31) + dconjg(yup(13))*yup(13)*
1626      -     (-(dconjg(inpup(idq0,idk2))*yup(9))+dconjg(inpup(idk2,idk1))
1627      -     *yup(31)))+dconjg(yup(34))*yup(9)*(dconjg(inpup(idc2,idk2))*
1628      -     dconjg(inpup(idq0,idk2))*dconjg(yup(13))*inpup(idc1,idb2) - 
1629      -     dconjg(inpup(idq0,idc2))*yup(10)*(yup(20)+yup(39)))))/xup(1)
1630         bfun(3,ii,kk)=(4*pmomup(5,idb1)*yup(1)*(dconjg(inpup(idb1,idq0))
1631      -     *dotup(idc1,idc1)*yup(17)*yup(19) +dconjg(yup(34))*
1632      -     (dconjg(inpup(idc2,idk2))*yup(19)*yup(20) - 
1633      -     dconjg(inpup(idq0,idc2))*yup(16)*(yup(20) + yup(39))) + 
1634      -     dconjg(yup(5))*(dconjg(inpup(idk2,idk1))*yup(19)*yup(20) + 
1635      -     dconjg(inpup(idq0,idk1))*yup(16)*(yup(20)+yup(39)))))/xup(1)
1636           bfun(4,ii,kk)=(4*pmomup(5,idb1)*(-(dotup(idc1,idc1)*
1637      -     (dconjg(inpup(idb1,idq0))*yup(9)*yup(17)*yup(19) + 
1638      -     ((-(dconjg(inpup(idb2,idq0))*yup(3))-dconjg(inpup(idb1,idq0))
1639      -     *yup(6))*yup(16) +dconjg(inpup(idk2,idk1))*yup(19)*yup(29)
1640      -     )*yup(31)))-dconjg(yup(34))*yup(9)*(dconjg(inpup(idc2,idk2))
1641      -     *yup(19)*yup(20) - dconjg(inpup(idq0,idc2))*yup(16)*
1642      -     (yup(20) + yup(39)))))/xup(1)
1643           bfun(5,ii,kk)=(-2*dconjg(inpup(idq0,idk2))*pmomup(5,idb1)
1644      -     *yup(1)*yup(27)*(yup(29) + yup(30)))/xup(1)
1645           bfun(8,ii,kk)=(4*pmomup(5,idb1)*(2*dconjg(inpup(idk2,idk1))
1646      -     *dotup(idc1,idk1)*yup(27)*yup(28)*(yup(29) + yup(30)) + 
1647      -     dotup(idc1,idc1)*(-(dconjg(inpup(idb2,idq0))*(yup(9)*yup(13)
1648      -     *yup(19)+(yup(7)*yup(13)+yup(3)*(-yup(12)+yup(18)))*yup(31))
1649      -     ) - dconjg(inpup(idb1,idq0))*(yup(9)*yup(17)*yup(19) + 
1650      -     (yup(7)*yup(17) +yup(6)*(-yup(12) + yup(18)))*yup(31)))
1651      -     + dconjg(inpup(idq0,idc2))*dconjg(yup(34))*
1652      -     yup(9)*(yup(12) - yup(18))*(yup(20) + yup(39))))/xup(1)
1653           bfun(9,ii,kk)=0.0d0
1654 c...helicity(57)=(-,+,-,-,-,-)

1655         do mm=1,9
1656            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
1657      &     -dconjg(bfun(mm,ii,kk))
1658         end do
1659           end if
1660 
1661 c****************************************************

1662           if(iqqbar.eq.1) then
1663         bfun(1,ii,kk)=-4*pmomup(5,idb1)*(dconjg(inpup(idq0,idk1))**2
1664      -     *dotup(idc1,idc1)*inpup(idk2,idk1)*yup(30) + 
1665      -     dconjg(inpup(idq0,idk1))* (dotup(idc1,idc1)*
1666      -     (-(dconjg(inpup(idb2,idq0))*dconjg(yup(35))*inpup(idb1,idk2))
1667      -     + dconjg(yup(10))*yup(30)) + dconjg(yup(34))*
1668      -     (dconjg(inpup(idq0,idc2))*dotup(idb1,idb1)*inpup(idc1,idk2) +
1669      -     yup(39)*yup(44))) - dconjg(yup(34))*(dconjg(inpup(idq0,idc2))
1670      -     *dconjg(yup(10))* dconjg(yup(72)) + dconjg(inpup(idc2,idk1))*
1671      -     (dconjg(yup(10)) + dconjg(yup(12)))*yup(39) - 
1672      -     dconjg(inpup(idq0,idc2))*yup(20)*yup(46)))
1673         bfun(2,ii,kk)=4*pmomup(5,idb1)*(-(dotup(idc1,idc1)*
1674      -    (dconjg(inpup(idb1,idq0))*dconjg(yup(16))*yup(6) + 
1675      -    dconjg(inpup(idq0,idk1))*(dconjg(yup(16)) - 
1676      -    dconjg(inpup(idq0,idk1))*inpup(idk2,idk1))*yup(29))) + 
1677      -    dconjg(inpup(idb2,idq0))*dconjg(yup(18))*yup(28)*
1678      -    yup(66) + dconjg(yup(34))*(dconjg(inpup(idq0,idc2))*
1679      -    dconjg(inpup(idq0,idk1))*dotup(idb1,idb1)*inpup(idc1,idk2) + 
1680      -    dconjg(inpup(idq0,idc2))*yup(39)*yup(50) +  yup(20)*
1681      -    (-(dconjg(inpup(idc2,idk1))*(dconjg(yup(12)) +
1682      -    dconjg(yup(16)))) + dconjg(inpup(idq0,idk1))*yup(68))))
1683           bfun(3,ii,kk)=4*pmomup(5,idb1)*(dconjg(inpup(idq0,idk1))
1684      -    *dconjg(yup(9))*dconjg(yup(10))*yup(1) + 
1685      -    dconjg(inpup(idq0,idk1))*dconjg(yup(9))*dconjg(yup(16))
1686      -    *yup(1) + dconjg(inpup(idq0,idk1))*dconjg(yup(2))*
1687      -    dotup(idc1,idc1)*yup(8) + dconjg(inpup(idq0,idk2)) 
1688      -    *dconjg(yup(16))*dotup(idc1,idc1)*yup(8) + 
1689      -    dconjg(inpup(idq0,idk1))*dconjg(yup(10))*dconjg(yup(18))
1690      -    *yup(11) +dconjg(inpup(idq0,idk1))*dconjg(yup(16))*
1691      -    dconjg(yup(18))*yup(11) - dconjg(inpup(idq0,idk1))
1692      -    *dconjg(yup(10))*dotup(idc1,idc1)*yup(19) - 
1693      -    dconjg(inpup(idq0,idk1))*dconjg(yup(16))*
1694      -    dotup(idc1,idc1)*yup(19) +dconjg(inpup(idb1,idq0))*
1695      -    (-(dconjg(inpup(idc2,idk1))*dconjg(yup(34))*
1696      -    inpup(idc1,idk2))+dotup(idc1,idc1)*yup(8))*(yup(21)+yup(26))- 
1697      -    dconjg(inpup(idq0,idk1))*dconjg(yup(10))*dotup(idc1,idc1)
1698      -    *yup(31) -dconjg(inpup(idq0,idk1))*dconjg(yup(16))*
1699      -    dotup(idc1,idc1)*yup(31) +dconjg(yup(34))*
1700      -    (dconjg(inpup(idc2,idk1))*(-(dconjg(inpup(idq0,idk1))
1701      -    *dconjg(yup(2))*inpup(idc1,idk2)) -dconjg(yup(16)) 
1702      -    *yup(40)) -dconjg(inpup(idq0,idc2))*(yup(20) + yup(39))*
1703      -    (yup(46) + yup(50))))
1704           bfun(4,ii,kk)=4*pmomup(5,idb1)*(dconjg(inpup(idq0,idk1))*
1705      -    dotup(idc1,idc1)*(dconjg(yup(13))*(dconjg(yup(61)) - 
1706      -    dconjg(inpup(idq0,idk1))*inpup(idk1,idb2))+dconjg(yup(17))*
1707      -    (dconjg(inpup(idq0,idk1))*inpup(idb1,idk1) +yup(75))) + 
1708      -    dconjg(yup(34))*inpup(idc1,idk2)*(-(dconjg(inpup(idc2,idk1))*
1709      -    (-(dconjg(inpup(idb1,idq0))*yup(21))-dconjg(inpup(idb2,idq0))*
1710      -    yup(38))) -dconjg(inpup(idb1,idq0))*dconjg(inpup(idq0,idk1))
1711      -    *yup(83) -dconjg(inpup(idb2,idq0))*dconjg(inpup(idq0,idk1))
1712      -    *yup(85)))
1713 c...helicity(57)=(-,+,-,-,-,-)

1714         do mm=1,4
1715              bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
1716         end do
1717           end if
1718 
1719 c...helicity(42)=(+,-,+,+,+,-)

1720         kk=42
1721         if(iqqbar.eq.0) then
1722           bfun(1,ii,kk)=(-4*dconjg(yup(10))*(dconjg(inpup(idq0,idk1))
1723      -     *dconjg(yup(5)) -dconjg(inpup(idq0,idc2))*dconjg(yup(34)))*
1724      -     pmomup(5,idb1)*yup(1)*(yup(20) + yup(39) - yup(40)))
1725      -     /dconjg(yup(8))
1726         bfun(2,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idb1)*
1727      -     (dotup(idc1,idc1)*(-(dconjg(inpup(idb2,idq0))*yup(3)) - 
1728      -     dconjg(inpup(idb1,idq0))*yup(6)-dconjg(inpup(idq0,idk1))
1729      -     *yup(19))*yup(31)-dconjg(inpup(idq0,idc2))*dconjg(yup(34))
1730      -     *yup(9)*(yup(20)+yup(39)-yup(40))))/dconjg(yup(8))
1731           bfun(3,ii,kk)=(4*dconjg(yup(16))*pmomup(5,idb1)*yup(1)*
1732      -     (dconjg(inpup(idq0,idk2))*dconjg(yup(18))*(-yup(28)+yup(31))+ 
1733      -     (dconjg(inpup(idq0,idk1))*dconjg(yup(5)) - 
1734      -     dconjg(inpup(idq0,idc2))*dconjg(yup(34)))*
1735      -     (yup(20) + yup(39))))/dconjg(yup(8))
1736           bfun(4,ii,kk)=(4*dconjg(yup(16))*pmomup(5,idb1)*
1737      -     (dconjg(inpup(idb2,idq0))*dotup(idc1,idc1)*yup(3)*
1738      -     yup(31) + dconjg(inpup(idb1,idq0))*dotup(idc1,idc1)
1739      -     *yup(6)*yup(31) +dconjg(inpup(idq0,idk2))*
1740      -     (dconjg(yup(18))*yup(9)*yup(28)+dotup(idc1,idc1)*yup(8) 
1741      -     *yup(31))+dconjg(inpup(idq0,idc2))*dconjg(yup(34))*yup(9)*
1742      -     (yup(20) + yup(39))))/dconjg(yup(8))
1743           bfun(5,ii,kk)=0.0d0
1744           bfun(8,ii,kk)=(4*pmomup(5,idb1)*((-dconjg(yup(12)) 
1745      -     + dconjg(yup(18)))*dotup(idc1,idc1)*
1746      -     (-(dconjg(inpup(idb2,idq0))*yup(3)) - 
1747      -     dconjg(inpup(idb1,idq0))*yup(6))*yup(31) - 
1748      -     dconjg(inpup(idq0,idc2))*(-((dconjg(yup(10)) +
1749      -     dconjg(yup(16)))*(dconjg(yup(18))*yup(9)*yup(14) + 
1750      -     2*dotup(idc1,idk1)*yup(4)*yup(27))) +(-dconjg(yup(12)) 
1751      -     + dconjg(yup(18)))*dconjg(yup(34))*yup(9)*(yup(20) 
1752      -     + yup(39)))))/dconjg(yup(8))
1753           bfun(9,ii,kk)=(4*dconjg(inpup(idq0,idk1))*dconjg(yup(15))*
1754      -     pmomup(5,idb1)*yup(28)*(yup(20)+yup(39)))/dconjg(yup(8))
1755 c...helicity(58)=(-,+,-,-,-,+)

1756         do mm=1,9
1757            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
1758      &     -dconjg(bfun(mm,ii,kk))
1759         end do
1760           end if
1761 
1762 c...helicity(43)=(+,-,+,+,-,+)

1763         kk=43
1764         if(iqqbar.eq.0) then
1765           bfun(1,ii,kk)=(4*pmomup(5,idb1)*(dconjg(inpup(idq0,idk2))
1766      -     *dconjg(yup(2))*dotup(idc1,idc1)*yup(19)*yup(31) + 
1767      -     dconjg(yup(1))*(-(dconjg(inpup(idq0,idk2))*dconjg(yup(13))*
1768      -     (dconjg(inpup(idc2,idk2))*dconjg(yup(34))*inpup(idc1,idb2) - 
1769      -     dotup(idc1,idc1)*yup(13))) + dconjg(inpup(idq0,idc2))
1770      -     *dconjg(yup(34))*yup(10)*(yup(20) + yup(39)))))/yup(8)
1771         bfun(2,ii,kk)=(4*dconjg(yup(9))*pmomup(5,idb1)*
1772      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(13))*
1773      -     dotup(idc1,idc1)*yup(13)) - dconjg(inpup(idc2,idk2))*
1774      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(13))*
1775      -     dconjg(yup(34))*inpup(idc1,idb2)) + dconjg(yup(2))*yup(4)
1776      -     *yup(19)) -dconjg(inpup(idq0,idc2))*yup(10)*
1777      -     (-(yup(4)*(dconjg(yup(2)) + yup(25))) + 
1778      -     dconjg(yup(34))*(yup(20) + yup(39)))))/yup(8)
1779           bfun(3,ii,kk)=(4*pmomup(5,idb1)*(-(dotup(idc1,idc1)*yup(19)*
1780      -     (-(dconjg(inpup(idb1,idq0))*dconjg(yup(1))*yup(17)) + 
1781      -     dconjg(inpup(idq0,idk2))*yup(25)*yup(31)))+dconjg(yup(1))
1782      -     *dconjg(yup(34))*(dconjg(inpup(idc2,idk2))*yup(19)*yup(20) - 
1783      -     dconjg(inpup(idq0,idc2))*yup(16)*
1784      -     (yup(20) + yup(39)))))/yup(8)
1785           bfun(4,ii,kk)=(-4*dconjg(yup(9))*pmomup(5,idb1)*
1786      -     (dconjg(inpup(idb1,idq0))*dotup(idc1,idc1)*yup(17)*yup(19) + 
1787      -     dconjg(inpup(idc2,idk2))*yup(19)*(dconjg(yup(34))*yup(20)
1788      -     - yup(4)*yup(25)) -dconjg(inpup(idq0,idc2))*yup(16)*
1789      -     (-(yup(4)*(dconjg(yup(2)) + yup(25))) + 
1790      -     dconjg(yup(34))*(yup(20) + yup(39)))))/yup(8)
1791           bfun(5,ii,kk)=(-2*dconjg(inpup(idq0,idk2))*dconjg(yup(9))*
1792      -     pmomup(5,idb1)*yup(28)*(yup(29) + yup(30)))/yup(8)
1793         bfun(8,ii,kk)=(4*dconjg(yup(9))*pmomup(5,idb1)*(dotup(idc1,idc1)
1794      -     *(-(dconjg(inpup(idb2,idq0))*yup(13))-dconjg(inpup(idb1,idq0) 
1795      -     )*yup(17))*yup(19) - dconjg(inpup(idq0,idc2))*
1796      -     (2*dotup(idc1,idk1)*yup(14)*(yup(29)+yup(30))+(yup(12)-
1797      -     yup(18))*(yup(4)*(dconjg(yup(2)) + yup(25)) - 
1798      -     dconjg(yup(34))*(yup(20) + yup(39))))))/yup(8)
1799           bfun(9,ii,kk)=0.0d0
1800 c...helicity(59)=(-,+,-,-,+,-)

1801         do mm=1,9
1802            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
1803      &     -dconjg(bfun(mm,ii,kk))
1804         end do
1805           end if
1806 
1807 c...helicity(44)=(+,-,+,+,-,-)

1808         kk=44
1809         if(iqqbar.eq.0) then
1810           bfun(1,ii,kk)=(4*dconjg(inpup(idq0,idc2))*dconjg(yup(1))*
1811      -     dconjg(yup(10))*dconjg(yup(34))*pmomup(5,idb1)*
1812      -     (yup(20) + yup(39) - yup(40)))/xup(2)
1813         bfun(2,ii,kk)=(4*dconjg(inpup(idq0,idc2))*dconjg(yup(9))*
1814      -     dconjg(yup(10))*pmomup(5,idb1)*(yup(4)*(dconjg(yup(2))
1815      -     - dconjg(yup(7)) +yup(25)) - dconjg(yup(34))*(yup(20) + 
1816      -     yup(39) - yup(40))))/xup(2)
1817           bfun(3,ii,kk)=(4*dconjg(yup(1))*dconjg(yup(16))*pmomup(5,idb1)*
1818      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(18))*
1819      -     yup(28)) -  dconjg(inpup(idq0,idc2))*dconjg(yup(34))*
1820      -     (yup(20) + yup(39))))/xup(2)
1821         bfun(4,ii,kk)=(-4*dconjg(yup(9))*dconjg(yup(16))*pmomup(5,idb1)*
1822      -     (dconjg(inpup(idq0,idc2))*dconjg(inpup(idq0,idk2))
1823      -     *inpup(idk2,idk1)*yup(4) - dconjg(inpup(idq0,idk2))*
1824      -     dconjg(yup(18))*yup(28) -dconjg(inpup(idq0,idc2))*
1825      -     (-(yup(4)*(dconjg(yup(2)) + yup(25))) + 
1826      -     dconjg(yup(34))*(yup(20) + yup(39)))))/xup(2)
1827           bfun(5,ii,kk)=0.0d0
1828           bfun(8,ii,kk)=(-4*dconjg(inpup(idq0,idc2))*dconjg(yup(9))*
1829      -     (dconjg(yup(12)) - dconjg(yup(18)))*pmomup(5,idb1)*
1830      -     ((dconjg(yup(10)) + dconjg(yup(16)))*yup(14) + 
1831      -     yup(4)*(dconjg(yup(2)) + yup(25)) - 
1832      -     dconjg(yup(34))*(yup(20) + yup(39))))/xup(2)
1833           bfun(9,ii,kk)=0.0d0
1834 c...helicity(60)=(-,+,-,-,+,+)

1835         do mm=1,9
1836            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
1837      &     -dconjg(bfun(mm,ii,kk))
1838         end do
1839           end if
1840 
1841 c****************************************************************

1842           if(iqqbar.eq.1) then
1843         bfun(1,ii,kk)=-4*pmomup(5,idb1)*(-(dconjg(inpup(idq0,idk2))**2
1844      -     *dotup(idc1,idc1)*inpup(idk2,idk1)*yup(30))-dconjg(yup(34))*
1845      -     (dconjg(inpup(idc2,idk2))*(dconjg(yup(7))+yup(25))*yup(39) - 
1846      -     dconjg(inpup(idq0,idc2))*yup(20)*yup(53) + 
1847      -     dconjg(inpup(idq0,idc2))*yup(25)*yup(54)) + 
1848      -     dconjg(inpup(idq0,idk2))* (dotup(idc1,idc1)* (-
1849      -    (dconjg(inpup(idb2,idq0))*dconjg(yup(35))*inpup(idb1,idk1))+ 
1850      -    yup(25)*yup(30)) +dconjg(yup(34))*(dconjg(inpup(idq0,idc2))
1851      -    *dotup(idb1,idb1)*inpup(idc1,idk1) + yup(39)*yup(55))))
1852         bfun(2,ii,kk)=4*pmomup(5,idb1)*(-(dotup(idc1,idc1)*
1853      -    (dconjg(inpup(idb1,idq0))*dconjg(yup(2))*yup(17) + 
1854      -    dconjg(inpup(idq0,idk2))*(dconjg(yup(2)) + 
1855      -    dconjg(inpup(idq0,idk2))*inpup(idk2,idk1))*yup(29))) + 
1856      -    dconjg(yup(34))*(dconjg(inpup(idq0,idc2))*
1857      -    dconjg(inpup(idq0,idk2))*dotup(idb1,idb1)*inpup(idc1,idk1)- 
1858      -    dconjg(inpup(idq0,idc2))*(dconjg(yup(2))*yup(54) -
1859      -    yup(39)*yup(60)) +yup(20)*(-(dconjg(inpup(idc2,idk2))*
1860      -    (dconjg(yup(2)) + dconjg(yup(7))))+ dconjg(inpup(idq0,idk2))
1861      -    *yup(73))))
1862         bfun(3,ii,kk)=4*pmomup(5,idb1)*(dconjg(yup(8))*dotup(idc1,idc1)*
1863      -     (dconjg(inpup(idq0,idk1))*dconjg(yup(2)) + 
1864      -     dconjg(inpup(idq0,idk2))*dconjg(yup(16)) + 
1865      -     dconjg(inpup(idb1,idq0))*(yup(21) + yup(26)))
1866      -     + dconjg(inpup(idq0,idk2))*(dconjg(yup(2)) + yup(25))*
1867      -     (dconjg(yup(9))*yup(1) +dconjg(yup(18))*yup(11) - 
1868      -     dotup(idc1,idc1)*(yup(19) + yup(31))) + dconjg(yup(34))*
1869      -     (-(dconjg(inpup(idq0,idc2))*(yup(20) + yup(39))*
1870      -     (yup(53) + yup(60))) -  dconjg(inpup(idc2,idk2))*
1871      -     (inpup(idc1,idk1)*(dconjg(inpup(idq0,idk2))*dconjg(yup(16)) + 
1872      -     dconjg(inpup(idb1,idq0))*(yup(21) + yup(26))) + 
1873      -     dconjg(yup(2))*yup(79))))
1874           bfun(4,ii,kk)=4*pmomup(5,idb1)*(-(dotup(idc1,idc1)*
1875      -     (dconjg(yup(2)) + yup(25))*(dconjg(inpup(idb2,idq0))
1876      -     *yup(13) +dconjg(inpup(idb1,idq0))*yup(17) + 
1877      -     dconjg(inpup(idq0,idk2))*yup(31)))-dconjg(inpup(idc2,idk2)) 
1878      -     *dconjg(yup(34))*(inpup(idc1,idk1)*
1879      -     (-(dconjg(inpup(idb1,idq0))*yup(21))-dconjg(inpup(idb2,idq0))
1880      -     *yup(38)) +(dconjg(yup(2))+ yup(25))*(yup(20) + yup(39))))
1881 c...helicity(60)=(-,+,-,-,+,+)

1882         do mm=1,9
1883              bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
1884         end do
1885           end if
1886 
1887 c...helicity(45)=(+,-,+,-,+,+)

1888         kk=45
1889         if(iqqbar.eq.0) then
1890           bfun(1,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*
1891      -     (dconjg(inpup(idq0,idk1))*yup(10)*yup(31)*
1892      -     (-(dconjg(inpup(idb1,idq0))*yup(32)) - 
1893      -     dconjg(inpup(idb2,idq0))*yup(42)) - 
1894      -     dconjg(inpup(idq0,idk2))*dconjg(yup(13))*
1895      -     (-(dconjg(inpup(idk2,idk1))*yup(31)*yup(42)) + 
1896      -     dconjg(inpup(idq0,idk2))*yup(1)*
1897      -     (dconjg(yup(36)) + yup(42)))))/xup(1)
1898         bfun(2,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*
1899      -     (-(dconjg(inpup(idq0,idk1))*dconjg(yup(4))*
1900      -     (dconjg(inpup(idk2,idk1))*yup(19)*yup(24) + 
1901      -     dconjg(inpup(idq0,idk1))*yup(10)*(yup(23)+yup(24))))- 
1902      -     dconjg(inpup(idq0,idk2))**2*dconjg(yup(13))*
1903      -     yup(9)*(dconjg(yup(36)) + yup(42))))/xup(1)
1904           bfun(3,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*
1905      -     (dconjg(inpup(idq0,idk2))*yup(1)*yup(19)*
1906      -     (-(dconjg(inpup(idc1,idq0))*yup(20)) + 
1907      -     dconjg(inpup(idq0,idc2))*yup(23)) +yup(31)* 
1908      -     (dconjg(inpup(idc1,idq0))*dconjg(inpup(idk2,idk1))
1909      -     *yup(19)*yup(20) +dconjg(inpup(idq0,idk1))*yup(16)*
1910      -     (-(dconjg(inpup(idb1,idq0))*yup(32)) - 
1911      -     dconjg(inpup(idb2,idq0))*yup(42)))))/xup(1)
1912           bfun(4,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*
1913      -     (dconjg(inpup(idq0,idk2))*yup(9)*yup(19)*
1914      -     (-(dconjg(inpup(idc1,idq0))*yup(20)) + 
1915      -     dconjg(inpup(idq0,idc2))*yup(23)) - 
1916      -     dconjg(inpup(idq0,idk1))*dconjg(yup(4))*
1917      -     (dconjg(inpup(idk2,idk1))*yup(19)*yup(23) + 
1918      -     dconjg(inpup(idq0,idk1))*yup(16)*
1919      -     (yup(23) + yup(24)))))/xup(1)
1920           bfun(5,ii,kk)=(2*dconjg(inpup(idq0,idk1))*
1921      -     dconjg(inpup(idq0,idk2))*pmomup(5,idb1)*
1922      -     pmomup(5,idc1)*(yup(27) + yup(28))*
1923      -     (yup(29) + yup(30)))/xup(1)
1924           bfun(8,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*
1925      -     (dconjg(inpup(idq0,idk2))*dconjg(yup(14))*
1926      -     (-(dconjg(inpup(idq0,idk2))*yup(9)) + 
1927      -     dconjg(inpup(idq0,idk1))*yup(12)) + 
1928      -     dconjg(inpup(idq0,idk1))**2*dconjg(yup(4))*
1929      -     (yup(12) - yup(18)))*(yup(23) + yup(24)))/xup(1)
1930           bfun(9,ii,kk)=0.0d0
1931 c...helicity(61)=(-,+,-,+,-,-)

1932         do mm=1,9
1933            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
1934      &     dconjg(bfun(mm,ii,kk))
1935         end do
1936           end if
1937 
1938 c***********************************************************

1939           if(iqqbar.eq.1) then
1940         bfun(1,ii,kk)=4*dconjg(inpup(idq0,idk1))*pmomup(5,idb1)*
1941      -     pmomup(5,idc1)*(dconjg(inpup(idq0,idk1))*inpup(idk2,idk1)*
1942      -     (dconjg(inpup(idq0,idc2))*yup(24)-dconjg(inpup(idc1,idq0)) 
1943      -     *yup(39)) +dconjg(yup(10))*(dconjg(inpup(idq0,idc2))*
1944      -     yup(24) -dconjg(inpup(idc1,idq0))*yup(39) - 
1945      -     dconjg(inpup(idb2,idq0))*(dconjg(yup(36)) + yup(42))))
1946         bfun(2,ii,kk)=4*dconjg(inpup(idq0,idk1))*pmomup(5,idb1)*
1947      -     pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk1))*inpup(idk2,idk1)*
1948      -     (-(dconjg(inpup(idc1,idq0))*yup(20))+dconjg(inpup(idq0,idc2))
1949      -     *yup(23))) + dconjg(yup(16))*(dconjg(inpup(idc1,idq0))*
1950      -     yup(20) - dconjg(inpup(idq0,idc2))*yup(23) + 
1951      -     dconjg(inpup(idb1,idq0))*(yup(22) + yup(32))))
1952           bfun(3,ii,kk)=-4*dconjg(inpup(idq0,idk1))*pmomup(5,idb1)*
1953      -     pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk1))*(-(dconjg(yup(1))*
1954      -     (dconjg(yup(10)) + dconjg(yup(16)))) +dconjg(yup(2))*
1955      -     (dconjg(yup(11))+dconjg(yup(18)))))-dconjg(inpup(idb1,idq0))*
1956      -     (dconjg(yup(11)) + dconjg(yup(18)))*(yup(21) + yup(26)) + 
1957      -     dconjg(inpup(idc1,idq0))*(dconjg(yup(10)) + 
1958      -     dconjg(yup(16)))*yup(40) + dconjg(yup(16))*
1959      -     (dconjg(inpup(idq0,idc2))*yup(33) -dconjg(inpup(idc1,idq0))* 
1960      -     yup(40)) - dconjg(yup(11))*(-(dconjg(inpup(idb1,idq0))*
1961      -     yup(26)) - dconjg(inpup(idb2,idq0))*yup(41)) + 
1962      -     dconjg(inpup(idc1,idq0))*(dconjg(yup(10)) + 
1963      -     dconjg(yup(16)))*yup(79))
1964           bfun(4,ii,kk)=-4*dconjg(inpup(idq0,idk1))*
1965      -    (dconjg(yup(11)) + dconjg(yup(18)))*pmomup(5,idb1)*
1966      -    pmomup(5,idc1)*(-(dconjg(inpup(idb2,idq0))*dconjg(yup(61)))+ 
1967      -    dconjg(inpup(idq0,idk1))*(dconjg(yup(2)) + yup(25)) - 
1968      -    dconjg(inpup(idb1,idq0))*yup(75))
1969 c...helicity(61)=(-,+,-,+,-,-)

1970         do mm=1,4
1971              bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
1972         end do
1973           end if
1974 
1975 c...helicity(46)=(+,-,+,-,+,-)

1976         kk=46
1977         if(iqqbar.eq.0) then
1978           bfun(1,ii,kk)=(-4*dconjg(inpup(idq0,idk1))*dconjg(yup(10))*
1979      -     pmomup(5,idb1)*pmomup(5,idc1)*yup(31)*
1980      -    (-(dconjg(inpup(idb1,idq0))*yup(32))-dconjg(inpup(idc1,idq0))
1981      -     *yup(40) -dconjg(inpup(idb2,idq0))*yup(42)))/dconjg(yup(8))
1982         bfun(2,ii,kk)=(-4*dconjg(inpup(idq0,idk1))**2*dconjg(yup(4))*
1983      -     dconjg(yup(10))*pmomup(5,idb1)*pmomup(5,idc1)*
1984      -     (yup(23) + yup(24) - yup(33)))/dconjg(yup(8))
1985           bfun(3,ii,kk)=(4*dconjg(inpup(idq0,idk1))*dconjg(yup(16))*
1986      -     pmomup(5,idb1)*pmomup(5,idc1)*yup(31)*
1987      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(18))) - 
1988      -     dconjg(inpup(idb1,idq0))*yup(32) - 
1989      -     dconjg(inpup(idb2,idq0))*yup(42)))/dconjg(yup(8))
1990           bfun(4,ii,kk)=(-4*dconjg(inpup(idq0,idk1))*dconjg(yup(16))*
1991      -     pmomup(5,idb1)*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk1))
1992      -     *dconjg(yup(4))*(yup(23)+yup(24)))-dconjg(inpup(idq0,idk2))
1993      -     *dconjg(yup(11))*yup(31)))/dconjg(yup(8))
1994           bfun(5,ii,kk)=0.0d0
1995           bfun(8,ii,kk)=(4*dconjg(inpup(idq0,idk1))**2*dconjg(yup(4))*
1996      -     (dconjg(yup(12)) - dconjg(yup(18)))*pmomup(5,idb1)*
1997      -     pmomup(5,idc1)*(yup(23) + yup(24)))/dconjg(yup(8))
1998           bfun(9,ii,kk)=0.0d0
1999 c...helicity(62)=(-,+,-,+,-,+)

2000         do mm=1,9
2001            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2002      &     dconjg(bfun(mm,ii,kk))
2003         end do
2004           end if
2005 
2006 c...helicity(47)=(+,-,+,-,-,+)

2007         kk=47
2008         if(iqqbar.eq.0) then
2009           bfun(1,ii,kk)=(4*dconjg(inpup(idq0,idk2))*dconjg(yup(1))*
2010      -     pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(inpup(idq0,idk1))
2011      -     *dconjg(yup(2))*yup(19) + dconjg(inpup(idq0,idk2))*
2012      -     dconjg(yup(13))*(dconjg(yup(36)) + yup(42))))/yup(8)
2013         bfun(2,ii,kk)=(-4*dconjg(inpup(idq0,idk2))**2*dconjg(yup(9))*
2014      -     dconjg(yup(13))*pmomup(5,idb1)*pmomup(5,idc1)*
2015      -     (dconjg(yup(36)) - yup(38) + yup(42)))/yup(8)
2016           bfun(3,ii,kk)=(4*dconjg(inpup(idq0,idk2))*dconjg(yup(1))*
2017      -     pmomup(5,idb1)*pmomup(5,idc1)*yup(19)*
2018      -     (-(dconjg(inpup(idc1,idq0))*yup(20))+dconjg(inpup(idq0,idc2)) 
2019      -     *yup(23) - dconjg(inpup(idq0,idk1))*yup(25)))/yup(8)
2020           bfun(4,ii,kk)=(-4*dconjg(inpup(idq0,idk2))*dconjg(yup(9))*
2021      -     pmomup(5,idb1)*pmomup(5,idc1)*yup(19)*
2022      -     (-(dconjg(inpup(idc1,idq0))*yup(20))-dconjg(inpup(idb1,idq0)) 
2023      -     *yup(21) +dconjg(inpup(idq0,idc2))*yup(23)))/yup(8)
2024           bfun(5,ii,kk)=0.0d0
2025           bfun(8,ii,kk)=(-4*dconjg(inpup(idq0,idk2))**2*dconjg(yup(9))*
2026      -     dconjg(yup(14))*pmomup(5,idb1)*pmomup(5,idc1)*(yup(23) 
2027      -     + yup(24)))/yup(8)
2028           bfun(9,ii,kk)=0.0d0
2029 c...helicity(63)=(-,+,-,+,+,-)

2030         do mm=1,9
2031            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2032      &     dconjg(bfun(mm,ii,kk))
2033         end do
2034           end if
2035 
2036 c...helicity(48)=(+,-,+,-,-,-)

2037         kk=48
2038         if(iqqbar.eq.0) then
2039           bfun(1,ii,kk)=0.0d0
2040         bfun(2,ii,kk)=0.0d0
2041           bfun(3,ii,kk)=0.0d0
2042           bfun(4,ii,kk)=0.0d0
2043           bfun(5,ii,kk)=0.0d0
2044           bfun(8,ii,kk)=0.0d0
2045           bfun(9,ii,kk)=0.0d0
2046 c...helicity(64)=(-,+,-,+,+,+)

2047         do mm=1,9
2048            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2049      &     dconjg(bfun(mm,ii,kk))
2050         end do
2051           end if
2052 
2053 c******************************************************

2054           if(iqqbar.eq.1) then
2055         bfun(1,ii,kk)=4*dconjg(inpup(idq0,idk2))*pmomup(5,idb1)*
2056      -     pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk2))*
2057      -     inpup(idk2,idk1)*(dconjg(inpup(idq0,idc2))*yup(24) - 
2058      -     dconjg(inpup(idc1,idq0))*yup(39))) + 
2059      -     yup(25)*(dconjg(inpup(idq0,idc2))*yup(24) - 
2060      -     dconjg(inpup(idc1,idq0))*yup(39)-dconjg(inpup(idb2,idq0))*
2061      -     (dconjg(yup(36)) + yup(42))))
2062         bfun(2,ii,kk)=4*dconjg(inpup(idq0,idk2))*pmomup(5,idb1)*
2063      -     pmomup(5,idc1)*(dconjg(inpup(idq0,idk2))*inpup(idk2,idk1)*
2064      -     (-(dconjg(inpup(idc1,idq0))*yup(20))+dconjg(inpup(idq0,idc2))
2065      -     *yup(23)) +dconjg(yup(2))*(dconjg(inpup(idc1,idq0))*yup(20) - 
2066      -     dconjg(inpup(idq0,idc2))*yup(23) + 
2067      -     dconjg(inpup(idb1,idq0))*(yup(22) + yup(32))))
2068           bfun(3,ii,kk)=-4*dconjg(inpup(idq0,idk2))*pmomup(5,idb1)*
2069      -     pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk2))*(dconjg(yup(1)) 
2070      -     + dconjg(yup(9)))*dconjg(yup(16))) +dconjg(inpup(idb1,idq0)) 
2071      -     *dconjg(yup(1))*yup(21) - dconjg(inpup(idb1,idq0))*
2072      -     (dconjg(yup(1)) + dconjg(yup(9)))* (yup(21) + yup(26)) + 
2073      -     dconjg(inpup(idb2,idq0))*dconjg(yup(1))*yup(38) + 
2074      -     (dconjg(yup(2)) + yup(25))*(dconjg(inpup(idq0,idk2))*
2075      -     dconjg(yup(11)) + dconjg(inpup(idc1,idq0))*yup(40)) + 
2076      -     (-(dconjg(inpup(idc1,idq0))*dconjg(yup(2))) + 
2077      -     dconjg(inpup(idc1,idq0))*(dconjg(yup(2)) + yup(25)))
2078      -     *yup(79) + dconjg(inpup(idq0,idc2))*dconjg(yup(2))*yup(80))
2079           bfun(4,ii,kk)=-4*dconjg(inpup(idq0,idk2))*pmomup(5,idb1)*
2080      -     pmomup(5,idc1)*(-((dconjg(yup(1)) + dconjg(yup(9)))*
2081      -     (-(dconjg(inpup(idb1,idq0))*yup(21)) - 
2082      -     dconjg(inpup(idb2,idq0))*yup(38))) + 
2083      -     (dconjg(yup(2)) + yup(25))*(dconjg(inpup(idq0,idc2))*
2084      -     (yup(23) + yup(24)) - dconjg(inpup(idc1,idq0))*(yup(20)
2085      -      + yup(39))))
2086 c...helicity(64)=(-,+,-,+,+,+)

2087         do mm=1,4
2088              bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
2089         end do
2090           end if
2091 
2092 1211  continue
2093         end
2094 
2095 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

2096 c            nine basic functions from first by k1 <-> k2.           c

2097 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

2098         subroutine bsecond
2099         implicit double precision (a-h,o-z)
2100         implicit integer (i-n)
2101         double complex bfun,colmat,yup,xup,inpup,bundamp
2102       common/upcom/ecm,pmbc,pmb,pmc,fbcc,pmomup(5,8),
2103      &  colmat(10,64),bundamp(4),pmomzero(5,8)
2104       common/tryup/bfun(9,4,64),yup(100),xup(2),idp,idq0,idk1,idk2,
2105      &  idb1,idb2,idc1,idc2
2106       common/counter/ibcstate,nev
2107 c...for transform the subprocess information, i.e.,  whether using

2108 c...the subprocess q\bar{q}->bc+b+\bar{c} to generate events.

2109       common/qqbar/iqqbar,iqcode
2110 
2111          ii=2
2112 
2113 c...if (l5.ne.l6) then

2114 c...hel(i,2)(l1,l2,l3,l4,l5,l6)=hel(i,1)(l1,l2,l3,l4,-l5,-l6)

2115 c...(k_1<->k_2), where l1,...,l6 are helicities of q_b1,q_b2,

2116 c...q_c1,q_c2,k_1,k_2;

2117 c...if (l5.eq.l6) then

2118 c...hel(i,2)(l1,l2,l3,l4,l5,l6)=hel(i,1)(l1,l2,l3,l4,l5,l6)(k_1<->k_2)

2119 
2120 c...helicity(1,2)=(+,+,+,+,+,+)(k_1,k_2)=helicity(1,1)(k_2,k_1)

2121         kk=1
2122         bfun(1,ii,kk)=(4*yup(1)*(dotup(idb1,idb1)*((yup(11) - yup(12))
2123      -     *yup(19)*yup(27) +yup(10)*(-(dconjg(yup(5))*yup(5)) + 
2124      -     dconjg(yup(34))*yup(34))) + yup(10)*((-(dconjg(yup(24))*
2125      -     dconjg(yup(34))) +dconjg(yup(5))*yup(2))*yup(20) + 
2126      -     dconjg(yup(35))*dotup(idc1,idc1)*yup(35))))/xup(1)
2127         bfun(2,ii,kk)=(-4*(dotup(idb1,idb1)*yup(9)*(yup(11)*yup(19)*
2128      -     yup(27) + dconjg(yup(34))*yup(10)*yup(34)) +yup(10)* 
2129      -     (-(dconjg(yup(24))*dconjg(yup(34))*yup(9)*yup(20)) + 
2130      -     dotup(idc1,idc1)*(yup(2)*yup(29)*yup(31) + 
2131      -     dconjg(yup(35))*yup(9)*yup(35)))))/xup(1)
2132           bfun(3,ii,kk)=(4*yup(1)*yup(16)*((dconjg(yup(24))*
2133      -     dconjg(yup(34))+dconjg(yup(5))*(-yup(2)+yup(7)))*yup(20) + 
2134      -     dconjg(yup(17))*(dotup(idc1,idc1)*yup(17)-yup(11)*yup(32))+ 
2135      -     dotup(idb1,idb1)*(dconjg(yup(5))*yup(5) -dconjg(yup(34)) 
2136      -     *yup(34))-dconjg(yup(35))*dotup(idc1,idc1)*yup(35)))/xup(1)
2137           bfun(4,ii,kk)=(4*yup(16)*(yup(9)*(dconjg(yup(17))*yup(11)*
2138      -     yup(32) + dconjg(yup(34))*(-(dconjg(yup(24))*yup(20)) + 
2139      -     dotup(idb1,idb1)*yup(34))) +dotup(idc1,idc1)*((yup(2) -
2140      -     yup(7))*yup(29)*yup(31) +yup(9)*(-(dconjg(yup(17))*yup(17))+ 
2141      -     dconjg(yup(35))*yup(35)))))/xup(1)
2142           bfun(5,ii,kk)=(2*yup(1)*yup(16)*yup(27)*yup(29))/xup(1)
2143           bfun(8,ii,kk)=(-4*dotup(idc1,idc1)*yup(29)*(yup(9)*yup(16)*
2144      -     yup(19)+(yup(7)*yup(16) + yup(2)*(-yup(12) + yup(18)))*
2145      -     yup(31)) +4*dconjg(yup(34))*yup(9)*(yup(12) - yup(18))*
2146      -     (-(dconjg(yup(24))*yup(20)) +dotup(idb1,idb1)*yup(34))+ 
2147      -     4*dconjg(yup(35))*(dotup(idc1,idc1)*yup(9)*(yup(12)-yup(18))*
2148      -     yup(35) + 2*dconjg(inpup(idk2,idk1))*dotup(idc1,idk1)*
2149      -     inpup(idq0,idb1)*yup(27)*yup(36)))/xup(1)
2150           bfun(9,ii,kk)=0.0d0
2151 c...helicity(17,2)=(-,-,-,-,-,-)

2152         do mm=1,9
2153            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2154      &     dconjg(bfun(mm,ii,kk))
2155         end do
2156 
2157 c...helicity(2,2)=m(+,+,+,+,+,-)=helicity(3,1)(k_2,k_1)

2158         kk=2
2159         bfun(1,ii,kk)=(4*(dconjg(yup(1))*(dotup(idb1,idb1)*yup(11)*
2160      -     yup(19)*yup(27)+dconjg(yup(34))*yup(10)*(-(dconjg(yup(24))
2161      -     *yup(20)) + dotup(idb1,idb1)*yup(34))) +dotup(idc1,idc1)*
2162      -     (dconjg(yup(8))*dotup(idb1,idb1)*yup(19)*yup(31) + yup(10)*
2163      -     (yup(25)*yup(30)*yup(31) + dconjg(yup(1))*dconjg(yup(35))
2164      -     *yup(35)))))/yup(8)
2165         bfun(2,ii,kk)=(-4*dconjg(yup(9))*(dotup(idb1,idb1)*(yup(4)
2166      -     *(dconjg(yup(8))*dconjg(yup(33))-dconjg(yup(4))*yup(10))+ 
2167      -     yup(11)*yup(19)*yup(27) +dconjg(yup(34))*yup(10)*yup(34))+ 
2168      -     yup(10)*(dconjg(yup(24))*(-(dconjg(yup(34))*yup(20))+yup(4) 
2169      -     *yup(25))+dconjg(yup(35))*dotup(idc1,idc1)*yup(35))))/yup(8)
2170           bfun(3,ii,kk)=(-4*yup(16)*(dconjg(yup(1))*(dconjg(yup(17))*
2171      -     yup(11)*yup(32)+dconjg(yup(34))*(-(dconjg(yup(24))*yup(20))+ 
2172      -     dotup(idb1,idb1)*yup(34))) +dotup(idc1,idc1)*(yup(25)*
2173      -     (-yup(19)+yup(30))*yup(31)+dconjg(yup(1))*(-(dconjg(yup(17))
2174      -     *yup(17))+dconjg(yup(35))*yup(35)))))/yup(8)
2175           bfun(4,ii,kk)=(4*dconjg(yup(9))*yup(16)*(-(yup(4)*
2176      -     (dconjg(yup(4))*dotup(idb1,idb1) + (-dconjg(yup(24)) +
2177      -     dconjg(yup(33)))*yup(25))) +dconjg(yup(17))*
2178      -     (-(dotup(idc1,idc1)*yup(17)) + yup(11)*yup(32))
2179      -     + dconjg(yup(34))*(-(dconjg(yup(24))*yup(20)) + 
2180      -     dotup(idb1,idb1)*yup(34)) + dconjg(yup(35))*dotup(idc1,idc1)
2181      -     *yup(35)))/yup(8)
2182           bfun(5,ii,kk)=(2*dconjg(yup(9))*yup(16)*yup(28)*yup(29))/yup(8)
2183           bfun(8,ii,kk)=(4*dconjg(yup(9))*(dconjg(yup(24))*((yup(12)
2184      -     - yup(18))*(-(dconjg(yup(34))*yup(20)) +yup(4)*yup(25)) + 
2185      -     2*dotup(idc1,idk1)*yup(14)*yup(29))+dotup(idb1,idb1)*(yup(12) 
2186      -     -yup(18))*(-(dconjg(yup(4))*yup(4))+dconjg(yup(34))*yup(34))+ 
2187      -     dotup(idc1,idc1)*(-(yup(16)*yup(19)*yup(29)) +dconjg(yup(35)) 
2188      -     *(yup(12) - yup(18))*yup(35))))/yup(8)
2189           bfun(9,ii,kk)=(4*dconjg(yup(5))*yup(11)*yup(20)*yup(30))/yup(8)
2190 c...helicity(18,2)=m(-,-,-,-,-,+)

2191         do mm=1,9
2192            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2193      &     dconjg(bfun(mm,ii,kk))
2194         end do
2195 
2196 c...helicity(3,2)=(+,+,+,+,-,+)=helicity(2,1)(k_2,k_1)

2197         kk=3
2198         bfun(1,ii,kk)=(4*dconjg(yup(10))*yup(1)*((-(dconjg(yup(24))
2199      -     *dconjg(yup(34))) +dconjg(yup(5))*yup(2))*yup(20) + 
2200      -     dotup(idb1,idb1)*(-(dconjg(yup(5))*yup(5))+dconjg(yup(34)) 
2201      -     *yup(34)) + dotup(idc1,idc1)*(-(dconjg(yup(13))*yup(13)) + 
2202      -     dconjg(yup(35))*yup(35)) + dconjg(yup(18))*yup(13)*
2203      -     (-dconjg(yup(38)) + yup(36))))/dconjg(yup(8))
2204         bfun(2,ii,kk)=(-4*dconjg(yup(10))*(dotup(idc1,idc1)*
2205      -     (yup(2)*(-yup(19)+yup(29))*yup(31)+yup(9)*(-(dconjg(yup(13)) 
2206      -     *yup(13))+dconjg(yup(35))*yup(35)))+yup(9)*(dconjg(yup(34))*
2207      -     (-(dconjg(yup(24))*yup(20)) +dotup(idb1,idb1)*yup(34)) + 
2208      -     dconjg(yup(18))*yup(13)*yup(36))))/dconjg(yup(8))
2209           bfun(3,ii,kk)=(-4*yup(1)*(dotup(idb1,idb1)*(dconjg(yup(18))
2210      -     *yup(19)*(yup(28) - yup(31)) + dconjg(yup(16))*
2211      -     (-(dconjg(yup(5))*yup(5)) + dconjg(yup(34))*yup(34))) + 
2212      -     dconjg(yup(16))*((-(dconjg(yup(24))*dconjg(yup(34))) + 
2213      -     dconjg(yup(5))*yup(2))*yup(20) + dconjg(yup(35))* 
2214      -     dotup(idc1,idc1)*yup(35))))/dconjg(yup(8))
2215           bfun(4,ii,kk)=(4*(dotup(idb1,idb1)*(dotup(idc1,idc1)
2216      -     *yup(8)*yup(19)*yup(31)+yup(9)*(dconjg(yup(18))*yup(19)
2217      -     *yup(28) +dconjg(yup(16))*dconjg(yup(34))*yup(34)))
2218      -     +dconjg(yup(16))*(-(dconjg(yup(24))*dconjg(yup(34))*yup(9)*
2219      -     yup(20)) +dotup(idc1,idc1)*(yup(2)*yup(29)*yup(31) + 
2220      -     dconjg(yup(35))*yup(9)*yup(35)))))/dconjg(yup(8))
2221           bfun(5,ii,kk)=(2*dconjg(yup(10))*yup(1)*yup(27)*yup(30))/
2222      -   dconjg(yup(8))
2223           bfun(8,ii,kk)=(4*((-(dconjg(yup(10))*dconjg(yup(24))) + 
2224      -     dconjg(yup(14))*dotup(idb1,idb1))*(dconjg(yup(18))*yup(9)
2225      -     *yup(14)+2*dotup(idc1,idk1)*yup(4)*yup(27))+(dconjg(yup(12)) 
2226      -     - dconjg(yup(18)))*dconjg(yup(34))*yup(9)*(-(dconjg(yup(24))
2227      -     *yup(20)) +dotup(idb1,idb1)*yup(34)) +dotup(idc1,idc1)*
2228      -     (2*dconjg(yup(35))*dotup(idc1,idk1)*yup(8)*yup(35) + 
2229      -     (dconjg(yup(12))-dconjg(yup(18)))*(yup(2)*yup(29)*yup(31)+ 
2230      -     dconjg(yup(35))*yup(9)*yup(35)))))/dconjg(yup(8))
2231           bfun(9,ii,kk)=(4*dconjg(yup(15))*(dotup(idb1,idb1)*yup(5)
2232      -     -yup(2)*yup(20))*yup(28)+4*dconjg(yup(35))*dotup(idc1,idc1)*
2233      -     yup(8)*yup(35))/dconjg(yup(8))
2234 c...helicity(19,2)=(-,-,-,-,+,-)

2235         do mm=1,9
2236            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2237      &     dconjg(bfun(mm,ii,kk))
2238         end do
2239 
2240 c...helicity(4,2)=(+,+,+,+,-,-)=helicity(4,1)(k_2,k_1)

2241         kk=4
2242         bfun(1,ii,kk)=(4*dconjg(yup(10))*(dotup(idc1,idc1)*
2243      -     ((dconjg(yup(3))*dconjg(yup(12)) - dconjg(yup(1))
2244      -     *dconjg(yup(13)))*yup(13)+yup(25)*yup(30)*yup(31)+ 
2245      -     dconjg(yup(1))*dconjg(yup(35))*yup(35)) +dconjg(yup(1))*
2246      -     (dconjg(yup(34))*(-(dconjg(yup(24))*yup(20)) + 
2247      -     dotup(idb1,idb1)*yup(34)) +dconjg(yup(18))*yup(13) 
2248      -     *yup(36))))/xup(2)
2249         bfun(2,ii,kk)=(4*dconjg(yup(9))*dconjg(yup(10))*(dconjg(yup(24))
2250      -     *(dconjg(yup(34))*yup(20)+yup(4)*(dconjg(yup(7))-yup(25)))+ 
2251      -     dotup(idb1,idb1)*(dconjg(yup(4))*yup(4) - dconjg(yup(34))
2252      -     *yup(34)) + dotup(idc1,idc1)*(dconjg(yup(13))*yup(13) - 
2253      -     dconjg(yup(35))*yup(35)) - dconjg(yup(18))*yup(13)
2254      -     *yup(36)))/xup(2)
2255           bfun(3,ii,kk)=(-4*(dconjg(yup(1))*dconjg(yup(18))*
2256      -     dotup(idb1,idb1)*yup(19)*yup(28) +dconjg(yup(16))*
2257      -     (dconjg(yup(1))*dconjg(yup(34))*(-(dconjg(yup(24))
2258      -     *yup(20)) +dotup(idb1,idb1)*yup(34)) +dotup(idc1,idc1)*
2259      -     (yup(25)*yup(30)*yup(31) + dconjg(yup(1))*dconjg(yup(35))
2260      -     *yup(35)))))/xup(2)
2261           bfun(4,ii,kk)=(4*dconjg(yup(9))*(dotup(idb1,idb1)*
2262      -     ((dconjg(yup(7))*dconjg(yup(14)) - dconjg(yup(4))
2263      -     *dconjg(yup(16)))*yup(4) +dconjg(yup(18))*yup(19)*yup(28)+ 
2264      -     dconjg(yup(16))*dconjg(yup(34))*yup(34)) +dconjg(yup(16))*
2265      -     (dconjg(yup(24))*(-(dconjg(yup(34))*yup(20))+yup(4)*yup(25))+ 
2266      -     dconjg(yup(35))*dotup(idc1,idc1)*yup(35))))/xup(2)
2267         bfun(5,ii,kk)=(2*dconjg(yup(9))*dconjg(yup(10))*yup(28)*yup(30))
2268      -   /xup(2)
2269           bfun(8,ii,kk)=(4*dconjg(yup(9))*(dconjg(yup(12))-
2270      -     dconjg(yup(18)))*(dconjg(yup(24))*(dconjg(yup(10))
2271      -     *yup(14) -dconjg(yup(34))*yup(20) + yup(4)*yup(25)) - 
2272      -     dotup(idb1,idb1)*(dconjg(yup(4))*yup(4) + dconjg(yup(14))
2273      -     *yup(14) -dconjg(yup(34))*yup(34)) +dconjg(yup(35))* 
2274      -     dotup(idc1,idc1)*yup(35)))/xup(2)
2275         bfun(9,ii,kk)=(-4*dconjg(inpup(idb2,idq0))*dconjg(yup(35))*
2276      -    inpup(idk1,idk2)*yup(28)*yup(32))/xup(2)
2277 c...helicity(20,2)=(-,-,-,-,+,+)

2278         do mm=1,9
2279            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2280      &     dconjg(bfun(mm,ii,kk))
2281         end do
2282 
2283 c...helicity(5,2)=(+,+,+,-,+,+)=helicity(5,1)(k_2,k_1)

2284         kk=5
2285         bfun(1,ii,kk)=(4*pmomup(5,idc1)*(dotup(idb1,idb1)*
2286      -     (-(yup(1)*(dconjg(inpup(idq0,idc2))*yup(14) - 
2287      -     dconjg(inpup(idc1,idq0))*yup(15))*yup(19)) - 
2288      -     (dconjg(inpup(idc1,idq0))*yup(5)*yup(10) - 
2289      -     dconjg(inpup(idk2,idk1))*yup(19)*yup(27))*yup(31)) - 
2290      -     dconjg(yup(35))*yup(10)*(dconjg(inpup(idb2,idk1))
2291      -     *yup(31)*yup(32) + dconjg(inpup(idb2,idq0))*yup(1)*
2292      -     (yup(22) + yup(32)))))/xup(1)
2293         bfun(2,ii,kk)=(4*pmomup(5,idc1)*(dotup(idb1,idb1)*
2294      -     (yup(9)*(dconjg(inpup(idq0,idc2))*yup(14) - 
2295      -     dconjg(inpup(idc1,idq0))*yup(15))*yup(19)+dconjg(yup(4))
2296      -     *yup(4)*(-(dconjg(inpup(idq0,idk1))*yup(10)) - 
2297      -     dconjg(inpup(idk2,idk1))*yup(19)))+dconjg(yup(35))*yup(10)*
2298      -     (dconjg(inpup(idb2,idk1))*yup(22)*yup(31) + 
2299      -     dconjg(inpup(idb2,idq0))*yup(9)*(yup(22)+yup(32)))))/xup(1)
2300           bfun(3,ii,kk)=(4*pmomup(5,idc1)*yup(16)*
2301      -     (dconjg(inpup(idc1,idq0))*dotup(idb1,idb1)*yup(5)*
2302      -     yup(31)+ dconjg(yup(35))*(dconjg(inpup(idb2,idk1))*yup(31)
2303      -     *yup(32) +dconjg(inpup(idb2,idq0))*yup(1)*(yup(22) +
2304      -     yup(32))) +dconjg(yup(17))*(-(dconjg(inpup(idk2,idk1))
2305      -     *yup(31)*yup(32)) +dconjg(inpup(idq0,idk2))*yup(1)*
2306      -     (yup(22) + yup(32)))))/xup(1)
2307           bfun(4,ii,kk)=(-4*pmomup(5,idc1)*yup(16)*
2308      -     (-(dconjg(inpup(idq0,idk1))*dconjg(yup(4))*dotup(idb1,idb1)
2309      -     *yup(4)) +dconjg(yup(35))*(dconjg(inpup(idb2,idk1))
2310      -     *yup(22)*yup(31) +dconjg(inpup(idb2,idq0))*yup(9)*(yup(22)+
2311      -     yup(32))) +dconjg(yup(17))*(-(dconjg(inpup(idk2,idk1))
2312      -     *yup(22)*yup(31)) +dconjg(inpup(idq0,idk2))*yup(9)*
2313      -     (yup(22) + yup(32)))))/xup(1)
2314         bfun(5,ii,kk)=(2*dconjg(inpup(idk1,idq0))*pmomup(5,idc1)*yup(16)
2315      -    *(yup(27) + yup(28))*yup(29))/xup(1)
2316           bfun(8,ii,kk)=(4*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk2))
2317      -     *dconjg(yup(14))*yup(9)*(dotup(idb1,idb1)*yup(14) - yup(16)
2318      -     *yup(23))) -dconjg(inpup(idq0,idk1))*(-(dconjg(yup(4))
2319      -     *dotup(idb1,idb1)*yup(4)*(yup(12)-yup(18)))-dconjg(yup(14)) 
2320      -     *yup(12)*(dotup(idb1,idb1)*yup(14) - yup(16)*yup(23)))-
2321      -     dconjg(yup(35))*((yup(12)-yup(18))*(dconjg(inpup(idb2,idk1))
2322      -     *yup(22)*yup(31)+dconjg(inpup(idb2,idq0))*yup(9)*(yup(22) +
2323      -     yup(32))) +2*dconjg(inpup(idk2,idk1))*dotup(idc1,idk1)*
2324      -     yup(27)*yup(35))))/xup(1)
2325           bfun(9,ii,kk)=(4*dconjg(inpup(idk2,idk1))*dconjg(yup(35))*
2326      -    pmomup(5,idc1)*yup(28)*yup(35))/xup(1)
2327 c...helicity(21,2)=(-,-,-,+,-,-)

2328         do mm=1,9
2329            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2330      &     -dconjg(bfun(mm,ii,kk))
2331         end do
2332 
2333 c...helicity(6,2)=(+,+,+,-,+,-)=helicity(7,1)(k_2,k_1)

2334         kk=6
2335         bfun(1,ii,kk)=(4*dconjg(yup(1))*pmomup(5,idc1)*
2336      -     (-(dotup(idb1,idb1)*(-(dconjg(inpup(idq0,idk1))*
2337      -     dconjg(yup(8))) +dconjg(inpup(idq0,idc2))*yup(14) - 
2338      -     dconjg(inpup(idc1,idq0))*yup(15))*yup(19))+ yup(10)*
2339      -     (dconjg(inpup(idq0,idk1))*yup(25)*yup(30) - 
2340      -     dconjg(inpup(idb2,idq0))*dconjg(yup(35))*
2341      -     (yup(22) + yup(32)))))/yup(8)
2342         bfun(2,ii,kk)=(4*dconjg(yup(9))*pmomup(5,idc1)*(dotup(idb1,idb1)
2343      -     *yup(19)*(dconjg(inpup(idq0,idc2))*yup(14) - 
2344      -     dconjg(inpup(idc1,idq0))*yup(15)-dconjg(inpup(idq0,idk2)) 
2345      -     *yup(31)) + dconjg(inpup(idb2,idq0))*dconjg(yup(35))*
2346      -     yup(10)*(-yup(21) + yup(22) + yup(32))))/yup(8)
2347           bfun(3,ii,kk)=(4*dconjg(yup(1))*pmomup(5,idc1)*yup(16)*
2348      -     (dconjg(inpup(idq0,idk1))*yup(25)*(yup(19) - yup(30)) + 
2349      -     (dconjg(inpup(idq0,idk2))*dconjg(yup(17)) + 
2350      -     dconjg(inpup(idb2,idq0))*dconjg(yup(35)))*
2351      -     (yup(22) + yup(32))))/yup(8)
2352           bfun(4,ii,kk)=(4*dconjg(yup(9))*(dconjg(inpup(idq0,idk2))
2353      -     *dconjg(yup(17))+dconjg(inpup(idb2,idq0))*dconjg(yup(35)))*
2354      -     pmomup(5,idc1)*yup(16)*(yup(21) - yup(22) - yup(32)))/yup(8)
2355           bfun(5,ii,kk)=0.0d0
2356           bfun(8,ii,kk)=(4*dconjg(yup(9))*pmomup(5,idc1)*
2357      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(14))*(dotup(idb1,idb1)
2358      -     *yup(14) - yup(16)*yup(23)))+ dconjg(inpup(idb2,idq0))
2359      -     *dconjg(yup(35))*(-2*dotup(idc1,idk1)*yup(17)+(yup(12)-
2360      -     yup(18))*(yup(21)- yup(22) - yup(32)))))/yup(8)
2361           bfun(9,ii,kk)=(4*dconjg(inpup(idk2,idq0))*pmomup(5,idc1)*
2362      -     (dconjg(yup(5))*yup(20) + yup(25)*yup(28))*yup(30))/yup(8)
2363 c...helicity(22,2)=(-,-,-,+,-,+)

2364         do mm=1,9
2365            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2366      &     -dconjg(bfun(mm,ii,kk))
2367         end do
2368 
2369 c...helicity(7,2)=(+,+,+,-,-,+)=helicity(6,1)(k_2,k_1)

2370         kk=7
2371         bfun(1,ii,kk)=(-4*dconjg(yup(10))*pmomup(5,idc1)*
2372      -     (dconjg(inpup(idb2,idq0))*yup(1)*(-((dconjg(yup(11))
2373      -     + dconjg(yup(18)))*yup(13)) +dconjg(yup(35))*(yup(22) 
2374      -     + yup(32))) +yup(31)*(dconjg(inpup(idc1,idq0))*
2375      -     dotup(idb1,idb1)*yup(5) +dconjg(inpup(idb2,idk1))*
2376      -     (-(dconjg(yup(18))*yup(13)) +dconjg(yup(35))*yup(32) 
2377      -     ))))/dconjg(yup(8))
2378         bfun(2,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idc1)*
2379      -     (-(dconjg(inpup(idq0,idk1))*dconjg(yup(4))*dotup(idb1,idb1)
2380      -     *yup(4)) +dconjg(inpup(idb2,idk1))*(-(dconjg(yup(11))
2381      -     *yup(13)) +dconjg(yup(35))*yup(22))*yup(31) + 
2382      -     dconjg(inpup(idb2,idq0))*yup(9)*(-((dconjg(yup(11)) +
2383      -     dconjg(yup(18)))*yup(13)) + dconjg(yup(35))*(yup(22) + 
2384      -     yup(32)))))/dconjg(yup(8))
2385           bfun(3,ii,kk)=(4*pmomup(5,idc1)*(dotup(idb1,idb1)*
2386      -     (dconjg(inpup(idc1,idq0))*dconjg(yup(16))*yup(5) - 
2387      -     dconjg(inpup(idq0,idk1))*dconjg(yup(18))*yup(19))*yup(31)+ 
2388      -     dconjg(yup(16))*dconjg(yup(35))*(dconjg(inpup(idb2,idk1))
2389      -     *yup(31)*yup(32) +dconjg(inpup(idb2,idq0))*yup(1)*
2390      -     (yup(22) + yup(32)))))/dconjg(yup(8))
2391           bfun(4,ii,kk)=(4*pmomup(5,idc1)*(dconjg(inpup(idq0,idk1))
2392      -     *dconjg(yup(11))*dotup(idb1,idb1)*yup(19)*yup(31) - 
2393      -     dconjg(yup(16))*(-(dconjg(inpup(idq0,idk1))*dconjg(yup(4))*
2394      -     dotup(idb1,idb1)*yup(4)) +dconjg(yup(35))*
2395      -     (dconjg(inpup(idb2,idk1))*yup(22)*yup(31) + 
2396      -     dconjg(inpup(idb2,idq0))*yup(9)*(yup(22)+yup(32))))))/
2397      -     dconjg(yup(8))
2398           bfun(5,ii,kk)=(2*dconjg(inpup(idk1,idq0))*dconjg(yup(10))*
2399      -     pmomup(5,idc1)*(yup(27) + yup(28))*yup(30))/dconjg(yup(8))
2400           bfun(8,ii,kk)=(4*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk1))
2401      -     *dconjg(yup(4))*(-dconjg(yup(12)) + dconjg(yup(18)))*
2402      -     dotup(idb1,idb1)*yup(4)) - 2*dotup(idc1,idk1)*
2403      -     (dconjg(inpup(idb2,idq0))*dconjg(yup(35))*yup(8)*yup(22)+ 
2404      -     dconjg(inpup(idq0,idk1))*dconjg(yup(10))*yup(27)*yup(30)) - 
2405      -     dconjg(yup(35))*(dconjg(inpup(idb2,idk1))*(dconjg(yup(12))-
2406      -     dconjg(yup(18)))*yup(22)*yup(31) + dconjg(inpup(idb2,idq0))
2407      -     *yup(9)*(dconjg(yup(12))*(yup(22)+yup(32))-dconjg(yup(18))*
2408      -     (yup(22) - yup(26) + yup(32))))))/dconjg(yup(8))
2409           bfun(9,ii,kk)=(4*dconjg(inpup(idq0,idk1))*dconjg(yup(11))*
2410      -     dconjg(yup(35))*pmomup(5,idc1)*yup(35))/dconjg(yup(8))
2411 c...helicity(23,2)=(-,-,-,+,+,-)

2412         do mm=1,9
2413            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2414      &     -dconjg(bfun(mm,ii,kk))
2415         end do
2416 
2417 c...helicity(8,2)=(+,+,+,-,-,-)=helicity(8,1)(k_2,k_1)

2418         kk=8
2419         bfun(1,ii,kk)=(-4*dconjg(yup(1))*dconjg(yup(10))*pmomup(5,idc1)*
2420      -     (dconjg(inpup(idb2,idq0))*dconjg(inpup(idq0,idk1))
2421      -     *inpup(idk2,idk1)*yup(13) - dconjg(inpup(idq0,idk1))*yup(25)*
2422      -     yup(30) + dconjg(inpup(idb2,idq0))*(-((dconjg(yup(11)) +
2423      -     dconjg(yup(18)))*yup(13)) +dconjg(yup(35))*(yup(22) 
2424      -     + yup(32)))))/xup(2)
2425         bfun(2,ii,kk)=(-4*dconjg(inpup(idb2,idq0))*dconjg(yup(9))*
2426      -     dconjg(yup(10))*pmomup(5,idc1)*((dconjg(yup(11)) -
2427      -     dconjg(yup(12)) +dconjg(yup(18)))*yup(13) + 
2428      -      dconjg(yup(35))*(yup(21) - yup(22) - yup(32))))/xup(2)
2429           bfun(3,ii,kk)=(4*dconjg(yup(1))*dconjg(yup(16))*pmomup(5,idc1)*
2430      -     (-(dconjg(inpup(idq0,idk1))*yup(25)*yup(30)) + 
2431      -     dconjg(inpup(idb2,idq0))*dconjg(yup(35))*
2432      -     (yup(22) + yup(32))))/xup(2)
2433           bfun(4,ii,kk)=(4*dconjg(inpup(idb2,idq0))*dconjg(yup(9))*
2434      -     dconjg(yup(16))*dconjg(yup(35))*pmomup(5,idc1)*
2435      -     (yup(21) - yup(22) - yup(32)))/xup(2)
2436           bfun(5,ii,kk)=0.0d0
2437           bfun(8,ii,kk)=(4*dconjg(inpup(idb2,idq0))*dconjg(yup(9))*
2438      -     (dconjg(yup(12)) - dconjg(yup(18)))*dconjg(yup(35))
2439      -     *pmomup(5,idc1)*(yup(21)-yup(22)+yup(26)-yup(32)))/xup(2)
2440           bfun(9,ii,kk)=0.0d0
2441 c...helicity(24,2)=(-,-,-,+,+,+)

2442         do mm=1,9
2443            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2444      &     -dconjg(bfun(mm,ii,kk))
2445         end do
2446 
2447 c...helicity(9,2)=(+,-,-,+,+,+)=helicity(9,1)(k_2,k_1)

2448         kk=9
2449         bfun(1,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*yup(1)*
2450      -     (dconjg(yup(13))*yup(13)*(yup(11)+ yup(18)) +dconjg(yup(8))
2451      -     *yup(7)*yup(30) +yup(10)*(yup(29) + yup(30))*
2452      -     (yup(27) + yup(28) - yup(31))))/xup(1)
2453         bfun(2,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*yup(9)*
2454      -     (yup(13)*(dconjg(yup(3))*yup(7) +dconjg(yup(13))*(yup(11) 
2455      -     +yup(18)))+yup(10)*(-(dconjg(yup(3))*yup(3))-dconjg(yup(6)) 
2456      -     *yup(6) +(yup(27) + yup(28))*(yup(29) + yup(30)))))/xup(1)
2457           bfun(3,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*yup(1)*
2458      -     (dconjg(yup(6))*yup(7)*yup(17) +yup(11)*yup(19)*yup(29) + 
2459      -     yup(18)*yup(19)*yup(29) +yup(16)*(yup(29) + yup(30))*
2460      -     (yup(27) + yup(28) - yup(31))))/xup(1)
2461           bfun(4,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*yup(9)*
2462      -     (-((yup(11) - yup(12) + yup(18))*yup(19)*yup(29)) + 
2463      -     yup(16)*(dconjg(yup(3))*yup(3)- dconjg(inpup(idb1,idq0))
2464      -     *inpup(idq0,idk1)*yup(6) - (yup(27) + yup(28))*(yup(29)
2465      -     + yup(30)))))/xup(1)
2466           bfun(5,ii,kk)=0.0d0
2467           bfun(8,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*yup(9)*
2468      -     (yup(12)-yup(18))*(yup(29)+yup(30))*(yup(19)-yup(27)
2469      -     -yup(28)+yup(31)))/xup(1)
2470           bfun(9,ii,kk)=0.0d0
2471 c...helicity(25,2)=(-,+,+,-,-,-)

2472         do mm=1,9
2473            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2474      &     dconjg(bfun(mm,ii,kk))
2475         end do
2476 
2477 c...helicity(10,2)=(+,-,-,+,+,-)=helicity(11,1)(k_2,k_1)

2478         kk=10
2479         bfun(1,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*(-(dconjg(yup(1))
2480      -     *dconjg(yup(13))*yup(13)*(yup(11)+yup(18)))-dconjg(yup(2))*
2481      -     (yup(18)*yup(19) + yup(10)*yup(27))*yup(31) + yup(10)*(
2482      -     -(dconjg(yup(1))*(yup(27) + yup(28))*(yup(29) + yup(30))) - 
2483      -     yup(25)*yup(27)*yup(31))))/yup(8)
2484         bfun(2,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*(yup(4)*
2485      -     (-(dconjg(inpup(idc2,idk2))*dconjg(yup(8))*dconjg(yup(13))*
2486      -     inpup(idk1,idb2)) +dconjg(yup(4))*yup(10)*(dconjg(yup(2))
2487      -     + yup(25))) + dconjg(yup(9))*(dconjg(yup(13))*yup(13)
2488      -     *(yup(11) + yup(18)) +yup(10)*(yup(27) + yup(28))*
2489      -     (yup(29) + yup(30)))))/yup(8)
2490           bfun(3,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(1))*
2491      -     yup(11)*yup(19)*yup(29) +yup(18)*yup(19)*(dconjg(yup(1))
2492      -     *yup(29)+yup(25)*yup(31))+yup(16)*(dconjg(yup(1))*(yup(27) 
2493      -     + yup(28))*(yup(29) + yup(30)) + dconjg(yup(2))*yup(27)*
2494      -     yup(31) +yup(25)*yup(27)*yup(31))))/yup(8)
2495           bfun(4,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*
2496      -     (dconjg(inpup(idc2,idk2))*inpup(idq0,idk1)*yup(4)*yup(19)
2497      -     *yup(25) -dconjg(yup(9))*(yup(11) + yup(18))*yup(19)*
2498      -     yup(29)+yup(16)*(-(dconjg(yup(4))*yup(4)*(dconjg(yup(2))
2499      -     + yup(25))) -dconjg(yup(9))*(yup(27) + yup(28))*
2500      -     (yup(29) + yup(30)))))/yup(8)
2501           bfun(5,ii,kk)=(-2*dconjg(yup(8))*pmomup(5,idb1)*pmomup(5,idc1)*
2502      -     (yup(27) + yup(28))*(yup(29) + yup(30)))/yup(8)
2503           bfun(8,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(4))
2504      -     *yup(4)*(yup(12) - yup(18))*(dconjg(yup(2)) + yup(25)) + 
2505      -     (dconjg(yup(9))*yup(18)*yup(19) + (2*dconjg(yup(8))
2506      -     *dotup(idc1,idk1)+dconjg(yup(9))*(yup(12) - yup(18)))*
2507      -     (yup(27) + yup(28)))*(yup(29) + yup(30))))/yup(8)
2508           bfun(9,ii,kk)=0.0d0
2509 c...helicity(26,2)=(-,+,+,-,-,+)

2510         do mm=1,9
2511            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2512      &     dconjg(bfun(mm,ii,kk))
2513         end do
2514 
2515 c...helicity(11,2)=(+,-,-,+,-,+)=helicity(10,1)(k_2,k_1)

2516         kk=11
2517         bfun(1,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idb1)*pmomup(5,idc1)*
2518      -     yup(1)*(-(dconjg(yup(8))*yup(8))+yup(19)*(yup(27)+yup(28))- 
2519      -     (yup(29)+yup(30))*(yup(27)+yup(28)-yup(31))))/dconjg(yup(8))
2520         bfun(2,ii,kk)=(-4*dconjg(yup(10))*pmomup(5,idb1)*pmomup(5,idc1)*
2521      -     yup(9)*(dconjg(yup(3))*yup(3)+dconjg(yup(6))*yup(6)+(yup(27) 
2522      -     + yup(28))*(yup(19) - yup(29) - yup(30)) - yup(19)*yup(31)
2523      -     ))/dconjg(yup(8))
2524         bfun(3,ii,kk)=(-4*dconjg(yup(16))*pmomup(5,idb1)*pmomup(5,idc1)*
2525      -     yup(1)*(yup(19) - yup(29) - yup(30))*(yup(27) + yup(28)
2526      -     - yup(31)))/dconjg(yup(8))
2527         bfun(4,ii,kk)=(-4*dconjg(yup(16))*pmomup(5,idb1)*pmomup(5,idc1)*
2528      -     yup(9)*(-(dconjg(yup(3))*yup(3)) -dconjg(yup(6))*yup(6) + 
2529      -     dconjg(inpup(idq0,idk2))*inpup(idq0,idk1)*yup(8) - (yup(27)
2530      -     + yup(28))*(yup(19) - yup(29) - yup(30))))/dconjg(yup(8))
2531           bfun(5,ii,kk)=0.0d0
2532           bfun(8,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*yup(9)*
2533      -     (dconjg(yup(14))*(dconjg(yup(10))+dconjg(yup(16)))*yup(14)- 
2534      -     (dconjg(yup(12)) - dconjg(yup(18)))*(yup(29) + yup(30))*
2535      -     (yup(27) + yup(28) - yup(31))))/dconjg(yup(8))
2536         bfun(9,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(15))
2537      -     *yup(5) + yup(8)*yup(28))*(yup(29) + yup(30)))/dconjg(yup(8))
2538 c...helicity(27,2)=(-,+,+,-,+,-)

2539         do mm=1,9
2540            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2541      &     dconjg(bfun(mm,ii,kk))
2542         end do
2543 
2544 c...helicity(12,2)=(+,-,-,+,-,-)=helicity(12,1)(k_2,k_1)

2545         kk=12
2546         bfun(1,ii,kk)=(-4*dconjg(yup(10))*pmomup(5,idb1)*pmomup(5,idc1)*
2547      -     (-(dconjg(yup(1))*yup(19)*(yup(27)+yup(28))) +dconjg(yup(1)) 
2548      -     *yup(27)*yup(29) +dconjg(yup(1))*yup(28)*yup(29) + 
2549      -     dconjg(yup(1))*yup(27)*yup(30)+dconjg(yup(1))*yup(28)*yup(30) 
2550      -     +dconjg(yup(2))*yup(27)*yup(31) - dconjg(yup(7))*yup(27)*
2551      -     yup(31) +yup(25)*yup(27)*yup(31)))/xup(2)
2552         bfun(2,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idb1)*pmomup(5,idc1)*
2553      -     (dconjg(yup(4))*yup(4)*(dconjg(yup(2))-dconjg(yup(7))
2554      -     + yup(25)) -dconjg(yup(9))*(yup(27) + yup(28))*(yup(19) -
2555      -     yup(29) - yup(30))))/xup(2)
2556           bfun(3,ii,kk)=(4*dconjg(yup(16))*pmomup(5,idb1)*pmomup(5,idc1)*
2557      -     (-(dconjg(yup(1))*yup(19)*(yup(27)+yup(28)))+dconjg(yup(1))* 
2558      -     yup(27)*yup(29)+dconjg(yup(1))*yup(28)*yup(29)+dconjg(yup(1))
2559      -     *yup(27)*yup(30)+dconjg(yup(1))*yup(28)*yup(30)+
2560      -     dconjg(yup(2))*yup(27)*yup(31)-dconjg(yup(7))*yup(27)*yup(31) 
2561      -     +yup(25)*yup(27)*yup(31)))/xup(2)
2562         bfun(4,ii,kk)=(-4*dconjg(yup(16))*pmomup(5,idb1)*pmomup(5,idc1)*
2563      -     (dconjg(yup(4))*yup(4)*(dconjg(yup(2)) - dconjg(yup(7))
2564      -     + yup(25)) - dconjg(yup(9))*(yup(27) + yup(28))*
2565      -     (yup(19) - yup(29) - yup(30))))/xup(2)
2566           bfun(5,ii,kk)=0.0d0
2567           bfun(8,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(4))
2568      -     *dconjg(yup(10))*dconjg(yup(12))*yup(14) - dconjg(yup(9))
2569      -     *dconjg(yup(10))*dconjg(yup(14))*yup(14) + (dconjg(yup(4))
2570      -     *dconjg(yup(12)) -dconjg(yup(9))*dconjg(yup(14)))*
2571      -     dconjg(yup(16))*yup(14) + dconjg(yup(4))*dconjg(yup(12))
2572      -     *yup(4)*(dconjg(yup(2)) + yup(25)) + dconjg(yup(9))*
2573      -     dconjg(yup(12))*yup(28)*yup(29) + dconjg(yup(9))*
2574      -     dconjg(yup(12))*yup(28)*yup(30) + dconjg(yup(9))*
2575      -     dconjg(yup(12))*yup(27)*(yup(29)+yup(30)))+4*dconjg(yup(18)) 
2576      -     *pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(4))
2577      -     *yup(4)*(dconjg(yup(2))+yup(25))+dconjg(yup(9))*(yup(27)
2578      -     + yup(28))*(yup(29) + yup(30))))/xup(2)
2579           bfun(9,ii,kk)=0.0d0
2580 c...helicity(28,2)=(-,+,+,-,+,+)

2581         do mm=1,9
2582            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2583      &     dconjg(bfun(mm,ii,kk))
2584         end do
2585 
2586 c...helicity(13,2)=(+,-,-,-,+,+)=helicity(13,1)(k_2,k_1)

2587         kk=13
2588         bfun(1,ii,kk)=(4*pmomup(5,idb1)*(-(dotup(idc1,idc1)*
2589      -     (-(dconjg(inpup(idb2,idq0))*yup(3)) - 
2590      -     dconjg(inpup(idb1,idq0))*yup(6))*yup(10)*yup(31)) - 
2591      -     dconjg(yup(13))*dotup(idc1,idc1)*yup(13)*
2592      -     (-(dconjg(inpup(idq0,idk2))*yup(1)) + 
2593      -     dconjg(inpup(idk2,idk1))*yup(31)) -yup(1)*( 
2594      -     dconjg(inpup(idc1,idk2))*yup(19)*yup(24) + 
2595      -     dconjg(inpup(idc1,idq0))*yup(10)*
2596      -     (yup(23) + yup(24)))*yup(34)))/xup(1)
2597         bfun(2,ii,kk)=(4*pmomup(5,idb1)*yup(9)*
2598      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(13))*dotup(idc1,idc1)
2599      -     *yup(13)) + dconjg(yup(4))*(dconjg(inpup(idk2,idk1))*yup(19)
2600      -     *yup(24) +dconjg(inpup(idq0,idk1))*yup(10)*(yup(23) +
2601      -     yup(24))) +(dconjg(inpup(idc1,idk2))*yup(19)*yup(24) + 
2602      -     dconjg(inpup(idc1,idq0))*yup(10)*(yup(23) + yup(24)))*
2603      -     yup(34)))/xup(1)
2604           bfun(3,ii,kk)=(4*pmomup(5,idb1)*(dotup(idc1,idc1)*
2605      -     (dconjg(inpup(idb1,idq0))*yup(1)*yup(17)*yup(19) + 
2606      -     ((-(dconjg(inpup(idb2,idq0))*yup(3)) - 
2607      -     dconjg(inpup(idb1,idq0))*yup(6))*yup(16) + 
2608      -     dconjg(inpup(idk2,idk1))*yup(19)*yup(29))*yup(31)) + 
2609      -     yup(1)*(dconjg(inpup(idc1,idk2))*yup(19)*yup(23) + 
2610      -     dconjg(inpup(idc1,idq0))*yup(16)*(yup(23) + yup(24)))
2611      -     *yup(34)))/xup(1)
2612           bfun(4,ii,kk)=(-4*pmomup(5,idb1)*yup(9)*
2613      -     (dconjg(inpup(idb1,idq0))*dotup(idc1,idc1)*yup(17)*yup(19) + 
2614      -     dconjg(yup(4))*(dconjg(inpup(idk2,idk1))*yup(19)*yup(23) + 
2615      -     dconjg(inpup(idq0,idk1))*yup(16)*(yup(23) + yup(24))) + 
2616      -     (dconjg(inpup(idc1,idk2))*yup(19)*yup(23) + 
2617      -     dconjg(inpup(idc1,idq0))*yup(16)*(yup(23) + yup(24)))*
2618      -     yup(34)))/xup(1)
2619         bfun(5,ii,kk)=(-2*dconjg(inpup(idq0,idk2))*pmomup(5,idb1)*yup(9)
2620      -     *yup(28)*(yup(29) + yup(30)))/xup(1)
2621           bfun(8,ii,kk)=(-4*pmomup(5,idb1)*yup(9)*(yup(12) - yup(18))*
2622      -     (yup(23)+yup(24))*(dconjg(inpup(idq0,idk1))*dconjg(yup(4))+ 
2623      -     dconjg(inpup(idq0,idk2))*dconjg(yup(14)) + 
2624      -     dconjg(inpup(idc1,idq0))*yup(34)))/xup(1)
2625           bfun(9,ii,kk)=(-4*dconjg(inpup(idk2,idk1))*pmomup(5,idb1)*
2626      -     yup(27)*yup(28)*(yup(29) + yup(30)))/xup(1)
2627 c...helicity(29,2)=(-,+,+,+,-,-)

2628         do mm=1,9
2629            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2630      &     -dconjg(bfun(mm,ii,kk))
2631         end do
2632 
2633 c...helicity(14,2)=(+,-,-,-,+,-)=helicity(15,1)(k_2,k_1)

2634         kk=14
2635         bfun(1,ii,kk)=(-4*dconjg(yup(1))*pmomup(5,idb1)*
2636      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(13))*
2637      -     dotup(idc1,idc1)*yup(13)) +dconjg(inpup(idc1,idk2)) 
2638      -     *yup(19)*(-(dconjg(yup(2))*yup(5))+yup(24)*yup(34)) + 
2639      -     dconjg(inpup(idc1,idq0))*yup(10)*(-(yup(5)*(dconjg(yup(2))
2640      -     + yup(25))) +(yup(23) + yup(24))*yup(34))))/yup(8)
2641         bfun(2,ii,kk)=(-4*pmomup(5,idb1)*(dconjg(inpup(idq0,idk2))
2642      -     *dconjg(yup(2))*dotup(idc1,idc1)*yup(19)*yup(31) - 
2643      -     dconjg(yup(9))*(-(dconjg(inpup(idq0,idk2))*dconjg(yup(13))
2644      -     *dotup(idc1,idc1)*yup(13)) +(dconjg(inpup(idc1,idk2)) 
2645      -     *yup(19)*yup(24) +dconjg(inpup(idc1,idq0))*yup(10)*
2646      -     (yup(23) + yup(24)))*yup(34))))/yup(8)
2647           bfun(3,ii,kk)=(4*dconjg(yup(1))*pmomup(5,idb1)*
2648      -     (dconjg(inpup(idb1,idq0))*dotup(idc1,idc1)*yup(17)*yup(19) + 
2649      -     dconjg(inpup(idc1,idk2))*yup(19)*(-(yup(5)*yup(25)) +
2650      -     yup(23)*yup(34)) +dconjg(inpup(idc1,idq0))*yup(16)*
2651      -     (-(yup(5)*(dconjg(yup(2)) + yup(25))) +(yup(23) + yup(24)) 
2652      -     *yup(34))))/yup(8)
2653           bfun(4,ii,kk)=(4*pmomup(5,idb1)*(dconjg(inpup(idq0,idk2))
2654      -     *dotup(idc1,idc1)*yup(19)*yup(25)*yup(31) - 
2655      -     dconjg(yup(9))*(dconjg(inpup(idb1,idq0))*dotup(idc1,idc1)*
2656      -     yup(17)*yup(19) + (dconjg(inpup(idc1,idk2))*yup(19)*yup(23)+ 
2657      -     dconjg(inpup(idc1,idq0))*yup(16)*(yup(23) + yup(24)))
2658      -     *yup(34))))/yup(8)
2659           bfun(5,ii,kk)=(-2*dconjg(inpup(idq0,idk2))*dconjg(yup(1))*
2660      -     pmomup(5,idb1)*yup(27)*(yup(29) + yup(30)))/yup(8)
2661           bfun(8,ii,kk)=(4*pmomup(5,idb1)*(yup(23) + yup(24))*
2662      -     (dconjg(inpup(idq0,idk2))*(dconjg(yup(9))*dconjg(yup(14))
2663      -     *yup(18) +2*dconjg(yup(4))*dotup(idc1,idk1)*yup(27)) + 
2664      -     dconjg(inpup(idc1,idq0))*dconjg(yup(9))*(-yup(12)+yup(18))
2665      -     *yup(34)))/yup(8)
2666         bfun(9,ii,kk)=(-4*dconjg(inpup(idc1,idq0))*pmomup(5,idb1)
2667      -   *yup(15)*(dconjg(yup(2)) + yup(25))*yup(28))/yup(8)
2668 c...helicity(30,2)=(-,+,+,+,-,+)

2669         do mm=1,9
2670            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2671      &     -dconjg(bfun(mm,ii,kk))
2672         end do
2673 
2674 c...helicity(15,2)=(+,-,-,-,-,+)=helicity(14,1)(k_2,k_1)

2675         kk=15
2676         bfun(1,ii,kk)=(-4*dconjg(yup(10))*pmomup(5,idb1)*
2677      -     (dotup(idc1,idc1)*(-(dconjg(inpup(idb2,idq0))*yup(3)) - 
2678      -     dconjg(inpup(idb1,idq0))*yup(6)-dconjg(inpup(idq0,idk1)) 
2679      -     *yup(19))*yup(31) +dconjg(inpup(idc1,idq0))*yup(1)*
2680      -     (yup(23) + yup(24) - yup(33))*yup(34)))/dconjg(yup(8))
2681         bfun(2,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idb1)*yup(9)*
2682      -     (yup(23) + yup(24) - yup(33))*(dconjg(inpup(idq0,idk1))
2683      -     *dconjg(yup(4))+dconjg(inpup(idc1,idq0))*yup(34)))/
2684      -     dconjg(yup(8))
2685           bfun(3,ii,kk)=(4*dconjg(yup(16))*pmomup(5,idb1)*
2686      -     (dotup(idc1,idc1)*(-(dconjg(inpup(idb2,idq0))*yup(3)) - 
2687      -     dconjg(inpup(idb1,idq0))*yup(6)-dconjg(inpup(idq0,idk2)) 
2688      -     *yup(8))*yup(31) -dconjg(inpup(idc1,idq0))*yup(1)*
2689      -     (dconjg(inpup(idq0,idk2))*inpup(idc2,idk2) - yup(23)
2690      -     - yup(24))*yup(34)))/dconjg(yup(8))
2691           bfun(4,ii,kk)=(-4*dconjg(yup(16))*pmomup(5,idb1)*yup(9)*
2692      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(11))*yup(27)) + 
2693      -     dconjg(inpup(idq0,idk1))*dconjg(yup(4))*(yup(23)+yup(24)
2694      -     - yup(33)) +dconjg(inpup(idc1,idq0))*(yup(23) + yup(24))*
2695      -     yup(34)))/dconjg(yup(8))
2696           bfun(5,ii,kk)=0.0d0
2697           bfun(8,ii,kk)=(-4*(dconjg(yup(12)) - dconjg(yup(18)))*
2698      -     pmomup(5,idb1)*yup(9)*(yup(23) + yup(24))*
2699      -     (dconjg(inpup(idq0,idk1))*dconjg(yup(4)) + 
2700      -     dconjg(inpup(idc1,idq0))*yup(34)))/dconjg(yup(8))
2701           bfun(9,ii,kk)=(4*dconjg(inpup(idc1,idq0))*dconjg(yup(11))*
2702      -     pmomup(5,idb1)*yup(5)*(yup(29) + yup(30)))/dconjg(yup(8))
2703 c...helicity(31,2)=(-,+,+,+,+,-)

2704         do mm=1,9
2705            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2706      &     -dconjg(bfun(mm,ii,kk))
2707         end do
2708 
2709 c...helicity(16,2)=(+,-,-,-,-,-)=helicity(16,1)(k_2,k_1)

2710         kk=16
2711         bfun(1,ii,kk)=(4*dconjg(inpup(idc1,idq0))*dconjg(yup(1))*
2712      -     dconjg(yup(10))*pmomup(5,idb1)*(yup(5)*(dconjg(yup(2))
2713      -     - dconjg(yup(7)) +yup(25)) - (yup(23) + yup(24)-yup(33))
2714      -     *yup(34)))/xup(2)
2715         bfun(2,ii,kk)=(4*dconjg(inpup(idc1,idq0))*dconjg(yup(9))*
2716      -     dconjg(yup(10))*pmomup(5,idb1)*(yup(23) + yup(24) 
2717      -     - yup(33))*yup(34))/xup(2)
2718           bfun(3,ii,kk)=(4*dconjg(inpup(idc1,idq0))*dconjg(yup(1))*
2719      -     dconjg(yup(16))*pmomup(5,idb1)*(-(dconjg(inpup(idq0,idk2))
2720      -     *inpup(idk2,idk1)*yup(5)) -yup(5)*(dconjg(yup(2)) + 
2721      -     yup(25)) +(-(dconjg(inpup(idq0,idk2))*inpup(idc2,idk2)) + 
2722      -     yup(23) + yup(24))*yup(34)))/xup(2)
2723           bfun(4,ii,kk)=(4*dconjg(inpup(idc1,idq0))*dconjg(yup(9))*
2724      -     dconjg(yup(16))*pmomup(5,idb1)*(dconjg(inpup(idq0,idk2))
2725      -     *inpup(idc2,idk2) -yup(23) - yup(24))*yup(34))/xup(2)
2726           bfun(5,ii,kk)=0.0d0
2727           bfun(8,ii,kk)=(-4*dconjg(inpup(idc1,idq0))*dconjg(yup(9))*
2728      -    (dconjg(yup(12)) - dconjg(yup(18)))*
2729      -    pmomup(5,idb1)*(yup(23) + yup(24))*yup(34))/xup(2)
2730           bfun(9,ii,kk)=0.0d0
2731 c...helicity(32,2)=(-,+,+,+,+,+)

2732         do mm=1,9
2733            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2734      &     -dconjg(bfun(mm,ii,kk))
2735         end do
2736 
2737         if (ibcstate.eq.1) go to 1222
2738 
2739 c...helicity(33,2)=(+,+,-,+,+,+)=helicity(33,1)(k_2,k_1)

2740         kk=33
2741         bfun(1,ii,kk)=(-4*dconjg(yup(35))*pmomup(5,idc1)*yup(1)*yup(10)
2742      -     *(-(dconjg(yup(38))*inpup(idq0,idb1)) + inpup(idq0,idb1)*
2743      -     (dconjg(yup(42)) + yup(36))))/xup(1)
2744         bfun(2,ii,kk)=(4*pmomup(5,idc1)*yup(9)*yup(10)*
2745      -     (inpup(idq0,idk1)*yup(2)*yup(29) + dconjg(yup(35))*
2746      -     inpup(idq0,idb1)*(dconjg(yup(42)) + yup(36))))/xup(1)
2747           bfun(3,ii,kk)=(-4*pmomup(5,idc1)*yup(1)*yup(16)*
2748      -     (-(inpup(idq0,idb1)*(-(dconjg(yup(35))*dconjg(yup(38))) + 
2749      -     dconjg(yup(17))*yup(12))) +inpup(idq0,idb1)*
2750      -     (dconjg(yup(17))*(yup(11) + yup(18)) -dconjg(yup(35))* 
2751      -     (dconjg(yup(42)) + yup(36)))))/xup(1)
2752           bfun(4,ii,kk)=(-4*pmomup(5,idc1)*yup(9)*yup(16)*
2753      -     (inpup(idq0,idk1)*(yup(2)-yup(7))*yup(29)+inpup(idq0,idb1)*
2754      -     (-(dconjg(yup(17))*(yup(11) + yup(18))) +dconjg(yup(35)) 
2755      -     *(dconjg(yup(42)) + yup(36)))))/xup(1)
2756           bfun(5,ii,kk)=0.0d0
2757           bfun(8,ii,kk)=(-4*dconjg(yup(35))*pmomup(5,idc1)*yup(9)*
2758      -     (yup(12)-yup(18))*(-((dconjg(yup(38))+dconjg(yup(41)))*
2759      -     inpup(idq0,idb1)) + inpup(idq0,idb1)*(dconjg(yup(42)) +
2760      -     yup(36))))/xup(1)
2761           bfun(9,ii,kk)=0.0d0
2762 c...helicity(49,2)=(-,-,+,-,-,-)

2763         do mm=1,9
2764            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2765      &     -dconjg(bfun(mm,ii,kk))
2766         end do
2767 
2768 c...helicity(34,2)=(+,+,-,+,+,-)=helicity(35,1)(k2,k1)

2769         kk=34
2770         bfun(1,ii,kk)=(4*pmomup(5,idc1)*(-(dotup(idb1,idb1)*
2771      -     inpup(idq0,idk1)*yup(18)*yup(19)*yup(31)) - 
2772      -     yup(10)*(dconjg(yup(5))*dotup(idb1,idb1)*
2773      -     inpup(idq0,idc1)*yup(31) + dconjg(yup(35))*
2774      -     (dconjg(yup(42))*inpup(idk1,idb1)*yup(31) + 
2775      -     dconjg(yup(1))*inpup(idq0,idb1)*
2776      -     (dconjg(yup(42)) + yup(36))))))/yup(8)
2777         bfun(2,ii,kk)=(4*pmomup(5,idc1)*(inpup(idq0,idk1)*yup(4)*
2778      -     (dotup(idb1,idb1)*(-(dconjg(yup(8))*dconjg(yup(33))) + 
2779      -     dconjg(yup(4))*yup(10))-dconjg(yup(24))*yup(10)*yup(25))+ 
2780      -     dconjg(yup(9))*dconjg(yup(35))*inpup(idq0,idb1)*
2781      -     yup(10)*(dconjg(yup(42)) + yup(36))))/yup(8)
2782           bfun(3,ii,kk)=(4*pmomup(5,idc1)*yup(16)*
2783      -     (dconjg(yup(5))*dotup(idb1,idb1)*inpup(idq0,idc1)*
2784      -     yup(31)+inpup(idk1,idb1)*(dconjg(yup(35))*dconjg(yup(42)) - 
2785      -     dconjg(yup(17))*yup(18))*yup(31) + dconjg(yup(1))*
2786      -     inpup(idq0,idb1)*(-(dconjg(yup(17))*(yup(11) + yup(18))) + 
2787      -     dconjg(yup(35))*(dconjg(yup(42)) + yup(36)))))/yup(8)
2788           bfun(4,ii,kk)=(-4*pmomup(5,idc1)*yup(16)*(inpup(idq0,idk1)
2789      -     *yup(4)*(dconjg(yup(4))*dotup(idb1,idb1) + 
2790      -     (-dconjg(yup(24))+dconjg(yup(33)))*yup(25))+dconjg(yup(9))
2791      -     *inpup(idq0,idb1)*(-(dconjg(yup(17))*(yup(11) + yup(18))) + 
2792      -     dconjg(yup(35))*(dconjg(yup(42)) + yup(36)))))/yup(8)
2793           bfun(5,ii,kk)=(2*inpup(idq0,idk1)*pmomup(5,idc1)*yup(16)*
2794      -     (yup(27) + yup(28))*yup(29))/yup(8)
2795           bfun(8,ii,kk)=(-4*pmomup(5,idc1)*(inpup(idq0,idk1)*yup(4)
2796      -     *(yup(12) - yup(18))*(dconjg(yup(4))*dotup(idb1,idb1) - 
2797      -     dconjg(yup(24))*yup(25)) +2*dotup(idc1,idk1)*
2798      -     (-(inpup(idq0,idk1)*yup(16)*yup(27)*yup(29)) + 
2799      -     dconjg(yup(8))*dconjg(yup(35))*inpup(idq0,idb1)*yup(36)) + 
2800      -     dconjg(yup(9))*dconjg(yup(35))*(dconjg(yup(41))*
2801      -     inpup(idq0,idb1)*yup(18)+inpup(idq0,idb1)*(yup(12)-yup(18))*
2802      -     (dconjg(yup(42)) + yup(36)))))/yup(8)
2803           bfun(9,ii,kk)=(-4*dconjg(yup(3))*dconjg(yup(35))*
2804      -    inpup(idq0,idb1)*pmomup(5,idc1)*yup(11))/yup(8)
2805 c...helicity(50,2)=(-,-,+,-,-,+)

2806         do mm=1,9
2807            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2808      &     -dconjg(bfun(mm,ii,kk))
2809         end do
2810 
2811 c...helicity(35,2)=(+,+,-,+,-,+)=helicity(34,1)(k2,k1)

2812         kk=35
2813         bfun(1,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idc1)*yup(1)*
2814      -     (-(dconjg(yup(38))*inpup(idq0,idk2)*yup(13)) + 
2815      -     inpup(idq0,idk2)*yup(13)*(dconjg(yup(42))+yup(36)) - 
2816      -     dconjg(yup(35))*(-(dconjg(yup(38))*inpup(idq0,idb1)) + 
2817      -     inpup(idq0,idb1)*(dconjg(yup(42))+yup(36)))))/dconjg(yup(8))
2818         bfun(2,ii,kk)=(-4*dconjg(yup(10))*pmomup(5,idc1)*yup(9)*
2819      -     (inpup(idq0,idk1)*yup(2)*(yup(19) - yup(29)) + 
2820      -     (-(dconjg(yup(35))*inpup(idq0,idb1)) + inpup(idq0,idk2)
2821      -     *yup(13))*(dconjg(yup(42)) + yup(36))))/dconjg(yup(8))
2822           bfun(3,ii,kk)=(-4*pmomup(5,idc1)*yup(1)*(dotup(idb1,idb1)
2823      -     *yup(19)*(inpup(idq0,idk2)*(yup(27) + yup(28)) - 
2824      -     inpup(idq0,idk2)*yup(31))-dconjg(yup(16))*dconjg(yup(35))*
2825      -     (-(dconjg(yup(38))*inpup(idq0,idb1)) + inpup(idq0,idb1)*
2826      -     (dconjg(yup(42)) + yup(36)))))/dconjg(yup(8))
2827           bfun(4,ii,kk)=(-4*pmomup(5,idc1)*yup(9)*
2828      -     (-(dotup(idb1,idb1)*inpup(idq0,idk2)*yup(19)*(yup(27) + 
2829      -     yup(28))) +inpup(idq0,idk1)*(dotup(idb1,idb1)
2830      -     *yup(8)*yup(19) +dconjg(yup(16))*yup(2)*yup(29)) + 
2831      -     dconjg(yup(16))*dconjg(yup(35))*inpup(idq0,idb1)
2832      -     *(dconjg(yup(42)) + yup(36))))/dconjg(yup(8))
2833           bfun(5,ii,kk)=0.0d0
2834           bfun(8,ii,kk)=(-4*pmomup(5,idc1)*yup(9)*(inpup(idq0,idk2)*
2835      -     ((dconjg(yup(10))*dconjg(yup(24)) - dconjg(yup(14))
2836      -     *dotup(idb1,idb1))*yup(14)+2*dconjg(yup(35))*dotup(idc1,idk1)
2837      -     *yup(35))+(dconjg(yup(12))-dconjg(yup(18)))*dconjg(yup(35))*
2838      -     (-(dconjg(yup(38))*inpup(idq0,idb1)) +inpup(idq0,idb1) 
2839      -     *(dconjg(yup(42)) + yup(36)))))/dconjg(yup(8))
2840           bfun(9,ii,kk)=(4*inpup(idq0,idk2)*pmomup(5,idc1)*
2841      -     (dconjg(inpup(idc1,idb2))*dconjg(yup(35))*inpup(idq0,idb1)
2842      -     *yup(5) +yup(2)*yup(28)*yup(29)))/dconjg(yup(8))
2843 c...helicity(51,2)=(-,-,+,-,+,-)

2844         do mm=1,9
2845            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2846      &     -dconjg(bfun(mm,ii,kk))
2847         end do
2848 
2849 c...helicity(36,2)=(+,+,-,+,-,-)=helicity(36,1)(k2,k1)

2850         kk=36
2851         bfun(1,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idc1)*
2852      -     (-(dconjg(yup(5))*dotup(idb1,idb1)*inpup(idq0,idc1)
2853      -     *yup(31)) +dconjg(yup(42))*(-(dconjg(yup(35))*
2854      -     inpup(idk1,idb1)) -inpup(idk2,idk1)*yup(13))*yup(31) - 
2855      -     dconjg(yup(1))*dconjg(yup(35))*inpup(idq0,idb1)*
2856      -     (dconjg(yup(42))+yup(36))+dconjg(yup(1))*inpup(idq0,idk2)
2857      -     *yup(13)*(dconjg(yup(42)) + yup(36))))/xup(2)
2858         bfun(2,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idc1)*
2859      -     (inpup(idq0,idk1)*yup(4)*(dconjg(yup(4))*dotup(idb1,idb1)+ 
2860      -     dconjg(yup(24))*(dconjg(yup(7)) - yup(25)))- dconjg(yup(9))*
2861      -     (-(dconjg(yup(35))*inpup(idq0,idb1)) +inpup(idq0,idk2) 
2862      -     *yup(13))*(dconjg(yup(42)) + yup(36))))/xup(2)
2863           bfun(3,ii,kk)=(-4*pmomup(5,idc1)*(dconjg(yup(1))*
2864      -     dotup(idb1,idb1)*inpup(idq0,idk2)*yup(19)*(yup(27)
2865      -     + yup(28)) -dotup(idb1,idb1)*inpup(idk2,idk1)*yup(19)*
2866      -     yup(27)*yup(31) - dconjg(yup(16))*(dconjg(yup(5))*
2867      -     dotup(idb1,idb1)*inpup(idq0,idc1)*yup(31) +dconjg(yup(35))*
2868      -     (dconjg(yup(42))*inpup(idk1,idb1)*yup(31) + dconjg(yup(1))
2869      -     *inpup(idq0,idb1)*(dconjg(yup(42))+yup(36))))))/xup(2)
2870           bfun(4,ii,kk)=(4*pmomup(5,idc1)*(-(dconjg(yup(4))
2871      -     *dotup(idb1,idb1)*inpup(idk2,idk1)*yup(4)*yup(19)) + 
2872      -     dconjg(yup(9))*dotup(idb1,idb1)*inpup(idq0,idk2)*yup(19)
2873      -     *(yup(27)+yup(28))-dconjg(yup(16))*(inpup(idq0,idk1)*yup(4)*
2874      -     (dconjg(yup(4))*dotup(idb1,idb1) -dconjg(yup(24))*yup(25)) + 
2875      -     dconjg(yup(9))*dconjg(yup(35))*inpup(idq0,idb1)*
2876      -     (dconjg(yup(42)) + yup(36)))))/xup(2)
2877         bfun(5,ii,kk)=(2*dconjg(yup(10))*inpup(idq0,idk1)*pmomup(5,idc1)
2878      -     *(yup(27) + yup(28))*yup(30))/xup(2)
2879           bfun(8,ii,kk)=(-4*pmomup(5,idc1)*(dconjg(yup(9))*
2880      -     (dconjg(yup(10))*dconjg(yup(24)) -dconjg(yup(14))* 
2881      -     dotup(idb1,idb1))*inpup(idq0,idk2)*yup(14) +inpup(idq0,idk1)*
2882      -     (dotup(idb1,idb1)*(dconjg(yup(4))*(dconjg(yup(12)) -
2883      -     dconjg(yup(18)))*yup(4) + dconjg(yup(12))*dconjg(yup(14))
2884      -     *yup(14)) - dconjg(yup(24))*(dconjg(yup(10))*dconjg(yup(12))
2885      -     *yup(14)+(dconjg(yup(12))-dconjg(yup(18)))*yup(4)*yup(25)))+ 
2886      -     dconjg(yup(35))*(-2*dotup(idc1,idk1)*inpup(idk2,idk1)*yup(27)
2887      -     * yup(35) +dconjg(yup(9))*(dconjg(yup(12))-dconjg(yup(18)))*
2888      -     inpup(idq0,idb1)*(dconjg(yup(42)) + yup(36)))))/xup(2)
2889           bfun(9,ii,kk)=(-4*dconjg(yup(35))*inpup(idk2,idk1)
2890      -     *pmomup(5,idc1)*yup(28)*yup(35))/xup(2)
2891 c...helicity(52,2)=(-,-,+,-,+,+)

2892         do mm=1,9
2893            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2894      &     -dconjg(bfun(mm,ii,kk))
2895         end do
2896 
2897 c...helicity(37,2)=(+,+,-,-,+,+)=helicity(37,1)(k2,k1)

2898         kk=37
2899         bfun(1,ii,kk)=(4*(yup(1)*(-(dconjg(inpup(idc1,idb2))*
2900      -     dconjg(yup(35))*inpup(idc2,idb1)*yup(10))+dotup(idb1,idb1)*
2901      -     (dconjg(yup(34))*yup(10) + dconjg(inpup(idc1,idk2))*
2902      -     inpup(idc2,idq0)*yup(19)))*yup(34) +dotup(idc1,idc1)*yup(10)*
2903      -     (yup(2)*yup(29)*yup(31)+dconjg(yup(35))*yup(1)*yup(35))))
2904      -     /xup(1)
2905         bfun(2,ii,kk)=(4*yup(9)*(-(dotup(idb1,idb1)*(-(dconjg(yup(4))*
2906      -     (yup(4)*yup(10) -dconjg(inpup(idk2,idk1))*
2907      -     inpup(idc2,idq0)*yup(19))) +dconjg(yup(34))*yup(10)*yup(34) + 
2908      -     dconjg(inpup(idc1,idk2))*inpup(idc2,idq0)*yup(19)*yup(34))) + 
2909      -     dconjg(yup(35))*yup(10)*(dconjg(inpup(idb2,idk1))*
2910      -     dconjg(yup(4))*inpup(idc2,idb1) + dconjg(inpup(idc1,idb2))
2911      -     *inpup(idc2,idb1)*yup(34)-dotup(idc1,idc1)*yup(35))))/xup(1)
2912           bfun(3,ii,kk)=(4*yup(16)*(-((dconjg(yup(34))*dotup(idb1,idb1) + 
2913      -     (dconjg(inpup(idc1,idk2))*dconjg(yup(17)) - 
2914      -     dconjg(inpup(idc1,idb2))*dconjg(yup(35)))*inpup(idc2,idb1))
2915      -     *yup(1)*yup(34))+dotup(idc1,idc1)*((-yup(2)+yup(7))*yup(29)
2916      -     *yup(31) +yup(1)*(dconjg(yup(17))*yup(17) - dconjg(yup(35))
2917      -     *yup(35)))))/xup(1)
2918           bfun(4,ii,kk)=(-4*yup(9)*yup(16)*(dotup(idb1,idb1)*
2919      -     (dconjg(yup(4))*yup(4) - dconjg(yup(34))*yup(34)) + 
2920      -     dconjg(yup(17))*(-(dconjg(inpup(idk2,idk1))*dconjg(yup(4))*
2921      -     inpup(idc2,idb1)) +dotup(idc1,idc1)*yup(17) - 
2922      -     dconjg(inpup(idc1,idk2))*inpup(idc2,idb1)*yup(34)) + 
2923      -     dconjg(yup(35))*(dconjg(inpup(idb2,idk1))*dconjg(yup(4))*
2924      -     inpup(idc2,idb1) +dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
2925      -     yup(34) - dotup(idc1,idc1)*yup(35))))/xup(1)
2926           bfun(5,ii,kk)=(2*yup(9)*yup(16)*yup(28)*yup(29))/xup(1)
2927           bfun(8,ii,kk)=(4*yup(9)*(yup(12) - yup(18))*
2928      -     (dconjg(yup(14))*yup(16)*yup(23) -dotup(idb1,idb1)*
2929      -     (dconjg(yup(4))*yup(4) + dconjg(yup(14))*yup(14) - 
2930      -     dconjg(yup(34))*yup(34)) +dconjg(yup(35))*
2931      -     (-(dconjg(inpup(idb2,idk1))*dconjg(yup(4))*inpup(idc2,idb1))- 
2932      -     dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
2933      -     yup(34) + dotup(idc1,idc1)*yup(35))))/xup(1)
2934           bfun(9,ii,kk)=(-4*dconjg(inpup(idk2,idk1))*dconjg(yup(35))*
2935      -     dconjg(yup(42))*inpup(idq0,idb1)*yup(28))/xup(1)
2936 c...helicity(53,2)=(-,-,+,+,-,-)

2937         do mm=1,9
2938            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2939      &     dconjg(bfun(mm,ii,kk))
2940         end do
2941 
2942 c...helicity(38,2)=(+,+,-,-,+,-)=helicity(39,1)(k2,k1)

2943         kk=38
2944         bfun(1,ii,kk)=(4*dconjg(yup(1))* (-(dotup(idb1,idb1)*
2945      -     (dconjg(yup(5))*yup(5)*yup(10) -dconjg(inpup(idc1,idk2))*
2946      -     inpup(idq0,idk1)*yup(5)*yup(19) -(dconjg(yup(34))*yup(10)+ 
2947      -     dconjg(inpup(idc1,idk2))*inpup(idc2,idq0)*yup(19))*yup(34)))+ 
2948      -     dconjg(yup(35))*yup(10)*(dconjg(inpup(idc1,idb2))*
2949      -     (inpup(idk1,idb1)*yup(5) - inpup(idc2,idb1)*yup(34)) + 
2950      -     dotup(idc1,idc1)*yup(35))))/yup(8)
2951         bfun(2,ii,kk)=(-4*(dotup(idc1,idc1)*(dconjg(yup(8))*
2952      -     dotup(idb1,idb1)*yup(19)+yup(10)*yup(25)*yup(30))*yup(31)+ 
2953      -     dconjg(yup(9))*dotup(idb1,idb1)*(dconjg(yup(34))*yup(10) + 
2954      -     dconjg(inpup(idc1,idk2))*inpup(idc2,idq0)*yup(19))*yup(34)) + 
2955      -     4*dconjg(yup(9))*dconjg(yup(35))*yup(10)*
2956      -     (dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
2957      -     yup(34) - dotup(idc1,idc1)*yup(35)))/yup(8)
2958           bfun(3,ii,kk)=(4*dconjg(yup(1))*yup(16)*(dotup(idb1,idb1)*
2959      -     (dconjg(yup(5))*yup(5) - dconjg(yup(34))*yup(34)) + 
2960      -     dconjg(yup(17))*(dotup(idc1,idc1)*yup(17) + 
2961      -     dconjg(inpup(idc1,idk2))*(inpup(idk1,idb1)*yup(5) - 
2962      -     inpup(idc2,idb1)*yup(34))) - dconjg(yup(35))*
2963      -     (dconjg(inpup(idc1,idb2))*(inpup(idk1,idb1)*yup(5) - 
2964      -     inpup(idc2,idb1)*yup(34))+dotup(idc1,idc1)*yup(35))))/yup(8)
2965           bfun(4,ii,kk)=(4*yup(16)*(dconjg(yup(9))*(dconjg(yup(34))
2966      -     *dotup(idb1,idb1)+(dconjg(inpup(idc1,idk2))*dconjg(yup(17))- 
2967      -     dconjg(inpup(idc1,idb2))*dconjg(yup(35)))*inpup(idc2,idb1))
2968      -     *yup(34)+dotup(idc1,idc1)*(yup(25)*(-yup(19)+yup(30))*yup(31) 
2969      -     +dconjg(yup(9))*(-(dconjg(yup(17))*yup(17)) + 
2970      -     dconjg(yup(35))*yup(35)))))/yup(8)
2971           bfun(5,ii,kk)=(2*dconjg(yup(1))*yup(16)*yup(27)*yup(29))/yup(8)
2972           bfun(8,ii,kk)=(4*(2*dconjg(yup(4))*dotup(idc1,idk1)*
2973      -     (dotup(idb1,idb1)*yup(14) - yup(16)*yup(23))*yup(27) +
2974      -     dconjg(yup(9))*(-(dconjg(yup(14))*yup(16)*yup(18)*yup(23)) + 
2975      -     dconjg(inpup(idc1,idb2))*dconjg(yup(35))*inpup(idc2,idb1)*
2976      -     (-yup(12) + yup(18))*yup(34) + dotup(idb1,idb1)*
2977      -     (dconjg(yup(14))*yup(14)*yup(18) +dconjg(yup(34))*(yup(12) 
2978      -     - yup(18))*yup(34))) + dotup(idc1,idc1)*(2*dconjg(yup(8))
2979      -     *dconjg(yup(35))*dotup(idc1,idk1)*yup(35)+(yup(12)-yup(18))*
2980      -     (yup(25)*yup(30)*yup(31) + dconjg(yup(9))*dconjg(yup(35))
2981      -     *yup(35)))))/yup(8)
2982           bfun(9,ii,kk)=(4*(dconjg(yup(5))*dotup(idb1,idb1)*yup(15)*
2983      -     yup(28) + dconjg(yup(35))*(-(dconjg(inpup(idc1,idb2))*
2984      -     inpup(idk1,idb1)*yup(15)*yup(28)) + 
2985      -     dconjg(yup(8))*dotup(idc1,idc1)*yup(35))))/yup(8)
2986 c...helicity(54,2)=(-,-,+,+,-,+)

2987         do mm=1,9
2988            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
2989      &     dconjg(bfun(mm,ii,kk))
2990         end do
2991 
2992 c...helicity(39,2)=(+,+,-,-,-,+)=helicity(38,1)(k2,k1)

2993         kk=39
2994         bfun(1,ii,kk)=(4*dconjg(yup(10))*(yup(1)*(dconjg(yup(34))
2995      -     *dotup(idb1,idb1) +dconjg(inpup(idc1,idb2))*
2996      -     (-(dconjg(yup(35))*inpup(idc2,idb1)) + inpup(idc2,idk2)
2997      -     *yup(13)))*yup(34) +dotup(idc1,idc1)*(yup(2)*(-yup(19)
2998      -     + yup(29))*yup(31) +yup(1)*(-(dconjg(yup(13))*yup(13)) + 
2999      -     dconjg(yup(35))*yup(35)))))/dconjg(yup(8))
3000         bfun(2,ii,kk)=(-4*dconjg(yup(10))*yup(9)*(-((dconjg(yup(13))
3001      -     *dotup(idc1,idc1)-dconjg(inpup(idb2,idk1))*dconjg(yup(4))*
3002      -     inpup(idc2,idk2))*yup(13)) +dconjg(inpup(idc1,idb2))* 
3003      -     inpup(idc2,idk2)*yup(13)*yup(34) + dotup(idb1,idb1)*
3004      -     (-(dconjg(yup(4))*yup(4)) + dconjg(yup(34))*yup(34)) - 
3005      -     dconjg(yup(35))*(dconjg(inpup(idb2,idk1))*dconjg(yup(4))*
3006      -     inpup(idc2,idb1) +dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
3007      -     yup(34) - dotup(idc1,idc1)*yup(35))))/dconjg(yup(8))
3008           bfun(3,ii,kk)=(-4*dotup(idb1,idb1)*(dotup(idc1,idc1)*yup(8)
3009      -     *yup(19)*yup(31)+yup(1)*(dconjg(yup(16))*dconjg(yup(34)) + 
3010      -     dconjg(inpup(idc1,idq0))*inpup(idc2,idk2)*yup(19))*yup(34))+ 
3011      -     4*dconjg(yup(16))*(-(dotup(idc1,idc1)*yup(2)*yup(29)
3012      -     *yup(31)) +dconjg(yup(35))*yup(1)*
3013      -     (dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
3014      -     yup(34) - dotup(idc1,idc1)*yup(35))))/dconjg(yup(8))
3015           bfun(4,ii,kk)=(4*yup(9)*(dotup(idb1,idb1)*(-(dconjg(yup(4))*
3016      -     (dconjg(yup(16))*yup(4) -dconjg(inpup(idq0,idk1))*
3017      -     inpup(idc2,idk2)*yup(19)))+dconjg(yup(16))*dconjg(yup(34))
3018      -     *yup(34) +dconjg(inpup(idc1,idq0))*inpup(idc2,idk2)*
3019      -     yup(19)*yup(34)) -dconjg(yup(16))*dconjg(yup(35))*
3020      -     (dconjg(inpup(idb2,idk1))*dconjg(yup(4))*inpup(idc2,idb1) + 
3021      -     dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
3022      -     yup(34) - dotup(idc1,idc1)*yup(35))))/dconjg(yup(8))
3023           bfun(5,ii,kk)=(2*dconjg(yup(10))*yup(9)*yup(28)*yup(30))
3024      &   /dconjg(yup(8))
3025           bfun(8,ii,kk)=(-4*yup(9)*((dconjg(yup(12)) - dconjg(yup(18)))*
3026      -     dotup(idb1,idb1)*(dconjg(yup(4))*yup(4) - dconjg(yup(34))
3027      -     *yup(34)) +dconjg(yup(35))*(-((dconjg(inpup(idb2,idk1))
3028      -     *dconjg(yup(4))*(-dconjg(yup(12)) + dconjg(yup(18))) - 
3029      -     2*dconjg(inpup(idb2,idq0))*dconjg(yup(14))*dotup(idc1,idk1))*
3030      -     inpup(idc2,idb1)) +dconjg(inpup(idc1,idb2))*(dconjg(yup(12))
3031      -     -dconjg(yup(18)))*inpup(idc2,idb1)*yup(34))+dotup(idc1,idc1)*
3032      -     (dconjg(yup(10))*yup(19)*yup(30) + (-dconjg(yup(12)) +
3033      -     dconjg(yup(18)))*dconjg(yup(35))*yup(35))))/dconjg(yup(8))
3034           bfun(9,ii,kk)=(4*dconjg(inpup(idc1,idb2))*dconjg(yup(11))*
3035      -     dconjg(yup(35))*inpup(idq0,idb1)*yup(5))/dconjg(yup(8))
3036 c...helicity(55,2)=(-,-,+,+,+,-)

3037         do mm=1,9
3038            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
3039      &     dconjg(bfun(mm,ii,kk))
3040         end do
3041 
3042 c...helicity(40,2)=(+,+,-,-,-,-)=helicity(40,1)(k2,k1)

3043         kk=40
3044         bfun(1,ii,kk)=(4*dconjg(yup(1))*dconjg(yup(10))*
3045      -     (-(dconjg(yup(13))*dotup(idc1,idc1)*yup(13)) + 
3046      -     dconjg(inpup(idc1,idb2))*inpup(idk2,idk1)*yup(5)*yup(13) + 
3047      -     dconjg(inpup(idc1,idb2))*inpup(idc2,idk2)*yup(13)*yup(34) - 
3048      -     dotup(idb1,idb1)*(dconjg(yup(5))*yup(5) - dconjg(yup(34))
3049      -     *yup(34)) +dconjg(yup(35))*(dconjg(inpup(idc1,idb2))*
3050      -     (inpup(idk1,idb1)*yup(5) -inpup(idc2,idb1)*yup(34)) + 
3051      -     dotup(idc1,idc1)*yup(35))))/xup(2)
3052         bfun(2,ii,kk)=(4*dconjg(yup(10))*(-(dconjg(yup(9))*
3053      -     (dconjg(yup(34))*dotup(idb1,idb1)+dconjg(inpup(idc1,idb2))*
3054      -     (-(dconjg(yup(35))*inpup(idc2,idb1)) + inpup(idc2,idk2)
3055      -     *yup(13)))*yup(34)) - dotup(idc1,idc1)*((dconjg(yup(3))*
3056      -     dconjg(yup(12)) -dconjg(yup(9))*dconjg(yup(13)))*yup(13) + 
3057      -     yup(25)*yup(30)*yup(31) + dconjg(yup(9))*dconjg(yup(35))
3058      -     *yup(35))))/xup(2)
3059           bfun(3,ii,kk)=(4*dconjg(yup(1))*(dotup(idb1,idb1)*
3060      -     (-(dconjg(inpup(idc1,idq0))*inpup(idk2,idk1)*yup(5)*yup(19))- 
3061      -     dconjg(inpup(idc1,idq0))*inpup(idc2,idk2)*yup(19)*yup(34) + 
3062      -     dconjg(yup(16))*(dconjg(yup(5))*yup(5) - dconjg(yup(34))*
3063      -     yup(34))) - dconjg(yup(16))*dconjg(yup(35))*
3064      -     (dconjg(inpup(idc1,idb2))*(inpup(idk1,idb1)*yup(5) - 
3065      -     inpup(idc2,idb1)*yup(34))+dotup(idc1,idc1)*yup(35))))/xup(2)
3066           bfun(4,ii,kk)=(4*(dconjg(yup(16))*dotup(idc1,idc1)*yup(25)*
3067      -     yup(30)*yup(31) + dconjg(yup(9))*(dotup(idb1,idb1)*
3068      -     (dconjg(yup(16))*dconjg(yup(34)) + dconjg(inpup(idc1,idq0))
3069      -     *inpup(idc2,idk2)*yup(19))*yup(34) - dconjg(yup(16))*
3070      -     dconjg(yup(35))*(dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
3071      -     yup(34) - dotup(idc1,idc1)*yup(35)))))/xup(2)
3072         bfun(5,ii,kk)=(2*dconjg(yup(1))*dconjg(yup(10))*yup(27)*yup(30))
3073      &    /xup(2)
3074           bfun(8,ii,kk)=(-4*dotup(idc1,idc1)*yup(30)*(dconjg(yup(9))*
3075      -     dconjg(yup(10))*yup(19) + (dconjg(yup(7))*dconjg(yup(10)) + 
3076      -     (-dconjg(yup(12)) + dconjg(yup(18)))*yup(25))*yup(31)) + 
3077      -     4*dconjg(yup(9))*(dconjg(yup(12)) - dconjg(yup(18)))*
3078      -     dconjg(yup(34))*dotup(idb1,idb1)*yup(34)+4*dconjg(yup(35))*
3079      -     (-2*dconjg(inpup(idb2,idq0))*dotup(idc1,idk1)*
3080      -     inpup(idk2,idk1)*yup(22)*yup(27) + dconjg(yup(9))*
3081      -     (-dconjg(yup(12)) + dconjg(yup(18)))*
3082      -     (dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
3083      -     yup(34) - dotup(idc1,idc1)*yup(35))))/xup(2)
3084           bfun(9,ii,kk)=0.0d0
3085 c...helicity(56,2)=(-,-,+,+,+,+)

3086         do mm=1,9
3087            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
3088      &     dconjg(bfun(mm,ii,kk))
3089         end do
3090 
3091 c...helicity(41,2)=(+,-,+,+,+,+)=helicity(41,1)(k2,k1)

3092         kk=41
3093         bfun(1,ii,kk)=(-4*pmomup(5,idb1)*yup(1)*
3094      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(13))*
3095      -     (-(dconjg(inpup(idk2,idk1))*dconjg(yup(5))*inpup(idc1,idb2))- 
3096      -     dconjg(inpup(idc2,idk2))*dconjg(yup(34))*inpup(idc1,idb2) + 
3097      -     dotup(idc1,idc1)*yup(13))) +dconjg(inpup(idq0,idk1))* 
3098      -     dconjg(yup(5))*yup(10)*(yup(20) + yup(39)) - 
3099      -     dconjg(inpup(idq0,idc2))*dconjg(yup(34))*
3100      -     yup(10)*(yup(20) + yup(39))))/xup(1)
3101         bfun(2,ii,kk)=(4*pmomup(5,idb1)*(dotup(idc1,idc1)*
3102      -     ((-(dconjg(inpup(idb2,idq0))*yup(3))-dconjg(inpup(idb1,idq0))
3103      -     *yup(6))*yup(10)*yup(31) + dconjg(yup(13))*yup(13)*
3104      -     (-(dconjg(inpup(idq0,idk2))*yup(9))+dconjg(inpup(idk2,idk1))
3105      -     *yup(31)))+dconjg(yup(34))*yup(9)*(dconjg(inpup(idc2,idk2))*
3106      -     dconjg(inpup(idq0,idk2))*dconjg(yup(13))*inpup(idc1,idb2) - 
3107      -     dconjg(inpup(idq0,idc2))*yup(10)*(yup(20)+yup(39)))))/xup(1)
3108         bfun(3,ii,kk)=(4*pmomup(5,idb1)*yup(1)*(dconjg(inpup(idb1,idq0))
3109      -     *dotup(idc1,idc1)*yup(17)*yup(19) +dconjg(yup(34))*
3110      -     (dconjg(inpup(idc2,idk2))*yup(19)*yup(20) - 
3111      -     dconjg(inpup(idq0,idc2))*yup(16)*(yup(20) + yup(39))) + 
3112      -     dconjg(yup(5))*(dconjg(inpup(idk2,idk1))*yup(19)*yup(20) + 
3113      -     dconjg(inpup(idq0,idk1))*yup(16)*(yup(20)+yup(39)))))/xup(1)
3114           bfun(4,ii,kk)=(4*pmomup(5,idb1)*(-(dotup(idc1,idc1)*
3115      -     (dconjg(inpup(idb1,idq0))*yup(9)*yup(17)*yup(19) + 
3116      -     ((-(dconjg(inpup(idb2,idq0))*yup(3))-dconjg(inpup(idb1,idq0))
3117      -     *yup(6))*yup(16) +dconjg(inpup(idk2,idk1))*yup(19)*yup(29)
3118      -     )*yup(31)))-dconjg(yup(34))*yup(9)*(dconjg(inpup(idc2,idk2))
3119      -     *yup(19)*yup(20) - dconjg(inpup(idq0,idc2))*yup(16)*
3120      -     (yup(20) + yup(39)))))/xup(1)
3121           bfun(5,ii,kk)=(-2*dconjg(inpup(idq0,idk2))*pmomup(5,idb1)
3122      -     *yup(1)*yup(27)*(yup(29) + yup(30)))/xup(1)
3123           bfun(8,ii,kk)=(4*pmomup(5,idb1)*(2*dconjg(inpup(idk2,idk1))
3124      -     *dotup(idc1,idk1)*yup(27)*yup(28)*(yup(29) + yup(30)) + 
3125      -     dotup(idc1,idc1)*(-(dconjg(inpup(idb2,idq0))*(yup(9)*yup(13)
3126      -     *yup(19)+(yup(7)*yup(13)+yup(3)*(-yup(12)+yup(18)))*yup(31))
3127      -     ) - dconjg(inpup(idb1,idq0))*(yup(9)*yup(17)*yup(19) + 
3128      -     (yup(7)*yup(17) +yup(6)*(-yup(12) + yup(18)))*yup(31)))
3129      -     + dconjg(inpup(idq0,idc2))*dconjg(yup(34))*
3130      -     yup(9)*(yup(12) - yup(18))*(yup(20) + yup(39))))/xup(1)
3131           bfun(9,ii,kk)=0.0d0
3132 c...helicity(57,2)=(-,+,-,-,-,-)

3133         do mm=1,9
3134            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
3135      &     -dconjg(bfun(mm,ii,kk))
3136         end do
3137 
3138 c...helicity(42,2)=(+,-,+,+,+,-)=helicity(43,1)(k2,k1)

3139         kk=42
3140         bfun(1,ii,kk)=(4*pmomup(5,idb1)*(dconjg(inpup(idq0,idk2))
3141      -     *dconjg(yup(2))*dotup(idc1,idc1)*yup(19)*yup(31) + 
3142      -     dconjg(yup(1))*(-(dconjg(inpup(idq0,idk2))*dconjg(yup(13))*
3143      -     (dconjg(inpup(idc2,idk2))*dconjg(yup(34))*inpup(idc1,idb2) - 
3144      -     dotup(idc1,idc1)*yup(13))) + dconjg(inpup(idq0,idc2))
3145      -     *dconjg(yup(34))*yup(10)*(yup(20) + yup(39)))))/yup(8)
3146         bfun(2,ii,kk)=(4*dconjg(yup(9))*pmomup(5,idb1)*
3147      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(13))*
3148      -     dotup(idc1,idc1)*yup(13)) - dconjg(inpup(idc2,idk2))*
3149      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(13))*
3150      -     dconjg(yup(34))*inpup(idc1,idb2)) + dconjg(yup(2))*yup(4)
3151      -     *yup(19)) -dconjg(inpup(idq0,idc2))*yup(10)*
3152      -     (-(yup(4)*(dconjg(yup(2)) + yup(25))) + 
3153      -     dconjg(yup(34))*(yup(20) + yup(39)))))/yup(8)
3154           bfun(3,ii,kk)=(4*pmomup(5,idb1)*(-(dotup(idc1,idc1)*yup(19)*
3155      -     (-(dconjg(inpup(idb1,idq0))*dconjg(yup(1))*yup(17)) + 
3156      -     dconjg(inpup(idq0,idk2))*yup(25)*yup(31)))+dconjg(yup(1))
3157      -     *dconjg(yup(34))*(dconjg(inpup(idc2,idk2))*yup(19)*yup(20) - 
3158      -     dconjg(inpup(idq0,idc2))*yup(16)*
3159      -     (yup(20) + yup(39)))))/yup(8)
3160           bfun(4,ii,kk)=(-4*dconjg(yup(9))*pmomup(5,idb1)*
3161      -     (dconjg(inpup(idb1,idq0))*dotup(idc1,idc1)*yup(17)*yup(19) + 
3162      -     dconjg(inpup(idc2,idk2))*yup(19)*(dconjg(yup(34))*yup(20)
3163      -     - yup(4)*yup(25)) -dconjg(inpup(idq0,idc2))*yup(16)*
3164      -     (-(yup(4)*(dconjg(yup(2)) + yup(25))) + 
3165      -     dconjg(yup(34))*(yup(20) + yup(39)))))/yup(8)
3166           bfun(5,ii,kk)=(-2*dconjg(inpup(idq0,idk2))*dconjg(yup(9))*
3167      -     pmomup(5,idb1)*yup(28)*(yup(29) + yup(30)))/yup(8)
3168         bfun(8,ii,kk)=(4*dconjg(yup(9))*pmomup(5,idb1)*(dotup(idc1,idc1)
3169      -     *(-(dconjg(inpup(idb2,idq0))*yup(13))-dconjg(inpup(idb1,idq0) 
3170      -     )*yup(17))*yup(19) - dconjg(inpup(idq0,idc2))*
3171      -     (2*dotup(idc1,idk1)*yup(14)*(yup(29)+yup(30))+(yup(12)-
3172      -     yup(18))*(yup(4)*(dconjg(yup(2)) + yup(25)) - 
3173      -     dconjg(yup(34))*(yup(20) + yup(39))))))/yup(8)
3174           bfun(9,ii,kk)=0.0d0
3175 c...helicity(58,2)=(-,+,-,-,-,+)

3176         do mm=1,9
3177            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
3178      &     -dconjg(bfun(mm,ii,kk))
3179         end do
3180 
3181 c...helicity(43,2)=(+,-,+,+,-,+)=helicity(42,1)(k2,k1)

3182         kk=43
3183         bfun(1,ii,kk)=(-4*dconjg(yup(10))*(dconjg(inpup(idq0,idk1))
3184      -     *dconjg(yup(5)) -dconjg(inpup(idq0,idc2))*dconjg(yup(34)))*
3185      -     pmomup(5,idb1)*yup(1)*(yup(20) + yup(39) - yup(40)))
3186      -     /dconjg(yup(8))
3187         bfun(2,ii,kk)=(4*dconjg(yup(10))*pmomup(5,idb1)*
3188      -     (dotup(idc1,idc1)*(-(dconjg(inpup(idb2,idq0))*yup(3)) - 
3189      -     dconjg(inpup(idb1,idq0))*yup(6)-dconjg(inpup(idq0,idk1))
3190      -     *yup(19))*yup(31)-dconjg(inpup(idq0,idc2))*dconjg(yup(34))
3191      -     *yup(9)*(yup(20)+yup(39)-yup(40))))/dconjg(yup(8))
3192           bfun(3,ii,kk)=(4*dconjg(yup(16))*pmomup(5,idb1)*yup(1)*
3193      -     (dconjg(inpup(idq0,idk2))*dconjg(yup(18))*(-yup(28)+yup(31))+ 
3194      -     (dconjg(inpup(idq0,idk1))*dconjg(yup(5)) - 
3195      -     dconjg(inpup(idq0,idc2))*dconjg(yup(34)))*
3196      -     (yup(20) + yup(39))))/dconjg(yup(8))
3197           bfun(4,ii,kk)=(4*dconjg(yup(16))*pmomup(5,idb1)*
3198      -     (dconjg(inpup(idb2,idq0))*dotup(idc1,idc1)*yup(3)*
3199      -     yup(31) + dconjg(inpup(idb1,idq0))*dotup(idc1,idc1)
3200      -     *yup(6)*yup(31) +dconjg(inpup(idq0,idk2))*
3201      -     (dconjg(yup(18))*yup(9)*yup(28)+dotup(idc1,idc1)*yup(8) 
3202      -     *yup(31))+dconjg(inpup(idq0,idc2))*dconjg(yup(34))*yup(9)*
3203      -     (yup(20) + yup(39))))/dconjg(yup(8))
3204           bfun(5,ii,kk)=0.0d0
3205           bfun(8,ii,kk)=(4*pmomup(5,idb1)*((-dconjg(yup(12)) 
3206      -     + dconjg(yup(18)))*dotup(idc1,idc1)*
3207      -     (-(dconjg(inpup(idb2,idq0))*yup(3)) - 
3208      -     dconjg(inpup(idb1,idq0))*yup(6))*yup(31) - 
3209      -     dconjg(inpup(idq0,idc2))*(-((dconjg(yup(10)) +
3210      -     dconjg(yup(16)))*(dconjg(yup(18))*yup(9)*yup(14) + 
3211      -     2*dotup(idc1,idk1)*yup(4)*yup(27))) +(-dconjg(yup(12)) 
3212      -     + dconjg(yup(18)))*dconjg(yup(34))*yup(9)*(yup(20) 
3213      -     + yup(39)))))/dconjg(yup(8))
3214           bfun(9,ii,kk)=(4*dconjg(inpup(idq0,idk1))*dconjg(yup(15))*
3215      -     pmomup(5,idb1)*yup(28)*(yup(20)+yup(39)))/dconjg(yup(8))
3216 c...helicity(59,2)=(-,+,-,-,+,-)

3217         do mm=1,9
3218            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
3219      &     -dconjg(bfun(mm,ii,kk))
3220         end do
3221 
3222 c...helicity(44,2)=(+,-,+,+,-,-)=helicity(44,1)(k2,k1)

3223         kk=44
3224         bfun(1,ii,kk)=(4*dconjg(inpup(idq0,idc2))*dconjg(yup(1))*
3225      -     dconjg(yup(10))*dconjg(yup(34))*pmomup(5,idb1)*
3226      -     (yup(20) + yup(39) - yup(40)))/xup(2)
3227         bfun(2,ii,kk)=(4*dconjg(inpup(idq0,idc2))*dconjg(yup(9))*
3228      -     dconjg(yup(10))*pmomup(5,idb1)*(yup(4)*(dconjg(yup(2))
3229      -     - dconjg(yup(7)) +yup(25)) - dconjg(yup(34))*(yup(20) + 
3230      -     yup(39) - yup(40))))/xup(2)
3231         bfun(3,ii,kk)=(4*dconjg(yup(1))*dconjg(yup(16))*pmomup(5,idb1)*
3232      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(18))*
3233      -     yup(28)) -  dconjg(inpup(idq0,idc2))*dconjg(yup(34))*
3234      -     (yup(20) + yup(39))))/xup(2)
3235         bfun(4,ii,kk)=(-4*dconjg(yup(9))*dconjg(yup(16))*pmomup(5,idb1)*
3236      -     (dconjg(inpup(idq0,idc2))*dconjg(inpup(idq0,idk2))
3237      -     *inpup(idk2,idk1)*yup(4) - dconjg(inpup(idq0,idk2))*
3238      -     dconjg(yup(18))*yup(28) -dconjg(inpup(idq0,idc2))*
3239      -     (-(yup(4)*(dconjg(yup(2)) + yup(25))) + 
3240      -     dconjg(yup(34))*(yup(20) + yup(39)))))/xup(2)
3241           bfun(5,ii,kk)=0.0d0
3242           bfun(8,ii,kk)=(-4*dconjg(inpup(idq0,idc2))*dconjg(yup(9))*
3243      -     (dconjg(yup(12)) - dconjg(yup(18)))*pmomup(5,idb1)*
3244      -     ((dconjg(yup(10)) + dconjg(yup(16)))*yup(14) + 
3245      -     yup(4)*(dconjg(yup(2)) + yup(25)) - 
3246      -     dconjg(yup(34))*(yup(20) + yup(39))))/xup(2)
3247           bfun(9,ii,kk)=0.0d0
3248 c...helicity(60,2)=(-,+,-,-,+,+)

3249         do mm=1,9
3250            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
3251      &     -dconjg(bfun(mm,ii,kk))
3252         end do
3253 
3254 c...helicity(45,2)=(+,-,+,-,+,+)=helicity(45,1)(k2,k1)

3255         kk=45
3256         bfun(1,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*
3257      -     (dconjg(inpup(idq0,idk1))*yup(10)*yup(31)*
3258      -     (-(dconjg(inpup(idb1,idq0))*yup(32)) - 
3259      -     dconjg(inpup(idb2,idq0))*yup(42)) - 
3260      -     dconjg(inpup(idq0,idk2))*dconjg(yup(13))*
3261      -     (-(dconjg(inpup(idk2,idk1))*yup(31)*yup(42)) + 
3262      -     dconjg(inpup(idq0,idk2))*yup(1)*
3263      -     (dconjg(yup(36)) + yup(42)))))/xup(1)
3264         bfun(2,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*
3265      -     (-(dconjg(inpup(idq0,idk1))*dconjg(yup(4))*
3266      -     (dconjg(inpup(idk2,idk1))*yup(19)*yup(24) + 
3267      -     dconjg(inpup(idq0,idk1))*yup(10)*(yup(23)+yup(24))))- 
3268      -     dconjg(inpup(idq0,idk2))**2*dconjg(yup(13))*
3269      -     yup(9)*(dconjg(yup(36)) + yup(42))))/xup(1)
3270           bfun(3,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*
3271      -     (dconjg(inpup(idq0,idk2))*yup(1)*yup(19)*
3272      -     (-(dconjg(inpup(idc1,idq0))*yup(20)) + 
3273      -     dconjg(inpup(idq0,idc2))*yup(23)) +yup(31)* 
3274      -     (dconjg(inpup(idc1,idq0))*dconjg(inpup(idk2,idk1))
3275      -     *yup(19)*yup(20) +dconjg(inpup(idq0,idk1))*yup(16)*
3276      -     (-(dconjg(inpup(idb1,idq0))*yup(32)) - 
3277      -     dconjg(inpup(idb2,idq0))*yup(42)))))/xup(1)
3278           bfun(4,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*
3279      -     (dconjg(inpup(idq0,idk2))*yup(9)*yup(19)*
3280      -     (-(dconjg(inpup(idc1,idq0))*yup(20)) + 
3281      -     dconjg(inpup(idq0,idc2))*yup(23)) - 
3282      -     dconjg(inpup(idq0,idk1))*dconjg(yup(4))*
3283      -     (dconjg(inpup(idk2,idk1))*yup(19)*yup(23) + 
3284      -     dconjg(inpup(idq0,idk1))*yup(16)*
3285      -     (yup(23) + yup(24)))))/xup(1)
3286           bfun(5,ii,kk)=(2*dconjg(inpup(idq0,idk1))*
3287      -     dconjg(inpup(idq0,idk2))*pmomup(5,idb1)*
3288      -     pmomup(5,idc1)*(yup(27) + yup(28))*
3289      -     (yup(29) + yup(30)))/xup(1)
3290           bfun(8,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*
3291      -     (dconjg(inpup(idq0,idk2))*dconjg(yup(14))*
3292      -     (-(dconjg(inpup(idq0,idk2))*yup(9)) + 
3293      -     dconjg(inpup(idq0,idk1))*yup(12)) + 
3294      -     dconjg(inpup(idq0,idk1))**2*dconjg(yup(4))*
3295      -     (yup(12) - yup(18)))*(yup(23) + yup(24)))/xup(1)
3296           bfun(9,ii,kk)=0.0d0
3297 c...helicity(61,2)=(-,+,-,+,-,-)

3298         do mm=1,9
3299            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
3300      &     dconjg(bfun(mm,ii,kk))
3301         end do
3302 
3303 c...helicity(46,2)=(+,-,+,-,+,-)=helicity(47,1)(k2,k1)

3304         kk=46
3305         bfun(1,ii,kk)=(4*dconjg(inpup(idq0,idk2))*dconjg(yup(1))*
3306      -     pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(inpup(idq0,idk1))
3307      -     *dconjg(yup(2))*yup(19) + dconjg(inpup(idq0,idk2))*
3308      -     dconjg(yup(13))*(dconjg(yup(36)) + yup(42))))/yup(8)
3309         bfun(2,ii,kk)=(-4*dconjg(inpup(idq0,idk2))**2*dconjg(yup(9))*
3310      -     dconjg(yup(13))*pmomup(5,idb1)*pmomup(5,idc1)*
3311      -     (dconjg(yup(36)) - yup(38) + yup(42)))/yup(8)
3312           bfun(3,ii,kk)=(4*dconjg(inpup(idq0,idk2))*dconjg(yup(1))*
3313      -     pmomup(5,idb1)*pmomup(5,idc1)*yup(19)*
3314      -     (-(dconjg(inpup(idc1,idq0))*yup(20))+dconjg(inpup(idq0,idc2)) 
3315      -     *yup(23) - dconjg(inpup(idq0,idk1))*yup(25)))/yup(8)
3316           bfun(4,ii,kk)=(-4*dconjg(inpup(idq0,idk2))*dconjg(yup(9))*
3317      -     pmomup(5,idb1)*pmomup(5,idc1)*yup(19)*
3318      -     (-(dconjg(inpup(idc1,idq0))*yup(20))-dconjg(inpup(idb1,idq0)) 
3319      -     *yup(21) +dconjg(inpup(idq0,idc2))*yup(23)))/yup(8)
3320           bfun(5,ii,kk)=0.0d0
3321           bfun(8,ii,kk)=(-4*dconjg(inpup(idq0,idk2))**2*dconjg(yup(9))*
3322      -     dconjg(yup(14))*pmomup(5,idb1)*pmomup(5,idc1)*(yup(23) 
3323      -     + yup(24)))/yup(8)
3324           bfun(9,ii,kk)=0.0d0
3325 c...helicity(62,2)=(-,+,-,+,-,+)

3326         do mm=1,9
3327            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
3328      &     dconjg(bfun(mm,ii,kk))
3329         end do
3330 
3331 c...helicity(47,2)=(+,-,+,-,-,+)=helicity(46)(k2,k1)

3332         kk=47
3333         bfun(1,ii,kk)=(-4*dconjg(inpup(idq0,idk1))*dconjg(yup(10))*
3334      -     pmomup(5,idb1)*pmomup(5,idc1)*yup(31)*
3335      -     (-(dconjg(inpup(idb1,idq0))*yup(32)) - 
3336      -     dconjg(inpup(idc1,idq0))*yup(40) - 
3337      -     dconjg(inpup(idb2,idq0))*yup(42)))/dconjg(yup(8))
3338         bfun(2,ii,kk)=(-4*dconjg(inpup(idq0,idk1))**2*dconjg(yup(4))*
3339      -     dconjg(yup(10))*pmomup(5,idb1)*pmomup(5,idc1)*
3340      -     (yup(23) + yup(24) - yup(33)))/dconjg(yup(8))
3341           bfun(3,ii,kk)=(4*dconjg(inpup(idq0,idk1))*dconjg(yup(16))*
3342      -     pmomup(5,idb1)*pmomup(5,idc1)*yup(31)*
3343      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(18))) - 
3344      -     dconjg(inpup(idb1,idq0))*yup(32) - 
3345      -     dconjg(inpup(idb2,idq0))*yup(42)))/dconjg(yup(8))
3346           bfun(4,ii,kk)=(-4*dconjg(inpup(idq0,idk1))*dconjg(yup(16))*
3347      -     pmomup(5,idb1)*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk1))
3348      -     *dconjg(yup(4))*(yup(23)+yup(24)))-dconjg(inpup(idq0,idk2))
3349      -     *dconjg(yup(11))*yup(31)))/dconjg(yup(8))
3350           bfun(5,ii,kk)=0.0d0
3351           bfun(8,ii,kk)=(4*dconjg(inpup(idq0,idk1))**2*dconjg(yup(4))*
3352      -     (dconjg(yup(12)) - dconjg(yup(18)))*pmomup(5,idb1)*
3353      -     pmomup(5,idc1)*(yup(23) + yup(24)))/dconjg(yup(8))
3354           bfun(9,ii,kk)=0.0d0
3355 c...helicity(63,2)=(-,+,-,+,+,-)

3356         do mm=1,9
3357            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
3358      &     dconjg(bfun(mm,ii,kk))
3359         end do
3360 
3361 c...helicity(48,2)=(+,-,+,-,-,-)=helicity(48,1)(k2,k1)

3362         kk=48
3363         bfun(1,ii,kk)=0.0d0
3364         bfun(2,ii,kk)=0.0d0
3365           bfun(3,ii,kk)=0.0d0
3366           bfun(4,ii,kk)=0.0d0
3367           bfun(5,ii,kk)=0.0d0
3368           bfun(8,ii,kk)=0.0d0
3369           bfun(9,ii,kk)=0.0d0
3370 c...helicity(64,2)=(-,+,-,+,+,+)

3371         do mm=1,9
3372            if (mm.ne.6 .and. mm.ne.7) bfun(mm,ii,kk+16)=
3373      &     dconjg(bfun(mm,ii,kk))
3374         end do
3375 
3376 1222  continue  
3377         end
3378 
3379 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

3380 c       nine basic functions from first by b quark <-> c quark.      c

3381 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

3382         subroutine bthird
3383         implicit double precision (a-h,o-z)
3384         implicit integer (i-n)
3385         double complex bfun,colmat,yup,xup,inpup,bundamp
3386       common/upcom/ecm,pmbc,pmb,pmc,fbcc,pmomup(5,8),
3387      &  colmat(10,64),bundamp(4),pmomzero(5,8)
3388       common/tryup/bfun(9,4,64),yup(100),xup(2),idp,idq0,idk1,idk2,
3389      &  idb1,idb2,idc1,idc2
3390       common/counter/ibcstate,nev
3391 c...for transform the subprocess information, i.e.,  whether using

3392 c...the subprocess q\bar{q}->bc+b+\bar{c} to generate events.

3393       common/qqbar/iqqbar,iqcode
3394 
3395          ii=3
3396 c...if (l1.ne.l3 .and. l2.ne.l4) then

3397 c...hel(i,3)(l1,l2,l3,l4,l5,l6)=hel(i,1)(-l1,-l2,-l3,-l4,l5,l6)

3398 c...(q_b1<->q_c1,q_b2<->q_c2), where l1,...,l6 are helicities of q_b1,q_b2,

3399 c...q_c1,q_c2,k_1,k_2; (l2=l3);

3400 c...if (l1.ne.l3 .and. l2.eq.l4) then

3401 c...hel(i,3)(l1,l2,l3,l4,l5,l6)=hel(i,1)(-l1,l2,-l3,l4,l5,l6)

3402 c...(q_b1<->q_c1,q_b2<->q_c2)

3403 c...if (l1.eq.l3 .and. l2.ne.l4) then

3404 c...hel(i,3)(l1,l2,l3,l4,l5,l6)=hel(i,1)(l1,-l2,l3,-l4,l5,l6)

3405 c...(q_b1<->q_c1,q_b2<->q_c2)

3406 c...if (l1.eq.l3 .and. l2.eq.l4) then

3407 c...hel(i,3)(l1,l2,l3,l4,l5,l6)=hel(i,1)(l1,l2,l3,l4,l5,l6)

3408 c...(q_b1<->q_c1,q_b2<->q_c2)

3409 
3410        if(iqqbar.eq.0) then
3411        do kk=1,64
3412           bfun(1,ii,kk)=bfun(4,2,kk)
3413         bfun(2,ii,kk)=bfun(2,2,kk)
3414           bfun(3,ii,kk)=bfun(3,2,kk)
3415           bfun(4,ii,kk)=bfun(1,2,kk)
3416           bfun(5,ii,kk)=bfun(5,2,kk)
3417          end do
3418          end if
3419 
3420 c...helicity(1,3)=(+,+,+,+,+,+)=helicity(1,1)(q_c1,q_c2,q_b1,q_b2)

3421         kk=1
3422           if(iqqbar.eq.0) then
3423           bfun(8,ii,kk)=(-4*dotup(idc1,idc1)*yup(29)*(yup(9)*yup(16)*
3424      -     yup(19)+(yup(7)*yup(16)+yup(2)*(-yup(12) + yup(18)))*
3425      -     yup(31)) +4*dconjg(yup(34))*yup(9)*(yup(12) - yup(18))*
3426      -     (-(dconjg(yup(24))*yup(20)) +dotup(idb1,idb1)*yup(34)) + 
3427      -     4*dconjg(yup(35))*(dotup(idc1,idc1)*yup(9)*(yup(12)-yup(18))*
3428      -     yup(35) + 2*dconjg(inpup(idk2,idk1))*dotup(idc1,idk1)*
3429      -     inpup(idq0,idb1)*yup(27)*yup(36)))/xup(1)
3430           bfun(9,ii,kk)=0.0d0
3431 c...helicity(17,3)=(-,-,-,-,-,-)

3432           do mm=8,9
3433            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
3434         end do
3435           end if
3436 
3437           if(iqqbar.eq.1) then
3438           bfun(1,ii,kk)=-4*(dotup(idb1,idb1)*(dotup(idc1,idc1)*yup(8)
3439      -     *yup(30) +dconjg(yup(34))*(-(dconjg(inpup(idq0,idk1))*
3440      -     dconjg(yup(24))*inpup(idc1,idk2))+dconjg(inpup(idc2,idk1))
3441      -     *inpup(idb1,idk2)*yup(43)+ yup(5)*(yup(44) -yup(45)))) + 
3442      -     (-(dconjg(yup(24))*dconjg(yup(34))*yup(20))+dconjg(yup(35))
3443      -     *dotup(idc1,idc1)*yup(35))*yup(46) + dconjg(yup(35))*
3444      -     (dconjg(yup(13))*dotup(idc1,idc1)- dconjg(yup(18))*yup(36))
3445      -      *yup(47))
3446         bfun(2,ii,kk)=4*(dconjg(yup(35))*(-(dconjg(inpup(idc2,idk1))*
3447      -     dconjg(yup(34))*inpup(idc1,idb1))+dotup(idc1,idc1)*yup(6))
3448      -     *yup(48) + dotup(idb1,idb1)*(dconjg(yup(18))*yup(7)*
3449      -     yup(28) +dotup(idc1,idc1)*yup(8)*yup(29)-dconjg(yup(34))*
3450      -     (dconjg(inpup(idq0,idc2))*inpup(idc1,idk2)*yup(2) + 
3451      -     dconjg(inpup(idc2,idk1))*inpup(idq0,idk2)*yup(20) - 
3452      -     dconjg(yup(14))*yup(49)))+(-(dconjg(yup(24))*dconjg(yup(34))
3453      -     *yup(20))+dconjg(yup(35))*dotup(idc1,idc1)*yup(35))*yup(50))
3454           bfun(4,ii,kk)=4*(dotup(idb1,idb1)*(-(dotup(idc1,idc1)*
3455      -    (dconjg(inpup(idq0,idk1))**2*inpup(idq0,idk1)*inpup(idq0,idk2) 
3456      -    - dconjg(yup(13))*yup(3) -dconjg(yup(17))*yup(6))) + 
3457      -    dconjg(yup(34))*inpup(idc1,idk2)*(-(dconjg(inpup(idq0,idk1))*
3458      -    (dconjg(yup(23))+dconjg(yup(24)))) + dconjg(inpup(idc2,idk1))
3459      -    *yup(31))) +dconjg(yup(35))*(dotup(idc1,idc1)*
3460      -    (dconjg(inpup(idb2,idk1))*inpup(idq0,idk2)*yup(21) + 
3461      -    dconjg(yup(13))*yup(82)) +dconjg(yup(34))*inpup(idc1,idk2)*
3462      -    (-(dconjg(inpup(idc2,idk1))*yup(51))+dconjg(inpup(idb2,idk1))
3463      -    *yup(83))))     
3464 c...helicity(17,3)=(-,-,-,-,-,-)

3465           do mm=1,4
3466            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
3467         end do
3468           end if
3469 
3470 c...helicity(2,3)=m(+,+,+,+,+,-)=helicity(2,1)(q_c1,q_c2,q_b1,q_b2)

3471         kk=2
3472           if(iqqbar.eq.0) then
3473           bfun(8,ii,kk)=(4*((-(dconjg(yup(10))*dconjg(yup(24))) + 
3474      -     dconjg(yup(14))*dotup(idb1,idb1))*(dconjg(yup(18))*yup(9)
3475      -     *yup(14)+2*dotup(idc1,idk1)*yup(4)*yup(27))+(dconjg(yup(12)) 
3476      -     - dconjg(yup(18)))*dconjg(yup(34))*yup(9)*(-(dconjg(yup(24))
3477      -     *yup(20)) +dotup(idb1,idb1)*yup(34)) +dotup(idc1,idc1)*
3478      -     (2*dconjg(yup(35))*dotup(idc1,idk1)*yup(8)*yup(35) + 
3479      -     (dconjg(yup(12))- dconjg(yup(18)))*(yup(2)*yup(29)*yup(31)+ 
3480      -     dconjg(yup(35))*yup(9)*yup(35)))))/dconjg(yup(8))
3481           bfun(9,ii,kk)=(4*dconjg(yup(15))*(dotup(idb1,idb1)*yup(5)
3482      -     -yup(2)*yup(20))*yup(28)+4*dconjg(yup(35))*dotup(idc1,idc1)*
3483      -     yup(8)*yup(35))/dconjg(yup(8))
3484 c...helicity(18)=m(-,-,-,-,-,+)

3485         do mm=8,9
3486             bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
3487         end do
3488           end if
3489 
3490 c...helicity(3,3)=(+,+,+,+,-,+)=helicity(3,1)(q_c1,q_c2,q_b1,q_b2)

3491         kk=3
3492           if(iqqbar.eq.0) then
3493           bfun(8,ii,kk)=(4*dconjg(yup(9))*(dconjg(yup(24))*((yup(12)
3494      -     - yup(18))*(-(dconjg(yup(34))*yup(20)) +yup(4)*yup(25))+ 
3495      -     2*dotup(idc1,idk1)*yup(14)*yup(29))+dotup(idb1,idb1)*(yup(12) 
3496      -     -yup(18))*(-(dconjg(yup(4))*yup(4))+dconjg(yup(34))*yup(34))+ 
3497      -     dotup(idc1,idc1)*(-(yup(16)*yup(19)*yup(29)) + 
3498      -     dconjg(yup(35))*(yup(12) - yup(18))*yup(35))))/yup(8)
3499           bfun(9,ii,kk)=(4*dconjg(yup(5))*yup(11)*yup(20)*yup(30))/yup(8)
3500 c...helicity(19,3)=(-,-,-,-,+,-)

3501         do mm=8,9
3502             bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
3503           end do
3504           end if
3505 
3506 c...helicity(4,3)=(+,+,+,+,-,-)=helicity(4,1)(q_c1,q_c2,q_b1,q_b2)

3507         kk=4
3508           if(iqqbar.eq.0) then
3509           bfun(8,ii,kk)=(4*dconjg(yup(9))*(dconjg(yup(12))
3510      -     - dconjg(yup(18)))*(dconjg(yup(24))*(dconjg(yup(10))
3511      -     *yup(14) -dconjg(yup(34))*yup(20) + yup(4)*yup(25)) - 
3512      -     dotup(idb1,idb1)*(dconjg(yup(4))*yup(4) + dconjg(yup(14))
3513      -     *yup(14) -dconjg(yup(34))*yup(34)) + dconjg(yup(35))
3514      -     *dotup(idc1,idc1)*yup(35)))/xup(2)
3515         bfun(9,ii,kk)=(-4*dconjg(inpup(idb2,idq0))*dconjg(yup(35))*
3516      -     inpup(idk1,idk2)*yup(28)*yup(32))/xup(2)
3517 c...helicity(20,3)=(-,-,-,-,+,+)

3518         do mm=8,9
3519             bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
3520         end do
3521           end if
3522 
3523           if(iqqbar.eq.1) then
3524         bfun(1,ii,kk)=-4*(-(dconjg(yup(24))*dconjg(yup(34))*(yup(20)*
3525      -     yup(53) - yup(25)*yup(54))) + dotup(idb1,idb1)*
3526      -     (dconjg(yup(8))*dotup(idc1,idc1)*yup(30) + dconjg(yup(34))*
3527      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(24))*inpup(idc1,idk1))
3528      -     +dconjg(inpup(idc2,idk2))*inpup(idb1,idk1)*yup(43) + yup(15)
3529      -     *(yup(55) - yup(56)))) +dconjg(yup(35))*dotup(idc1,idc1)*
3530      -     (yup(35)*yup(53) + dconjg(yup(3))*yup(57)))
3531         bfun(2,ii,kk)=-4*(dotup(idb1,idb1)*(-(dconjg(yup(8))*
3532      -     dotup(idc1,idc1)*yup(29)) +dconjg(yup(34))*
3533      -     (dconjg(inpup(idq0,idc2))*inpup(idc1,idk1)*yup(16) + 
3534      -     dconjg(inpup(idc2,idk2))*inpup(idq0,idk1)*yup(20) + 
3535      -     dconjg(yup(4))*(yup(54) - yup(58)))) + dconjg(yup(35))*
3536      -     (-(dotup(idc1,idc1)*yup(17)) + yup(11)*yup(32))*
3537      -     yup(59) + (dconjg(yup(24))*dconjg(yup(34))*yup(20) - 
3538      -     dconjg(yup(35))*dotup(idc1,idc1)*yup(35))*yup(60))
3539           bfun(4,ii,kk)=-4*(dconjg(inpup(idq0,idk1))*
3540      -    dconjg(inpup(idq0,idk2))*dotup(idb1,idb1)*dotup(idc1,idc1)*
3541      -    inpup(idq0,idk1)**2 +dotup(idb1,idb1)*(-(dotup(idc1,idc1)*
3542      -    (dconjg(yup(3))*yup(13) +dconjg(yup(6))*yup(17))) + 
3543      -    dconjg(inpup(idc2,idk2))*dconjg(yup(34))*(dconjg(yup(3))*
3544      -    inpup(idc1,idb2) -inpup(idc1,idk1)*yup(31))+ dconjg(yup(6))
3545      -    *yup(11)*yup(32))+dconjg(yup(35))*(-(dconjg(inpup(idq0,idk2))
3546      -    *dconjg(yup(38))*dotup(idc1,idc1)*inpup(idb1,idk1)) + 
3547      -    dconjg(inpup(idq0,idk2))*dotup(idc1,idc1)*inpup(idb1,idk1)
3548      -    *yup(61) - dconjg(inpup(idc2,idk2))*dconjg(yup(34))*
3549      -    (-(inpup(idc1,idk1)*yup(51)) + inpup(idb1,idk1)*yup(62))))
3550 c...helicity(20,3)=(-,-,-,-,+,+)

3551         do mm=1,4
3552             bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
3553         end do
3554           end if
3555 
3556 c...helicity(5,3)=(+,+,+,-,+,+)=helicity(41,1)(q_c1,q_c2,q_b1,q_b2)

3557         kk=5
3558           if(iqqbar.eq.0) then
3559           bfun(8,ii,kk)=(4*pmomup(5,idb1)*(2*dconjg(inpup(idk2,idk1))
3560      -     *dotup(idc1,idk1)*yup(27)*yup(28)*(yup(29) + yup(30)) + 
3561      -     dotup(idc1,idc1)*(-(dconjg(inpup(idb2,idq0))*(yup(9)*yup(13)
3562      -     *yup(19)+(yup(7)*yup(13)+yup(3)*(-yup(12)+yup(18)))*yup(31))
3563      -     ) - dconjg(inpup(idb1,idq0))*(yup(9)*yup(17)*yup(19) + 
3564      -     (yup(7)*yup(17) +yup(6)*(-yup(12) + yup(18)))*yup(31)))
3565      -     + dconjg(inpup(idq0,idc2))*dconjg(yup(34))*yup(9)*(yup(12)
3566      -     - yup(18))*(yup(20) + yup(39))))/xup(1)
3567           bfun(9,ii,kk)=0.0d0
3568 c...helicity(21,3)=(-,-,-,+,-,-)

3569         do mm=8,9
3570             bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
3571         end do
3572           end if
3573 
3574           if(iqqbar.eq.1) then
3575         bfun(1,ii,kk)=-4*pmomup(5,idb1)*(dconjg(inpup(idq0,idk1))**2
3576      -     *dotup(idc1,idc1)*inpup(idk2,idk1)*yup(30) + 
3577      -     dconjg(inpup(idq0,idk1))*(dotup(idc1,idc1)*
3578      -     (-(dconjg(inpup(idb2,idq0))*dconjg(yup(35))*inpup(idb1,idk2)) 
3579      -     + dconjg(yup(10))*yup(30)) +dconjg(yup(34))*
3580      -     (dconjg(inpup(idq0,idc2))*dotup(idb1,idb1)*inpup(idc1,idk2) +
3581      -     yup(39)*yup(44))) - dconjg(yup(34))*(dconjg(inpup(idq0,idc2))
3582      -     *dconjg(yup(10))*dconjg(yup(72)) +dconjg(inpup(idc2,idk1))*
3583      -     (dconjg(yup(10)) + dconjg(yup(12)))*yup(39) - 
3584      -     dconjg(inpup(idq0,idc2))*yup(20)*yup(46)))
3585         bfun(2,ii,kk)=4*pmomup(5,idb1)*(-(dotup(idc1,idc1)*
3586      -     (dconjg(inpup(idb1,idq0))*dconjg(yup(16))*yup(6) + 
3587      -     dconjg(inpup(idq0,idk1))*(dconjg(yup(16)) - 
3588      -     dconjg(inpup(idq0,idk1))*inpup(idk2,idk1))*yup(29))) + 
3589      -     dconjg(inpup(idb2,idq0))*dconjg(yup(18))*yup(28)*yup(66) +
3590      -     dconjg(yup(34))*(dconjg(inpup(idq0,idc2))*
3591      -     dconjg(inpup(idq0,idk1))*dotup(idb1,idb1)*inpup(idc1,idk2)+ 
3592      -     dconjg(inpup(idq0,idc2))*yup(39)*yup(50) + yup(20)*
3593      -     (-(dconjg(inpup(idc2,idk1))*(dconjg(yup(12)) + 
3594      -     dconjg(yup(16))))+dconjg(inpup(idq0,idk1))*yup(68))))
3595           bfun(4,ii,kk)=4*pmomup(5,idb1)*(dconjg(inpup(idq0,idk1))*
3596      -    dotup(idc1,idc1)*(dconjg(yup(13))*(dconjg(yup(61)) - 
3597      -    dconjg(inpup(idq0,idk1))*inpup(idk1,idb2))+dconjg(yup(17))*
3598      -    (dconjg(inpup(idq0,idk1))*inpup(idb1,idk1) +yup(75))) + 
3599      -    dconjg(yup(34))*inpup(idc1,idk2)*(-(dconjg(inpup(idc2,idk1))*
3600      -    (-(dconjg(inpup(idb1,idq0))*yup(21))-dconjg(inpup(idb2,idq0))*
3601      -    yup(38))) -dconjg(inpup(idb1,idq0))*dconjg(inpup(idq0,idk1))
3602      -    *yup(83) -dconjg(inpup(idb2,idq0))*dconjg(inpup(idq0,idk1))
3603      -    *yup(85)))
3604 c...helicity(21,3)=(-,-,-,+,-,-)

3605         do mm=1,4
3606             bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
3607         end do
3608           end if
3609 
3610 c...helicity(6,3)=(+,+,+,-,+,-)=helicity(42,1)(q_c1,q_c2,q_b1,q_b2)

3611         kk=6
3612           if(iqqbar.eq.0) then
3613           bfun(8,ii,kk)=(4*pmomup(5,idb1)*((-dconjg(yup(12)) +
3614      -     dconjg(yup(18)))*dotup(idc1,idc1)*
3615      -     (-(dconjg(inpup(idb2,idq0))*yup(3))-dconjg(inpup(idb1,idq0))
3616      -     *yup(6))*yup(31) -dconjg(inpup(idq0,idc2))*
3617      -     (-((dconjg(yup(10)) + dconjg(yup(16)))*(dconjg(yup(18))
3618      -     *yup(9)*yup(14) +2*dotup(idc1,idk1)*yup(4)*yup(27))) + 
3619      -     (-dconjg(yup(12)) + dconjg(yup(18)))*dconjg(yup(34))
3620      -     *yup(9)*(yup(20) + yup(39)))))/dconjg(yup(8))
3621           bfun(9,ii,kk)=(4*dconjg(inpup(idq0,idk1))*dconjg(yup(15))*
3622      -    pmomup(5,idb1)*yup(28)*(yup(20) + yup(39)))/dconjg(yup(8))
3623 c...helicity(22,3)=(-,-,-,+,-,+)

3624         do mm=8,9
3625             bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
3626         end do
3627           end if
3628 
3629 c...helicity(7,3)=(+,+,+,-,-,+)=helicity(43,1)(q_c1,q_c2,q_b1,q_b2)

3630         kk=7
3631         if(iqqbar.eq.0) then
3632         bfun(8,ii,kk)=(4*dconjg(yup(9))*pmomup(5,idb1)*(dotup(idc1,idc1)
3633      -     *(-(dconjg(inpup(idb2,idq0))*yup(13)) - 
3634      -     dconjg(inpup(idb1,idq0))*yup(17))*yup(19) - 
3635      -     dconjg(inpup(idq0,idc2))*(2*dotup(idc1,idk1)*yup(14)*
3636      -     (yup(29)+yup(30))+(yup(12)- yup(18))*(yup(4)*(dconjg(yup(2))
3637      -     + yup(25)) -dconjg(yup(34))*(yup(20) + yup(39))))))/yup(8)
3638           bfun(9,ii,kk)=0.0d0
3639 c...helicity(23,3)=(-,-,-,+,+,-)

3640         do mm=8,9
3641             bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
3642         end do
3643           end if
3644 
3645 c...helicity(8,3)=(+,+,+,-,-,-)=helicity(44,1)(q_c1,q_c2,q_b1,q_b2)

3646         kk=8
3647           if(iqqbar.eq.0) then
3648           bfun(8,ii,kk)=(-4*dconjg(inpup(idq0,idc2))*dconjg(yup(9))*
3649      -     (dconjg(yup(12)) - dconjg(yup(18)))*pmomup(5,idb1)*
3650      -     ((dconjg(yup(10)) + dconjg(yup(16)))*yup(14) + 
3651      -     yup(4)*(dconjg(yup(2)) + yup(25)) -dconjg(yup(34)) 
3652      -     *(yup(20) + yup(39))))/xup(2)
3653           bfun(9,ii,kk)=0.0d0
3654 c...helicity(24,3)=(-,-,-,+,+,+)

3655         do mm=8,9
3656             bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
3657         end do
3658           end if
3659 
3660           if(iqqbar.eq.1) then
3661         bfun(1,ii,kk)=-4*pmomup(5,idb1)*(-(dconjg(inpup(idq0,idk2))**2
3662      -     *dotup(idc1,idc1)*inpup(idk2,idk1)*yup(30))-dconjg(yup(34))*
3663      -     (dconjg(inpup(idc2,idk2))*(dconjg(yup(7))+yup(25))*yup(39)- 
3664      -     dconjg(inpup(idq0,idc2))*yup(20)*yup(53) + 
3665      -     dconjg(inpup(idq0,idc2))*yup(25)*yup(54))+ 
3666      -     dconjg(inpup(idq0,idk2))*(dotup(idc1,idc1)*
3667      -     (-(dconjg(inpup(idb2,idq0))*dconjg(yup(35))*inpup(idb1,idk1))
3668      -     + yup(25)*yup(30)) +dconjg(yup(34))*
3669      -     (dconjg(inpup(idq0,idc2))*dotup(idb1,idb1)*inpup(idc1,idk1)
3670      -     + yup(39)*yup(55))))
3671         bfun(2,ii,kk)=4*pmomup(5,idb1)*(-(dotup(idc1,idc1)*
3672      -     (dconjg(inpup(idb1,idq0))*dconjg(yup(2))*yup(17) + 
3673      -     dconjg(inpup(idq0,idk2))*(dconjg(yup(2)) + 
3674      -     dconjg(inpup(idq0,idk2))*inpup(idk2,idk1))*yup(29))) + 
3675      -     dconjg(yup(34))*(dconjg(inpup(idq0,idc2))*
3676      -     dconjg(inpup(idq0,idk2))*dotup(idb1,idb1)*inpup(idc1,idk1)- 
3677      -     dconjg(inpup(idq0,idc2))*(dconjg(yup(2))*yup(54) -
3678      -     yup(39)*yup(60)) +yup(20)*(-(dconjg(inpup(idc2,idk2))*
3679      -     (dconjg(yup(2))+dconjg(yup(7))))+dconjg(inpup(idq0,idk2))
3680      -     *yup(73))))
3681           bfun(4,ii,kk)=4*pmomup(5,idb1)*(-(dotup(idc1,idc1)*
3682      -     (dconjg(yup(2)) + yup(25))*(dconjg(inpup(idb2,idq0))
3683      -     *yup(13) +dconjg(inpup(idb1,idq0))*yup(17) + 
3684      -     dconjg(inpup(idq0,idk2))*yup(31)))-dconjg(inpup(idc2,idk2)) 
3685      -     *dconjg(yup(34))*(inpup(idc1,idk1)*
3686      -     (-(dconjg(inpup(idb1,idq0))*yup(21))-dconjg(inpup(idb2,idq0))
3687      -     *yup(38)) +(dconjg(yup(2))+ yup(25))*(yup(20) + yup(39))))
3688 c...helicity(24,3)=(-,-,-,+,+,+)

3689         do mm=1,4
3690             bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
3691         end do
3692           end if
3693 
3694 c...helicity(9,3)=(+,-,-,+,+,+)=dconjg(helicity(12,1)(q_c1,q_c2,q_b1,q_b2))

3695         kk=9
3696           if(iqqbar.eq.0) then
3697           bfun(8,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(4))
3698      -     *dconjg(yup(10))*dconjg(yup(12))*yup(14) - dconjg(yup(9))
3699      -     *dconjg(yup(10))*dconjg(yup(14))*yup(14) +(dconjg(yup(4))* 
3700      -     dconjg(yup(12)) -dconjg(yup(9))*dconjg(yup(14)))*
3701      -     dconjg(yup(16))*yup(14) + dconjg(yup(4))*dconjg(yup(12))
3702      -     *yup(4)*(dconjg(yup(2)) + yup(25)) + dconjg(yup(9))*
3703      -     dconjg(yup(12))*yup(28)*yup(29) + dconjg(yup(9))*
3704      -     dconjg(yup(12))*yup(28)*yup(30) + dconjg(yup(9))*
3705      -     dconjg(yup(12))*yup(27)*(yup(29) + yup(30))) + 
3706      -     4*dconjg(yup(18))*pmomup(5,idb1)*pmomup(5,idc1)*
3707      -     (dconjg(yup(4))*yup(4)*(dconjg(yup(2)) + yup(25)) + 
3708      -     dconjg(yup(9))*(yup(27)+yup(28))*(yup(29)+yup(30))))/xup(2)
3709           bfun(9,ii,kk)=0.0d0
3710           do mm=8,9
3711             bfun(mm,ii,kk)=dconjg(bfun(mm,ii,kk))
3712           end do
3713 c...helicity(25,3)=(-,+,+,-,-,-)

3714         do mm=8,9
3715             bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
3716         end do
3717           end if
3718 
3719           if(iqqbar.eq.1) then
3720           bfun(1,ii,kk)=4*pmomup(5,idb1)*pmomup(5,idc1)*
3721      -     (dconjg(yup(8))*dotup(idb1,idb1)*(yup(27) + yup(28)) + 
3722      -     dconjg(inpup(idq0,idk2))*dconjg(yup(22))*inpup(idb1,idk1)
3723      -     *yup(30) + dconjg(inpup(idq0,idk2))*dconjg(yup(32))*
3724      -     inpup(idb1,idk1)*yup(30)+dconjg(yup(7))*yup(11)*yup(30) + 
3725      -     dconjg(yup(7))*yup(18)*yup(30) - dconjg(inpup(idq0,idc2))*
3726      -     inpup(idk1,idb1)*yup(12)*yup(37)+dconjg(inpup(idc2,idk2))*
3727      -     inpup(idb1,idk1)*yup(30)*yup(37)+(dconjg(inpup(idc1,idq0)) 
3728      -     *inpup(idk1,idb1)*yup(12) + dconjg(inpup(idc1,idk2))*
3729      -     inpup(idb1,idk1)*yup(30))*yup(43)+yup(53)*(dconjg(yup(37)) 
3730      -     *yup(37) +yup(43)*yup(65)))
3731         bfun(2,ii,kk)=-4*pmomup(5,idb1)*pmomup(5,idc1)*((yup(27)+yup(28)
3732      -     )*(dconjg(yup(8))*dotup(idb1,idb1)-dconjg(yup(2))*yup(12) 
3733      -     +yup(30)*yup(60))+yup(43)*(-(dconjg(inpup(idc1,idk2))*
3734      -     inpup(idk1,idb2)*yup(35)) +yup(17)*(dconjg(yup(49)) - 
3735      -     yup(72))) +yup(37)*(-(dconjg(inpup(idc2,idk2))*
3736      -     inpup(idk1,idb2)*yup(35)) +yup(17)*(-yup(56) + yup(73))))
3737           bfun(4,ii,kk)=4*pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(2))
3738      -     + yup(25))*((yup(11) + yup(18))*yup(31) + 
3739      -     dconjg(inpup(idc1,idk2))*inpup(idq0,idb1)*yup(43) + 
3740      -     dconjg(inpup(idc1,idk2))*inpup(idq0,idb2)*yup(69) + 
3741      -     dconjg(inpup(idc2,idk2))* (inpup(idq0,idb1)*yup(37) + 
3742      -     inpup(idq0,idb2)*yup(71)))
3743           do mm=1,4
3744             bfun(mm,ii,kk)=dconjg(bfun(mm,ii,kk))
3745           end do
3746 c...helicity(25,3)=(-,+,+,-,-,-)

3747         do mm=1,4
3748             bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
3749         end do
3750           end if
3751 
3752 c...helicity(10,3)=(+,-,-,+,+,-)=dconjg(helicity(11,1)(q_c1,q_c2,q_b1,q_b2))

3753         kk=10
3754           if(iqqbar.eq.0) then
3755           bfun(8,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(4))
3756      -     *yup(4)*(yup(12) - yup(18))*(dconjg(yup(2)) + yup(25)) + 
3757      -     (dconjg(yup(9))*yup(18)*yup(19) + (2*dconjg(yup(8))*
3758      -     dotup(idc1,idk1) +dconjg(yup(9))*(yup(12) - yup(18)))*
3759      -     (yup(27) + yup(28)))*(yup(29) + yup(30))))/yup(8)
3760           bfun(9,ii,kk)=0.0d0
3761           do mm=8,9
3762             bfun(mm,ii,kk)=dconjg(bfun(mm,ii,kk))
3763           end do
3764 c...helicity(26,3)=(-,+,+,-,-,+)

3765         do mm=8,9
3766             bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
3767         end do
3768           end if
3769 
3770 c...helicity(11,3)=(+,-,-,+,-,+)=dconjg(helicity(10,1)(q_c1,q_c2,q_b1,q_b2))

3771         kk=11
3772           if(iqqbar.eq.0) then
3773           bfun(8,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*yup(9)*
3774      -     (dconjg(yup(14))*(dconjg(yup(10))+dconjg(yup(16)))*yup(14)- 
3775      -     (dconjg(yup(12)) - dconjg(yup(18)))*(yup(29) + yup(30))*
3776      -     (yup(27) + yup(28) - yup(31))))/dconjg(yup(8))
3777         bfun(9,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(15))
3778      -     *yup(5)+yup(8)*yup(28))*(yup(29)+yup(30)))/dconjg(yup(8))
3779         do mm=8,9
3780            bfun(mm,ii,kk)=dconjg(bfun(mm,ii,kk))
3781           end do
3782 c...helicity(27,3)=(-,+,+,-,+,-)

3783         do mm=8,9
3784            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
3785         end do
3786           end if
3787 
3788 c...helicity(12,3)=(+,-,-,+,-,-)=dconjg(helicity(9,1)(q_c1,q_c2,q_b1,q_b2))

3789         kk=12
3790           if(iqqbar.eq.0) then
3791           bfun(8,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*yup(9)*
3792      -     (yup(12) - yup(18))*(yup(29) + yup(30))*(yup(19) - yup(27)
3793      -     - yup(28) + yup(31)))/xup(1)
3794           bfun(9,ii,kk)=0.0d0
3795         do mm=8,9
3796            bfun(mm,ii,kk)=dconjg(bfun(mm,ii,kk))
3797         end do
3798 c...helicity(28,3)=(-,+,+,-,+,+)

3799         do mm=8,9
3800            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
3801         end do
3802           end if
3803           if(iqqbar.eq.1) then
3804           bfun(1,ii,kk)=4*pmomup(5,idb1)*pmomup(5,idc1)*(dotup(idb1,idb1)
3805      -     *yup(8)*(yup(27) + yup(28)) + dconjg(inpup(idq0,idk1))*
3806      -     dconjg(yup(22))*inpup(idb1,idk2)*yup(30) + 
3807      -     dconjg(inpup(idq0,idk1))*dconjg(yup(32))*inpup(idb1,idk2)*
3808      -     yup(30) +dconjg(yup(12))*yup(1)*yup(30) + dconjg(yup(12))
3809      -     *yup(9)*yup(30) + dconjg(inpup(idq0,idc2))*inpup(idb1,idk2)
3810      -     *yup(7)*yup(37) + dconjg(inpup(idc2,idk1))*inpup(idb1,idk2)
3811      -     *yup(30)*yup(37) + inpup(idb1,idk2)*
3812      -     (-(dconjg(inpup(idc1,idq0))*yup(7))+dconjg(inpup(idc1,idk1))
3813      -     *yup(30))*yup(43) +yup(46)*(dconjg(yup(37))*yup(37) + 
3814      -     yup(43)*yup(65)))
3815         bfun(2,ii,kk)=-4*pmomup(5,idb1)*pmomup(5,idc1)*((yup(27) + 
3816      -     yup(28))*(dotup(idb1,idb1)*yup(8) + yup(30)*yup(50) + 
3817      -     dconjg(yup(13))*yup(66))+yup(43)*(dconjg(inpup(idc1,idk1))*
3818      -     inpup(idb2,idk2)*yup(35) +yup(6)*(-dconjg(yup(54)) + 
3819      -     yup(67))) +yup(37)*(dconjg(inpup(idc2,idk1))*
3820      -     inpup(idb2,idk2)*yup(35) +yup(6)*(-yup(45) + yup(68))))
3821         bfun(4,ii,kk)=4*pmomup(5,idb1)*pmomup(5,idc1)*(-((yup(1)+yup(9))
3822      -     *(dconjg(yup(17))*yup(21) +dconjg(yup(13))*yup(38))) - 
3823      -     yup(8)*(yup(69)*yup(70) + yup(37)*yup(83) + yup(43)*yup(84)
3824      -     + yup(71)*yup(85)))
3825         do mm=1,4
3826            bfun(mm,ii,kk)=dconjg(bfun(mm,ii,kk))
3827         end do
3828 c...helicity(28,3)=(-,+,+,-,+,+)

3829         do mm=1,4
3830            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
3831         end do
3832           end if
3833 
3834 c...helicity(13,3)=(+,-,-,-,+,+)=-dconjg(helicity(36,1)(q_c1,q_c2,q_b1,q_b2))

3835         kk=13
3836           if(iqqbar.eq.0) then
3837           bfun(8,ii,kk)=(-4*pmomup(5,idc1)*(dconjg(yup(9))*
3838      -     (dconjg(yup(10))*dconjg(yup(24)) -dconjg(yup(14))* 
3839      -     dotup(idb1,idb1))*inpup(idq0,idk2)*yup(14) +inpup(idq0,idk1)*
3840      -     (dotup(idb1,idb1)*(dconjg(yup(4))*(dconjg(yup(12)) -
3841      -     dconjg(yup(18)))*yup(4) + dconjg(yup(12))*dconjg(yup(14))
3842      -     *yup(14)) - dconjg(yup(24))*(dconjg(yup(10))*dconjg(yup(12))
3843      -     *yup(14)+(dconjg(yup(12))-dconjg(yup(18)))*yup(4)*yup(25)))+ 
3844      -     dconjg(yup(35))*(-2*dotup(idc1,idk1)*inpup(idk2,idk1)*yup(27)
3845      -     * yup(35) +dconjg(yup(9))*(dconjg(yup(12))-dconjg(yup(18)))*
3846      -     inpup(idq0,idb1)*(dconjg(yup(42)) + yup(36)))))/xup(2)
3847           bfun(9,ii,kk)=(-4*dconjg(yup(35))*inpup(idk2,idk1)
3848      -     *pmomup(5,idc1)*yup(28)*yup(35))/xup(2)
3849           do mm=8,9
3850             bfun(mm,ii,kk)=-dconjg(bfun(mm,ii,kk))
3851         end do 
3852 c...helicity(29,3)=(-,+,+,+,-,-)

3853         do mm=8,9
3854             bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
3855         end do
3856           end if
3857 
3858           if(iqqbar.eq.1) then
3859           bfun(1,ii,kk)=4*pmomup(5,idc1)*(dconjg(yup(8))*dotup(idb1,idb1)
3860      -     *(dconjg(yup(39))*inpup(idc1,idq0) +dconjg(yup(24))* 
3861      -     inpup(idc2,idq0))+dconjg(yup(35))*(dconjg(yup(42))+yup(36))*
3862      -     (-(inpup(idk1,idb1)*yup(12)) +inpup(idq0,idb1)*yup(53)))
3863         bfun(2,ii,kk)= -4*pmomup(5,idc1)*(dotup(idb1,idb1)*
3864      -     (dconjg(yup(5))*inpup(idc1,idq0) + dconjg(yup(4))*
3865      -     inpup(idc2,idq0))*(yup(12) + yup(16)) +dotup(idb1,idb1) 
3866      -     *inpup(idq0,idk1)*(yup(16)*(yup(27) + yup(28)) - 
3867      -     dconjg(inpup(idc2,idk2))*inpup(idq0,idb1)*yup(37)) - 
3868      -     dconjg(inpup(idc1,idk2))*dotup(idb1,idb1)*inpup(idq0,idb1)
3869      -     *inpup(idq0,idk1)*yup(43)+dconjg(yup(35))*inpup(idq0,idb1)*
3870      -     ((yup(11) + yup(18))*yup(59) +(dconjg(yup(42)) + yup(36)) 
3871      -     *yup(60)))
3872           bfun(4,ii,kk)=4*pmomup(5,idc1)*(yup(11) + yup(18))*
3873      -     (dotup(idb1,idb1)*(-(dconjg(yup(6))*inpup(idq0,idb1)) - 
3874      -     dconjg(yup(3))*inpup(idq0,idb2) + dconjg(inpup(idq0,idk1))
3875      -     *inpup(idq0,idk1)**2)+ dconjg(yup(35))*inpup(idb1,idk1)*
3876      -     (-dconjg(yup(38)) + yup(61)))
3877           do mm=1,4
3878             bfun(mm,ii,kk)=-dconjg(bfun(mm,ii,kk))
3879         end do 
3880 c...helicity(29,3)=(-,+,+,+,-,-)

3881         do mm=1,4
3882             bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
3883         end do
3884           end if
3885 
3886 c...helicity(14,3)=(+,-,-,-,+,-)=-dconjg(helicity(35,1)(q_c1,q_c2,q_b1,q_b2))

3887         kk=14
3888           if(iqqbar.eq.0) then
3889           bfun(8,ii,kk)=(-4*pmomup(5,idc1)*(inpup(idq0,idk1)*yup(4)
3890      -     *(yup(12) - yup(18))*(dconjg(yup(4))*dotup(idb1,idb1) - 
3891      -     dconjg(yup(24))*yup(25)) +2*dotup(idc1,idk1)*
3892      -     (-(inpup(idq0,idk1)*yup(16)*yup(27)*yup(29)) + 
3893      -     dconjg(yup(8))*dconjg(yup(35))*inpup(idq0,idb1)*yup(36)) + 
3894      -     dconjg(yup(9))*dconjg(yup(35))*(dconjg(yup(41))*
3895      -     inpup(idq0,idb1)*yup(18)+inpup(idq0,idb1)*(yup(12)-yup(18))*
3896      -     (dconjg(yup(42)) + yup(36)))))/yup(8)
3897           bfun(9,ii,kk)=(-4*dconjg(yup(3))*dconjg(yup(35))*
3898      -    inpup(idq0,idb1)*pmomup(5,idc1)*yup(11))/yup(8)
3899           do mm=8,9
3900             bfun(mm,ii,kk)=-dconjg(bfun(mm,ii,kk))
3901         end do
3902 c...helicity(30,3)=(-,+,+,+,-,+)

3903         do mm=8,9
3904             bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
3905         end do
3906           end if
3907 
3908 c...helicity(15,3)=(+,-,-,-,-,+)=-dconjg(helicity(34,1)(q_c1,q_c2,q_b1,q_b2))

3909         kk=15
3910           if(iqqbar.eq.0) then
3911           bfun(8,ii,kk)=(-4*pmomup(5,idc1)*yup(9)*(inpup(idq0,idk2)*
3912      -     ((dconjg(yup(10))*dconjg(yup(24)) - dconjg(yup(14))
3913      -     *dotup(idb1,idb1))*yup(14)+2*dconjg(yup(35))*dotup(idc1,idk1)
3914      -     *yup(35))+(dconjg(yup(12))-dconjg(yup(18)))*dconjg(yup(35))*
3915      -     (-(dconjg(yup(38))*inpup(idq0,idb1)) +inpup(idq0,idb1) 
3916      -     *(dconjg(yup(42)) + yup(36)))))/dconjg(yup(8))
3917           bfun(9,ii,kk)=(4*inpup(idq0,idk2)*pmomup(5,idc1)*
3918      -     (dconjg(inpup(idc1,idb2))*dconjg(yup(35))*inpup(idq0,idb1)
3919      -     *yup(5) +yup(2)*yup(28)*yup(29)))/dconjg(yup(8))
3920           do mm=8,9
3921             bfun(mm,ii,kk)=-dconjg(bfun(mm,ii,kk))
3922         end do
3923 c...helicity(31,3)=(-,+,+,+,+,-)

3924         do mm=8,9
3925             bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
3926         end do
3927           end if
3928 
3929 c...helicity(16,3)=(+,-,-,-,-,-)=-dconjg(helicity(33,1)(q_c1,q_c2,q_b1,q_b2))

3930         kk=16
3931           if(iqqbar.eq.0) then
3932           bfun(8,ii,kk)=(-4*dconjg(yup(35))*pmomup(5,idc1)*yup(9)*
3933      -     (yup(12)-yup(18))*(-((dconjg(yup(38))+dconjg(yup(41)))*
3934      -     inpup(idq0,idb1)) + inpup(idq0,idb1)*(dconjg(yup(42)) +
3935      -     yup(36))))/xup(1)
3936           bfun(9,ii,kk)=0.0d0
3937           do mm=8,9
3938             bfun(mm,ii,kk)=-dconjg(bfun(mm,ii,kk))
3939         end do
3940 c...helicity(32,3)=(-,+,+,+,+,+)

3941         do mm=8,9
3942             bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
3943         end do
3944           end if
3945 
3946           if(iqqbar.eq.1) then
3947           bfun(1,ii,kk)=4*pmomup(5,idc1)*(dotup(idb1,idb1)*
3948      -     (dconjg(yup(39))*inpup(idc1,idq0) +dconjg(yup(24)) 
3949      -     *inpup(idc2,idq0))*yup(8)+ dconjg(yup(35))*(dconjg(yup(42))
3950      -     +yup(36))*(inpup(idb1,idk2)*yup(7)+inpup(idq0,idb1)*yup(46)))
3951         bfun(2,ii,kk)=-4*pmomup(5,idc1)*(dotup(idb1,idb1)*
3952      -     (dconjg(yup(15))*inpup(idc1,idq0) + dconjg(yup(14))*
3953      -     inpup(idc2,idq0))*yup(2) + dconjg(inpup(idk2,idk1))*
3954      -     dotup(idb1,idb1)*inpup(idq0,idk2)**2*(yup(27) + yup(28)) + 
3955      -     dotup(idb1,idb1)*inpup(idq0,idk2)*(yup(2)*(yup(27)+yup(28))- 
3956      -     dconjg(inpup(idc2,idk1))*inpup(idq0,idb1)*yup(37)) - 
3957      -     dconjg(inpup(idc1,idk1))*dotup(idb1,idb1)*inpup(idq0,idb1)*
3958      -     inpup(idq0,idk2)*yup(43)+dconjg(yup(35))*inpup(idq0,idb1)*
3959      -     ((yup(1)+yup(9))*yup(48)+(dconjg(yup(42))+yup(36))*yup(50)))
3960           bfun(4,ii,kk)=-4*pmomup(5,idc1)*(dotup(idb1,idb1)*
3961      -     ((dconjg(yup(20)) + dconjg(yup(39)))*inpup(idc1,idq0) + 
3962      -     (dconjg(yup(23))+dconjg(yup(24)))*inpup(idc2,idq0))*yup(8)- 
3963      -     inpup(idq0,idk2)*((yup(1)+yup(9))*(dotup(idb1,idb1)*yup(31)- 
3964      -     dconjg(yup(35))*yup(51)) + dconjg(inpup(idb2,idk1))*
3965      -     dconjg(yup(35))*(inpup(idc2,idq0)*yup(83) + 
3966      -     inpup(idc1,idq0)*yup(84))))
3967           do mm=1,4
3968             bfun(mm,ii,kk)=-dconjg(bfun(mm,ii,kk))
3969         end do
3970 c...helicity(32,3)=(-,+,+,+,+,+)

3971         do mm=1,4
3972             bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
3973         end do
3974           end if
3975 
3976         if (ibcstate.eq.1) go to 1223
3977 
3978 c...helicity(33,3)=(+,+,-,+,+,+)=-dconjg(helicity(16,1)(q_c1,q_c2,q_b1,q_b2)

3979         kk=33
3980         if(iqqbar.eq.0) then
3981           bfun(8,ii,kk)=(-4*dconjg(inpup(idc1,idq0))*dconjg(yup(9))*
3982      -    (dconjg(yup(12))-dconjg(yup(18)))*pmomup(5,idb1)*(yup(23)+
3983      -     yup(24))*yup(34))/xup(2)
3984           bfun(9,ii,kk)=0.0d0
3985           do mm=8,9
3986            bfun(mm,ii,kk)=-dconjg(bfun(mm,ii,kk))
3987         end do
3988 c...helicity(49,3)=(-,-,+,-,-,-)

3989         do mm=8,9
3990            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
3991         end do
3992           end if
3993 
3994         if(iqqbar.eq.1) then
3995           bfun(1,ii,kk)=-4*pmomup(5,idb1)*(-(dconjg(inpup(idq0,idk2))**2
3996      -     *dotup(idc1,idc1)*inpup(idk2,idk1)*yup(30)) - 
3997      -     yup(34)*(-(dconjg(inpup(idc1,idq0))*dconjg(yup(45))*
3998      -     yup(25)) +dconjg(inpup(idc1,idk2))*yup(24)*(dconjg(yup(7)) 
3999      -     + yup(25)) +dconjg(inpup(idc1,idq0))*yup(23)*yup(53)) + 
4000      -     dconjg(inpup(idq0,idk2))*(dotup(idc1,idc1)*
4001      -     (-(dconjg(inpup(idb2,idq0))*dconjg(yup(35))*inpup(idb1,idk1))
4002      -     + yup(25)*yup(30)) +yup(34)*(-(dconjg(inpup(idc1,idq0))*
4003      -     dotup(idb1,idb1)*inpup(idc2,idk1)) +yup(24)*yup(81))))
4004         bfun(2,ii,kk)=4*pmomup(5,idb1)*(-(dconjg(inpup(idb1,idq0))
4005      -     *dconjg(yup(2))*dotup(idc1,idc1)*yup(17)) - 
4006      -     dconjg(inpup(idq0,idk2))*dconjg(yup(2))*dotup(idc1,idc1)
4007      -     *yup(29) - dconjg(inpup(idq0,idk2))**2*dotup(idc1,idc1)*
4008      -     inpup(idk2,idk1)*yup(29) + dconjg(inpup(idc1,idq0))*
4009      -     dconjg(yup(2))*dconjg(yup(45))*yup(34) - 
4010      -     dconjg(inpup(idc1,idq0))*dconjg(inpup(idq0,idk2))*
4011      -     dotup(idb1,idb1)*inpup(idc2,idk1)*yup(34) - 
4012      -     dconjg(inpup(idc1,idk2))*dconjg(yup(2))*yup(23)*yup(34) - 
4013      -     dconjg(inpup(idc1,idk2))*dconjg(yup(7))*yup(23)*yup(34) + 
4014      -     dconjg(inpup(idq0,idk2))*dconjg(yup(49))*yup(23)*
4015      -     yup(34) - dconjg(inpup(idc1,idq0))*yup(24)*yup(34)*yup(60))
4016           bfun(4,ii,kk)=-4*pmomup(5,idb1)*(dconjg(inpup(idb2,idq0))
4017      -     *dotup(idc1,idc1)*yup(13)*(dconjg(yup(2)) + yup(25)) + 
4018      -     dconjg(inpup(idb1,idq0))*dotup(idc1,idc1)*yup(17)*
4019      -     (dconjg(yup(2)) + yup(25)) + dconjg(inpup(idq0,idk2))
4020      -     *dotup(idc1,idc1)*yup(25)*yup(31)-dconjg(inpup(idb1,idq0))*
4021      -     dconjg(inpup(idc1,idk2))*inpup(idc2,idk1)*yup(21)*yup(34)+ 
4022      -     dconjg(inpup(idc1,idk2))*yup(23)*yup(25)*yup(34) +
4023      -     dconjg(inpup(idc1,idk2))*yup(24)*yup(25)*yup(34) + 
4024      -     dconjg(yup(2))*(dconjg(inpup(idq0,idk2))*dotup(idc1,idc1)*
4025      -     yup(31) + dconjg(inpup(idc1,idk2))*(yup(23) + yup(24))
4026      -     *yup(34))-dconjg(inpup(idb2,idq0))*dconjg(inpup(idc1,idk2))*
4027      -     inpup(idc2,idk1)*yup(34)*yup(38))
4028           do mm=1,4
4029            bfun(mm,ii,kk)=-dconjg(bfun(mm,ii,kk))
4030         end do
4031 c...helicity(49,3)=(-,-,+,-,-,-)

4032         do mm=1,4
4033            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
4034         end do
4035           end if
4036 
4037 c...helicity(34,3)=(+,+,-,+,+,-)=-dconjg(helicity(15,1)(q_c1,q_c2,q_b1,q_b2)

4038         kk=34
4039         if(iqqbar.eq.0) then
4040           bfun(8,ii,kk)=(4*pmomup(5,idb1)*(yup(23) + yup(24))*
4041      -     (dconjg(inpup(idq0,idk2))*(dconjg(yup(9))*dconjg(yup(14))
4042      -     *yup(18) +2*dconjg(yup(4))*dotup(idc1,idk1)*yup(27)) + 
4043      -     dconjg(inpup(idc1,idq0))*dconjg(yup(9))*(-yup(12)+yup(18))
4044      -     *yup(34)))/yup(8)
4045           bfun(9,ii,kk)=(-4*dconjg(inpup(idc1,idq0))*pmomup(5,idb1)
4046      -    *yup(15)*(dconjg(yup(2))+yup(25))*yup(28))/yup(8)
4047           do mm=8,9
4048            bfun(mm,ii,kk)=-dconjg(bfun(mm,ii,kk))
4049         end do
4050 c...helicity(50,3)=(-,-,+,-,-,+)

4051         do mm=8,9
4052            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
4053         end do
4054           end if
4055 
4056 c...helicity(35,3)=(+,+,-,+,-,+)=-dconjg(helicity(14,1)(q_c1,q_c2,q_b1,q_b2)

4057         kk=35
4058         if(iqqbar.eq.0) then
4059           bfun(8,ii,kk)=(-4*(dconjg(yup(12)) - dconjg(yup(18)))*
4060      -     pmomup(5,idb1)*yup(9)*(yup(23) + yup(24))*
4061      -     (dconjg(inpup(idq0,idk1))*dconjg(yup(4)) + 
4062      -     dconjg(inpup(idc1,idq0))*yup(34)))/dconjg(yup(8))
4063           bfun(9,ii,kk)=(4*dconjg(inpup(idc1,idq0))*dconjg(yup(11))*
4064      -     pmomup(5,idb1)*yup(5)*(yup(29) + yup(30)))/dconjg(yup(8))
4065           do mm=8,9
4066            bfun(mm,ii,kk)=-dconjg(bfun(mm,ii,kk))
4067         end do
4068 c...helicity(51,3)=(-,-,+,-,+,-)

4069         do mm=8,9
4070            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
4071         end do
4072           end if
4073 
4074 c...helicity(36,3)=(+,+,-,+,-,-)=-dconjg(helicity(13,1)(q_c1,q_c2,q_b1,q_b2)

4075         kk=36
4076         if(iqqbar.eq.0) then
4077           bfun(8,ii,kk)=(-4*pmomup(5,idb1)*yup(9)*(yup(12) - yup(18))*
4078      -     (yup(23)+yup(24))*(dconjg(inpup(idq0,idk1))*dconjg(yup(4))+ 
4079      -     dconjg(inpup(idq0,idk2))*dconjg(yup(14)) + 
4080      -     dconjg(inpup(idc1,idq0))*yup(34)))/xup(1)
4081           bfun(9,ii,kk)=(-4*dconjg(inpup(idk2,idk1))*pmomup(5,idb1)*
4082      -     yup(27)*yup(28)*(yup(29) + yup(30)))/xup(1)
4083           do mm=8,9
4084            bfun(mm,ii,kk)=-dconjg(bfun(mm,ii,kk))
4085         end do
4086 c...helicity(52,3)=(-,-,+,-,+,+)

4087         do mm=8,9
4088            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
4089         end do
4090           end if
4091 
4092         if(iqqbar.eq.1) then
4093           bfun(1,ii,kk)=-4*pmomup(5,idb1)*(-(dconjg(inpup(idb2,idq0))*
4094      -     dconjg(inpup(idq0,idk1))*dconjg(yup(35))*dotup(idc1,idc1)
4095      -     *inpup(idb1,idk2))+dconjg(inpup(idq0,idk1))*dconjg(yup(10))*
4096      -     dotup(idc1,idc1)*yup(30) +dconjg(inpup(idq0,idk1))**2 
4097      -     *dotup(idc1,idc1)*inpup(idk2,idk1)*yup(30) + 
4098      -     dconjg(inpup(idc1,idq0))*dconjg(yup(10))*dconjg(yup(56))*
4099      -     yup(34) -dconjg(inpup(idc1,idq0))*dconjg(inpup(idq0,idk1))*
4100      -     dotup(idb1,idb1)*inpup(idc2,idk2)*yup(34) - 
4101      -     dconjg(inpup(idc1,idk1))*dconjg(yup(10))*yup(24)*yup(34) - 
4102      -     dconjg(inpup(idc1,idk1))*dconjg(yup(12))*yup(24)*yup(34) - 
4103      -     dconjg(inpup(idc1,idq0))*yup(23)*yup(34)*yup(46) + 
4104      -     dconjg(inpup(idq0,idk1))*yup(24)*yup(34)*yup(74))
4105         bfun(2,ii,kk)=4*pmomup(5,idb1)*(dconjg(inpup(idq0,idk1))**2
4106      -     *dotup(idc1,idc1)*inpup(idk2,idk1)*yup(29)-dconjg(yup(16))*
4107      -     (dotup(idc1,idc1)*(dconjg(inpup(idb1,idq0))*yup(6) + 
4108      -     dconjg(inpup(idq0,idk1))*yup(29))+dconjg(inpup(idc1,idk1))
4109      -     *yup(23)*yup(34)) - yup(34)*(dconjg(inpup(idc1,idk1))
4110      -     *dconjg(yup(12))*yup(23) + dconjg(inpup(idc1,idq0))*yup(24)*
4111      -     yup(50)- dconjg(inpup(idb2,idq0))*dconjg(inpup(idc1,idq0))
4112      -     *inpup(idc2,idk2)*yup(66) - dconjg(inpup(idq0,idk1))*
4113      -     (-(dconjg(inpup(idc1,idq0))*dotup(idb1,idb1)*
4114      -     inpup(idc2,idk2)) + yup(23)*yup(67))))
4115           bfun(4,ii,kk)=4*pmomup(5,idb1)*(-(dconjg(inpup(idc1,idk1))
4116      -     *inpup(idc2,idk2)*yup(34)*(-(dconjg(inpup(idb1,idq0))*
4117      -     yup(21)) - dconjg(inpup(idb2,idq0))*yup(38))) - 
4118      -     dconjg(inpup(idb2,idq0))*dconjg(inpup(idq0,idk1))*
4119      -     inpup(idc2,idk2)*yup(34)*yup(70) + dconjg(inpup(idq0,idk1))
4120      -     *dotup(idc1,idc1)*(dconjg(yup(13))*(dconjg(yup(61)) - 
4121      -     dconjg(inpup(idq0,idk1))*inpup(idk1,idb2))+dconjg(yup(17))*
4122      -     (dconjg(inpup(idq0,idk1))*inpup(idb1,idk1) + yup(75))) - 
4123      -     dconjg(inpup(idb1,idq0))*dconjg(inpup(idq0,idk1))*
4124      -     inpup(idc2,idk2)*yup(34)*yup(84))
4125           do mm=1,4
4126            bfun(mm,ii,kk)=-dconjg(bfun(mm,ii,kk))
4127         end do
4128 c...helicity(52,3)=(-,-,+,-,+,+)

4129         do mm=1,4
4130            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
4131         end do
4132           end if
4133 
4134 c...helicity(37,3)=(+,+,-,-,+,+)=dconjg(helicity(40,1)(q_c1,q_c2,q_b1,q_b2)

4135         kk=37
4136           if(iqqbar.eq.0) then
4137           bfun(8,ii,kk)=(-4*dotup(idc1,idc1)*yup(30)*(dconjg(yup(9))*
4138      -     dconjg(yup(10))*yup(19) + (dconjg(yup(7))*dconjg(yup(10)) + 
4139      -     (-dconjg(yup(12)) + dconjg(yup(18)))*yup(25))*yup(31)) + 
4140      -     4*dconjg(yup(9))*(dconjg(yup(12)) - dconjg(yup(18)))*
4141      -     dconjg(yup(34))*dotup(idb1,idb1)*yup(34)+4*dconjg(yup(35))*
4142      -     (-2*dconjg(inpup(idb2,idq0))*dotup(idc1,idk1)*
4143      -     inpup(idk2,idk1)*yup(22)*yup(27) + dconjg(yup(9))*
4144      -     (-dconjg(yup(12)) + dconjg(yup(18)))*
4145      -     (dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
4146      -     yup(34) - dotup(idc1,idc1)*yup(35))))/xup(2)
4147           bfun(9,ii,kk)=0.0d0
4148         do mm=8,9
4149            bfun(mm,ii,kk)=dconjg(bfun(mm,ii,kk))
4150         end do
4151 c...helicity(53,3)=(-,-,+,+,-,-)

4152         do mm=8,9
4153            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
4154         end do
4155           end if
4156 
4157           if(iqqbar.eq.1) then
4158           bfun(1,ii,kk)=-4*(dconjg(yup(8))*dotup(idb1,idb1)*
4159      -     dotup(idc1,idc1)*yup(30) - dconjg(inpup(idq0,idk2))*
4160      -     dconjg(yup(39))*dotup(idb1,idb1)*inpup(idc2,idk1)*yup(34)+ 
4161      -     dconjg(inpup(idc1,idb2))*dconjg(yup(35))*dconjg(yup(45))*
4162      -     inpup(idk1,idb1)*yup(34) + dconjg(inpup(idc1,idk2))*
4163      -     dotup(idb1,idb1)*inpup(idb1,idk1)*yup(34)*yup(37) - 
4164      -     dconjg(inpup(idc1,idb2))*dconjg(yup(35))*inpup(idc2,idb1)
4165      -     *yup(34)*yup(53) +dconjg(yup(35))*dotup(idc1,idc1)*yup(35)*
4166      -     yup(53) + dconjg(yup(3))*dconjg(yup(35))*dotup(idc1,idc1)*
4167      -     yup(57) -dotup(idb1,idb1)*yup(14)*yup(34)*yup(72) + 
4168      -     dotup(idb1,idb1)*yup(14)*yup(34)*yup(81))
4169         bfun(2,ii,kk)=4*dotup(idb1,idb1)*(dconjg(yup(8))*
4170      -     dotup(idc1,idc1)*yup(29) -(dconjg(yup(5))*
4171      -     (dconjg(yup(45))-dconjg(yup(68)))- dconjg(inpup(idc1,idq0))
4172      -     *inpup(idc2,idk1)*yup(16) +dconjg(inpup(idc1,idk2)) 
4173      -     *inpup(idq0,idk1)*yup(23))*yup(34)) +4*dconjg(yup(35))*
4174      -     ((dotup(idc1,idc1)*yup(17) - dconjg(inpup(idc1,idk2))
4175      -     *inpup(idc2,idb1)*yup(34))*yup(59) + 
4176      -     (-(dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
4177      -     yup(34)) + dotup(idc1,idc1)*yup(35))*yup(60))
4178           bfun(4,ii,kk)=-4*(-(dconjg(inpup(idq0,idk2))*dconjg(yup(35))*
4179      -    dconjg(yup(38))*dotup(idc1,idc1)*inpup(idb1,idk1)) + 
4180      -    dconjg(inpup(idq0,idk1))*dconjg(inpup(idq0,idk2))*
4181      -    dotup(idb1,idb1)*dotup(idc1,idc1)*inpup(idq0,idk1)**2 - 
4182      -    dconjg(yup(3))*dotup(idb1,idb1)*dotup(idc1,idc1)*
4183      -    yup(13) - dconjg(yup(6))*dotup(idb1,idb1)*dotup(idc1,idc1)
4184      -    *yup(17) +dconjg(inpup(idc1,idk2))*dconjg(yup(6))*
4185      -    dotup(idb1,idb1)*inpup(idc2,idb1)*yup(34) + 
4186      -    dconjg(inpup(idc1,idk2))*dconjg(yup(3))*
4187      -    dotup(idb1,idb1)*inpup(idc2,idb2)*yup(34) + 
4188      -    dconjg(inpup(idc1,idk2))*inpup(idc2,idk1)*yup(34)*
4189      -    (-(dotup(idb1,idb1)*yup(31)) +dconjg(yup(35))*yup(51)) + 
4190      -    dconjg(inpup(idq0,idk2))*dconjg(yup(35))*
4191      -    dotup(idc1,idc1)*inpup(idb1,idk1)*yup(61) - 
4192      -    dconjg(inpup(idc1,idk2))*dconjg(yup(35))*
4193      -    inpup(idb1,idk1)*yup(34)*yup(64))
4194           do mm=1,4
4195            bfun(mm,ii,kk)=dconjg(bfun(mm,ii,kk))
4196         end do
4197 c...helicity(53,3)=(-,-,+,+,-,-)

4198         do mm=1,4
4199            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
4200         end do
4201           end if
4202 
4203 c...helicity(38,3)=(+,+,-,-,+,-)=dconjg(helicity(39,1)(q_c1,q_c2,q_b1,q_b2)

4204         kk=38
4205         if(iqqbar.eq.0) then
4206           bfun(8,ii,kk)=(4*(2*dconjg(yup(4))*dotup(idc1,idk1)*
4207      -     (dotup(idb1,idb1)*yup(14) - yup(16)*yup(23))*yup(27) +
4208      -     dconjg(yup(9))*(-(dconjg(yup(14))*yup(16)*yup(18)*yup(23)) + 
4209      -     dconjg(inpup(idc1,idb2))*dconjg(yup(35))*inpup(idc2,idb1)*
4210      -     (-yup(12) + yup(18))*yup(34) + dotup(idb1,idb1)*
4211      -     (dconjg(yup(14))*yup(14)*yup(18) +dconjg(yup(34))*(yup(12) 
4212      -     - yup(18))*yup(34))) + dotup(idc1,idc1)*(2*dconjg(yup(8))
4213      -     *dconjg(yup(35))*dotup(idc1,idk1)*yup(35)+(yup(12)-yup(18))*
4214      -     (yup(25)*yup(30)*yup(31) + dconjg(yup(9))*dconjg(yup(35))
4215      -     *yup(35)))))/yup(8)
4216           bfun(9,ii,kk)=(4*(dconjg(yup(5))*dotup(idb1,idb1)*yup(15)*
4217      -     yup(28) + dconjg(yup(35))*(-(dconjg(inpup(idc1,idb2))*
4218      -     inpup(idk1,idb1)*yup(15)*yup(28)) + 
4219      -     dconjg(yup(8))*dotup(idc1,idc1)*yup(35))))/yup(8)
4220         do mm=8,9
4221            bfun(mm,ii,kk)=dconjg(bfun(mm,ii,kk))
4222         end do
4223 c...helicity(54,3)=(-,-,+,+,-,+)

4224         do mm=8,9
4225            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
4226         end do
4227           end if
4228 
4229 c...helicity(39,3)=(+,+,-,-,-,+)=dconjg(helicity(38,1)(q_c1,q_c2,q_b1,q_b2)

4230         kk=39
4231         if(iqqbar.eq.0) then
4232           bfun(8,ii,kk)=(-4*yup(9)*((dconjg(yup(12)) - dconjg(yup(18)))*
4233      -     dotup(idb1,idb1)*(dconjg(yup(4))*yup(4) - dconjg(yup(34))
4234      -     *yup(34)) +dconjg(yup(35))*(-((dconjg(inpup(idb2,idk1))
4235      -     *dconjg(yup(4))*(-dconjg(yup(12)) + dconjg(yup(18))) - 
4236      -     2*dconjg(inpup(idb2,idq0))*dconjg(yup(14))*dotup(idc1,idk1))*
4237      -     inpup(idc2,idb1)) +dconjg(inpup(idc1,idb2))*(dconjg(yup(12))
4238      -     -dconjg(yup(18)))*inpup(idc2,idb1)*yup(34))+dotup(idc1,idc1)*
4239      -     (dconjg(yup(10))*yup(19)*yup(30) + (-dconjg(yup(12)) +
4240      -     dconjg(yup(18)))*dconjg(yup(35))*yup(35))))/dconjg(yup(8))
4241           bfun(9,ii,kk)=(4*dconjg(inpup(idc1,idb2))*dconjg(yup(11))*
4242      -     dconjg(yup(35))*inpup(idq0,idb1)*yup(5))/dconjg(yup(8))
4243           do mm=8,9
4244            bfun(mm,ii,kk)=dconjg(bfun(mm,ii,kk))
4245         end do
4246 c...helicity(55,3)=(-,-,+,+,+,-)

4247         do mm=8,9
4248            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
4249         end do
4250           end if
4251 
4252 c...helicity(40,3)=(+,+,-,-,-,-)=dconjg(helicity(37,1)(q_c1,q_c2,q_b1,q_b2)

4253         kk=40
4254         if(iqqbar.eq.0) then
4255           bfun(8,ii,kk)=(4*yup(9)*(yup(12) - yup(18))*
4256      -     (dconjg(yup(14))*yup(16)*yup(23) -dotup(idb1,idb1)*
4257      -     (dconjg(yup(4))*yup(4) + dconjg(yup(14))*yup(14) - 
4258      -     dconjg(yup(34))*yup(34)) +dconjg(yup(35))*
4259      -     (-(dconjg(inpup(idb2,idk1))*dconjg(yup(4))*inpup(idc2,idb1))- 
4260      -     dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
4261      -     yup(34) + dotup(idc1,idc1)*yup(35))))/xup(1)
4262           bfun(9,ii,kk)=(-4*dconjg(inpup(idk2,idk1))*dconjg(yup(35))*
4263      -     dconjg(yup(42))*inpup(idq0,idb1)*yup(28))/xup(1)
4264           do mm=8,9
4265            bfun(mm,ii,kk)=dconjg(bfun(mm,ii,kk))
4266         end do
4267 c...helicity(56,3)=(-,-,+,+,+,+)

4268         do mm=8,9
4269            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
4270         end do
4271           end if
4272 
4273         if(iqqbar.eq.1) then
4274           bfun(1,ii,kk)=4*(dconjg(yup(35))*((dconjg(inpup(idc1,idb2))
4275      -     *inpup(idc2,idb1)*yup(34)-dotup(idc1,idc1)*yup(35))*yup(46)
4276      -     + (-(dconjg(yup(13))*dotup(idc1,idc1)) + 
4277      -     dconjg(inpup(idc1,idb2))*inpup(idc2,idk2)*yup(34))*yup(47))- 
4278      -     dotup(idb1,idb1)*(dotup(idc1,idc1)*yup(8)*yup(30) + 
4279      -     yup(34)*(-(dconjg(inpup(idq0,idk1))*dconjg(yup(39))*
4280      -     inpup(idc2,idk2))+dconjg(inpup(idc1,idk1))*inpup(idb1,idk2)*
4281      -     yup(37) + yup(4)*(-dconjg(yup(54)) + yup(74)))))
4282         bfun(2,ii,kk)=4*(dconjg(yup(35))*((dotup(idc1,idc1)*yup(6) - 
4283      -     dconjg(inpup(idc1,idk1))*inpup(idc2,idb1)*yup(34))*yup(48) + 
4284      -     (-(dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*yup(34)) + 
4285      -     dotup(idc1,idc1)*yup(35))*yup(50)) +dotup(idb1,idb1)*
4286      -     (dotup(idc1,idc1)*yup(8)*yup(29)+yup(34)*(inpup(idc2,idk2)*
4287      -     (dconjg(inpup(idc1,idq0))*yup(2) +dconjg(inpup(idc1,idq0)) 
4288      -     *yup(7)) -dconjg(inpup(idc1,idk1))*inpup(idq0,idk2)*
4289      -     yup(23) + dconjg(yup(15))*yup(86))))
4290         bfun(4,ii,kk)=4*(-(dconjg(inpup(idq0,idk1))**2*dotup(idb1,idb1)*
4291      -     dotup(idc1,idc1)*inpup(idq0,idk1)*inpup(idq0,idk2)) + 
4292      -     dotup(idc1,idc1)* (dotup(idb1,idb1)*(dconjg(yup(13))*yup(3)+ 
4293      -     dconjg(yup(17))*yup(6)) +  dconjg(yup(35))*
4294      -     (dconjg(inpup(idb2,idk1))*inpup(idq0,idk2)*yup(21) + 
4295      -     dconjg(yup(13))*yup(82))) + inpup(idc2,idk2)*yup(34)*
4296      -     (-(dconjg(inpup(idq0,idk1))*(dconjg(yup(20)) +
4297      -     dconjg(yup(39)))*dotup(idb1,idb1))+dconjg(inpup(idc1,idk1))*
4298      -     (dotup(idb1,idb1)*yup(31) -dconjg(yup(35))*yup(51)) + 
4299      -     dconjg(inpup(idb2,idk1))*dconjg(yup(35))*yup(84)))
4300           do mm=1,4
4301              bfun(mm,ii,kk)=dconjg(bfun(mm,ii,kk))
4302         end do
4303 c...helicity(56,3)=(-,-,+,+,+,+)

4304         do mm=1,4
4305            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
4306         end do
4307           end if
4308 
4309 c...helicity(41,3)=(+,-,+,+,+,+)=helicity(5,1)(q_c1,q_c2,q_b1,q_b2)

4310         kk=41
4311         if(iqqbar.eq.0) then
4312           bfun(8,ii,kk)=(4*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk2))
4313      -     *dconjg(yup(14))*yup(9)*(dotup(idb1,idb1)*yup(14) - yup(16)
4314      -     *yup(23))) -dconjg(inpup(idq0,idk1))*(-(dconjg(yup(4))
4315      -     *dotup(idb1,idb1)*yup(4)*(yup(12)-yup(18)))-dconjg(yup(14)) 
4316      -     *yup(12)*(dotup(idb1,idb1)*yup(14) - yup(16)*yup(23)))-
4317      -     dconjg(yup(35))*((yup(12)-yup(18))*(dconjg(inpup(idb2,idk1))
4318      -     *yup(22)*yup(31)+dconjg(inpup(idb2,idq0))*yup(9)*(yup(22) +
4319      -     yup(32))) +2*dconjg(inpup(idk2,idk1))*dotup(idc1,idk1)*
4320      -     yup(27)*yup(35))))/xup(1)
4321           bfun(9,ii,kk)=(4*dconjg(inpup(idk2,idk1))*dconjg(yup(35))*
4322      -     pmomup(5,idc1)*yup(28)*yup(35))/xup(1)
4323 c...helicity(57,3)=(-,+,-,-,-,-)

4324         do mm=8,9
4325            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
4326         end do
4327           end if
4328 
4329         if(iqqbar.eq.1) then
4330           bfun(1,ii,kk)=4*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk1))
4331      -     *dotup(idb1,idb1)*((dconjg(yup(10))-dconjg(inpup(idq0,idk1))
4332      -     *inpup(idk2,idk1))*(yup(27)+yup(28))+(dconjg(yup(11)) +  
4333      -     dconjg(yup(18)))*yup(30) +inpup(idb1,idk2)*
4334      -     (dconjg(inpup(idq0,idc2))*yup(37)- dconjg(inpup(idc1,idq0))
4335      -     *yup(43)))) +dconjg(inpup(idb2,idq0))*dconjg(yup(35))*
4336      -     ((yup(22) + yup(32))*yup(46) + 
4337      -     (dconjg(yup(11)) + dconjg(yup(18)))*yup(47)))
4338         bfun(2,ii,kk)=4*pmomup(5,idc1)*(-(dotup(idb1,idb1)*yup(8)*
4339      -     (-(dconjg(inpup(idc1,idq0))*yup(20)) + 
4340      -     dconjg(inpup(idq0,idc2))*yup(23)))-dconjg(yup(35))*(yup(22)
4341      -     + yup(32))*(-(dconjg(inpup(idb2,idk1))*dconjg(yup(12))) + 
4342      -     dconjg(inpup(idb2,idq0))*yup(50)))
4343           bfun(4,ii,kk)=-4*pmomup(5,idc1)*(dotup(idb1,idb1)*
4344      -    (-(dconjg(inpup(idq0,idk1))**2*(dconjg(yup(5))*
4345      -    inpup(idc1,idk2) +dconjg(yup(4))*inpup(idc2,idk2))) + 
4346      -    (dconjg(yup(11))+dconjg(yup(18)))*(dconjg(inpup(idb2,idq0))*
4347      -    yup(3)+dconjg(inpup(idb1,idq0))*yup(6)))+ (dconjg(yup(11))
4348      -    + dconjg(yup(18)))*dconjg(yup(35))*(-(dconjg(inpup(idb2,idk1)
4349      -    )*yup(21)) +dconjg(inpup(idb2,idq0))*yup(82)))
4350 c...helicity(57,3)=(-,+,-,-,-,-)

4351         do mm=1,4
4352            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
4353         end do
4354           end if
4355 
4356 c...helicity(42,3)=(+,-,+,+,+,-)=helicity(6,1)(q_c1,q_c2,q_b1,q_b2)

4357         kk=42
4358         if(iqqbar.eq.0) then
4359           bfun(8,ii,kk)=(4*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk1))
4360      -     *dconjg(yup(4))*(-dconjg(yup(12)) + dconjg(yup(18)))*
4361      -     dotup(idb1,idb1)*yup(4)) - 2*dotup(idc1,idk1)*
4362      -     (dconjg(inpup(idb2,idq0))*dconjg(yup(35))*yup(8)*yup(22)+ 
4363      -     dconjg(inpup(idq0,idk1))*dconjg(yup(10))*yup(27)*yup(30)) - 
4364      -     dconjg(yup(35))*(dconjg(inpup(idb2,idk1))*(dconjg(yup(12))-
4365      -     dconjg(yup(18)))*yup(22)*yup(31) + dconjg(inpup(idb2,idq0))
4366      -     *yup(9)*(dconjg(yup(12))*(yup(22)+yup(32))-dconjg(yup(18))*
4367      -     (yup(22) - yup(26) + yup(32))))))/dconjg(yup(8))
4368           bfun(9,ii,kk)=(4*dconjg(inpup(idq0,idk1))*dconjg(yup(11))*
4369      -     dconjg(yup(35))*pmomup(5,idc1)*yup(35))/dconjg(yup(8))
4370 c...helicity(58,3)=(-,+,-,-,-,+)

4371         do mm=8,9
4372            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
4373         end do
4374           end if
4375 
4376 c...helicity(43,3)=(+,-,+,+,-,+)=helicity(7,1)(q_c1,q_c2,q_b1,q_b2)

4377         kk=43
4378         if(iqqbar.eq.0) then
4379           bfun(8,ii,kk)=(4*dconjg(yup(9))*pmomup(5,idc1)*
4380      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(14))*(dotup(idb1,idb1)
4381      -     *yup(14) - yup(16)*yup(23)))+ dconjg(inpup(idb2,idq0))
4382      -     *dconjg(yup(35))*(-2*dotup(idc1,idk1)*yup(17)+(yup(12)-
4383      -     yup(18))*(yup(21)- yup(22) - yup(32)))))/yup(8)
4384           bfun(9,ii,kk)=(4*dconjg(inpup(idk2,idq0))*pmomup(5,idc1)*
4385      -     (dconjg(yup(5))*yup(20) + yup(25)*yup(28))*yup(30))/yup(8)
4386 c...helicity(59,3)=(-,+,-,-,+,-)

4387         do mm=8,9
4388            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
4389         end do
4390           end if
4391 
4392 c...helicity(44,3)=(+,-,+,+,-,-)=helicity(8,1)(q_c1,q_c2,q_b1,q_b2)

4393         kk=44
4394         if(iqqbar.eq.0) then
4395           bfun(8,ii,kk)=(4*dconjg(inpup(idb2,idq0))*dconjg(yup(9))*
4396      -     (dconjg(yup(12)) - dconjg(yup(18)))*dconjg(yup(35))
4397      -     *pmomup(5,idc1)*(yup(21)-yup(22)+yup(26)-yup(32)))/xup(2)
4398           bfun(9,ii,kk)=0.0d0
4399 c...helicity(60,3)=(-,+,-,-,+,+)

4400         do mm=8,9
4401            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
4402         end do
4403           end if
4404 
4405         if(iqqbar.eq.1) then
4406           bfun(1,ii,kk)=4*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk2))*
4407      -     dotup(idb1,idb1)*((dconjg(inpup(idq0,idk2))*inpup(idk2,idk1)
4408      -     +yup(25))*(yup(27) + yup(28)) + (dconjg(yup(1)) +
4409      -     dconjg(yup(9)))*yup(30) +inpup(idb1,idk1)*
4410      -     (dconjg(inpup(idq0,idc2))*yup(37)-dconjg(inpup(idc1,idq0))
4411      -     *yup(43)))) +dconjg(inpup(idb2,idq0))*dconjg(yup(35))*
4412      -     ((yup(22) + yup(32))*yup(53) + 
4413      -     (dconjg(yup(1)) + dconjg(yup(9)))*yup(57)))
4414         bfun(2,ii,kk)=4*pmomup(5,idc1)*(-(dconjg(yup(8))*
4415      -     dotup(idb1,idb1)*(-(dconjg(inpup(idc1,idq0))*yup(20)) + 
4416      -     dconjg(inpup(idq0,idc2))*yup(23))) -dconjg(yup(35))* (yup(22)
4417      -     +yup(32))*(-(dconjg(inpup(idb2,idk2))*dconjg(yup(7)))+ 
4418      -     dconjg(inpup(idb2,idq0))*yup(60)))
4419           bfun(4,ii,kk)=4*dconjg(inpup(idq0,idk2))*pmomup(5,idc1)*
4420      -    (dotup(idb1,idb1)*(-((dconjg(yup(1))+dconjg(yup(9)))*yup(31))+ 
4421      -    dconjg(yup(6))*(yup(22) + yup(32)) + dconjg(yup(3))*
4422      -    (dconjg(yup(36)) + yup(42))) + dconjg(yup(35))*
4423      -    ((dconjg(yup(1)) + dconjg(yup(9)))*yup(51) +inpup(idb1,idk1)*
4424      -    (-(dconjg(inpup(idc1,idq0))*yup(62))+dconjg(inpup(idq0,idc2))
4425      -    *yup(64))))
4426 c...helicity(60,3)=(-,+,-,-,+,+)

4427         do mm=1,4
4428            bfun(mm,ii,kk+16)=-dconjg(bfun(mm,ii,kk))
4429         end do
4430           end if
4431 
4432 c...helicity(45,3)=(+,-,+,-,+,+)=helicity(45,1)(q_c1,q_c2,q_b1,q_b2)

4433         kk=45
4434           if(iqqbar.eq.0) then
4435           bfun(8,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*
4436      -     (dconjg(inpup(idq0,idk2))*dconjg(yup(14))*
4437      -     (-(dconjg(inpup(idq0,idk2))*yup(9)) + 
4438      -     dconjg(inpup(idq0,idk1))*yup(12)) + 
4439      -     dconjg(inpup(idq0,idk1))**2*dconjg(yup(4))*
4440      -     (yup(12) - yup(18)))*(yup(23) + yup(24)))/xup(1)
4441           bfun(9,ii,kk)=0.0d0
4442 c...helicity(61,3)=(-,+,-,+,-,-)

4443         do mm=8,9
4444            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
4445         end do
4446           end if
4447 
4448           if(iqqbar.eq.1) then
4449           bfun(1,ii,kk)=4*dconjg(inpup(idq0,idk1))*pmomup(5,idb1)*
4450      -     pmomup(5,idc1)*(dconjg(inpup(idq0,idk1))*inpup(idk2,idk1)*
4451      -     (dconjg(inpup(idq0,idc2))*yup(24)-dconjg(inpup(idc1,idq0)) 
4452      -     *yup(39)) +dconjg(yup(10))*(dconjg(inpup(idq0,idc2))
4453      -     *yup(24) -dconjg(inpup(idc1,idq0))*yup(39) - 
4454      -     dconjg(inpup(idb2,idq0))*(dconjg(yup(36))+yup(42))))
4455         bfun(2,ii,kk)=4*dconjg(inpup(idq0,idk1))*pmomup(5,idb1)*
4456      -     pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk1))*inpup(idk2,idk1)*
4457      -     (-(dconjg(inpup(idc1,idq0))*yup(20))+dconjg(inpup(idq0,idc2)) 
4458      -     *yup(23))) +dconjg(yup(16))*(dconjg(inpup(idc1,idq0))*
4459      -     yup(20) -dconjg(inpup(idq0,idc2))*yup(23) + 
4460      -     dconjg(inpup(idb1,idq0))*(yup(22) + yup(32))))
4461           bfun(4,ii,kk)=-4*dconjg(inpup(idq0,idk1))*
4462      -    (dconjg(yup(11)) + dconjg(yup(18)))*pmomup(5,idb1)*
4463      -    pmomup(5,idc1)*(-(dconjg(inpup(idb2,idq0))*dconjg(yup(61)))+ 
4464      -    dconjg(inpup(idq0,idk1))*(dconjg(yup(2)) + yup(25)) - 
4465      -    dconjg(inpup(idb1,idq0))*yup(75))
4466 c...helicity(61,3)=(-,+,-,+,-,-)

4467         do mm=1,4
4468            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
4469         end do
4470           end if
4471 
4472 c...helicity(46,3)=(+,-,+,-,+,-)=helicity(46,1)(q_c1,q_c2,q_b1,q_b2)

4473         kk=46
4474         if(iqqbar.eq.0) then
4475           bfun(8,ii,kk)=(4*dconjg(inpup(idq0,idk1))**2*dconjg(yup(4))*
4476      -     (dconjg(yup(12)) - dconjg(yup(18)))*pmomup(5,idb1)*
4477      -     pmomup(5,idc1)*(yup(23) + yup(24)))/dconjg(yup(8))
4478           bfun(9,ii,kk)=0.0d0
4479 c...helicity(62,3)=(-,+,-,+,-,+)

4480         do mm=8,9
4481            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
4482         end do
4483           end if
4484 
4485 c...helicity(47,3)=(+,-,+,-,-,+)=helicity(47)(q_c1,q_c2,q_b1,q_b2)

4486         kk=47
4487         if(iqqbar.eq.0) then
4488           bfun(8,ii,kk)=(-4*dconjg(inpup(idq0,idk2))**2*dconjg(yup(9))*
4489      -     dconjg(yup(14))*pmomup(5,idb1)*pmomup(5,idc1)*(yup(23) 
4490      -     + yup(24)))/yup(8)
4491           bfun(9,ii,kk)=0.0d0
4492 c...helicity(63,3)=(-,+,-,+,+,-)

4493         do mm=8,9
4494            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
4495         end do
4496           end if
4497 
4498 c...helicity(48,3)=(+,-,+,-,-,-)=helicity(48,1)(q_c1,q_c2,q_b1,q_b2)

4499         kk=48
4500           if(iqqbar.eq.0) then
4501           bfun(8,ii,kk)=0.0d0
4502           bfun(9,ii,kk)=0.0d0
4503 c...helicity(64,3)=(-,+,-,+,+,+)

4504         do mm=8,9
4505            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
4506         end do
4507           end if
4508 
4509           if(iqqbar.eq.1) then
4510           bfun(1,ii,kk)=4*dconjg(inpup(idq0,idk2))*pmomup(5,idb1)*
4511      -     pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk2))*inpup(idk2,idk1)*
4512      -     (dconjg(inpup(idq0,idc2))*yup(24)-dconjg(inpup(idc1,idq0)) 
4513      -     *yup(39))) +yup(25)*(dconjg(inpup(idq0,idc2))*yup(24) - 
4514      -     dconjg(inpup(idc1,idq0))*yup(39) -dconjg(inpup(idb2,idq0))*
4515      -     (dconjg(yup(36)) + yup(42))))
4516         bfun(2,ii,kk)=4*dconjg(inpup(idq0,idk2))*pmomup(5,idb1)*
4517      -     pmomup(5,idc1)*(dconjg(inpup(idq0,idk2))*inpup(idk2,idk1)*
4518      -     (-(dconjg(inpup(idc1,idq0))*yup(20))+dconjg(inpup(idq0,idc2))
4519      -     *yup(23)) +dconjg(yup(2))*(dconjg(inpup(idc1,idq0))*yup(20)- 
4520      -     dconjg(inpup(idq0,idc2))*yup(23)+dconjg(inpup(idb1,idq0))* 
4521      -     (yup(22)+yup(32))))
4522           bfun(4,ii,kk)=-4*dconjg(inpup(idq0,idk2))*pmomup(5,idb1)*
4523      -     pmomup(5,idc1)*(-((dconjg(yup(1)) + dconjg(yup(9)))*
4524      -     (-(dconjg(inpup(idb1,idq0))*yup(21)) - 
4525      -     dconjg(inpup(idb2,idq0))*yup(38))) + 
4526      -     (dconjg(yup(2)) + yup(25))*(dconjg(inpup(idq0,idc2))*
4527      -     (yup(23) + yup(24)) - dconjg(inpup(idc1,idq0))*(yup(20)
4528      -      + yup(39))))
4529 c...helicity(64,3)=(-,+,-,+,+,+)

4530         do mm=1,4
4531            bfun(mm,ii,kk+16)=dconjg(bfun(mm,ii,kk))
4532         end do
4533           end if
4534         
4535 1223  continue  
4536         end
4537 
4538 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

4539 c           nine basic functions from first by k1 <-> k1             c

4540 c                  and b quark <-> c quark.                          c

4541 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

4542         subroutine bfourth
4543         implicit double precision (a-h,o-z)
4544         implicit integer(i-n)
4545         double complex bfun,colmat,yup,xup,inpup,bundamp
4546       common/upcom/ecm,pmbc,pmb,pmc,fbcc,pmomup(5,8),
4547      &  colmat(10,64),bundamp(4),pmomzero(5,8)
4548       common/tryup/bfun(9,4,64),yup(100),xup(2),idp,idq0,idk1,idk2,
4549      &  idb1,idb2,idc1,idc2
4550       common/counter/ibcstate,nev
4551 c...for transform the subprocess information, i.e.,  whether using

4552 c...the subprocess q\bar{q}->bc+b+\bar{c} to generate events.

4553       common/qqbar/iqqbar,iqcode
4554 
4555 c...if (l1.ne.l3 .and. l2.ne.l4 .and. l5.ne.l6) then

4556 c...hel(i,4)(l1,l2,l3,l4,l5,l6)=hel(i,1)(-l1,-l2,-l3,-l4,-l5,-l6)

4557 c...(q_b1<->q_c1,q_b2->q_c2,k_1<->k_2), where l1,...,l6 are helicities 

4558 c...of q_b1,q_b2, q_c1,q_c2,k_1,k_2; (l2=l3);

4559 c...if (l1.ne.l3 .and. l2.ne.l4 .and. l5.eq.l6) then

4560 c...hel(i,4)(l1,l2,l3,l4,l5,l6)=hel(i,1)(-l1,-l2,-l3,-l4,l5,l6)

4561 c...(q_b1<->q_c1,q_b2->q_c2,k_1<->k_2)

4562 c...if (l1.ne.l3 .and. l2.eq.l4 .and. l5.ne.l6) then

4563 c...hel(i,4)(l1,l2,l3,l4,l5,l6)=hel(i,1)(-l1,l2,-l3,l4,-l5,-l6)

4564 c...(q_b1<->q_c1,q_b2->q_c2,k_1<->k_2)

4565 c...if (l1.ne.l3 .and. l2.eq.l4 .and. l5.eq.l6) then

4566 c...hel(i,4)(l1,l2,l3,l4,l5,l6)=hel(i,1)(-l1,l2,-l3,l4,l5,l6)

4567 c...(q_b1<->q_c1,q_b2->q_c2,k_1<->k_2)

4568 c...other four conditions can be obtained from the same way.

4569 
4570          ii=4
4571        do kk=1,64
4572           bfun(1,ii,kk)=bfun(4,1,kk)
4573         bfun(2,ii,kk)=bfun(2,1,kk)
4574           bfun(3,ii,kk)=bfun(3,1,kk)
4575           bfun(4,ii,kk)=bfun(1,1,kk)
4576           bfun(5,ii,kk)=bfun(5,1,kk)
4577           bfun(9,ii,kk)=bfun(9,1,kk)+bfun(9,2,kk)-bfun(9,3,kk)
4578          end do
4579 
4580 c...helicity(1,4)=(+,+,+,+,+,+)=helicity(1,1)(q_c1,q_c2,q_b1,q_b2,k_2,k_1)

4581         kk=1
4582           bfun(8,ii,kk)=(-4*dotup(idc1,idc1)*yup(29)*(yup(9)*yup(16)*
4583      -     yup(19)+(yup(7)*yup(16) + yup(2)*(-yup(12) + yup(18)))*
4584      -     yup(31)) +4*dconjg(yup(34))*yup(9)*(yup(12) - yup(18))*
4585      -     (-(dconjg(yup(24))*yup(20)) +dotup(idb1,idb1)*yup(34)) + 
4586      -     4*dconjg(yup(35))*(dotup(idc1,idc1)*yup(9)*(yup(12)-yup(18))*
4587      -     yup(35) + 2*dconjg(inpup(idk2,idk1))*dotup(idc1,idk1)*
4588      -     inpup(idq0,idb1)*yup(27)*yup(36)))/xup(1)
4589 c...helicity(17,4)=(-,-,-,-,-,-)

4590         bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4591 
4592 c...helicity(2,4)=m(+,+,+,+,+,-)=helicity(3,1)(q_c1,q_c2,q_b1,q_b2,k_2,k_1)

4593         kk=2
4594           bfun(8,ii,kk)=(4*dconjg(yup(9))*(dconjg(yup(24))*((yup(12)
4595      -     - yup(18))*(-(dconjg(yup(34))*yup(20))+yup(4)*yup(25)) + 
4596      -     2*dotup(idc1,idk1)*yup(14)*yup(29))+dotup(idb1,idb1)*(yup(12) 
4597      -     -yup(18))*(-(dconjg(yup(4))*yup(4))+dconjg(yup(34))*yup(34))+ 
4598      -     dotup(idc1,idc1)*(-(yup(16)*yup(19)*yup(29))+dconjg(yup(35))
4599      -     *(yup(12) - yup(18))*yup(35))))/yup(8)
4600 c...helicity(18)=m(-,-,-,-,-,+)

4601           bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4602 
4603 c...helicity(3,4)=(+,+,+,+,-,+)=helicity(2,1)(q_c1,q_c2,q_b1,q_b2,k_2,k_1)

4604         kk=3
4605           bfun(8,ii,kk)=(4*((-(dconjg(yup(10))*dconjg(yup(24))) + 
4606      -     dconjg(yup(14))*dotup(idb1,idb1))*(dconjg(yup(18))*yup(9)
4607      -     *yup(14)+2*dotup(idc1,idk1)*yup(4)*yup(27))+(dconjg(yup(12))
4608      -     -dconjg(yup(18)))*dconjg(yup(34))*yup(9)*(-(dconjg(yup(24))
4609      -     *yup(20)) +dotup(idb1,idb1)*yup(34)) +dotup(idc1,idc1)*
4610      -     (2*dconjg(yup(35))*dotup(idc1,idk1)*yup(8)*yup(35) + 
4611      -     (dconjg(yup(12))-dconjg(yup(18)))*(yup(2)*yup(29)*yup(31)+ 
4612      -     dconjg(yup(35))*yup(9)*yup(35)))))/dconjg(yup(8))
4613 c...helicity(19,4)=(-,-,-,-,+,-)

4614           bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4615 
4616 c...helicity(4,4)=(+,+,+,+,-,-)=helicity(4,1)(q_c1,q_c2,q_b1,q_b2,k_2,k_1)

4617         kk=4
4618           bfun(8,ii,kk)=(4*dconjg(yup(9))*(dconjg(yup(12))-
4619      -     dconjg(yup(18)))*(dconjg(yup(24))*(dconjg(yup(10))*yup(14)- 
4620      -     dconjg(yup(34))*yup(20) + yup(4)*yup(25)) -dotup(idb1,idb1)*
4621      -     (dconjg(yup(4))*yup(4)+dconjg(yup(14))*yup(14)-
4622      -     dconjg(yup(34))*yup(34)) + dconjg(yup(35))*dotup(idc1,idc1)
4623      -     *yup(35)))/xup(2)
4624 c...helicity(20,4)=(-,-,-,-,+,+)

4625           bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4626 
4627 c...helicity(5,4)=(+,+,+,-,+,+)=helicity(33,1)(q_c1,q_c2,q_b1,q_b2,k_2,k_1)

4628         kk=5
4629           bfun(8,ii,kk)=(4*pmomup(5,idb1)*(2*dconjg(inpup(idk2,idk1))
4630      -     *dotup(idc1,idk1)*yup(27)*yup(28)*(yup(29) + yup(30)) + 
4631      -     dotup(idc1,idc1)*(-(dconjg(inpup(idb2,idq0))*(yup(9)*yup(13)
4632      -     *yup(19)+(yup(7)*yup(13)+yup(3)*(-yup(12)+yup(18)))*yup(31))
4633      -     ) - dconjg(inpup(idb1,idq0))*(yup(9)*yup(17)*yup(19) + 
4634      -     (yup(7)*yup(17) +yup(6)*(-yup(12) + yup(18)))*yup(31)))
4635      -     + dconjg(inpup(idq0,idc2))*dconjg(yup(34))*yup(9)*(yup(12)
4636      -     - yup(18))*(yup(20) + yup(39))))/xup(1)
4637 c...helicity(21,4)=(-,-,-,+,-,-)

4638         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4639 
4640 c...helicity(6,4)=(+,+,+,-,+,-)=helicity(35,1)(q_c1,q_c2,q_b1,q_b2,k_2,k_1)

4641         kk=6
4642         bfun(8,ii,kk)=(4*dconjg(yup(9))*pmomup(5,idb1)*(dotup(idc1,idc1)
4643      -     *(-(dconjg(inpup(idb2,idq0))*yup(13))-dconjg(inpup(idb1,idq0) 
4644      -     )*yup(17))*yup(19) -dconjg(inpup(idq0,idc2))*(2*
4645      -     dotup(idc1,idk1)*yup(14)*(yup(29)+yup(30))+(yup(12)-yup(18))*
4646      -     (yup(4)*(dconjg(yup(2))+yup(25))-dconjg(yup(34))*(yup(20) 
4647      -     + yup(39))))))/yup(8)
4648 c...helicity(22,4)=(-,-,-,+,-,+)

4649         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4650 
4651 c...helicity(7,4)=(+,+,+,-,-,+)=helicity(34,1)(q_c1,q_c2,q_b1,q_b2,k_2,k_1)

4652         kk=7
4653           bfun(8,ii,kk)=(4*pmomup(5,idb1)*((-dconjg(yup(12)) +
4654      -     dconjg(yup(18)))*dotup(idc1,idc1)*(-(dconjg(inpup(idb2,idq0)
4655      -     )*yup(3)) -dconjg(inpup(idb1,idq0))*yup(6))*yup(31) - 
4656      -     dconjg(inpup(idq0,idc2))*(-((dconjg(yup(10))+dconjg(yup(16)))
4657      -     *(dconjg(yup(18))*yup(9)*yup(14)+2*dotup(idc1,idk1)*yup(4) 
4658      -     *yup(27))) +(-dconjg(yup(12)) + dconjg(yup(18)))*
4659      -     dconjg(yup(34))*yup(9)*(yup(20)+yup(39)))))/dconjg(yup(8))
4660 c...helicity(23,4)=(-,-,-,+,+,-)

4661         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4662 
4663 c...helicity(8,4)=(+,+,+,-,-,-)=helicity(36,1)(q_c1,q_c2,q_b1,q_b2,k_2,k_1)

4664         kk=8
4665           bfun(8,ii,kk)=(-4*dconjg(inpup(idq0,idc2))*dconjg(yup(9))*
4666      -    (dconjg(yup(12)) - dconjg(yup(18)))*pmomup(5,idb1)*
4667      -    ((dconjg(yup(10)) + dconjg(yup(16)))*yup(14) + 
4668      -    yup(4)*(dconjg(yup(2)) + yup(25)) -dconjg(yup(34)) 
4669      -    *(yup(20) + yup(39))))/xup(2)
4670 c...helicity(24,4)=(-,-,-,+,+,+)

4671         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4672 
4673 c...helicity(9,4)=(+,-,-,+,+,+)=dconjg(helicity(12,1)(q_c1,q_c2,q_b1,q_b2,

4674 c...k_2,k_1))

4675         kk=9
4676           bfun(8,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*
4677      -     (dconjg(yup(4))*dconjg(yup(10))*dconjg(yup(12))* yup(14) -
4678      -     dconjg(yup(9))*dconjg(yup(10))*dconjg(yup(14))*yup(14) + 
4679      -     (dconjg(yup(4))*dconjg(yup(12)) - dconjg(yup(9))*
4680      -     dconjg(yup(14)))*dconjg(yup(16))*yup(14) +dconjg(yup(4)) 
4681      -     *dconjg(yup(12))*yup(4)*(dconjg(yup(2)) + yup(25)) + 
4682      -     dconjg(yup(9))*dconjg(yup(12))*yup(28)*yup(29) +
4683      -     dconjg(yup(9))*dconjg(yup(12))*yup(28)*yup(30) + 
4684      -     dconjg(yup(9))*dconjg(yup(12))*yup(27)*(yup(29)+yup(30))) + 
4685      -     4*dconjg(yup(18))*pmomup(5,idb1)*pmomup(5,idc1)*(
4686      -     dconjg(yup(4))*yup(4)*(dconjg(yup(2))+yup(25))+dconjg(yup(9))
4687      -     *(yup(27) + yup(28))*(yup(29) + yup(30))))/xup(2)
4688           bfun(8,ii,kk)=dconjg(bfun(8,ii,kk))
4689 c...helicity(25,4)=(-,+,+,-,-,-)

4690         bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4691 
4692 c...helicity(10,4)=(+,-,-,+,+,-)=dconjg(helicity(10,1)(q_c1,q_c2,q_b1,q_b2,

4693 c...k_2,k_1))

4694         kk=10
4695           bfun(8,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*yup(9)*
4696      -     (dconjg(yup(14))*(dconjg(yup(10))+dconjg(yup(16)))*yup(14)- 
4697      -     (dconjg(yup(12)) - dconjg(yup(18)))*(yup(29) + yup(30))*
4698      -     (yup(27) + yup(28) - yup(31))))/dconjg(yup(8))
4699           bfun(8,ii,kk)=dconjg(bfun(8,ii,kk))
4700 c...helicity(26,4)=(-,+,+,-,-,+)

4701         bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4702 
4703 c...helicity(11,4)=(+,-,-,+,-,+)=dconjg(helicity(11,1)(q_c1,q_c2,q_b1,q_b2,

4704 c...k_2,k_1))

4705         kk=11
4706           bfun(8,ii,kk)=(-4*pmomup(5,idb1)*pmomup(5,idc1)*(dconjg(yup(4))
4707      -     *yup(4)*(yup(12) - yup(18))*(dconjg(yup(2)) + yup(25)) + 
4708      -     (dconjg(yup(9))*yup(18)*yup(19) +(2*dconjg(yup(8))* 
4709      -     dotup(idc1,idk1) +dconjg(yup(9))*(yup(12) - yup(18)))*
4710      -     (yup(27) + yup(28)))*(yup(29) + yup(30))))/yup(8)
4711         bfun(8,ii,kk)=dconjg(bfun(8,ii,kk))
4712 c...helicity(27,4)=(-,+,+,-,+,-)

4713         bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4714 
4715 c...helicity(12,4)=(+,-,-,+,-,-)=dconjg(helicity(9,1)(q_c1,q_c2,q_b1,q_b2,

4716 c...k_2,k_1))

4717         kk=12
4718           bfun(8,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*yup(9)*
4719      -     (yup(12)-yup(18))*(yup(29)+ yup(30))*(yup(19) - yup(27) 
4720      -     -yup(28) + yup(31)))/xup(1)
4721         bfun(8,ii,kk)=dconjg(bfun(8,ii,kk))
4722 c...helicity(28,4)=(-,+,+,-,+,+)

4723         bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4724 
4725 c...helicity(13,4)=(+,-,-,-,+,+)=-dconjg(helicity(36,1)(q_c1,q_c2,q_b1,q_b2,k_2,k_1))

4726         kk=13
4727           bfun(8,ii,kk)=(-4*pmomup(5,idc1)*(dconjg(yup(9))*
4728      -     (dconjg(yup(10))*dconjg(yup(24)) -dconjg(yup(14))* 
4729      -     dotup(idb1,idb1))*inpup(idq0,idk2)*yup(14) +inpup(idq0,idk1)*
4730      -     (dotup(idb1,idb1)*(dconjg(yup(4))*(dconjg(yup(12)) -
4731      -     dconjg(yup(18)))*yup(4) + dconjg(yup(12))*dconjg(yup(14))
4732      -     *yup(14)) - dconjg(yup(24))*(dconjg(yup(10))*dconjg(yup(12))
4733      -     *yup(14)+(dconjg(yup(12))-dconjg(yup(18)))*yup(4)*yup(25)))+ 
4734      -     dconjg(yup(35))*(-2*dotup(idc1,idk1)*inpup(idk2,idk1)*yup(27)
4735      -     * yup(35) +dconjg(yup(9))*(dconjg(yup(12))-dconjg(yup(18)))*
4736      -     inpup(idq0,idb1)*(dconjg(yup(42)) + yup(36)))))/xup(2)
4737           bfun(8,ii,kk)=-dconjg(bfun(8,ii,kk))
4738 c...helicity(29,4)=(-,+,+,+,-,-)

4739         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4740 
4741 c...helicity(14,4)=(+,-,-,-,+,-)=-dconjg(helicity(34,1)(q_c1,q_c2,q_b1,q_b2,k_2,k_1))

4742         kk=14
4743           bfun(8,ii,kk)=(-4*pmomup(5,idc1)*yup(9)*(inpup(idq0,idk2)*
4744      -     ((dconjg(yup(10))*dconjg(yup(24)) - dconjg(yup(14))
4745      -     *dotup(idb1,idb1))*yup(14)+2*dconjg(yup(35))*dotup(idc1,idk1)
4746      -     *yup(35))+(dconjg(yup(12))-dconjg(yup(18)))*dconjg(yup(35))*
4747      -     (-(dconjg(yup(38))*inpup(idq0,idb1)) +inpup(idq0,idb1) 
4748      -     *(dconjg(yup(42)) + yup(36)))))/dconjg(yup(8))
4749           bfun(8,ii,kk)=-dconjg(bfun(8,ii,kk))
4750 c...helicity(30,4)=(-,+,+,+,-,+)

4751         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4752 
4753 c...helicity(15,4)=(+,-,-,-,-,+)=-dconjg(helicity(35,1)(q_c1,q_c2,q_b1,q_b2,k_2,k_1))

4754         kk=15
4755           bfun(8,ii,kk)=(-4*pmomup(5,idc1)*(inpup(idq0,idk1)*yup(4)
4756      -     *(yup(12) - yup(18))*(dconjg(yup(4))*dotup(idb1,idb1) - 
4757      -     dconjg(yup(24))*yup(25)) +2*dotup(idc1,idk1)*
4758      -     (-(inpup(idq0,idk1)*yup(16)*yup(27)*yup(29)) + 
4759      -     dconjg(yup(8))*dconjg(yup(35))*inpup(idq0,idb1)*yup(36)) + 
4760      -     dconjg(yup(9))*dconjg(yup(35))*(dconjg(yup(41))*
4761      -     inpup(idq0,idb1)*yup(18)+inpup(idq0,idb1)*(yup(12)-yup(18))*
4762      -     (dconjg(yup(42)) + yup(36)))))/yup(8)
4763           bfun(8,ii,kk)=-dconjg(bfun(8,ii,kk))
4764 c...helicity(31,4)=(-,+,+,+,+,-)

4765         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4766 
4767 c...helicity(16,4)=(+,-,-,-,-,-)=-dconjg(helicity(33,1)(q_c1,q_c2,q_b1,q_b2,k_2,k_1))

4768         kk=16
4769           bfun(8,ii,kk)=(-4*dconjg(yup(35))*pmomup(5,idc1)*yup(9)*
4770      -     (yup(12)-yup(18))*(-((dconjg(yup(38))+dconjg(yup(41)))*
4771      -     inpup(idq0,idb1)) + inpup(idq0,idb1)*(dconjg(yup(42)) +
4772      -     yup(36))))/xup(1)
4773           bfun(8,ii,kk)=-dconjg(bfun(8,ii,kk))
4774 c...helicity(32,4)=(-,+,+,+,+,+)

4775         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4776 
4777         if(ibcstate.eq.1) go to 1224
4778 
4779 c...helicity(33,4)=(+,+,-,+,+,+)=-dconjg(helicity(16,1)(q_c1,q_c2,q_b1,q_b2,k2,k1)

4780         kk=33
4781         bfun(8,ii,kk)=(-4*dconjg(inpup(idc1,idq0))*dconjg(yup(9))*
4782      -    (dconjg(yup(12))-dconjg(yup(18)))*pmomup(5,idb1)*(yup(23)+
4783      -     yup(24))*yup(34))/xup(2)
4784           bfun(8,ii,kk)=-dconjg(bfun(8,ii,kk))
4785 c...helicity(49,4)=(-,-,+,-,-,-)

4786         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4787 
4788 c...helicity(34,4)=(+,+,-,+,+,-)=-dconjg(helicity(14,1)(q_c1,q_c2,q_b1,q_b2,k2,k1)

4789         kk=34
4790         bfun(8,ii,kk)=(-4*(dconjg(yup(12)) - dconjg(yup(18)))*
4791      -     pmomup(5,idb1)*yup(9)*(yup(23) + yup(24))*
4792      -     (dconjg(inpup(idq0,idk1))*dconjg(yup(4)) + 
4793      -     dconjg(inpup(idc1,idq0))*yup(34)))/dconjg(yup(8))
4794           bfun(8,ii,kk)=-dconjg(bfun(8,ii,kk))
4795 c...helicity(50,4)=(-,-,+,-,-,+)

4796         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4797 
4798 c...helicity(35,4)=(+,+,-,+,-,+)=-dconjg(helicity(15,1)(q_c1,q_c2,q_b1,q_b2,k2,k1)

4799         kk=35
4800         bfun(8,ii,kk)=(4*pmomup(5,idb1)*(yup(23) + yup(24))*
4801      -     (dconjg(inpup(idq0,idk2))*(dconjg(yup(9))*dconjg(yup(14))
4802      -     *yup(18) +2*dconjg(yup(4))*dotup(idc1,idk1)*yup(27)) + 
4803      -     dconjg(inpup(idc1,idq0))*dconjg(yup(9))*(-yup(12)+yup(18))
4804      -     *yup(34)))/yup(8)
4805           bfun(8,ii,kk)=-dconjg(bfun(8,ii,kk))
4806 c...helicity(51,4)=(-,-,+,-,+,-)

4807         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4808 
4809 c...helicity(36,4)=(+,+,-,+,-,-)=-dconjg(helicity(13,1)(q_c1,q_c2,q_b1,q_b2)

4810         kk=36
4811         bfun(8,ii,kk)=(-4*pmomup(5,idb1)*yup(9)*(yup(12) - yup(18))*
4812      -     (yup(23)+yup(24))*(dconjg(inpup(idq0,idk1))*dconjg(yup(4))+ 
4813      -     dconjg(inpup(idq0,idk2))*dconjg(yup(14)) + 
4814      -     dconjg(inpup(idc1,idq0))*yup(34)))/xup(1)
4815           bfun(8,ii,kk)=-dconjg(bfun(8,ii,kk))
4816 c...helicity(52,4)=(-,-,+,-,+,+)

4817         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4818 
4819 c...helicity(37,4)=(+,+,-,-,+,+)=dconjg(helicity(40,1)(q_c1,q_c2,q_b1,q_b2)

4820         kk=37
4821           bfun(8,ii,kk)=(-4*dotup(idc1,idc1)*yup(30)*(dconjg(yup(9))*
4822      -     dconjg(yup(10))*yup(19) + (dconjg(yup(7))*dconjg(yup(10)) + 
4823      -     (-dconjg(yup(12)) + dconjg(yup(18)))*yup(25))*yup(31)) + 
4824      -     4*dconjg(yup(9))*(dconjg(yup(12)) - dconjg(yup(18)))*
4825      -     dconjg(yup(34))*dotup(idb1,idb1)*yup(34)+4*dconjg(yup(35))*
4826      -     (-2*dconjg(inpup(idb2,idq0))*dotup(idc1,idk1)*
4827      -     inpup(idk2,idk1)*yup(22)*yup(27) + dconjg(yup(9))*
4828      -     (-dconjg(yup(12)) + dconjg(yup(18)))*
4829      -     (dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
4830      -     yup(34) - dotup(idc1,idc1)*yup(35))))/xup(2)
4831         bfun(8,ii,kk)=dconjg(bfun(8,ii,kk))
4832 c...helicity(53,4)=(-,-,+,+,-,-)

4833         bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4834 
4835 c...helicity(38,4)=(+,+,-,-,+,-)=dconjg(helicity(38,1)(q_c1,q_c2,q_b1,q_b2,k2,k1)

4836         kk=38
4837         bfun(8,ii,kk)=(-4*yup(9)*((dconjg(yup(12)) - dconjg(yup(18)))*
4838      -     dotup(idb1,idb1)*(dconjg(yup(4))*yup(4) - dconjg(yup(34))
4839      -     *yup(34)) +dconjg(yup(35))*(-((dconjg(inpup(idb2,idk1))
4840      -     *dconjg(yup(4))*(-dconjg(yup(12)) + dconjg(yup(18))) - 
4841      -     2*dconjg(inpup(idb2,idq0))*dconjg(yup(14))*dotup(idc1,idk1))*
4842      -     inpup(idc2,idb1)) +dconjg(inpup(idc1,idb2))*(dconjg(yup(12))
4843      -     -dconjg(yup(18)))*inpup(idc2,idb1)*yup(34))+dotup(idc1,idc1)*
4844      -     (dconjg(yup(10))*yup(19)*yup(30) + (-dconjg(yup(12)) +
4845      -     dconjg(yup(18)))*dconjg(yup(35))*yup(35))))/dconjg(yup(8))
4846         bfun(8,ii,kk)=dconjg(bfun(8,ii,kk))
4847 c...helicity(54,4)=(-,-,+,+,-,+)

4848         bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4849 
4850 c...helicity(39,4)=(+,+,-,-,-,+)=dconjg(helicity(39,1)(q_c1,q_c2,q_b1,q_b2,k2,k1)

4851         kk=39
4852         bfun(8,ii,kk)=(4*(2*dconjg(yup(4))*dotup(idc1,idk1)*
4853      -     (dotup(idb1,idb1)*yup(14) - yup(16)*yup(23))*yup(27) +
4854      -     dconjg(yup(9))*(-(dconjg(yup(14))*yup(16)*yup(18)*yup(23)) + 
4855      -     dconjg(inpup(idc1,idb2))*dconjg(yup(35))*inpup(idc2,idb1)*
4856      -     (-yup(12) + yup(18))*yup(34) + dotup(idb1,idb1)*
4857      -     (dconjg(yup(14))*yup(14)*yup(18) +dconjg(yup(34))*(yup(12) 
4858      -     - yup(18))*yup(34))) + dotup(idc1,idc1)*(2*dconjg(yup(8))
4859      -     *dconjg(yup(35))*dotup(idc1,idk1)*yup(35)+(yup(12)-yup(18))*
4860      -     (yup(25)*yup(30)*yup(31) + dconjg(yup(9))*dconjg(yup(35))
4861      -     *yup(35)))))/yup(8)
4862           bfun(8,ii,kk)=dconjg(bfun(8,ii,kk))
4863 c...helicity(55,4)=(-,-,+,+,+,-)

4864         bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4865 
4866 c...helicity(40,4)=(+,+,-,-,-,-)=dconjg(helicity(37,1)(q_c1,q_c2,q_b1,q_b2,k2,k1)

4867         kk=40
4868         bfun(8,ii,kk)=(4*yup(9)*(yup(12) - yup(18))*
4869      -     (dconjg(yup(14))*yup(16)*yup(23) -dotup(idb1,idb1)*
4870      -     (dconjg(yup(4))*yup(4) + dconjg(yup(14))*yup(14) - 
4871      -     dconjg(yup(34))*yup(34)) +dconjg(yup(35))*
4872      -     (-(dconjg(inpup(idb2,idk1))*dconjg(yup(4))*inpup(idc2,idb1))- 
4873      -     dconjg(inpup(idc1,idb2))*inpup(idc2,idb1)*
4874      -     yup(34) + dotup(idc1,idc1)*yup(35))))/xup(1)
4875           bfun(8,ii,kk)=dconjg(bfun(8,ii,kk))
4876 c...helicity(56,4)=(-,-,+,+,+,+)

4877         bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4878 
4879 c...helicity(41,4)=(+,-,+,+,+,+)=helicity(5,1)(q_c1,q_c2,q_b1,q_b2,k2,k1)

4880         kk=41
4881         bfun(8,ii,kk)=(4*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk2))
4882      -     *dconjg(yup(14))*yup(9)*(dotup(idb1,idb1)*yup(14) - yup(16)
4883      -     *yup(23))) -dconjg(inpup(idq0,idk1))*(-(dconjg(yup(4))
4884      -     *dotup(idb1,idb1)*yup(4)*(yup(12)-yup(18)))-dconjg(yup(14)) 
4885      -     *yup(12)*(dotup(idb1,idb1)*yup(14) - yup(16)*yup(23)))-
4886      -     dconjg(yup(35))*((yup(12)-yup(18))*(dconjg(inpup(idb2,idk1))
4887      -     *yup(22)*yup(31)+dconjg(inpup(idb2,idq0))*yup(9)*(yup(22) +
4888      -     yup(32))) +2*dconjg(inpup(idk2,idk1))*dotup(idc1,idk1)*
4889      -     yup(27)*yup(35))))/xup(1)
4890 c...helicity(57,4)=(-,+,-,-,-,-)

4891         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4892 
4893 c...helicity(42,4)=(+,-,+,+,+,-)=helicity(7,1)(q_c1,q_c2,q_b1,q_b2,k2,k1)

4894         kk=42
4895         bfun(8,ii,kk)=(4*dconjg(yup(9))*pmomup(5,idc1)*
4896      -     (-(dconjg(inpup(idq0,idk2))*dconjg(yup(14))*(dotup(idb1,idb1)
4897      -     *yup(14) - yup(16)*yup(23)))+ dconjg(inpup(idb2,idq0))
4898      -     *dconjg(yup(35))*(-2*dotup(idc1,idk1)*yup(17)+(yup(12)-
4899      -     yup(18))*(yup(21)- yup(22) - yup(32)))))/yup(8)
4900 c...helicity(58,4)=(-,+,-,-,-,+)

4901         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4902 
4903 c...helicity(43,4)=(+,-,+,+,-,+)=helicity(6,1)(q_c1,q_c2,q_b1,q_b2,k2,k1)

4904         kk=43
4905         bfun(8,ii,kk)=(4*pmomup(5,idc1)*(-(dconjg(inpup(idq0,idk1))
4906      -     *dconjg(yup(4))*(-dconjg(yup(12)) + dconjg(yup(18)))*
4907      -     dotup(idb1,idb1)*yup(4)) - 2*dotup(idc1,idk1)*
4908      -     (dconjg(inpup(idb2,idq0))*dconjg(yup(35))*yup(8)*yup(22)+ 
4909      -     dconjg(inpup(idq0,idk1))*dconjg(yup(10))*yup(27)*yup(30)) - 
4910      -     dconjg(yup(35))*(dconjg(inpup(idb2,idk1))*(dconjg(yup(12))-
4911      -     dconjg(yup(18)))*yup(22)*yup(31) + dconjg(inpup(idb2,idq0))
4912      -     *yup(9)*(dconjg(yup(12))*(yup(22)+yup(32))-dconjg(yup(18))*
4913      -     (yup(22) - yup(26) + yup(32))))))/dconjg(yup(8))
4914 c...helicity(59,4)=(-,+,-,-,+,-)

4915         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4916 
4917 c...helicity(44,4)=(+,-,+,+,-,-)=helicity(8,1)(q_c1,q_c2,q_b1,q_b2)

4918         kk=44
4919         bfun(8,ii,kk)=(4*dconjg(inpup(idb2,idq0))*dconjg(yup(9))*
4920      -     (dconjg(yup(12)) - dconjg(yup(18)))*dconjg(yup(35))
4921      -     *pmomup(5,idc1)*(yup(21)-yup(22)+yup(26)-yup(32)))/xup(2)
4922 c...helicity(60,4)=(-,+,-,-,+,+)

4923         bfun(8,ii,kk+16)=-dconjg(bfun(8,ii,kk))
4924 
4925 c...helicity(45,4)=(+,-,+,-,+,+)=helicity(45,1)(q_c1,q_c2,q_b1,q_b2,k2,k1)

4926         kk=45
4927           bfun(8,ii,kk)=(4*pmomup(5,idb1)*pmomup(5,idc1)*
4928      -     (dconjg(inpup(idq0,idk2))*dconjg(yup(14))*
4929      -     (-(dconjg(inpup(idq0,idk2))*yup(9)) + 
4930      -     dconjg(inpup(idq0,idk1))*yup(12)) + 
4931      -     dconjg(inpup(idq0,idk1))**2*dconjg(yup(4))*
4932      -     (yup(12) - yup(18)))*(yup(23) + yup(24)))/xup(1)
4933 c...helicity(61,4)=(-,+,-,+,-,-)

4934         bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4935 
4936 c...helicity(46,4)=(+,-,+,-,+,-)=helicity(47,1)(q_c1,q_c2,q_b1,q_b2)

4937         kk=46
4938         bfun(8,ii,kk)=(-4*dconjg(inpup(idq0,idk2))**2*dconjg(yup(9))
4939      -     *dconjg(yup(14))*pmomup(5,idb1)*pmomup(5,idc1)*(yup(23) 
4940      -     + yup(24)))/yup(8)
4941 c...helicity(62,4)=(-,+,-,+,-,+)

4942         bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4943 
4944 c...helicity(47,4)=(+,-,+,-,-,+)=helicity(46)(q_c1,q_c2,q_b1,q_b2,k2,k1)

4945         kk=47
4946         bfun(8,ii,kk)=(4*dconjg(inpup(idq0,idk1))**2*dconjg(yup(4))
4947      -     *(dconjg(yup(12)) - dconjg(yup(18)))*pmomup(5,idb1)*
4948      -     pmomup(5,idc1)*(yup(23) + yup(24)))/dconjg(yup(8))
4949 c...helicity(63,4)=(-,+,-,+,+,-)

4950         bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4951 
4952 c...helicity(48,4)=(+,-,+,-,-,-)=helicity(48,1)(q_c1,q_c2,q_b1,q_b2,k2,k1)

4953         kk=48
4954           bfun(8,ii,kk)=0.0d0
4955 c...helicity(64,4)=(-,+,-,+,+,+)

4956         bfun(8,ii,kk+16)=dconjg(bfun(8,ii,kk))
4957 
4958 1224  continue
4959 
4960 c...relations from diagrams involving three gluon vertex.

4961        do kk=1,64
4962             bfun(7,1,kk)=-bfun(4,1,kk)+bfun(2,1,kk)+bfun(8,1,kk)-
4963      &          2*dotup(7,1)*(2*bfun(5,1,kk)-2*bfun(5,2,kk)+bfun(9,1,kk))
4964             bfun(7,2,kk)=-bfun(4,2,kk)+bfun(2,2,kk)+bfun(8,2,kk)-
4965      &          2*dotup(7,2)*(2*bfun(5,2,kk)-2*bfun(5,1,kk)+bfun(9,2,kk))
4966                 bfun(7,3,kk)=-bfun(4,3,kk)+bfun(2,3,kk)+bfun(8,3,kk)-
4967      &          2*dotup(4,1)*(2*bfun(5,3,kk)-2*bfun(5,4,kk)+bfun(9,3,kk))
4968                 bfun(7,4,kk)=-bfun(4,4,kk)+bfun(2,4,kk)+bfun(8,4,kk)-
4969      &          2*dotup(4,2)*(2*bfun(5,4,kk)-2*bfun(5,3,kk)+bfun(9,4,kk))
4970             bfun(6,1,kk)=bfun(7,1,kk)+2*dotup(5,2)*bfun(9,1,kk)-
4971      &          bfun(3,2,kk)+bfun(1,2,kk)
4972             bfun(6,2,kk)=bfun(7,2,kk)+2*dotup(5,1)*bfun(9,2,kk)-
4973      &          bfun(3,1,kk)+bfun(1,1,kk)
4974                 bfun(6,3,kk)=bfun(7,3,kk)+2*dotup(6,2)*bfun(9,3,kk)-
4975      &          bfun(3,4,kk)+bfun(1,4,kk)
4976                 bfun(6,4,kk)=bfun(7,4,kk)+2*dotup(6,1)*bfun(9,4,kk)-
4977      &          bfun(3,3,kk)+bfun(1,3,kk)
4978           end do
4979 
4980         end