V3FIT
getcurmid.f
1  SUBROUTINE getcurmid (curmid, izeta, gsqrt, r12)
2  USE vmec_input, ONLY: rprec, dp, nzeta
3  USE vmec_dim, ONLY: ns, ns1, ntheta2
4 C-----------------------------------------------
5 C D u m m y A r g u m e n t s
6 C-----------------------------------------------
7  REAL(rprec) :: curmid(2*ns)
8  REAL(rprec) :: izeta(ns,nzeta,*), gsqrt(ns,nzeta,*),
9  1 r12(ns,nzeta,*)
10 C-----------------------------------------------
11 C L o c a l V a r i a b l e s
12 C-----------------------------------------------
13  REAL(rprec) :: midcur(ns)
14 C-----------------------------------------------
15 ! THETA = pi, PHI = 0
16  midcur(2:ns) = r12(2:ns,1,ntheta2)/gsqrt(2:ns,1,ntheta2)
17 
18  curmid(1) = izeta(ns,1,ntheta2)*midcur(ns)
19  curmid(2:ns1) = 0.5_dp*izeta(ns1:2:-1,1,ntheta2)*
20  1 (midcur(ns1:2:-1) + midcur(ns:3:-1))
21 
22 ! THETA = 0, PHI = 0
23  midcur(2:ns) = r12(2:ns,1,1)/gsqrt(2:ns,1,1)
24 
25  curmid(ns+1:2*ns-1) = 0.5_dp*izeta(2:ns1,1,1)*
26  1 (midcur(2:ns1) + midcur(3:ns))
27 
28  curmid(ns) = 0.5_dp*(curmid(ns-1) + curmid(ns+1))
29  curmid(2*ns) = 2*curmid(2*ns-1) - curmid(2*ns-2)
30 
31  END SUBROUTINE getcurmid