1 subroutine rtran2(data, nr, kr, ktran)
14 integer(itm_i4),
intent(in) :: nr, kr, ktran
15 real(r8),
dimension((nr + 1) * kr + 1),
intent(inout) :: data
17 real(r8) :: theta, dc, ds, ws, wc, sumr, difr, sumi, difi, tr, ti, wca
18 integer(itm_i4) :: ks, n, nmax, kmax, k, nk
24 theta = 1.5707963267949_r8 / dble(n)
25 dc = 2._r8 * sin(theta)**2
26 ds = sin(2._r8 * theta)
34 data(nmax - 1) =
data(1)
35 data(nmax - 1 + kr) =
data(kr + 1)
40 sumr = .5_r8 * (
data(k) +
data(nk))
41 difr = .5_r8 * (
data(k) -
data(nk))
42 sumi =.5_r8 * (
data(k + kr) +
data(nk + kr))
43 difi =.5_r8 * (
data(k + kr) -
data(nk + kr))
44 tr =wc * sumi - ws * difr
45 ti =ws * sumi + wc * difr
47 data(k + kr) = difi - ti
49 data(nk + kr) = -difi - ti
50 wca = wc - dc * wc - ds * ws
51 ws = ws + ds * wc -dc * ws
subroutine rtran2(data, nr, kr, ktran)