1 SUBROUTINE convert_boundary(rbc, zbs, rhobc, mpol, ntor)
7 INTEGER,
INTENT(in) :: mpol, ntor
8 REAL(rprec),
DIMENSION(-ntor:ntor,0:mpol),
INTENT(in) ::
10 REAL(rprec),
DIMENSION(-ntor:ntor,0:mpol),
INTENT(out) ::
15 INTEGER,
PARAMETER :: pexp = 4
16 REAL(rprec),
PARAMETER :: p25 = 0.25_dp, p50 = 0.50_dp,
21 INTEGER :: mcount, ncount, m_bdy, n_bdy
22 REAL(rprec),
DIMENSION(0:mpol) :: t1, t2
45 DO ncount = -ntor, ntor
46 IF (rbc(ncount,mcount).ne.zero .or.
47 1 zbs(ncount,mcount).ne.zero)
THEN
48 m_bdy = max(m_bdy,mcount)
49 n_bdy = max(n_bdy,abs(ncount))
57 t1(mcount) = ( real(mcount-1,rprec)
58 1 /real(mcount,rprec) )**pexp
59 t2(mcount) = ( real(mcount+1,rprec)
60 1 /real(mcount,rprec) )**pexp
69 DO ncount = -n_bdy, n_bdy
71 rhobc(ncount,mcount) = p50*(rbc(ncount,mcount+1) +
72 1 zbs(ncount,mcount+1))/t1(mcount+1)
76 rhobc(ncount,mcount) = p25*(
77 1 (rbc(ncount,mcount+1) + zbs(ncount,mcount+1))/t1(mcount+1)
78 2 + (rbc(ncount,mcount-1) - zbs(ncount,mcount-1))/t2(mcount-1))
82 END SUBROUTINE convert_boundary