      program pcou
c     computes abs(fc )**2 for point Coulomb
      Implicit Real*8  (a-h,o-z)
      Real*8 k0,mn,mpi,mn2,mp2,na,ko2,nz
      Dimension scoul(30)
c      tpilab=50.0 !pion lab kinetic energy
      k0=122.1840 ! pion mom. in com taken from output
      hbarc=197.3289
      pi=3.141593
      mpi=139.578
      na=4.0
      ff1=1
      mn=938.256*na
      zp=1.0 !pi +
      nz=2.0 !helio
      mn2=mn*mn
      mpi2=mpi*mpi
      ko2=k0*k0
      emnos = Sqrt(ko2+mn2)
      epios = Sqrt(ko2+mpi2)
      xgam = zp*nz/137.036/(k0*(emnos+epios)/emnos/epios)
      eta = xgam
      Call sigcl (eta,scoul,2,30)
      sig0 = scoul(1)
      Do i=3,180,3
        phasec = sin(i*pi/360.)
        fcoul = (-xgam*ff1/2./k0/phasec/phasec)*hbarc
        phasec = -2.*xgam*log(phasec)
        rhl6 = phasec+2*sig0
        phasec = phasec+2.*sig0
        rhl = fcoul*cos(phasec)
        rhl5 =fcoul*sin(phasec)
c       convert to mb from fm**2
        dsigma = 10.0*(rhl*rhl+rhl5*rhl5)     
        write(6,*)i,dsigma  
      End Do
      Stop
      End

      Subroutine sigcl (eta,scou,lmax,ldim)
c *** see RH Landau, Program lpott, 1981
c
c     nb lmax must be variable
      Implicit  Real*8   (a-h,o-z)
      Dimension scou(ldim), ft(5)
      abeta = abs(eta)
      If (lmax.gt.ldim) lmax = ldim
      If (abeta-1.e-06) 10,10,30
 10   Do 20 i=1,lmax
         scou(i) = 0.e0
 20   Continue
      GoTo 100
 30   c = 1.e0/(eta*eta+2601.e0)
      ch = Sqrt(c)
      theta = atan(eta/51.e0)
      Do 40 m=1,5
         ft(m) = sin(theta*(2*m-1))
 40   Continue
      sig2 = 50.5*theta-eta*(log(ch)+1.)
      sig2 = sig2-ch*(ft(1)/12.-c*(ft(2)/360.-c*(ft(3)/1260.-c*(ft(4)/
     11680.-c*ft(5)/1188.))))
      lmax1 = 50-lmax
      If (lmax1) 70,70,50
 50   Do 60 i=1,lmax1
         l = 51-i
         sig2 = sig2-atan(eta/l)
 60   Continue
 70   lmax1 = lmax1+2
      scou(lmax) = sig2-atan(eta/lmax)
      If (lmax1-50) 80,80,100
 80   Do 90 i=lmax1,50
         l = 51-i
         scou(l) = scou(l+1)-atan(eta/l)
 90   Continue
 100  Continue
      Return
      End
