54       COMMON / taubra / gamprt(30),jlist(30),nchan
 
   61       IF(nchan.LE.0.OR.nchan.GT.30) goto 902
 
   68       IF(rrr(1).LT.cumul(i)/cumul(nchan)) ji=i
 
   73  9020 
FORMAT(
' ----- JAKER: WRONG NCHAN')
 
   76       SUBROUTINE dekay(KTO,HX)
 
  108       COMMON / jaki   /  jak1,jak2,jakp,jakm,ktom
 
  114       COMMON /taupos/ np1,np2                
 
  115       COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
 
  116       REAL*4            gampmc    ,gamper
 
  117       parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
 
  121       COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
 
  124       CHARACTER names(nmode)*31
 
  125       COMMON / inout / inut,iout
 
  129       REAL  pdum1(4),pdum2(4),pdum3(4),pdum4(4),pdum5(4),hdum(4)
 
  143         IF (iwarm.EQ.1) x=5/(iwarm-1)
 
  145         WRITE(iout,7001) jak1,jak
 
  146         WRITE(iout,7002) iver
 
  150         IF(jak1.NE.-1.OR.jak2.NE.-1) 
THEN 
  151           CALL dadmel(-1,idum,hdum,pdum1,pdum2,pdum3,pdum4,pdum5)
 
  152           CALL dadmmu(-1,idum,hdum,pdum1,pdum2,pdum3,pdum4,pdum5)
 
  153           CALL dadmpi(-1,idum,hdum,pdum1,pdum2)
 
  154           CALL dadmro(-1,idum,hdum,pdum1,pdum2,pdum3,pdum4)
 
  155           CALL dadmaa(-1,idum,hdum,pdum1,pdum2,pdum3,pdum4,pdum5,jdum)
 
  156           CALL dadmkk(-1,idum,hdum,pdum1,pdum2)
 
  157           CALL dadmks(-1,idum,hdum,pdum1,pdum2,pdum3,pdum4,jdum)
 
  158           CALL dadnew(-1,idum,hdum,pdum1,pdum2,pdumx,jdum)
 
  164       ELSEIF(kto.EQ.1) 
THEN 
  168         IF(iwarm.EQ.0) goto 902
 
  176         CALL dekay1(0,h,isgn)
 
  177       ELSEIF(kto.EQ.2) 
THEN 
  181         IF(iwarm.EQ.0) goto 902
 
  189         CALL dekay2(0,h,isgn)
 
  190       ELSEIF(kto.EQ.11) 
THEN 
  195         CALL dekay1(1,h,isgn)
 
  196       ELSEIF(kto.EQ.12) 
THEN 
  201         CALL dekay2(1,h,isgn)
 
  202       ELSEIF(kto.EQ.100) 
THEN 
  204         IF(jak1.NE.-1.OR.jak2.NE.-1) 
THEN 
  205           CALL dadmel( 1,idum,hdum,pdum1,pdum2,pdum3,pdum4,pdum5)
 
  206           CALL dadmmu( 1,idum,hdum,pdum1,pdum2,pdum3,pdum4,pdum5)
 
  207           CALL dadmpi( 1,idum,hdum,pdum1,pdum2)
 
  208           CALL dadmro( 1,idum,hdum,pdum1,pdum2,pdum3,pdum4)
 
  209           CALL dadmaa( 1,idum,hdum,pdum1,pdum2,pdum3,pdum4,pdum5,jdum)
 
  210           CALL dadmkk( 1,idum,hdum,pdum1,pdum2)
 
  211           CALL dadmks( 1,idum,hdum,pdum1,pdum2,pdum3,pdum4,jdum)
 
  212           CALL dadnew( 1,idum,hdum,pdum1,pdum2,pdumx,jdum)
 
  213           WRITE(iout,7010) nev1,nev2,nevtot
 
  214           WRITE(iout,7011) (nevdec(i),gampmc(i),gamper(i),i= 1,7)
 
  216      $         (nevdec(i),gampmc(i),gamper(i),names(i-7),i=8,7+nmode)
 
  227  7001 
FORMAT(///1x,15(5h*****)
 
  228      $ /,
' *',     25x,
'*****TAUOLA LIBRARY: VERSION 2.9 ******',9x,1h*,
 
  229      $ /,
' *',     25x,
'***********October 2011 ***************',9x,1h*,
 
  230      $ /,
' *',     25x,
'**AUTHORS: S.JADACH, Z.WAS*************',9x,1h*,
 
  231      $ /,
' *',     25x,
'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9x,1h*,
 
  232      $ /,
' *',     25x,
'**AVAILABLE FROM: www.cern.ch/wasm**** ',9x,1h*,
 
  233      $ /,
' *',     25x,
'***** PUBLISHED IN COMP. PHYS. COMM.***',9x,1h*,
 
  234      $ /,
' *',     25x,
'0: Physics initialization  CLEO collab ',9x,1h*,
 
  235      $ /,
' *',     25x,
' see Alain Weinstein www home page:    ',9x,1h*,
 
  236      $ /,
' *',     25x,
'http://www.cithep.caltech.edu/~ajw/    ',9x,1h*,
 
  237      $ /,
' *',     25x,
'/korb_doc.html#files                   ',9x,1h*,
 
  238      $ /,
' *',     25x,
'1: Physics initialization RChL of:     ',9x,1h*,
 
  239      $ /,
' *',     25x,
' O. Shekhovtsova, T. Przedzinski,      ',9x,1h*,
 
  240      $ /,
' *',     25x,
' P. Roig and Z. Was                    ',9x,1h*,
 
  241      $ /,
' *',     25x,
' IFJPAN-2013-5, UAB-FT-731             ',9x,1h*,
 
  242      $ /,
' *',     25x,
'*******CPC 76 (1993) 361          *****',9x,1h*,
 
  243      $ /,
' *',     25x,
'**5 or more pi dec.: precision limited ',9x,1h*,
 
  244      $ /,
' *',     25x,
'****DEKAY ROUTINE: INITIALIZATION******',9x,1h*,
 
  245      $ /,
' *',i20  ,5x,
'JAK1   = DECAY MODE TAU+               ',9x,1h*,
 
  246      $ /,
' *',i20  ,5x,
'JAK2   = DECAY MODE TAU-               ',9x,1h*,
 
  248  7002 
FORMAT(
' *',i20  ,5x,
'IVER   = hadronic current version  ',9x,1h*)
 
  249  7010 
FORMAT(///1x,15(5h*****)
 
  250      $ /,
' *',     25x,
'*****TAUOLA LIBRARY: VERSION 2.9 ******',9x,1h*,
 
  251      $ /,
' *',     25x,
'***********October 2011 ***************',9x,1h*,
 
  252      $ /,
' *',     25x,
'**AUTHORS: S.JADACH, Z.WAS*************',9x,1h*,
 
  253      $ /,
' *',     25x,
'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9x,1h*,
 
  254      $ /,
' *',     25x,
'**AVAILABLE FROM: www.cern.ch/wasm ****',9x,1h*,
 
  255      $ /,
' *',     25x,
'***** PUBLISHED IN COMP. PHYS. COMM.***',9x,1h*,
 
  256      $ /,
' *',     25x,
'******* 64 (1990) 275             *****',9x,1h*,
 
  257      $ /,
' *',     25x,
'******* 70 (1992) 69              *****',9x,1h*,
 
  258      $ /,
' *',     25x,
'******* 76 (1993) 361             *****',9x,1h*,
 
  259      $ /,
' *',     25x,
'******* IFJPAN-2013-5, UAB-FT-731    **',9x,1h*,
 
  260      $ /,
' *',     25x,
'*****DEKAY ROUTINE: FINAL REPORT*******',9x,1h*,
 
  261      $ /,
' *',i20  ,5x,
'NEV1   = NO. OF TAU+ DECS. ACCEPTED    ',9x,1h*,
 
  262      $ /,
' *',i20  ,5x,
'NEV2   = NO. OF TAU- DECS. ACCEPTED    ',9x,1h*,
 
  263      $ /,
' *',i20  ,5x,
'NEVTOT = SUM                           ',9x,1h*,
 
  265      $   
' PART.WIDTH     ERROR       ROUTINE    DECAY MODE    ',9x,1h*)
 
  267      $       ,i10,2f12.7       ,
'     DADMEL     ELECTRON      ',9x,1h*
 
  268      $ /,
' *',i10,2f12.7       ,
'     DADMMU     MUON          ',9x,1h*
 
  269      $ /,
' *',i10,2f12.7       ,
'     DADMPI     PION          ',9x,1h*
 
  270      $ /,
' *',i10,2f12.7,       
'     DADMRO     RHO (->2PI)   ',9x,1h*
 
  271      $ /,
' *',i10,2f12.7,       
'     DADMAA     A1  (->3PI)   ',9x,1h*
 
  272      $ /,
' *',i10,2f12.7,       
'     DADMKK     KAON          ',9x,1h*
 
  273      $ /,
' *',i10,2f12.7,       
'     DADMKS     K*            ',9x,1h*)
 
  275      $       ,i10,2f12.7,a31                                    ,8x,1h*)
 
  277      $       ,20x,
'THE ERROR IS RELATIVE AND  PART.WIDTH      ',10x,1h*
 
  278      $ /,
' *',20x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3       ',10x,1h*
 
  281  9020 
FORMAT(
' ----- DEKAY: LACK OF INITIALISATION')
 
  284  9100 
FORMAT(
' ----- DEKAY: WRONG VALUE OF KTO ')
 
  287       SUBROUTINE dekay1(IMOD,HH,ISGN)
 
  290       COMMON / decp4 / pp1(4),pp2(4),kf1,kf2
 
  291       COMMON / jaki   /  jak1,jak2,jakp,jakm,ktom
 
  292       COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
 
  293       REAL*4            gampmc    ,gamper
 
  295       REAL  hv(4),pnu(4),ppi(4)
 
  296       REAL  pwb(4),pmu(4),pnm(4)
 
  297       REAL  prho(4),pic(4),piz(4)
 
  298       REAL  paa(4),pim1(4),pim2(4),pipl(4)
 
  305       IF(jak1.EQ.-1) 
RETURN 
  310       IF(jak1.EQ.0) CALL jaker(jak)
 
  312         CALL dadmel(0, isgn,hv,pnu,pwb,pmu,pnm,phot)
 
  313       ELSEIF(jak.EQ.2) 
THEN 
  314         CALL dadmmu(0, isgn,hv,pnu,pwb,pmu,pnm,phot)
 
  315       ELSEIF(jak.EQ.3) 
THEN 
  316         CALL dadmpi(0, isgn,hv,ppi,pnu)
 
  317       ELSEIF(jak.EQ.4) 
THEN 
  318         CALL dadmro(0, isgn,hv,pnu,prho,pic,piz)
 
  319       ELSEIF(jak.EQ.5) 
THEN 
  320         CALL dadmaa(0, isgn,hv,pnu,paa,pim1,pim2,pipl,jaa)
 
  321       ELSEIF(jak.EQ.6) 
THEN 
  322         CALL dadmkk(0, isgn,hv,pkk,pnu)
 
  323       ELSEIF(jak.EQ.7) 
THEN 
  324         CALL dadmks(0, isgn,hv,pnu,pks ,pkk,ppi,jkst)
 
  326         CALL dadnew(0, isgn,hv,pnu,pwb,pnpi,jak-7)
 
  332       ELSEIF(imd.EQ.1) 
THEN 
  336            nevdec(jak)=nevdec(jak)+1
 
  341         CALL dwluel(1,isgn,pnu,pwb,pmu,pnm)
 
  342         CALL dwrph(ktom,phot)
 
  346       ELSEIF(jak.EQ.2) 
THEN 
  347         CALL dwlumu(1,isgn,pnu,pwb,pmu,pnm)
 
  348         CALL dwrph(ktom,phot)
 
  352       ELSEIF(jak.EQ.3) 
THEN 
  353         CALL dwlupi(1,isgn,ppi,pnu)
 
  357       ELSEIF(jak.EQ.4) 
THEN 
  358         CALL dwluro(1,isgn,pnu,prho,pic,piz)
 
  362       ELSEIF(jak.EQ.5) 
THEN 
  363         CALL dwluaa(1,isgn,pnu,paa,pim1,pim2,pipl,jaa)
 
  366       ELSEIF(jak.EQ.6) 
THEN 
  367         CALL dwlukk(1,isgn,pkk,pnu)
 
  370       ELSEIF(jak.EQ.7) 
THEN 
  371         CALL dwluks(1,isgn,pnu,pks,pkk,ppi,jkst)
 
  376         CALL dwlnew(1,isgn,pnu,pwb,pnpi,jak)
 
  384       SUBROUTINE dekay2(IMOD,HH,ISGN)
 
  387       COMMON / decp4 / pp1(4),pp2(4),kf1,kf2
 
  388       COMMON / jaki   /  jak1,jak2,jakp,jakm,ktom
 
  389       COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
 
  390       REAL*4            gampmc    ,gamper
 
  392       REAL  hv(4),pnu(4),ppi(4)
 
  393       REAL  pwb(4),pmu(4),pnm(4)
 
  394       REAL  prho(4),pic(4),piz(4)
 
  395       REAL  paa(4),pim1(4),pim2(4),pipl(4)
 
  402       IF(jak2.EQ.-1) 
RETURN 
  407       IF(jak2.EQ.0) CALL jaker(jak)
 
  409         CALL dadmel(0, isgn,hv,pnu,pwb,pmu,pnm,phot)
 
  410       ELSEIF(jak.EQ.2) 
THEN 
  411         CALL dadmmu(0, isgn,hv,pnu,pwb,pmu,pnm,phot)
 
  412       ELSEIF(jak.EQ.3) 
THEN 
  413         CALL dadmpi(0, isgn,hv,ppi,pnu)
 
  414       ELSEIF(jak.EQ.4) 
THEN 
  415         CALL dadmro(0, isgn,hv,pnu,prho,pic,piz)
 
  416       ELSEIF(jak.EQ.5) 
THEN 
  417         CALL dadmaa(0, isgn,hv,pnu,paa,pim1,pim2,pipl,jaa)
 
  418       ELSEIF(jak.EQ.6) 
THEN 
  419         CALL dadmkk(0, isgn,hv,pkk,pnu)
 
  420       ELSEIF(jak.EQ.7) 
THEN 
  421         CALL dadmks(0, isgn,hv,pnu,pks ,pkk,ppi,jkst)
 
  423         CALL dadnew(0, isgn,hv,pnu,pwb,pnpi,jak-7)
 
  428       ELSEIF(imd.EQ.1) 
THEN 
  432            nevdec(jak)=nevdec(jak)+1
 
  437         CALL dwluel(2,isgn,pnu,pwb,pmu,pnm)
 
  438         CALL dwrph(ktom,phot)
 
  442       ELSEIF(jak.EQ.2) 
THEN 
  443         CALL dwlumu(2,isgn,pnu,pwb,pmu,pnm)
 
  444         CALL dwrph(ktom,phot)
 
  448       ELSEIF(jak.EQ.3) 
THEN 
  449         CALL dwlupi(2,isgn,ppi,pnu)
 
  453       ELSEIF(jak.EQ.4) 
THEN 
  454         CALL dwluro(2,isgn,pnu,prho,pic,piz)
 
  458       ELSEIF(jak.EQ.5) 
THEN 
  459         CALL dwluaa(2,isgn,pnu,paa,pim1,pim2,pipl,jaa)
 
  462       ELSEIF(jak.EQ.6) 
THEN 
  463         CALL dwlukk(2,isgn,pkk,pnu)
 
  466       ELSEIF(jak.EQ.7) 
THEN 
  467         CALL dwluks(2,isgn,pnu,pks,pkk,ppi,jkst)
 
  472         CALL dwlnew(2,isgn,pnu,pwb,pnpi,jak)
 
  480       SUBROUTINE dexay(KTO,POL)
 
  494       COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
 
  495       REAL*4            gampmc    ,gamper
 
  496       COMMON / jaki   /  jak1,jak2,jakp,jakm,ktom
 
  498       COMMON /taupos/ np1,np2                
 
  499       parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
 
  500       COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
 
  502       CHARACTER names(nmode)*31
 
  503       COMMON / inout / inut,iout
 
  508       REAL  pdum1(4),pdum2(4),pdum3(4),pdum4(4),pdum5(4)
 
  522         WRITE(iout, 7001) jak1,jak2
 
  523         WRITE(iout,7002) iver
 
  527         IF(jak1.NE.-1.OR.jak2.NE.-1) 
THEN 
  528           CALL dexel(-1,idum,pdum,pdum1,pdum2,pdum3,pdum4,pdum5)
 
  529           CALL dexmu(-1,idum,pdum,pdum1,pdum2,pdum3,pdum4,pdum5)
 
  530           CALL dexpi(-1,idum,pdum,pdum1,pdum2)
 
  531           CALL dexro(-1,idum,pdum,pdum1,pdum2,pdum3,pdum4)
 
  532           CALL dexaa(-1,idum,pdum,pdum1,pdum2,pdum3,pdum4,pdum5,idum)
 
  533           CALL dexkk(-1,idum,pdum,pdum1,pdum2)
 
  534           CALL dexks(-1,idum,pdum,pdum1,pdum2,pdum3,pdum4,idum)
 
  535           CALL dexnew(-1,idum,pdum,pdum1,pdum2,pdumi,idum)
 
  541       ELSEIF(kto.EQ.1) 
THEN 
  546         IF(iwarm.EQ.0) goto 902
 
  549         CALL dexay1(kto,jak1,jakp,pol,isgn)
 
  550       ELSEIF(kto.EQ.2) 
THEN 
  555         IF(iwarm.EQ.0) goto 902
 
  556         isgn=-idff/iabs(idff)
 
  558         CALL dexay1(kto,jak2,jakm,pol,isgn)
 
  559       ELSEIF(kto.EQ.100) 
THEN 
  561         IF(jak1.NE.-1.OR.jak2.NE.-1) 
THEN 
  562           CALL dexel( 1,idum,pdum,pdum1,pdum2,pdum3,pdum4,pdum5)
 
  563           CALL dexmu( 1,idum,pdum,pdum1,pdum2,pdum3,pdum4,pdum5)
 
  564           CALL dexpi( 1,idum,pdum,pdum1,pdum2)
 
  565           CALL dexro( 1,idum,pdum,pdum1,pdum2,pdum3,pdum4)
 
  566           CALL dexaa( 1,idum,pdum,pdum1,pdum2,pdum3,pdum4,pdum5,idum)
 
  567           CALL dexkk( 1,idum,pdum,pdum1,pdum2)
 
  568           CALL dexks( 1,idum,pdum,pdum1,pdum2,pdum3,pdum4,idum)
 
  569           CALL dexnew( 1,idum,pdum,pdum1,pdum2,pdumi,idum)
 
  570           WRITE(iout,7010) nev1,nev2,nevtot
 
  571           WRITE(iout,7011) (nevdec(i),gampmc(i),gamper(i),i= 1,7)
 
  573      $         (nevdec(i),gampmc(i),gamper(i),names(i-7),i=8,7+nmode)
 
  580  7001 
FORMAT(///1x,15(5h*****)
 
  581      $ /,
' *',     25x,
'*****TAUOLA LIBRARY: VERSION 2.9 ******',9x,1h*,
 
  582      $ /,
' *',     25x,
'***********October  2011***************',9x,1h*,
 
  583      $ /,
' *',     25x,
'**AUTHORS: S.JADACH, Z.WAS*************',9x,1h*,
 
  584      $ /,
' *',     25x,
'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9x,1h*,
 
  585      $ /,
' *',     25x,
'**AVAILABLE FROM: www.cern.ch/wasm****',9x,1h*,
 
  586      $ /,
' *',     25x,
'***** PUBLISHED IN COMP. PHYS. COMM.***',9x,1h*,
 
  587      $ /,
' *',     25x,
'0: Physics initialization  CLEO collab ',9x,1h*,
 
  588      $ /,
' *',     25x,
' see Alain Weinstein www home page:    ',9x,1h*,
 
  589      $ /,
' *',     25x,
'http://www.cithep.caltech.edu/~ajw/    ',9x,1h*,
 
  590      $ /,
' *',     25x,
'/korb_doc.html#files                   ',9x,1h*,
 
  591      $ /,
' *',     25x,
'1: Physics initialization RChL of:     ',9x,1h*,
 
  592      $ /,
' *',     25x,
' O. Shekhovtsova, T. Przedzinski,      ',9x,1h*,
 
  593      $ /,
' *',     25x,
' P. Roig and Z. Was                    ',9x,1h*,
 
  594      $ /,
' *',     25x,
' IFJPAN-2013-5, UAB-FT-731             ',9x,1h*,
 
  595      $ /,
' *',     25x,
'****** CPC 76 (1993) 361         ******',9x,1h*,
 
  596      $ /,
' *',     25x,
'**5 or more pi dec.: precision limited ',9x,1h*,
 
  597      $ /,
' *',     25x,
'******DEXAY ROUTINE: INITIALIZATION****',9x,1h*
 
  598      $ /,
' *',i20  ,5x,
'JAK1   = DECAY MODE FERMION1 (TAU+)    ',9x,1h*
 
  599      $ /,
' *',i20  ,5x,
'JAK2   = DECAY MODE FERMION2 (TAU-)    ',9x,1h*
 
  601  7002 
FORMAT(
' *',i20  ,5x,
'IVER   = hadronic current version  ',9x,1h*)
 
  604  7010 
FORMAT(///1x,15(5h*****)
 
  605      $ /,
' *',     25x,
'*****TAUOLA LIBRARY: VERSION 2.9 ******',9x,1h*,
 
  606      $ /,
' *',     25x,
'***********October   2011***************',9x,1h*,
 
  607      $ /,
' *',     25x,
'**AUTHORS: S.JADACH, Z.WAS*************',9x,1h*,
 
  608      $ /,
' *',     25x,
'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9x,1h*,
 
  609      $ /,
' *',     25x,
'**AVAILABLE FROM: www.cern.ch/wasm ****',9x,1h*,
 
  610      $ /,
' *',     25x,
'***** PUBLISHED IN COMP. PHYS. COMM.***',9x,1h*,
 
  611      $ /,
' *',     25x,
'******* 64 (1990) 275             *****',9x,1h*,
 
  612      $ /,
' *',     25x,
'******* 70 (1992) 69              *****',9x,1h*,
 
  613      $ /,
' *',     25x,
'******* 76 (1993) 361             *****',9x,1h*,
 
  614      $ /,
' *',     25x,
'******* IFJPAN-2013-5, UAB-FT-731   **',9x,1h*,
 
  615      $ /,
' *',     25x,
'******DEXAY ROUTINE: FINAL REPORT******',9x,1h*
 
  616      $ /,
' *',i20  ,5x,
'NEV1   = NO. OF TAU+ DECS. ACCEPTED    ',9x,1h*
 
  617      $ /,
' *',i20  ,5x,
'NEV2   = NO. OF TAU- DECS. ACCEPTED    ',9x,1h*
 
  618      $ /,
' *',i20  ,5x,
'NEVTOT = SUM                           ',9x,1h*
 
  620      $   
' PART.WIDTH     ERROR       ROUTINE    DECAY MODE    ',9x,1h*)
 
  622      $       ,i10,2f12.7       ,
'     DADMEL     ELECTRON      ',9x,1h*
 
  623      $ /,
' *',i10,2f12.7       ,
'     DADMMU     MUON          ',9x,1h*
 
  624      $ /,
' *',i10,2f12.7       ,
'     DADMPI     PION          ',9x,1h*
 
  625      $ /,
' *',i10,2f12.7,       
'     DADMRO     RHO (->2PI)   ',9x,1h*
 
  626      $ /,
' *',i10,2f12.7,       
'     DADMAA     A1  (->3PI)   ',9x,1h*
 
  627      $ /,
' *',i10,2f12.7,       
'     DADMKK     KAON          ',9x,1h*
 
  628      $ /,
' *',i10,2f12.7,       
'     DADMKS     K*            ',9x,1h*)
 
  630      $       ,i10,2f12.7,a31                                    ,8x,1h*)
 
  632      $       ,20x,
'THE ERROR IS RELATIVE AND  PART.WIDTH      ',10x,1h*
 
  633      $ /,
' *',20x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3       ',10x,1h*
 
  635  902  
WRITE(iout, 9020)
 
  636  9020 
FORMAT(
' ----- DEXAY: LACK OF INITIALISATION')
 
  638  910  
WRITE(iout, 9100)
 
  639  9100 
FORMAT(
' ----- DEXAY: WRONG VALUE OF KTO ')
 
  642       SUBROUTINE dexay1(KTO,JAKIN,JAK,POL,ISGN)
 
  648       COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
 
  649       REAL*4            gampmc    ,gamper
 
  650       COMMON / inout / inut,iout
 
  653       REAL  prho(4),pic(4),piz(4)
 
  654       REAL  pwb(4),pmu(4),pnm(4)
 
  655       REAL  paa(4),pim1(4),pim2(4),pipl(4)
 
  661       IF(jakin.EQ.-1) 
RETURN 
  668       IF(jak.EQ.0) CALL jaker(jak)
 
  671         CALL dexel(0, isgn,polar,pnu,pwb,pmu,pnm,phot)
 
  672         CALL dwluel(kto,isgn,pnu,pwb,pmu,pnm)
 
  673         CALL dwrph(kto,phot )
 
  674       ELSEIF(jak.EQ.2) 
THEN 
  675         CALL dexmu(0, isgn,polar,pnu,pwb,pmu,pnm,phot)
 
  676         CALL dwlumu(kto,isgn,pnu,pwb,pmu,pnm)
 
  677         CALL dwrph(kto,phot )
 
  678       ELSEIF(jak.EQ.3) 
THEN 
  679         CALL dexpi(0, isgn,polar,ppi,pnu)
 
  680         CALL dwlupi(kto,isgn,ppi,pnu)
 
  681       ELSEIF(jak.EQ.4) 
THEN 
  682         CALL dexro(0, isgn,polar,pnu,prho,pic,piz)
 
  683         CALL dwluro(kto,isgn,pnu,prho,pic,piz)
 
  684       ELSEIF(jak.EQ.5) 
THEN 
  685         CALL dexaa(0, isgn,polar,pnu,paa,pim1,pim2,pipl,jaa)
 
  686         CALL dwluaa(kto,isgn,pnu,paa,pim1,pim2,pipl,jaa)
 
  687       ELSEIF(jak.EQ.6) 
THEN 
  688         CALL dexkk(0, isgn,polar,pkk,pnu)
 
  689         CALL dwlukk(kto,isgn,pkk,pnu)
 
  690       ELSEIF(jak.EQ.7) 
THEN 
  691         CALL dexks(0, isgn,polar,pnu,pks,pkk,ppi,jkst)
 
  692         CALL dwluks(kto,isgn,pnu,pks,pkk,ppi,jkst)
 
  695         CALL dexnew(0, isgn,polar,pnu,pwb,pnpi,jnpi)
 
  696         CALL dwlnew(kto,isgn,pnu,pwb,pnpi,jak)
 
  698       nevdec(jak)=nevdec(jak)+1
 
  700       SUBROUTINE dexel(MODE,ISGN,POL,PNU,PWB,Q1,Q2,PH)
 
  707       REAL  pol(4),hv(4),pwb(4),pnu(4),q1(4),q2(4),ph(4),rn(1)
 
  713         CALL dadmel( -1,isgn,hv,pnu,pwb,q1,q2,ph)
 
  716       ELSEIF(mode.EQ. 0) 
THEN 
  719         IF(iwarm.EQ.0) goto 902
 
  720         CALL dadmel(  0,isgn,hv,pnu,pwb,q1,q2,ph)
 
  721         wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
 
  724         IF(rn(1).GT.wt) goto 300
 
  726       ELSEIF(mode.EQ. 1) 
THEN 
  728         CALL dadmel(  1,isgn,hv,pnu,pwb,q1,q2,ph)
 
  734  9020 
FORMAT(
' ----- DEXEL: LACK OF INITIALISATION')
 
  737       SUBROUTINE dexmu(MODE,ISGN,POL,PNU,PWB,Q1,Q2,PH)
 
  746       COMMON / inout / inut,iout
 
  747       REAL  pol(4),hv(4),pwb(4),pnu(4),q1(4),q2(4),ph(4),rn(1)
 
  753         CALL dadmmu( -1,isgn,hv,pnu,pwb,q1,q2,ph)
 
  756       ELSEIF(mode.EQ. 0) 
THEN 
  759         IF(iwarm.EQ.0) goto 902
 
  760         CALL dadmmu(  0,isgn,hv,pnu,pwb,q1,q2,ph)
 
  761         wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
 
  764         IF(rn(1).GT.wt) goto 300
 
  766       ELSEIF(mode.EQ. 1) 
THEN 
  768         CALL dadmmu(  1,isgn,hv,pnu,pwb,q1,q2,ph)
 
  773  902  
WRITE(iout, 9020)
 
  774  9020 
FORMAT(
' ----- DEXMU: LACK OF INITIALISATION')
 
  777       SUBROUTINE dadmel(MODE,ISGN,HHV,PNU,PWB,Q1,Q2,PHX)
 
  782       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
  783       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
  784       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
  785      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
  786      *                 ,amk,amkz,amkst,gamkst
 
  788       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
  789      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
  790      *                 ,amk,amkz,amkst,gamkst
 
  791       COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
 
  792       REAL*4            gampmc    ,gamper
 
  794       COMMON / inout / inut,iout
 
  795       REAL  hhv(4),hv(4),pwb(4),pnu(4),q1(4),q2(4)
 
  796       REAL  pdum1(4),pdum2(4),pdum3(4),pdum4(4),pdum5(4)
 
  799       DATA pi /3.141592653589793238462643/
 
  812         CALL dphsel(wt,hv,pdum1,pdum2,pdum3,pdum4,pdum5)
 
  813         IF(wt.GT.wtmax/1.2) wtmax=wt*1.2
 
  817       ELSEIF(mode.EQ. 0) 
THEN 
  820         IF(iwarm.EQ.0) goto 902
 
  822         CALL dphsel(wt,hv,pnu,pwb,q1,q2,phx)
 
  828         IF(wt.GT.wtmax) nevovr=nevovr+1
 
  829         IF(rn*wtmax.GT.wt) goto 300
 
  836         CALL rotor2(thet,pnu,pnu)
 
  837         CALL rotor3( phi,pnu,pnu)
 
  838         CALL rotor2(thet,pwb,pwb)
 
  839         CALL rotor3( phi,pwb,pwb)
 
  840         CALL rotor2(thet,q1,q1)
 
  841         CALL rotor3( phi,q1,q1)
 
  842         CALL rotor2(thet,q2,q2)
 
  843         CALL rotor3( phi,q2,q2)
 
  844         CALL rotor2(thet,hv,hv)
 
  845         CALL rotor3( phi,hv,hv)
 
  846         CALL rotor2(thet,phx,phx)
 
  847         CALL rotor3( phi,phx,phx)
 
  849  44     hhv(i)=-isgn*hv(i)
 
  852       ELSEIF(mode.EQ. 1) 
THEN 
  854         IF(nevraw.EQ.0) 
RETURN 
  855         pargam=swt/float(nevraw+1)
 
  857         IF(nevraw.NE.0) error=sqrt(sswt/swt**2-1./float(nevraw))
 
  859         WRITE(iout, 7010) nevraw,nevacc,nevovr,pargam,rat,error
 
  867  7010 
FORMAT(///1x,15(5h*****)
 
  868      $ /,
' *',     25x,
'******** DADMEL FINAL REPORT  ******** ',9x,1h*
 
  869      $ /,
' *',i20  ,5x,
'NEVRAW = NO. OF EL  DECAYS TOTAL       ',9x,1h*
 
  870      $ /,
' *',i20  ,5x,
'NEVACC = NO. OF EL   DECS. ACCEPTED    ',9x,1h*
 
  871      $ /,
' *',i20  ,5x,
'NEVOVR = NO. OF OVERWEIGHTED EVENTS    ',9x,1h*
 
  872      $ /,
' *',e20.5,5x,
'PARTIAL WTDTH ( ELECTRON) IN GEV UNITS ',9x,1h*
 
  873      $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3   ',9x,1h*
 
  874      $ /,
' *',f20.9,5x,
'RELATIVE ERROR OF PARTIAL WIDTH        ',9x,1h*
 
  875      $ /,
' *',25x,     
'COMPLETE QED CORRECTIONS INCLUDED      ',9x,1h*
 
  876      $ /,
' *',25x,     
'BUT ONLY V-A CUPLINGS                  ',9x,1h*
 
  878  902  
WRITE(iout, 9020)
 
  879  9020 
FORMAT(
' ----- DADMEL: LACK OF INITIALISATION')
 
  882       SUBROUTINE dadmmu(MODE,ISGN,HHV,PNU,PWB,Q1,Q2,PHX)
 
  884       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
  885      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
  886      *                 ,amk,amkz,amkst,gamkst
 
  888       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
  889      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
  890      *                 ,amk,amkz,amkst,gamkst
 
  891       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
  892       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
  893       COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
 
  894       REAL*4            gampmc    ,gamper
 
  895       COMMON / inout / inut,iout
 
  897       REAL  hhv(4),hv(4),pnu(4),pwb(4),q1(4),q2(4)
 
  898       REAL  pdum1(4),pdum2(4),pdum3(4),pdum4(4),pdum5(4)
 
  901       DATA pi /3.141592653589793238462643/
 
  914         CALL dphsmu(wt,hv,pdum1,pdum2,pdum3,pdum4,pdum5)
 
  915         IF(wt.GT.wtmax/1.2) wtmax=wt*1.2
 
  919       ELSEIF(mode.EQ. 0) 
THEN 
  922         IF(iwarm.EQ.0) goto 902
 
  924         CALL dphsmu(wt,hv,pnu,pwb,q1,q2,phx)
 
  930         IF(wt.GT.wtmax) nevovr=nevovr+1
 
  931         IF(rn*wtmax.GT.wt) goto 300
 
  936         CALL rotor2(thet,pnu,pnu)
 
  937         CALL rotor3( phi,pnu,pnu)
 
  938         CALL rotor2(thet,pwb,pwb)
 
  939         CALL rotor3( phi,pwb,pwb)
 
  940         CALL rotor2(thet,q1,q1)
 
  941         CALL rotor3( phi,q1,q1)
 
  942         CALL rotor2(thet,q2,q2)
 
  943         CALL rotor3( phi,q2,q2)
 
  944         CALL rotor2(thet,hv,hv)
 
  945         CALL rotor3( phi,hv,hv)
 
  946         CALL rotor2(thet,phx,phx)
 
  947         CALL rotor3( phi,phx,phx)
 
  949  44     hhv(i)=-isgn*hv(i)
 
  952       ELSEIF(mode.EQ. 1) 
THEN 
  954         IF(nevraw.EQ.0) 
RETURN 
  955         pargam=swt/float(nevraw+1)
 
  957         IF(nevraw.NE.0) error=sqrt(sswt/swt**2-1./float(nevraw))
 
  959         WRITE(iout, 7010) nevraw,nevacc,nevovr,pargam,rat,error
 
  967  7010 
FORMAT(///1x,15(5h*****)
 
  968      $ /,
' *',     25x,
'******** DADMMU FINAL REPORT  ******** ',9x,1h*
 
  969      $ /,
' *',i20  ,5x,
'NEVRAW = NO. OF MU  DECAYS TOTAL       ',9x,1h*
 
  970      $ /,
' *',i20  ,5x,
'NEVACC = NO. OF MU   DECS. ACCEPTED    ',9x,1h*
 
  971      $ /,
' *',i20  ,5x,
'NEVOVR = NO. OF OVERWEIGHTED EVENTS    ',9x,1h*
 
  972      $ /,
' *',e20.5,5x,
'PARTIAL WTDTH (MU  DECAY) IN GEV UNITS ',9x,1h*
 
  973      $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3   ',9x,1h*
 
  974      $ /,
' *',f20.9,5x,
'RELATIVE ERROR OF PARTIAL WIDTH        ',9x,1h*
 
  975      $ /,
' *',25x,     
'COMPLETE QED CORRECTIONS INCLUDED      ',9x,1h*
 
  976      $ /,
' *',25x,     
'BUT ONLY V-A CUPLINGS                  ',9x,1h*
 
  978  902  
WRITE(iout, 9020)
 
  979  9020 
FORMAT(
' ----- DADMMU: LACK OF INITIALISATION')
 
  982       SUBROUTINE dphsel(DGAMX,HVX,XNX,PAAX,QPX,XAX,PHX)
 
  988       REAL*4  hvx(4),paax(4),xax(4),qpx(4),xnx(4)
 
  989       REAL*8  hv(4),ph(4),paa(4),xa(4),qp(4),xn(4)
 
  992       CALL drcmu(dgamt,hv,ph,paa,xa,qp,xn,ielmu)
 
 1003       SUBROUTINE dphsmu(DGAMX,HVX,XNX,PAAX,QPX,XAX,PHX)
 
 1009       REAL*4  hvx(4),paax(4),xax(4),qpx(4),xnx(4)
 
 1010       REAL*8  hv(4),ph(4),paa(4),xa(4),qp(4),xn(4)
 
 1013       CALL drcmu(dgamt,hv,ph,paa,xa,qp,xn,ielmu)
 
 1024       SUBROUTINE drcmu(DGAMT,HV,PH,PAA,XA,QP,XN,IELMU)
 
 1025       IMPLICIT REAL*8 (a-h,o-z)
 
 1030       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 1031      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1032      *                 ,amk,amkz,amkst,gamkst
 
 1034       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 1035      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1036      *                 ,amk,amkz,amkst,gamkst
 
 1037       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 1038       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 1039       COMMON / inout / inut,iout
 
 1040       COMMON / taurad / xk0dec,itdkrc
 
 1042       REAL*8  hv(4),pt(4),ph(4),paa(4),xa(4),qp(4),xn(4)
 
 1046       DATA pi /3.141592653589793238462643d0/
 
 1052       phspac=1./2**17/pi**8
 
 1062         IF (ielmu.EQ.1) 
THEN 
 1069         IF (  itdkrc.EQ.0) prhard=0d0
 
 1071          IF(prsoft.LT.0.1) 
THEN 
 1072            print *, 
'ERROR IN DRCMU; PRSOFT=',prsoft
 
 1077         ihard=(rr5.GT.prsoft)
 
 1081           ams1=(amu+amnuta)**2
 
 1084           xl1=log(xk1/2/xk0dec)
 
 1089           phspac=phspac*ams2*xl1*xk
 
 1090           phspac=phspac/prhard
 
 1093           phspac=phspac*2**6*pi**3
 
 1094           phspac=phspac/prsoft
 
 1103       am2sq=ams1+   rr2*(ams2-ams1)
 
 1105       phspac=phspac*(ams2-ams1)
 
 1107         enq1=(am2sq+amnuta**2)/(2*am2)
 
 1108         enq2=(am2sq-amnuta**2)/(2*am2)
 
 1109         ppi=         enq1**2-amnuta**2
 
 1110         pppi=sqrt(abs(enq1**2-amnuta**2))
 
 1111         phspac=phspac*(4*pi)*(2*pppi/am2)
 
 1113         CALL spherd(pppi,xn)
 
 1123         pr(4)=1.d0/(2*am3)*(am3**2+am2**2-amu**2)
 
 1124         pr(3)= sqrt(abs(pr(4)**2-am2**2))
 
 1125         ppi  =          pr(4)**2-am2**2
 
 1129         qp(4)=1.d0/(2*am3)*(am3**2-am2**2+amu**2)
 
 1131       phspac=phspac*(4*pi)*(2*pr(3)/am3)
 
 1133       exe=(pr(4)+pr(3))/am2
 
 1134       CALL bostd3(exe,xn,xn)
 
 1135       CALL bostd3(exe,xa,xa)
 
 1139         eps=4*(amu/amtax)**2
 
 1140         xl1=log((2+eps)/eps)
 
 1142         eta  =exp(xl1*rr3+xl0)
 
 1145         phspac=phspac*xl1/2*eta
 
 1147         CALL rotpox(thet,phi,xn)
 
 1148         CALL rotpox(thet,phi,xa)
 
 1149         CALL rotpox(thet,phi,qp)
 
 1150         CALL rotpox(thet,phi,pr)
 
 1156         paa(4)=1/(2*amtax)*(amtax**2+am3**2)
 
 1157         paa(3)= sqrt(abs(paa(4)**2-am3**2))
 
 1158         ppi   =          paa(4)**2-am3**2
 
 1159         phspac=phspac*(4*pi)*(2*paa(3)/amtax)
 
 1167         exe=(paa(4)+paa(3))/am3
 
 1168         CALL bostd3(exe,xn,xn)
 
 1169         CALL bostd3(exe,xa,xa)
 
 1170         CALL bostd3(exe,qp,qp)
 
 1171         CALL bostd3(exe,pr,pr)
 
 1173         thet =acos(-1.+2*rr3)
 
 1175         CALL rotpox(thet,phi,xn)
 
 1176         CALL rotpox(thet,phi,xa)
 
 1177         CALL rotpox(thet,phi,qp)
 
 1178         CALL rotpox(thet,phi,pr)
 
 1193       CALL dampry(itdkrc,xk0dec,ph,xa,qp,xn,amplit,hv)
 
 1194       dgamt=1/(2.*amtax)*amplit*phspac
 
 1196       SUBROUTINE dampry(ITDKRC,XK0DEC,XK,XA,QP,XN,AMPLIT,HV)
 
 1197       IMPLICIT REAL*8 (a-h,o-z)
 
 1203       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 1204      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1205      *                 ,amk,amkz,amkst,gamkst
 
 1207       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 1208      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1209      *                 ,amk,amkz,amkst,gamkst
 
 1210       REAL*8  hv(4),qp(4),xn(4),xa(4),xk(4)
 
 1214       IF(xk(4).LT.0.1d0*ak0) 
THEN 
 1215         amplit=thb(itdkrc,qp,xn,xa,ak0,hv)
 
 1217         amplit=sqm2(itdkrc,qp,xn,xa,xk,ak0,hv)
 
 1221       FUNCTION sqm2(ITDKRC,QP,XN,XA,XK,AK0,HV)
 
 1234       IMPLICIT REAL*8(a-h,o-z)
 
 1235       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 1236      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1237      *                 ,amk,amkz,amkst,gamkst
 
 1239       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 1240      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1241      *                 ,amk,amkz,amkst,gamkst
 
 1242       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 1243       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 1244       COMMON / qedprm /alfinv,alfpi,xk0
 
 1245       REAL*8           alfinv,alfpi,xk0
 
 1246       REAL*8    qp(4),xn(4),xa(4),xk(4)
 
 1249       REAL*8 s0(3),rxa(3),rxk(3),rqp(3)
 
 1250       DATA pi /3.141592653589793238462643d0/
 
 1256       emass2=qp(4)**2-qp(1)**2-qp(2)**2-qp(3)**2
 
 1264         rxa(i)=r(4)*xa(4)-r(1)*xa(1)-r(2)*xa(2)-r(3)*xa(3)
 
 1266         rxk(i)=r(4)*xk(4)-r(1)*xk(1)-r(2)*xk(2)-r(3)*xk(3)
 
 1267         rqp(i)=r(4)*qp(4)-r(1)*qp(1)-r(2)*qp(2)-r(3)*qp(3)
 
 1269       qpxn=qp(4)*xn(4)-qp(1)*xn(1)-qp(2)*xn(2)-qp(3)*xn(3)
 
 1270       qpxa=qp(4)*xa(4)-qp(1)*xa(1)-qp(2)*xa(2)-qp(3)*xa(3)
 
 1271       qpxk=qp(4)*xk(4)-qp(1)*xk(1)-qp(2)*xk(2)-qp(3)*xk(3)
 
 1273       xnxk=xn(4)*xk(4)-xn(1)*xk(1)-xn(2)*xk(2)-xn(3)*xk(3)
 
 1274       xaxk=xa(4)*xk(4)-xa(1)*xk(1)-xa(2)*xk(2)-xa(3)*xk(3)
 
 1284       s1= qpxn*txa*( -emass2/qpxk**2*a + 2*tqp/(qpxk*txk)*b-
 
 1286      $qpxn/txk**2* ( tmass2*xaxk - txa*txk+ xaxk*txk) -
 
 1287      $txa*txn/txk - qpxn/(qpxk*txk)* (tqp*xaxk-txk*qpxa)
 
 1288       const4=256*pi/alphai*gf**2
 
 1289       IF (itdkrc.EQ.0) const4=0d0
 
 1292         s0(i) = qpxn*rxa(i)*(-emass2/qpxk**2*a + 2*tqp/(qpxk*txk)*b-
 
 1294      $  qpxn/txk**2* (tmass2*xaxk - txa*rxk(i)+ xaxk*rxk(i))-
 
 1295      $  rxa(i)*txn/txk - qpxn/(qpxk*txk)*(rqp(i)*xaxk- rxk(i)*qpxa)
 
 1296   5     hv(i)=s0(i)/s1-1.d0
 
 1299       FUNCTION thb(ITDKRC,QP,XN,XA,AK0,HV)
 
 1313       IMPLICIT REAL*8(a-h,o-z)
 
 1314       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 1315      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1316      *                 ,amk,amkz,amkst,gamkst
 
 1318       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 1319      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1320      *                 ,amk,amkz,amkst,gamkst
 
 1321       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 1322       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 1323       COMMON / qedprm /alfinv,alfpi,xk0
 
 1324       REAL*8           alfinv,alfpi,xk0
 
 1325       dimension qp(4),xn(4),xa(4)
 
 1328       REAL*8 rxa(3),rxn(3),rqp(3)
 
 1329       REAL*8 bornpl(3),am3pol(3),xm3pol(3)
 
 1330       DATA pi /3.141592653589793238462643d0/
 
 1343         rxa(i)=r(4)*xa(4)-r(1)*xa(1)-r(2)*xa(2)-r(3)*xa(3)
 
 1344         rxn(i)=r(4)*xn(4)-r(1)*xn(1)-r(2)*xn(2)-r(3)*xn(3)
 
 1346         rqp(i)=r(4)*qp(4)-r(1)*qp(1)-r(2)*qp(2)-r(3)*qp(3)
 
 1350       u3=sqrt(qp(1)**2+qp(2)**2+qp(3)**2)/tmass
 
 1352       w0=(xn(4)+xa(4))/tmass
 
 1364       f0=2*u0/u3*(  dilogt(1-(um*wm/(up*wp)))- dilogt(1-wm/wp) +
 
 1365      $dilogt(1-um/up) -2*yu+ 2*log(up)*(yw+yu) ) +
 
 1366      $1/y* ( 2*u3*yu + (1-eps2- 2*y)*log(eps) ) +
 
 1367      $ 2 - 4*(u0/u3*yu -1)* log(2*al)
 
 1368       fp= yu/(2*u3)*(1 + (1-eps2)/y ) + log(eps)/y
 
 1369       fm= yu/(2*u3)*(1 - (1-eps2)/y ) - log(eps)/y
 
 1372       qpxn=qp(4)*xn(4)-qp(1)*xn(1)-qp(2)*xn(2)-qp(3)*xn(3)
 
 1373       qpxa=qp(4)*xa(4)-qp(1)*xa(1)-qp(2)*xa(2)-qp(3)*xa(3)
 
 1374       xnxa=xn(4)*xa(4)-xn(1)*xa(1)-xn(2)*xa(2)-xn(3)*xa(3)
 
 1379       const3=1/(2*alphai*pi)*64*gf**2
 
 1380       IF (itdkrc.EQ.0) const3=0d0
 
 1381       xm3= -( f0* qpxn*txa +  fp*eps2* txn*txa +
 
 1382      $fm* qpxn*qpxa + f3* tmass2*xnxa )
 
 1385       brak= (gv+ga)**2*tqp*xnxa+(gv-ga)**2*txa*qpxn
 
 1386      &     -(gv**2-ga**2)*tmass*amnuta*qpxa
 
 1387       born= 32*(gfermi**2/2.)*brak
 
 1389         xm3pol(i)= -( f0* qpxn*rxa(i) +  fp*eps2* txn*rxa(i) +
 
 1390      $  fm* qpxn* (qpxa + (rxa(i)*tqp-txa*rqp(i))/tmass2 ) +
 
 1391      $  f3* (tmass2*xnxa +txn*rxa(i) -rxn(i)*txa)  )
 
 1392         am3pol(i)=xm3pol(i)*const3
 
 1395      &            (gv+ga)**2*tmass*xnxa*qp(i)
 
 1396      &           -(gv-ga)**2*tmass*qpxn*xa(i)
 
 1397      &           +(gv**2-ga**2)*amnuta*txa*qp(i)
 
 1398      &           -(gv**2-ga**2)*amnuta*tqp*xa(i) )*
 
 1400   5     hv(i)=(bornpl(i)+am3pol(i))/(born+am3)-1.d0
 
 1402       IF (thb/born.LT.0.1d0) 
THEN 
 1403         print *, 
'ERROR IN THB, THB/BORN=',thb/born
 
 1408       SUBROUTINE dexpi(MODE,ISGN,POL,PPI,PNU)
 
 1415       REAL  pol(4),hv(4),pnu(4),ppi(4),rn(1)
 
 1419         CALL dadmpi(-1,isgn,hv,ppi,pnu)
 
 1422       ELSEIF(mode.EQ. 0) 
THEN 
 1425         CALL dadmpi( 0,isgn,hv,ppi,pnu)
 
 1426         wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
 
 1429         IF(rn(1).GT.wt) goto 300
 
 1431       ELSEIF(mode.EQ. 1) 
THEN 
 1433         CALL dadmpi( 1,isgn,hv,ppi,pnu)
 
 1439       SUBROUTINE dadmpi(MODE,ISGN,HV,PPI,PNU)
 
 1441       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 1442      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1443      *                 ,amk,amkz,amkst,gamkst
 
 1445       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 1446      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1447      *                 ,amk,amkz,amkst,gamkst
 
 1448       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 1449       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 1450       COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
 
 1451       REAL*4            gampmc    ,gamper
 
 1452       COMMON / inout / inut,iout
 
 1453       REAL  ppi(4),pnu(4),hv(4)
 
 1454       DATA pi /3.141592653589793238462643/
 
 1459       ELSEIF(mode.EQ. 0) 
THEN 
 1462         epi= (amtau**2+ampi**2-amnuta**2)/(2*amtau)
 
 1463         enu= (amtau**2-ampi**2+amnuta**2)/(2*amtau)
 
 1464         xpi= sqrt(epi**2-ampi**2)
 
 1466         CALL sphera(xpi,ppi)
 
 1474         qxn=ppi(4)*pnu(4)-ppi(1)*pnu(1)-ppi(2)*pnu(2)-ppi(3)*pnu(3)
 
 1475         brak=(gv**2+ga**2)*(2*pxq*qxn-ampi**2*pxn)
 
 1476      &      +(gv**2-ga**2)*amtau*amnuta*ampi**2
 
 1478 40      hv(i)=-isgn*2*ga*gv*amtau*(2*ppi(i)*qxn-pnu(i)*ampi**2)/brak
 
 1481       ELSEIF(mode.EQ. 1) 
THEN 
 1483         IF(nevtot.EQ.0) 
RETURN 
 1489         gamm=(gfermi*fpi)**2/(16.*pi)*amtau**3*
 
 1491      $       sqrt((amtau**2-ampi**2-amnuta**2)**2
 
 1492      $            -4*ampi**2*amnuta**2           )/amtau**2
 
 1495         WRITE(iout, 7010) nevtot,gamm,rat,error
 
 1502  7010 
FORMAT(///1x,15(5h*****)
 
 1503      $ /,
' *',     25x,
'******** DADMPI FINAL REPORT  ******** ',9x,1h*
 
 1504      $ /,
' *',i20  ,5x,
'NEVTOT = NO. OF PI  DECAYS TOTAL       ',9x,1h*
 
 1505      $ /,
' *',e20.5,5x,
'PARTIAL WTDTH ( PI DECAY) IN GEV UNITS ',9x,1h*
 
 1506      $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3   ',9x,1h*
 
 1507      $ /,
' *',f20.8,5x,
'RELATIVE ERROR OF PARTIAL WIDTH (STAT.)',9x,1h*
 
 1508      $  /,1x,15(5h*****)/)
 
 1510       SUBROUTINE dexro(MODE,ISGN,POL,PNU,PRO,PIC,PIZ)
 
 1519       COMMON / inout / inut,iout
 
 1520       REAL  pol(4),hv(4),pro(4),pnu(4),pic(4),piz(4),rn(1)
 
 1526         CALL dadmro( -1,isgn,hv,pnu,pro,pic,piz)
 
 1530       ELSEIF(mode.EQ. 0) 
THEN 
 1533         IF(iwarm.EQ.0) goto 902
 
 1534         CALL dadmro(  0,isgn,hv,pnu,pro,pic,piz)
 
 1535         wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
 
 1540         IF(rn(1).GT.wt) goto 300
 
 1542       ELSEIF(mode.EQ. 1) 
THEN 
 1544         CALL dadmro(  1,isgn,hv,pnu,pro,pic,piz)
 
 1550  902  
WRITE(iout, 9020)
 
 1551  9020 
FORMAT(
' ----- DEXRO: LACK OF INITIALISATION')
 
 1554       SUBROUTINE dadmro(MODE,ISGN,HHV,PNU,PRO,PIC,PIZ)
 
 1556       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 1557      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1558      *                 ,amk,amkz,amkst,gamkst
 
 1560       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 1561      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1562      *                 ,amk,amkz,amkst,gamkst
 
 1563       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 1564       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 1565       COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
 
 1566       REAL*4            gampmc    ,gamper
 
 1567       COMMON / inout / inut,iout
 
 1569       REAL  hv(4),pro(4),pnu(4),pic(4),piz(4)
 
 1570       REAL  pdum1(4),pdum2(4),pdum3(4),pdum4(4)
 
 1573       DATA pi /3.141592653589793238462643/
 
 1586         CALL dphsro(wt,hv,pdum1,pdum2,pdum3,pdum4)
 
 1587         IF(wt.GT.wtmax/1.2) wtmax=wt*1.2
 
 1592       ELSEIF(mode.EQ. 0) 
THEN 
 1595         IF(iwarm.EQ.0) goto 902
 
 1596         CALL dphsro(wt,hv,pnu,pro,pic,piz)
 
 1603         IF(wt.GT.wtmax) nevovr=nevovr+1
 
 1604         IF(rn*wtmax.GT.wt) goto 300
 
 1606         costhe=-1.+2.*rrr(2)
 
 1609         CALL rotor2(thet,pnu,pnu)
 
 1610         CALL rotor3( phi,pnu,pnu)
 
 1611         CALL rotor2(thet,pro,pro)
 
 1612         CALL rotor3( phi,pro,pro)
 
 1613         CALL rotor2(thet,pic,pic)
 
 1614         CALL rotor3( phi,pic,pic)
 
 1615         CALL rotor2(thet,piz,piz)
 
 1616         CALL rotor3( phi,piz,piz)
 
 1617         CALL rotor2(thet,hv,hv)
 
 1618         CALL rotor3( phi,hv,hv)
 
 1620  44     hhv(i)=-isgn*hv(i)
 
 1623       ELSEIF(mode.EQ. 1) 
THEN 
 1625         IF(nevraw.EQ.0) 
RETURN 
 1626         pargam=swt/float(nevraw+1)
 
 1628         IF(nevraw.NE.0) error=sqrt(sswt/swt**2-1./float(nevraw))
 
 1630         WRITE(iout, 7010) nevraw,nevacc,nevovr,pargam,rat,error
 
 1638  7003 
FORMAT(///1x,15(5h*****)
 
 1639      $ /,
' *',     25x,
'******** DADMRO INITIALISATION ********',9x,1h*
 
 1640      $ /,
' *',e20.5,5x,
'WTMAX  = MAXIMUM WEIGHT                ',9x,1h*
 
 1641      $  /,1x,15(5h*****)/)
 
 1642  7010 
FORMAT(///1x,15(5h*****)
 
 1643      $ /,
' *',     25x,
'******** DADMRO FINAL REPORT  ******** ',9x,1h*
 
 1644      $ /,
' *',i20  ,5x,
'NEVRAW = NO. OF RHO DECAYS TOTAL       ',9x,1h*
 
 1645      $ /,
' *',i20  ,5x,
'NEVACC = NO. OF RHO  DECS. ACCEPTED    ',9x,1h*
 
 1646      $ /,
' *',i20  ,5x,
'NEVOVR = NO. OF OVERWEIGHTED EVENTS    ',9x,1h*
 
 1647      $ /,
' *',e20.5,5x,
'PARTIAL WTDTH (RHO DECAY) IN GEV UNITS ',9x,1h*
 
 1648      $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3   ',9x,1h*
 
 1649      $ /,
' *',f20.8,5x,
'RELATIVE ERROR OF PARTIAL WIDTH        ',9x,1h*
 
 1650      $  /,1x,15(5h*****)/)
 
 1651  902  
WRITE(iout, 9020)
 
 1652  9020 
FORMAT(
' ----- DADMRO: LACK OF INITIALISATION')
 
 1655       SUBROUTINE dphsro(DGAMT,HV,PN,PR,PIC,PIZ)
 
 1660       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 1661      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1662      *                 ,amk,amkz,amkst,gamkst
 
 1664       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 1665      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1666      *                 ,amk,amkz,amkst,gamkst
 
 1667       REAL  hv(4),pt(4),pn(4),pr(4),pic(4),piz(4),qq(4),rr1(1)
 
 1668       DATA pi /3.141592653589793238462643/
 
 1672       phspac=1./2**11/pi**5
 
 1679       ams1=(ampi+ampiz)**2
 
 1680       ams2=(amtau-amnuta)**2
 
 1686       alp1=atan((ams1-amro**2)/amro/gamro)
 
 1687       alp2=atan((ams2-amro**2)/amro/gamro)
 
 1691       alp=alp1+rr1(1)*(alp2-alp1)
 
 1692       amx2=amro**2+amro*gamro*tan(alp)
 
 1694       IF(amx.LT.2.*ampi) go to 100
 
 1696       phspac=phspac*((amx2-amro**2)**2+(amro*gamro)**2)/(amro*gamro)
 
 1697       phspac=phspac*(alp2-alp1)
 
 1702       pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-amx**2)
 
 1703       pn(3)=-sqrt(abs((pn(4)-amnuta)*(pn(4)+amnuta)))
 
 1707       pr(4)=1./(2*amtau)*(amtau**2-amnuta**2+amx**2)
 
 1709       phspac=phspac*(4*pi)*(2*pr(3)/amtau)
 
 1712       enq1=(amx2+ampi**2-ampiz**2)/(2.*amx)
 
 1713       enq2=(amx2-ampi**2+ampiz**2)/(2.*amx)
 
 1714       pppi=sqrt((enq1-ampi)*(enq1+ampi))
 
 1715       phspac=phspac*(4*pi)*(2*pppi/amx)
 
 1717       CALL sphera(pppi,pic)
 
 1723       exe=(pr(4)+pr(3))/amx
 
 1725       CALL bostr3(exe,pic,pic)
 
 1726       CALL bostr3(exe,piz,piz)
 
 1728       CALL dam2pi(0,pt,pn,pic,piz,amplit,hv)
 
 1729       dgamt=1/(2.*amtau)*amplit*phspac
 
 1744       SUBROUTINE dam2pi(MNUM,PT,PN,PIM1,PIM2,AMPLIT,HV)
 
 1754       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 1755      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1756      *                 ,amk,amkz,amkst,gamkst
 
 1758       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 1759      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1760      *                 ,amk,amkz,amkst,gamkst
 
 1761       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 1762       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 1763       REAL  hv(4),pt(4),pn(4),pim1(4),pim2(4)
 
 1764       REAL  pivec(4),piaks(4),hvm(4)
 
 1766       DATA pi /3.141592653589793238462643/
 
 1770        CALL curr_pipi0(pim1,pim2,hadcur)
 
 1771       ELSEIF (mnum.EQ.1) 
THEN 
 1772         CALL curr_pik0(pim1,pim2,hadcur)
 
 1773       ELSEIF (mnum.EQ.2) 
THEN 
 1774         CALL curr_kpi0(pim1,pim2,hadcur)
 
 1775       ELSEIF (mnum.EQ.3) 
THEN 
 1776         CALL curr_kk0(pim1,pim2,hadcur)
 
 1778        write(*,*) 
'DAM2PI: wrong MNUM= ',mnum
 
 1784       CALL clvec(hadcur,pn,pivec)
 
 1785       CALL claxi(hadcur,pn,piaks)
 
 1786       CALL clnut(hadcur,brakm,hvm)
 
 1788       brak= (gv**2+ga**2)*pt(4)*pivec(4) +2.*gv*ga*pt(4)*piaks(4)
 
 1789      &     +2.*(gv**2-ga**2)*amnuta*amtau*brakm
 
 1790       IF (mnum.EQ.0.OR.mnum.EQ.3) 
THEN 
 1791         amplit=(ccabib*gfermi)**2*brak
 
 1793         amplit=(scabib*gfermi)**2*brak
 
 1797       hv(i)=-(amtau*((gv**2+ga**2)*piaks(i)+2.*gv*ga*pivec(i)))
 
 1798      &      +(gv**2-ga**2)*amnuta*amtau*hvm(i)
 
 1805       SUBROUTINE curr_pipi0(PC,PN,HADCUR)
 
 1814       COMPLEX bwigs,hadcur(4),fkpipl,frho_pi
 
 1816       REAL  pc(4),pn(4),qq(4),pks(4),fpirho
 
 1817       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 1818      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1819      *                 ,amk,amkz,amkst,gamkst
 
 1821       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 1822      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1823      *                 ,amk,amkz,amkst,gamkst
 
 1832          pks(ik)=pc(ik)+ pn(ik)
 
 1833           qq(ik)=pc(ik)- pn(ik)
 
 1836         pksd =pks(4)*pks(4)-pks(3)*pks(3)-pks(2)*pks(2)-pks(1)*pks(1)
 
 1837         qqpks=pks(4)* qq(4)-pks(3)* qq(3)-pks(2)* qq(2)-pks(1)* qq(1)
 
 1839  31      qq(ik)=qq(ik)-pks(ik)*qqpks/pksd
 
 1842        CALL getff2pirho(ff2pirho)
 
 1843        IF (ff2pirho.EQ.2) 
THEN  
 1846          hadcur(k)=qq(k)* fpibel(sqrt(pksd),0)
 
 1848        ELSEIF (ff2pirho.EQ.3) 
THEN  
 1853          hadcur(k)=qq(k)* fpibel(sqrt(pksd),1)
 
 1856         write(*,*) 
'problem in 2-scalars current FF2PIRHO=',ff2pirho
 
 1859       ELSEIF (iver.EQ.0) 
THEN  
 1861          hadcur(k)=qq(k)* sqrt(fpirho(sqrt(pksd)))
 
 1865         write(*,*) 
'problem in 2-scalars current IVER=',iver
 
 1872       SUBROUTINE curr_pik0(PC,PN,HADCUR)
 
 1881       COMPLEX bwigs,hadcur(4),fkpipl
 
 1882       REAL  pc(4),pn(4),qq(4),pks(4),fkpisc,pksd,qqpks
 
 1883       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 1884      &                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1885      &                 ,amk,amkz,amkst,gamkst
 
 1887       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 1888      &                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1889      &                 ,amk,amkz,amkst,gamkst,fact_k0pi
 
 1890       COMMON / taukle / bra1,brk0,brk0b,brks
 
 1891       REAL*4            bra1,brk0,brk0b,brks 
 
 1900         pksd =pks(4)*pks(4)-pks(3)*pks(3)-pks(2)*pks(2)-pks(1)*pks(1)
 
 1901         qqpks=pks(4)* qq(4)-pks(3)* qq(3)-pks(2)* qq(2)-pks(1)* qq(1)
 
 1903  31      qq(i)=qq(i)-pks(i)*qqpks/pksd
 
 1907          hadcur(k)=qq(k)*bwigs(pksd,amkst,gamkst)
 
 1913       SUBROUTINE curr_kpi0(PC,PN,HADCUR)
 
 1922       COMPLEX bwigs,hadcur(4),fkpipl
 
 1923       REAL  pc(4),pn(4),qq(4),pks(4),fkpisc,pksd,qqpks
 
 1924       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 1925      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1926      *                 ,amk,amkz,amkst,gamkst
 
 1928       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 1929      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1930      *                 ,amk,amkz,amkst,gamkst,fact_kpi0
 
 1931       COMMON / taukle / bra1,brk0,brk0b,brks
 
 1932       REAL*4            bra1,brk0,brk0b,brks
 
 1937  30       qq(i)=pc(i)- pn(i)
 
 1939         pksd =pks(4)*pks(4)-pks(3)*pks(3)-pks(2)*pks(2)-pks(1)*pks(1)
 
 1940         qqpks=pks(4)* qq(4)-pks(3)* qq(3)-pks(2)* qq(2)-pks(1)* qq(1)
 
 1942  31      qq(i)=qq(i)-pks(i)*qqpks/pksd
 
 1944          hadcur(k)=qq(k)*bwigs(pksd,amkst,gamkst)
 
 1950       SUBROUTINE curr_kk0(PC,PN,HADCUR)
 
 1959       COMPLEX bwigs,hadcur(4),fkk0_rcht
 
 1960       REAL  pc(4),pn(4),qq(4),pks(4),pksd,qqpks,fpirk
 
 1962       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 1963      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1964      *                 ,amk,amkz,amkst,gamkst
 
 1966       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 1967      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 1968      *                 ,amk,amkz,amkst,gamkst
 
 1974         pksd =pks(4)*pks(4)-pks(3)*pks(3)-pks(2)*pks(2)-pks(1)*pks(1)
 
 1975         qqpks=pks(4)* qq(4)-pks(3)* qq(3)-pks(2)* qq(2)-pks(1)* qq(1)
 
 1977  31      qq(i)=qq(i)-pks(i)*qqpks/pksd
 
 1980          hadcur(k)=qq(k)*sqrt(fpirk(sqrt(pksd)))
 
 1996       DATA pi /3.141592653589793238462643/
 
 2014       IF (icont.EQ.0) 
THEN 
 2019        coefc(1,0)= 2.0*sqrt(2.)/3.0
 
 2020        coefc(2,0)=-2.0*sqrt(2.)/3.0
 
 2022        coefc(3,0)= 2.0*sqrt(2.)/3.0
 
 2026        coefc(1,1)=-sqrt(2.)/3.0
 
 2027        coefc(2,1)= sqrt(2.)/3.0
 
 2030        coefc(5,1)= sqrt(2.)
 
 2033        coefc(1,2)=-sqrt(2.)/3.0
 
 2034        coefc(2,2)= sqrt(2.)/3.0
 
 2038        coefc(5,2)=-sqrt(2.)
 
 2048        coefc(1,4)= 1.0/sqrt(2.)/3.0
 
 2049        coefc(2,4)=-1.0/sqrt(2.)/3.0
 
 2054        coefc(1,5)=-sqrt(2.)/3.0
 
 2055        coefc(2,5)= sqrt(2.)/3.0
 
 2058        coefc(5,5)=-sqrt(2.)
 
 2071        coefc(5,7)=-sqrt(2.0/3.0)
 
 2074       IF (iver.EQ.0.OR.j.NE.0) 
THEN    
 2076       ELSEIF (iver.EQ.1) 
THEN 
 2079        write(*,*) 
'wrong IVER=',iver
 
 2085       SUBROUTINE inirchl(IVERI)
 
 2098         CALL rchl_parameters(1)
 
 2103       SUBROUTINE inirchlget(I)
 
 2122       SUBROUTINE dexaa(MODE,ISGN,POL,PNU,PAA,PIM1,PIM2,PIPL,JAA)
 
 2133       COMMON / inout / inut,iout
 
 2134       REAL  pol(4),hv(4),paa(4),pnu(4),pim1(4),pim2(4),pipl(4),rn(1)
 
 2140         CALL dadmaa( -1,isgn,hv,pnu,paa,pim1,pim2,pipl,jaa)
 
 2143       ELSEIF(mode.EQ. 0) 
THEN 
 2146         IF(iwarm.EQ.0) goto 902
 
 2147         CALL dadmaa(  0,isgn,hv,pnu,paa,pim1,pim2,pipl,jaa)
 
 2148         wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
 
 2151         IF(rn(1).GT.wt) goto 300
 
 2153       ELSEIF(mode.EQ. 1) 
THEN 
 2155         CALL dadmaa(  1,isgn,hv,pnu,paa,pim1,pim2,pipl,jaa)
 
 2160  902  
WRITE(iout, 9020)
 
 2161  9020 
FORMAT(
' ----- DEXAA: LACK OF INITIALISATION')
 
 2164       SUBROUTINE dadmaa(MODE,ISGN,HHV,PNU,PAA,PIM1,PIM2,PIPL,JAA)
 
 2168       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 2169      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 2170      *                 ,amk,amkz,amkst,gamkst
 
 2172       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 2173      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 2174      *                 ,amk,amkz,amkst,gamkst
 
 2175       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 2176       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 2177       COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
 
 2178       REAL*4            gampmc    ,gamper
 
 2179       COMMON / inout / inut,iout
 
 2181       REAL  hv(4),paa(4),pnu(4),pim1(4),pim2(4),pipl(4)
 
 2182       REAL  pdum1(4),pdum2(4),pdum3(4),pdum4(4),pdum5(4)
 
 2185       DATA pi /3.141592653589793238462643/
 
 2198         CALL dphsaa(wt,hv,pdum1,pdum2,pdum3,pdum4,pdum5,jaa)
 
 2199         IF(wt.GT.wtmax/1.2) wtmax=wt*1.2
 
 2203       ELSEIF(mode.EQ. 0) 
THEN 
 2206         IF(iwarm.EQ.0) goto 902
 
 2207         CALL dphsaa(wt,hv,pnu,paa,pim1,pim2,pipl,jaa)
 
 2213         sswt=sswt+dble(wt)**2
 
 2217         IF(wt.GT.wtmax) nevovr=nevovr+1
 
 2218         IF(rn*wtmax.GT.wt) goto 300
 
 2220         costhe=-1.+2.*rrr(2)
 
 2223         CALL rotpol(thet,phi,pnu)
 
 2224         CALL rotpol(thet,phi,paa)
 
 2225         CALL rotpol(thet,phi,pim1)
 
 2226         CALL rotpol(thet,phi,pim2)
 
 2227         CALL rotpol(thet,phi,pipl)
 
 2228         CALL rotpol(thet,phi,hv)
 
 2230  44     hhv(i)=-isgn*hv(i)
 
 2233       ELSEIF(mode.EQ. 1) 
THEN 
 2235         IF(nevraw.EQ.0) 
RETURN 
 2236         pargam=swt/float(nevraw+1)
 
 2238         IF(nevraw.NE.0) error=sqrt(sswt/swt**2-1./float(nevraw))
 
 2240         WRITE(iout, 7010) nevraw,nevacc,nevovr,pargam,rat,error
 
 2248  7003 
FORMAT(///1x,15(5h*****)
 
 2249      $ /,
' *',     25x,
'******** DADMAA INITIALISATION ********',9x,1h*
 
 2250      $ /,
' *',e20.5,5x,
'WTMAX  = MAXIMUM WEIGHT                ',9x,1h*
 
 2251      $  /,1x,15(5h*****)/)
 
 2252  7010 
FORMAT(///1x,15(5h*****)
 
 2253      $ /,
' *',     25x,
'******** DADMAA FINAL REPORT  ******** ',9x,1h*
 
 2254      $ /,
' *',i20  ,5x,
'NEVRAW = NO. OF A1  DECAYS TOTAL       ',9x,1h*
 
 2255      $ /,
' *',i20  ,5x,
'NEVACC = NO. OF A1   DECS. ACCEPTED    ',9x,1h*
 
 2256      $ /,
' *',i20  ,5x,
'NEVOVR = NO. OF OVERWEIGHTED EVENTS    ',9x,1h*
 
 2257      $ /,
' *',e20.5,5x,
'PARTIAL WTDTH (A1  DECAY) IN GEV UNITS ',9x,1h*
 
 2258      $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3   ',9x,1h*
 
 2259      $ /,
' *',f20.8,5x,
'RELATIVE ERROR OF PARTIAL WIDTH        ',9x,1h*
 
 2260      $  /,1x,15(5h*****)/)
 
 2261  902  
WRITE(iout, 9020)
 
 2262  9020 
FORMAT(
' ----- DADMAA: LACK OF INITIALISATION')
 
 2265       SUBROUTINE dphsaa(DGAMT,HV,PN,PAA,PIM1,PIM2,PIPL,JAA)
 
 2270       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 2271      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 2272      *                 ,amk,amkz,amkst,gamkst
 
 2274       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 2275      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 2276      *                 ,amk,amkz,amkst,gamkst
 
 2277       COMMON / taukle / bra1,brk0,brk0b,brks
 
 2278       REAL*4            bra1,brk0,brk0b,brks
 
 2279       REAL  hv(4),pn(4),paa(4),pim1(4),pim2(4),pipl(4)
 
 2289       IF (rmod.LT.bra1) 
THEN 
 2302      $   dphtre(dgamt,hv,pn,paa,pim1,amp1,pim2,amp2,pipl,amp3,keyt,mnum)
 
 2304       SUBROUTINE dexkk(MODE,ISGN,POL,PKK,PNU)
 
 2311       REAL  pol(4),hv(4),pnu(4),pkk(4),rn(1)
 
 2315         CALL dadmkk(-1,isgn,hv,pkk,pnu)
 
 2318       ELSEIF(mode.EQ. 0) 
THEN 
 2321         CALL dadmkk( 0,isgn,hv,pkk,pnu)
 
 2322         wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
 
 2325         IF(rn(1).GT.wt) goto 300
 
 2327       ELSEIF(mode.EQ. 1) 
THEN 
 2329         CALL dadmkk( 1,isgn,hv,pkk,pnu)
 
 2335       SUBROUTINE dadmkk(MODE,ISGN,HV,PKK,PNU)
 
 2338       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 2339       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 2340       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 2341      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 2342      *                 ,amk,amkz,amkst,gamkst
 
 2344       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 2345      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 2346      *                 ,amk,amkz,amkst,gamkst
 
 2347       COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
 
 2348       REAL*4            gampmc    ,gamper
 
 2349       COMMON / inout / inut,iout
 
 2350       REAL  pkk(4),pnu(4),hv(4)
 
 2351       DATA pi /3.141592653589793238462643/
 
 2356       ELSEIF(mode.EQ. 0) 
THEN 
 2359         ekk= (amtau**2+amk**2-amnuta**2)/(2*amtau)
 
 2360         enu= (amtau**2-amk**2+amnuta**2)/(2*amtau)
 
 2361         xkk= sqrt(ekk**2-amk**2)
 
 2363         CALL sphera(xkk,pkk)
 
 2371         qxn=pkk(4)*pnu(4)-pkk(1)*pnu(1)-pkk(2)*pnu(2)-pkk(3)*pnu(3)
 
 2372         brak=(gv**2+ga**2)*(2*pxq*qxn-amk**2*pxn)
 
 2373      &      +(gv**2-ga**2)*amtau*amnuta*amk**2
 
 2375 40      hv(i)=-isgn*2*ga*gv*amtau*(2*pkk(i)*qxn-pnu(i)*amk**2)/brak
 
 2378       ELSEIF(mode.EQ. 1) 
THEN 
 2380         IF(nevtot.EQ.0) 
RETURN 
 2387         gamm=(gfermi*fkk)**2/(16.*pi)*amtau**3*
 
 2389      $       sqrt((amtau**2-amk**2-amnuta**2)**2
 
 2390      $            -4*amk**2*amnuta**2           )/amtau**2
 
 2395         WRITE(iout, 7010) nevtot,gamm,rat,error
 
 2402  7010 
FORMAT(///1x,15(5h*****)
 
 2403      $ /,
' *',     25x,
'******** DADMKK FINAL REPORT   ********',9x,1h*
 
 2404      $ /,
' *',i20  ,5x,
'NEVTOT = NO. OF K  DECAYS TOTAL        ',9x,1h*,
 
 2405      $ /,
' *',e20.5,5x,
'PARTIAL WTDTH ( K DECAY) IN GEV UNITS  ',9x,1h*,
 
 2406      $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3   ',9x,1h*
 
 2407      $ /,
' *',f20.8,5x,
'RELATIVE ERROR OF PARTIAL WIDTH (STAT.)',9x,1h*
 
 2408      $  /,1x,15(5h*****)/)
 
 2410       SUBROUTINE dexks(MODE,ISGN,POL,PNU,PKS,PKK,PPI,JKST)
 
 2422       COMMON / inout / inut,iout
 
 2423       REAL  pol(4),hv(4),pks(4),pnu(4),pkk(4),ppi(4),rn(1)
 
 2430         CALL dadmks( -1,isgn,hv,pnu,pks,pkk,ppi,jkst)
 
 2434       ELSEIF(mode.EQ. 0) 
THEN 
 2437         IF(iwarm.EQ.0) goto 902
 
 2438         CALL dadmks(  0,isgn,hv,pnu,pks,pkk,ppi,jkst)
 
 2439         wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
 
 2444         IF(rn(1).GT.wt) goto 300
 
 2446       ELSEIF(mode.EQ. 1) 
THEN 
 2448         CALL dadmks( 1,isgn,hv,pnu,pks,pkk,ppi,jkst)
 
 2454  902  
WRITE(iout, 9020)
 
 2455  9020 
FORMAT(
' ----- DEXKS: LACK OF INITIALISATION')
 
 2458       SUBROUTINE dadmks(MODE,ISGN,HHV,PNU,PKS,PKK,PPI,JKST)
 
 2460       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 2461      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 2462      *                 ,amk,amkz,amkst,gamkst
 
 2464       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 2465      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 2466      *                 ,amk,amkz,amkst,gamkst
 
 2467       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 2468       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 2469       COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
 
 2470       REAL*4            gampmc    ,gamper
 
 2471       COMMON / taukle / bra1,brk0,brk0b,brks
 
 2472       REAL*4            bra1,brk0,brk0b,brks
 
 2473       COMMON / inout / inut,iout
 
 2475       REAL  hv(4),pks(4),pnu(4),pkk(4),ppi(4)
 
 2476       REAL  pdum1(4),pdum2(4),pdum3(4),pdum4(4)
 
 2477       REAL*4 rrr(3),rmod(1)
 
 2479       DATA pi /3.141592653589793238462643/
 
 2494         CALL dphsks(wt,hv,pdum1,pdum2,pdum3,pdum4,jkst)
 
 2495         IF(wt.GT.wtmax/1.2) wtmax=wt*1.2
 
 2500       ELSEIF(mode.EQ. 0) 
THEN 
 2502         IF(iwarm.EQ.0) goto 902
 
 2508         IF(rmod(1).LT.dec1) 
THEN 
 2513         CALL dphsks(wt,hv,pnu,pks,pkk,ppi,jkst)
 
 2516         IF(wt.GT.wtmax) nevovr=nevovr+1
 
 2520         IF(rn*wtmax.GT.wt) goto 400
 
 2522         costhe=-1.+2.*rrr(2)
 
 2525         CALL rotor2(thet,pnu,pnu)
 
 2526         CALL rotor3( phi,pnu,pnu)
 
 2527         CALL rotor2(thet,pks,pks)
 
 2528         CALL rotor3( phi,pks,pks)
 
 2529         CALL rotor2(thet,pkk,pkk)
 
 2530         CALL rotor3(phi,pkk,pkk)
 
 2531         CALL rotor2(thet,ppi,ppi)
 
 2532         CALL rotor3( phi,ppi,ppi)
 
 2533         CALL rotor2(thet,hv,hv)
 
 2534         CALL rotor3( phi,hv,hv)
 
 2536  44     hhv(i)=-isgn*hv(i)
 
 2539       ELSEIF(mode.EQ. 1) 
THEN 
 2541         IF(nevraw.EQ.0) 
RETURN 
 2542         pargam=swt/float(nevraw+1)
 
 2544         IF(nevraw.NE.0) error=sqrt(sswt/swt**2-1./float(nevraw))
 
 2546         WRITE(iout, 7010) nevraw,nevacc,nevovr,pargam,rat,error
 
 2554  7003 
FORMAT(///1x,15(5h*****)
 
 2555      $ /,
' *',     25x,
'******** DADMKS INITIALISATION ********',9x,1h*
 
 2556      $ /,
' *',e20.5,5x,
'WTMAX  = MAXIMUM WEIGHT                ',9x,1h*
 
 2557      $  /,1x,15(5h*****)/)
 
 2558  7010 
FORMAT(///1x,15(5h*****)
 
 2559      $ /,
' *',     25x,
'******** DADMKS FINAL REPORT   ********',9x,1h*
 
 2560      $ /,
' *',i20  ,5x,
'NEVRAW = NO. OF K* DECAYS TOTAL        ',9x,1h*,
 
 2561      $ /,
' *',i20  ,5x,
'NEVACC = NO. OF K*  DECS. ACCEPTED     ',9x,1h*,
 
 2562      $ /,
' *',i20  ,5x,
'NEVOVR = NO. OF OVERWEIGHTED EVENTS    ',9x,1h*
 
 2563      $ /,
' *',e20.5,5x,
'PARTIAL WTDTH (K* DECAY) IN GEV UNITS  ',9x,1h*,
 
 2564      $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3   ',9x,1h*
 
 2565      $ /,
' *',f20.8,5x,
'RELATIVE ERROR OF PARTIAL WIDTH        ',9x,1h*
 
 2566      $  /,1x,15(5h*****)/)
 
 2567  902  
WRITE(iout, 9020)
 
 2568  9020 
FORMAT(
' ----- DADMKS: LACK OF INITIALISATION')
 
 2571       SUBROUTINE dphsks(DGAMT,HV,PN,PKS,PKK,PPI,JKST)
 
 2578       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 2579      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 2580      *                 ,amk,amkz,amkst,gamkst
 
 2582       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 2583      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 2584      *                 ,amk,amkz,amkst,gamkst
 
 2585       REAL  hv(4),pt(4),pn(4),pks(4),pkk(4),ppi(4),qq(4),rr1(1),rr2(1)
 
 2586       DATA pi /3.141592653589793238462643/
 
 2590       phspac=1./2**11/pi**5
 
 2602         ams2=(amtau-amnuta)**2
 
 2603         alp1=atan((ams1-amkst**2)/amkst/gamkst)
 
 2604         alp2=atan((ams2-amkst**2)/amkst/gamkst)
 
 2607         IF (rr2(1).LT.prob1) 
THEN 
 2609          amx2=ams1+   rr1(1)*(ams2-ams1)
 
 2613          alp=alp1+rr1(1)*(alp2-alp1)
 
 2614          amx2=amkst**2+amkst*gamkst*tan(alp)
 
 2619         phspac2=((amx2-amkst**2)**2+(amkst*gamkst)**2)
 
 2621         phspac2=phspac2*(alp2-alp1)
 
 2624         IF (phspac1.NE.0.0) a1=prob1    /phspac1
 
 2625         IF (phspac2.NE.0.0) a2=(1-prob1)/phspac2
 
 2629         IF (a1+a2.NE.0.0) 
THEN 
 2630          phspac=phspac/(a1+a2)
 
 2639         pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-amx**2)
 
 2640         pn(3)=-sqrt(abs((pn(4)-amnuta)*(pn(4)+amnuta)))
 
 2645         pks(4)=1./(2*amtau)*(amtau**2-amnuta**2+amx**2)
 
 2647         phspac=phspac*(4*pi)*(2*pks(3)/amtau)
 
 2650         enpi=( amx**2+ampi**2-amkz**2 ) / ( 2*amx )
 
 2651         pppi=sqrt(abs(enpi-ampi)*(enpi+ampi))
 
 2652         phspac=phspac*(4*pi)*(2*pppi/amx)
 
 2654         CALL sphera(pppi,ppi)
 
 2659         pkk(4)=( amx**2+amkz**2-ampi**2 ) / ( 2*amx )
 
 2660         exe=(pks(4)+pks(3))/amx
 
 2662         CALL bostr3(exe,ppi,ppi)
 
 2663         CALL bostr3(exe,pkk,pkk)
 
 2665         CALL dam2pi(1,pt,pn,ppi,pkk,amplit,hv)
 
 2666         dgamt=1/(2.*amtau)*amplit*phspac
 
 2669       ELSEIF(jkst.EQ.20)
THEN 
 2673         ams2=(amtau-amnuta)**2
 
 2674         alp1=atan((ams1-amkst**2)/amkst/gamkst)
 
 2675         alp2=atan((ams2-amkst**2)/amkst/gamkst)
 
 2679         IF (rr2(1).LT.prob1) 
THEN 
 2681          amx2=ams1+   rr1(1)*(ams2-ams1)
 
 2685          alp=alp1+rr1(1)*(alp2-alp1)
 
 2686          amx2=amkst**2+amkst*gamkst*tan(alp)
 
 2691         phspac2=((amx2-amkst**2)**2+(amkst*gamkst)**2)
 
 2693         phspac2=phspac2*(alp2-alp1)
 
 2696         IF (phspac1.NE.0.0) a1=prob1    /phspac1
 
 2697         IF (phspac2.NE.0.0) a2=(1-prob1)/phspac2
 
 2699         IF (a1+a2.NE.0.0) 
THEN 
 2700          phspac=phspac/(a1+a2)
 
 2709         pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-amx**2)
 
 2710         pn(3)=-sqrt(abs((pn(4)-amnuta)*(pn(4)+amnuta)))
 
 2714         pks(4)=1./(2*amtau)*(amtau**2-amnuta**2+amx**2)
 
 2716         phspac=phspac*(4*pi)*(2*pks(3)/amtau)
 
 2719         enpi=( amx**2+ampiz**2-amk**2 ) / ( 2*amx )
 
 2720         pppi=sqrt(abs(enpi-ampiz)*(enpi+ampiz))
 
 2721         phspac=phspac*(4*pi)*(2*pppi/amx)
 
 2723         CALL sphera(pppi,ppi)
 
 2728         pkk(4)=( amx**2+amk**2-ampiz**2 ) / ( 2*amx )
 
 2729         exe=(pks(4)+pks(3))/amx
 
 2731         CALL bostr3(exe,ppi,ppi)
 
 2732         CALL bostr3(exe,pkk,pkk)
 
 2734         CALL dam2pi(2,pt,pn,pkk,ppi,amplit,hv)
 
 2735         dgamt=1/(2.*amtau)*amplit*phspac
 
 2744       SUBROUTINE dphnpi(DGAMT,HVX,PNX,PRX,PPIX,JNPI)
 
 2749       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 2750      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 2751      *                 ,amk,amkz,amkst,gamkst
 
 2753       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 2754      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 2755      *                 ,amk,amkz,amkst,gamkst
 
 2756       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 2757       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 2758       parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
 
 2759       COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
 
 2761       CHARACTER names(nmode)*31
 
 2764       REAL*8  pn(4),pr(4),ppi(4,9),hv(4)
 
 2765       REAL*4  pnx(4),prx(4),ppix(4,9),hvx(4)
 
 2766       REAL*8  pv(5,9),pt(4),ue(3),be(3)
 
 2767       REAL*8  pawt,amx,ams1,ams2,pa,phs,phsmax,pmin,pmax
 
 2771       REAL*8  gam,bep,phi,a,b,c
 
 2773       REAL*4 rrr(9),rrx(2),rn(1),rr2(1)
 
 2775       DATA pi /3.141592653589793238462643/
 
 2776       DATA wetmax /20*1d-15/
 
 2781      $  sqrt(max(0.d0,(a**2-(b+c)**2)*(a**2-(b-c)**2)))/(2.d0*a)
 
 2783       ampik(i,j)=dcdmas(idffin(i,j))
 
 2786       IF ((jnpi.LE.0).OR.jnpi.GT.20) 
THEN 
 2787        WRITE(6,*) 
'JNPI OUTSIDE RANGE DEFINED BY WETMAX; JNPI=',jnpi
 
 2801       phspac = 1./2.**5 /pi**2
 
 2803 4     ps  =ps+ampik(i,jnpi)
 
 2806       ams2=(amtau-amnuta)**2
 
 2809       amx2=ams1+   rr2(1)*(ams2-ams1)
 
 2812       phspac=phspac * (ams2-ams1)
 
 2817       pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-amx2)
 
 2818       pn(3)=-sqrt(abs((pn(4)-amnuta)*(pn(4)+amnuta)))
 
 2822       pr(4)=1./(2*amtau)*(amtau**2-amnuta**2+amx2)
 
 2824       phspac=phspac * (4.*pi) * (2.*pr(3)/amtau)
 
 2831         qxn=pr(4)*pn(4)-pr(1)*pn(1)-pr(2)*pn(2)-pr(3)*pn(3)
 
 2834         brak=2*(gv**2+ga**2)*(2*pxq*qxn+amx2*pxn)
 
 2835      &      -6*(gv**2-ga**2)*amtau*amnuta*amx2
 
 2838       amplit=ccabib**2*gfermi**2/2. * brak * amx2*sigee(amx2,jnpi)
 
 2839       dgamt=1./(2.*amtau)*amplit*phspac
 
 2846       pv(5,nd)=ampik(nd,jnpi)
 
 2848       pmax=amw-ps+ampik(nd,jnpi)
 
 2851       pmax=pmax+ampik(il,jnpi)
 
 2852       pmin=pmin+ampik(il+1,jnpi)
 
 2853   220 phsmax=phsmax*pawt(pmax,pmin,ampik(il,jnpi))/pmax
 
 2860  223  ams1=ams1+ampik(jl,jnpi)
 
 2862       amx =(amx-ampik(il,jnpi))
 
 2864       phsmax=phsmax * (ams2-ams1)
 
 2871       phspac = 1./2.**(6*nd-7) /pi**(3*nd-4)
 
 2873       CALL ranmar(rrr,nd-2)
 
 2877   231 ams1=ams1+ampik(jl,jnpi)
 
 2879       ams2=(amx-ampik(il,jnpi))**2
 
 2881       amx2=ams1+  rr1*(ams2-ams1)
 
 2884       phspac=phspac * (ams2-ams1)
 
 2886       phs=phs* (ams2-ams1)
 
 2887       pa=pawt(pv(5,il),pv(5,il+1),ampik(il,jnpi))
 
 2888       phs   =phs    *pa/pv(5,il)
 
 2890       pa=pawt(pv(5,nd-1),ampik(nd-1,jnpi),ampik(nd,jnpi))
 
 2891       phs   =phs    *pa/pv(5,nd-1)
 
 2894       IF(phsmax.NE.0.0) 
THEN  
 2896         wetmax(jnpi)=1.2d0*max(wetmax(jnpi)/1.2d0,phs/phsmax)
 
 2898         wetmax(jnpi)=1.2d0*wetmax(jnpi)/1.2d0
 
 2901       IF (ncont.EQ.500 000) 
THEN 
 2904             xnpi=xnpi+ampik(kk,jnpi)
 
 2906        WRITE(6,*) 
'ROUNDING INSTABILITY IN DPHNPI ?' 
 2907        WRITE(6,*) 
'AMW=',amw,
'XNPI=',xnpi
 
 2908        WRITE(6,*) 
'IF =AMW= IS NEARLY EQUAL =XNPI= THAT IS IT'  
 2909        WRITE(6,*) 
'PHS=',phs,
'PHSMAX=',phsmax 
 
 2912       IF(rn(1)*phsmax*wetmax(jnpi).GT.phs) go to 100
 
 2914   280 
DO 300 il=1,nd-1
 
 2915       pa=pawt(pv(5,il),pv(5,il+1),ampik(il,jnpi))
 
 2919       ue(1)=sqrt(1.d0-ue(3)**2)*cos(phi)
 
 2920       ue(2)=sqrt(1.d0-ue(3)**2)*sin(phi)
 
 2923   290 pv(j,il+1)=-pa*ue(j)
 
 2924       ppi(4,il)=sqrt(pa**2+ampik(il,jnpi)**2)
 
 2925       pv(4,il+1)=sqrt(pa**2+pv(5,il+1)**2)
 
 2926       phspac=phspac *(4.*pi)*(2.*pa/pv(5,il))
 
 2930   310 ppi(j,nd)=pv(j,nd)
 
 2933   320 be(j)=pv(j,il)/pv(4,il)
 
 2934       gam=pv(4,il)/pv(5,il)
 
 2936       bep=be(1)*ppi(1,i)+be(2)*ppi(2,i)+be(3)*ppi(3,i)
 
 2938   330 ppi(j,i)=ppi(j,i)+gam*(gam*bep/(1.d0+gam)+ppi(4,i))*be(j)
 
 2939       ppi(4,i)=gam*(ppi(4,i)+bep)
 
 2956       FUNCTION sigee(Q2,JNP)                                           
 
 2975       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu             
 
 2976      *                 ,ampiz,ampi,amro,gamro,ama1,gama1                
 
 2977      *                 ,amk,amkz,amkst,gamkst                           
 
 2979       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu             
 
 2980      *                 ,ampiz,ampi,amro,gamro,ama1,gama1                
 
 2981      *                 ,amk,amkz,amkst,gamkst                           
 
 2985      1  7.40,12.00,16.15,21.25,24.90,29.55,34.15,37.40,37.85,37.40,     
 
 2986      2 36.00,33.25,30.50,27.70,24.50,21.25,18.90,                       
 
 2987      3  1.24, 2.50, 3.70, 5.40, 7.45,10.75,14.50,18.20,22.30,28.90,     
 
 2988      4 29.35,25.60,22.30,18.60,14.05,11.60, 9.10,                       
 
 2991      7 9*.0,.65,1.25,2.20,3.15,5.00,5.75,7.80,8.25,                     
 
 2994       DATA pi /3.141592653589793238462643/                              
 
 3007         datsig(i,2) = datsig(i,2)/2.                                    
 
 3008         datsig(i,1) = datsig(i,1) + datsig(i,2)                         
 
 3014         IF(t . gt. s-ampi ) go to 201                                   
 
 3016         fact=(t2/s2)**2*sqrt((s2-t2-ampi2)**2-4.*t2*ampi2)/s2 *2.*t*.05 
 
 3017         fact = fact * (datsig(j,1)+datsig(j+1,1))                       
 
 3018  200    datsig(i,3) = datsig(i,3) + fact                                
 
 3019  201    datsig(i,3) = datsig(i,3) /(2*pi*fpi)**2                        
 
 3020         datsig(i,4) = datsig(i,3)                                       
 
 3021         datsig(i,6) = datsig(i,5)                                       
 
 3024  1000   
FORMAT(///1x,
' EE SIGMA USED IN MULTIPI DECAYS'/                
 
 3030         sigee=datsig(1,jnpi)+                                           
 
 3031      &       (datsig(2,jnpi)-datsig(1,jnpi))*(q-1.)/.05                 
 
 3032       ELSEIF(q.LT.1.8) 
THEN                                              
 3035         IF(q.LT.qmax) go to 2                                           
 
 3038  2      sigee=datsig(i,jnpi)+                                           
 
 3039      &       (datsig(i+1,jnpi)-datsig(i,jnpi)) * (q-qmin)/.05           
 
 3040       ELSEIF(q.GT.1.8) 
THEN                                              
 3041         sigee=datsig(17,jnpi)+                                          
 
 3042      &       (datsig(17,jnpi)-datsig(16,jnpi)) * (q-1.8)/.05            
 
 3044       IF(sigee.LT..0) sigee=0.                                          
 
 3046       sigee = sigee/(6.*pi**2*sig0)                                     
 
 3051       FUNCTION sigold(Q2,JNPI)
 
 3070       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 3071      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 3072      *                 ,amk,amkz,amkst,gamkst
 
 3074       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 3075      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 3076      *                 ,amk,amkz,amkst,gamkst
 
 3080      1  7.40,12.00,16.15,21.25,24.90,29.55,34.15,37.40,37.85,37.40,
 
 3081      2 36.00,33.25,30.50,27.70,24.50,21.25,18.90,
 
 3082      3  1.24, 2.50, 3.70, 5.40, 7.45,10.75,14.50,18.20,22.30,28.90,
 
 3083      4 29.35,25.60,22.30,18.60,14.05,11.60, 9.10,
 
 3085      6 9*.0,.65,1.25,2.20,3.15,5.00,5.75,7.80,8.25/
 
 3087       DATA pi /3.141592653589793238462643/
 
 3095         datsig(i,2) = datsig(i,2)/2.
 
 3096         datsig(i,1) = datsig(i,1) + datsig(i,2)
 
 3102         IF(t . gt. s-ampi ) go to 201
 
 3104         fact=(t2/s2)**2*sqrt((s2-t2-ampi2)**2-4.*t2*ampi2)/s2 *2.*t*.05
 
 3105         fact = fact * (datsig(j,1)+datsig(j+1,1))
 
 3106  200    datsig(i,3) = datsig(i,3) + fact
 
 3107  201    datsig(i,3) = datsig(i,3) /(2*pi*fpi)**2
 
 3110  1000   
FORMAT(///1x,
' EE SIGMA USED IN MULTIPI DECAYS'/
 
 3116         sigee=datsig(1,jnpi)+
 
 3117      &       (datsig(2,jnpi)-datsig(1,jnpi))*(q-1.)/.05
 
 3118       ELSEIF(q.LT.1.8) 
THEN 
 3121         IF(q.LT.qmax) go to 2
 
 3124  2      sigee=datsig(i,jnpi)+
 
 3125      &       (datsig(i+1,jnpi)-datsig(i,jnpi)) * (q-qmin)/.05
 
 3126       ELSEIF(q.GT.1.8) 
THEN 
 3127         sigee=datsig(17,jnpi)+
 
 3128      &       (datsig(17,jnpi)-datsig(16,jnpi)) * (q-1.8)/.05
 
 3130       IF(sigee.LT..0) sigee=0.
 
 3132       sigee = sigee/(6.*pi**2*sig0)
 
 3137       SUBROUTINE dphspk(DGAMT,HV,PN,PAA,PNPI,JAA)
 
 3142       parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
 
 3143       COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
 
 3145       CHARACTER names(nmode)*31
 
 3147       REAL  hv(4),pn(4),paa(4),pim1(4),pim2(4),pipl(4),pnpi(4,9)
 
 3154        amp1=dcdmas(idffin(1,jaa+nm4+nm5+nm6))
 
 3155        amp2=dcdmas(idffin(2,jaa+nm4+nm5+nm6))
 
 3156        amp3=dcdmas(idffin(3,jaa+nm4+nm5+nm6))
 
 3158      $   dphtre(dgamt,hv,pn,paa,pim1,amp1,pim2,amp2,pipl,amp3,keyt,mnum)
 
 3170      $   dphtre(dgamt,hv,pn,paa,pim1,ampa,pim2,ampb,pipl,amp3,keyt,mnum)
 
 3187       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 3188      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 3189      *                 ,amk,amkz,amkst,gamkst
 
 3191       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 3192      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 3193      *                 ,amk,amkz,amkst,gamkst
 
 3194       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 3195       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 3196       REAL  hv(4),pt(4),pn(4),paa(4),pim1(4),pim2(4),pipl(4)
 
 3199       DATA pi /3.141592653589793238462643/
 
 3201       xlam(x,y,z)=sqrt(abs((x-y-z)**2-4.0*y*z))
 
 3206       phspac=1./2**17/pi**8
 
 3216       CALL choice(mnum,rr,ichan,prob1,prob2,prob3,
 
 3217      $            amrx,gamrx,amra,gamra,amrb,gamrb)
 
 3218       IF     (ichan.EQ.1) 
THEN 
 3221       ELSEIF (ichan.EQ.2) 
THEN 
 3230         ams1=(amp1+amp2+amp3)**2
 
 3231         ams2=(amtau-amnuta)**2
 
 3233         alp1=atan((ams1-amrx**2)/amrx/gamrx)
 
 3234         alp2=atan((ams2-amrx**2)/amrx/gamrx)
 
 3235         alp=alp1+rr1*(alp2-alp1)
 
 3236         am3sq =amrx**2+amrx*gamrx*tan(alp)
 
 3238         phspac=phspac*((am3sq-amrx**2)**2+(amrx*gamrx)**2)/(amrx*gamrx)
 
 3239         phspac=phspac*(alp2-alp1)
 
 3244       IF (ichan.LE.2) 
THEN 
 3246         alp1=atan((ams1-amra**2)/amra/gamra)
 
 3247         alp2=atan((ams2-amra**2)/amra/gamra)
 
 3248         alp=alp1+rr2*(alp2-alp1)
 
 3249         am2sq =amra**2+amra*gamra*tan(alp)
 
 3257         am2sq=ams1+   rr2*(ams2-ams1)
 
 3262         enq1=(am2sq-amp2**2+amp3**2)/(2*am2)
 
 3263         enq2=(am2sq+amp2**2-amp3**2)/(2*am2)
 
 3264         ppi=         enq1**2-amp3**2
 
 3265         pppi=sqrt(abs(enq1**2-amp3**2))
 
 3267         phf1=(4*pi)*(2*pppi/am2)
 
 3269         CALL sphera(pppi,pipl)
 
 3279         pr(4)=1./(2*am3)*(am3**2+am2**2-amp1**2)
 
 3280         pr(3)= sqrt(abs(pr(4)**2-am2**2))
 
 3281         ppi  =          pr(4)**2-am2**2
 
 3285         pim2(4)=1./(2*am3)*(am3**2-am2**2+amp1**2)
 
 3287       phf2=(4*pi)*(2*pr(3)/am3)
 
 3289       exe=(pr(4)+pr(3))/am2
 
 3290       CALL bostr3(exe,pipl,pipl)
 
 3291       CALL bostr3(exe,pim1,pim1)
 
 3295       thet =acos(-1.+2*rr3)
 
 3297       CALL rotpol(thet,phi,pipl)
 
 3298       CALL rotpol(thet,phi,pim1)
 
 3299       CALL rotpol(thet,phi,pim2)
 
 3300       CALL rotpol(thet,phi,pr)
 
 3306       paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am3**2)
 
 3307       paa(3)= sqrt(abs(paa(4)**2-am3**2))
 
 3308       ppi   =          paa(4)**2-am3**2
 
 3309       phspac=phspac*(4*pi)*(2*paa(3)/amtau)
 
 3313       pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-am3**2)
 
 3319         alp1=atan((ams1-amra**2)/amra/gamra)
 
 3320         alp2=atan((ams2-amra**2)/amra/gamra)
 
 3321        xpro =      (pim1(3)+pipl(3))**2
 
 3322      $            +(pim1(2)+pipl(2))**2+(pim1(1)+pipl(1))**2
 
 3323        am2sq=-xpro+(pim1(4)+pipl(4))**2
 
 3325        ff1   =       ((am2sq-amra**2)**2+(amra*gamra)**2)/(amra*gamra)
 
 3326        ff1   =ff1     *(alp2-alp1)
 
 3328        gg1   =       (4*pi)*(xlam(am2sq,amp2**2,amp3**2)/am2sq)
 
 3330        gg1   =gg1   *(4*pi)*sqrt(4*xpro/am3sq)
 
 3331        xjaje=gg1*(ams2-ams1)
 
 3335         alp1=atan((ams1-amrb**2)/amrb/gamrb)
 
 3336         alp2=atan((ams2-amrb**2)/amrb/gamrb)
 
 3337        xpro =      (pim2(3)+pipl(3))**2
 
 3338      $            +(pim2(2)+pipl(2))**2+(pim2(1)+pipl(1))**2
 
 3339        am2sq=-xpro+(pim2(4)+pipl(4))**2
 
 3340        ff2   =       ((am2sq-amrb**2)**2+(amrb*gamrb)**2)/(amrb*gamrb)
 
 3341        ff2   =ff2     *(alp2-alp1)
 
 3342        gg2   =       (4*pi)*(xlam(am2sq,amp1**2,amp3**2)/am2sq)
 
 3343        gg2   =gg2   *(4*pi)*sqrt(4*xpro/am3sq)
 
 3344        xjadw=gg2*(ams2-ams1)
 
 3351        IF (ichan.EQ.2) 
THEN 
 3356        IF (xjac1.NE.0.0) a1=prob1/xjac1
 
 3357        IF (xjac2.NE.0.0) a2=prob2/xjac2
 
 3358        IF (xjac3.NE.0.0) a3=prob3/xjac3
 
 3360        IF (a1+a2+a3.NE.0.0) 
THEN 
 3361          phspac=phspac/(a1+a2+a3)
 
 3373       exe=(paa(4)+paa(3))/am3
 
 3374       CALL bostr3(exe,pipl,pipl)
 
 3375       CALL bostr3(exe,pim1,pim1)
 
 3376       CALL bostr3(exe,pim2,pim2)
 
 3377       CALL bostr3(exe,pr,pr)
 
 3380         CALL dampog(pt,pn,pim1,pim2,pipl,amplit,hv)
 
 3384         CALL damppk(mnum,pt,pn,pim1,pim2,pipl,amplit,hv)
 
 3386       IF (keyt.EQ.1.OR.keyt.EQ.2) 
THEN 
 3392       dgamt=1/(2.*amtau)*amplit*phspac
 
 3394       SUBROUTINE dampaa(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV)
 
 3404       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 3405      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 3406      *                 ,amk,amkz,amkst,gamkst
 
 3408       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 3409      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 3410      *                 ,amk,amkz,amkst,gamkst
 
 3411       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 3412       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 3413       COMMON /testa1/ keya1
 
 3414       REAL  hv(4),pt(4),pn(4),pim1(4),pim2(4),pipl(4)
 
 3415       REAL  paa(4),vec1(4),vec2(4)
 
 3416       REAL  pivec(4),piaks(4),hvm(4)
 
 3417       COMPLEX bwign,hadcur(4),fpik
 
 3424       bwign(xm,am,gamma)=1./cmplx(xm**2-am**2,gamma*am)
 
 3428    10 paa(i)=pim1(i)+pim2(i)+pipl(i)
 
 3430       xmaa   =sqrt(abs(paa(4)**2-paa(3)**2-paa(2)**2-paa(1)**2))
 
 3431       xmro1  =sqrt(abs((pipl(4)+pim1(4))**2-(pipl(1)+pim1(1))**2
 
 3432      $                -(pipl(2)+pim1(2))**2-(pipl(3)+pim1(3))**2))
 
 3433       xmro2  =sqrt(abs((pipl(4)+pim2(4))**2-(pipl(1)+pim2(1))**2
 
 3434      $                -(pipl(2)+pim2(2))**2-(pipl(3)+pim2(3))**2))
 
 3436       prod1  =paa(4)*(pim1(4)-pipl(4))-paa(1)*(pim1(1)-pipl(1))
 
 3437      $       -paa(2)*(pim1(2)-pipl(2))-paa(3)*(pim1(3)-pipl(3))
 
 3438       prod2  =paa(4)*(pim2(4)-pipl(4))-paa(1)*(pim2(1)-pipl(1))
 
 3439      $       -paa(2)*(pim2(2)-pipl(2))-paa(3)*(pim2(3)-pipl(3))
 
 3441       vec1(i)= pim1(i)-pipl(i) -paa(i)*prod1/xmaa**2
 
 3442  40   vec2(i)= pim2(i)-pipl(i) -paa(i)*prod2/xmaa**2
 
 3444       IF (keya1.EQ.1) 
THEN 
 3448         fnorm=fa1/sqrt(2.)*faropi*fro2pi
 
 3450         hadcur(i)= cmplx(fnorm) *ama1**2*bwign(xmaa,ama1,gama1)
 
 3451      $              *(cmplx(vec1(i))*amro**2*bwign(xmro1,amro,gamro)
 
 3452      $               +cmplx(vec2(i))*amro**2*bwign(xmro2,amro,gamro))
 
 3455         fnorm=2.0*sqrt(2.)/3.0/fpi
 
 3456         gamax=gama1*gfun(xmaa**2)/gfun(ama1**2)
 
 3458         hadcur(i)= cmplx(fnorm) *ama1**2*bwign(xmaa,ama1,gamax)
 
 3459      $              *(cmplx(vec1(i))*fpik(xmro1)
 
 3460      $               +cmplx(vec2(i))*fpik(xmro2))
 
 3465       CALL clvec(hadcur,pn,pivec)
 
 3466       CALL claxi(hadcur,pn,piaks)
 
 3467       CALL clnut(hadcur,brakm,hvm)
 
 3469       brak= (gv**2+ga**2)*pt(4)*pivec(4) +2.*gv*ga*pt(4)*piaks(4)
 
 3470      &     +2.*(gv**2-ga**2)*amnuta*amtau*brakm
 
 3471       amplit=(gfermi*ccabib)**2*brak/2.
 
 3476       hv(i)=-(amtau*((gv**2+ga**2)*piaks(i)+2.*gv*ga*pivec(i)))
 
 3477      &      +(gv**2-ga**2)*amnuta*amtau*hvm(i)
 
 3487       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 3488      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 3489      *                 ,amk,amkz,amkst,gamkst
 
 3491       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 3492      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 3493      *                 ,amk,amkz,amkst,gamkst
 
 3495        IF (qkwa.LT.(amro+ampi)**2) 
THEN 
 3496           gfun=4.1*(qkwa-9*ampiz**2)**3
 
 3497      $        *(1.-3.3*(qkwa-9*ampiz**2)+5.8*(qkwa-9*ampiz**2)**2)
 
 3499           gfun=qkwa*(1.623+10.38/qkwa-9.32/qkwa**2+0.65/qkwa**3)
 
 3502       COMPLEX FUNCTION bwigs(S,M,G)
 
 3507       REAL pi,pim,qs,qm,w,gs,mk
 
 3512       p(a,b,c)=sqrt(abs(abs(((a+b-c)**2-4.*a*b)/4./a)
 
 3513      $                    +(((a+b-c)**2-4.*a*b)/4./a))/2.0)
 
 3526          qs=p(s,pim**2,mk**2)
 
 3527          qm=p(m**2,pim**2,mk**2)
 
 3529          gs=g*(m/w)*(qs/qm)**3
 
 3530          bw=m**2/cmplx(m**2-s,-m*gs)
 
 3531          qpm=p(pm**2,pim**2,mk**2)
 
 3532          g1=pg*(pm/w)*(qs/qpm)**3
 
 3533          bwp=pm**2/cmplx(pm**2-s,-pm*g1)
 
 3534          bwigs= (bw+pbeta*bwp)/(1+pbeta)
 
 3537       COMPLEX FUNCTION bwig(S,M,G)
 
 3542       REAL pi,pim,qs,qm,w,gs
 
 3551        IF (s.GT.4.*pim**2) 
THEN 
 3552          qs=sqrt(abs(abs(s/4.-pim**2)+(s/4.-pim**2))/2.0)
 
 3553          qm=sqrt(m**2/4.-pim**2)
 
 3555          gs=g*(m/w)*(qs/qm)**3
 
 3559          bwig=m**2/cmplx(m**2-s,-m*gs)
 
 3562       COMPLEX FUNCTION fpik(W)
 
 3567       REAL rom,rog,rom1,rog1,beta1,pi,pim,s,w
 
 3572       IF (init.EQ.0 ) 
THEN 
 3584       fpik= (bwig(s,rom,rog)+beta1*bwig(s,rom1,rog1))
 
 3593       fpirho=cabs(fpik(w))**2
 
 3595       SUBROUTINE clvec(HJ,PN,PIV)
 
 3605       hn= hj(4)*cmplx(pn(4))-hj(3)*cmplx(pn(3))
 
 3606       hh= 
REAL(hj(4)*conjg(hj(4))-hj(3)*conjg(hj(3))
 
 3607      $        -hj(2)*conjg(hj(2))-hj(1)*conjg(hj(1)))
 
 3609    10 piv(i)=4.*
REAL(hn*conjg(hj(i)))-2.*hh*pn(i)
 
 3612       SUBROUTINE claxi(HJ,PN,PIA)
 
 3619       COMMON / jaki   /  jak1,jak2,jakp,jakm,ktom
 
 3620       COMMON / idfc  / idff
 
 3622       COMPLEX hj(4),hjc(4)
 
 3625       det2(i,j)=aimag(hjc(i)*hj(j)-hjc(j)*hj(i))
 
 3630       IF     (ktom.EQ.1.OR.ktom.EQ.-1) 
THEN 
 3631         sign= idff/abs(idff)
 
 3632       ELSEIF (ktom.EQ.2) 
THEN 
 3633         sign=-idff/abs(idff)
 
 3635         print *, 
'STOP IN CLAXI: KTOM=',ktom
 
 3640  10   hjc(i)=conjg(hj(i))
 
 3641       pia(1)= -2.*pn(3)*det2(2,4)+2.*pn(4)*det2(2,3)
 
 3642       pia(2)= -2.*pn(4)*det2(1,3)+2.*pn(3)*det2(1,4)
 
 3643       pia(3)=  2.*pn(4)*det2(1,2)
 
 3644       pia(4)=  2.*pn(3)*det2(1,2)
 
 3647   20  pia(i)=pia(i)*sign
 
 3649       SUBROUTINE clnut(HJ,B,HV)
 
 3661       b=
REAL( HJ(4)*AIMAG(HJ(4)) - HJ(3)*AIMAG(HJ(3))
     &      - HJ(2)*AIMAG(HJ(2)) - HJ(1)*AIMAG(HJ(1))  )
 
 3664       SUBROUTINE dampog(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV)
 
 3674       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 3675      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 3676      *                 ,amk,amkz,amkst,gamkst
 
 3678       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 3679      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 3680      *                 ,amk,amkz,amkst,gamkst
 
 3681       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 3682       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 3683       COMMON /testa1/ keya1
 
 3684       REAL  hv(4),pt(4),pn(4),pim1(4),pim2(4),pipl(4)
 
 3685       REAL  paa(4),vec1(4),vec2(4)
 
 3686       REAL  pivec(4),piaks(4),hvm(4)
 
 3687       COMPLEX bwign,hadcur(4),fnorm,formom
 
 3697    10 paa(i)=pim1(i)+pim2(i)+pipl(i)
 
 3700       xmaa   =sqrt(abs(paa(4)**2-paa(3)**2-paa(2)**2-paa(1)**2))
 
 3701       xmom   =sqrt(abs( (pim2(4)+pipl(4))**2-(pim2(3)+pipl(3))**2
 
 3702      $                 -(pim2(2)+pipl(2))**2-(pim2(1)+pipl(1))**2   ))
 
 3703       xmro2  =(pipl(1))**2 +(pipl(2))**2 +(pipl(3))**2
 
 3705       prod1  =vec1(1)*pipl(1)
 
 3706       prod2  =vec2(2)*pipl(2)
 
 3707       p12    =pim1(4)*pim2(4)-pim1(1)*pim2(1)
 
 3708      $       -pim1(2)*pim2(2)-pim1(3)*pim2(3)
 
 3709       p1pl   =pim1(4)*pipl(4)-pim1(1)*pipl(1)
 
 3710      $       -pim1(2)*pipl(2)-pim1(3)*pipl(3)
 
 3711       p2pl   =pipl(4)*pim2(4)-pipl(1)*pim2(1)
 
 3712      $       -pipl(2)*pim2(2)-pipl(3)*pim2(3)
 
 3714         vec1(i)= (vec1(i)-prod1/xmro2*pipl(i))
 
 3716         gnorm=sqrt(vec1(1)**2+vec1(2)**2+vec1(3)**2)
 
 3718         vec1(i)= vec1(i)/gnorm
 
 3720       vec2(1)=(vec1(2)*pipl(3)-vec1(3)*pipl(2))/sqrt(xmro2)
 
 3721       vec2(2)=(vec1(3)*pipl(1)-vec1(1)*pipl(3))/sqrt(xmro2)
 
 3722       vec2(3)=(vec1(1)*pipl(2)-vec1(2)*pipl(1))/sqrt(xmro2)
 
 3723       p1vec1   =pim1(4)*vec1(4)-pim1(1)*vec1(1)
 
 3724      $         -pim1(2)*vec1(2)-pim1(3)*vec1(3)
 
 3725       p2vec1   =vec1(4)*pim2(4)-vec1(1)*pim2(1)
 
 3726      $         -vec1(2)*pim2(2)-vec1(3)*pim2(3)
 
 3727       p1vec2   =pim1(4)*vec2(4)-pim1(1)*vec2(1)
 
 3728      $         -pim1(2)*vec2(2)-pim1(3)*vec2(3)
 
 3729       p2vec2   =vec2(4)*pim2(4)-vec2(1)*pim2(1)
 
 3730      $         -vec2(2)*pim2(2)-vec2(3)*pim2(3)
 
 3732       fnorm=formom(xmaa,xmom)
 
 3737         hadcur(i) = fnorm *(
 
 3738      $             vec1(i)*(ampi**2*p1pl-p2pl*(p12-p1pl))
 
 3739      $            -pim2(i)*(p2vec1*p1pl-p1vec1*p2pl)
 
 3740      $            +pipl(i)*(p2vec1*p12 -p1vec1*(ampi**2+p2pl))  )
 
 3742         hadcur(i) = fnorm *(
 
 3743      $             vec2(i)*(ampi**2*p1pl-p2pl*(p12-p1pl))
 
 3744      $            -pim2(i)*(p2vec2*p1pl-p1vec2*p2pl)
 
 3745      $            +pipl(i)*(p2vec2*p12 -p1vec2*(ampi**2+p2pl))  )
 
 3750       CALL clvec(hadcur,pn,pivec)
 
 3751       CALL claxi(hadcur,pn,piaks)
 
 3752       CALL clnut(hadcur,brakm,hvm)
 
 3754       brak=brak+(gv**2+ga**2)*pt(4)*pivec(4) +2.*gv*ga*pt(4)*piaks(4)
 
 3755      &         +2.*(gv**2-ga**2)*amnuta*amtau*brakm
 
 3757       hv(i)=hv(i)-(amtau*((gv**2+ga**2)*piaks(i)+2.*gv*ga*pivec(i)))
 
 3758      &      +(gv**2-ga**2)*amnuta*amtau*hvm(i)
 
 3762       amplit=(gfermi*ccabib)**2*brak/2.
 
 3771       SUBROUTINE damppk(MNUM,PT,PN,PIM1,PIM2,PIM3,AMPLIT,HV)
 
 3781       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 3782      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 3783      *                 ,amk,amkz,amkst,gamkst
 
 3785       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 3786      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 3787      *                 ,amk,amkz,amkst,gamkst
 
 3788       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 3789       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 3792       REAL  hv(4),pt(4),pn(4),pim1(4),pim2(4),pim3(4)
 
 3793       REAL  paa(4),vec1(4),vec2(4),vec3(4),vec4(4),vec5(4)
 
 3794       REAL  pivec(4),piaks(4),hvm(4)
 
 3795       REAL fnorm(0:7),coef
 
 3796       DOUBLE PRECISION getfpirpt
 
 3797       COMPLEX hadcur(4),form1,form2,form3,form4,form5,uroj
 
 3798       COMPLEX f1,f2,f3,f4,f5
 
 3799       EXTERNAL form1,form2,form3,form4,form5
 
 3800       DATA pi /3.141592653589793238462643/
 
 3804       IF (icont.EQ.0) 
THEN     
 3810        IF (iver.EQ.0.OR.mnum.NE.0) 
THEN  
 3812         ELSEIF (iver.EQ.1) 
THEN 
 3815          write(*,*) 
'wrong IVER=',iver
 
 3822        fnorm(4)=scabib/fpi/dwapi0
 
 3830    10 paa(i)=pim1(i)+pim2(i)+pim3(i)
 
 3831       xmaa   =sqrt(abs(paa(4)**2-paa(3)**2-paa(2)**2-paa(1)**2))
 
 3832       xmro1  =sqrt(abs((pim3(4)+pim2(4))**2-(pim3(1)+pim2(1))**2
 
 3833      $                -(pim3(2)+pim2(2))**2-(pim3(3)+pim2(3))**2))
 
 3834       xmro2  =sqrt(abs((pim3(4)+pim1(4))**2-(pim3(1)+pim1(1))**2
 
 3835      $                -(pim3(2)+pim1(2))**2-(pim3(3)+pim1(3))**2))
 
 3836       xmro3  =sqrt(abs((pim1(4)+pim2(4))**2-(pim1(1)+pim2(1))**2
 
 3837      $                -(pim1(2)+pim2(2))**2-(pim1(3)+pim2(3))**2))
 
 3839       prod1  =paa(4)*(pim2(4)-pim3(4))-paa(1)*(pim2(1)-pim3(1))
 
 3840      $       -paa(2)*(pim2(2)-pim3(2))-paa(3)*(pim2(3)-pim3(3))
 
 3841       prod2  =paa(4)*(pim3(4)-pim1(4))-paa(1)*(pim3(1)-pim1(1))
 
 3842      $       -paa(2)*(pim3(2)-pim1(2))-paa(3)*(pim3(3)-pim1(3))
 
 3843       prod3  =paa(4)*(pim1(4)-pim2(4))-paa(1)*(pim1(1)-pim2(1))
 
 3844      $       -paa(2)*(pim1(2)-pim2(2))-paa(3)*(pim1(3)-pim2(3))
 
 3846       vec1(i)= pim2(i)-pim3(i) -paa(i)*prod1/xmaa**2
 
 3847       vec2(i)= pim3(i)-pim1(i) -paa(i)*prod2/xmaa**2
 
 3848       vec3(i)= pim1(i)-pim2(i) -paa(i)*prod3/xmaa**2
 
 3849  40   vec4(i)= pim1(i)+pim2(i)+pim3(i)
 
 3850       CALL prod5(pim1,pim2,pim3,vec5)
 
 3854       f1 = cmplx(coef(1,mnum))*form1(mnum,xmaa**2,xmro1**2,xmro2**2)
 
 3855       f2 = cmplx(coef(2,mnum))*form2(mnum,xmaa**2,xmro2**2,xmro1**2)
 
 3856       f3 = cmplx(coef(3,mnum))*form3(mnum,xmaa**2,xmro3**2,xmro1**2)
 
 3858      $cmplx(coef(4,mnum))*form4(mnum,xmaa**2,xmro1**2,xmro2**2,xmro3**2)
 
 3859       f5 = (-1.0)*uroj/4.0/pi**2/fpi**2*
 
 3860      $     cmplx(coef(5,mnum))*form5(mnum,xmaa**2,xmro1**2,xmro2**2)
 
 3863       hadcur(i)= cmplx(fnorm(mnum)) * (
 
 3864      $  cmplx(vec1(i))*f1+cmplx(vec2(i))*f2+cmplx(vec3(i))*f3+
 
 3865      $  cmplx(vec4(i))*f4+cmplx(vec5(i))*f5)
 
 3869       CALL clvec(hadcur,pn,pivec)
 
 3870       CALL claxi(hadcur,pn,piaks)
 
 3871       CALL clnut(hadcur,brakm,hvm)
 
 3873       brak= (gv**2+ga**2)*pt(4)*pivec(4) +2.*gv*ga*pt(4)*piaks(4)
 
 3874      &     +2.*(gv**2-ga**2)*amnuta*amtau*brakm
 
 3875       amplit=(gfermi)**2*brak/2.
 
 3877         print *, 
'MNUM=',mnum
 
 3883         IF (k.EQ.4) znak=1.0
 
 3884         xm1=znak*pim1(k)**2+xm1
 
 3885         xm2=znak*pim2(k)**2+xm2
 
 3886         xm3=znak*pim3(k)**2+xm3
 
 3887  77     print *, 
'PIM1=',pim1(k),
'PIM2=',pim2(k),
'PIM3=',pim3(k)
 
 3888         print *, 
'XM1=',sqrt(xm1),
'XM2=',sqrt(xm2),
'XM3=',sqrt(xm3)
 
 3889         print *, 
'************************************************' 
 3893       hv(i)=-(amtau*((gv**2+ga**2)*piaks(i)+2.*gv*ga*pivec(i)))
 
 3894      &      +(gv**2-ga**2)*amnuta*amtau*hvm(i)
 
 3899       SUBROUTINE prod5(P1,P2,P3,PIA)
 
 3905       COMMON / jaki   /  jak1,jak2,jakp,jakm,ktom
 
 3906       COMMON / idfc  / idff
 
 3907       REAL pia(4),p1(4),p2(4),p3(4)
 
 3908       det2(i,j)=p1(i)*p2(j)-p2(i)*p1(j)
 
 3910       IF     (ktom.EQ.1.OR.ktom.EQ.-1) 
THEN 
 3911         sign= idff/abs(idff)
 
 3912       ELSEIF (ktom.EQ.2) 
THEN 
 3913         sign=-idff/abs(idff)
 
 3915         print *, 
'STOP IN PROD5: KTOM=',ktom
 
 3921       pia(1)= -p3(3)*det2(2,4)+p3(4)*det2(2,3)+p3(2)*det2(3,4)
 
 3922       pia(2)= -p3(4)*det2(1,3)+p3(3)*det2(1,4)-p3(1)*det2(3,4)
 
 3923       pia(3)=  p3(4)*det2(1,2)-p3(2)*det2(1,4)+p3(1)*det2(2,4)
 
 3924       pia(4)=  p3(3)*det2(1,2)-p3(2)*det2(1,3)+p3(1)*det2(2,3)
 
 3927   20  pia(i)=pia(i)*sign
 
 3930       SUBROUTINE dexnew(MODE,ISGN,POL,PNU,PAA,PNPI,JNPI)
 
 3941       COMMON / inout / inut,iout
 
 3942       REAL  pol(4),hv(4),paa(4),pnu(4),pnpi(4,9),rn(1)
 
 3948         CALL dadnew( -1,isgn,hv,pnu,paa,pnpi,jdumm)
 
 3951       ELSEIF(mode.EQ. 0) 
THEN 
 3954         IF(iwarm.EQ.0) goto 902
 
 3955         CALL dadnew( 0,isgn,hv,pnu,paa,pnpi,jnpi)
 
 3956         wt=(1+pol(1)*hv(1)+pol(2)*hv(2)+pol(3)*hv(3))/2.
 
 3959           IF(rn(1).GT.wt) goto 300
 
 3961       ELSEIF(mode.EQ. 1) 
THEN 
 3963         CALL dadnew( 1,isgn,hv,pnu,paa,pnpi,jdumm)
 
 3968  902  
WRITE(iout, 9020)
 
 3969  9020 
FORMAT(
' ----- DEXNEW: LACK OF INITIALISATION')
 
 3972       SUBROUTINE dadnew(MODE,ISGN,HV,PNU,PWB,PNPI,JNPI)
 
 3974       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 3975      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 3976      *                 ,amk,amkz,amkst,gamkst
 
 3978       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 3979      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 3980      *                 ,amk,amkz,amkst,gamkst
 
 3981       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 3982       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 3983       COMMON / taubmc / gampmc(30),gamper(30),nevdec(30)
 
 3984       REAL*4            gampmc    ,gamper
 
 3985       COMMON / inout / inut,iout
 
 3986       parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
 
 3987       COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
 
 3989       CHARACTER names(nmode)*31
 
 3991       REAL*4 pnu(4),pwb(4),pnpi(4,9),hv(4),hhv(4)
 
 3992       REAL*4 pdum1(4),pdum2(4),pdumi(4,9)
 
 3995       REAL*8              swt(nmode),sswt(nmode)
 
 3996       dimension nevraw(nmode),nevovr(nmode),nevacc(nmode)
 
 3998       DATA pi /3.141592653589793238462643/
 
 4017         IF (jnpi.LE.nm4) 
THEN 
 4019           wtmax(jnpi) = pkorb(3,37+jnpi)
 
 4025           ELSEIF(jnpi.LE.nm4) 
THEN  
 4026             CALL dph4pi(wt,hv,pdum1,pdum2,pdumi,jnpi)
 
 4027           ELSEIF(jnpi.LE.nm4+nm5) 
THEN 
 4028              CALL dph5pi(wt,hv,pdum1,pdum2,pdumi,jnpi)
 
 4029           ELSEIF(jnpi.LE.nm4+nm5+nm6) 
THEN 
 4030             CALL dphnpi(wt,hv,pdum1,pdum2,pdumi,jnpi)
 
 4031           ELSEIF(jnpi.LE.nm4+nm5+nm6+nm3) 
THEN 
 4032             inum=jnpi-nm4-nm5-nm6
 
 4033             CALL dphspk(wt,hv,pdum1,pdum2,pdumi,inum)
 
 4034           ELSEIF(jnpi.LE.nm4+nm5+nm6+nm3+nm2) 
THEN 
 4035             inum=jnpi-nm4-nm5-nm6-nm3
 
 4036             CALL dphsrk(wt,hv,pdum1,pdum2,pdumi,inum)
 
 4040         IF(wt.GT.wtmax(jnpi)/1.2) wtmax(jnpi)=wt*1.2
 
 4048       ELSEIF(mode.EQ. 0) 
THEN 
 4050         IF(iwarm.EQ.0) goto 902
 
 4055           ELSEIF(jnpi.LE.nm4) 
THEN 
 4056              CALL dph4pi(wt,hhv,pnu,pwb,pnpi,jnpi)
 
 4057           ELSEIF(jnpi.LE.nm4+nm5) 
THEN 
 4058              CALL dph5pi(wt,hhv,pnu,pwb,pnpi,jnpi)
 
 4059           ELSEIF(jnpi.LE.nm4+nm5+nm6) 
THEN 
 4060             CALL dphnpi(wt,hhv,pnu,pwb,pnpi,jnpi) 
 
 4061           ELSEIF(jnpi.LE.nm4+nm5+nm6+nm3) 
THEN 
 4062             inum=jnpi-nm4-nm5-nm6
 
 4063             CALL dphspk(wt,hhv,pnu,pwb,pnpi,inum)
 
 4064           ELSEIF(jnpi.LE.nm4+nm5+nm6+nm3+nm2) 
THEN 
 4065             inum=jnpi-nm4-nm5-nm6-nm3
 
 4066             CALL dphsrk(wt,hhv,pnu,pwb,pnpi,inum)
 
 4074         nevraw(jnpi)=nevraw(jnpi)+1
 
 4075         swt(jnpi)=swt(jnpi)+wt
 
 4078         sswt(jnpi)=sswt(jnpi)+dble(wt)**2
 
 4082         IF(wt.GT.wtmax(jnpi)) nevovr(jnpi)=nevovr(jnpi)+1
 
 4083         IF(rn*wtmax(jnpi).GT.wt) goto 300
 
 4085         costhe=-1.+2.*rrr(2)
 
 4088         CALL rotor2(thet,pnu,pnu)
 
 4089         CALL rotor3( phi,pnu,pnu)
 
 4090         CALL rotor2(thet,pwb,pwb)
 
 4091         CALL rotor3( phi,pwb,pwb)
 
 4092         CALL rotor2(thet,hv,hv)
 
 4093         CALL rotor3( phi,hv,hv)
 
 4096         CALL rotor2(thet,pnpi(1,i),pnpi(1,i))
 
 4097         CALL rotor3( phi,pnpi(1,i),pnpi(1,i))
 
 4099         nevacc(jnpi)=nevacc(jnpi)+1
 
 4101       ELSEIF(mode.EQ. 1) 
THEN 
 4104           IF(nevraw(jnpi).EQ.0) goto 500
 
 4105           pargam=swt(jnpi)/float(nevraw(jnpi)+1)
 
 4107           IF(nevraw(jnpi).NE.0)
 
 4108      &    error=sqrt(sswt(jnpi)/swt(jnpi)**2-1./float(nevraw(jnpi)))
 
 4110           WRITE(iout, 7010) names(jnpi),
 
 4111      &     nevraw(jnpi),nevacc(jnpi),nevovr(jnpi),pargam,rat,error
 
 4113           gampmc(8+jnpi-1)=rat
 
 4114           gamper(8+jnpi-1)=error
 
 4120  7003 
FORMAT(///1x,15(5h*****)
 
 4121      $ /,
' *',     25x,
'******** DADNEW INITIALISATION ********',9x,1h*
 
 4123  7004 
FORMAT(
' *',e20.5,5x,
'WTMAX  = MAXIMUM WEIGHT  ',9x,1h*/)
 
 4125      $  /,1x,15(5h*****)/)
 
 4126  7010 
FORMAT(///1x,15(5h*****)
 
 4127      $ /,
' *',     25x,
'******** DADNEW FINAL REPORT  ******** ',9x,1h*
 
 4128      $ /,
' *',     25x,
'CHANNEL:',a31                           ,9x,1h*
 
 4129      $ /,
' *',i20  ,5x,
'NEVRAW = NO. OF DECAYS TOTAL           ',9x,1h*
 
 4130      $ /,
' *',i20  ,5x,
'NEVACC = NO. OF DECAYS ACCEPTED        ',9x,1h*
 
 4131      $ /,
' *',i20  ,5x,
'NEVOVR = NO. OF OVERWEIGHTED EVENTS    ',9x,1h*
 
 4132      $ /,
' *',e20.5,5x,
'PARTIAL WTDTH IN GEV UNITS             ',9x,1h*
 
 4133      $ /,
' *',f20.9,5x,
'IN UNITS GFERMI**2*MASS**5/192/PI**3   ',9x,1h*
 
 4134      $ /,
' *',f20.8,5x,
'RELATIVE ERROR OF PARTIAL WIDTH        ',9x,1h*
 
 4135      $  /,1x,15(5h*****)/)
 
 4136  902  
WRITE(iout, 9020)
 
 4137  9020 
FORMAT(
' ----- DADNEW: LACK OF INITIALISATION')
 
 4139  903  
WRITE(iout, 9030) jnpi,mode
 
 4140  9030 
FORMAT(
' ----- DADNEW: WRONG JNPI',2i5)
 
 4145       SUBROUTINE dph4pi(DGAMT,HV,PN,PAA,PMULT,JNPI)
 
 4150       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 4151      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 4152      *                 ,amk,amkz,amkst,gamkst
 
 4154       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 4155      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 4156      *                 ,amk,amkz,amkst,gamkst
 
 4157       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 4158       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 4159       REAL  hv(4),pt(4),pn(4),paa(4),pim1(4),pim2(4),pipl(4),pmult(4,9)
 
 4162       REAL*8 uu,ff,ff1,ff2,ff3,ff4,gg1,gg2,gg3,gg4,rr
 
 4163       DATA pi /3.141592653589793238462643/
 
 4165       xlam(x,y,z)=sqrt(abs((x-y-z)**2-4.0*y*z))
 
 4170       phspac=1./2**23/pi**11
 
 4199       CALL choice(100+jnpi,rrb,ichan,prob1,prob2,prob3,
 
 4200      $            amrop,gamrop,amrx,gamrx,amrb,gamrb)
 
 4214         ams1=(amp1+amp2+amp3+amp4)**2
 
 4215         ams2=(amtau-amnuta)**2
 
 4216         alp1=atan((ams1-amrop**2)/amrop/gamrop)
 
 4217         alp2=atan((ams2-amrop**2)/amrop/gamrop)
 
 4218         alp=alp1+rr1*(alp2-alp1)
 
 4219         am4sq =amrop**2+amrop*gamrop*tan(alp)
 
 4222      $         ((am4sq-amrop**2)**2+(amrop*gamrop)**2)/(amrop*gamrop)
 
 4223         phspac=phspac*(alp2-alp1)
 
 4227         ams1=(amp2+amp3+amp4)**2
 
 4229         IF (rrr(9).GT.prez) 
THEN 
 4230           am3sq=ams1+   rr1*(ams2-ams1)
 
 4236         alp1=atan((ams1-amrx**2)/amrx/gamrx)
 
 4237         alp2=atan((ams2-amrx**2)/amrx/gamrx)
 
 4238         alp=alp1+rr1*(alp2-alp1)
 
 4239         am3sq =amrx**2+amrx*gamrx*tan(alp)
 
 4242         ff1=((am3sq-amrx**2)**2+(amrx*gamrx)**2)/(amrx*gamrx)
 
 4250         am2sq=ams1+   rr2*(ams2-ams1)
 
 4255         enq1=(am2sq-amp3**2+amp4**2)/(2*am2)
 
 4256         enq2=(am2sq+amp3**2-amp4**2)/(2*am2)
 
 4257         ppi=         enq1**2-amp4**2
 
 4258         pppi=sqrt(abs(enq1**2-amp4**2))
 
 4259         phspac=phspac*(4*pi)*(2*pppi/am2)
 
 4261         CALL sphera(pppi,piz)
 
 4271         pr(4)=1./(2*am3)*(am3**2+am2**2-amp2**2)
 
 4272         pr(3)= sqrt(abs(pr(4)**2-am2**2))
 
 4273         ppi  =          pr(4)**2-am2**2
 
 4277         pim1(4)=1./(2*am3)*(am3**2-am2**2+amp2**2)
 
 4280         ff3=(4*pi)*(2*pr(3)/am3)
 
 4282       exe=(pr(4)+pr(3))/am2
 
 4283       CALL bostr3(exe,piz,piz)
 
 4284       CALL bostr3(exe,pipl,pipl)
 
 4287       thet =acos(-1.+2*rr3)
 
 4289       CALL rotpol(thet,phi,pipl)
 
 4290       CALL rotpol(thet,phi,pim1)
 
 4291       CALL rotpol(thet,phi,piz)
 
 4292       CALL rotpol(thet,phi,pr)
 
 4297         pr(4)=1./(2*am4)*(am4**2+am3**2-amp1**2)
 
 4298         pr(3)= sqrt(abs(pr(4)**2-am3**2))
 
 4299         ppi  =          pr(4)**2-am3**2
 
 4303         pim2(4)=1./(2*am4)*(am4**2-am3**2+amp1**2)
 
 4306         ff4=(4*pi)*(2*pr(3)/am4)
 
 4308       exe=(pr(4)+pr(3))/am3
 
 4309       CALL bostr3(exe,piz,piz)
 
 4310       CALL bostr3(exe,pipl,pipl)
 
 4311       CALL bostr3(exe,pim1,pim1)
 
 4314       thet =acos(-1.+2*rr3)
 
 4316       CALL rotpol(thet,phi,pipl)
 
 4317       CALL rotpol(thet,phi,pim1)
 
 4318       CALL rotpol(thet,phi,pim2)
 
 4319       CALL rotpol(thet,phi,piz)
 
 4320       CALL rotpol(thet,phi,pr)
 
 4326       paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am4**2)
 
 4327       paa(3)= sqrt(abs(paa(4)**2-am4**2))
 
 4328       ppi   =          paa(4)**2-am4**2
 
 4329       phspac=phspac*(4*pi)*(2*paa(3)/amtau)
 
 4330       phsp=phsp*(4*pi)*(2*paa(3)/amtau)
 
 4334       pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-am4**2)
 
 4337         IF(rrr(9).LE.0.5*prez) 
THEN 
 4346         am3sq=(pim1(4)+piz(4)+pipl(4))**2-(pim1(3)+piz(3)+pipl(3))**2
 
 4347      $       -(pim1(2)+piz(2)+pipl(2))**2-(pim1(1)+piz(1)+pipl(1))**2
 
 4349         ams1=(amp1+amp3+amp4)**2
 
 4352         ams2=(sqrt(am3sq)-amp1)**2
 
 4354         ff3=(4*pi)*(xlam(am2**2,amp1**2,am3sq)/am3sq)
 
 4355         ff4=(4*pi)*(xlam(am3sq,amp2**2,am4**2)/am4**2)
 
 4358         am3sq=(pim1(4)+piz(4)+pipl(4))**2-(pim1(3)+piz(3)+pipl(3))**2
 
 4359      $       -(pim1(2)+piz(2)+pipl(2))**2-(pim1(1)+piz(1)+pipl(1))**2
 
 4361         ams1=(amp1+amp3+amp4)**2
 
 4362         alp1=atan((ams1-amrx**2)/amrx/gamrx)
 
 4363         alp2=atan((ams2-amrx**2)/amrx/gamrx)
 
 4364         ff1=((am3sq-amrx**2)**2+(amrx*gamrx)**2)/(amrx*gamrx)
 
 4367         ams2=(sqrt(am3sq)-amp1)**2
 
 4369         ff3=(4*pi)*(xlam(am2**2,amp1**2,am3sq)/am3sq)
 
 4370         ff4=(4*pi)*(xlam(am3sq,amp2**2,am4**2)/am4**2)
 
 4373         am3sq=(pim2(4)+piz(4)+pipl(4))**2-(pim2(3)+piz(3)+pipl(3))**2
 
 4374      $       -(pim2(2)+piz(2)+pipl(2))**2-(pim2(1)+piz(1)+pipl(1))**2
 
 4376         ams1=(amp2+amp3+amp4)**2
 
 4377         alp1=atan((ams1-amrx**2)/amrx/gamrx)
 
 4378         alp2=atan((ams2-amrx**2)/amrx/gamrx)
 
 4379         gg1=((am3sq-amrx**2)**2+(amrx*gamrx)**2)/(amrx*gamrx)
 
 4382         ams2=(sqrt(am3sq)-amp2)**2
 
 4384         gg3=(4*pi)*(xlam(am2**2,amp2**2,am3sq)/am3sq)
 
 4385         gg4=(4*pi)*(xlam(am3sq,amp1**2,am4**2)/am4**2)
 
 4389         IF ( (0.5*prez*(ff+gg)*uu+(1.0-prez)*ff*gg).GT.0.0d0) 
THEN 
 4390           rr=ff*gg*uu/(0.5*prez*(ff+gg)*uu+(1.0-prez)*ff*gg)
 
 4418       exe=(paa(4)+paa(3))/am4
 
 4419       CALL bostr3(exe,piz,piz)
 
 4420       CALL bostr3(exe,pipl,pipl)
 
 4421       CALL bostr3(exe,pim1,pim1)
 
 4422       CALL bostr3(exe,pim2,pim2)
 
 4423       CALL bostr3(exe,pr,pr)
 
 4432         CALL dam4pi(jnpi,pt,pn,pim1,pim2,piz,pipl,amplit,hv)
 
 4433       ELSEIF (jnpi.EQ.2) 
THEN 
 4434         CALL dam4pi(jnpi,pt,pn,pim1,pim2,pipl,piz,amplit,hv)
 
 4436       dgamt=1/(2.*amtau)*amplit*phspac
 
 4446       SUBROUTINE dam4pi(MNUM,PT,PN,PIM1,PIM2,PIM3,PIM4,AMPLIT,HV)
 
 4456       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu
 
 4457      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 4458      *                 ,amk,amkz,amkst,gamkst
 
 4460       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu
 
 4461      *                 ,ampiz,ampi,amro,gamro,ama1,gama1
 
 4462      *                 ,amk,amkz,amkst,gamkst
 
 4463       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel
 
 4464       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel
 
 4465       REAL  hv(4),pt(4),pn(4),pim1(4),pim2(4),pim3(4),pim4(4)
 
 4466       REAL  pivec(4),piaks(4),hvm(4)
 
 4467       COMPLEX hadcur(4),form1,form2,form3,form4,form5
 
 4468       EXTERNAL form1,form2,form3,form4,form5
 
 4469       DATA pi /3.141592653589793238462643/
 
 4472       CALL curr_cleo(mnum,pim1,pim2,pim3,pim4,hadcur)
 
 4475       CALL clvec(hadcur,pn,pivec)
 
 4476       CALL claxi(hadcur,pn,piaks)
 
 4477       CALL clnut(hadcur,brakm,hvm)
 
 4479       brak= (gv**2+ga**2)*pt(4)*pivec(4) +2.*gv*ga*pt(4)*piaks(4)
 
 4480      &     +2.*(gv**2-ga**2)*amnuta*amtau*brakm
 
 4481       amplit=(ccabib*gfermi)**2*brak/2.
 
 4484       hv(i)=-(amtau*((gv**2+ga**2)*piaks(i)+2.*gv*ga*pivec(i)))
 
 4485      &      +(gv**2-ga**2)*amnuta*amtau*hvm(i)
 
 4490       SUBROUTINE dph5pi(DGAMT,HV,PN,PAA,PMULT,JNPI)                    
 
 4495       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu             
 
 4496      *                 ,ampiz,ampi,amro,gamro,ama1,gama1                
 
 4497      *                 ,amk,amkz,amkst,gamkst                           
 
 4499       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu             
 
 4500      *                 ,ampiz,ampi,amro,gamro,ama1,gama1                
 
 4503      *                 ,amk,amkz,amkst,gamkst                           
 
 4504       COMMON / decpar / gfermi,gv,ga,ccabib,scabib,gamel                
 
 4505       REAL*4            gfermi,gv,ga,ccabib,scabib,gamel                
 
 4506       parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
 
 4507       COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
 
 4509       CHARACTER names(nmode)*31
 
 4510       REAL  hv(4),pt(4),pn(4),paa(4),pmult(4,9) 
 
 4511       REAL*4 pr(4),pi1(4),pi2(4),pi3(4),pi4(4),pi5(4)                   
 
 4512       REAL*8 amp1,amp2,amp3,amp4,amp5,ams1,ams2,amom,gamom
 
 4513       REAL*8 am5sq,am4sq,am3sq,am2sq,am5,am4,am3
 
 4515       REAL*8 gg1,gg2,gg3,ff1,ff2,ff3,ff4,alp,alp1,alp2
 
 4520       DATA pi /3.141592653589793238462643/                              
 
 4526       bwign(xm,am,gamma)=xm**2/cmplx(xm**2-am**2,gamma*am)            
 
 4534       phspac=1./2**29/pi**14                                            
 
 4537       amp1=dcdmas(idffin(1,jnpi))
 
 4538       amp2=dcdmas(idffin(2,jnpi))
 
 4539       amp3=dcdmas(idffin(3,jnpi))
 
 4540       amp4=dcdmas(idffin(4,jnpi))
 
 4541       amp5=dcdmas(idffin(5,jnpi))
 
 4556       ams1=(amp1+amp2+amp3+amp4+amp5)**2                                
 
 4557       ams2=(amtau-amnuta)**2                                            
 
 4558       am5sq=ams1+   rr1*(ams2-ams1)                                     
 
 4560       phspac=phspac*(ams2-ams1)  
 
 4565       ams1=(amp2+amp3+amp4+amp5)**2                                     
 
 4567       am4sq=ams1+   rr1*(ams2-ams1)                                     
 
 4574       ams1=(amp2+amp3+amp4)**2                                          
 
 4576       alp1=atan((ams1-amom**2)/amom/gamom)                              
 
 4577       alp2=atan((ams2-amom**2)/amom/gamom)                              
 
 4578       alp=alp1+rr1*(alp2-alp1)                                          
 
 4579       am3sq =amom**2+amom*gamom*tan(alp)                                
 
 4582       gg2=((am3sq-amom**2)**2+(amom*gamom)**2)/(amom*gamom)             
 
 4595       am2sq=ams1+   rr2*(ams2-ams1)                                     
 
 4601       enq1=(am2sq+amp3**2-amp4**2)/(2*am2)                              
 
 4602       enq2=(am2sq-amp3**2+amp4**2)/(2*am2)                              
 
 4603       ppi=          enq1**2-amp3**2                                     
 
 4604       pppi=sqrt(abs(enq1**2-amp3**2))                                   
 
 4605       ff1=(4*pi)*(2*pppi/am2)                                           
 
 4607       call sphera(pppi,pi3)                                             
 
 4618       pr(4)=1./(2*am3)*(am3**2+am2**2-amp2**2)                          
 
 4619       pr(3)= sqrt(abs(pr(4)**2-am2**2))                                 
 
 4620       ppi  =          pr(4)**2-am2**2                                   
 
 4624       pi2(4)=1./(2*am3)*(am3**2-am2**2+amp2**2)                         
 
 4627       ff2=(4*pi)*(2*pr(3)/am3)                                          
 
 4629       exe=(pr(4)+pr(3))/am2                                             
 
 4630       call bostr3(exe,pi3,pi3)                                          
 
 4631       call bostr3(exe,pi4,pi4)                                          
 
 4634       thet =acos(-1.+2*rr3)                                             
 
 4636       call rotpol(thet,phi,pi2)                                         
 
 4637       call rotpol(thet,phi,pi3)                                         
 
 4638       call rotpol(thet,phi,pi4)                                         
 
 4644       pr(4)=1./(2*am4)*(am4**2+am3**2-amp5**2)                          
 
 4645       pr(3)= sqrt(abs(pr(4)**2-am3**2))                                 
 
 4646       ppi  =          pr(4)**2-am3**2                                   
 
 4650       pi5(4)=1./(2*am4)*(am4**2-am3**2+amp5**2)                         
 
 4653       ff3=(4*pi)*(2*pr(3)/am4)                                          
 
 4655       exe=(pr(4)+pr(3))/am3                                             
 
 4656       call bostr3(exe,pi2,pi2)                                          
 
 4657       call bostr3(exe,pi3,pi3)                                          
 
 4658       call bostr3(exe,pi4,pi4)                                          
 
 4661       thet =acos(-1.+2*rr3)                                             
 
 4663       call rotpol(thet,phi,pi2)                                         
 
 4664       call rotpol(thet,phi,pi3)                                         
 
 4665       call rotpol(thet,phi,pi4)                                         
 
 4666       call rotpol(thet,phi,pi5)                                         
 
 4672       pr(4)=1./(2*am5)*(am5**2+am4**2-amp1**2)                          
 
 4673       pr(3)= sqrt(abs(pr(4)**2-am4**2))                                 
 
 4674       ppi  =          pr(4)**2-am4**2                                   
 
 4678       pi1(4)=1./(2*am5)*(am5**2-am4**2+amp1**2)                         
 
 4681       ff4=(4*pi)*(2*pr(3)/am5)                                          
 
 4683       exe=(pr(4)+pr(3))/am4                                             
 
 4684       call bostr3(exe,pi2,pi2)                                          
 
 4685       call bostr3(exe,pi3,pi3)                                          
 
 4686       call bostr3(exe,pi4,pi4)                                          
 
 4687       call bostr3(exe,pi5,pi5)                                          
 
 4690       thet =acos(-1.+2*rr3)                                             
 
 4692       call rotpol(thet,phi,pi1)                                         
 
 4693       call rotpol(thet,phi,pi2)                                         
 
 4694       call rotpol(thet,phi,pi3)                                         
 
 4695       call rotpol(thet,phi,pi4)                                         
 
 4696       call rotpol(thet,phi,pi5)                                         
 
 4705       paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am5sq)                    
 
 4706       paa(3)= sqrt(abs(paa(4)**2-am5sq))                                
 
 4707       ppi   =          paa(4)**2-am5sq                                  
 
 4708       phspac=phspac*(4*pi)*(2*paa(3)/amtau)                             
 
 4712       pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-am5**2)                    
 
 4715       phspac=phspac * gg1*gg2*gg3*ff1*ff2*ff3*ff4                       
 
 4719       exe=(paa(4)+paa(3))/am5                                           
 
 4720       call bostr3(exe,pi1,pi1)                                          
 
 4721       call bostr3(exe,pi2,pi2)                                          
 
 4722       call bostr3(exe,pi3,pi3)                                          
 
 4723       call bostr3(exe,pi4,pi4)                                          
 
 4724       call bostr3(exe,pi5,pi5)                                          
 
 4732       qxn=paa(4)*pn(4)-paa(1)*pn(1)-paa(2)*pn(2)-paa(3)*pn(3)           
 
 4733       brak=2*(gv**2+ga**2)*(2*pxq*qxn+am5sq*pxn)                        
 
 4734      &    -6*(gv**2-ga**2)*amtau*amnuta*am5sq                           
 
 4735       fompp = cabs(bwign(am3,amom,gamom))**2                            
 
 4740       amplit=ccabib**2*gfermi**2/2. * brak                              
 
 4741       amplit = amplit * fompp * fnorm                                   
 
 4744       dgamt=1/(2.*amtau)*amplit*phspac                                  
 
 4762       SUBROUTINE dphsrk(DGAMT,HV,PN,PR,PMULT,INUM)
 
 4768       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu             
 
 4769      *                 ,ampiz,ampi,amro,gamro,ama1,gama1                
 
 4770      *                 ,amk,amkz,amkst,gamkst                           
 
 4772       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu             
 
 4773      *                 ,ampiz,ampi,amro,gamro,ama1,gama1                
 
 4774      *                 ,amk,amkz,amkst,gamkst                           
 
 4776       REAL  hv(4),pt(4),pn(4),pr(4),pkc(4),pkz(4),qq(4),pmult(4,9)
 
 4778       DATA pi /3.141592653589793238462643/                              
 
 4782       phspac=1./2**11/pi**5      
 
 4790       ams2=(amtau-amnuta)**2                                            
 
 4793       amx2=ams1+   rr1(1)*(ams2-ams1)                                      
 
 4795       phspac=phspac*(ams2-ams1)                                         
 
 4813       pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-amx**2)                    
 
 4814       pn(3)=-sqrt(abs((pn(4)-amnuta)*(pn(4)+amnuta)))                        
 
 4818       pr(4)=1./(2*amtau)*(amtau**2-amnuta**2+amx**2)                    
 
 4820       phspac=phspac*(4*pi)*(2*pr(3)/amtau)                              
 
 4823       enq1=(amx2+amk**2-amkz**2)/(2.*amx)                               
 
 4824       enq2=(amx2-amk**2+amkz**2)/(2.*amx)                               
 
 4825       pppi=sqrt(abs(enq1-amk)*(enq1+amk))                                  
 
 4826       phspac=phspac*(4*pi)*(2*pppi/amx)                                 
 
 4828       CALL sphera(pppi,pkc)                                             
 
 4834       exe=(pr(4)+pr(3))/amx                                             
 
 4836       CALL bostr3(exe,pkc,pkc)                                          
 
 4837       CALL bostr3(exe,pkz,pkz)     
 
 4840       CALL dam2pi(3,pt,pn,pkc,pkz,amplit,hv)
 
 4841       dgamt=1/(2.*amtau)*amplit*phspac
 
 4853       COMMON / parmas / amtau,amnuta,amel,amnue,ammu,amnumu             
 
 4854      *                 ,ampiz,ampi,amro,gamro,ama1,gama1                
 
 4855      *                 ,amk,amkz,amkst,gamkst                           
 
 4857       REAL*4            amtau,amnuta,amel,amnue,ammu,amnumu             
 
 4858      *                 ,ampiz,ampi,amro,gamro,ama1,gama1                
 
 4859      *                 ,amk,amkz,amkst,gamkst                           
 
 4862       fpirk=cabs(fpikm(w,amk,amkz))**2                                  
 
 4865       COMPLEX FUNCTION fpikmk(W,XM1,XM2)                                
 
 4870       REAL rom,rog,rom1,rog1,beta1,pi,pim,s,w                           
 
 4875       IF (init.EQ.0 ) 
THEN                                               
 4888       fpikmk=(bwigm(s,rom,rog,xm1,xm2)+beta1*bwigm(s,rom1,rog1,xm1,xm2))
 
 4897       SUBROUTINE dwrph(KTO,PHX)
 
 4901       IMPLICIT REAL*8 (a-h,o-z)
 
 4912         IF (qhot(4).GT.1.e-5) CALL dwluph(kto,qhot)
 
 4915       SUBROUTINE dwluph(KTO,PHOT)
 
 4926       COMMON /taupos/ np1,np2
 
 4929       IF (phot(4).LE.0.0) 
RETURN 
 4932       IF((kto.EQ. 1).OR.(kto.EQ.11)) 
THEN 
 4939       IF(ktos.GT.10) ktos=ktos-10
 
 4941       CALL tralo4(ktos,phot,phot,am)
 
 4942       CALL filhep(0,1,22,nps,nps,0,0,phot,0.0,.true.)
 
 4947       SUBROUTINE dwluel(KTO,ISGN,PNU,PWB,PEL,PNE)
 
 4957       REAL  pnu(4),pwb(4),pel(4),pne(4)
 
 4958       COMMON /taupos/ np1,np2
 
 4968       CALL tralo4(kto,pnu,pnu,am)
 
 4969       CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
 
 4972       CALL tralo4(kto,pwb,pwb,am)
 
 4976       CALL tralo4(kto,pel,pel,am)
 
 4977       CALL filhep(0,1,11*isgn,nps,nps,0,0,pel,am,.false.)
 
 4980       CALL tralo4(kto,pne,pne,am)
 
 4981       CALL filhep(0,1,-12*isgn,nps,nps,0,0,pne,am,.true.)
 
 4985       SUBROUTINE dwlumu(KTO,ISGN,PNU,PWB,PMU,PNM)
 
 4995       REAL  pnu(4),pwb(4),pmu(4),pnm(4)
 
 4996       COMMON /taupos/ np1,np2
 
 5006       CALL tralo4(kto,pnu,pnu,am)
 
 5007       CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
 
 5010       CALL tralo4(kto,pwb,pwb,am)
 
 5014       CALL tralo4(kto,pmu,pmu,am)
 
 5015       CALL filhep(0,1,13*isgn,nps,nps,0,0,pmu,am,.false.)
 
 5018       CALL tralo4(kto,pnm,pnm,am)
 
 5019       CALL filhep(0,1,-14*isgn,nps,nps,0,0,pnm,am,.true.)
 
 5023       SUBROUTINE dwlupi(KTO,ISGN,PPI,PNU)
 
 5034       COMMON /taupos/ np1,np2
 
 5044       CALL tralo4(kto,pnu,pnu,am)
 
 5045       CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
 
 5048       CALL tralo4(kto,ppi,ppi,am)
 
 5049       CALL filhep(0,1,-211*isgn,nps,nps,0,0,ppi,am,.true.)
 
 5053       SUBROUTINE dwluro(KTO,ISGN,PNU,PRHO,PIC,PIZ)
 
 5063       REAL  pnu(4),prho(4),pic(4),piz(4)
 
 5064       COMMON /taupos/ np1,np2
 
 5074       CALL tralo4(kto,pnu,pnu,am)
 
 5075       CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
 
 5078       CALL tralo4(kto,prho,prho,am)
 
 5079       CALL filhep(0,2,-213*isgn,nps,nps,0,0,prho,am,.true.)
 
 5082       CALL tralo4(kto,pic,pic,am)
 
 5083       CALL filhep(0,1,-211*isgn,-1,-1,0,0,pic,am,.true.)
 
 5086       CALL tralo4(kto,piz,piz,am)
 
 5087       CALL filhep(0,1,111,-2,-2,0,0,piz,am,.true.)
 
 5091       SUBROUTINE dwluaa(KTO,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA)
 
 5102       REAL  pnu(4),paa(4),pim1(4),pim2(4),pipl(4)
 
 5103       COMMON /taupos/ np1,np2
 
 5113       CALL tralo4(kto,pnu,pnu,am)
 
 5114       CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
 
 5117       CALL tralo4(kto,paa,paa,am)
 
 5118       CALL filhep(0,1,-20213*isgn,nps,nps,0,0,paa,am,.true.)
 
 5126         CALL tralo4(kto,pim2,pim2,am)
 
 5127         CALL filhep(0,1,-211*isgn,-1,-1,0,0,pim2,am,.true.)
 
 5130         CALL tralo4(kto,pim1,pim1,am)
 
 5131         CALL filhep(0,1,-211*isgn,-2,-2,0,0,pim1,am,.true.)
 
 5134         CALL tralo4(kto,pipl,pipl,am)
 
 5135         CALL filhep(0,1, 211*isgn,-3,-3,0,0,pipl,am,.true.)
 
 5137       ELSE IF (jaa.EQ.2) 
THEN 
 5142         CALL tralo4(kto,pim2,pim2,am)
 
 5143         CALL filhep(0,1,111,-1,-1,0,0,pim2,am,.true.)
 
 5146         CALL tralo4(kto,pim1,pim1,am)
 
 5147         CALL filhep(0,1,111,-2,-2,0,0,pim1,am,.true.)
 
 5150         CALL tralo4(kto,pipl,pipl,am)
 
 5151         CALL filhep(0,1,-211*isgn,-3,-3,0,0,pipl,am,.true.)
 
 5157       SUBROUTINE dwlukk (KTO,ISGN,PKK,PNU)
 
 5167       COMMON /taupos/ np1,np2
 
 5177       CALL tralo4(kto,pnu,pnu,am)
 
 5178       CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
 
 5181       CALL tralo4(kto,pkk,pkk,am)
 
 5182       CALL filhep(0,1,-321*isgn,nps,nps,0,0,pkk,am,.true.)
 
 5186       SUBROUTINE dwluks(KTO,ISGN,PNU,PKS,PKK,PPI,JKST)
 
 5187       COMMON / taukle / bra1,brk0,brk0b,brks
 
 5188       REAL*4            bra1,brk0,brk0b,brks
 
 5198       REAL  pnu(4),pks(4),pkk(4),ppi(4),xio(1)
 
 5199       COMMON /taupos/ np1,np2
 
 5209       CALL tralo4(kto,pnu,pnu,am)
 
 5210       CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
 
 5213       CALL tralo4(kto,pks,pks,am)
 
 5214       CALL filhep(0,1,-323*isgn,nps,nps,0,0,pks,am,.true.)
 
 5222         CALL tralo4(kto,ppi,ppi,am)
 
 5223         CALL filhep(0,1,-211*isgn,-1,-1,0,0,ppi,am,.true.)
 
 5226         IF (isgn.EQ.-1) bran=brk0
 
 5229         IF(xio(1).GT.bran) 
THEN 
 5235         CALL tralo4(kto,pkk,pkk,am)
 
 5236         CALL filhep(0,1,k0type,-2,-2,0,0,pkk,am,.true.)
 
 5238       ELSE IF(jkst.EQ.20) 
THEN 
 5243         CALL tralo4(kto,ppi,ppi,am)
 
 5244         CALL filhep(0,1,111,-1,-1,0,0,ppi,am,.true.)
 
 5247         CALL tralo4(kto,pkk,pkk,am)
 
 5248         CALL filhep(0,1,-321*isgn,-2,-2,0,0,pkk,am,.true.)
 
 5254       SUBROUTINE dwlnew(KTO,ISGN,PNU,PWB,PNPI,MODE)
 
 5264       parameter(nmode=15,nm1=0,nm2=1,nm3=8,nm4=2,nm5=1,nm6=3)
 
 5265       COMMON / taudcd /idffin(9,nmode),mulpik(nmode)
 
 5267       COMMON /taupos/ np1,np2
 
 5268       CHARACTER names(nmode)*31
 
 5269       REAL  pnu(4),pwb(4),pnpi(4,9)
 
 5281       CALL tralo4(kto,pnu,pnu,am)
 
 5282       CALL filhep(0,1,16*isgn,nps,nps,0,0,pnu,am,.true.)
 
 5285       CALL tralo4(kto,pwb,pwb,am)
 
 5286       CALL filhep(0,1,-24*isgn,nps,nps,0,0,pwb,am,.true.)
 
 5293         kfpi=lunpik(idffin(i,jnpi),-isgn)
 
 5299         CALL tralo4(kto,ppi,ppi,am)
 
 5300         CALL filhep(0,1,kfpi,-i,-i,0,0,ppi,am,.true.)
 
 5311       IMPLICIT REAL*8 (a-h,o-z)
 
 5313       aaa=pp(4)**2-pp(3)**2-pp(2)**2-pp(1)**2
 
 5315       IF(aaa.NE.0.0) aaa=aaa/sqrt(abs(aaa))
 
 5327       aaa=pp(4)**2-pp(3)**2-pp(2)**2-pp(1)**2
 
 5328       IF(aaa.NE.0.0) aaa=aaa/sqrt(abs(aaa))
 
 5337       IMPLICIT DOUBLE PRECISION (a-h,o-z)
 
 5338       DATA pi /3.141592653589793238462643d0/
 
 5340       IF(abs(y).LT.abs(x)) 
THEN 
 5342         IF(x.LE.0d0) the=pi-the
 
 5344         the=acos(x/sqrt(x**2+y**2))
 
 5355       IMPLICIT DOUBLE PRECISION (a-h,o-z)
 
 5356       DATA pi /3.141592653589793238462643d0/
 
 5358       IF(abs(y).LT.abs(x)) 
THEN 
 5360         IF(x.LE.0d0) the=pi-the
 
 5362         the=acos(x/sqrt(x**2+y**2))
 
 5364       IF(y.LT.0d0) the=2d0*pi-the
 
 5367       SUBROUTINE rotod1(PH1,PVEC,QVEC)
 
 5372       IMPLICIT DOUBLE PRECISION (a-h,o-z)
 
 5373       dimension pvec(4),qvec(4),rvec(4)
 
 5381       qvec(2)= cs*rvec(2)-sn*rvec(3)
 
 5382       qvec(3)= sn*rvec(2)+cs*rvec(3)
 
 5386       SUBROUTINE rotod2(PH1,PVEC,QVEC)
 
 5391       IMPLICIT DOUBLE PRECISION (a-h,o-z)
 
 5392       dimension pvec(4),qvec(4),rvec(4)
 
 5399       qvec(1)= cs*rvec(1)+sn*rvec(3)
 
 5401       qvec(3)=-sn*rvec(1)+cs*rvec(3)
 
 5405       SUBROUTINE rotod3(PH1,PVEC,QVEC)
 
 5410       IMPLICIT DOUBLE PRECISION (a-h,o-z)
 
 5412       dimension pvec(4),qvec(4),rvec(4)
 
 5418       qvec(1)= cs*rvec(1)-sn*rvec(2)
 
 5419       qvec(2)= sn*rvec(1)+cs*rvec(2)
 
 5423       SUBROUTINE bostr3(EXE,PVEC,QVEC)
 
 5429       REAL*4 pvec(4),qvec(4),rvec(4)
 
 5442       SUBROUTINE bostd3(EXE,PVEC,QVEC)
 
 5448       IMPLICIT DOUBLE PRECISION (a-h,o-z)
 
 5449       dimension pvec(4),qvec(4),rvec(4)
 
 5463       SUBROUTINE rotor1(PH1,PVEC,QVEC)
 
 5468       REAL*4 pvec(4),qvec(4),rvec(4)
 
 5476       qvec(2)= cs*rvec(2)-sn*rvec(3)
 
 5477       qvec(3)= sn*rvec(2)+cs*rvec(3)
 
 5480       SUBROUTINE rotor2(PH1,PVEC,QVEC)
 
 5485       IMPLICIT REAL*4(a-h,o-z)
 
 5486       REAL*4 pvec(4),qvec(4),rvec(4)
 
 5493       qvec(1)= cs*rvec(1)+sn*rvec(3)
 
 5495       qvec(3)=-sn*rvec(1)+cs*rvec(3)
 
 5498       SUBROUTINE rotor3(PHI,PVEC,QVEC)
 
 5503       REAL*4 pvec(4),qvec(4),rvec(4)
 
 5509       qvec(1)= cs*rvec(1)-sn*rvec(2)
 
 5510       qvec(2)= sn*rvec(1)+cs*rvec(2)
 
 5514       SUBROUTINE spherd(R,X)
 
 5519       REAL*8  r,x(4),pi,costh,sinth
 
 5521       DATA pi /3.141592653589793238462643d0/
 
 5525       sinth=sqrt(1 -costh**2)
 
 5526       x(1)=r*sinth*cos(2*pi*rrr(2))
 
 5527       x(2)=r*sinth*sin(2*pi*rrr(2))
 
 5531       SUBROUTINE rotpox(THET,PHI,PP)
 
 5532       IMPLICIT REAL*8 (a-h,o-z)
 
 5538       CALL rotod2(thet,pp,pp)
 
 5539       CALL rotod3( phi,pp,pp)
 
 5542       SUBROUTINE sphera(R,X)
 
 5550       DATA pi /3.141592653589793238462643/
 
 5554       sinth=sqrt(1.-costh**2)
 
 5555       x(1)=r*sinth*cos(2*pi*rrr(2))
 
 5556       x(2)=r*sinth*sin(2*pi*rrr(2))
 
 5560       SUBROUTINE rotpol(THET,PHI,PP)
 
 5567       CALL rotor2(thet,pp,pp)
 
 5568       CALL rotor3( phi,pp,pp)
 
 5571       SUBROUTINE ranmar(RVEC,LENV)
 
 5587       COMMON / inout / inut,iout
 
 5589       common/raset1/u(97),c,i97,j97
 
 5590       parameter(modcns=1000000000)
 
 5591       DATA ntot,ntot2,ijkl/-1,0,0/
 
 5593       IF (ntot .GE. 0)  go to 50
 
 5602       entry      rmarin(ijklin, ntotin,ntot2n)
 
 5611       ntot = max(ntotin,0)
 
 5612       ntot2= max(ntot2n,0)
 
 5617       kl = ijkl - 30082*ij
 
 5618       i = mod(ij/177, 177) + 2
 
 5619       j = mod(ij, 177)     + 2
 
 5620       k = mod(kl/169, 178) + 1
 
 5622       WRITE(iout,201) ijkl,ntot,ntot2
 
 5623  201  
FORMAT(1x,
' RANMAR INITIALIZED: ',i10,2x,2i10)
 
 5628          m = mod(mod(i*j,179)*k, 179)
 
 5632          l = mod(53*l+1, 169)
 
 5633          IF (mod(l*m,64) .GE. 32)  s = s+t
 
 5638     4 twom24 = 0.5*twom24
 
 5640       cd =  7654321.*twom24
 
 5641       cm = 16777213.*twom24
 
 5646       DO 45 loop2= 1, ntot2+1
 
 5648       IF (loop2 .EQ. ntot2+1)  now=ntot
 
 5649       IF (now .GT. 0)  
THEN 
 5650        WRITE (iout,
'(A,I15)') 
' RMARIN SKIPPING OVER ',now
 
 5651        DO 40 idum = 1, ntot
 
 5653        IF (uni .LT. 0.)  uni=uni+1.
 
 5656        IF (i97 .EQ. 0)  i97=97
 
 5658        IF (j97 .EQ. 0)  j97=97
 
 5660        IF (c .LT. 0.)  c=c+cm
 
 5664       IF (kalled .EQ. 1)  
RETURN 
 5668       DO 100 ivec= 1, lenv
 
 5670       IF (uni .LT. 0.)  uni=uni+1.
 
 5673       IF (i97 .EQ. 0)  i97=97
 
 5675       IF (j97 .EQ. 0)  j97=97
 
 5677       IF (c .LT. 0.)  c=c+cm
 
 5679       IF (uni .LT. 0.) uni=uni+1.
 
 5681          IF (uni .EQ. 0.)  
THEN 
 5684          IF (uni .EQ. 0.) uni= twom24*twom24
 
 5689          IF (ntot .GE. modcns)  
THEN 
 5691          ntot = ntot - modcns
 
 5695       entry rmarut(ijklut,ntotut,ntot2t)
 
 5703       IMPLICIT REAL*8(a-h,o-z)
 
 5706       IF(x .LT.-1.0) go to 1
 
 5707       IF(x .LE. 0.5) go to 2
 
 5708       IF(x .EQ. 1.0) go to 3
 
 5709       IF(x .LE. 2.0) go to 4
 
 5713       z=z-0.5* log(abs(x))**2
 
 5719     3 dilogt=1.64493406684822
 
 5723       z=1.64493406684822 - log(x)* log(abs(t))
 
 5724     5 y=2.66666666666666 *t+0.66666666666666
 
 5725       b=      0.00000 00000 00001
 
 5726       a=y*b  +0.00000 00000 00004
 
 5727       b=y*a-b+0.00000 00000 00011
 
 5728       a=y*b-a+0.00000 00000 00037
 
 5729       b=y*a-b+0.00000 00000 00121
 
 5730       a=y*b-a+0.00000 00000 00398
 
 5731       b=y*a-b+0.00000 00000 01312
 
 5732       a=y*b-a+0.00000 00000 04342
 
 5733       b=y*a-b+0.00000 00000 14437
 
 5734       a=y*b-a+0.00000 00000 48274
 
 5735       b=y*a-b+0.00000 00001 62421
 
 5736       a=y*b-a+0.00000 00005 50291
 
 5737       b=y*a-b+0.00000 00018 79117
 
 5738       a=y*b-a+0.00000 00064 74338
 
 5739       b=y*a-b+0.00000 00225 36705
 
 5740       a=y*b-a+0.00000 00793 87055
 
 5741       b=y*a-b+0.00000 02835 75385
 
 5742       a=y*b-a+0.00000 10299 04264
 
 5743       b=y*a-b+0.00000 38163 29463
 
 5744       a=y*b-a+0.00001 44963 00557
 
 5745       b=y*a-b+0.00005 68178 22718
 
 5746       a=y*b-a+0.00023 20021 96094
 
 5747       b=y*a-b+0.00100 16274 96164
 
 5748       a=y*b-a+0.00468 63619 59447
 
 5749       b=y*a-b+0.02487 93229 24228
 
 5750       a=y*b-a+0.16607 30329 27855
 
 5751       a=y*a-b+1.93506 43008 6996