Download elpdr2.eso

Back to the list

   1 : C ELPDR2    SOURCE    CHAT      05/01/12    23:37:20     5004           
   2 :       SUBROUTINE ELPDR2(CA1,CV,CX,N,IPIVO,JPIVO,IAUX)                           
   3 : C                                                                               
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8(A-B,D-H,O-Z)                                              
   6 :       IMPLICIT COMPLEX*16(C)                                                    
   7 : C                                                                               
   8 : C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC         
   9 : C                                                                               
  10 : C                                                                               
  11 : C    RESOLUTION D'UN SYSTEME LINEAIRE COMPLEXE   CA1 * CX = CV                  
  12 : C                                                                               
  13 : C    PAR LA METHODE DE GAUSS EN UTILISATION LE STOCKAGE DE LA                   
  14 : C                                                                               
  15 : C    TRIANGULARISATION FAITE PAR ELPDR1 (IPIV, JPIV, IAUX)
  16 : C                                                                               
  17 : C                                                                               
  18 : C    PARAMETRES :                                                               
  19 : C                                                                               
  20 : C    CA1(N*N) : MATRICE (N*N) REPRESENTANT LE SYSTEME LINEAIRE                  
  21 : C    CV(N)    : SECOND MEMBRE                                                   
  22 : C    IAUX(N)  : TABLEAU DE TRAVAIL QUI DONNE L'ORDRE DES INCONNUES              
  23 : C                                                                               
  24 : C    SORTIE :                                                                   
  25 : C                                                                               
  26 : C    CX       : SOLUTION                                                        
  27 : C                                                                               
  28 : C    AUTEUR : SAINT-DIZIER                                                      
  29 : C    DATE   : 08 DEC 1989                                                       
  30 : C                                                                               
  31 : C  ====================================================================         
  32 : C                                                                               
  33 :       COMPLEX*16  CA1(N,*),CV(*),CX(*)                                          
  34 :       INTEGER      IAUX(*),IPIVO(*),JPIVO(*)                                    
  35 :       EPS = 1.D-12                                                              
  36 : C                                                                               
  37 :       DO 100 ILIG =1,N                                                          
  38 : C                                                                               
  39 : C                                                                               
  40 :       DO 120 J=ILIG,N                                                           
  41 :         CAUX      = CA1(IPIVO(ILIG),J)                                          
  42 :         CA1(IPIVO(ILIG),J)= CA1(ILIG,J)                                         
  43 :         CA1(ILIG,J)= CAUX                                                       
  44 :   120 CONTINUE                                                                  
  45 : C                                                                               
  46 :       CAUX    = CV(IPIVO(ILIG))                                                 
  47 :       CV(IPIVO(ILIG))= CV(ILIG)                                                 
  48 :       CV(ILIG)= CAUX                                                            
  49 : C                                                                               
  50 : C   1.3  ON MET LA COLONNE NUMERO JPIV EN JLIG= ILIG                            
  51 : C        ET ON NOTE CELA DANS LE TABLEAU IAUX                                   
  52 : C   *      ERREUR SUR BORNES 130 CORRIGEE                                       
  53 : C                                                                               
  54 :       JLIG=ILIG                                                                 
  55 :       DO 130 I=1   ,N                                                           
  56 :         CAUX      = CA1(I,JPIVO(JLIG))                                          
  57 :         CA1(I,JPIVO(JLIG))= CA1(I,JLIG)                                         
  58 :         CA1(I,JLIG)= CAUX                                                       
  59 :   130 CONTINUE                                                                  
  60 : C                                                                               
  61 :       DO 140 I= ILIG + 1 ,N                                                     
  62 :         CAUX      = CA1(I,ILIG) / CA1(ILIG,ILIG)                                
  63 :         DO 141 J=ILIG  ,N                                                       
  64 :           CA1(I,J)= CA1(I,J)- CAUX * CA1 (ILIG,J)                               
  65 :   141   CONTINUE                                                                
  66 :         CV(I)  = CV(I)- CAUX * CV(ILIG)                                         
  67 :   140 CONTINUE                                                                  
  68 : C                                                                               
  69 : C     FIN   BOUCLE SUR LES MATRICES EMBOITEES                                   
  70 : 100   CONTINUE                                                                  
  71 : C                                                                               
  72 : C   2. SUBSTITUTION EN REMONTANT                                                
  73 : C                                                                               
  74 :       CV(N) = CV(N) / CA1 (N,N)                                                 
  75 :       DO 200 I= 2,N                                                             
  76 :         IN = N + 1 - I                                                          
  77 :         DO 210 K= 1,I-1                                                         
  78 :           KN = N + 1 - K                                                        
  79 :           CV(IN) = CV(IN) - CA1 (IN,KN)* CV(KN)                                 
  80 :   210   CONTINUE                                                                
  81 :         CV(IN) = CV(IN) / CA1 (IN,IN)                                           
  82 :   200 CONTINUE                                                                  
  83 : C                                                                               
  84 : C   3. ON REMET LES INCONNUES A LA BONNE PLACE                                  
  85 : C                                                                               
  86 :       DO 300 I= 1,N                                                             
  87 :         CX(IAUX(I)) = CV(I)                                                     
  88 :   300 CONTINUE                                                                  
  89 : C                                                                               
  90 :       RETURN                                                                    
  91 :       END                                                                       
  92 :  

© Cast3M 2003 - All rights reserved.
Disclaimer