1 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
5 C Authors: Paul N. Swarztrauber and Richard A. Valent
9 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
11 SUBROUTINE MSNTF1
(LOT
,JUMP
,N
,INC
,X
,WSAVE
,DSUM
,XH
,WORK
,IER
)
12 REAL X
(INC
,*) ,WSAVE
(*) ,XH
(LOT
,*)
13 DOUBLE PRECISION DSUM
(*)
17 102 SSQRT3
= 1./SQRT
(3.)
19 XHOLD
= SSQRT3*
(X
(M
,1)+X
(M
,2))
20 X
(M
,2) = SSQRT3*
(X
(M
,1)-X
(M
,2))
32 T2
= WSAVE
(K
)*(X
(M
,K
)+X
(M
,KC
))
38 IF (MODN
.EQ
. 0) GO TO 124
42 XH
(M1
,NS2
+2) = 4.*X
(M
,NS2
+1)
47 LNXH
= LOT
-1 + LOT*
(NP1
-1) + 1
48 LNSV
= NP1
+ INT
(LOG
(REAL(NP1
))/LOG
(2.)) + 4
51 CALL RFFTMF
(LOT
,1,NP1
,LOT
,XH
,LNXH
,WSAVE
(NS2
+1),LNSV
,WORK
,
55 CALL XERFFT
('MSNTF1',-5)
59 IF(MOD
(NP1
,2) .NE
. 0) GO TO 30
61 XH
(M
,NP1
) = XH
(M
,NP1
)+XH
(M
,NP1
)
63 30 SFNP1
= 1./FLOAT
(NP1
)
74 X
(M
,I
-1) = .5*XH
(M1
,I
)
75 DSUM
(M1
) = DSUM
(M1
)+.5*XH
(M1
,I
-1)
79 IF (MODN
.NE
. 0) GO TO 200
83 X
(M
,N
) = .5*XH
(M1
,N
+1)