Download valpro.eso

Back to the list

   1 : C VALPRO    SOURCE    CHAT      05/01/13    04:01:08     5004           
   2 :       SUBROUTINE VALPRO                                                         
   3 : ************************************************************************        
   4 : *                                                                               
   5 : *                             V A L P R O                                       
   6 : *                             -----------                                       
   7 : *                                                                               
   8 : *            SOUS-PROGRAMME ASSOCIE A L'OPERATEUR "VALPROPRE"                   
   9 : *                                                                               
  10 : * FONCTION:                                                                     
  11 : * ---------                                                                     
  12 : *                                                                               
  13 : *     CALCULER LES VALEURS PROPRES D'UNE MATRICE TRIDIAGONALE DE LA             
  14 : *     FORME:                                                                    
  15 : *                                                                               
  16 : *     | A1   1   0   0   0   0 |                                                
  17 : *     | B1  A2   1   0   0   0 |                                                
  18 : *     |  0  B2  A3   1   0   0 |                                                
  19 : *     |  0   0  B3  A4   1   0 |                                                
  20 : *     |  0   0   0  B4  A5   1 |                                                
  21 : *     |  0   0   0   0  B5  A6 |                                                
  22 : *                                                                               
  23 : * PHRASE D'APPEL (EN GIBIANE):                                                  
  24 : * ----------------------------                                                  
  25 : *                                                                               
  26 : *                                         |ABSOLU |                             
  27 : *     VV = VALPROPRE AA BB (ITERATIO II) (|       | EE) ;                       
  28 : *                                         |RELATIF|                             
  29 : *                                                                               
  30 : *     LES PARENTHESES INDIQUANT DES OPERANDES FACULTATIFS.                      
  31 : *                                                                               
  32 : * OPERANDES ET RESULTATS:                                                       
  33 : * -----------------------                                                       
  34 : *                                                                               
  35 : *     AA        'LISTREEL'  TERMES DE LA DIAGONALE DE LA MATRICE.               
  36 : *     BB        'LISTREEL'  TERMES DE LA SOUS-DIAGONALE DE LA MATRICE.          
  37 : *     ITERATIO  'MOT     '  MOT-CLE INDIQUANT QUE L'ON FOURNIT LE               
  38 : *                           NOMBRE MAXIMUM D'ITERATIONS A FAIRE DANS LES        
  39 : *                           CALCULS.                                            
  40 : *     II        'ENTIER  '  NOMBRE MAXIMUM D'ITERATIONS PERMIS DANS LES         
  41 : *                           CALCULS.                                            
  42 : *     ABSOLU    'MOT     '  MOT-CLE INDIQUANT QUE L'ON FOURNIT LA               
  43 : *                           PRECISION ABSOLUE DE CONVERGENCE.                   
  44 : *     RELATIF   'MOT     '  MOT-CLE INDIQUANT QUE L'ON FOURNIT LA               
  45 : *                           PRECISION RELATIVE DE CONVERGENCE.                  
  46 : *     EE        'FLOTTANT'  PRECISION DE CONVERGENCE.                           
  47 : *     VV        'LISTREEL'  LISTE DES VALEURS PROPRES, DANS L'ORDRE DE          
  48 : *                           CALCUL.                                             
  49 : *                                                                               
  50 : *     LES MOTS-CLES "ABSOLU" ET "RELATIF" S'EXCLUENT MUTUELLEMENT.              
  51 : *                                                                               
  52 : * LEXIQUE: (ORDRE ALPHABETIQUE)                                                 
  53 : * --------                                                                      
  54 : *                                                                               
  55 : *     IPDIAG  ENTIER    POINTEUR SUR L'OBJET "AA".                              
  56 : *     IPSOUS  ENTIER    POINTEUR SUR L'OBJET "BB".                              
  57 : *     IPVALP  ENTIER    POINTEUR SUR L'OBJET "VV".                              
  58 : *     LUPARM  LOGIQUE   TABLEAU DONT L'ELEMENT N."I" INDIQUE PAR "VRAI"         
  59 : *                       OU "FAUX" SI LE PARAMETRE DE CALCUL NUMEROTE "I"        
  60 : *                       A DEJA ETE DONNE.                                       
  61 : *     NBITER  ENTIER    NOMBRE MAXIMUM D'ITERATIONS PERMISES.                   
  62 : *     NUMPAR  ENTIER    NUMERO COURANT DE PARAMETRE DE CALCUL.                  
  63 : *     PRECI1  REEL DP   PRECISION ABSOLUE DE CONVERGENCE, OU BIEN "0".          
  64 : *     PRECI2  REEL DP   PRECISION RELATIVE DE CONVERGENCE, OU BIEN "0".         
  65 : *                                                                               
  66 : * AUTEUR, DATE DE CREATION:                                                     
  67 : * -------------------------                                                     
  68 : *                                                                               
  69 : *     PASCAL MANIGOT     27 FEVRIER 1985                                        
  70 : *                                                                               
  71 : * LANGAGE:                                                                      
  72 : * --------                                                                      
  73 : *                                                                               
  74 : *     FORTRAN77 + EXTENSION: CARACTERES MIS DANS DES ENTIERS                    
  75 : *                                                                               
  76 : ************************************************************************        
  77 : *                                                                               
  78 :       IMPLICIT INTEGER(I-N)
  79 : -INC CCOPTIO                                                                    
  80 : *                                                                               
  81 :       REAL*8 PRECI1,PRECI2,XMINIM                                               
  82 : *                                                                               
  83 :       PARAMETER (NBMOTS = 3)                                                    
  84 :       PARAMETER (NBPARM = 2)                                                    
  85 : *                                                                               
  86 :       LOGICAL LUPARM(NBPARM)                                                    
  87 : *                                                                               
  88 :       CHARACTER*4 LISMOT(NBMOTS)                                                
  89 : *                                                                               
  90 :       DATA LISMOT/'ITER','ABSO','RELA'/                                         
  91 : *                                                                               
  92 : *     -- LECTURE DES PARAMETRES DE CALCUL --                                    
  93 : *                                                                               
  94 :       DO 100 IB100=1,NBPARM                                                     
  95 :          LUPARM(IB100) = .FALSE.                                                
  96 :   100    CONTINUE                                                               
  97 : *     END DO                                                                    
  98 : *                                                                               
  99 :       DO 200 IB200=1,NBPARM                                                     
 100 : *                                                                               
 101 :          ICODE = 0                                                              
 102 :          NBMOT = NBMOTS                                                         
 102 :          CALL LIRMOT (LISMOT,NBMOT,NUMLIS,ICODE)                                
 103 :          IF (NUMLIS.EQ.0) GO TO 200                                             
 104 : *                                                                               
 105 :          IF (NUMLIS .GT. 2) THEN                                                
 106 :             NUMPAR = NUMLIS - 1                                                 
 107 :          ELSE                                                                   
 108 :             NUMPAR = NUMLIS                                                     
 109 :          END IF                                                                 
 110 : *                                                                               
 111 :          IF (LUPARM(NUMPAR)) THEN                                               
 112 :             NUMERR = 202                                                        
 112 :             CALL ERREUR (NUMERR)                                                
 113 :             RETURN                                                              
 114 :          END IF                                                                 
 115 :          LUPARM(NUMPAR) = .TRUE.                                                
 116 : *                                                                               
 117 :          IF (NUMLIS .EQ. 1) THEN                                                
 118 :             ICODE = 1                                                           
 119 :             MINIME = 1                                                          
 120 : *           LECTURE D'UN 'ENTIER' POSITIF:                                      
 120 :             CALL LIRE03 (MINIME,NBITER,ICODE,IRETOU)                            
 121 :             IF (IERR .NE. 0) RETURN                                             
 122 :          ELSE IF (NUMLIS .EQ. 2) THEN                                           
 123 :             ICODE = 1                                                           
 124 :             XMINIM = 0.D0                                                       
 125 : *           LECTURE D'UN 'FLOTTANT' POSITIF:                                    
 125 :             CALL LIRE04 (XMINIM,PRECI1,0,ICODE,IRETOU)                          
 126 :             IF (IERR .NE. 0) RETURN                                             
 127 :             PRECI2 = 0.D0                                                       
 128 :          ELSE IF (NUMLIS .EQ. 3) THEN                                           
 129 :             ICODE = 1                                                           
 130 :             XMINIM = 0.D0                                                       
 131 : *           LECTURE D'UN 'FLOTTANT' POSITIF:                                    
 131 :             CALL LIRE04 (XMINIM,PRECI2,0,ICODE,IRETOU)                          
 132 :             IF (IERR .NE. 0) RETURN                                             
 133 :             PRECI1 = 0.D0                                                       
 134 :          END IF                                                                 
 135 : *                                                                               
 136 :   200    CONTINUE                                                               
 137 : *     END DO                                                                    
 138 : *                                                                               
 139 : *     RQ: ON NE TESTE PAS SI TOUS LES PARAMETRES NECESSAIRES ONT ETE            
 140 : *         LUS. "VALPR1" DOIT CONTENIR DES TESTS ET DES VALEURS DE               
 141 : *         REMPLACEMENT.                                                         
 142 : *                                                                               
 143 : *     -- LECTURE DE LA MATRICE TRIDIAGONALE NON SYMETRIQUE --                   
 144 : *                                                                               
 145 : *     LECTURE DES TERMES DIAGONAUX:                                             
 146 :       ICODE = 1                                                                 
 146 :       CALL LIROBJ ('LISTREEL',IPDIAG,ICODE,IRETOU)                              
 147 :       IF (IERR .NE. 0) RETURN                                                   
 148 : *                                                                               
 149 : *     LECTURE DES TERMES SOUS-DIAGONAUX:                                        
 150 :       ICODE = 1                                                                 
 150 :       CALL LIROBJ ('LISTREEL',IPSOUS,ICODE,IRETOU)                              
 151 :       IF (IERR .NE. 0) RETURN                                                   
 152 : *                                                                               
 153 : *     -- CALCUL DES VALEURS PROPRES --                                          
 154 : *                                                                               
 154 :       CALL VALPR1 (IPDIAG,IPSOUS,NBITER,PRECI1,PRECI2,  IPVALP)                 
 155 :       IF (IERR .NE. 0) RETURN                                                   
 156 : *                                                                               
 156 :       CALL ECROBJ ('LISTREEL',IPVALP)                                           
 157 : *                                                                               
 158 :       END                                                                       
 159 :  

© Cast3M 2003 - All rights reserved.
Disclaimer