Skip to content

Commit a69e016

Browse files
committed
Changed Fortran90 code of bkfilter to also return trend
1 parent 612db81 commit a69e016

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

pymaclab/filters/src/bkfilter.f90

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
subroutine bkfilter(n, y, up, dn, k, ybp)
1+
subroutine bkfilter(n, y, up, dn, k, ybp, yt)
22

33
! Aubhik 20.02.2005
44
!
@@ -25,14 +25,14 @@ subroutine bkfilter(n, y, up, dn, k, ybp)
2525
implicit none
2626

2727
integer n, up, dn, k
28-
real y(n), ybp(n)
28+
real y(n), ybp(n), yt(n)
2929

3030
integer j
3131
real pi, omlbar, omubar, kr, kj, theta
32-
real akvec(k+1), avec(2*k+1)
32+
real akvec(k+1), avec(2*k+1), tvec(2*k+1)
3333

3434
intent(in):: n, up, dn, k, y
35-
intent(out):: ybp
35+
intent(out):: ybp, yt
3636

3737
pi = 2.0*acos(0.0)
3838

@@ -63,10 +63,16 @@ subroutine bkfilter(n, y, up, dn, k, ybp)
6363
avec(k+1 + j) = akvec(j+1)
6464
end do
6565

66+
do j = 1, k*2+1
67+
tvec(j) = 1.0 - avec(j)
68+
end do
69+
6670
ybp = 0.0
71+
yt = 0.0
6772

6873
do j = k + 1, n - k
6974
ybp(j) = dot_product(avec, y(j - k: j + k))
75+
yt(j) = dot_product(tvec, y(j - k: j + k))
7076
end do
7177

7278
end subroutine bkfilter

pymaclab/tests/pymaclab_tests/filters_tests/test_filters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ def test_filters():
2727

2828
for datar in datli:
2929
cons_cycle = filters.hpfilter(data=datar)[0]
30-
cons_cycle2 = filters.bkfilter(data=datar)
30+
cons_cycle2 = filters.bkfilter(data=datar)[0]
3131
cons_cycle3 = filters.cffilter(data=datar)[0]

0 commit comments

Comments
 (0)