function compare_boundary(bound_info, npts_loc_new, ids_loc_new, pts_loc_new, label) result(passed)
use modmpi, only : myid
use modibm, only : bound_info_type
use decomp_2d, only : zstart, zend
type(bound_info_type), intent(in) :: bound_info
integer, intent(in) :: npts_loc_new
integer, intent(in) :: ids_loc_new(:), pts_loc_new(:,:)
character(len=*), intent(in) :: label
logical :: passed
integer :: m
passed = .true.
if (npts_loc_new /= bound_info%nbndptsrank) then
write(*, '(A,I0,A,A,A)') 'FAIL on rank ', myid, ': ', trim(label), ' count mismatch'
passed = .false.
return
end if
do m = 1, bound_info%nbndptsrank
if (ids_loc_new(m) /= bound_info%bndptsrank(m)) then
write(*, '(A,I0,A,A,A)') 'FAIL on rank ', myid, ': ', trim(label), ' index mismatch'
passed = .false.
return
end if
if (pts_loc_new(m,1) /= bound_info%bndpts_loc(m,1) .or. &
pts_loc_new(m,2) /= bound_info%bndpts_loc(m,2) .or. &
pts_loc_new(m,3) /= bound_info%bndpts_loc(m,3)) then
write(*, '(A,I0,A,A,A)') 'FAIL on rank ', myid, ': ', trim(label), ' coordinate mismatch'
passed = .false.
return
end if
end do
end function compare_boundary