Télécharger rigimo.eso

Retour à la liste

Numérotation des lignes :

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

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