anchor.diff:      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)
  
positive.code:     start_node1 = nodes1(:1, :)
      end_node1 = nodes1(3:, :)
      ! NOTE: This curve isn't close to linear, but that's OK.
      error1 = nan_val
  
      nodes2(1, :) = [0.0_dp, 1.0_dp]
      nodes2(2, :) = [0.5_dp, 1.0_dp]
  
negative.code:     nodes2(3, :) = 3
      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, &
  