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

📄 sym7mxv.f

📁 网络带宽测试工具
💻 F
字号:
      Subroutine sym7mxv( n1, n2, n3, a, x, y )! ---------------------------------------------------------------------! --- sym7mxv does a matrix-vector multiply of a banded symmetric!     matrix originating from a 3-D finite difference scheme. Only!     the upper diagonal part of matrix a is stored in a(*,0:3).! ---------------------------------------------------------------------      Use         numerics      Use         floptime      Implicit    None      Integer  :: n1 ,n2 ,n3      Real(l_) :: a(n1*n2*n3,0:3), x(n1*n2*n3), y(n1*n2*n3)      Integer  :: i, ntot, n12! ---------------------------------------------------------------------      n12  = n1*n2      ntot = n12*n3      y(1) = a(1,0)*x(1) + a(1,1)*x(2) + a(1,2)*x(n1+1) +      &       a(1,3)*x(n12+1)!$omp parallel do      Do i = 2, n1         y(i) = a(i,0)*x(i)     + a(i,1)*x(i+1)   + a(i,2)*x(i+n1) +     &          a(i,3)*x(i+n12) + a(i-1,1)*x(i-1)      End Do!$omp parallel do      Do i = n1+1, n12         y(i) = a(i,0)*x(i)     + a(i,1)*x(i+1)   + a(i,2)*x(i+n1) +     &          a(i,3)*x(i+n12) + a(i-1,1)*x(i-1) + a(i-n1,2)*x(i-n1)      End Do!$omp parallel do      Do i = n12 + 1, ntot - n12         y(i) = a(i,0)*x(i)     + a(i,1)*x(i+1)   + a(i,2)*x(i+n1) +     &          a(i,3)*x(i+n12) + a(i-1,1)*x(i-1) + a(i-n1,2)*x(i-n1) +     &          a(i-n12,3)*x(i-n12)      End Do!$omp parallel do      Do i = ntot - n12 + 1, ntot - n1         y(i) = a(i,0)*x(i)     + a(i,1)*x(i+1)   + a(i,2)*x(i+n1) +     &          a(i-1,1)*x(i-1) + a(i-n1,2)*x(i-n1) +     &          a(i-n12,3)*x(i-n12)      End Do!$omp parallel do      Do i = ntot - n1 + 1, ntot - 1         y(i) = a(i,0)*x(i)       + a(i,1)*x(i+1) + a(i-1,1)*x(i-1) +     &          a(i-n1,2)*x(i-n1) + a(i-n12,3)*x(i-n12)      End Do      y(ntot) = a(ntot,0)*x(ntot)       + a(ntot-1,1)*x(ntot-1) +     &          a(ntot-n1,2)*x(ntot-n1) + a(ntot-n12,3)*x(ntot-n12)      flops = flops + 14 + 18*( n1 - 1 ) + 22*n1*( n2 - 1 ) +     &                13*( n1*n2*( n3 - 2 ) ) ! -- Keep track of flops.! ---------------------------------------------------------------------      End Subroutine sym7mxv

⌨️ 快捷键说明

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