1 : C WEXP SOURCE CHAT 05/01/13 04:11:35 5004 2 : SUBROUTINE WEXP(INV,N,W) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8 (A-H,O-V) 5 : IMPLICIT COMPLEX*16 (W-Z) 6 : COMPLEX*16 RLTOCX 7 : LOGICAL INV 8 : C 9 : C======================================================================= 10 : C = CALCUL DES EXP. COMPLEXES EN SIMPLE PRECISION = 11 : C = (POUR CALCUL DE TRANSFORMEES DE FOURIER RAPIDES) = 12 : C = = 13 : C = = 14 : C = INV = .FALSE. : TRANSFORMEE DIRECTE = 15 : C = INV = .TRUE. : TRANSFORMEE INVERSE = 16 : C = N : NOMBRE ENTIER DE POINTS SUR LESQUELS ON VEUT = 17 : C = FAIRE LA TRANSFORMATION = 18 : C = W : TABLEAU COMPLEXE DE DIMENSION N2=N/2 QUI = 19 : C = CONTIENDRA A LA SORTIE LES EXPONENTIELLES = 20 : C = = 21 : C = CREATION : 13/04/87 = 22 : C = PROGRAMMATION : BEAUFILS ( D'APRES TFF DE BIBLIO DEMT/SMTS ) = 23 : C = ECRIT PAR LEPAREUX = 24 : C======================================================================= 25 : C 26 : -INC CCOPTIO 27 : -INC CCREEL 28 : C 29 : DIMENSION W(*) 30 : C 31 : N2=N/2 32 : IF(IIMPI.EQ.1) WRITE(IOIMP,*)' NOMBRE DE POINTS ',N 33 : ARG=-2.*XPI/REAL(N) 34 : C IF(IIMPI.EQ.1) WRITE(IOIMP,*)' ARGUMENT ',ARG 35 : W(1)=(1.,0.) 36 : C IF(IIMPI.EQ.1) WRITE(IOIMP,*)' W(1) ',W(1) 37 : PREEL=COS(ARG) 38 : PIMAG=SIN(ARG) 39 : W(2)=RLTOCX(PREEL,PIMAG) 40 : C IF(IIMPI.EQ.1) WRITE(IOIMP,*)' W(2) ',W(2) 41 : IF(INV) THEN 41 : * CALL COCOMP(W(2),WW) 42 : WW=CONJG(W(2)) 43 : W(2)=WW 44 : ENDIF 45 : C IF(IIMPI.EQ.1) WRITE(IOIMP,*)' W(2) ',W(2) 46 : DO 10 I=3,N2 47 : W(I)=W(2)*W(I-1) 48 : 10 CONTINUE 49 : C IF(IIMPI.EQ.1) WRITE(IOIMP,1000)(W(I),I=1,N2) 50 : 1000 FORMAT(2(1PE12.5)) 51 : C 52 : RETURN 53 : END 54 : 55 : 56 :
© Cast3M 2003 - All rights reserved.
Disclaimer