⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 synthr.f

📁 网络带宽测试工具
💻 F
字号:
      Subroutine synthr( a, w, n, m )! ---------------------------------------------------------------------! --- Routine 'synthr' does a 1-D Haar wavelet systhesis. 'a' is input,!     'w' is output array.! ---------------------------------------------------------------------      Use         numerics      Implicit    None      Integer  :: n, m      Real(l_) :: a(n), w(n)      Integer  :: i, j, j2, k, n1      Logical  :: odd! ---------------------------------------------------------------------      n1 = 1      odd = .TRUE.      w(1) = a(1)      Do i = 1, m         If ( odd ) Then            If ( n1 >= 4 ) Then               Do j = 1, n1, 4                  w(j*2-1) = a(j)   + a(j+n1)                  w(j*2)   = a(j)   - a(j+n1)                  w(j*2+1) = a(j+1) + a(j+n1+1)                  w(j*2+2) = a(j+1) - a(j+n1+1)                  w(j*2+3) = a(j+2) + a(j+n1+2)                  w(j*2+4) = a(j+2) - a(j+n1+2)                  w(j*2+5) = a(j+3) + a(j+n1+3)                  w(j*2+6) = a(j+3) - a(j+n1+3)               End Do            Else If ( n1 >= 2 ) Then               Do j = 1, n1, 2                  w(j*2-1) = a(j)   + a(j+n1)                  w(j*2)   = a(j)   - a(j+n1)                  w(j*2+1) = a(j+1) + a(j+n1+1)                  w(j*2+2) = a(j+1) - a(j+n1+1)               End Do            Else               Do j = 1, n1                  w(j*2-1) = a(j) + a(j+n1)                  w(j*2)   = a(j) - a(j+n1)               End Do            End If         Else            If ( n1 >= 4 ) Then               Do j = 1, n1, 4                  a(j*2-1) = w(j)   + a(j+n1)                  a(j*2)   = w(j)   - a(j+n1)                  a(j*2+1) = w(j+1) + a(j+n1+1)                  a(j*2+2) = w(j+1) - a(j+n1+1)                  a(j*2+3) = w(j+2) + a(j+n1+2)                  a(j*2+4) = w(j+2) - a(j+n1+2)                  a(j*2+5) = w(j+3) + a(j+n1+3)                  a(j*2+6) = w(j+3) - a(j+n1+3)               End Do            Else If ( n1 >= 2 ) Then               Do j = 1, n1, 2                  a(j*2-1) = w(j)   + a(j+n1)                  a(j*2)   = w(j)   - a(j+n1)                  a(j*2+1) = w(j+1) + a(j+n1+1)                  a(j*2+2) = w(j+1) - a(j+n1+1)               End Do            Else               Do j = 1, n1                  a(j*2-1) = w(j) + a(j+n1)                  a(j*2)   = w(j) - a(j+n1)               End Do             End If         End If         n1 = n1 + n1         odd = .NOT. odd      End Do      If ( m == 2*(m/2) ) w = a! ---------------------------------------------------------------------      End Subroutine synthr            

⌨️ 快捷键说明

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