subroutine sint1(n,War,Was,Xh,x,Ifac) use fftpack_kind implicit none integer :: i , Ifac , k , kc , modn , n , np1 , ns2 real(rk) :: t1 , t2 , War , Was , x , Xh , xhold dimension War(*) , Was(*) , x(*) , Xh(*) , Ifac(*) real(rk),parameter :: sqrt3 = sqrt(3.0_rk) do i = 1 , n Xh(i) = War(i) War(i) = x(i) enddo if ( n<2 ) then Xh(1) = Xh(1) + Xh(1) elseif ( n==2 ) then xhold = sqrt3*(Xh(1)+Xh(2)) Xh(2) = sqrt3*(Xh(1)-Xh(2)) Xh(1) = xhold else np1 = n + 1 ns2 = n/2 x(1) = 0.0_rk do k = 1 , ns2 kc = np1 - k t1 = Xh(k) - Xh(kc) t2 = Was(k)*(Xh(k)+Xh(kc)) x(k+1) = t1 + t2 x(kc+1) = t2 - t1 enddo modn = mod(n,2) if ( modn/=0 ) x(ns2+2) = 4.0_rk*Xh(ns2+1) call rfftf1(np1,x,Xh,War,Ifac) Xh(1) = 0.5_rk*x(1) do i = 3 , n , 2 Xh(i-1) = -x(i) Xh(i) = Xh(i-2) + x(i-1) enddo if ( modn==0 ) Xh(n) = -x(n+1) endif do i = 1 , n x(i) = War(i) War(i) = Xh(i) enddo end subroutine sint1