anchor.diff:    implicit none
     private &
          MAX_INTERSECT_SUBDIVISIONS, MAX_CANDIDATES, CANDIDATES_ODD, &
  -       CANDIDATES_EVEN, make_candidates
  +       CANDIDATES_EVEN, INTERSECTIONS_WORKSPACE, make_candidates
     public &
          BoxIntersectionType_INTERSECTION, BoxIntersectionType_TANGENT, &
          BoxIntersectionType_DISJOINT, FROM_LINEARIZED_SUCCESS, &
  
positive.code:     integer(c_int), intent(out) :: num_intersections
      integer(c_int), intent(out) :: status
      ! Variables outside of signature.
      real(c_double), allocatable :: intersections_workspace(:, :)
      integer(c_int) :: num_candidates, num_next_candidates, index_, py_exc
      logical(c_bool) :: is_even
  
  
negative.code:           call intersect_one_round( &
                 nodes_first, nodes_second, &
                 num_candidates, CANDIDATES_ODD, &
                 num_intersections, INTERSECTIONS_WORKSPACE, &
                 CANDIDATES_EVEN, num_next_candidates, py_exc)
         end if
  
  