1 !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
4 ! Copyright (C) 1995-2004, Scientific Computing Division,
5 ! University Corporation for Atmospheric Research
6 ! Licensed under the GNU General Public License (GPL)
8 ! Authors: Paul N. Swarztrauber and Richard A. Valent
10 ! $Id: msntb1.f,v 1.2 2004/06/15 21:29:20 rodney Exp $
12 !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
14 SUBROUTINE MSNTB1(LOT,JUMP,N,INC,X,WSAVE,DSUM,XH,WORK,IER)
15 REAL X(INC,*) ,WSAVE(*) ,XH(LOT,*)
16 DOUBLE PRECISION DSUM(*)
20 102 SRT3S2 = SQRT(3.)/2.
22 XHOLD = SRT3S2*(X(M,1)+X(M,2))
23 X(M,2) = SRT3S2*(X(M,1)-X(M,2))
35 T2 = WSAVE(K)*(X(M,K)+X(M,KC))
41 IF (MODN .EQ. 0) GO TO 124
45 XH(M1,NS2+2) = 4.*X(M,NS2+1)
50 LNXH = LOT-1 + LOT*(NP1-1) + 1
51 LNSV = NP1 + INT(LOG(REAL(NP1))) + 4
54 CALL RFFTMF(LOT,1,NP1,LOT,XH,LNXH,WSAVE(NS2+1),LNSV,WORK, &
58 CALL XERFFT ('MSNTB1',-5)
62 IF(MOD(NP1,2) .NE. 0) GO TO 30
64 XH(M,NP1) = XH(M,NP1)+XH(M,NP1)
66 30 FNP1S4 = FLOAT(NP1)/4.
70 X(M,1) = FNP1S4*XH(M1,1)
77 X(M,I-1) = FNP1S4*XH(M1,I)
78 DSUM(M1) = DSUM(M1)+FNP1S4*XH(M1,I-1)
82 IF (MODN .NE. 0) GO TO 200
86 X(M,N) = FNP1S4*XH(M1,N+1)