rfftf1
C RFFTF1 SOURCE BP208322 18/10/08 21:15:20 9952 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C FFTPACK 5.1 C C Authors: Paul N. Swarztrauber and Richard A. Valent C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) REAL*8 CH(*) ,C(IN,*) ,WA(N) ,FAC(15) C NF = INT(FAC(2)) NA = 1 L2 = N IW = N DO 111 K1=1,NF KH = NF-K1 IP = INT(FAC(KH+3)) L1 = L2/IP IDO = N/L2 IDL1 = IDO*L1 IW = IW-(IP-1)*IDO NA = 1-NA c CAS IP=4 IF (IP .NE. 4) GO TO 102 IX2 = IW+IDO IX3 = IX2+IDO IF (NA .NE. 0) GO TO 101 GO TO 110 GO TO 110 c CAS IP=2 102 IF (IP .NE. 2) GO TO 104 IF (NA .NE. 0) GO TO 103 GO TO 110 GO TO 110 c CAS IP=3 104 IF (IP .NE. 3) GO TO 106 IX2 = IW+IDO IF (NA .NE. 0) GO TO 105 GO TO 110 GO TO 110 c CAS IP=5 106 IF (IP .NE. 5) GO TO 108 IX2 = IW+IDO IX3 = IX2+IDO IX4 = IX3+IDO IF (NA .NE. 0) GO TO 107 1 WA(IX3),WA(IX4)) GO TO 110 1 WA(IX3),WA(IX4)) GO TO 110 c AUTRES CAS POUR IP 108 IF (IDO .EQ. 1) NA = 1-NA IF (NA .NE. 0) GO TO 109 NA = 1 GO TO 110 NA = 0 110 L2 = L1 111 CONTINUE SN = 1./N TSN = 2./N TSNM = -TSN MODN = MOD(N,2) NL = N-2 IF(MODN .NE. 0) NL = N-1 IF (NA .NE. 0) GO TO 120 C(1,1) = SN*CH(1) DO 118 J=2,NL,2 C(1,J) = TSN*CH(J) C(1,J+1) = TSNM*CH(J+1) 118 CONTINUE IF(MODN .NE. 0) RETURN C(1,N) = SN*CH(N) RETURN 120 C(1,1) = SN*C(1,1) DO 122 J=2,NL,2 C(1,J) = TSN*C(1,J) C(1,J+1) = TSNM*C(1,J+1) 122 CONTINUE IF(MODN .NE. 0) RETURN C(1,N) = SN*C(1,N) RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales