1 !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
5 ! Authors: Paul N. Swarztrauber and Richard A. Valent
7 ! $Id: mcsqb1.f,v 1.2 2004/06/15 21:29:19 rodney Exp $
9 !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
11 SUBROUTINE MCSQB1 (LOT,JUMP,N,INC,X,WSAVE,WORK,IER)
12 DIMENSION X(INC,*) ,WSAVE(*) ,WORK(LOT,*)
19 XIM1 = X(M,I-1)+X(M,I)
20 X(M,I) = .5*(X(M,I-1)-X(M,I))
28 IF (MODN .NE. 0) GO TO 302
33 LENX = (LOT-1)*JUMP + INC*(N-1) + 1
34 LNSV = N + INT(LOG(REAL(N))) + 4
37 CALL RFFTMB(LOT,JUMP,N,INC,X,LENX,WSAVE(N+1),LNSV,WORK,LNWK,IER1)
40 CALL XERFFT ('MCSQB1',-5)
49 WORK(M1,K) = WSAVE(K-1)*X(M,KC)+WSAVE(KC-1)*X(M,K)
50 WORK(M1,KC) = WSAVE(K-1)*X(M,K)-WSAVE(KC-1)*X(M,KC)
53 IF (MODN .NE. 0) GO TO 305
55 X(M,NS2+1) = WSAVE(NS2)*(X(M,NS2+1)+X(M,NS2+1))
62 X(M,K) = WORK(M1,K)+WORK(M1,KC)
63 X(M,KC) = WORK(M1,K)-WORK(M1,KC)
67 X(M,1) = X(M,1)+X(M,1)