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