Télécharger mhybr1.eso

Retour à la liste

Numérotation des lignes :

mhybr1
  1. C MHYBR1 SOURCE CB215821 24/04/12 21:16:42 11897
  2. SUBROUTINE MHYBR1(IPMODE,IPCHEL,IPMAHY,IPRIGI,IPGEO,ILUMP)
  3. C-----------------------------------------------------------------------
  4. C Calcul de la matrice masse dans le cas d'une formulation hybride
  5. C-----------------------------------------------------------------------
  6. C
  7. C---------------------------
  8. C Parametres Entree/Sortie :
  9. C---------------------------
  10. C
  11. C E/ IPMODE : Objet modele specifiant la formulation
  12. C E/ IPCHEL : MCHAML de sous type 'CARACTERISTIQUES' aux pts de Gauss
  13. C E/ IPMAHY : Segment contenant le pointeur vers le meleme des
  14. C connectivites elements/faces pour les zones du MMODEL
  15. C ou on a defini DARCY.
  16. C E/ IPGEO : pointeur sur le maillage sommet
  17. C /S IPRIGI : Matrice masse hybride
  18. C
  19. C-----------------------------------------------------------------------
  20. C
  21. C Langage : ESOPE + FORTRAN77
  22. C
  23. C Auteurs : F.DABBENE 08/93
  24. C 02/96 L.V.BENET : introduction de l'option 'MASSE'
  25. C
  26. C-----------------------------------------------------------------------
  27. IMPLICIT INTEGER(I-N)
  28.  
  29. -INC PPARAM
  30. -INC CCOPTIO
  31. -INC CCHAMP
  32. -INC SMRIGID
  33. -INC SMCHAML
  34. -INC SMELEME
  35. -INC SMMODEL
  36. *
  37. SEGMENT IPMAHY
  38. INTEGER MAHYBR(NSOUS)
  39. ENDSEGMENT
  40. *
  41. *
  42. * Activation des segments MCHELM et MMODEL
  43. *
  44. MMODEL = IPMODE
  45. SEGACT MMODEL
  46. NBMAIL = KMODEL(/1)
  47. *
  48. *= Initialisation du chapeau de l'objet RIGIDITE
  49. *
  50. NRIGE = 6
  51. NRIGEL = NBMAIL
  52. SEGINI MRIGID
  53. IPRIGI = MRIGID
  54. ICHOLE = 0
  55. IMGEO1 = 0
  56. IMGEO2 = 0
  57. IFORIG = IFOUR
  58. ISUPEQ = 0
  59. IF(IPCHEL.NE.0)THEN
  60. MTYMAT = 'DARCY'
  61. ELSE
  62. MTYMAT = 'MASSE'
  63. ENDIF
  64. NBGEOR = 0
  65. *
  66. DO 10 IA=1,NBMAIL
  67. IRIGEL(4,IA) = 0
  68. COERIG(IA) = 1.D0
  69. 10 CONTINUE
  70. *
  71. *= BOUCLE SUR LES MAILLAGES ELEMENTAIRES,ZONE IMAIL
  72. *
  73. SEGACT IPMAHY
  74. DO 50 IMAIL=1,NBMAIL
  75. C
  76. C= Recuperation de l'objet maillage ELTFA pour la zone IMAIL
  77. C
  78. IMAHYB = MAHYBR(IMAIL)
  79. IF (IMAHYB.EQ.0) GOTO 50
  80. MELEME = IMAHYB
  81. SEGACT MELEME
  82. NBDDL = NUM(/1)
  83. NBELEM = NUM(/2)
  84. C
  85. C= Recuperation du pointeur MMODEL pour la zone IMAIL
  86. C
  87. IMODEL = KMODEL(IMAIL)
  88. C
  89. C= Recuperation du pointeur maillage sommet pour la zone IMAIL
  90. C
  91. IPT1= IPGEO
  92. IPT2= IPGEO
  93. IF(NBMAIL.GT.1)THEN
  94. SEGACT IPT2
  95. IPT1=IPT2.LISOUS(IMAIL)
  96. SEGDES IPT2
  97. ENDIF
  98. *
  99. *= Remplissage du segment descripteur DESCR
  100. *
  101. NLIGRP = NBDDL
  102. NLIGRD = NBDDL
  103. SEGINI DESCR
  104. DO 20 IB=1,NLIGRP
  105. LISINC(IB) = NOMDD(20)
  106. LISDUA(IB) = NOMDU(20)
  107. NOELEP(IB) = IB
  108. NOELED(IB) = IB
  109. 20 CONTINUE
  110. IDESCR = DESCR
  111. SEGDES DESCR
  112. *
  113. *= Remplissage de IRIGEL
  114. *
  115. IF (IMAIL.GT.1)THEN
  116. MRIGID = IPRIGI
  117. SEGACT MRIGID*MOD
  118. ENDIF
  119. NELRIG = NBELEM
  120. SEGINI xMATRI
  121. IRIGEL(1,IMAIL) = IMAHYB
  122. IRIGEL(2,IMAIL) = 0
  123. IRIGEL(3,IMAIL) = IDESCR
  124. IRIGEL(4,IMAIL) = xMATRI
  125. IRIGEL(5,IMAIL) = 0
  126. IRIGEL(6,IMAIL) = 0
  127. *
  128. *- Desactivation avant appel
  129. *
  130. SEGDES xMATRI,MRIGID
  131. SEGDES MELEME
  132. *
  133. IF (IPCHEL.NE.0)THEN
  134. CALL MHYBR2(IMAIL,IMODEL,IPCHEL,IPRIGI,IPT1,ILUMP)
  135. ELSE
  136. CALL MHYBR4(IMAIL,IMODEL,IPRIGI,IPT1)
  137. ENDIF
  138. IF (IERR.NE.0) GOTO 99
  139. 50 CONTINUE
  140. *
  141. *- Desactivation
  142. *
  143. 99 CONTINUE
  144. SEGDES MMODEL
  145. SEGDES IPMAHY
  146. *
  147. RETURN
  148. END
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  

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