Télécharger bbcalc.eso

Retour à la liste

Numérotation des lignes :

bbcalc
  1. C BBCALC SOURCE OF166741 23/04/25 21:15:05 11608
  2.  
  3. SUBROUTINE BBCALC(MELE,NBNN,MFR,IDIM,XE,
  4. 1 NBPGAU,POIGAU,QSIGAU,ETAGAU,DZEGAU,
  5. 2 NSTRS,LRE,IFOUR,NHRM,A,BB,
  6. 3 SHPTOT,SHP,BGENE,XDPGE,YDPGE,P)
  7.  
  8. *******************************************************************
  9. * projection de dN/dx dans l espace de dimension inferieure
  10. c=======================================================================
  11. c calcul des composantes de la matrice b-barre-dlatation
  12. c - en 2d: elements ict3,icq4,ict6
  13. c - en 3d: elements ....
  14. c calcul des coefficients de modification de la matrice b-barre-dilatation
  15. c - en 2d: elements icq8
  16. c - en 3d: elements ....
  17. c coefficients {a}={a1,a2,a3}
  18. c=======================================================================
  19. c input
  20. c mele = numero de l'element dans nomtp
  21. c nbnn = nombre de noeuds
  22. c mfr = formulation de l'element
  23. c idim = dimension espace
  24. c xe = coordonnees de l'element
  25. c nbpgau = nombre de points de gauss pour la rigidite
  26. c poigau = poids des points de gauss
  27. c qsigau,etagau,dzegau = coordonnees des points de gauss
  28. c nstrs = nombre de composantes de contraintes
  29. c lre = nombre de colonnes de la matrice b
  30. c ifour = ifour dans ccoptio
  31. c nhrm = numero du mode de fourier
  32. c xdpge,ydpge = coordonnees du point autour duquel se fait
  33. c le mouvement de la section
  34. c
  35. c output
  36. c tableau des coefficients de modification: a(4,*)
  37. c tableau des composantes bbarre-dilatation: bb(3,*)
  38. c=======================================================================
  39. IMPLICIT INTEGER(I-N)
  40. IMPLICIT REAL*8 (A-H,O-Z)
  41.  
  42. -INC CCREEL
  43. PARAMETER (XZer=0.D0, XUn=1.D0, X1s2=0.5D0, X1s4 = 0.25D0,
  44. & X2s3 = 0.666666666666666666666666666666666666666667D0,
  45. & X1s3 = 0.333333333333333333333333333333333333333333D0,
  46. & X1s6 = 0.166666666666666666666666666666666666666667D0)
  47.  
  48. DIMENSION XE(3,*), POIGAU(*),QSIGAU(*),ETAGAU(*),DZEGAU(*),
  49. & SHP(6,*),SHPTOT(6,NBNN,*),
  50. & A(4,*),BB(3,*),BGENE(NSTRS,*),P(4,*)
  51.  
  52. DIMENSION XNUM1(8),XNUM2(8),XNUM3(8)
  53.  
  54. * write(*,*) 'Entree dans le sousprogramme BBCALC'
  55. * write(*,*) 'Element :',MELE
  56. * write(*,*) 'Nombre de points Gauss : ', nbpgau
  57.  
  58. IF (MFR.NE.31) GOTO 666
  59. C=======================================================================
  60. C= Elements incompressibles implementes :
  61. C=======================================================================
  62. C= NOM : ICT3, ICQ4, ICT6, ICQ8, ICC8, ICT4, ICP6, IC20, IC10, IC15,
  63. C= MELE : 69 , 70 , 71 , 72 , 73 , 74 , 75 , 76 , 77 , 78 ,
  64. C= NOM : ICY5, IC13
  65. C= MELE : 273, 274
  66. C=======================================================================
  67.  
  68. C= 0 = Quelques initialisations ========================================
  69. IFR = IFOUR+4
  70. IF (IFR.LE.4 .OR. IFR.GE.7) THEN
  71. KINC = 2
  72. ELSE
  73. KINC = 3
  74. ENDIF
  75.  
  76. CALL ZERO(BB,3,60)
  77. IF (MELE.EQ.72 .OR. MELE.GE.76) THEN
  78. CALL ZERO(A,4,60)
  79. CALL ZERO(P,4,4)
  80. ENDIF
  81.  
  82. C= 1 = Branchement selon l'Element Fini BBAR ============================
  83. IF (MELE.EQ.273 .OR. MELE.EQ.274) GOTO 100
  84. GOTO ( 10, 20, 30, 40,100,100,100,100,100,100), (MELE-68)
  85. GOTO 999
  86.  
  87. 3 FORMAT (4(A,I1,A,I1,A,F10.4,2X))
  88. 4 FORMAT (3(A,I1,A,I1,A,F10.4,2X))
  89.  
  90. C=======================================================================
  91. C========== Elements MASSIFS INCOMPRESSIBLES BIDIMENSIONNELS ===========
  92. C=======================================================================
  93.  
  94. *-----------------------------------------------------------------------
  95. *----------------------------- Element ICT3 ----------------------------
  96. *-----------------------------------------------------------------------
  97. 10 CONTINUE
  98. * write(6,*) 'Element ICT3',ifour
  99. * write(6,*) 'Ecriture de la matrice xe[ ]'
  100. * write(6,3) (('xe(',i,',',j,')=',xe(i,j),i=1,2),j=1,3)
  101. GOTO (999,101,101,103),IFR
  102. GOTO 999
  103.  
  104. *--------contraintes planes ou deformations planes (ifour=-2,-1)
  105. 101 CONTINUE
  106. *--------donnee des composantes de bb-dil
  107. r_z = - XE(1,1)*XE(2,3) - XE(1,2)*XE(2,1) + XE(1,2)*XE(2,3)
  108. & + XE(1,1)*XE(2,2) + XE(1,3)*XE(2,1) - XE(1,3)*XE(2,2)
  109. * AIRE = X1s2 * r_z
  110. r_z = XUn / r_z
  111. BB(1,1) = (XE(2,2)-XE(2,3)) * r_z
  112. BB(2,2) = (XE(1,3)-XE(1,2)) * r_z
  113. BB(1,3) = (XE(2,3)-XE(2,1)) * r_z
  114. BB(2,4) = (XE(1,1)-XE(1,3)) * r_z
  115. BB(1,5) = (XE(2,1)-XE(2,2)) * r_z
  116. BB(2,6) = (XE(1,2)-XE(1,1)) * r_z
  117. * write(6,*) 'calcul de aire pour bbdil'
  118. * write(6,*) 'aire = ',AIRE
  119. * write(6,*) 'ecriture de la matrice bb'
  120. * write(6,3) (('bb(',i,',',j,')=',bb(i,j),i=1,3),j=1,2*nbnn)
  121. GOTO 666
  122. *--------axisymetrique (ifour=0)
  123. 103 CONTINUE
  124. *--------donnee des composantes de bb-dil
  125. r_z = - XE(1,1)*XE(2,3) - XE(1,2)*XE(2,1) + XE(1,2)*XE(2,3)
  126. & + XE(1,1)*XE(2,2) + XE(1,3)*XE(2,1) - XE(1,3)*XE(2,2)
  127. * AIRE = X1s6 * r_z * (XE(1,1)+XE(1,2)+XE(1,3))
  128. r_z = XUn / r_z
  129. BB(1,1) = r_z * (XE(2,2)-XE(2,3))
  130. BB(2,2) = r_z * (XE(1,3)-XE(1,2))
  131. BB(1,3) = r_z * (XE(2,3)-XE(2,1))
  132. BB(2,4) = r_z * (XE(1,1)-XE(1,3))
  133. BB(1,5) = r_z * (XE(2,1)-XE(2,2))
  134. BB(2,6) = r_z * (XE(1,2)-XE(1,1))
  135. *-- Integration analytique des termes BB(3,1),BB(3,3),BB(3,5)
  136. BB(3,1) = XUn / (XE(1,1)+XE(1,2)+XE(1,3))
  137. BB(3,3) = BB(3,1)
  138. BB(3,5) = BB(3,1)
  139. * write(6,*) 'calcul de aire pour bbdil'
  140. * write(6,*) 'aire = ',AIRE
  141. * write(6,*) 'ecriture de la matrice bb'
  142. * write(6,4) (('bb(',i,',',j,')=',bb(i,j),i=1,3),j=1,2*nbnn)
  143. GOTO 666
  144.  
  145. *-----------------------------------------------------------------------
  146. *----------------------------- Element ICQ4 ----------------------------
  147. *-----------------------------------------------------------------------
  148. 20 CONTINUE
  149. * write(6,*) 'Element ICQ4',ifour
  150. * write(6,*) 'Ecriture de la matrice xe[ ]'
  151. * write(6,3) (('xe(',i,',',j,')=',xe(i,j),i=1,2),j=1,4)
  152. GOTO (999,201,201,203),IFR
  153. GOTO 999
  154. *--------contraintes planes ou deformations planes (ifour=-2,-1)
  155. 201 CONTINUE
  156. *--------donnee des composantes de bb-dil
  157. r_z = - XE(1,4)*XE(2,3) - XE(1,2)*XE(2,1) + XE(1,1)*XE(2,2)
  158. & - XE(1,1)*XE(2,4) - XE(1,3)*XE(2,2) + XE(1,2)*XE(2,3)
  159. & + XE(1,3)*XE(2,4) + XE(1,4)*XE(2,1)
  160. * AIRE = X1s2 * r_z
  161. r_z = XUn / r_z
  162. BB(1,1) = r_z * (XE(2,2)-XE(2,4))
  163. BB(2,2) = r_z * (XE(1,4)-XE(1,2))
  164. BB(1,3) = r_z * (XE(2,3)-XE(2,1))
  165. BB(2,4) = r_z * (XE(1,1)-XE(1,3))
  166. BB(1,5) = r_z * (XE(2,4)-XE(2,2))
  167. BB(2,6) = r_z * (XE(1,2)-XE(1,4))
  168. BB(1,7) = r_z * (XE(2,1)-XE(2,3))
  169. BB(2,8) = r_z * (XE(1,3)-XE(1,1))
  170. * write (*,*) 'calcul de aire pour bbdil'
  171. * write (*,*) 'aire = ',aire
  172. * write (*,*) 'ecriture de la matrice bb'
  173. * write (*,4) (('bb(',i,',',j,')=',bb(i,j),i=1,3),j=1,2*nbnn)
  174. GOTO 666
  175. *
  176. *--------axisymetriques(ifour=0)
  177. 203 CONTINUE
  178. r_z = XE(1,1)*( XE(1,1)*XE(2,2)-XE(1,1)*XE(2,4)-XE(1,4)*XE(2,4)
  179. & +XE(1,4)*XE(2,1)-XE(1,2)*XE(2,1)+XE(1,2)*XE(2,2))
  180. & + XE(1,2)*(-XE(1,2)*XE(2,1)+XE(1,2)*XE(2,3)+XE(1,3)*XE(2,3)
  181. & -XE(1,3)*XE(2,2))
  182. & + XE(1,3)*( XE(1,3)*XE(2,4)+XE(1,4)*XE(2,4)-XE(1,4)*XE(2,3)
  183. & -XE(1,3)*XE(2,2))
  184. & + XE(1,4)*XE(1,4)*(XE(2,1)-XE(2,3))
  185. * AIRE = x1s6 * r_z
  186. r_z = xUn / r_z
  187. BB(1,1) = ( XE(2,2)*(XE(1,2)+XE(1,1))-XE(2,4)*(XE(1,1)+XE(1,4))
  188. & +X1s2*( XE(1,3)*(XE(2,2)-XE(2,4))
  189. & +XE(1,4)*(XE(2,2)+XE(2,3))
  190. & -XE(1,2)*(XE(2,3)+XE(2,4))) ) * r_z
  191. BB(2,2) = ( XE(1,4)*(XE(1,1)+XE(1,4))
  192. & -XE(1,2)*(XE(1,1)+XE(1,2)) ) * r_z
  193. BB(1,3) = ( XE(2,3)*(XE(1,2)+XE(1,3))-XE(2,1)*(XE(1,2)+XE(1,1))
  194. & +X1s2*( XE(1,4)*(XE(2,3)-XE(2,1))
  195. & +XE(1,1)*(XE(2,3)+XE(2,4))
  196. & -XE(1,3)*(XE(2,4)+XE(2,1))) ) * r_z
  197. BB(2,4) = ( XE(1,1)*(XE(1,2)+XE(1,1))
  198. & -XE(1,3)*(XE(1,3)+XE(1,2)) ) * r_z
  199. BB(1,5) = ( XE(2,4)*(XE(1,3)+XE(1,4))-XE(2,2)*(XE(1,3)+XE(1,2))
  200. & +X1s2*( XE(1,1)*(XE(2,4)-XE(2,2))
  201. & +XE(1,2)*(XE(2,4)+XE(2,1))
  202. & -XE(1,4)*(XE(2,1)+XE(2,2))) ) * r_z
  203. BB(2,6) = ( XE(1,2)*(XE(1,2)+XE(1,3))
  204. & -XE(1,4)*(XE(1,4)+XE(1,3)) ) * r_z
  205. BB(1,7) = ( XE(2,1)*(XE(1,4)+XE(1,1))-XE(2,3)*(XE(1,4)+XE(1,3))
  206. & +X1s2*( XE(1,2)*(XE(2,1)-XE(2,3))
  207. & +XE(1,3)*(XE(2,1)+XE(2,2))
  208. & -XE(1,1)*(XE(2,2)+XE(2,3))) ) * r_z
  209. BB(2,8) = ( XE(1,3)*(XE(1,3)+XE(1,4))
  210. & -XE(1,1)*(XE(1,1)+XE(1,4)) ) * r_z
  211. *- Integration analytique des termes BB(3,1),BB(3,3),BB(3,5),BB(3,7)
  212. BB(3,1) = ( XE(1,1)*(XE(2,2)-XE(2,4))+XE(2,1)*(XE(1,4)-XE(1,2))
  213. & +X1s2*( XE(1,2)*(XE(2,3)+XE(2,4))
  214. & +XE(1,3)*(XE(2,4)-XE(2,2))
  215. & -XE(1,4)*(XE(2,3)+XE(2,2))) ) * r_z
  216. BB(3,3) = ( XE(1,2)*(XE(2,3)-XE(2,1))+XE(2,2)*(XE(1,1)-XE(1,3))
  217. & +X1s2*( XE(1,3)*(XE(2,1)+XE(2,4))
  218. & +XE(1,4)*(XE(2,1)-XE(2,3))
  219. & -XE(1,1)*(XE(2,3)+XE(2,4))) ) * r_z
  220. BB(3,5) = ( XE(1,3)*(XE(2,4)-XE(2,2))+XE(2,3)*(XE(1,2)-XE(1,4))
  221. & +X1s2*( XE(1,4)*(XE(2,1)+XE(2,2))
  222. & +XE(1,1)*(XE(2,2)-XE(2,4))
  223. & -XE(1,2)*(XE(2,4)+XE(2,1))) ) * r_z
  224. BB(3,7) = ( XE(1,4)*(XE(2,1)-XE(2,3))+XE(2,4)*(XE(1,3)-XE(1,1))
  225. & +X1s2*( XE(1,1)*(XE(2,2)+XE(2,3))
  226. & +XE(1,2)*(XE(2,3)-XE(2,1))
  227. & -XE(1,3)*(XE(2,1)+XE(2,2))) ) * r_z
  228. * write (*,*) 'calcul de aire pour bbdil'
  229. * write (*,*) 'aire = ',aire
  230. * write (*,*) 'ecriture de la matrice bb'
  231. * write (*,4) (('bb(',i,',',j,')=',bb(i,j),i=1,3),j=1,2*nbnn)
  232. GOTO 666
  233.  
  234. *-----------------------------------------------------------------------
  235. *----------------------------- Element ICT6 ----------------------------
  236. *-----------------------------------------------------------------------
  237. 30 CONTINUE
  238. * write(*,*) 'Element ICT6',ifour
  239. * write (*,*) 'ecriture de la matrice xe[ ]'
  240. * write (*,3) (('xe(',i,',',j,')=',xe(i,j),i=1,2),j=1,6)
  241. GOTO (999,301,301,303),IFR
  242. GOTO 999
  243. *
  244. *--------contraintes planes ou deformations planes(ifour=-2,-1)
  245. 301 CONTINUE
  246. *--------donnee des composantes de bb-dil
  247. r_z = ( XE(1,1)*(XE(2,2)-XE(2,6)) + XE(1,2)*(XE(2,3)-XE(2,1))
  248. & + XE(1,3)*(XE(2,4)-XE(2,2)) + XE(1,4)*(XE(2,5)-XE(2,3))
  249. & + XE(1,5)*(XE(2,6)-XE(2,4)) + XE(1,6)*(XE(2,1)-XE(2,5)) )
  250. & + X1s4 * ( XE(1,1)*(XE(2,5)-XE(2,3))
  251. & + XE(1,3)*(XE(2,1)-XE(2,5))
  252. & + XE(1,5)*(XE(2,3)-XE(2,1)) )
  253. AIRE = X2s3 * r_z
  254. r_z = xUn / r_z
  255. BB(1, 1) = ( (XE(2,2)-XE(2,6)) + X1s4 * (XE(2,5)-XE(2,3)) ) * r_z
  256. BB(2, 2) = ( (XE(1,6)-XE(1,2)) + X1s4 * (XE(1,3)-XE(1,5)) ) * r_z
  257. BB(1, 3) = (XE(2,3)-XE(2,1)) * r_z
  258. BB(2, 4) = (XE(1,1)-XE(1,3)) * r_z
  259. BB(1, 5) = ( (XE(2,4)-XE(2,2)) + X1s4 * (XE(2,1)-XE(2,5)) ) * r_z
  260. BB(2, 6) = ( (XE(1,2)-XE(1,4)) + X1s4 * (XE(1,5)-XE(1,1)) ) * r_z
  261. BB(1, 7) = (XE(2,5)-XE(2,3)) * r_z
  262. BB(2, 8) = (XE(1,3)-XE(1,5)) * r_z
  263. BB(1, 9) = ( (XE(2,6)-XE(2,4)) + X1s4 * (XE(2,3)-XE(2,1)) ) * r_z
  264. BB(2,10) = ( (XE(1,4)-XE(1,6)) + X1s4 * (XE(1,1)-XE(1,3)) ) * r_z
  265. BB(1,11) = (XE(2,1)-XE(2,5)) * r_z
  266. BB(2,12) = (XE(1,5)-XE(1,1)) * r_z
  267.  
  268. * write (*,*) 'calcul de aire pour bbdil'
  269. * write (*,*) 'aire = ',aire
  270. * write (*,*) 'ecriture de la matrice bb'
  271. * write (*,4) (('bb(',i,',',j,')=',bb(i,j),i=1,3),j=1,2*nbnn)
  272. GOTO 666
  273. *
  274. *--------axisymetriques (ifour=0)
  275. 303 CONTINUE
  276. *--------donnee des composantes de bb-dil
  277. *-----integration numerique des composantes bb-dil------
  278. AIRE = XZer
  279. DO i = 1,nbnn
  280. XNUM1(i) = XZer
  281. XNUM2(i) = XZer
  282. XNUM3(i) = XZer
  283. ENDDO
  284. DO IGAU = 1,NBPGAU
  285. DO i = 1,nbnn
  286. SHP(1,i) = SHPTOT(1,i,IGAU)
  287. SHP(2,i) = SHPTOT(2,i,IGAU)
  288. SHP(3,i) = SHPTOT(3,i,IGAU)
  289. ENDDO
  290. CALL DISTRR(XE,SHP,nbnn,RR)
  291. CALL DISTR2(XE,SHP,nbnn,RR2)
  292. CALL DISTR3(XE,SHP,nbnn,RR3)
  293. CALL DISTZ2(XE,SHP,nbnn,ZZ2)
  294. CALL DISTZ3(XE,SHP,nbnn,ZZ3)
  295. CALL JACOBI(XE,SHP,2,nbnn,DJAC)
  296. r_z = POIGAU(IGAU) * RR
  297. r_zz2 = r_z * ZZ2
  298. r_zz3 = r_z * ZZ3
  299. r_rr2 = r_z * RR2
  300. r_rr3 = r_z * RR3
  301. r_z = POIGAU(IGAU) * DJAC
  302. AIRE = AIRE + (r_z * RR)
  303. DO i = 1,nbnn
  304. XNUM1(i) = XNUM1(i) + ( SHPTOT(2,i,IGAU)*r_zz3
  305. & - SHPTOT(3,i,IGAU)*r_zz2 )
  306. XNUM2(i) = XNUM2(i) + ( SHPTOT(3,i,IGAU)*r_rr2
  307. & - SHPTOT(2,i,IGAU)*r_rr3 )
  308. XNUM3(i) = XNUM3(i) + ( SHPTOT(1,i,IGAU)*r_z )
  309. ENDDO
  310. ENDDO
  311. r_z = XUn / AIRE
  312. DO i = 1,nbnn
  313. k = 2*i
  314. BB(1,k-1) = XNUM1(i) * r_z
  315. BB(2,k) = XNUM2(i) * r_z
  316. BB(3,k-1) = XNUM3(i) * r_z
  317. ENDDO
  318. * write (*,*) 'calcul de aire pour bbdil'
  319. * write (*,*) 'aire = ',aire
  320. * write (*,*) 'ecriture de la matrice bb'
  321. * write (*,4) (('bb(',i,',',j,')=',bb(i,j),i=1,3),j=1,2*nbnn)
  322. GOTO 666
  323.  
  324. *-----------------------------------------------------------------------
  325. *----------------------------- Element ICQ8 ----------------------------
  326. *-----------------------------------------------------------------------
  327. 40 CONTINUE
  328. * write(*,*) 'Element ICQ8',ifour
  329. * write(*,*) 'Ecriture de la matrice xe[ ]'
  330. * write(*,3) (('xe(',i,',',j,')=',xe(i,j),i=1,2),j=1,6)
  331. GOTO (999,401,401,403),IFR
  332. GOTO 999
  333.  
  334. *--------contraintes planes ou deformations planes (ifour=-2,-1)
  335. 401 CONTINUE
  336. *--------donnee de la matrice symetrique p(3,3) (1 fois par element)
  337. P(1,1) = X2s3 * ( XE(1,1)*(XE(2,2)-XE(2,8))
  338. 1 + XE(1,2)*(XE(2,3)-XE(2,1))
  339. 1 +XE(1,3)*(XE(2,4)-XE(2,2))+XE(1,4)*(XE(2,5)-XE(2,3))
  340. 2 +XE(1,5)*(XE(2,6)-XE(2,4))+XE(1,6)*(XE(2,7)-XE(2,5))
  341. 3 +XE(1,7)*(XE(2,8)-XE(2,6))+XE(1,8)*(XE(2,1)-XE(2,7)) )
  342. 4 + X1s6 * ( (XE(1,1)-XE(1,5))*(XE(2,7)-XE(2,3))
  343. 5 +(XE(1,3)-XE(1,7))*(XE(2,1)-XE(2,5)) )
  344. P(1,2) = 5.D0/9.D0*(-XE(2,2)*(XE(1,1)+XE(1,3))
  345. 1 +XE(1,2)*(XE(2,1)+XE(2,3))+XE(1,6)*(-XE(2,5)-XE(2,7))
  346. 1 +XE(2,6)*(XE(1,5)+XE(1,7)))
  347. 2 +4.D0/9.D0*(XE(1,8)*(XE(2,7)+XE(2,2)-XE(2,6)-XE(2,1))
  348. 2 +XE(2,8)*(-XE(1,7)-XE(1,2)+XE(1,6)+XE(1,1))
  349. 2 +XE(1,4)*(XE(2,2)-XE(2,6)+XE(2,5)-XE(2,3))
  350. 2 +XE(2,4)*(-XE(1,2)+XE(1,6)-XE(1,5)+XE(1,3)))
  351. 3 +7.D0/45.D0*(XE(1,2)*(XE(2,5)+XE(2,7))
  352. 3 -XE(2,2)*(XE(1,5)+XE(1,7))-XE(1,6)*(XE(2,1)+XE(2,3))
  353. 3 +XE(2,6)*(XE(1,1)+XE(1,3)))
  354. 4 +8.D0/15.D0*(XE(1,6)*XE(2,2)-XE(1,2)*XE(2,6))
  355. 5 +7.D0/90.D0*(XE(1,7)*XE(2,1)-XE(1,3)*XE(2,5)
  356. 5 +XE(1,5)*XE(2,3)-XE(1,1)*XE(2,7))
  357. 6 +1.D0/30.D0*(-XE(1,7)*XE(2,3)+XE(1,3)*XE(2,7)
  358. 6 -XE(1,5)*XE(2,1)+XE(1,1)*XE(2,5))
  359. P(1,3) = 5.D0/9.D0*(-XE(1,8)*(XE(2,7)+XE(2,1))
  360. 1 +XE(2,8)*(XE(1,7)+XE(1,1))
  361. 1 +XE(1,4)*(XE(2,3)+XE(2,5))
  362. 1 -XE(2,4)*(XE(1,3)+XE(1,5)))
  363. 2 +4.D0/9.D0*((XE(1,8)-XE(1,4))*(XE(2,2)+XE(2,6))
  364. 2 +(-XE(2,8)+XE(2,4))*(XE(1,2)+XE(1,6))
  365. 2 +XE(1,2)*(XE(2,1)-XE(2,3))+XE(2,2)*(-XE(1,1)+XE(1,3))
  366. 2 +XE(1,6)*(XE(2,7)-XE(2,5))+XE(2,6)*(-XE(1,7)+XE(1,5)))
  367. 3 +7.D0/45.D0*(-XE(1,8)*(XE(2,3)+XE(2,5))
  368. 3 +XE(2,8)*(XE(1,3)+XE(1,5))
  369. 3 +XE(1,4)*(XE(2,1)+XE(2,7))
  370. 3 -XE(2,4)*(XE(1,1)+XE(1,7)))
  371. 4 +1.D0/30.D0*(-XE(1,7)*XE(2,3)+XE(1,3)*XE(2,7)
  372. 4 +XE(1,5)*XE(2,1)-XE(1,1)*XE(2,5))
  373. 5 +7.D0/90.D0*(XE(1,7)*XE(2,5)-XE(1,3)*XE(2,1)
  374. 5 -XE(1,5)*XE(2,7)+XE(1,1)*XE(2,3))
  375. 6 +8.D0/15.D0*(XE(1,8)*XE(2,4)-XE(1,4)*XE(2,8))
  376. P(1,4) = XZer
  377.  
  378. P(2,1) = P(1,2)
  379. P(2,2) = 16.D0/45.D0*(XE(2,6)*(XE(1,5)-XE(1,7))
  380. 1 +XE(1,6)*(XE(2,7)-XE(2,5))+XE(1,2)*(XE(2,3)-XE(2,1))
  381. 1 +XE(2,2)*(XE(1,1)-XE(1,3)))
  382. 2 +14.D0/45.D0*(XE(2,4)*(XE(1,3)-XE(1,5))
  383. 2 +XE(1,4)*(XE(2,5)-XE(2,3))+XE(1,8)*(XE(2,1)-XE(2,7))
  384. 2 +XE(2,8)*(XE(1,7)-XE(1,1)))
  385. 3 +8.D0/45.D0*(XE(1,4)*(XE(2,2)-XE(2,6))
  386. 3 +XE(1,8)*(XE(2,6)-XE(2,2))+XE(1,2)*(XE(2,8)-XE(2,4))
  387. 3 +XE(1,6)*(XE(2,4)-XE(2,8)))
  388. 4 +2.D0/45.D0*(XE(2,2)*(XE(1,5)-XE(1,7))
  389. 4 +XE(1,2)*(XE(2,7)-XE(2,5)) +XE(1,6)*(XE(2,3)-XE(2,1))
  390. 4 +XE(2,6)*(XE(1,1)-XE(1,3)))
  391. 5 +4.D0/45.D0*(XE(2,4)*(XE(1,1)-XE(1,7))
  392. 5 +XE(1,4)*(XE(2,7)-XE(2,1)) +XE(1,8)*(XE(2,3)-XE(2,5))
  393. 5 +XE(2,8)*(XE(1,5)-XE(1,3)))
  394. 6 +17.D0/90.D0*(XE(1,7)*XE(2,5)+XE(1,3)*XE(2,1)
  395. 6 -XE(1,5)*XE(2,7)-XE(1,1)*XE(2,3))
  396. 7 +1.D0/90.D0*(-XE(1,7)*XE(2,1)-XE(1,3)*XE(2,5)
  397. 7 +XE(1,5)*XE(2,3)+XE(1,1)*XE(2,7))
  398. P(2,3) = 1.D0/3.D0*(XE(1,5)*(XE(2,6)-XE(2,4))
  399. 1 +XE(1,8)*(XE(2,7)+XE(2,1))+XE(1,7)*(XE(2,6)-XE(2,8))
  400. 1 -XE(1,2)*(XE(2,1)+XE(2,3))+XE(1,1)*(XE(2,2)-XE(2,8))
  401. 1 +XE(1,4)*(XE(2,5)+XE(2,3))-XE(1,6)*(XE(2,7)+XE(2,5))
  402. 1 +XE(1,3)*(XE(2,2)-XE(2,4)))
  403. 2 +4.D0/9.D0*(-XE(1,4)*(XE(2,2)+XE(2,6))
  404. 2 -XE(1,8)*(XE(2,6)+XE(2,2))+XE(1,2)*(XE(2,8)+XE(2,4))
  405. 2 +XE(1,6)*(XE(2,4)+XE(2,8)))
  406. 3 +1.D0/9.D0*(XE(1,7)*(XE(2,2)-XE(2,4))
  407. 3 +XE(1,8)*(XE(2,3)+XE(2,5))
  408. 3 +XE(1,5)*(XE(2,2)-XE(2,8))+XE(1,3)*(XE(2,6)-XE(2,8))
  409. 3 -XE(1,2)*(XE(2,5)+XE(2,7))+XE(1,1)*(XE(2,6)-XE(2,4))
  410. 3 +XE(1,4)*(XE(2,1)+XE(2,7))-XE(1,6)*(XE(2,1)+XE(2,3)))
  411. P(2,4) = XZer
  412.  
  413. P(3,1) = P(1,3)
  414. P(3,2) = P(2,3)
  415. P(3,3) = 14.D0/45.D0*(XE(1,6)*(XE(2,7)-XE(2,5))
  416. 1 +XE(2,6)*(XE(1,5)-XE(1,7))+XE(1,2)*(XE(2,3)-XE(2,1))
  417. 1 +XE(2,2)*(XE(1,1)-XE(1,3)))
  418. 2 +16.D0/45.D0*(XE(1,8)*(XE(2,1)-XE(2,7))
  419. 2 +XE(2,8)*(XE(1,7)-XE(1,1))+XE(1,4)*(XE(2,5)-XE(2,3))
  420. 2 +XE(2,4)*(XE(1,3)-XE(1,5)))
  421. 3 +8.D0/45.D0*(XE(1,4)*(XE(2,2)-XE(2,6))
  422. 3 +XE(1,8)*(XE(2,6)-XE(2,2))+XE(1,2)*(XE(2,8)-XE(2,4))
  423. 3 +XE(1,6)*(XE(2,4)-XE(2,8)))
  424. 4 +2.D0/45.D0*(XE(2,4)*(XE(1,7)-XE(1,1))
  425. 4 +XE(1,8)*(XE(2,5)-XE(2,3))+XE(2,8)*(-XE(1,5)+XE(1,3))
  426. 4 +XE(1,4)*(XE(2,1)-XE(2,7)))
  427. 5 +4.D0/45.D0*(XE(2,2)*(XE(1,7)-XE(1,5))
  428. 5 +XE(1,2)*(XE(2,5)-XE(2,7))+XE(1,6)*(XE(2,1)-XE(2,3))
  429. 5 +XE(2,6)*(XE(1,3)-XE(1,1)))
  430. 6 +1.D0/90.D0*(-XE(1,5)*XE(2,7)+XE(1,3)*XE(2,1)
  431. 6 +XE(1,7)*XE(2,5)-XE(1,1)*XE(2,3))
  432. 7 +17.D0/90.D0*(-XE(1,7)*XE(2,1)-XE(1,3)*XE(2,5)
  433. 7 +XE(1,5)*XE(2,3)+XE(1,1)*XE(2,7))
  434. P(3,4) = XZer
  435.  
  436. P(4,1) = XZer
  437. P(4,2) = XZer
  438. P(4,3) = XZer
  439. P(4,4) = XZer
  440.  
  441. * write (*,*) 'ecriture de la matrice p[ ]'
  442. * write (*,4) (('p(',i,',',j,')=',p(i,j),i=1,3),j=1,3)
  443.  
  444. *-----------------donnee des vecteurs {t}={t1,t2,t3}--------------------
  445. A(1,1) = 2.D0/3.D0*(XE(2,2)-XE(2,8))
  446. 1 +1.D0/6.D0*(XE(2,7)-XE(2,3))
  447. A(2,1) = 1.D0/9.D0*(4.D0*XE(2,8)-5.D0*XE(2,2))
  448. 1 +7.D0/90.D0*(-XE(2,7)+2.D0*XE(2,6))
  449. 1 +1.D0/30.D0*XE(2,5)
  450. A(3,1) = 1.D0/9.D0*(-4.D0*XE(2,2)+5.D0*XE(2,8))
  451. 1 +7.D0/90.D0*(XE(2,3)-2.D0*XE(2,4))
  452. 1 -1.D0/30.D0*XE(2,5)
  453.  
  454. A(1,2) = 2.D0/3.D0*(XE(1,8)-XE(1,2))
  455. 1 +1.D0/6.D0*(XE(1,3)-XE(1,7))
  456. A(2,2) = 1.D0/9.D0*(-4.D0*XE(1,8)+5.D0*XE(1,2))
  457. 1 +7.D0/90.D0*(XE(1,7)-2.D0*XE(1,6))
  458. 1 -1.D0/30.D0*XE(1,5)
  459. A(3,2) = 1.D0/9.D0*(4.D0*XE(1,2)-5.D0*XE(1,8))
  460. 1 +7.D0/90.D0*(-XE(1,3)+2.D0*XE(1,4))
  461. 1 +1.D0/30.D0*XE(1,5)
  462.  
  463. A(1,3) = 2.D0/3.D0*(-XE(2,1)+XE(2,3))
  464. A(2,3) = 5.D0/9.D0*(XE(2,1)+XE(2,3))
  465. 1 +7.D0/45.D0*(XE(2,5)+XE(2,7))
  466. 1 -4.D0/9.D0*(XE(2,4)+XE(2,8))
  467. 1 -8.D0/15.D0*XE(2,6)
  468. A(3,3) = 4.D0/9.D0*(XE(2,1)-XE(2,3)+XE(2,4)-XE(2,8))
  469.  
  470. A(1,4) = 2.D0/3.D0*(-XE(1,3)+XE(1,1))
  471. A(2,4) = -5.D0/9.D0*(XE(1,1)+XE(1,3))
  472. 1 -7.D0/45.D0*(XE(1,5)+XE(1,7))
  473. 1 +4.D0/9.D0*(XE(1,4)+XE(1,8))
  474. 1 +8.D0/15.D0*XE(1,6)
  475. A(3,4) = 4.D0/9.D0*(-XE(1,1)+XE(1,3)-XE(1,4)+XE(1,8))
  476.  
  477. A(1,5) = 2.D0/3.D0*(XE(2,4)-XE(2,2))
  478. 1 +1.D0/6.D0*(-XE(2,5)+XE(2,1))
  479. A(2,5) = 1.D0/9.D0*(4.D0*XE(2,4)-5.D0*XE(2,2))
  480. 1 +7.D0/90.D0*(-XE(2,5)+2.D0*XE(2,6))
  481. 1 +1.D0/30.D0*XE(2,7)
  482. A(3,5) = 1.D0/9.D0*(4.D0*XE(2,2)-5.D0*XE(2,4))
  483. 1 +7.D0/90.D0*(-XE(2,1)+2.D0*XE(2,8))
  484. 1 +1.D0/30.D0*XE(2,7)
  485.  
  486. A(1,6) = 2.D0/3.D0*(-XE(1,4)+XE(1,2))
  487. 1 +1.D0/6.D0*(XE(1,5)-XE(1,1))
  488. A(2,6) = 1.D0/9.D0*(-4.D0*XE(1,4)+5.D0*XE(1,2))
  489. 1 +7.D0/90.D0*(XE(1,5)-2.D0*XE(1,6))
  490. 1 -1.D0/30.D0*XE(1,7)
  491. A(3,6) = 1.D0/9.D0*(-4.D0*XE(1,2)+5.D0*XE(1,4))
  492. 1 +7.D0/90.D0*(XE(1,1)-2.D0*XE(1,8))
  493. 1 -1.D0/30.D0*XE(1,7)
  494.  
  495. A(1,7) = 2.D0/3.D0*(-XE(2,3)+XE(2,5))
  496. A(2,7) = 4.D0/9.D0*(XE(2,5)-XE(2,3)+XE(2,2)-XE(2,6))
  497. A(3,7) = 5.D0/9.D0*(XE(2,3)+XE(2,5))
  498. 1 +7.D0/45.D0*(XE(2,1)+XE(2,7))
  499. 1 -4.D0/9.D0*(XE(2,2)+XE(2,6))
  500. 1 -8.D0/15.D0*XE(2,8)
  501.  
  502. A(1,8) = 2.D0/3.D0*(XE(1,3)-XE(1,5))
  503. A(2,8) = 4.D0/9.D0*(-XE(1,5)+XE(1,3)-XE(1,2)+XE(1,6))
  504. A(3,8) = -5.D0/9.D0*(XE(1,3)+XE(1,5))
  505. 1 -7.D0/45.D0*(XE(1,1)+XE(1,7))
  506. 1 +4.D0/9.D0*(XE(1,2)+XE(1,6))
  507. 1 +8.D0/15.D0*XE(1,8)
  508.  
  509. A(1,9) = 2.D0/3.D0*(-XE(2,4)+XE(2,6))
  510. 1 +1.D0/6.D0*(XE(2,3)-XE(2,7))
  511. A(2,9) = 1.D0/9.D0*(-4.D0*XE(2,4)+5.D0*XE(2,6))
  512. 1 +7.D0/90.D0*(XE(2,3)-2.D0*XE(2,2))
  513. 1 -1.D0/30.D0*XE(2,1)
  514. A(3,9) = 1.D0/9.D0*(4.D0*XE(2,6)-5.D0*XE(2,4))
  515. 1 +7.D0/90.D0*(-XE(2,7)+2.D0*XE(2,8))
  516. 1 +1.D0/30.D0*XE(2,1)
  517.  
  518. A(1,10) = 2.D0/3.D0*(XE(1,4)-XE(1,6))
  519. 1 +1.D0/6.D0*(-XE(1,3)+XE(1,7))
  520. A(2,10) = 1.D0/9.D0*(4.D0*XE(1,4)-5.D0*XE(1,6))
  521. 1 +7.D0/90.D0*(-XE(1,3)+2.D0*XE(1,2))
  522. 1 +1.D0/30.D0*XE(1,1)
  523. A(3,10) = 1.D0/9.D0*(-4.D0*XE(1,6)+5.D0*XE(1,4))
  524. 1 +7.D0/90.D0*(XE(1,7)-2.D0*XE(1,8))
  525. 1 -1.D0/30.D0*XE(1,1)
  526.  
  527. A(1,11) = 2.D0/3.D0*(-XE(2,5)+XE(2,7))
  528. A(2,11) = -5.D0/9.D0*(XE(2,7)+XE(2,5))
  529. 1 -7.D0/45.D0*(XE(2,1)+XE(2,3))
  530. 1 +4.D0/9.D0*(XE(2,4)+XE(2,8))
  531. 1 +8.D0/15.D0*XE(2,2)
  532. A(3,11) = 4.D0/9.D0*(XE(2,4)-XE(2,5)-XE(2,8)+XE(2,7))
  533.  
  534. A(1,12) = 2.D0/3.D0*(XE(1,5)-XE(1,7))
  535. A(2,12) = 5.D0/9.D0*(XE(1,7)+XE(1,5))
  536. 1 +7.D0/45.D0*(XE(1,1)+XE(1,3))
  537. 1 -4.D0/9.D0*(XE(1,4)+XE(1,8))
  538. 1 -8.D0/15.D0*XE(1,2)
  539. A(3,12) = 4.D0/9.D0*(-XE(1,4)+XE(1,5)+XE(1,8)-XE(1,7))
  540.  
  541. A(1,13) = 2.D0/3.D0*(-XE(2,6)+XE(2,8))
  542. 1 +1.D0/6.D0*(XE(2,5)-XE(2,1))
  543. A(2,13) = 1.D0/9.D0*(-4.D0*XE(2,8)+5.D0*XE(2,6))
  544. 1 +7.D0/90.D0*(XE(2,1)-2.D0*XE(2,2))
  545. 1 -1.D0/30.D0*XE(2,3)
  546. A(3,13) = 1.D0/9.D0*(-4.D0*XE(2,6)+5.D0*XE(2,8))
  547. 1 +7.D0/90.D0*(XE(2,5)-2.D0*XE(2,4))
  548. 1 -1.D0/30.D0*XE(2,3)
  549.  
  550. A(1,14) = 2.D0/3.D0*(XE(1,6)-XE(1,8))
  551. 1 +1.D0/6.D0*(-XE(1,5)+XE(1,1))
  552. A(2,14) = 1.D0/9.D0*(4.D0*XE(1,8)-5.D0*XE(1,6))
  553. 1 +7.D0/90.D0*(-XE(1,1)+2.D0*XE(1,2))
  554. 1 +1.D0/30.D0*XE(1,3)
  555. A(3,14) = 1.D0/9.D0*(4.D0*XE(1,6)-5.D0*XE(1,8))
  556. 1 +7.D0/90.D0*(-XE(1,5)+2.D0*XE(1,4))
  557. 1 +1.D0/30.D0*XE(1,3)
  558.  
  559. A(1,15) = 2.D0/3.D0*(-XE(2,7)+XE(2,1))
  560. A(2,15) = 4.D0/9.D0*(-XE(2,6)+XE(2,7)+XE(2,2)-XE(2,1))
  561. A(3,15) = -5.D0/9.D0*(XE(2,1)+XE(2,7))
  562. 1 -7.D0/45.D0*(XE(2,3)+XE(2,5))
  563. 1 +4.D0/9.D0*(XE(2,2)+XE(2,6))
  564. 1 +8.D0/15.D0*XE(2,4)
  565.  
  566. A(1,16) = 2.D0/3.D0*(XE(1,7)-XE(1,1))
  567. A(2,16) = 4.D0/9.D0*(XE(1,6)-XE(1,7)-XE(1,2)+XE(1,1))
  568. A(3,16) = 5.D0/9.D0*(XE(1,1)+XE(1,7))
  569. 1 +7.D0/45.D0*(XE(1,3)+XE(1,5))
  570. 1 -4.D0/9.D0*(XE(1,2)+XE(1,6))
  571. 1 -8.D0/15.D0*XE(1,4)
  572.  
  573. * write (*,*) 'ecriture de la matrice t[ ]'
  574. * write (*,4) (('t(',i,',',j,')=',a(i,j),i=1,3),j=1,16)
  575. *--------------resolution matricielle de [p]{a}={t}---------------------
  576. * write (*,*) 'Appel a GAUSSJ'
  577. N = 3
  578. NP = 4
  579. M = 16
  580. MP = 60
  581. CALL GAUSSJ(P,N,NP,A,M,MP)
  582. GOTO 666
  583.  
  584. *--------axisymetriques (ifour=0)
  585. 403 CONTINUE
  586. *--------donnee de la matrice symetrique p(3,3) (1 fois par element)
  587. CALL ZERO(P,4,4)
  588. DO IGAU = 1,NBPGAU
  589. DO I = 1,nbnn
  590. SHP(1,I) = SHPTOT(1,I,IGAU)
  591. SHP(2,I) = SHPTOT(2,I,IGAU)
  592. SHP(3,I) = SHPTOT(3,I,IGAU)
  593. ENDDO
  594. CALL DISTRR(XE,SHP,nbnn,RR)
  595. CALL JACOBI(XE,SHP,2,nbnn,DJAC)
  596. r_z = POIGAU(IGAU)*RR*DJAC
  597. P(1,1) = P(1,1) + r_z
  598. P(2,1) = P(2,1) + (r_z * QSIGAU(IGAU))
  599. P(3,1) = P(3,1) + (r_z * ETAGAU(IGAU))
  600. P(2,2) = P(2,2) + (r_z * QSIGAU(IGAU) * QSIGAU(IGAU))
  601. P(3,2) = P(3,2) + (r_z * QSIGAU(IGAU) * ETAGAU(IGAU))
  602. P(3,3) = P(3,3) + (r_z * ETAGAU(IGAU) * ETAGAU(IGAU))
  603. ENDDO
  604. P(1,2) = P(2,1)
  605. P(1,3) = P(3,1)
  606. P(2,3) = P(3,2)
  607. * write (*,*) 'ecriture de la matrice p[ ]'
  608. * write (*,4) (('p(',i,',',j,')=',p(i,j),i=1,3),j=1,3)
  609. *-----------calcul des vecteurs {t}={t1,t2,t3}--integration numerique---
  610. CALL ZERO(A,4,24)
  611. DO 4031 IGAU = 1,NBPGAU
  612. DO I = 1,nbnn
  613. SHP(1,I) = SHPTOT(1,I,IGAU)
  614. SHP(2,I) = SHPTOT(2,I,IGAU)
  615. SHP(3,I) = SHPTOT(3,I,IGAU)
  616. ENDDO
  617. CALL DISTRR(XE,SHP,nbnn,RR)
  618. CALL DISTR2(XE,SHP,nbnn,RR2)
  619. CALL DISTR3(XE,SHP,nbnn,RR3)
  620. CALL DISTZ2(XE,SHP,nbnn,ZZ2)
  621. CALL DISTZ3(XE,SHP,nbnn,ZZ3)
  622. CALL JACOBI(XE,SHP,2,nbnn,DJAC)
  623. K = 0
  624. DO I = 1,nbnn
  625. K = K+1
  626. r_z = POIGAU(IGAU)*RR
  627. & *(SHPTOT(2,I,IGAU)*ZZ3-SHPTOT(3,I,IGAU)*ZZ2)
  628. A(1,K) = A(1,K) + r_z
  629. A(2,K) = A(2,K) + r_z * QSIGAU(IGAU)
  630. A(3,K) = A(3,K) + r_z * ETAGAU(IGAU)
  631. K = K+1
  632. r_z = POIGAU(IGAU)*RR
  633. & *(-SHPTOT(2,I,IGAU)*RR3+SHPTOT(3,I,IGAU)*RR2)
  634. A(1,K) = A(1,K) + r_z
  635. A(2,K) = A(2,K) + r_z * QSIGAU(IGAU)
  636. A(3,K) = A(3,K) + r_z * ETAGAU(IGAU)
  637. K = K+1
  638. r_z = POIGAU(IGAU)*SHPTOT(1,I,IGAU)*DJAC
  639. A(1,K) = A(1,K) + r_z
  640. A(2,K) = A(2,K) + r_z * QSIGAU(IGAU)
  641. A(3,K) = A(3,K) + r_z * ETAGAU(IGAU)
  642. ENDDO
  643. 4031 CONTINUE
  644. * write(*,*) 'Ecriture de la matrice t[ ]'
  645. * write(*,4) (('t(',i,',',j,')=',a(i,j),i=1,3),j=1,24)
  646. *------------resolution matricielle de [p]{a}={t}-----------------
  647. N = 3
  648. NP = 4
  649. M = 24
  650. MP = 60
  651. * write (*,*) 'appel a GAUSSJ'
  652. CALL GAUSSJ(P,N,NP,A,M,MP)
  653. * write(*,*) 'Ecriture de la matrice a[ ]'
  654. * write(*,4) (('a(',i,',',j,')=',a(i,j),i=1,3),j=1,24)
  655. GOTO 666
  656.  
  657. C=======================================================================
  658. C========== Elements MASSIFS INCOMPRESSIBLES TRIDIMENSIONNELS ==========
  659. C=======================================================================
  660. 100 CONTINUE
  661. IF (ifour.NE.2) GOTO 999
  662.  
  663. DIM3 = 1.D0
  664. FACAR = 1.D0
  665. FACSCA = 1.D0
  666. ESTEL = XZero
  667.  
  668. C= Boucle sur les points d'integration
  669. DO iGau=1,NBPGAU
  670.  
  671. * BGENE au point IGAU
  672. CALL BMATST(IGAU,NBPGAU,POIGAU,QSIGAU,ETAGAU,DZEGAU,
  673. & MELE,MFR,NBNN,LRE,IFOUR,NSTRS,NHRM,DIM3,
  674. & XE,SHPTOT,SHP,BGENE,DJAC,XDPGE,YDPGE)
  675.  
  676. C= Calcul de la composante integree en ce point de Gauss
  677. DJAC=ABS(DJAC)*POIGAU(iGau)*FACAR*DIM3
  678. ESTEL=ESTEL+FACSCA*DJAC
  679.  
  680. *----- Element ICQ8 ICCU20(76) ICTE10(77) ICPR15(78) ICPY13(274)
  681. IF (MELE.EQ.72 .or. (MELE.ge.76.and.MELE.le.78) .or.
  682. & MELE.EQ.274) then
  683. * second membre T
  684. K = 1
  685. jj = 0
  686. DO i = 1,NBNN
  687. jj = jj + 1
  688. A(1,jj) = A(1,jj) + BGENE(1,K)*DJAC
  689. A(2,jj) = A(2,jj) + BGENE(1,K)*qsigau(igau)*DJAC
  690. A(3,jj) = A(3,jj) + BGENE(1,K)*etagau(igau)*DJAC
  691. if (mele.ge.76)
  692. & A(4,jj) = A(4,jj) + BGENE(1,K)*dzegau(igau)*DJAC
  693. jj = jj + 1
  694. A(1,jj) = A(1,jj) + BGENE(2,K+1)*DJAC
  695. A(2,jj) = A(2,jj) + BGENE(2,K+1)*qsigau(igau)*DJAC
  696. A(3,jj) = A(3,jj) + BGENE(2,K+1)*etagau(igau)*DJAC
  697. if (mele.ge.76) then
  698. A(4,jj) = A(4,jj) + BGENE(2,K+1)*dzegau(igau)*DJAC
  699. jj = jj + 1
  700. A(1,jj) = A(1,jj) + BGENE(3,K+2)*DJAC
  701. A(2,jj) = A(2,jj) + BGENE(3,K+2)*qsigau(igau)*DJAC
  702. A(3,jj) = A(3,jj) + BGENE(3,K+2)*etagau(igau)*DJAC
  703. A(4,jj) = A(4,jj) + BGENE(3,K+2)*dzegau(igau)*DJAC
  704. endif
  705. K = K + KINC
  706. ENDDO
  707. * matrice M
  708. P(1,1) = P(1,1) + DJAC
  709. P(1,2) = P(1,2) + qsigau(igau)*DJAC
  710. P(1,3) = P(1,3) + etagau(igau)*DJAC
  711. P(2,2) = P(2,2) + qsigau(igau)*qsigau(igau)*DJAC
  712. P(2,3) = P(2,3) + qsigau(igau)*etagau(igau)*DJAC
  713. P(3,3) = P(3,3) + etagau(igau)*etagau(igau)*DJAC
  714. if (mele.ge.76) then
  715. P(1,4) = P(1,4) + dzegau(igau)*DJAC
  716. P(2,4) = P(2,4) + qsigau(igau)*dzegau(igau)*DJAC
  717. P(3,4) = P(3,4) + etagau(igau)*dzegau(igau)*DJAC
  718. P(4,4) = P(4,4) + dzegau(igau)*dzegau(igau)*DJAC
  719. endif
  720.  
  721. else if(mele.le.71) then
  722.  
  723. K = 1
  724. DO i = 1,NBNN
  725. bb(1,K) = bb(1,K) + BGENE(1,K)*DJAC
  726. bb(2,K+1) = bb(2,K+1) + BGENE(2,K+1)*DJAC
  727. bb(3,K) = bb(3,K) + BGENE(3,K)*DJAC
  728. K = K + KINC
  729. ENDDO
  730.  
  731. else if ( (mele.ge.73.and.mele.le.75)
  732. &.or.mele.eq.273) then
  733.  
  734. K = 1
  735. DO i = 1,NBNN
  736. bb(1,K) = bb(1,K) + BGENE(1,K)*DJAC
  737. bb(2,K+1) = bb(2,K+1) + BGENE(2,K+1)*DJAC
  738. bb(3,K+2) = bb(3,K+2) + BGENE(3,K+2)*DJAC
  739. K = K + KINC
  740. ENDDO
  741.  
  742. endif
  743.  
  744. ENDDO
  745.  
  746. if (MELE.EQ.72) then
  747. P(1,4) = XZer
  748. P(2,1) = P(1,2)
  749. P(2,4) = XZer
  750. P(3,1) = P(1,3)
  751. P(3,2) = P(2,3)
  752. P(3,4) = XZer
  753.  
  754. P(4,1) = XZer
  755. P(4,2) = XZer
  756. P(4,3) = XZer
  757. P(4,4) = XZer
  758.  
  759. ELSE IF (mele.GE.76) THEN
  760. P(2,1) = P(1,2)
  761. P(3,1) = P(1,3)
  762. P(3,2) = P(2,3)
  763. P(4,1) = P(1,4)
  764. P(4,2) = P(2,4)
  765. P(4,3) = P(3,4)
  766. ENDIF
  767. *
  768. ** synthese
  769. *
  770. if (MELE.EQ.72) then
  771. N = 3
  772. NP = 4
  773. M = 16
  774. MP = 60
  775. * write (*,*) 'appel a GAUSSJ'
  776. CALL GAUSSJ(P,N,NP,A,M,MP)
  777. * write(*,*) 'Ecriture de la matrice a[ ]'
  778. * write(*,4) (('a(',i,',',j,')=',a(i,j),i=1,3),j=1,24)
  779.  
  780. elseif (mele.ge.76.and.mele.ne.273) then
  781. N = 4
  782. NP = 4
  783. M = NBNN*3
  784. MP = 60
  785. * write (*,*) 'appel a GAUSSJ'
  786. CALL GAUSSJ(P,N,NP,A,M,MP)
  787.  
  788. elseif(mele.le.71) then
  789.  
  790. K = 1
  791. DO i = 1,NBNN
  792. bb(1,K) = bb(1,K)/ESTEL
  793. bb(2,K+1) = bb(2,K+1)/ESTEL
  794. bb(3,K) = bb(3,K)/ESTEL
  795. K = K + KINC
  796. ENDDO
  797.  
  798. elseif((mele.ge.73.and.mele.le.75).or.
  799. &mele.eq.273) then
  800.  
  801. K = 1
  802. DO i = 1,NBNN
  803. bb(1,K) = bb(1,K)/ESTEL
  804. bb(2,K+1) = bb(2,K+1)/ESTEL
  805. bb(3,K+2) = bb(3,K+2)/ESTEL
  806. K = K + KINC
  807. ENDDO
  808.  
  809. endif
  810.  
  811. GOTO 666
  812.  
  813. C=======================================================================
  814. C======================= ERREUR : Cas non prevus =======================
  815. C=======================================================================
  816. 999 CONTINUE
  817. write(6,*) 'Erreur d aiguillage - cas non prevu',MELE,IFOUR
  818. CALL ERREUR(5)
  819.  
  820. 666 CONTINUE
  821. * write(6,*) 'Sortie de BBCALC'
  822.  
  823. c RETURN
  824. END
  825.  
  826.  
  827.  

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