sym7pol.f
来自「网络带宽测试工具」· F 代码 · 共 42 行
F
42 行
Subroutine sym7pol( n1, n2, n3, m, a, rmr, q, x, y, gamma )! ---------------------------------------------------------------------! --- Polynomial (Neumann) preconditioner.! --------------------------------------------------------------------- Use numerics Use floptime Implicit None Integer :: n1, n2, n3, m Real(l_) :: a(n1*n2*n3,0:3), rmr, q(n1*n2*n3), x(n1*n2*n3), & y(n1*n2*n3) Real(l_) :: gamma(m+1) Real(l_) :: nrm2 Real(l_) :: t(n1*n2*n3), w(n1*n2*n3) Integer :: i, j, n12, ntot! --------------------------------------------------------------------- n12 = n1*n2 ntot = n12*n3!$omp parallel do Do j = 1, ntot t(j) = q(j)*x(j) y(j) = t(j) y(j) = gamma(m+1)*y(j) End Do Do i = 1, m Call sym7mxv( n1, n2, n3, a, y, w )!$omp parallel do Do j = 1, ntot w(j) = q(j)*w(j) y(j) = y(j) - w(j) y(j) = y(j) + gamma(m-i+1)*t(j) End Do End Do! ---------------------------------------------------------------------! --- Computation of (r,Mr) where M is the preconditioner. rmr = nrm2( ntot, y ) flops = flops + ntot*( 2 + 4*m )! --------------------------------------------------------------------- End Subroutine sym7pol
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?