Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | n | |||
real(kind=dp), | intent(inout) | :: | x(*) | |||
real(kind=dp), | intent(in) | :: | wsave(*) |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | k | ||||
integer, | public | :: | kc | ||||
integer, | public | :: | ns2 | ||||
real(kind=dp), | public | :: | xhold |
subroutine dsinqf(n, x, wsave)
use fftpack_kind, only: dp => rk
implicit none
integer, intent(in) :: n
real(dp), intent(inout) :: x(*)
real(dp), intent(in) :: wsave(*)
integer :: k, kc, ns2
real(dp) :: xhold
if (n == 1) return
ns2 = n/2
do k = 1, ns2
kc = n - k
xhold = x(k)
x(k) = x(kc + 1)
x(kc + 1) = xhold
end do
call dcosqf(n, x, wsave)
do k = 2, n, 2
x(k) = -x(k)
end do
end subroutine dsinqf