summaryrefslogtreecommitdiff
path: root/class/sortParticles.f90
diff options
context:
space:
mode:
authorConnor Moore <connor@hhmoore.ca>2026-03-23 01:40:30 -0400
committerConnor Moore <connor@hhmoore.ca>2026-03-23 01:40:30 -0400
commit5b08f435327695bb633cd21ae8252b25528de3f6 (patch)
tree7eb5cdfa0acded8eaf8f1881e8542fe7b441d67c /class/sortParticles.f90
parentf7ad40d801e30f542baaf471e0b0d08aacc212ee (diff)
New report and code for final submission.HEADmaster
Diffstat (limited to 'class/sortParticles.f90')
-rw-r--r--class/sortParticles.f9056
1 files changed, 0 insertions, 56 deletions
diff --git a/class/sortParticles.f90 b/class/sortParticles.f90
deleted file mode 100644
index 1645b5d..0000000
--- a/class/sortParticles.f90
+++ /dev/null
@@ -1,56 +0,0 @@
-subroutine makeNR(nr,in)
- integer :: particle,sector,nr(0:b*b),in(n)
- nr = 0
- do particle=1,n
- sector=indexfxn(x(particle),y(particle))
- if(sector.eq.b*b) is_tracked(particle)=.False.
- in(particle)=sector
- nr(sector)=nr(sector)+1
- end do
- return
-end subroutine makeNR
-
-subroutine order(x,y,vx,vy,x0,y0,vhx,vhy,is_tracked,lim)
-! Order the list of positions by sector and find starting and final index for each sector
-! In: x and y coordinates and velocities. Out: ordered lists x, y, vx and vy and array lim with one row
-! for each sector, first column is start index, second is end index so that particles lim(k,1) through lim(k,2) reside in sector k.
-integer :: lim(0:b*b,2),in(n),nr(0:b*b),ct(0:b*b),k
-double precision :: x(n),y(n),d1(n),d2(n),d3(n),d4(n),d5(n),d6(n),d7(n),d8(n),vx(n),vy(n),x0(n),y0(n),vhx(n),vhy(n)
-logical :: d9(n), is_tracked(n)
-
-call makeNR(nr,in)
-
-! Set loop limits based on the number of particles in each sector
-lim(0,1)=1
-lim(0,2)=nr(0)
-
-do k=1,b*b
- lim(k,1)=lim(k-1,2)+1
- lim(k,2)=lim(k-1,2)+nr(k)
-end do
-
-! Re-order particle list
-d1=x
-d2=y
-d3=vx
-d4=vy
-d5=x0
-d6=y0
-d7=vhx
-d8=vhy
-d9=is_tracked
-ct=0
-do k=1,n
- x(lim(in(k),1)+ct(in(k)))=d1(k)
- y(lim(in(k),1)+ct(in(k)))=d2(k)
- vx(lim(in(k),1)+ct(in(k)))=d3(k)
- vy(lim(in(k),1)+ct(in(k)))=d4(k)
- x0(lim(in(k),1)+ct(in(k)))=d5(k)
- y0(lim(in(k),1)+ct(in(k)))=d6(k)
- vhx(lim(in(k),1)+ct(in(k)))=d7(k)
- vhy(lim(in(k),1)+ct(in(k)))=d8(k)
- is_tracked(lim(in(k),1)+ct(in(k)))=d9(k)
- ct(in(k))=ct(in(k))+1
-end do
-
-end subroutine order