1 SUBROUTINE getangle(rval, zval, angle, rcenter, zcenter)
11 REAL(rprec),
DIMENSION(ntheta, nphi) :: rval, zval, angle
12 REAL(rprec),
DIMENSION(ntheta) :: rcenter, zcenter
16 INTEGER :: i, j, iterate
17 REAL(rprec),
DIMENSION(nv) ::
18 1 rcos, rsin, zcos, zsin, phiangle
19 REAL(rprec) :: xc, yc, dnum, denom, delangle
27 angle(j,i) = twopi*(j - 1)/real(ntheta,rprec)
37 xc = rval(j,i) - rcenter(i)
38 yc = zval(j,i) - zcenter(i)
39 rcos(i) = rcos(i) + cos(angle(j,i))*xc
40 rsin(i) = rsin(i) + sin(angle(j,i))*xc
41 zcos(i) = zcos(i) + cos(angle(j,i))*yc
42 zsin(i) = zsin(i) + sin(angle(j,i))*yc
50 dnum = sum(zsin(:nphi))
51 denom = sum(rcos(:nphi))
52 IF (denom .ne. zero)
THEN
60 phiangle(i) = atan2(elongate*zcos(i)-rsin(i),
61 1 elongate*zsin(i)+rcos(i))
62 delangle = max(delangle,abs(phiangle(i)))
63 angle(:,i) = angle(:,i) + phiangle(i)
65 IF (delangle < 0.02_dp)
EXIT
67 WRITE (*, 1010) elongate, raxis(1), zaxis(1)
68 WRITE (3, 1010) elongate, raxis(1), zaxis(1)
69 WRITE (*, 1020) ntheta, nphi
70 WRITE (3, 1020) ntheta, nphi
71 WRITE (*, 1030) mpol1, ntor
72 WRITE (3, 1030) mpol1, ntor
73 1010
FORMAT(
' Average elongation = ',1pe10.4,/,
' Raxis = ',1pe12.4,
74 1
' Zaxis = ',1pe12.4)
75 1020
FORMAT(
' Number of Theta Points Matched = ',i5,/,
76 1
' Number of Phi Planes = ',i5)
77 1030
FORMAT(
' Max Poloidal Mode Number = ',i5,/,
78 1
' Max Toroidal Mode Number = ',i5)
80 END SUBROUTINE getangle