diff --git a/Makefile.Defines b/Makefile.Defines
index e764b40ee..4e3ead7c5 100644
--- a/Makefile.Defines
+++ b/Makefile.Defines
@@ -67,13 +67,13 @@ GWARNINGS = -Wall -Warray-bounds -Wimplicit-interface -Wextra -Warray-temporari
GPRODUCTION = -O3 -ffree-line-length-none $(GPAR)
#FFLAGS = $(IDEBUG) $(HEAPARR) $(SIMDVEC) $(PAR)
-FFLAGS = $(IPRODUCTION) $(OPTREPORT)
-FORTRAN = ifort
+#FFLAGS = $(IPRODUCTION) -g -traceback $(OPTREPORT)
+#FORTRAN = ifort
#AR = xiar
-#FORTRAN = gfortran
+FORTRAN = gfortran
#FFLAGS = $(GDEBUG) $(GMEM) $(GPAR)
-#FFLAGS = $(GPRODUCTION)
+FFLAGS = $(GPRODUCTION)
AR = ar
# DO NOT include in CFLAGS the "-c" option to compile object only
diff --git a/examples/symba_mars_disk/testnetcdf.ipynb b/examples/symba_mars_disk/testnetcdf.ipynb
index 405947b38..50ac91b3b 100644
--- a/examples/symba_mars_disk/testnetcdf.ipynb
+++ b/examples/symba_mars_disk/testnetcdf.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 10,
"metadata": {},
"outputs": [
{
@@ -11,7 +11,7 @@
"'/home/daminton/git/swiftest/examples/symba_mars_disk'"
]
},
- "execution_count": 1,
+ "execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
@@ -26,7 +26,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 11,
"metadata": {},
"outputs": [
{
@@ -48,7 +48,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 12,
"metadata": {},
"outputs": [
{
@@ -405,28 +405,25 @@
" stroke: currentColor;\n",
" fill: currentColor;\n",
"}\n",
- "
<xarray.DataArray 'origin_type' (id: 1533)>\n",
- "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n",
- " ..., 'Disruption', 'Disruption', 'Disruption'], dtype='<U18')\n",
+ "<xarray.DataArray 'npl' (time: 2)>\n",
+ "array([1500, 1518], dtype=int32)\n",
"Coordinates:\n",
- " * id (id) int32 0 1 2 3 4 5 6 7 ... 1526 1527 1528 1529 1530 1531 1532"
+ " * time (time) float64 0.0 6e+03
"
],
"text/plain": [
- "\n",
- "array(['Initial conditions', 'Initial conditions', 'Initial conditions',\n",
- " ..., 'Disruption', 'Disruption', 'Disruption'], dtype='\n",
+ "array([1500, 1518], dtype=int32)\n",
"Coordinates:\n",
- " * id (id) int32 0 1 2 3 4 5 6 7 ... 1526 1527 1528 1529 1530 1531 1532"
+ " * time (time) float64 0.0 6e+03"
]
},
- "execution_count": 3,
+ "execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "sim.ds['origin_type']"
+ "sim.ds['npl']"
]
},
{
diff --git a/src/kick/kick.f90 b/src/kick/kick.f90
index 19d717b0d..f2c49ad06 100644
--- a/src/kick/kick.f90
+++ b/src/kick/kick.f90
@@ -98,7 +98,9 @@ module subroutine kick_getacch_int_all_pl(npl, nplpl, k_plpl, x, Gmass, radius,
if (rji2 > rlim2) call kick_getacch_int_one_pl(rji2, xr, yr, zr, Gmass(i), Gmass(j), ahi(1,i), ahi(2,i), ahi(3,i), ahj(1,j), ahj(2,j), ahj(3,j))
end do
!$omp end parallel do
+ !$omp parallel workshare
acc(:,1:npl) = acc(:,1:npl) + ahi(:,1:npl) + ahj(:,1:npl)
+ !$omp end parallel workshare
return
end subroutine kick_getacch_int_all_pl
diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90
index 75b792b57..ec1a3e9df 100644
--- a/src/modules/swiftest_classes.f90
+++ b/src/modules/swiftest_classes.f90
@@ -160,12 +160,17 @@ module swiftest_classes
!> Class definition for the particle origin information object. This object is used to track time, location, and collisional regime
!> of fragments produced in collisional events.
type :: swiftest_particle_info
- character(len=NAMELEN) :: name !! Non-unique name
- character(len=NAMELEN) :: particle_type !! String containing a description of the particle type (e.g. Central Body, Massive Body, Test Particle)
- character(len=NAMELEN) :: origin_type !! String containing a description of the origin of the particle (e.g. Initial Conditions, Supercatastrophic, Disruption, etc.)
- real(DP) :: origin_time !! The time of the particle's formation
- real(DP), dimension(NDIM) :: origin_xh !! The heliocentric distance vector at the time of the particle's formation
- real(DP), dimension(NDIM) :: origin_vh !! The heliocentric velocity vector at the time of the particle's formation
+ character(len=NAMELEN) :: name !! Non-unique name
+ character(len=NAMELEN) :: particle_type !! String containing a description of the particle type (e.g. Central Body, Massive Body, Test Particle)
+ character(len=NAMELEN) :: origin_type !! String containing a description of the origin of the particle (e.g. Initial Conditions, Supercatastrophic, Disruption, etc.)
+ real(DP) :: origin_time !! The time of the particle's formation
+ real(DP), dimension(NDIM) :: origin_xh !! The heliocentric distance vector at the time of the particle's formation
+ real(DP), dimension(NDIM) :: origin_vh !! The heliocentric velocity vector at the time of the particle's formation
+ real(DP) :: discard_time !! The time of the particle's discard
+ character(len=NAMELEN) :: status !! Particle status description: Active, Merged, Fragmented, etc.
+ real(DP), dimension(NDIM) :: discard_xh !! The heliocentric distance vector at the time of the particle's discard
+ real(DP), dimension(NDIM) :: discard_vh !! The heliocentric velocity vector at the time of the particle's discard
+ integer(I4B) :: discard_body_id !! The id of the other body involved in the discard (0 if no other body involved)
contains
procedure :: dump => io_dump_particle_info !! Dumps contents of particle information to file
procedure :: read_in => io_read_in_particle_info !! Read in a particle information object from an open file
@@ -844,7 +849,6 @@ module subroutine kick_getacch_int_all_pl(npl, nplpl, k_plpl, x, Gmass, radius,
end subroutine kick_getacch_int_all_pl
module pure subroutine kick_getacch_int_one_pl(rji2, xr, yr, zr, Gmi, Gmj, axi, ayi, azi, axj, ayj, azj)
- !$omp declare simd(kick_getacch_int_one_pl)
implicit none
real(DP), intent(in) :: rji2 !! Square of distance between the two bodies
real(DP), intent(in) :: xr, yr, zr !! Distances between the two bodies in x, y, and z directions
@@ -855,7 +859,6 @@ module pure subroutine kick_getacch_int_one_pl(rji2, xr, yr, zr, Gmi, Gmj, axi,
end subroutine kick_getacch_int_one_pl
module pure subroutine kick_getacch_int_one_tp(rji2, xr, yr, zr, Gmpl, ax, ay, az)
- !$omp declare simd(kick_getacch_int_one_tp)
implicit none
real(DP), intent(in) :: rji2 !! Square of distance between the test particle and massive body
real(DP), intent(in) :: xr, yr, zr !! Distances between the two bodies in x, y, and z directions