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