diff --git a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb index 9a487a59c..7f0b1d4b9 100644 --- a/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb +++ b/examples/helio_swifter_comparison/swiftest_vs_swifter.ipynb @@ -153,7 +153,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] diff --git a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb index 181cd0237..c6bb630b2 100644 --- a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb +++ b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/swiftest_rmvs_vs_swifter_rmvs.ipynb @@ -622,7 +622,7 @@ " 1.17040422e-11])\n", "Coordinates:\n", " id int64 2\n", - " * time (d) (time (d)) float64 0.0 11.0 22.0 ... 3.63e+03 3.641e+03 3.652e+03
    • id
      ()
      int64
      2
      array(2)
    • time (d)
      (time (d))
      float64
      0.0 11.0 ... 3.641e+03 3.652e+03
      array([   0.,   11.,   22., ..., 3630., 3641., 3652.])
  • " ], "text/plain": [ "\n", diff --git a/src/util/util_peri.f90 b/src/util/util_peri.f90 index 6cde4cc45..1884728da 100644 --- a/src/util/util_peri.f90 +++ b/src/util/util_peri.f90 @@ -18,59 +18,42 @@ module subroutine util_peri_tp(self, system, param) ! Internals integer(I4B) :: i real(DP) :: e - real(DP), dimension(:), allocatable, save :: vdotr + real(DP), dimension(:), allocatable :: vdotr associate(tp => self, ntp => self%nbody) - if (tp%lfirst) then - if (.not. allocated(vdotr)) allocate(vdotr(ntp)) - if (param%qmin_coord == "HELIO") then - do i = 1, ntp - vdotr(i) = dot_product(tp%xh(:, i), tp%vh(:, i)) - end do - else - do i = 1, ntp - vdotr(i) = dot_product(tp%xb(:, i), tp%vb(:, i)) - end do - end if - where(vdotr(1:ntp) > 0.0_DP) - tp%isperi(1:ntp) = 1 - elsewhere - tp%isperi = -1 - end where - else - if (param%qmin_coord == "HELIO") then - do i = 1, ntp - vdotr(i) = dot_product(tp%xh(:, i), tp%vh(:, i)) - if (tp%isperi(i) == -1) then - if (vdotr(i) >= 0.0_DP) then - tp%isperi(i) = 0 - call orbel_xv2aeq(tp%mu(i), tp%xh(:, i), tp%vh(:, i), tp%atp(i), e, tp%peri(i)) - end if + allocate(vdotr(ntp)) + if (param%qmin_coord == "HELIO") then + do i = 1, ntp + vdotr(i) = dot_product(tp%xh(:, i), tp%vh(:, i)) + if (tp%isperi(i) == -1) then + if (vdotr(i) >= 0.0_DP) then + tp%isperi(i) = 0 + call orbel_xv2aeq(tp%mu(i), tp%xh(:, i), tp%vh(:, i), tp%atp(i), e, tp%peri(i)) + end if + else + if (vdotr(i) > 0.0_DP) then + tp%isperi(i) = 1 else - if (vdotr(i) > 0.0_DP) then - tp%isperi(i) = 1 - else - tp%isperi(i) = -1 - end if + tp%isperi(i) = -1 + end if + end if + end do + else + do i = 1, ntp + vdotr(i) = dot_product(tp%xb(:, i), tp%vb(:, i)) + if (tp%isperi(i) == -1) then + if (vdotr(i) >= 0.0_DP) then + tp%isperi(i) = 0 + call orbel_xv2aeq(system%msys, tp%xb(:, i), tp%vb(:, i), tp%atp(i), e, tp%peri(i)) end if - end do - else - do i = 1, ntp - vdotr(i) = dot_product(tp%xb(:, i), tp%vb(:, i)) - if (tp%isperi(i) == -1) then - if (vdotr(i) >= 0.0_DP) then - tp%isperi(i) = 0 - call orbel_xv2aeq(system%msys, tp%xb(:, i), tp%vb(:, i), tp%atp(i), e, tp%peri(i)) - end if + else + if (vdotr(i) > 0.0_DP) then + tp%isperi(i) = 1 else - if (vdotr(i) > 0.0_DP) then - tp%isperi(i) = 1 - else - tp%isperi(i) = -1 - end if + tp%isperi(i) = -1 end if - end do - end if + end if + end do end if end associate return