anchor.diff:    type(polygon_type), pointer :: next_polygon
     real(kind=8) :: x1, y1, x2, y2
     integer :: i1, i2
  +  logical :: do_intersect
   
     do i1 = 1, current_polygon%num_of_point
       i2 = mod(i1, current_polygon%num_of_point) + 1
  
positive.code: !=======+=========+=========+=========+=========+=========+=========+=========+
  
  subroutine search_next_polygon(xs, ys, xe, ye, x, y, current_polygon, next_polygon)
    use jcf_sphere_lib, only : is_cross_line
    implicit none
    real(kind=8), intent(IN) :: xs, ys, xe, ye
    real(kind=8), intent(OUT) :: x, y
  
negative.code:     y1 = current_polygon%point(i1)%ptr%y
      x2 = current_polygon%point(i2)%ptr%x
      y2 = current_polygon%point(i2)%ptr%y
  !!$    if (is_cross_line(ys, xs, ye, xe, y1, x1, y2, x2, y, x)) then
      call get_intersection_point(&
           &  x, y, do_intersect,&
           & xs,ys,xe,ye,x1,y1,x2,y2 )
      if ( do_intersect ) then
        next_polygon => current_polygon%next_polygon(i1)%ptr
        return
      end if
  