V3FIT
fsym_invfft.f
1  SUBROUTINE fsym_invfft (bsubsu, bsubsv)
2  USE vmec_main, ONLY: rprec, ns, nzeta, ntheta1, ntheta2,
3  1 ntheta3, ireflect
4  IMPLICIT NONE
5 C-----------------------------------------------
6 C D u m m y A r g u m e n t s
7 C-----------------------------------------------
8  REAL(rprec), DIMENSION(ns*nzeta,ntheta3,0:1),
9  1 INTENT(inout) :: bsubsu, bsubsv
10 C-----------------------------------------------
11 C L o c a l V a r i a b l e s
12 C-----------------------------------------------
13  INTEGER :: ir, i, jkz, jkr
14 C-----------------------------------------------
15 !
16 ! EXTENDS FUNCTION FROM ntheta2 to ntheta3 range
17 ! ASSUMES bsubsu,v(0) ~ cos(mu-nv) bsubsu,v(1) ~ sin(mu-nv)
18 !
19  DO i = 1+ntheta2, ntheta1
20  ir = ntheta1+2-i !-theta
21  DO jkz= 1, ns*nzeta
22  jkr = ireflect(jkz) !-zeta
23  bsubsu(jkz,i,0) = bsubsu(jkr,ir,0) - bsubsu(jkr,ir,1)
24  bsubsv(jkz,i,0) = bsubsv(jkr,ir,0) - bsubsv(jkr,ir,1)
25  END DO
26  END DO
27 
28  bsubsu(:,:ntheta2,0)=bsubsu(:,:ntheta2,0) + bsubsu(:,:ntheta2,1)
29  bsubsv(:,:ntheta2,0)=bsubsv(:,:ntheta2,0) + bsubsv(:,:ntheta2,1)
30 
31  END SUBROUTINE fsym_invfft