anchor.diff:      start_node2 = nodes2(:1, :)
       end_node2 = nodes2(3:, :)
       ! NOTE: This curve isn't close to linear, but that's OK.
  -    error2 = nan_val
  +    call linearization_error( &
  +         3, 2, nodes2, error2)
   
       call from_linearized( &
            error1, 0.0_dp, 1.0_dp, start_node1, end_node1, 3, nodes1, &
  
positive.code:     logical(c_bool), intent(inout) :: success
      ! Variables outside of signature.
      logical :: case_success
      real(c_double) :: nan_val
      real(c_double) :: start_node1(1, 2), end_node1(1, 2), error1
      real(c_double) :: start_node2(1, 2), end_node2(1, 2), error2
      real(c_double) :: nodes1(3, 2), nodes2(3, 2)
  
negative.code:     nodes2(3, :) = [1.5_dp, 1.75_dp]
      start_node2 = nodes2(:1, :)
      end_node2 = nodes2(3:, :)
      call linearization_error( &
           3, 2, nodes2, error2)
  
      call from_linearized( &
           error1, 0.0_dp, 1.0_dp, start_node1, end_node1, 2, nodes3, &
  