Download wexp.eso

Back to the list

   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