subroutine locn(i,j,kj,nadj,madj,x,y,ntot,eps)
# Find the appropriate location for j in the adjacency list
# of i. This is the index which j ***will*** have when
# it is inserted into the adjacency list of i in the
# appropriate place. Called by insrt.
implicit double precision(a-h,o-z)
dimension nadj(-3:ntot,0:madj), x(-3:ntot), y(-3:ntot)
logical before
n = nadj(i,0)
# If there is nothing already adjacent to i, then j will have place 1.
if(n==0) {
kj = 1
return
}
# Run through i's list, checking if j should come before each element
# of that list. (I.e. if i, j, and k are in anti-clockwise order.)
# If j comes before the kj-th item, but not before the (kj-1)-st, then
# j should have place kj.
do ks = 1,n {
kj = ks
k = nadj(i,kj)
call acchk(i,j,k,before,x,y,ntot,eps)
if(before) {
km = kj-1
if(km==0) km = n
k = nadj(i,km)
call acchk(i,j,k,before,x,y,ntot,eps)
if(before) next
# If j is before 1 and after n, then it should
# have place n+1.
if(kj==1) kj = n+1
return
}
}
# We've gone right through the list and haven't been before
# the kj-th item ***and*** after the (kj-1)-st on any occasion.
# Therefore j is before everything (==> place 1) or after
# everything (==> place n+1).
if(before) kj = 1
else kj = n+1
return
end
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.