Télécharger rigimo.eso

Retour à la liste

Numérotation des lignes :

  1. C RIGIMO SOURCE CB215821 16/04/15 21:15:40 8907
  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. *
  39. CALL LIRTAB('BASE_MODALE',ITBAS,0,IRETOU)
  40. IF (IRETOU.NE.0) THEN
  41. CALL ACCTAB(ITBAS,'MOT',IM,X0,'MODES',L0,IP0,
  42. & 'TABLE',I1,X1,CHARRE,L1,ITMOD)
  43. itbas = itmod
  44. ELSE
  45. CALL LIRTAB('BASE_DE_MODES',ITBAS,0,IRETOU)
  46. ENDIF
  47. CALL LIRTAB('LIAISONS_STATIQUES',ITBST,0,IRETO1)
  48. IF (IRETOU.NE.0.or.ireto1.ne.0) THEN
  49. CALL RIGTAB(ITBAS,ITBST,2,KRIGI)
  50. IF(KRIGI.EQ.0) GOTO 666
  51. GOTO 800
  52. ENDIF
  53. *
  54. * La base modale est donn{e sous forme d'un objet SOLUTION, ...
  55. *
  56. IMODE=0
  57. ISOLS=0
  58. 706 CALL LIROBJ ('SOLUTION',IPOI1,0,IRT1)
  59. IF(IRT1.EQ.0) GO TO 701
  60. MSOLUT=IPOI1
  61. SEGACT MSOLUT
  62. C
  63. C **** EST CE UN MODE ?
  64. C
  65. IF(ITYSOL.NE.'MODE ') GO TO 703
  66. IF(IMODE.EQ.0) GO TO 704
  67. MOTERR(1:8)='SOLUTION'
  68. MOTERR(9:12)='MODE'
  69. CALL ERREUR(130)
  70. SEGDES MSOLUT
  71. GO TO 666
  72. 704 CONTINUE
  73. IMODE=MSOLUT
  74. SEGDES MSOLUT
  75. IF(ISOLS.EQ.0) GO TO 706
  76. GO TO 701
  77. C
  78. C **** EST CE UN SOLSTA ?
  79. C
  80. 703 CONTINUE
  81. IF(ISOLS.EQ.0) GO TO 710
  82. MOTERR(1:8)='SOLUTION'
  83. MOTERR(9:12)='SOLUSTAT'
  84. CALL ERREUR(130)
  85. SEGDES MSOLUT
  86. GO TO 666
  87. 710 CONTINUE
  88. ISOLS=MSOLUT
  89. SEGDES MSOLUT
  90. IF(IMODE.EQ.0) GO TO 706
  91. 701 CONTINUE
  92. IF(ISOLS.EQ.0. AND .IMODE.EQ.0) GO TO 723
  93. IF(ISOLS.EQ.0) GO TO 720
  94. CALL LIROBJ('STRUCTUR',IPOI2,1,IRT2)
  95. IF(IRT2.EQ.0) GO TO 666
  96. MSTRUC=IPOI2
  97. SEGACT MSTRUC
  98. IF(LISTRU(/1).EQ.1) GO TO 721
  99. MOTERR(1:8)='STRUCTUR'
  100. CALL ERREUR(132)
  101. SEGDES MSTRUC
  102. GO TO 666
  103. 721 ISTRU=LISTRU(1)
  104. SEGDES MSTRUC
  105. IF(IMODE.EQ.0) GO TO 725
  106. CALL ERREUR(21)
  107. C COUPLAGE MODES LIAISONS : LES TERMES SONT DANS LA MASSE
  108. GO TO 666
  109. C
  110. 725 CONTINUE
  111. CALL RGLILI(ISOLS,ISTRU,2,KRIGI)
  112. IF(KRIGI.EQ.0) GO TO 666
  113. GO TO 800
  114. C
  115. 720 CONTINUE
  116. CALL RIGMOD(IMODE,2,KRIGI)
  117. IF(KRIGI.EQ.0) GO TO 666
  118. GO TO 800
  119. C
  120. 723 CONTINUE
  121. CALL LIROBJ('BASEMODA',IPOI2,0,IRT2)
  122. IF(IRT2.EQ.0) GO TO 730
  123. CALL RGBASE(IPOI2,2,KRIGI)
  124. IF(KRIGI.EQ.0) GO TO 666
  125. GOTO 800
  126. C
  127. 730 CONTINUE
  128. CALL LIROBJ('ATTACHE ',IPOI2,1,IRT2)
  129. IF(IRT2.EQ.0) GOTO 666
  130. CALL RGMATT(IPOI2,KRIGI)
  131. IF(KRIGI.EQ.0) GOTO 666
  132. C
  133. C
  134. 800 CONTINUE
  135. CALL ECROBJ('RIGIDITE',KRIGI)
  136. 666 CONTINUE
  137. RETURN
  138. END
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales