DSurfTomo/srcsparsity/forwardstep.f90

27 lines
594 B
Fortran
Raw Normal View History

2015-07-05 16:57:48 +08:00
subroutine forwardstep(vec,n)
implicit none
integer n
real vec(n)
integer half, k, j
half=n/2!changed to more than one
do k=1,half
vec(k)=vec(k)+sqrt(3.0)*vec(half+k)
end do
vec(half+1)=vec(half+1)-sqrt(3.0)/4.0*vec(1)- &
(sqrt(3.0)-2)/4.0*vec(half)
do k=1,half-1
vec(half+k+1)=vec(half+k+1)-sqrt(3.0)/4.0*vec(k+1)- &
(sqrt(3.0)-2)/4.0*vec(k)
end do
do k=1,half-1
vec(k)=vec(k)-vec(half+k+1)
end do
vec(half)=vec(half)-vec(half+1)
do k=1,half
vec(k)=(sqrt(3.0)-1)/sqrt(2.0)*vec(k)
vec(half+k)=(sqrt(3.0)+1)/sqrt(2.0)*vec(half+k)
end do
end subroutine