Download itinv1.eso

Back to the list

   1 : C ITINV1    SOURCE    CHAT      09/10/09    21:19:06     6519           
   2 :       SUBROUTINE ITINV1 (IPA,IPB)                                               
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8 (A-H,O-Z)                                                 
   5 : ************************************************************************        
   6 : *                                                                               
   7 : *                             I T I N V 1                                       
   8 : *                             -----------                                       
   9 : *                                                                               
  10 : * FONCTION:                                                                     
  11 : * ---------                                                                     
  12 : *                                                                               
  13 : *     1) EFFECTUER (EVENTUELLEMENT) UNE ACCELERATION DE CONVERGENCE,            
  14 : *     2) EFFECTUER UNE ITERATION:  |A|.X(I+1) = |B|.X(I), |A| ET |B|            
  15 : *        ETANT 2 'RIGIDITE' ET X(J) LE 'CHPOINT' DE L'ITERATION "J".            
  16 : *     3) CALCULER DES ELEMENTS DE COMPARAISON ENTRE X(I) ET X(I+1).             
  17 : *                                                                               
  18 : * MODE D'APPEL:                                                                 
  19 : * -------------                                                                 
  20 : *                                                                               
  20 : *     CALL ITINV1 (IPA,IPB)                                                     
  21 : *                                                                               
  22 : * PARAMETRES:   (E)=ENTREE   (S)=SORTIE                                         
  23 : * -----------                                                                   
  24 : *                                                                               
  25 : *    +DIFREL  REEL SP   (S)  "DIFFERENCE RELATIVE".                             
  26 : *                            EGAL A  ABS(DIFMAX/VALMAX).                        
  27 : *    +IACCEL  ENTIER    (E)  NOMBRE D'ITERATIONS CONSECUTIVES EFFECTUEES        
  28 : *                            SANS ACCELERATION DE CONVERGENCE.                  
  29 : *                       (S)  MEME DEFINITION. VALEUR INCREMENTEE OU             
  30 : *                            REMISE A 0.                                        
  31 : *     IPA     ENTIER    (E)  POINTEUR DE L'OBJET 'RIGIDITE' |A|.                
  32 : *     IPB     ENTIER    (E)  POINTEUR DE L'OBJET 'RIGIDITE' |B|.                
  33 : *    +IPBX1   ENTIER    (S)  POINTEUR DU 'CHPOINT' PRODUIT DE |B| PAR           
  34 : *                            "X1".                                              
  35 : *    +IPX0    ENTIER    (S)  POINTEUR DU 'CHPOINT' ITERE PRECEDANT "X1"         
  36 : *                            (FOURNI QUAND  "IACCEL" VAUT "NUMAC - 1").         
  37 : *    +IPX1    ENTIER    (E)  POINTEUR DU 'CHPOINT' ITERE "X1" D'INDICE          
  38 : *                            "NBITER".                                          
  39 : *                       (S)  MEME DEFINITION, "NBITER" AYANT ETE                
  40 : *                            INCREMENTE.                                        
  41 : *    +IPX2    ENTIER    (E)  POINTEUR DU 'CHPOINT' ITERE "X1".                  
  42 : *                       (S)  POINTEUR DU 'CHPOINT' ITERE SUIVANT "X1".          
  43 : *    +NBITER  ENTIER    (E)  NOMBRE D'ITERATIONS EFFECTUEES.                    
  44 : *                       (S)  MEME DEFINITION, VALEUR INCREMENTEE.               
  45 : *    +NUMAC   ENTIER    (E)  L'ACCELERATION DE CONVERGENCE A LIEU 1             
  46 : *                            FOIS TOUTES LES "NUMAC" ITERATIONS.                
  47 : *                                                                               
  48 : *     + = PARAMETRE PASSE DANS LE COMMUN "CITINV".                              
  49 : *                                                                               
  50 : * LEXIQUE: (ORDRE ALPHABETIQUE)                                                 
  51 : * --------                                                                      
  52 : *                                                                               
  53 : *     DIFMAX  REEL DP   DIFFERENCE MAXIMALE ENTRE LES VALEURS                   
  54 : *                       CORRESPONDANTES DE DEUX 'CHPOINT' ITERES                
  55 : *                       CONSECUTIFS.                                            
  56 : *     IPDIFF  ENTIER    POINTEUR SUR LA DIFFERENCE DES 'CHPOINT' DE             
  57 : *                       POINTEURS "IPX2" ET "IPX1".                             
  58 : *     VALMAX  REEL DP   VALEUR MAXIMALE DANS UN 'CHPOINT' ITERE.                
  59 : *                                                                               
  60 : * SOUS-PROGRAMMES APPELES:                                                      
  61 : * ------------------------                                                      
  62 : *                                                                               
  63 : *     ACCEL1, COMBI2, DTCHPO, ANCHPO, MAXIM1, MUCPRI, NORMA1, RESOU1,           
  64 : *     DTCHPM .                                                                  
  65 : *                                                                               
  66 : * AUTEUR, DATE DE CREATION:                                                     
  67 : * -------------------------                                                     
  68 : *                                                                               
  69 : *     PASCAL MANIGOT     19 DECEMBRE 1984                                       
  70 : *                                                                               
  71 : * LANGAGE:                                                                      
  72 : * --------                                                                      
  73 : *                                                                               
  74 : *     FORTRAN77                                                                 
  75 : *                                                                               
  76 : ************************************************************************        
  77 : *                                                                               
  78 : -INC CCOPTIO                                                                    
  79 : -INC CCHAMP                                                                     
  80 : -INC SMRIGID
  81 :       SEGMENT IDEMEN(0)                                                         
  82 : *                                                                               
  83 :       CHARACTER*4 MOTCLE                                                        
  84 : *                                                                               
  85 :       COMMON/CITINV/ NBITER,IACCEL,NUMAC,IPX2,IPX0,IPX1,IPBX1,                  
  86 :      C IBBX1,IBBX2,ITPRO,DIFREL                                                 
  87 : *                                                                               
  88 :       PARAMETER (IPLACE = 0)                                                    
  89 :       PARAMETER (UN = 1.D0)                                                     
  90 :       PARAMETER (XMOIN1 = -1.D0)                                                
  91 : *                                                                               
  92 : *                                                                               
  93 : *     -- PREPARATION POUR LES SOUS-PROGRAMMES "MAXIM1" ET "NORMA1" --           
  94 : *                                                                               
  95 : *     ON EXCLUT LES COMPOSANTES DE TYPE "LX":                                   
  95 :          CALL MOTS1 (IPLMOT,MOTCLE)                                             
  96 : *                                                                               
  97 :       NBITER = NBITER + 1                                                       
  98 :       IACCEL = IACCEL + 1                                                       
  99 : *                                                                               
 100 : *                                                                               
 101 :       IF (IACCEL .EQ. NUMAC) THEN                                               
 102 : *                                                                               
 103 : *        HYP: "NUMAC" >= 3  (NON TESTE DANS LE SOUS-PROGRAMME)                  
 104 : *                                                                               
 105 :          IACCEL = 0                                                             
 106 : *        ACCELERATION DE CONVERGENCE:                                           
 106 : *        CALL ACCEL1 (IPX0,IPX1,IPX2,  IPOINT)                                  
 106 :          CALL ACTIPO (1.D0,1,IPX0,IPX1,IPX2,0)                                  
 107 :          IF (IERR .NE. 0) RETURN                                                
 107 :          CALL LIROBJ('CHPOINT',IPOINT,1,IRRR)                                   
 107 :          CALL DTCHPO (IPX0)                                                     
 107 :          CALL DTCHPO (IPX1)                                                     
 107 :          IF (IPOINT .NE. IPX2) CALL DTCHPO (IPX2)                               
 108 :          IPX1 = IPOINT                                                          
 108 :          CALL MUCPRI(IPX1,IPB,IBBX1)                                            
 109 :          IF(IERR.NE.0) RETURN                                                   
 110 : *                                                                               
 111 :       ELSE                                                                      
 112 : *                                                                               
 113 :          IF ( (IACCEL + 1) .EQ. NUMAC) THEN                                     
 114 :             IPX0 = IPX1                                                         
 115 :          ELSE IF (NBITER .GT. 1) THEN                                           
 115 :             CALL DTCHPO (IPX1)                                                  
 116 :          END IF                                                                 
 117 :          IPX1 = IPX2                                                            
 118 : *                                                                               
 119 :       END IF                                                                    
 120 : *                                                                               
 121 : *     -- RESOLUTION DE: A.X2 = B.X1 --                                          
 122 : *                                                                               
 123 : *        MISE A ZERO DES TERMES EN PI POUR LES ELTS LIQUIDES                    
 124 : *                                                                               
 125 :          IPTBX1 = IBBX1                                                         
 125 :          CALL ANCHPO(IPTBX1,NOMDU(15),IBBX1)                                    
 125 :          CALL DTCHPO(IPTBX1)                                                    
 126 : *                                                                               
 127 : *  determination symetrique ou non
 128 : *
 129 :       INSYM=0
 130 :       MRIGID = IPA
 131 :       SEGACT,MRIGID 
 132 :       NRG = IRIGEL(/1)
 133 :       NBR = IRIGEL(/2)
 134 :       IF(NORINC.GT.0  .AND. NORIND.GT.0) THEN
 135 :          INSYM = 1
 136 :       ENDIF
 137 :       IF (NRG.GE.7) THEN
 138 :          DO  9 IN = 1,NBR
 139 :             IANTI=IRIGEL(7,IN)
 140 :             IF(IANTI.GT.0) THEN
 141 :                INSYM = 1
 142 :             ENDIF
 143 :   9      CONTINUE
 144 :       ENDIF                
 145 :       SEGDES,MRIGID 
 146 : *
 147 :       SEGINI IDEMEN                                                             
 148 :       IDEMEN(**)=IBBX1                                                          
 149 :       NOID=0                                                                    
 150 :       NOEN=1                                                                    
 151 :       IF (INSYM.EQ.0) THEN
 151 :          CALL RESOU1 (IPA,IDEMEN,NOID,NOEN,1D-18)
 152 :       ELSE
 152 :          CALL LDMT   (IPA,IDEMEN,NOID,NOEN,1D-18)
 153 :       ENDIF
 154 :       SEGACT IDEMEN                                                             
 155 :       IPX20=IDEMEN(1)                                                           
 156 :       SEGSUP IDEMEN                                                             
 157 :       IF (IERR .NE. 0) RETURN                                                   
 158 : *                                                                               
 159 : *     -- NORMALISATION A 1 DE "X2" --                                           
 160 : *                                                                               
 160 :       CALL NORMA1 (IPX20,IPLMOT,MOTCLE,  IPX2)                                  
 161 :       IF (IERR .NE. 0) RETURN                                                   
 161 :       CALL DTCHPO (IPX20)                                                       
 162 :       IF (NBITER .GT. 1) THEN                                                   
 163 : *        ON TUE AUSSI LE SUPPORT DES POINTS CREE PAR MUCPRI                     
 163 : *        CALL DTCHPM (IPBX1)                                                    
 163 : *        CALL DTCHPM (IBBX1)                                                    
 164 :       END IF                                                                    
 165 : *     PRODUIT RIGIDITE.CHPOINT:                                                 
 165 :       CALL MUCPRI (IPX2,IPB,  IBBX2)                                            
 166 :       IF (IERR .NE. 0) RETURN                                                   
 167 : *                                                                               
 168 : *                                                                               
 169 : *     -- CREATION DU MAXIMUM DE (X2-X1) --                                      
 170 : *                                                                               
 170 :       CALL COMBI2 (IPX2,UN,IPX1,XMOIN1,  IPDIFF)                                
 171 :       IF (IERR .NE. 0) RETURN                                                   
 171 :       CALL MAXIM1 (IPDIFF,IPLMOT,MOTCLE,IPLACE,  DIFMAX)                        
 172 :       IF (IERR .NE. 0) RETURN                                                   
 172 :       CALL DTCHPO (IPDIFF)                                                      
 173 : *                                                                               
 174 : *     RQ: GRACE A L'APPEL A "NORMA1", "VALMAX" EST CONSTANT ET                  
 175 : *         EGAL A 1 --> (DIFMAX/VALMAX = DIFMAX)                                 
 176 : *                                                                               
 177 :       DIFREL = ABS(DIFMAX)                                                      
 178 :       IF (NBITER.EQ.30.AND.ITPRO.EQ.1) THEN                                     
 179 :       IF (IIMPI.EQ.2) WRITE(IOIMP,11111) NBITER,DIFREL                          
 180 : 11111 FORMAT(/1X,'ITERATION',1X,I4,1X,'CRITERE DE CONVERGENCE',1X,E12.5)        
 181 :       ENDIF                                                                     
 182 : *                                                                               
 183 :       END                                                                       
 184 :  
 185 :  
 186 :  
 187 :  
 188 :  
 189 :  
 190 :  
 191 :  
 192 :  

© Cast3M 2003 - All rights reserved.
Disclaimer