Télécharger coq4ri.eso

Retour à la liste

Numérotation des lignes :

coq4ri
  1. C COQ4RI SOURCE CHAT 05/01/12 22:21:41 5004
  2. SUBROUTINE COQ4RI (IGAU,BGENE,DJAC,EXCENT,NOPLAN,DHOOK,REL)
  3. ************************************************************************
  4. *
  5. * C O Q 4 R I
  6. * -----------
  7. *
  8. * FONCTION:
  9. * ---------
  10. *
  11. * Calcul du produit Bt.D.B en 1 point de Gauss, pour le COQ4.
  12. *
  13. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
  14. * -----------
  15. *
  16. * IGAU (E) Num{ro du point de Gauss.
  17. * BGENE (E) Matrice "B".
  18. * DJAC (E) Jacobien.
  19. * EXCENT (E) Excentrement.
  20. * NOPLAN (E) = 1 si {l{ment non plan,
  21. * = 0 sinon.
  22. * DHOOK (E) Matrice de Hooke int{gr{e dans l'{paisseur.
  23. * S{paration par blocs:
  24. * membrane, puis flexion, puis cisaillement transverse.
  25. * (S) Contenu modifie.
  26. * REL (E) Matrice de Raideur.
  27. * (S) Complet{e par la contribution du point de Gauss
  28. * courant.
  29. *
  30. IMPLICIT INTEGER(I-N)
  31. PARAMETER (NSTRS=8, LRE=24)
  32. REAL*8 DJAC,EXCENT
  33. REAL*8 DHOOK(NSTRS,NSTRS),REL(LRE,LRE),BGENE(NSTRS,LRE)
  34. *
  35. * VARIABLES:
  36. * ----------
  37. *
  38. REAL*8 DB(NSTRS,LRE)
  39. *
  40. * MODE DE FONCTIONNEMENT:
  41. * -----------------------
  42. *
  43. * Utilisation de la valeur de "Bm" au point central pour toute ou
  44. * partie de la raideur de membrane:
  45. * - tout si {l{ment non plan,
  46. * - cisaillement sinon.
  47. *
  48. * Utilisation de la valeur de "Bf" au point central pour la raideur
  49. * de couplage membrane/flexion due @ l'excentrement dans les memes
  50. * conditions que pour la membrane.
  51. *
  52. * AUTEUR, DATE DE CREATION:
  53. * -------------------------
  54. *
  55. * Pascal MANIGOT 27 Mars 1991
  56. *
  57. ************************************************************************
  58. *
  59. DO 100 J=1,NSTRS
  60. DO 100 I=1,NSTRS
  61. DHOOK(I,J) = DJAC * DHOOK(I,J)
  62. 100 CONTINUE
  63. * END DO
  64. * END DO
  65. *
  66. CALL ZERO (DB,NSTRS,LRE)
  67. IF (ABS(EXCENT) .GT. 1.D-30) THEN
  68. INCMAX = 5
  69. ELSE
  70. INCMAX = 2
  71. END IF
  72. *
  73. DO 110 NOEUD=1,4
  74. N6 = 6 * (NOEUD - 1)
  75. *
  76. * eD.Bm | eD.h.Bf
  77. DO 120 J=1,INCMAX
  78. DO 120 I=1,3
  79. DO 120 K=1,3
  80. DB(I,J+N6) = DB(I,J+N6) + DHOOK(I,K)*BGENE(K,J+N6)
  81. 120 CONTINUE
  82. * END DO
  83. * END DO
  84. * END DO
  85. *
  86. IF (IGAU .LE. 4) THEN
  87. DO 160 J=3,5
  88. * e3/12.D.Bf
  89. DO 140 I=4,6
  90. DO 140 K=4,6
  91. DB(I,J+N6) = DB(I,J+N6) + DHOOK(I,K)*BGENE(K,J+N6)
  92. 140 CONTINUE
  93. * END DO
  94. * END DO
  95. * 5/6.eG.Bc
  96. DB(7,J+N6) = DB(7,J+N6) + DHOOK(7,7)*BGENE(7,J+N6)
  97. DB(8,J+N6) = DB(8,J+N6) + DHOOK(8,8)*BGENE(8,J+N6)
  98. 160 CONTINUE
  99. * END DO
  100. END IF
  101. *
  102. 110 CONTINUE
  103. * END DO
  104. *
  105. IF (IGAU .LE. 4) THEN
  106. * Int{gration exacte.
  107. *
  108. * Rigidit{ de Flexion et Cisaillement transverse.
  109. DO 200 M=3,5
  110. DO 200 L=3,5
  111. DO 200 NOEUD = 1,4
  112. L6 = 6 * (NOEUD - 1)
  113. DO 200 NOEUD2 = 1,4
  114. M6 = 6 * (NOEUD2 - 1)
  115. DO 200 I=4,8
  116. REL(L+L6,M+M6)
  117. & = REL(L+L6,M+M6) + BGENE(I,L+L6)*DB(I,M+M6)
  118. 200 CONTINUE
  119. * END DO
  120. * END DO
  121. * END DO
  122. * END DO
  123. * END DO
  124. *
  125. IF (NOPLAN .EQ. 0) THEN
  126. * Int{gration exacte raideur de membrane et de couplage
  127. * membrane/flexion, sauf cisaillement:
  128. DO 220 M=1,INCMAX
  129. DO 220 L=1,INCMAX
  130. DO 220 NOEUD = 1,4
  131. L6 = 6 * (NOEUD - 1)
  132. DO 220 NOEUD2 = 1,4
  133. M6 = 6 * (NOEUD2 - 1)
  134. REL(L+L6,M+M6) = REL(L+L6,M+M6)
  135. & + BGENE(1,L+L6)*DB(1,M+M6)
  136. & + BGENE(2,L+L6)*DB(2,M+M6)
  137. 220 CONTINUE
  138. * END DO
  139. * END DO
  140. * END DO
  141. * END DO
  142. END IF
  143. *
  144. ELSE IF (IGAU .EQ. 5) THEN
  145. *
  146. * Int{gration r{duite raideur de membrane et de couplage
  147. * membrane/flexion:
  148. IF (NOPLAN .EQ. 1) THEN
  149. I1 = 1
  150. ELSE
  151. I1 = 3
  152. END IF
  153. DO 240 M=1,INCMAX
  154. DO 240 L=1,INCMAX
  155. DO 240 NOEUD = 1,4
  156. L6 = 6 * (NOEUD - 1)
  157. DO 240 NOEUD2 = 1,4
  158. M6 = 6 * (NOEUD2 - 1)
  159. DO 240 I=I1,3
  160. REL(L+L6,M+M6)
  161. & = REL(L+L6,M+M6) + BGENE(I,L+L6)*DB(I,M+M6)
  162. 240 CONTINUE
  163. * END DO
  164. * END DO
  165. * END DO
  166. * END DO
  167. * END DO
  168. *
  169. END IF
  170. *
  171. END
  172.  
  173.  

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