diff --git a/src/netcdf/netcdf.f90 b/src/netcdf/netcdf.f90 index 83e7566a5..f36f370f4 100644 --- a/src/netcdf/netcdf.f90 +++ b/src/netcdf/netcdf.f90 @@ -533,15 +533,17 @@ module subroutine netcdf_read_particle_info_base(self, iu, ind) class is (swiftest_body) associate(n => self%nbody) if (n == 0) return - !allocate(ind(n)) - !call util_sort(self%id(1:n), ind) + self%status(:) = ACTIVE + self%lmask(:) = .true. do i = 1, n - !self%id(i) = i - !j = ind(i) + 1 - idslot = i + 1 - !call check( nf90_get_var(iu%ncid, iu%id_varid, self%id(j), start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%id_varid, i, start=[idslot])) + call self%info(i)%set_value(status="ACTIVE") + end do + + do i = 1, n + idslot = ind(i) + + call check( nf90_get_var(iu%ncid, iu%id_varid, self%id(i), start=[idslot]) ) call check( nf90_get_var(iu%ncid, iu%name_varid, self%info(i)%name, start=[1, idslot], count=[NAMELEN, 1]) ) strlen = len(trim(adjustl(self%info(i)%name))) @@ -578,10 +580,8 @@ module subroutine netcdf_read_particle_info_base(self, iu, ind) end associate class is (swiftest_cb) - self%id = 0 - idslot = self%id + 1 - !call check( nf90_get_var(iu%ncid, iu%id_varid, self%id, start=[idslot]) ) - call check( nf90_put_var(iu%ncid, iu%id_varid, self%id, start=[idslot])) + idslot = 1 + call check( nf90_get_var(iu%ncid, iu%id_varid, self%id, start=[idslot]) ) call check( nf90_get_var(iu%ncid, iu%name_varid, self%info%name, start=[1, idslot], count=[NAMELEN, 1]) ) strlen = len(trim(adjustl(self%info%name)))