Download rigimo.eso

Back to the list

   1 : C RIGIMO    SOURCE    AM        08/02/14    21:29:39     6050           
   2 :       SUBROUTINE RIGIMO                                                         
   3 : C=======================================================================        
   4 : C      APPELE PAR RIGI POUR L'ANALYSE MODALE                                    
   5 : C                                                                               
   6 : C      SYNTAXES POSSIBLES :  RIG2 = RIGI M ;                                    
   7 : C                            RIG3 = RIGI P S ;                                  
   8 : C                            RIG4 = RIGI M P S ;                                
   9 : C                            RIG5 = RIGI B ;                                    
  10 : C                            RIG6 = RIGI A ;                                    
  11 : C     M : OBJET SOLUTION DE SOUS TYPE MODE                                      
  12 : C     P : OBJET SOLUTION DE SOUS TYPE SOLU STAT                                 
  13 : C     S : OBJET STRUCTURE                                                       
  14 : C     B : OBJET BASE MODALE                                                     
  15 : C     A : OBJET ATTACHE                                                         
  16 : C  RIG2 : RIGIDITE DUE AUX MODES SEULS ( KN )                                   
  17 : C  RIG3 : RIGIDITE DUE AU COUPLAGE DES SOLUTIONS STATIQUES SUR UNE STRUC        
  18 : C  RIG4 : RIGIDITE DUE AU COUPLAGE DES SOLUTIONS STATIQUES ET DES MODES         
  19 : C  RIG5 : CALCUL AUTOMATIQUE DE RIG2, RIG3 ET RIG4.                             
  20 : C  RIG6 : RIGIDITE DUE AUX LIAISONS MIXTES                                      
  21 : C     PROGRAMMEUR FARVACQUE                                                     
  22 : C     CREATION      /06/84                                                      
  23 : C                                                                               
  24 : C     L. VIVAN, le 22/03/91 : ajout de l'option TABLE                           
  25 : C                                                                               
  26 : C=======================================================================        
  27 :       IMPLICIT INTEGER(I-N)
  28 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
  29 :       logical l0,l1
  30 :       character*4 charre
  31 : -INC CCHAMP                                                                     
  32 : -INC CCOPTIO                                                                    
  33 : -INC SMBASEM                                                                    
  34 : -INC SMSOLUT                                                                    
  35 : -INC SMSTRUC                                                                    
  36 : *                                                                               
  37 : *     La base modale est donn{e sous forme d'une TABLE                          
  38 : *                                                                               
  38 :       CALL LIRTAB('BASE_MODALE',ITBAS,0,IRETOU)       
  39 :       IF (IRETOU.NE.0) THEN
  39 :       CALL ACCTAB(ITBAS,'MOT',IM,X0,'MODES',L0,IP0,
  40 :      &                    'TABLE',I1,X1,CHARRE,L1,ITMOD)
  41 :        itbas = itmod
  42 :       ELSE
  42 :         CALL LIRTAB('BASE_DE_MODES',ITBAS,0,IRETOU)       
  43 :       ENDIF            
  43 :       CALL LIRTAB('LIAISONS_STATIQUES',ITBST,0,IRETO1) 
  44 :       IF (IRETOU.NE.0.or.ireto1.ne.0) THEN 
  44 :          CALL RIGTAB(ITBAS,ITBST,2,KRIGI)        
  45 :          IF(KRIGI.EQ.0) GOTO 666                                     
  46 :          GOTO 800                                                               
  47 :       ENDIF                                                                     
  48 : *                                                                               
  49 : *     La base modale est donn{e sous forme d'un objet SOLUTION, ...             
  50 : *                                                                               
  51 :       IMODE=0                                                                   
  52 :       ISOLS=0                                                                   
  52 :   706 CALL LIROBJ ('SOLUTION',IPOI1,0,IRT1)                                     
  53 :       IF(IRT1.EQ.0) GO TO  701                                                  
  54 :       MSOLUT=IPOI1                                                              
  55 :       SEGACT MSOLUT                                                             
  56 : C                                                                               
  57 : C  **** EST CE UN MODE ?                                                        
  58 : C                                                                               
  59 :       IF(ITYSOL.NE.'MODE    ') GO TO 703                                        
  60 :       IF(IMODE.EQ.0) GO TO 704                                                  
  61 :       MOTERR(1:8)='SOLUTION'                                                    
  62 :       MOTERR(9:12)='MODE'                                                       
  62 :       CALL ERREUR(130)                                                          
  63 :       SEGDES MSOLUT                                                             
  64 :       GO TO 666                                                                 
  65 :   704 CONTINUE                                                                  
  66 :       IMODE=MSOLUT                                                              
  67 :       SEGDES MSOLUT                                                             
  68 :       IF(ISOLS.EQ.0) GO TO 706                                                  
  69 :       GO TO 701                                                                 
  70 : C                                                                               
  71 : C  **** EST CE UN SOLSTA ?                                                      
  72 : C                                                                               
  73 :   703 CONTINUE                                                                  
  74 :       IF(ISOLS.EQ.0) GO TO 710                                                  
  75 :       MOTERR(1:8)='SOLUTION'                                                    
  76 :       MOTERR(9:12)='SOLUSTAT'                                                   
  76 :       CALL ERREUR(130)                                                          
  77 :       SEGDES MSOLUT                                                             
  78 :       GO TO 666                                                                 
  79 :   710 CONTINUE                                                                  
  80 :       ISOLS=MSOLUT                                                              
  81 :       SEGDES MSOLUT                                                             
  82 :       IF(IMODE.EQ.0) GO TO 706                                                  
  83 :   701 CONTINUE                                                                  
  84 :       IF(ISOLS.EQ.0. AND .IMODE.EQ.0) GO TO 723                                 
  85 :       IF(ISOLS.EQ.0) GO TO 720                                                  
  85 :       CALL LIROBJ('STRUCTUR',IPOI2,1,IRT2)                                      
  86 :       IF(IRT2.EQ.0) GO TO 666                                                   
  87 :       MSTRUC=IPOI2                                                              
  88 :       SEGACT MSTRUC                                                             
  89 :       IF(LISTRU(/1).EQ.1) GO TO 721                                             
  90 :       MOTERR(1:8)='STRUCTUR'                                                    
  90 :       CALL ERREUR(132)                                                          
  91 :       SEGDES MSTRUC                                                             
  92 :       GO TO 666                                                                 
  93 :   721 ISTRU=LISTRU(1)                                                           
  94 :       SEGDES MSTRUC                                                             
  95 :       IF(IMODE.EQ.0) GO TO 725                                                  
  95 :       CALL ERREUR(IT)                                                           
  96 : C     COUPLAGE MODES LIAISONS : LES TERMES SONT DANS LA MASSE                   
  97 :       GO TO 666                                                                 
  98 : C                                                                               
  99 :   725 CONTINUE                                                                  
  99 :       CALL RGLILI(ISOLS,ISTRU,2,KRIGI)                                          
 100 :       IF(KRIGI.EQ.0) GO TO 666                                                  
 101 :       GO TO 800                                                                 
 102 : C                                                                               
 103 :   720 CONTINUE                                                                  
 103 :       CALL RIGMOD(IMODE,2,KRIGI)                                                
 104 :       IF(KRIGI.EQ.0) GO TO 666                                                  
 105 :       GO TO 800                                                                 
 106 : C                                                                               
 107 :   723 CONTINUE                                                                  
 107 :       CALL LIROBJ('BASEMODA',IPOI2,0,IRT2)                                      
 108 :       IF(IRT2.EQ.0) GO TO 730                                                   
 108 :       CALL RGBASE(IPOI2,2,KRIGI)                                                
 109 :       IF(KRIGI.EQ.0) GO TO 666                                                  
 110 :       GOTO 800                                                                  
 111 : C                                                                               
 112 :   730 CONTINUE                                                                  
 112 :       CALL LIROBJ('ATTACHE ',IPOI2,1,IRT2)                                      
 113 :       IF(IRT2.EQ.0) GOTO 666                                                    
 113 :       CALL RGMATT(IPOI2,KRIGI)                                                  
 114 :       IF(KRIGI.EQ.0) GOTO 666                                                   
 115 : C                                                                               
 116 : C                                                                               
 117 :   800 CONTINUE                                                                  
 117 :       CALL ECROBJ('RIGIDITE',KRIGI)                                             
 118 :   666 CONTINUE                                                                  
 119 :       RETURN                                                                    
 120 :       END                                                                       
 121 :  
 122 :  
 123 :  
 124 :  
 125 :  
 126 :  
 127 :  

© Cast3M 2003 - All rights reserved.
Disclaimer