c/* @(#)excula.f	1.1      latest revision 6/13/90 09:17:53 */
      subroutine EXCULA(xx,k0,neles,za,zb,zc,zd,ze, zf, zzcul,sefz)
************************************************************************

c     Calculation of experimental quantities in Bystricky
c     Lehar and Winternitz, Journal de Physique, 39 (1978) p.11

      implicit real*8 (a-h, k, o-y)
      implicit complex*16 (z)

      dimension sefz(25)

c >>> FIRST EXECUTABLE STATEMENT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

      pi = 3.141593d+0
      zi = (0.,1.0)

c *** conjugates ***

      zcul = zzcul/197.329d+0

c *** storage for sigtot ***

      za0 = za
      zb0 = zb
      za  = za + zcul
      zb  = zb + zcul
      zac = CONJG( za )
      zbc = CONJG( zb )
      zcc = CONJG( zc )
      zdc = CONJG( zd )
      zec = CONJG( ze )
      zfc = CONJG( zf )
      ab  = ABS( za )
      bb  = ABS( zb )
      cb  = ABS( zc )
      db  = ABS( zd )
      eb  = ABS( ze )
      fb  = ABS( zf )
      a2  = ab * ab
      b2  = bb * bb
      c2  = cb * cb
      d2  = db * db
      e2  = eb * eb
      f2  = fb * fb
      zapb = za + zb
      amasb = ABS( zapb )
      amasb2 = amasb * amasb
      sefz(11) = 0.5 * amasb2
c
      ai000 = (a2 + b2 + c2 + d2 + e2 + f2)/2.
      a00nn = (a2 - b2 - c2 + d2 + e2 - f2)/2./ai000
      pn000 = (zac * ze + zbc*zf)/ai000
c        mod 6/90 for 2' stored as sefz(15), in expera.f too
      p0n00 = (zac * ze - zbc*zf)/ai000
      k0lm0 = -zi * (zcc * ze - zdc*zf)/ai000
      clm00 = -zi * (zdc * ze + zcc*zf)/ai000
      Dn0n0 = (a2 + b2 - c2 - d2 + e2 + f2)/2./ai000
      Dl0m0 = -zi * (zbc * ze + zac*zf)/ai000
      Dm0m0 = (zac * zb  +  zcc * zd - zec*zf)/ai000
      Dl0l0 = (zac * zb  -  zcc * zd - zec*zf)/ai000
c
      a00lm = zi * (zdc * ze + zcc * zf)/ai000
      a00ml = zi * (zdc * ze - zcc * zf)/ai000
      a00mm = (zac * zd + zbc * zc)/ai000
      a00ll = -(zac * zd - zbc * zc)/ai000
c
      sefz(1) = ai000
      sefz(2) = a00nn
      sefz(3) = pn000
      sefz(4) = k0lm0
      sefz(5) = clm00
      sefz(6) = Dn0n0
      sefz(7) = Dl0m0
      sefz(8) = Dm0m0
      sefz(9) = Dl0l0
c
      sefz(20) = a00lm
      sefz(21) = a00ml
      sefz(22) = a00mm
      sefz(23) = a00ll
c
      sefz(10) = 0.25 * e2
      sefz(15) = p0n00

c *** Still need to convert to millibarns ***

c *** Computes the total cross sections using the
c *** optical theorem, that is for xx=1.0

      IF (xx .le. 0.99) go to 70
      fac = 2. * pi/k0
      sig0t = -zi * fac * (za0 + zb0)
      sig1t = -zi * fac * (zc + zd)
      sig2t = -2. * fac * zi * zd
      sefz(16) = sig0t
      sefz(17) = sig1t
      sefz(18) = sig2t

 70   RETURN
      end
