V3FIT
cftfax.f90
1  SUBROUTINE cftfax_g(n, ifax, trigs)
2  USE stel_kinds
3  IMPLICIT NONE
4 !-----------------------------------------------
5 ! D u m m y A r g u m e n t s
6 !-----------------------------------------------
7  INTEGER n
8  INTEGER, DIMENSION(13) :: ifax
9  REAL(rprec), DIMENSION(*) :: trigs
10 #if !defined(CRAY) || defined(LONESTAR) || defined(MCURIE)
11 !-----------------------------------------------
12 ! L o c a l V a r i a b l e s
13 !-----------------------------------------------
14  INTEGER :: k
15 !-----------------------------------------------
16 !
17 ! on input n
18 ! the length of each complex transform to be performed
19 !
20 ! n must be greater than 1 and contain no prime
21 ! factors greater than 5.
22 !
23 ! on output ifax
24 ! ifax(1)
25 ! the number of factors chosen or -99 in CASE of error
26 ! ifax(2) thru ifax( ifax(1)+1 )
27 ! the factors of n in the followin order: appearing
28 ! first are as many factors of 4 as can be obtained.
29 ! subsequent factors are primes, and appear in
30 ! ascending order, except for multiple factors.
31 !
32 ! trigs
33 ! 2n SIN and COS values for USE by the transform routine
34 !
35  CALL fact_g (n, ifax)
36  k = ifax(1)
37  IF (k<1 .or. ifax(k+1)>5) ifax(1) = -99
38  IF (ifax(1) .le. 0) stop 'IFAX(1) <= 0 in CFTFAX'
39  CALL cftrig_g (n, trigs)
40 #else
41  CALL cftfax (n, ifax, trigs)
42 #endif
43  END SUBROUTINE cftfax_g