V3FIT
trigfunc.f
1  SUBROUTINE trigfunc (uang, vang, cosm, sinm, cosn, sinn,
2  1 mpol, ntor, nznt)
3  USE stel_kinds
4  USE booz_params, ONLY: nfp
5 C-----------------------------------------------
6 C D u m m y A r g u m e n t s
7 C-----------------------------------------------
8  INTEGER, INTENT(in) :: mpol, ntor, nznt
9  REAL(rprec), DIMENSION(nznt), INTENT(in) :: uang, vang
10  REAL(rprec), DIMENSION(nznt,0:mpol), INTENT(out) :: cosm, sinm
11  REAL(rprec), DIMENSION(nznt,0:ntor), INTENT(out) :: cosn, sinn
12 C-----------------------------------------------
13 C L o c a l V a r i a b l e s
14 C-----------------------------------------------
15  INTEGER :: m, n
16 C-----------------------------------------------
17 
18  cosm(:,0) = 1
19  sinm(:,0) = 0
20  cosm(:,1) = cos(uang)
21  sinm(:,1) = sin(uang)
22 
23  DO m = 2,mpol
24  cosm(:,m) = cosm(:,m-1)*cosm(:,1)
25  1 - sinm(:,m-1)*sinm(:,1)
26  sinm(:,m) = sinm(:,m-1)*cosm(:,1)
27  1 + cosm(:,m-1)*sinm(:,1)
28  END DO
29 
30  cosn(:,0) = 1
31  sinn(:,0) = 0
32  IF (ntor .ge. 1) THEN
33  cosn(:,1) = cos(vang*nfp)
34  sinn(:,1) = sin(vang*nfp)
35  END IF
36 
37  DO n = 2,ntor
38  cosn(:,n) = cosn(:,n-1)*cosn(:,1)
39  1 - sinn(:,n-1)*sinn(:,1)
40  sinn(:,n) = sinn(:,n-1)*cosn(:,1)
41  1 + cosn(:,n-1)*sinn(:,1)
42  END DO
43 
44  END SUBROUTINE trigfunc