Télécharger rfft1i.eso

Retour à la liste

Numérotation des lignes :

rfft1i
  1. C RFFT1I SOURCE BP208322 18/10/08 21:15:18 9952
  2. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  3. C
  4. C FFTPACK 5.1
  5. C
  6. C Authors: Paul N. Swarztrauber and Richard A. Valent
  7. c
  8. c FFTPACK 5.1 routine RFFT2I initializes real array WSAVE for use
  9. c in its companion routines RFFT2F and RFFT2B for computing the two-
  10. c dimensional fast Fourier transform of real data. Prime
  11. c factorizations of L and M, together with tabulations of the
  12. c trigonometric functions, are computed and stored in array WSAVE.
  13. c RFFT2I must be called prior to the first call to RFFT2F or RFFT2B.
  14. c Separate WSAVE arrays are required for different values of L or M.
  15. c
  16. c Input Arguments
  17. c
  18. c L Integer number of elements to be transformed in the first
  19. c dimension. The transform is most efficient when L is a
  20. c product of small primes.
  21. c
  22. c M Integer number of elements to be transformed in the second
  23. c dimension. The transform is most efficient when M is a
  24. c product of small primes.
  25. c
  26. c LENSAV Integer number of elements in the WSAVE array. LENSAV must
  27. c be at least L + 3*M + INT(LOG(REAL(L))/LOG(2.)) +
  28. c 2*INT(LOG(REAL(M))/LOG(2.)) +12.
  29. c
  30. c
  31. c Output Arguments
  32. c
  33. c WSAVE Real work array with dimension LENSAV, containing the
  34. c prime factors of L and M, and also containing certain
  35. c trigonometric values which will be used in routines
  36. c RFFT2B or RFFT2F.
  37. c
  38. c
  39. c IER Integer error return
  40. c = 0 successful exit
  41. c = 2 input parameter LENSAV not big enough
  42. c = 20 input error returned by lower level routine
  43. C
  44. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  45.  
  46. SUBROUTINE RFFT1I ( N, WSAVE, LENSAV, IER )
  47. IMPLICIT INTEGER(I-N)
  48. IMPLICIT REAL*8(A-H,O-Z)
  49. INTEGER N, LENSAV, IER
  50. REAL*8 WSAVE(LENSAV)
  51. C
  52. IER = 0
  53. C
  54. IF (LENSAV .LT. N + INT(LOG(REAL(N))/LOG(2.)) +4) THEN
  55. IER = 2
  56. c CALL XERFFT ('RFFT1I ', 3)
  57. call erreur(5)
  58. return
  59. ENDIF
  60. C
  61. IF (N .EQ. 1) RETURN
  62. C
  63. CALL RFFTI1 (N,WSAVE(1),WSAVE(N+1))
  64. RETURN
  65. END
  66.  
  67.  
  68.  

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