Download elfres.eso

Back to the list

   1 : C ELFRES    SOURCE    AM        08/02/14    21:21:26     6050           
   2 :       SUBROUTINE ELFRES(KANBN,KDNCN,KNREFE,KOMALI,KACHAR,DELTAT,M,NPAS,         
   3 :      *NFOIS,KSOLUT)                                                             
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   6 : C                                                                               
   7 : C  ====================================================================         
   8 : C    SOUS-PROGRAMME EFFECTUANT LA RESOLUTION TEMPORELLE                         
   9 : C    SOUS-PROGRAMME APPELE PAR ELFE                                             
  10 : C    N'APPELLE QUE DES SOUS-PROGRAMMES FORTRAN                                  
  11 : C    CREATION    :  3/11/86      MODIFICATION LE  22/01/88                      
  12 : C    PROGRAMMEUR : GUILBAUD                  PAR LIONEL VIVAN                   
  13 : C  ====================================================================         
  14 : C                                                                               
  15 : -INC CCOPTIO                                                                    
  16 : -INC CCHAMP                                                                     
  17 : -INC SMELEME                                                                    
  18 : -INC SMCHPOI                                                                    
  19 : -INC SMSOLUT                                                                    
  20 : -INC SMLREEL                                                                    
  21 : C                                                                               
  22 :       SEGMENT MANBN                                                             
  23 :         POINTEUR KAB(NSGA).ANBN                                                 
  24 :       ENDSEGMENT                                                                
  25 : C                                                                               
  26 : C   NSGA  : NOMBRE DE BLOCS ANBN                                                
  27 : C                                                                               
  28 :       SEGMENT ANBN                                                              
  29 :         REAL*8 AB(NTANBN,LANBN)                                                 
  30 :       ENDSEGMENT                                                                
  31 : C                                                                               
  32 : C   AB(I,K) : TERME I DE LA MATRICE A OU B D'UN ELEMENT AU TEMPS K              
  33 : C   NTANBN : NOMBRE DE TERMES DES MATRICES A ET B DE TOUS LES ELEMENTS          
  34 : C   LANBN  : NOMBRE DE PAS DE TEMPS STOCKES DANS UN BLOC ANBN                   
  35 : C                                                                               
  36 :       SEGMENT MDNCN                                                             
  37 :         POINTEUR KDC(NSGD).DNCN                                                 
  38 :       ENDSEGMENT                                                                
  39 : C                                                                               
  40 : C   NSGD  : NOMBRE DE BLOCS DNCN                                                
  41 : C                                                                               
  42 :       SEGMENT DNCN                                                              
  43 :         REAL*8 DC(NIDNCN,LDNCN)                                                 
  44 :       ENDSEGMENT                                                                
  45 : C                                                                               
  46 : C   DC(I,K) : DDL I AU TEMPS K                                                  
  47 : C   NIDNCN : NOMBRE TOTAL D'INCONNUES                                           
  48 : C   LDNCN  : NOMBRE DE PAS DE TEMPS STOCKES DANS UN BLOC DNCN                   
  49 : C                                                                               
  50 :       SEGMENT MNREFE                                                            
  51 :         INTEGER NREFE(8,NSTR)                                                   
  52 :         INTEGER NTANBN                                                          
  53 :         INTEGER NIDNCN                                                          
  54 :         INTEGER NTVN                                                            
  55 :         POINTEUR NREPA.MPASS                                                    
  56 :         POINTEUR NRECA.MCARA                                                    
  57 :         POINTEUR NRENO.MNORM                                                    
  58 :         POINTEUR NRECPR.ICPR                                                    
  59 :         POINTEUR NREMEL.MELEME                                                  
  60 :         POINTEUR NREDEN.MDEN                                                    
  61 :       ENDSEGMENT                                                                
  62 : C                                                                               
  63 : C   NSTR       : NOMBRE D'ELEMENTS                                              
  64 : C   NREFE(1,I) : MELEME                                                         
  65 : C   NREFE(2,I) : MSOSTU                                                         
  66 : C   NREFE(3,I) : TYPE DE L'ELEMENT                                              
  67 : C   NREFE(4,I) : NOMBRE DE POINTS DU MELEME                                     
  68 : C   NREFE(5,I) : NOMBRE DE DDL PAR POINT                                        
  69 : C   NREFE(6,I)=IVN :LE 1ER DDL DE L'ELEMENT EST LE IVN+1 IEME DE VN             
  70 : C   NREFE(7,I)=IAN :LE 1ER TERME DE LA MATRICE A EST LE IAN IEME DE ANBN        
  71 : C   NREFE(8,I)= 1 :LE IEME ELEMENT EST RIGIDE (OU PARTIELLEMENT) SINON 0        
  72 : C   NTANBN : NOMBRE DE TERMES DES MATRICES A ET B POUR TOUS LES ELEMENTS        
  73 : C   NIDNCN : NOMBRE TOTAL D'INCONNUES DE DNCN                                   
  74 : C   NTVN   : LONGUEUR DU TABLEAU VN                                             
  75 : C                                                                               
  76 :       SEGMENT MPASS                                                             
  77 :         REAL*8 PASS(9*NSTR)                                                     
  78 :       ENDSEGMENT                                                                
  79 : C                                                                               
  80 : C   PASS(9) : MATRICE DE CHANGEMENT DE REPERE POUR L'ELEMENT I                  
  81 : C                                                                               
  82 :       SEGMENT VN(NTVN)                                                          
  83 : C                                                                               
  84 :       SEGMENT MACHAR                                                            
  85 :         INTEGER  LACHAL(NCHAR)                                                  
  86 :         POINTEUR LACHAT(NCHAR).ICHATE                                           
  87 :         POINTEUR LACHAF(NCHAR).ICHAFO                                           
  88 :         REAL*8   BCHAR1(NV1)                                                    
  89 :         REAL*8   BCHAR2(NV1)                                                    
  90 :       ENDSEGMENT                                                                
  91 : C                                                                               
  92 : C     LACHAL(I) : NOMBRE DE TERMES RELATIFS AU CHARGEMENT I DANS BCHAR1         
  93 : C     LACHAT(I) : POINTEUR SUR LA LISTE DES TEMPS DU CHARGEMENT I               
  94 : C     LACHAF(I) : POINTEUR SUR LA LISTE DES F(T)  DU CHARGEMENT I               
  95 : C     BCHAR1 : VECTEUR FORME PAR L'EMPILEMENT DE LA PARTIE CHARGEMENT           
  96 : C          DES SECOND-MEMBRES BLIAI, POUR TOUTES LES LIAISONS CONCERNEES        
  97 : C          PAR UN SOUS-CHARGEMENT ET POUR TOUS LES SOUS-CHARGEMENTS             
  98 : C     BCHAR2 : IDEM MODULE PAR LES FONCTIONS TEMPORELLES                        
  99 : C                                                                               
 100 :       SEGMENT MOMALI                                                            
 101 :         POINTEUR NOMALI(NBLIPE).MALIAI                                          
 102 :         POINTEUR KCPR2.ICPR2                                                    
 103 :       ENDSEGMENT                                                                
 104 : C                                                                               
 105 :       SEGMENT MALIAI                                                            
 106 :         REAL*8  ALIA1(NALI)                                                     
 107 :         REAL*8  ALIA2(NBLI)                                                     
 108 :         REAL*8  ALIA3(NL/2,NL/2)                                                
 109 :         REAL*8  ALIA4(NL/2,NL/2)                                                
 110 :         REAL*8  BLIAI(NL)                                                       
 111 :         REAL*8  XLIAI(NL)                                                       
 112 :         INTEGER NLBLI(2,NBSTLI)                                                 
 113 :         INTEGER NDCLIA(NL)                                                      
 114 :         INTEGER NVNLIA(NL/2)                                                    
 115 :         INTEGER IBCHA(NCHAL)                                                    
 116 :         POINTEUR KWLIAI.MWLIAI                                                  
 117 :         POINTEUR KLIMAS.MLIMAS                                                  
 118 :       ENDSEGMENT                                                                
 119 : C                                                                               
 120 : C     MATRICE DE LIAISON PUIS SON INVERSE EN 4 BLOCS:                           
 121 : C     ALIA1 : MATRICE BANDE  I-A0                                               
 122 : C                               -1                                              
 123 : C     ALIA2 : MATRICE BANDE  -B0                                                
 124 : C     ALIA3 : MATRICE DE LIAISON  TERMES EN DEPLACEMENT                         
 125 : C     ALIA4 : MATRICE DE LIAISON  TERMES EN CONTRAINTE                          
 126 : C     NLBLI : TABLEAU DE CORRESPONDANCE ENTRE LES BLOCS                         
 127 : C     BLIAI : VECTEUR SECOND MEMBRE -> VN ET CHARGEMENT EVENTUEL                
 128 : C     XLIAI : VECTEUR PREMIER MEMBRE -> DNCN                                    
 129 : C     NDCLIA(NJC)=IKID : LA NJC-IEME INCONNUE DE XLIAI EST LE IKID-IEME         
 130 : C     DDL DE DNCN                                                               
 131 : C               DNCN(IKID)      <-  XLIAI(NJC)                                  
 132 : C     NVNLIA(NJL)=IKIV : LA NJL-IEME INCONNUE DE BLIAI EST LE IKIV-IEME         
 133 : C     DDL DE VN                                                                 
 134 : C               BLIAI(NJL)      <-  VN(IKIV)                                    
 135 : C     NCHAL : NOMBRE DE SOUS-CHARGEMENTS AGISSANT SUR LA LIAISON                
 136 : C     IBCHA(I)=K : LA PARTIE CHARGEMENT DE BLIAI POUR LE I-IEME SOUS-           
 137 : C     CHARGEMENT SE TROUVE A PARTIR DE LA K+1-IEME PLACE DANS BCHAR2            
 138 : C               BLIAI(NL/2+NJL) <-  BCHAR2(K+NJL)                               
 139 : C                                                                               
 140 :       SEGMENT MLIMAS                                                            
 141 :         REAL*8  BLIMAS(2,NJON)                                                  
 142 :         REAL*8  ALIMAS(LIM,NJON)                                                
 143 :         INTEGER NLIMAS(LIM)                                                     
 144 :       ENDSEGMENT                                                                
 145 : C                                                                               
 146 : C     SEGMENT POUR LE CALCUL DE L'ACCELERATION DU CENTRE DE GRAVITE DE          
 147 : C     L'ELEMENT RIGIDE DE LIAISON                                               
 148 : C     BLIMAS(1,I) <--- DC(NDCLIA(I),N-1)                                        
 149 : C     BLIMAS(2,I) <--- DC(NDCLIA(I),N-2)                                        
 150 : C     NLIMAS(J)=K  : BLIAI(NL+K)=-2*C(I,K)*BLIMAS(1,I)+C(I,K)*BLIMAS(2,I        
 151 : C                                                                               
 152 :       SEGMENT MNORM                                                             
 153 :         REAL*8 DNORM(LNORM)                                                     
 154 :       ENDSEGMENT                                                                
 155 : C                                                                               
 156 : C   DNORM : VECTEUR DE NORMALISATION                                            
 157 : C                                                                               
 158 : C                                                                               
 159 :       SEGMENT MCARA                                                             
 160 :         REAL*8 CARA(LCAR*NSTR)                                                  
 161 :       ENDSEGMENT                                                                
 162 : C                                                                               
 163 : C   LCAR    : NOMBRE DE CARACTERISTIQUES DE L'ELEMENT                           
 164 : C                                                                               
 165 :       SEGMENT ICPR(XCOOR(/1)/(IDIM+1))                                          
 166 : C                                                                               
 167 : C                 IKID=ICPR(NUM(I,J))+K                                         
 168 : C  LA COMPOSANTE NOMD(K) DU POINT NUM EST LE IKID-IEME DDL DE DNCN( , ,1        
 169 : C                                                                               
 170 :       SEGMENT ICPR2(NIDNCN)                                                     
 171 : C                                                                               
 172 : C     NJ=ICPR2(IKID) : LE IKID-IEME DDL DE DNCN EST LE NJ-IEME DANS             
 173 : C     L'ENSEMBLE DES XLIAI MIS BOUT-A-BOUT                                      
 174 : C                                                                               
 175 :       WRITE(IOIMP,*) ' DEBUT DE ELFRES '                                        
 176 :       MNREFE=KNREFE                                                             
 177 :       MNORM=NRENO                                                               
 178 :       MPASS=NREPA                                                               
 179 : C                                                                               
 180 : C   0 -  CREATION DE L'OBJET SOLUTION DYNAMIQUE                                 
 181 : C                                                                               
 182 :       N=NPAS+1                                                                  
 183 :       NIPO=10                                                                   
 184 :       SEGINI MSOLUT                                                             
 185 :       ITYSOL='DYNAMIQU'                                                         
 186 :       SEGINI MSOLRE,MSOLEN                                                      
 187 :       MSOLIS(1)=MSOLRE                                                          
 188 :       MSOLIT(1)=0                                                               
 189 :       MSOLIS(5)=MSOLEN                                                          
 190 :       MSOLIT(5)=2                                                               
 191 :       SEGDES MSOLUT                                                             
 192 : C                                                                               
 193 : C                                                                               
 194 : C     -  CREATION DU CHAMPOINT SOLUTION INITIALE                                
 195 : C                                                                               
 196 :       NSOUPO=1 
 197 :       NAT=1                                                                 
 198 :       SEGINI MCHPOI                                                             
 199 :       IFOPOI=IFOMOD 
 200 : C Dans les solutions il n'y que des chpo  diffus
 201 :       JATTRI(1) = 1                                                            
 202 :       NDDL=NREFE(5,1)                                                           
 203 :       NC=2*NDDL                                                                 
 204 :       SEGINI MSOUPO                                                             
 205 :       IPCHP(1)=MSOUPO                                                           
 206 :       IGEOC=NREMEL                                                              
 207 :       DO 5 I=1,NDDL                                                             
 208 :       NOCOMP(I)= NOMDD(I)                                                       
 209 :       NOCOMP(I+NDDL) = NOMDU(I)                                                 
 210 :     5 CONTINUE                                                                  
 211 :       MELEME=NREMEL                                                             
 212 :       N=NUM(/2)                                                                 
 213 :       SEGDES MELEME                                                             
 214 :       SEGINI MPOVAL                                                             
 214 :       CALL ZERO(VPOCHA,N,NC)                                                    
 215 :       IPOVAL=MPOVAL                                                             
 216 :       SEGDES MPOVAL,MSOUPO,MCHPOI                                               
 217 :       ISOLEN(1)=MCHPOI                                                          
 217 : C     CALL ECCHPO(MCHPOI)                                                       
 218 :       SOLRE(1)=0.D0                                                             
 219 : C                                                                               
 220 :       SEGINI VN                                                                 
 221 :       NSTR=NREFE(/2)                                                            
 222 :       LREF=NREFE(/1)                                                            
 223 :       MANBN=KANBN                                                               
 224 :       ANBN=KAB(1)                                                               
 225 :       SEGACT ANBN                                                               
 226 :       LANBN=AB(/2)                                                              
 227 :       MDNCN=KDNCN                                                               
 228 :       DNCN=KDC(1)                                                               
 229 :       SEGACT DNCN                                                               
 230 :       LDNCN=DC(/2)                                                              
 231 :       MOMALI=KOMALI                                                             
 232 :       NBLIPE=NOMALI(/1)                                                         
 233 :       MACHAR=KACHAR                                                             
 234 :       NCHAR=LACHAL(/1)                                                          
 235 : C                                                                               
 236 : C    BOUCLE SUR LES PAS EN TEMPS                                                
 237 : C                                                                               
 238 :       NFF=0                                                                     
 239 :       NFS=0                                                                     
 240 :       NPAS1=NPAS+1                                                              
 241 :       DO 70 NN=2,NPAS1                                                          
 242 :       NFF=NFF+1                                                                 
 243 :       MNN=MIN(NN,M)                                                             
 244 :       IF (IIMPI.EQ.1) THEN                                                      
 245 :          WRITE(IOIMP,*) 'NN=',NN,'MNN=',MNN                                     
 246 :       END IF                                                                    
 247 :       DO 10 I=1,NTVN                                                            
 248 :       VN(I)=0.D0                                                                
 249 :   10  CONTINUE                                                                  
 250 : C                                                                               
 251 : C                                                                               
 252 : C   1 -  CALCUL DE LA CONVOLUTION, REMPLISSAGE DE VN                            
 253 : C                                                                               
 254 : C   LA CONVOLUTION SE FAIT DANS L ORDRE CROISSANT DES INDICES POUR DNCN         
 255 : C   MNN-1 : LONGUEUR SUR LAQUELLE SE FAIT LA CONVOLUTION                        
 256 : C   IDEP : INDICE DE DEPART POUR LE CALCUL DE LA CONVOLUTION                    
 257 : C   IARR : INDICE D ARRIVEE POUR LE CALCUL DE LA CONVOLUTION                    
 258 : C   INDICES DE DEPART ET D'ARRIVEE A L INTERIEUR DES BLOCS:                     
 259 : C   POUR ANBN : DEPART NDANBN, ARRIVEE NAANBN                                   
 260 : C   POUR DNCN : DEPART NDDNCN, ARRIVEE NADNCN                                   
 261 : C   LAB : NUMERO DU BLOC ANBN                                                   
 262 : C   LDC : NUMERO DU BLOC DNCN                                                   
 263 : C                                                                               
 264 :       IDEP=NN-(MNN-1)                                                           
 265 :       IARR=NN-1                                                                 
 266 : C     WRITE (IOIMP,*) 'IDEP=',IDEP,'IARR=',IARR                                 
 267 :       J=MNN                                                                     
 268 :       LAB=((J-1)/LANBN)+1                                                       
 269 : C     LDC=((IDEP-1)/LDNCN)+1                                                    
 270 : C     DECALAGE DES BLOCS DNCN LORSQUE LE PREMIER NE SERT PLUS                   
 271 :       IF(IDEP.NE.1.AND.MOD(IDEP,LDNCN).EQ.1) THEN                               
 272 :         KKK=KDC(1)                                                              
 273 :         NDCL=KDC(/1)-1                                                          
 274 :         DO 1 LDC1=1,NDCL                                                        
 275 :         KDC(LDC1)=KDC(LDC1+1)                                                   
 276 :     1   CONTINUE                                                                
 277 :         KDC(NDCL+1)=KKK                                                         
 278 : C     WRITE (IOIMP,*) 'DECALAGE IDEP ',IDEP                                     
 279 :       ENDIF                                                                     
 280 :       LDC=1                                                                     
 281 : C     WRITE (IOIMP,*) 'LAB=',LAB,'LDC=',LDC                                     
 282 :       ANBN=KAB(LAB)                                                             
 283 :       DNCN=KDC(LDC)                                                             
 284 :       SEGACT ANBN                                                               
 285 :       SEGACT DNCN                                                               
 286 : C                                                                               
 287 : C  BOUCLE SUR LES TERMES DU PRODUIT DE CONVOLUTION                              
 288 : C                                                                               
 289 :       NDDNCN=MOD(IDEP,LDNCN)                                                    
 290 :       IF(NDDNCN.EQ.0) NDDNCN=LDNCN                                              
 291 :       NDANBN=MOD(J,LANBN)                                                       
 292 :       IF(NDANBN.EQ.0) NDANBN=LANBN                                              
 293 :       DO 40 I=IDEP,IARR                                                         
 294 :       NADNCN=MOD(I,LDNCN)                                                       
 295 :       NAANBN=MOD(J,LANBN)                                                       
 296 : C                                                                               
 297 : C  PRODUIT DE CONVOLUTION PARTIEL UTILISANT LES DEUX BLOCS EN MEMOIRE           
 298 : C                                                                               
 299 :       IF(NADNCN.EQ.0.OR.NAANBN.EQ.1.OR.I.EQ.IARR) THEN                          
 300 :         IF(NADNCN.EQ.0) NADNCN=LDNCN                                            
 301 :         IF(NAANBN.EQ.0) NAANBN=LANBN                                            
 302 : C       WRITE (IOIMP,*) 'NDANBN=',NDANBN,'NAANBN=',NAANBN                       
 303 : C       WRITE (IOIMP,*) 'NDDNCN=',NDDNCN,'NADNCN=',NADNCN                       
 304 : C       WRITE (IOIMP,*) I,LAB,ANBN,LDC,DNCN                                     
 304 :       CALL ELFRE1(VN(1),AB,DC,NREFE,NSTR,NTANBN,NIDNCN,NDANBN,NDDNCN,           
 305 :      *NADNCN,LREF)                                                              
 306 : C       WRITE(IOIMP,*)'VN'                                                      
 307 : C       WRITE(IOIMP,*)(VN(IJ),IJ=1,VN(/1))                                      
 308 : C                                                                               
 309 :         NDDNCN=MOD(I+1,LDNCN)                                                   
 310 :         IF(NDDNCN.EQ.0) NDDNCN=LDNCN                                            
 311 :         NDANBN=MOD(J-1,LANBN)                                                   
 312 :         IF(NDANBN.EQ.0) NDANBN=LANBN                                            
 313 : C                                                                               
 314 : C  FIN DE BLOC DNCN                                                             
 315 : C                                                                               
 316 :         IF(NADNCN.EQ.LDNCN) THEN                                                
 317 :           IF(I.NE.IARR) THEN                                                    
 318 :             SEGDES DNCN                                                   
 319 :           ELSE                                                                  
 320 :             SEGDES DNCN                                                         
 321 :           ENDIF                                                                 
 322 :           IF(LDC.LT.KDC(/1)) THEN                                               
 323 :             LDC=LDC+1                                                           
 324 :             DNCN=KDC(LDC)                                                       
 325 : C     WRITE(IOIMP,*) KDC(/1),LDC,DNCN                                           
 326 :             SEGACT DNCN                                                         
 327 :           ENDIF                                                                 
 328 :         ENDIF                                                                   
 329 : C                                                                               
 330 : C  FIN DE BLOC ANBN                                                             
 331 : C                                                                               
 332 :         IF(NAANBN.EQ.1) THEN                                                    
 333 :           SEGDES ANBN                                                     
 334 :           IF(I.NE.IARR) THEN                                                    
 335 :             LAB=LAB-1                                                           
 336 :             ANBN=KAB(LAB)                                                       
 337 :             SEGACT ANBN                                                         
 338 :           ENDIF                                                                 
 339 :         ENDIF                                                                   
 340 :       ENDIF                                                                     
 341 :       J=J-1                                                                     
 342 :    40 CONTINUE                                                                  
 343 : C                                                                               
 344 : C                                                                               
 345 : C   2 -  CALCUL DU CHARGEMENT - BOUCLE SUR LES SOUS-CHARGEMENTS                 
 346 : C                                                                               
 347 :       T=(NN-1)*DELTAT                                                           
 348 :       IDCH=1                                                                    
 349 : C     WRITE(IOIMP,*) ' NCHAR =',NCHAR                                           
 350 :       DO 50 NCH=1,NCHAR                                                         
 351 :       MLREE1=LACHAT(NCH)                                                        
 352 :       MLREE2=LACHAF(NCH)                                                        
 353 :       LON=MLREE1.PROG(/1)                                                       
 353 :       CALL INTE22(MLREE1.PROG(1),MLREE2.PROG(1),T,FT,LON)                       
 353 : C     CALL INTER1(LACHAT(NCH),LACHAF(NCH),T,FT)                                 
 354 :       LCH=LACHAL(NCH)                                                           
 355 : C     WRITE(IOIMP,*) ' LCH ',LCH,' NCH ',NCH                                    
 355 :       CALL MULVEC(BCHAR2(IDCH),BCHAR1(IDCH),FT,LCH)                             
 356 :       IDCH=IDCH+LCH                                                             
 357 :    50 CONTINUE                                                                  
 358 : C     WRITE(IOIMP,*) ' BCHAR2 '                                                 
 359 : C     WRITE(IOIMP,1002) (BCHAR2(IJ),IJ=1,BCHAR2(/1))                            
 360 : C                                                                               
 361 : C   3 -  CALCUL DE DNCN  - BOUCLE SUR LES LIAISONS                              
 362 : C                                                                               
 363 :       DO 60 NBLI=1,NBLIPE                                                       
 364 :       MALIAI=NOMALI(NBLI)                                                       
 365 :       NL=NDCLIA(/1)                                                             
 366 :       NLS2=NL/2                                                                 
 367 : C                                                                               
 368 : C  RANGEMENT DES SECONDS MEMBRES VN DANS LES NL PREMIERES                       
 369 : C  COMPOSANTES DU VECTEUR BLIAI DE LA NBLI- EME LIAISON                         
 370 : C                                                                               
 370 :       CALL ELFBL1(BLIAI,VN(1),NVNLIA,NLS2)                                      
 371 : C     WRITE(IOIMP,*) ' BLIAI 1 '                                                
 372 : C     WRITE(IOIMP,1002) (BLIAI(IJ),IJ=1,NLS2)                                   
 373 : C                                                                               
 374 : C  CALCUL DE LA RESULTANTE DES NCHAL CHARGEMENTS CONTENUS DANS BCHAR2           
 375 : C  QUI AGISSENT SUR LA NBLI-IEME LIAISON,                                       
 376 : C  ET RANGEMENT DANS LA DEUXIEME MOITIE DU VECTEUR SECOND MEMBRE BLIAI          
 377 : C  A L'AIDE DU TABLEAU IBCHA                                                    
 378 : C                                                                               
 379 :       NCHAL=IBCHA(/1)                                                           
 380 :       NLS21=NLS2+1                                                              
 380 :       IF(NCHAL.NE.0) CALL ELFBL2(BLIAI(NLS21),BCHAR2,IBCHA,NCHAL,NLS2)          
 381 :       IF(KLIMAS.NE.0) THEN                                                      
 382 : C                                                                               
 383 : C  CALCUL DE L'ACCELERATION DU CENTRE DE GRAVITE DE L'ELEMENT DE LIAISON        
 384 : C                                                                               
 385 :         MLIMAS=KLIMAS                                                           
 386 :         LIM=NLIMAS(/1)                                                          
 386 :         CALL ELFBL6(BLIAI(NLS21),BLIMAS,ALIMAS,NLIMAS,NLS2,LIM)                 
 387 :       ENDIF                                                                     
 388 : C     WRITE(IOIMP,*) ' BLIAI 2 '                                                
 389 : C     WRITE(IOIMP,1002) (BLIAI(IJ),IJ=NLS21,NL)                                 
 390 : C                                                                               
 391 : C  MULTIPLICATION ALIAI*BLIAI=XLIAI                                             
 392 : C                                                                               
 393 :       NBSTLI=NLBLI(/2)                                                          
 393 :       CALL MULMAV(ALIA1,ALIA2,ALIA3,ALIA4,BLIAI,XLIAI,NLS2,NCHAL,NLBLI,         
 394 :      *NBSTLI)                                                                   
 395 : C     WRITE(IOIMP,*) ' XLIAI '                                                  
 396 : C     WRITE(IOIMP,1002) (XLIAI(IJ),IJ=1,NL)                                     
 397 :       IF(KLIMAS.NE.0) THEN                                                      
 398 : C                                                                               
 399 : C  RANGEMENT DE XLIAI DANS BLIMAS                                               
 400 : C                                                                               
 400 :         CALL ELFBL5(BLIMAS,XLIAI,NLS2)                                          
 401 :       ENDIF                                                                     
 402 : C                                                                               
 403 : C  RANGEMENT DE XLIAI DANS DNCN                                                 
 404 : C                                                                               
 404 :       CALL ELFBL3(DC(1,NDDNCN),XLIAI,NDCLIA,NL)                                 
 405 : C     WRITE(IOIMP,*) ' DNCN  '                                                  
 406 : C     WRITE(IOIMP,1002) (DC(IJ,NDDNCN),IJ=1,NIDNCN)                             
 407 : C                                                                               
 408 :       IF(IIMPI.EQ.1) THEN                                                       
 409 :         WRITE(IOIMP,1001) NBLI                                                  
 410 :  1001   FORMAT(//I5,' IEME SECOND MEMBRE BLIAI'//)                              
 411 :         WRITE (IOIMP,1002) (BLIAI(L),L=1,NL)                                    
 412 :  1002   FORMAT(1X,10(1PE12.5,1X))                                               
 413 :         WRITE(IOIMP,1003)                                                       
 414 :  1003   FORMAT(//' SOLUTION XLIAI'//)                                           
 415 :         WRITE (IOIMP,1002) (XLIAI(L),L=1,NL)                                    
 416 :       ENDIF                                                                     
 417 :    60 CONTINUE                                                                  
 418 : C                                                                               
 419 : C   4 -  CREATION DU CHAMPOINT SOLUTION A L'INSTANT T                           
 420 : C                                                                               
 421 :       IF(NFF.EQ.NFOIS) THEN                                                     
 422 :         NFF=0                                                                   
 423 :         NFS=NFS+1 
 424 :         NAT=1                                                              
 425 :         SEGINI MCHPOI                                                           
 426 :         IFOPOI=IFOMOD 
 427 :         JATTRI(1) = 1                                                          
 428 :         SEGINI MSOUPO                                                           
 429 :         IPCHP(1)=MSOUPO                                                         
 430 :         IGEOC=NREMEL                                                            
 431 :         DO 65 I=1,NDDL                                                          
 432 :         NOCOMP(I)= NOMDD(I)                                                     
 433 :         NOCOMP(I + NDDL)= NOMDU(I)                                              
 434 :    65   CONTINUE                                                                
 435 :         SEGINI MPOVAL                                                           
 436 :         IPOVAL=MPOVAL                                                           
 436 :         CALL ELFBL4(N,DC(1,NDDNCN),DNORM,PASS,VPOCHA)                           
 437 :         SEGDES MPOVAL,MSOUPO,MCHPOI                                             
 438 :         ISOLEN(NFS)=MCHPOI                                                      
 438 : C       CALL ECCHPO(MCHPOI)                                                     
 439 :         SOLRE(NFS)=T                                                            
 440 :       ENDIF                                                                     
 441 : C                                                                               
 442 :    70 CONTINUE                                                                  
 443 : C                                                                               
 444 : C   5 -  SUPPRESSION DES SEGMENTS DE TRAVAIL ET DESACTIVATION                   
 445 : C                                                                               
 446 :       SEGDES MSOLRE,MSOLEN                                                      
 447 : C                                                                               
 448 :       SEGSUP VN                                                                 
 449 : C                                                                               
 450 :       NSGA=KAB(/1)                                                              
 451 :       DO 80 NSG=1,NSGA                                                          
 452 :       ANBN=KAB(NSG)                                                             
 453 :       SEGSUP ANBN                                                               
 454 :    80 CONTINUE                                                                  
 455 :       NSGD=KDC(/1)                                                              
 456 :       DO 90 NSG=1,NSGD                                                          
 457 :       DNCN=KDC(NSG)                                                             
 458 :       SEGSUP DNCN                                                               
 459 :    90 CONTINUE                                                                  
 460 :       SEGSUP MANBN                                                              
 461 :       SEGSUP MDNCN                                                              
 462 : C                                                                               
 463 :       DO 100 NCH=1,NCHAR                                                        
 464 :       MLREE1=LACHAT(NCH)                                                        
 465 :       MLREE2=LACHAF(NCH)                                                        
 466 :       SEGDES MLREE1                                                       
 467 :       SEGDES MLREE2                                                       
 468 :   100 CONTINUE                                                                  
 469 :       SEGSUP MACHAR                                                             
 470 : C                                                                               
 471 :       DO 110 NBLI=1,NBLIPE                                                      
 472 :       MALIAI=NOMALI(NBLI)                                                       
 473 :       IF(KLIMAS.NE.0) THEN                                                      
 474 :         MLIMAS=KLIMAS                                                           
 475 :         SEGSUP MLIMAS                                                           
 476 :       ENDIF                                                                     
 477 :       SEGSUP MALIAI                                                             
 478 :   110 CONTINUE                                                                  
 479 :       ICPR2=KCPR2                                                               
 480 :       SEGSUP ICPR2                                                              
 481 :       SEGSUP MOMALI                                                             
 482 : C                                                                               
 483 :       SEGSUP MNORM                                                              
 484 :       SEGSUP MPASS                                                              
 485 :       ICPR=NRECPR                                                               
 486 :       MCARA=NRECA                                                               
 487 :       SEGSUP ICPR                                                               
 488 :       SEGSUP MCARA                                                              
 489 :       SEGSUP MNREFE                                                             
 490 :       KSOLUT=MSOLUT                                                             
 491 :       WRITE (IOIMP,*) 'FIN DE ELFRES '                                          
 492 :       RETURN                                                                    
 493 :       END                                                                       
 494 :  
 495 :  
 496 :  

© Cast3M 2003 - All rights reserved.
Disclaimer