Télécharger bbcal3.eso

Retour à la liste

Numérotation des lignes :

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

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