Télécharger wexp.eso

Retour à la liste

Numérotation des lignes :

wexp
  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.  
  27. -INC PPARAM
  28. -INC CCOPTIO
  29. -INC CCREEL
  30. C
  31. DIMENSION W(*)
  32. C
  33. N2=N/2
  34. IF(IIMPI.EQ.1) WRITE(IOIMP,*)' NOMBRE DE POINTS ',N
  35. ARG=-2.*XPI/REAL(N)
  36. C IF(IIMPI.EQ.1) WRITE(IOIMP,*)' ARGUMENT ',ARG
  37. W(1)=(1.,0.)
  38. C IF(IIMPI.EQ.1) WRITE(IOIMP,*)' W(1) ',W(1)
  39. PREEL=COS(ARG)
  40. PIMAG=SIN(ARG)
  41. W(2)=RLTOCX(PREEL,PIMAG)
  42. C IF(IIMPI.EQ.1) WRITE(IOIMP,*)' W(2) ',W(2)
  43. IF(INV) THEN
  44. * CALL COCOMP(W(2),WW)
  45. WW=CONJG(W(2))
  46. W(2)=WW
  47. ENDIF
  48. C IF(IIMPI.EQ.1) WRITE(IOIMP,*)' W(2) ',W(2)
  49. DO 10 I=3,N2
  50. W(I)=W(2)*W(I-1)
  51. 10 CONTINUE
  52. C IF(IIMPI.EQ.1) WRITE(IOIMP,1000)(W(I),I=1,N2)
  53. 1000 FORMAT(2(1PE12.5))
  54. C
  55. RETURN
  56. END
  57.  
  58.  
  59.  
  60.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales