mirror of
https://github.com/HongjianFang/DSurfTomo.git
synced 2025-12-20 02:21:06 +08:00
Initial commit
change 1e-2 to 'ftol' in CalSurfG.f90, which may cause problem with small study region (~2 km)
This commit is contained in:
26
srcsparsity/forwardstep.f90
Normal file
26
srcsparsity/forwardstep.f90
Normal file
@@ -0,0 +1,26 @@
|
||||
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
|
||||
Reference in New Issue
Block a user