c**********************************************************************
      subroutine cross (x1, y1, x2, y2, ksicr) 

      implicit real*8 (a-h,o-z)

      z=0.0d0

      if ( y1*y2 .gt. z ) goto 600
      if ( x1*y2 .ne. x2*y1 .or. x1*x2 .gt. z ) goto 100
      ksicr=4
      return

 100  if (y1*y2 .lt. z) goto 300
      if (y2 .eq. z) goto 200
      if (x1 .gt. z) goto 600
      if (y2 .gt. z) goto 700
      goto 800

 200  if (y1 .eq. z .or. x2 .gt. z) goto 600
      if (y1 .gt. z) goto 800
      goto 700

 300  if (y1 .gt. z) goto 400
      if (x1*y2 .ge. y1*x2) goto 600
      ksicr=2
      return

 400  if (y1*x2 .ge. x1*y2) goto 600
      ksicr=-2
      return

 600  ksicr=0
      return

 700  ksicr=1
      return

 800  ksicr=-1
      return
      end

