      subroutine gsarc(xc,yc,angl)
      INCLUDE 'Parametres.f'
c
      parameter (precis=0.02,precmin=.2)
ccc(g77)      parameter (nn=int(6.3/precis)+4)
      parameter (nn=520)
      dimension xarc(nn),yarc(nn)
c
      data pis180  / 0.0174532925199433 /
c
      call gsqcp(x,y)
      r = sqrt((xc-x)**2 + (yc-y)**2)
c
cc      arg = acos( (x-xc)/r )
cc      if ( (y-yc).lt.0. ) arg = -arg
      arg = atan2(y-yc,x-xc)
      argmax = arg + angl*pis180
c
      prec = 2.*r*precis/(x1clipmed-x0clipmed)
      prec = min(precmin,max(precis,prec))
      if (argmax.lt.arg) then
        sig = -1.
      else
        sig = 1.
      endif
c
      xarc(1) = x
      yarc(1) = y
      n = 1
   10 arg = arg+sig*prec
      n = n+1
      if (sig*arg.lt.sig*argmax) then
        xarc(n) = xc + r*cos(arg)
        yarc(n) = yc + r*sin(arg)
        goto 10
      else
        xarc(n) = xc + r*cos(argmax)
        yarc(n) = yc + r*sin(argmax)
      endif
      call gsplne(n,xarc,yarc)
      end

