Télécharger amor.eso

Retour à la liste

Numérotation des lignes :

amor
  1. C AMOR SOURCE CB215821 19/07/31 21:15:25 10277
  2. SUBROUTINE AMOR
  3. C
  4. C***********************************************************************
  5. C *
  6. C Premiere option : *
  7. C *
  8. C FABRICATION DE LA MATRICE D'AMORTISSEMENT MODAL *
  9. C SYNTAXE : AMO1= AMOR BASE PROG ; *
  10. C AMO1 MATRICE D'AMORTISSEMENT *
  11. C BASE OBJET DE TYPE BASE MODALE *
  12. C PROG OBJET DE TYPE MLREEL LISTE DES *
  13. C COEFFICIENTS D'AMORTISSEMENT REDUITS (%) *
  14. C CREATION : 26/11/86 *
  15. C PROGRAMMEUR : GUILBAUD *
  16. C *
  17. C______________________________________________________________________*
  18. C *
  19. C Deuxieme option : calcule la matrice d'amortissement visqueux *
  20. C associee a la frontiere d'un maillage *
  21. C *
  22. C Syntaxe : *
  23. C -------- *
  24. C *
  25. C RIG1 = AMOR MODL1 MAT1 GEO1 ; *
  26. C *
  27. C RIG1 : matrice d'amortissement construite (TYPE rigidite) *
  28. C MODL1: objet MMODEL, modele du sol ou du fluide a modeliser *
  29. C MAT1 : objet MCHAML, caracteristiques materiau *
  30. C GEO1 : objet MELEME, maillage de la frontiere *
  31. C *
  32. C date de creation : 26/02/98 *
  33. C "programmeur" : Olivier ROCHET *
  34. C *
  35. C______________________________________________________________________*
  36. C *
  37. C Troisieme option : calcule la matrice d'amortissement *
  38. C d'un materiau viscoelastique *
  39. C *
  40. C Syntaxe : *
  41. C -------- *
  42. C *
  43. C RIG1 (RIG2) = AMOR MODL1 MAT1 ('COROTATIF') ; *
  44. C *
  45. C RIG1 : matrice d'amortissement construite (TYPE rigidite) *
  46. C MODL1: objet MMODEL, modele du sol ou du fluide a modeliser *
  47. C MAT1 : objet MCHAML, caracteristiques materiau *
  48. C L'option COROTATIF permet de calculer la matrice de rigidite *
  49. C antisymetrique d'un arbre tournant (elements de poutre uniquement) *
  50. C *
  51. C date de creation : 07/07/03 *
  52. C "programmeur" : Didier COMBESCURE *
  53. C *
  54. C***********************************************************************
  55. C
  56. IMPLICIT INTEGER(I-N)
  57. IMPLICIT REAL*8 (A-H,O-Z)
  58.  
  59.  
  60. -INC PPARAM
  61. -INC CCOPTIO
  62. *
  63. PARAMETER (NPARAM = 1)
  64.  
  65. LOGICAL BASMUL
  66. CHARACTER*8 CTYP
  67. CHARACTER*4 LPARAM(NPARAM)
  68. *
  69. DATA LPARAM / 'CORO' /
  70. *
  71. iretou = 0
  72. *
  73. CALL LIROBJ('LISTREEL',IPRO,0,iretou)
  74. IF (IERR.NE.0) RETURN
  75. *
  76. * -----
  77. * Cas 1 - Amortissement modal
  78. * -----
  79. IF (iretou.EQ.1) THEN
  80. *
  81. ICAS = 1
  82. IPRIG = 0
  83. *
  84. IBASE = 0
  85. ITBAS = 0
  86. BASMUL = .FALSE.
  87. *
  88. CALL QUETYP(CTYP,1,iretou)
  89. IF (IERR.NE.0) RETURN
  90. IF (CTYP(1:8).EQ.'TABLE ') THEN
  91. CALL LIRTAB('BASE_MODALE',ITBAS,0,iretou)
  92. IF (IERR.NE.0) RETURN
  93. IF (iretou.EQ.0) THEN
  94. CALL LIRTAB('ENSEMBLE_DE_BASES',ITBAS,1,iretou)
  95. IF (IERR.NE.0) RETURN
  96. BASMUL = .TRUE.
  97. ENDIF
  98. ELSE
  99. CALL LIROBJ('BASEMODA',IBASE,1,iretou)
  100. IF (IERR.NE.0) RETURN
  101. ENDIF
  102. *
  103. CALL AMORMO(IPRO,IBASE,ITBAS,BASMUL, IPRIG)
  104. IF (IERR.NE.0 .OR. IPRIG.LE.0) RETURN
  105. *
  106. CALL ECROBJ('RIGIDITE',IPRIG)
  107. *
  108. * ----------
  109. * Cas 2 et 3 - Frontieres absorbantes et amortissement visqueux
  110. * ----------
  111. ELSE
  112. *
  113. IPMODL = 0
  114. IPCHE1 = 0
  115. IPMAIL = 0
  116. IPRIG = 0
  117. IPRIG2 = 0
  118. C
  119. C lecture du modele
  120. C
  121. CALL LIROBJ('MMODEL ',IPMODL,1,iretou)
  122. CALL ACTOBJ('MMODEL ',IPMODL,1)
  123. IF (IERR.NE.0) RETURN
  124. C
  125. C lecture du mchaml de caracteristiques materiau
  126. C
  127. CALL LIROBJ('MCHAML ',IPIN,1,iretou)
  128. CALL ACTOBJ('MCHAML ',IPIN,1)
  129. IF (IERR.NE.0) RETURN
  130. CALL REDUAF(IPIN,IPMODL,IPCHE1,0,IR,KER)
  131. IF(IR .NE. 1) CALL ERREUR(KER)
  132. IF(IERR .NE. 0) RETURN
  133. C
  134. C lecture du maillage de la frontiere
  135. C
  136. CALL LIROBJ('MAILLAGE',IPMAIL,0,iretou)
  137. IF (IERR.NE.0) RETURN
  138. *
  139. IF (iretou.NE.0) THEN
  140. ICAS = 2
  141. ELSE
  142. ICAS = 3
  143. CALL LIRMOT(LPARAM,NPARAM,iretou,0)
  144. IF (IERR.NE.0) RETURN
  145. IF (iretou.EQ.1) ICAS = 4
  146. ENDIF
  147. C
  148. IF (ICAS.EQ.2) THEN
  149. C
  150. CALL FRVISQ(IPMODL,IPMAIL,IPCHE1, IPRIG)
  151. IF (IERR.NE.0 .OR. IPRIG.LE.0) RETURN
  152. C
  153. ELSE IF (ICAS.EQ.3) THEN
  154. C
  155. CALL AMOR1(IPMODL,IPCHE1,1, IPRIG)
  156. IF (IERR.NE.0 .OR. IPRIG.LE.0) RETURN
  157. C
  158. ELSE IF (ICAS.EQ.4) THEN
  159. C
  160. CALL AMOR1(IPMODL,IPCHE1,2, IPRIG)
  161. IF (IERR.NE.0 .OR. IPRIG.LE.0) RETURN
  162. C
  163. CALL AMOR1(IPMODL,IPCHE1,1, IPRIG2)
  164. IF (IERR.NE.0 .OR. IPRIG2.LE.0) RETURN
  165. ENDIF
  166. C
  167. CALL ECROBJ('RIGIDITE',IPRIG)
  168. IF (ICAS.EQ.4) CALL ECROBJ('RIGIDITE',IPRIG2)
  169. C
  170. ENDIF
  171. END
  172.  
  173.  
  174.  

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