1 SUBROUTINE order(rval, zval, xaxis, yaxis, inside)
12 REAL(rprec) xaxis, yaxis
13 REAL(rprec),
DIMENSION(*) :: rval, zval
17 INTEGER :: i, ip1, i1, j, next
18 REAL(rprec),
DIMENSION(nu) :: tempr, tempz
20 1 newdist,olddist,shortest,saver,savez,residue,x,y,dx,dy
39 IF (i1 > 1) olddist = (rval(i1-1)-rval(j))**2 + (zval(i1-1)-
41 newdist = (rval(i1)-rval(j))**2 + (zval(i1)-zval(j))**2
42 IF (newdist.le.olddist .and. newdist<shortest)
THEN
50 IF (shortest .ge. 1.e10_dp)
THEN
62 rval(ip1) = rval(next)
65 zval(ip1) = zval(next)
76 x = 0.5_dp*(rval(i)+rval(i+1)) - xaxis
77 y = 0.5_dp*(zval(i)+zval(i+1)) - yaxis
78 dx = rval(i+1) - rval(i)
79 dy = zval(i+1) - zval(i)
80 residue = residue + (x*dy - y*dx)/(x**2 + y**2 + 1.e-10_dp)
82 x = 0.5_dp*(rval(1)+rval(ntheta)) - xaxis
83 y = 0.5_dp*(zval(1)+zval(ntheta)) - yaxis
84 dx = rval(1) - rval(ntheta)
85 dy = zval(1) - zval(ntheta)
86 residue = residue + (x*dy - y*dx)/(x**2 + y**2 + 1.e-10_dp)
88 IF (residue < (-0.9_dp*twopi))
THEN
94 rval(2:ntheta) = tempr(2:ntheta)
95 zval(2:ntheta) = tempz(2:ntheta)
96 ELSE IF (abs(residue) < 0.9_dp*twopi)
THEN
97 print *,
' mag. axis not enclosed by bndry; trying again'
98 WRITE (3, *)
' mag. axis not enclosed by bndry; trying again'