diff --git a/src/setup/setup.f90 b/src/setup/setup.f90 index 976e73956..504faca35 100644 --- a/src/setup/setup.f90 +++ b/src/setup/setup.f90 @@ -211,38 +211,45 @@ module subroutine setup_body(self, n, param) self%lfirst = .true. - if (allocated(self%id)) deallocate(self%id) if (allocated(self%info)) deallocate(self%info) + if (allocated(self%id)) deallocate(self%id) if (allocated(self%status)) deallocate(self%status) if (allocated(self%ldiscard)) deallocate(self%ldiscard) + if (allocated(self%lmask)) deallocate(self%lmask) + if (allocated(self%mu)) deallocate(self%mu) if (allocated(self%xh)) deallocate(self%xh) if (allocated(self%vh)) deallocate(self%vh) if (allocated(self%xb)) deallocate(self%xb) if (allocated(self%vb)) deallocate(self%vb) if (allocated(self%ah)) deallocate(self%ah) - if (allocated(self%ir3h)) deallocate(self%ir3h) - if (allocated(self%mu)) deallocate(self%mu) - if (allocated(self%lmask)) deallocate(self%lmask) if (allocated(self%aobl)) deallocate(self%aobl) - if (allocated(self%atide)) deallocate(self%lmask) if (allocated(self%agr)) deallocate(self%lmask) + if (allocated(self%atide)) deallocate(self%lmask) + if (allocated(self%ir3h)) deallocate(self%ir3h) + if (allocated(self%a)) deallocate(self%a) + if (allocated(self%e)) deallocate(self%e) + if (allocated(self%e)) deallocate(self%e) + if (allocated(self%inc)) deallocate(self%inc) + if (allocated(self%capom)) deallocate(self%capom) + if (allocated(self%omega)) deallocate(self%omega) + if (allocated(self%capm)) deallocate(self%capm) if (n == 0) return - allocate(self%id(n)) allocate(self%info(n)) + allocate(self%id(n)) allocate(self%status(n)) allocate(self%ldiscard(n)) + allocate(self%lmask(n)) + allocate(self%mu(n)) allocate(self%xh(NDIM, n)) allocate(self%vh(NDIM, n)) allocate(self%xb(NDIM, n)) allocate(self%vb(NDIM, n)) allocate(self%ah(NDIM, n)) allocate(self%ir3h(n)) - allocate(self%mu(n)) - allocate(self%lmask(n)) - self%id(:) = 0 + self%id(:) = 0 do i = 1, n call self%info(i)%set_value(& name = "UNNAMED", & diff --git a/src/symba/symba_util.f90 b/src/symba/symba_util.f90 index ce29e22aa..c805734bf 100644 --- a/src/symba/symba_util.f90 +++ b/src/symba/symba_util.f90 @@ -409,15 +409,16 @@ module subroutine symba_util_rearray_pl(self, system, param) class(symba_parameters), intent(inout) :: param !! Current run configuration parameters ! Internals class(symba_pl), allocatable :: tmp !! The discarded body list. - integer(I4B) :: i, j, k, npl, nencmin, idnew1, idnew2, idold1, idold2 + integer(I4B) :: i, j, k, npl, nadd, nencmin, idnew1, idnew2, idold1, idold2 logical, dimension(:), allocatable :: lmask, ldump_mask class(symba_plplenc), allocatable :: plplenc_old logical :: lencounter integer(I4B), dimension(:), allocatable :: levelg_orig_pl, levelm_orig_pl, levelg_orig_tp, levelm_orig_tp, nplenc_orig_pl, nplenc_orig_tp, ntpenc_orig_pl - associate(pl => self, pl_adds => system%pl_adds, nadd => system%pl_adds%nbody) + associate(pl => self, pl_adds => system%pl_adds) npl = pl%nbody + nadd = pl_adds%nbody) if (npl == 0) return ! Deallocate any temporary variables if (allocated(pl%xbeg)) deallocate(pl%xbeg)