subroutine initad(j,nadj,madj,x,y,ntot,eps,nerror) # Intial adding-in of a new point j. # Called by addpt. implicit double precision(a-h,o-z) dimension nadj(-3:ntot,0:madj), x(-3:ntot), y(-3:ntot) integer tau(3) # Find the triangle containing vertex j. call trifnd(j,tau,nedge,nadj,madj,x,y,ntot,eps,nerror) if(nerror > 0) return # If the new point is on the edge of a triangle, detach the two # vertices of that edge from each other. Also join j to the vertex # of the triangle on the reverse side of that edge from the `found' # triangle (defined by tau) -- given that there ***is*** such a triangle. if(nedge!=0) { ip = nedge i = ip-1 if(i==0) i = 3 # Arithmetic modulo 3. call pred(k,tau(i),tau(ip),nadj,madj,ntot,nerror) if(nerror > 0) return call succ(kk,tau(ip),tau(i),nadj,madj,ntot,nerror) if(nerror > 0) return call delet(tau(i),tau(ip),nadj,madj,ntot,nerror) if(nerror > 0) return if(k==kk) call insrt(j,k,nadj,madj,x,y,ntot,nerror,eps) if(nerror > 0) return } # Join the new point to each of the three vertices. do i = 1,3 { call insrt(j,tau(i),nadj,madj,x,y,ntot,nerror,eps) if(nerror > 0) return } return end