diff --git a/src/symba/symba_discard_conserve_mtm.f90 b/src/symba/symba_discard_conserve_mtm.f90 index d2846a68a..d4717fd0a 100644 --- a/src/symba/symba_discard_conserve_mtm.f90 +++ b/src/symba/symba_discard_conserve_mtm.f90 @@ -64,7 +64,7 @@ subroutine symba_discard_conserve_mtm(param, swiftest_plA, ipl, lescape_body) ke_spin = ke_spin - 0.5_DP * mass(1) * radius(1)**2 * Ip(3, 1) * dot_product(rot(:, 1), rot(:, 1)) xb(:, 1) = xcom(:) vb(:, 1) = vcom(:) - ke_orbit = ke_orbit - 0.5_DP * mass(1) * dot_product(vb(:, 1), vb(:, 1) ) + ke_orbit = ke_orbit - 0.5_DP * mass(1) * dot_product(vb(:, 1), vb(:, 1)) end if ! Update position and velocity of central body diff --git a/src/symba/symba_frag_pos.f90 b/src/symba/symba_frag_pos.f90 index 74524b319..b734837c5 100644 --- a/src/symba/symba_frag_pos.f90 +++ b/src/symba/symba_frag_pos.f90 @@ -138,6 +138,7 @@ subroutine symba_frag_pos(param, symba_plA, family, x, v, L_spin, Ip, mass, radi logical, save :: lfirst = .true. real(DP), parameter :: Ltol = 2 * epsilon(1.0_DP) real(DP), parameter :: Etol = 1e-8_DP + integer(I4B), parameter :: MAXTRY = 200 if (nfrag < NFRAG_MIN) then write(*,*) "symba_frag_pos needs at least ",NFRAG_MIN," fragments, but only ",nfrag," were given." @@ -179,7 +180,7 @@ subroutine symba_frag_pos(param, symba_plA, family, x, v, L_spin, Ip, mass, radi try = 1 lmerge = .false. - do while (nfrag >= NFRAG_MIN) + do while (nfrag >= NFRAG_MIN .and. try <= MAXTRY) !write(*, "(' -------------------------------------------------------------------------------------')") !write(*,*) "Try number: ",try, ' of ',ntry !write(*, "(' -------------------------------------------------------------------------------------')")