cfftf1.f

Go to the documentation of this file.
00001       subroutine cfftf1 (n,c,ch,wa,ifac)
00002       dimension       ch(*)      ,c(*)       ,wa(*)      ,ifac(*)
00003       nf = ifac(2)
00004       na = 0
00005       l1 = 1
00006       iw = 1
00007       do 116 k1=1,nf
00008          ip = ifac(k1+2)
00009          l2 = ip*l1
00010          ido = n/l2
00011          idot = ido+ido
00012          idl1 = idot*l1
00013          if (ip .ne. 4) go to 103
00014          ix2 = iw+idot
00015          ix3 = ix2+idot
00016          if (na .ne. 0) go to 101
00017          call passf4 (idot,l1,c,ch,wa(iw),wa(ix2),wa(ix3))
00018          go to 102
00019   101    call passf4 (idot,l1,ch,c,wa(iw),wa(ix2),wa(ix3))
00020   102    na = 1-na
00021          go to 115
00022   103    if (ip .ne. 2) go to 106
00023          if (na .ne. 0) go to 104
00024          call passf2 (idot,l1,c,ch,wa(iw))
00025          go to 105
00026   104    call passf2 (idot,l1,ch,c,wa(iw))
00027   105    na = 1-na
00028          go to 115
00029   106    if (ip .ne. 3) go to 109
00030          ix2 = iw+idot
00031          if (na .ne. 0) go to 107
00032          call passf3 (idot,l1,c,ch,wa(iw),wa(ix2))
00033          go to 108
00034   107    call passf3 (idot,l1,ch,c,wa(iw),wa(ix2))
00035   108    na = 1-na
00036          go to 115
00037   109    if (ip .ne. 5) go to 112
00038          ix2 = iw+idot
00039          ix3 = ix2+idot
00040          ix4 = ix3+idot
00041          if (na .ne. 0) go to 110
00042          call passf5 (idot,l1,c,ch,wa(iw),wa(ix2),wa(ix3),wa(ix4))
00043          go to 111
00044   110    call passf5 (idot,l1,ch,c,wa(iw),wa(ix2),wa(ix3),wa(ix4))
00045   111    na = 1-na
00046          go to 115
00047   112    if (na .ne. 0) go to 113
00048          call passf (nac,idot,ip,l1,idl1,c,c,c,ch,ch,wa(iw))
00049          go to 114
00050   113    call passf (nac,idot,ip,l1,idl1,ch,ch,ch,c,c,wa(iw))
00051   114    if (nac .ne. 0) na = 1-na
00052   115    l1 = l2
00053          iw = iw+(ip-1)*idot
00054   116 continue
00055       if (na .eq. 0) return
00056       n2 = n+n
00057       do 117 i=1,n2
00058          c(i) = ch(i)
00059   117 continue
00060       return
00061       end
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines