The Elk Code
 
Loading...
Searching...
No Matches
splinew.f90
Go to the documentation of this file.
1
2! Copyright (C) 2019 J. K. Dewhurst, S. Sharma and E. K. U. Gross.
3! This file is distributed under the terms of the GNU General Public License.
4! See the file COPYING for license details.
5
6pure subroutine splinew(n,wc,f,cf)
7implicit none
8! arguments
9integer, intent(in) :: n
10real(8), intent(in) :: wc(4,3,n),f(n)
11real(8), intent(out) :: cf(3,n)
12! local variables
13integer i
14real(8) f1,f2,f3,f4
15f1=f(1); f2=f(2); f3=f(3); f4=f(4)
16cf(1,1)=wc(1,1,1)*f1+wc(2,1,1)*f2+wc(3,1,1)*f3+wc(4,1,1)*f4
17cf(2,1)=wc(1,2,1)*f1+wc(2,2,1)*f2+wc(3,2,1)*f3+wc(4,2,1)*f4
18cf(3,1)=wc(1,3,1)*f1+wc(2,3,1)*f2+wc(3,3,1)*f3+wc(4,3,1)*f4
19cf(1,2)=wc(1,1,2)*f1+wc(2,1,2)*f2+wc(3,1,2)*f3+wc(4,1,2)*f4
20cf(2,2)=wc(1,2,2)*f1+wc(2,2,2)*f2+wc(3,2,2)*f3+wc(4,2,2)*f4
21cf(3,2)=wc(1,3,2)*f1+wc(2,3,2)*f2+wc(3,3,2)*f3+wc(4,3,2)*f4
22!$OMP SIMD LASTPRIVATE(f1,f2,f3,f4) SIMDLEN(8)
23do i=3,n-2
24 f1=f(i-1); f2=f(i); f3=f(i+1); f4=f(i+2)
25 cf(1,i)=wc(1,1,i)*f1+wc(2,1,i)*f2+wc(3,1,i)*f3+wc(4,1,i)*f4
26 cf(2,i)=wc(1,2,i)*f1+wc(2,2,i)*f2+wc(3,2,i)*f3+wc(4,2,i)*f4
27 cf(3,i)=wc(1,3,i)*f1+wc(2,3,i)*f2+wc(3,3,i)*f3+wc(4,3,i)*f4
28end do
29i=n-1
30cf(1,i)=wc(1,1,i)*f1+wc(2,1,i)*f2+wc(3,1,i)*f3+wc(4,1,i)*f4
31cf(2,i)=wc(1,2,i)*f1+wc(2,2,i)*f2+wc(3,2,i)*f3+wc(4,2,i)*f4
32cf(3,i)=wc(1,3,i)*f1+wc(2,3,i)*f2+wc(3,3,i)*f3+wc(4,3,i)*f4
33cf(1,n)=wc(1,1,n)*f1+wc(2,1,n)*f2+wc(3,1,n)*f3+wc(4,1,n)*f4
34cf(2,n)=wc(1,2,n)*f1+wc(2,2,n)*f2+wc(3,2,n)*f3+wc(4,2,n)*f4
35cf(3,n)=wc(1,3,n)*f1+wc(2,3,n)*f2+wc(3,3,n)*f3+wc(4,3,n)*f4
36end subroutine
37
pure subroutine splinew(n, wc, f, cf)
Definition splinew.f90:7