fftsg.f

来自「2维fft程序」· F 代码 · 共 2,173 行 · 第 1/5 页

F
2,173
字号
                  xi = a(j1 + 1)                  yr = a(k1)                  yi = a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 - nm                  k1 = k1 + nm                  xr = a(j1)                  xi = a(j1 + 1)                  yr = a(k1)                  yi = a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 - nm                  k1 = k1 - 2 * nm                  xr = a(j1)                  xi = a(j1 + 1)                  yr = a(k1)                  yi = a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi              end do              k1 = 4 * k + 2 * ip(m + k)              j1 = k1 + 2              k1 = k1 + nh              xr = a(j1)              xi = a(j1 + 1)              yr = a(k1)              yi = a(k1 + 1)              a(j1) = yr              a(j1 + 1) = yi              a(k1) = xr              a(k1 + 1) = xi              j1 = j1 + nm              k1 = k1 + 2 * nm              xr = a(j1)              xi = a(j1 + 1)              yr = a(k1)              yi = a(k1 + 1)              a(j1) = yr              a(j1 + 1) = yi              a(k1) = xr              a(k1 + 1) = xi              j1 = j1 + nm              k1 = k1 - nm              xr = a(j1)              xi = a(j1 + 1)              yr = a(k1)              yi = a(k1 + 1)              a(j1) = yr              a(j1 + 1) = yi              a(k1) = xr              a(k1 + 1) = xi              j1 = j1 - 2              k1 = k1 - nh              xr = a(j1)              xi = a(j1 + 1)              yr = a(k1)              yi = a(k1 + 1)              a(j1) = yr              a(j1 + 1) = yi              a(k1) = xr              a(k1 + 1) = xi              j1 = j1 + nh + 2              k1 = k1 + nh + 2              xr = a(j1)              xi = a(j1 + 1)              yr = a(k1)              yi = a(k1 + 1)              a(j1) = yr              a(j1 + 1) = yi              a(k1) = xr              a(k1 + 1) = xi              j1 = j1 - nh + nm              k1 = k1 + 2 * nm - 2              xr = a(j1)              xi = a(j1 + 1)              yr = a(k1)              yi = a(k1 + 1)              a(j1) = yr              a(j1 + 1) = yi              a(k1) = xr              a(k1 + 1) = xi          end do      else          do k = 0, m - 1              do j = 0, k - 1                  j1 = 4 * j + ip(m + k)                  k1 = 4 * k + ip(m + j)                  xr = a(j1)                  xi = a(j1 + 1)                  yr = a(k1)                  yi = a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 + nm                  k1 = k1 + nm                  xr = a(j1)                  xi = a(j1 + 1)                  yr = a(k1)                  yi = a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 + nh                  k1 = k1 + 2                  xr = a(j1)                  xi = a(j1 + 1)                  yr = a(k1)                  yi = a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 - nm                  k1 = k1 - nm                  xr = a(j1)                  xi = a(j1 + 1)                  yr = a(k1)                  yi = a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 + 2                  k1 = k1 + nh                  xr = a(j1)                  xi = a(j1 + 1)                  yr = a(k1)                  yi = a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 + nm                  k1 = k1 + nm                  xr = a(j1)                  xi = a(j1 + 1)                  yr = a(k1)                  yi = a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 - nh                  k1 = k1 - 2                  xr = a(j1)                  xi = a(j1 + 1)                  yr = a(k1)                  yi = a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 - nm                  k1 = k1 - nm                  xr = a(j1)                  xi = a(j1 + 1)                  yr = a(k1)                  yi = a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi              end do              k1 = 4 * k + ip(m + k)              j1 = k1 + 2              k1 = k1 + nh              xr = a(j1)              xi = a(j1 + 1)              yr = a(k1)              yi = a(k1 + 1)              a(j1) = yr              a(j1 + 1) = yi              a(k1) = xr              a(k1 + 1) = xi              j1 = j1 + nm              k1 = k1 + nm              xr = a(j1)              xi = a(j1 + 1)              yr = a(k1)              yi = a(k1 + 1)              a(j1) = yr              a(j1 + 1) = yi              a(k1) = xr              a(k1 + 1) = xi          end do      end if      end!      subroutine bitrv2conj(n, ip, a)      integer n, ip(0 : *), j, j1, k, k1, l, m, nh, nm      real*8 a(0 : n - 1), xr, xi, yr, yi      m = 1      l = n / 4      do while (l .gt. 8)          m = m * 2          l = l / 4      end do      nh = n / 2      nm = 4 * m      if (l .eq. 8) then          do k = 0, m - 1              do j = 0, k - 1                  j1 = 4 * j + 2 * ip(m + k)                  k1 = 4 * k + 2 * ip(m + j)                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 + nm                  k1 = k1 + 2 * nm                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 + nm                  k1 = k1 - nm                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 + nm                  k1 = k1 + 2 * nm                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 + nh                  k1 = k1 + 2                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 - nm                  k1 = k1 - 2 * nm                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 - nm                  k1 = k1 + nm                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 - nm                  k1 = k1 - 2 * nm                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 + 2                  k1 = k1 + nh                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 + nm                  k1 = k1 + 2 * nm                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 + nm                  k1 = k1 - nm                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 + nm                  k1 = k1 + 2 * nm                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 - nh                  k1 = k1 - 2                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 - nm                  k1 = k1 - 2 * nm                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 - nm                  k1 = k1 + nm                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi                  j1 = j1 - nm                  k1 = k1 - 2 * nm                  xr = a(j1)                  xi = -a(j1 + 1)                  yr = a(k1)                  yi = -a(k1 + 1)                  a(j1) = yr                  a(j1 + 1) = yi                  a(k1) = xr                  a(k1 + 1) = xi              end do              k1 = 4 * k + 2 * ip(m + k)              j1 = k1 + 2              k1 = k1 + nh              a(j1 - 1) = -a(j1 - 1)              xr = a(j1)              xi = -a(j1 + 1)              yr = a(k1)              yi = -a(k1 + 1)              a(j1) = yr              a(j1 + 1) = yi              a(k1) = xr              a(k1 + 1) = xi              a(k1 + 3) = -a(k1 + 3)              j1 = j1 + nm              k1 = k1 + 2 * nm              xr = a(j1)              xi = -a(j1 + 1)              yr = a(k1)              yi = -a(k1 + 1)              a(j1) = yr              a(j1 + 1) = yi              a(k1) = xr              a(k1 + 1) = xi              j1 = j1 + nm              k1 = k1 - nm              xr = a(j1)              xi = -a(j1 + 1)              yr = a(k1)              yi = -a(k1 + 1)              a(j1) = yr              a(j1 + 1) = yi              a(k1) = xr              a(k1 + 1) = xi              j1 = j1 - 2              k1 = k1 - nh              xr = a(j1)              xi = -a(j1 + 1)              yr = a(k1)              yi = -a(k1 + 1)              a(j1) = yr              a(j1 + 1) = yi              a(k1) = xr              a(k1 + 1) = xi              j1 = j1 + nh + 2              k1 = k1 + nh + 2              xr = a(j1)              xi = -a(j1 + 1)              yr = a(k1)              yi = -a(k1 + 1)              a(j1) = yr              a(j1 + 1) = yi              a(k1) = xr              a(k1 + 1) = xi              j1 = j1 - nh + nm              k1 = k1 + 2 * nm - 2              a(j1 - 1) = -a(j1 - 1)              xr = a(j1)              xi = -a(j1 + 1)              yr = a(k1)              yi = -a(k1 + 1)              a(j1) = yr

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?