diff --git a/src/collision/collision_module.f90 b/src/collision/collision_module.f90 index 61c7f0fa2..03b26bbef 100644 --- a/src/collision/collision_module.f90 +++ b/src/collision/collision_module.f90 @@ -247,6 +247,13 @@ module subroutine collision_check_pltp(self, system, param, t, dt, irec, lany_co integer(I4B), intent(in) :: irec !! Current recursion level logical, intent(out) :: lany_collision !! Returns true if any pair of encounters resulted in a collision end subroutine collision_check_pltp + + module subroutine collision_resolve_collider_message(pl, collidx, collider_message) + implicit none + class(base_object), intent(in) :: pl !! Swiftest massive body object + integer(I4B), dimension(:), intent(in) :: collidx !! Index of collisional impactors%id members + character(*), intent(inout) :: collider_message !! The message to print to the screen. + end subroutine collision_resolve_collider_message module subroutine collision_resolve_extract_plpl(self, system, param) implicit none @@ -277,6 +284,8 @@ module function collision_resolve_merge(system, param, t) result(status) end function collision_resolve_merge + + module subroutine collision_resolve_plpl(self, system, param, t, dt, irec) implicit none class(collision_list_plpl), intent(inout) :: self !! pl-pl encounter list diff --git a/src/collision/collision_resolve.f90 b/src/collision/collision_resolve.f90 index f08a056ac..56292a586 100644 --- a/src/collision/collision_resolve.f90 +++ b/src/collision/collision_resolve.f90 @@ -98,14 +98,14 @@ module function collision_resolve_merge(system, param, t) result(status) end function collision_resolve_merge - subroutine collision_resolve_collider_message(pl, collidx, collider_message) + module subroutine collision_resolve_collider_message(pl, collidx, collider_message) !! author: David A. Minton !! !! Prints a nicely formatted message about which bodies collided, including their names and ids. !! This subroutine appends the body names and ids to an input message. implicit none ! Arguments - class(swiftest_pl), intent(in) :: pl !! Swiftest massive body object + class(base_object), intent(in) :: pl !! Swiftest massive body object integer(I4B), dimension(:), intent(in) :: collidx !! Index of collisional impactors%id members character(*), intent(inout) :: collider_message !! The message to print to the screen. ! Internals @@ -115,12 +115,15 @@ subroutine collision_resolve_collider_message(pl, collidx, collider_message) n = size(collidx) if (n == 0) return - do i = 1, n - if (i > 1) collider_message = trim(adjustl(collider_message)) // " and " - collider_message = " " // trim(adjustl(collider_message)) // " " // trim(adjustl(pl%info(collidx(i))%name)) - write(idstr, '(I10)') pl%id(collidx(i)) - collider_message = trim(adjustl(collider_message)) // " (" // trim(adjustl(idstr)) // ") " - end do + select type(pl) + class is (swiftest_pl) + do i = 1, n + if (i > 1) collider_message = trim(adjustl(collider_message)) // " and " + collider_message = " " // trim(adjustl(collider_message)) // " " // trim(adjustl(pl%info(collidx(i))%name)) + write(idstr, '(I10)') pl%id(collidx(i)) + collider_message = trim(adjustl(collider_message)) // " (" // trim(adjustl(idstr)) // ") " + end do + end select return end subroutine collision_resolve_collider_message