1#if defined(XLF14) || defined(XLFLINUX)
2@PROCESS OPT(0) STRICT(ALL)
3#endif
4      subroutine scftf1 (n,c,ch,wa,ifac)
5      IMPLICIT REAL(A-H), INTEGER(I-N), REAL(O-Z)
6      dimension   ch(*),c(*),wa(*),ifac(*)
7      nf = ifac(2)
8      na = 0
9      l1 = 1
10      iw = 1
11      do 116 k1=1,nf
12         ip = ifac(k1+2)
13         l2 = ip*l1
14         ido = n/l2
15         idot = ido+ido
16         idl1 = idot*l1
17         if (ip .ne. 4) go to 103
18         ix2 = iw+idot
19         ix3 = ix2+idot
20         if (na .ne. 0) go to 101
21         call spssf4 (idot,l1,c,ch,wa(iw),wa(ix2),wa(ix3))
22         go to 102
23  101    call spssf4 (idot,l1,ch,c,wa(iw),wa(ix2),wa(ix3))
24  102    na = 1-na
25         go to 115
26  103    if (ip .ne. 2) go to 106
27         if (na .ne. 0) go to 104
28         call spssf2 (idot,l1,c,ch,wa(iw))
29         go to 105
30  104    call spssf2 (idot,l1,ch,c,wa(iw))
31  105    na = 1-na
32         go to 115
33  106    if (ip .ne. 3) go to 109
34         ix2 = iw+idot
35         if (na .ne. 0) go to 107
36         call spssf3 (idot,l1,c,ch,wa(iw),wa(ix2))
37         go to 108
38  107    call spssf3 (idot,l1,ch,c,wa(iw),wa(ix2))
39  108    na = 1-na
40         go to 115
41  109    if (ip .ne. 5) go to 112
42         ix2 = iw+idot
43         ix3 = ix2+idot
44         ix4 = ix3+idot
45         if (na .ne. 0) go to 110
46         call spssf5 (idot,l1,c,ch,wa(iw),wa(ix2),wa(ix3),wa(ix4))
47         go to 111
48  110    call spssf5 (idot,l1,ch,c,wa(iw),wa(ix2),wa(ix3),wa(ix4))
49  111    na = 1-na
50         go to 115
51  112    if (na .ne. 0) go to 113
52         call spssf (nac,idot,ip,l1,idl1,c,c,c,ch,ch,wa(iw))
53         go to 114
54  113    call spssf (nac,idot,ip,l1,idl1,ch,ch,ch,c,c,wa(iw))
55  114    if (nac .ne. 0) na = 1-na
56  115    l1 = l2
57         iw = iw+(ip-1)*idot
58  116 continue
59      if (na .eq. 0) return
60      n2 = n+n
61      do 117 i=1,n2
62         c(i) = ch(i)
63  117 continue
64      return
65      end
66