Télécharger donoeu.eso

Retour à la liste

Numérotation des lignes :

  1. C DONOEU SOURCE GOUNAND 16/08/01 21:15:14 9043
  2. SUBROUTINE DONOEU(IELE,MELE,NBSH,NNO,IPT,IRET)
  3. C=======================================================================
  4. C
  5. C CALCULE LES COORDONNEES REDUITES ET LES POIDS
  6. C D'INTEGRATION CORRESPONDANTS
  7. C IELE = NUMEROTATION DES ELEMENTS DANS NOMS(32)
  8. C (VOIR CCGEO..ME)
  9. C MELE = NUMERO DE L'ELEMENT FINI
  10. C NBSH = NOMBRE DE FONCTIONS D'INTERPOLATION
  11. C NNO = NOMBRE DE NOEUDS DE L'ELEMENT NOMS(IELE)
  12. C QSI(NNO) ETA(NNO) DZE(NNO) = COORDONNEES REDUITES
  13. C
  14. C POI(NBG) = POIDS DE L'INTEGRATION
  15. C C A D VOLUME DE L'ELEMENT DE BASE
  16. C FOIS CONTRIBUTION DU NOEUD
  17. C
  18. C IRET = 1 OU 0 SUIVANT QUE IELE IMPLEMENTE OU PAS
  19. C
  20. C=======================================================================
  21. IMPLICIT INTEGER(I-N)
  22. IMPLICIT REAL*8(A-H,O-Z)
  23. -INC CCREEL
  24. -INC SMINTE
  25. C
  26. C QUELQUES CONSTANTES EN VRAC
  27. C
  28. DATA UNDEMI,UNQUAR,UN/.5D0,0.25D0,1.D0/
  29. DATA UNDOU/.8333333333333333D-1/
  30. DATA UNTIER/.33333333333333333D0/
  31. DATA DEUTIE/.66666666666666666D0/
  32. DATA UNSIX/.166666666666666666D0/
  33. C
  34. NBPGAU=NNO
  35. NBNO=NBSH
  36. SEGINI MINTE
  37. IPT=MINTE
  38. IRET=1
  39. DO 100 I=1,NNO
  40. QSIGAU(I)=XZERO
  41. ETAGAU(I)=XZERO
  42. DZEGAU(I)=XZERO
  43. POIGAU(I)=XZERO
  44. 100 CONTINUE
  45. *
  46. * PETIT DEBRANCHEMENT POUR ELEMENT TUYO
  47. *
  48. IF(MELE.EQ.96) GO TO 96
  49. C
  50. C 66 INDIQUE QUE L ELEMENT N EST PAS ENCORE IMPLEMENTE
  51. C DANS CE CAS IRET EST MIS A XZERO
  52. C
  53. C P1 S2 S3 T3 T4 T6 T7 Q4 Q5 Q8 Q9 R2 R3 C8 C20 P6 P15
  54. GOTO ( 1, 2, 3, 4, 5, 6, 7, 8, 8,10,10, 2,13,14, 15,16, 17,
  55. C L3 L4 L6 L8 MU T4 T10 P5 P13 ATT SUP RP3 LP6 LP8
  56. 1 4, 8,66,66,66,23, 24,25, 26, 66, 66, 3, 6, 10,
  57. C POLY CU27 PR21 TE15 PY19
  58. 2 32,15, 17, 24, 26),IELE
  59. C
  60. 66 IRET=0
  61. IPT=0
  62. GOTO 666
  63. C
  64. C ELEMENT POI1
  65. C
  66. 1 CONTINUE
  67. POIGAU(1)=UN
  68. GOTO 666
  69. C
  70. C ELEMENT LIGNE 2 NOEUDS LONGUEUR=2
  71. C
  72. 2 CONTINUE
  73. QSIGAU(1)=-UN
  74. QSIGAU(2)= UN
  75. POIGAU(1)= UN
  76. POIGAU(2)= UN
  77. GOTO 666
  78. C
  79. C ELEMENT LIGNE 3 NOEUDS LONGUEUR=2
  80. C
  81. 3 CONTINUE
  82. QSIGAU(1)=-UN
  83. QSIGAU(3)= UN
  84. POIGAU(1)= DEUTIE
  85. POIGAU(2)= DEUTIE
  86. POIGAU(3)= DEUTIE
  87. GOTO 666
  88. C
  89. C ELEMENT TRIANGLE 3 NOEUDS SURFACE=1/2
  90. C
  91. 4 CONTINUE
  92. QSIGAU(2)=UN
  93. ETAGAU(3)=UN
  94. POIGAU(1)=UNSIX
  95. POIGAU(2)=UNSIX
  96. POIGAU(3)=UNSIX
  97. GOTO 666
  98. C
  99. C ELEMENT TRIANGLE 4 NOEUDS SURFACE =1/2
  100. C
  101. 5 CONTINUE
  102. QSIGAU(2)=UN
  103. ETAGAU(3)=UN
  104. QSIGAU(4)=UNTIER
  105. ETAGAU(4)=UNTIER
  106. POIGAU(1)=1.D0/8.D0
  107. POIGAU(2)=POIGAU(1)
  108. POIGAU(3)=POIGAU(1)
  109. POIGAU(4)=POIGAU(1)
  110. GOTO 666
  111. C
  112. C TRIANGLE 6 NOEUDS SURFACE = 1/2
  113. C
  114. 6 CONTINUE
  115. QSIGAU(2)=UNDEMI
  116. QSIGAU(3)=UN
  117. QSIGAU(4)=UNDEMI
  118. ETAGAU(4)=UNDEMI
  119. ETAGAU(5)=UN
  120. ETAGAU(6)=UNDEMI
  121. DO 61 IA=1,6
  122. POIGAU(IA)=UNDOU
  123. 61 CONTINUE
  124. GOTO 666
  125. C
  126. C TRIANGLE 7 NOEUDS SURFACE=1/2
  127. C
  128. 7 CONTINUE
  129. QSIGAU(2)=UNDEMI
  130. QSIGAU(3)=UN
  131. QSIGAU(4)=UNDEMI
  132. ETAGAU(4)=UNDEMI
  133. ETAGAU(5)=UN
  134. ETAGAU(6)=UNDEMI
  135. QSIGAU(7)=UNTIER
  136. ETAGAU(7)=UNTIER
  137. UN14=1.D0/14.D0
  138. DO 71 IA=1,7
  139. POIGAU(IA)=UN14
  140. 71 CONTINUE
  141. GOTO 666
  142. C
  143. C ELEMENT CARRE 4 OU 5 NOEUDS SURFACE =4
  144. C
  145. 8 CONTINUE
  146. QSIGAU(1)=-UN
  147. QSIGAU(2)= UN
  148. QSIGAU(3)= UN
  149. QSIGAU(4)=-UN
  150. ETAGAU(1)=-UN
  151. ETAGAU(2)=-UN
  152. ETAGAU(3)= UN
  153. ETAGAU(4)= UN
  154. UN4=UN
  155. IF(NNO.EQ.5) UN4=.8D0
  156. DO 81 IA=1,NNO
  157. POIGAU(IA)=UN4
  158. 81 CONTINUE
  159. GOTO 666
  160. C
  161. C CARRE 8 OU 9 NOEUDS SURFACE=4
  162. C
  163. 10 CONTINUE
  164. QSIGAU(1)=-UN
  165. QSIGAU(3)= UN
  166. QSIGAU(4)= UN
  167. QSIGAU(5)= UN
  168. QSIGAU(7)=-UN
  169. QSIGAU(8)=-UN
  170. ETAGAU(1)=-UN
  171. ETAGAU(2)=-UN
  172. ETAGAU(3)=-UN
  173. ETAGAU(5)= UN
  174. ETAGAU(6)= UN
  175. ETAGAU(7)= UN
  176. UN2=UNDEMI
  177. IF(NNO.EQ.9) UN2=4.D0/9.D0
  178. DO 11 IA=1,NNO
  179. POIGAU(IA)=UN2
  180. 11 CONTINUE
  181. GOTO 666
  182. C
  183. C ELEMENT RACCORD 2 SURFACE=0 ( DEBRANCHE ! )
  184. C VOIR 2 CONTINUE
  185. C
  186. C 12 CONTINUE
  187. C QSIGAU(1)=-UN
  188. C QSIGAU(2)= UN
  189. C QSIGAU(3)= UN
  190. C QSIGAU(4)=-UN
  191. C ETAGAU(1)=-UN
  192. C ETAGAU(2)=-UN
  193. C ETAGAU(3)= UN
  194. C ETAGAU(4)= UN
  195. C POIGAU(1)= UN
  196. C POIGAU(2)= UN
  197. C POIGAU(3)= UN
  198. C POIGAU(4)= UN
  199. C GOTO 666
  200. C
  201. C ELEMENT RACCORD 3 SURFACE=0
  202. C
  203. 13 CONTINUE
  204. QSIGAU(1)=-UN
  205. QSIGAU(2)= XZERO
  206. QSIGAU(3)= UN
  207. QSIGAU(4)= UN
  208. QSIGAU(5)= XZERO
  209. QSIGAU(6)=-UN
  210. C
  211. ETAGAU(1)=-UN
  212. ETAGAU(2)=-UN
  213. ETAGAU(3)=-UN
  214. ETAGAU(4)= UN
  215. ETAGAU(5)= UN
  216. ETAGAU(6)= UN
  217. C
  218. POIGAU(1)= UN
  219. POIGAU(2)= UN
  220. POIGAU(3)= UN
  221. POIGAU(4)= UN
  222. POIGAU(5)= UN
  223. POIGAU(6)= UN
  224. GOTO 666
  225. C
  226. C ELEMENT CUBE VOLUME=8 8 NOEUDS
  227. C
  228. 14 CONTINUE
  229. QSIGAU(1)=-UN
  230. QSIGAU(2)= UN
  231. QSIGAU(3)= UN
  232. QSIGAU(4)=-UN
  233. QSIGAU(5)=-UN
  234. QSIGAU(6)= UN
  235. QSIGAU(7)= UN
  236. QSIGAU(8)=-UN
  237. ETAGAU(1)=-UN
  238. ETAGAU(2)=-UN
  239. ETAGAU(3)= UN
  240. ETAGAU(4)= UN
  241. ETAGAU(5)=-UN
  242. ETAGAU(6)=-UN
  243. ETAGAU(7)= UN
  244. ETAGAU(8)= UN
  245. DO 141 IA=1,4
  246. DZEGAU(IA )=-UN
  247. DZEGAU(IA+4)= UN
  248. POIGAU(IA )= UN
  249. POIGAU(IA+4)= UN
  250. 141 CONTINUE
  251. GOTO 666
  252. C
  253. C CUBE A 20 ou 27 NOEUDS VOLUME=8
  254. C
  255. 15 CONTINUE
  256. DO 151 IA=3,5
  257. QSIGAU(IA )= UN
  258. QSIGAU(IA+12)= UN
  259. 151 CONTINUE
  260. QSIGAU(10)= UN
  261. QSIGAU(11)= UN
  262. QSIGAU( 9)=-UN
  263. QSIGAU(12)=-UN
  264. QSIGAU( 1)=-UN
  265. QSIGAU( 8)=-UN
  266. QSIGAU( 7)=-UN
  267. QSIGAU(13)=-UN
  268. QSIGAU(20)=-UN
  269. QSIGAU(19)=-UN
  270. DO 152 IA=1,8
  271. DZEGAU(IA )=-UN
  272. DZEGAU(IA+12)= UN
  273. 152 CONTINUE
  274. DO 153 IA=1,3
  275. ETAGAU(IA )=-UN
  276. ETAGAU(IA+4 )= UN
  277. ETAGAU(IA+12)=-UN
  278. ETAGAU(IA+16)= UN
  279. 153 CONTINUE
  280. ETAGAU( 9)=-UN
  281. ETAGAU(10)=-UN
  282. ETAGAU(11)= UN
  283. ETAGAU(12)= UN
  284. *
  285. IF (NNO.EQ.27) THEN
  286. QSIGAU(21)=QSIGAU(2)
  287. ETAGAU(21)=ETAGAU(2)
  288. QSIGAU(22)=QSIGAU(4)
  289. ETAGAU(22)=ETAGAU(4)
  290. QSIGAU(23)=QSIGAU(6)
  291. ETAGAU(23)=ETAGAU(6)
  292. QSIGAU(24)=QSIGAU(8)
  293. ETAGAU(24)=ETAGAU(8)
  294. DZEGAU(25)=-UN
  295. DZEGAU(26)=UN
  296. * le 27eme noeud est l'origine
  297. ENDIF
  298. *
  299. XPOGA=.4D0
  300. IF (NNO.EQ.27) XPOGA=8.D0/27.D0
  301. DO 154 IA=1,NNO
  302. POIGAU(IA)=XPOGA
  303. 154 CONTINUE
  304. GOTO 666
  305. C
  306. C ELEMENT PRISME VOLUME=1 6 NOEUDS
  307. C
  308. 16 CONTINUE
  309. QSIGAU(2)= UN
  310. ETAGAU(3)= UN
  311. DZEGAU(1)=-UN
  312. DZEGAU(2)=-UN
  313. DZEGAU(3)=-UN
  314. QSIGAU(5)= UN
  315. ETAGAU(6)= UN
  316. DZEGAU(4)= UN
  317. DZEGAU(5)= UN
  318. DZEGAU(6)= UN
  319. DO 161 IA=1,6
  320. POIGAU(IA)=UNSIX
  321. 161 CONTINUE
  322. GOTO 666
  323. C
  324. C PRISME A 15 NOEUDS VOLUME=1
  325. C
  326. 17 CONTINUE
  327. DO 171 IA=1,6
  328. DZEGAU(IA )=-UN
  329. DZEGAU(IA+9)= UN
  330. 171 CONTINUE
  331. QSIGAU(8) =UN
  332. ETAGAU(9) =UN
  333. QSIGAU(2) =UNDEMI
  334. QSIGAU(4) =UNDEMI
  335. QSIGAU(11) =UNDEMI
  336. QSIGAU(13) =UNDEMI
  337. QSIGAU(3) =UN
  338. QSIGAU(8) =UN
  339. QSIGAU(12) =UN
  340. ETAGAU(4) =UNDEMI
  341. ETAGAU(6) =UNDEMI
  342. ETAGAU(13) =UNDEMI
  343. ETAGAU(15) =UNDEMI
  344. ETAGAU(5) =UN
  345. ETAGAU(9) =UN
  346. ETAGAU(14) =UN
  347. IF (NNO.EQ.21) THEN
  348. QSIGAU(16)=QSIGAU(2)
  349. ETAGAU(16)=ETAGAU(2)
  350. QSIGAU(17)=QSIGAU(4)
  351. ETAGAU(17)=ETAGAU(4)
  352. QSIGAU(18)=QSIGAU(6)
  353. ETAGAU(18)=ETAGAU(6)
  354. *
  355. DO IA=19,21
  356. QSIGAU(IA)=UNTIER
  357. ETAGAU(IA)=UNTIER
  358. ENDDO
  359. DZEGAU(19)=-UN
  360. DZEGAU(20)= UN
  361. ENDIF
  362. UN15=1.D0/15.D0
  363. IF (NNO.EQ.21) UN15=1.D0/21.D0
  364. DO 172 IA=1,NNO
  365. POIGAU(IA)=UN15
  366. 172 CONTINUE
  367. GOTO 666
  368. C
  369. C ELEMENT LIAISON 3 VOLUME=0
  370. C
  371. 18 CONTINUE
  372. QSIGAU(2)= UN
  373. ETAGAU(3)= UN
  374. DZEGAU(1)=-UN
  375. DZEGAU(2)=-UN
  376. DZEGAU(3)=-UN
  377. QSIGAU(5)= UN
  378. ETAGAU(6)= UN
  379. DZEGAU(4)= UN
  380. DZEGAU(5)= UN
  381. DZEGAU(6)= UN
  382. DO 181 IA=1,6
  383. POIGAU(IA)=UNSIX
  384. 181 CONTINUE
  385. GOTO 666
  386. C
  387. C ELEMENT LIAISON 4 VOLUME=0
  388. C
  389. C 19 CONTINUE
  390. C QSIGAU(1)=-UN
  391. C QSIGAU(2)= UN
  392. C QSIGAU(3)= UN
  393. C QSIGAU(4)=-UN
  394. C QSIGAU(5)=-UN
  395. C QSIGAU(6)= UN
  396. C QSIGAU(7)= UN
  397. C QSIGAU(8)=-UN
  398. C ETAGAU(1)=-UN
  399. C ETAGAU(2)=-UN
  400. C ETAGAU(3)= UN
  401. C ETAGAU(4)= UN
  402. C ETAGAU(5)=-UN
  403. C ETAGAU(6)=-UN
  404. C ETAGAU(7)= UN
  405. C ETAGAU(8)= UN
  406. C DO 191 IA=1,4
  407. C DZEGAU(IA )=-UN
  408. C DZEGAU(IA+4)= UN
  409. C POIGAU(IA )= UN
  410. C POIGAU(IA+4)= UN
  411. C 191 CONTINUE
  412. C GOTO 666
  413. C
  414. C ELEMENT TETRAEDRE VOLUME=1/3 4 NOEUDS
  415. C
  416. 23 CONTINUE
  417. QSIGAU(2)=UN
  418. ETAGAU(3)=UN
  419. DZEGAU(4)=UN
  420. POIGAU(1)=UNDOU
  421. POIGAU(2)=UNDOU
  422. POIGAU(3)=UNDOU
  423. POIGAU(4)=UNDOU
  424. GOTO 666
  425. C
  426. C ELEMENT TETRAEDRE VOLUME =1/3 10 ou 15 NOEUDS
  427. C
  428. 24 CONTINUE
  429. QSIGAU(2)=UNDEMI
  430. QSIGAU(4)=UNDEMI
  431. QSIGAU(8)=UNDEMI
  432. ETAGAU(4)=UNDEMI
  433. ETAGAU(6)=UNDEMI
  434. ETAGAU(9)=UNDEMI
  435. DZEGAU(7)=UNDEMI
  436. DZEGAU(8)=UNDEMI
  437. DZEGAU(9)=UNDEMI
  438. QSIGAU(3)=UN
  439. ETAGAU(5)=UN
  440. DZEGAU(10)=UN
  441. *
  442. IF (NNO.EQ.15) THEN
  443. QSIGAU(11)=UNTIER
  444. ETAGAU(11)=UNTIER
  445. QSIGAU(12)=UNTIER
  446. DZEGAU(12)=UNTIER
  447. QSIGAU(13)=UNTIER
  448. ETAGAU(13)=UNTIER
  449. DZEGAU(13)=UNTIER
  450. ETAGAU(14)=UNTIER
  451. DZEGAU(14)=UNTIER
  452. *
  453. QSIGAU(15)=UNQUAR
  454. ETAGAU(15)=UNQUAR
  455. DZEGAU(15)=UNQUAR
  456. ENDIF
  457. *
  458. UN30=1.D0/30.D0
  459. IF (NNO.EQ.15) UN30=1.D0/45.D0
  460. DO 241 IA=1,NNO
  461. POIGAU(IA)=UN30
  462. 241 CONTINUE
  463. GOTO 666
  464. C
  465. C ELEMENT PYRAMIDE VOLUME=2/3 5 NOEUDS
  466. C
  467. 25 CONTINUE
  468. QSIGAU(1)= UN
  469. QSIGAU(2)= XZERO
  470. QSIGAU(3)=-UN
  471. QSIGAU(4)= XZERO
  472. ETAGAU(1)= XZERO
  473. ETAGAU(2)= UN
  474. ETAGAU(3)= XZERO
  475. ETAGAU(4)=-UN
  476. DZEGAU(5)= UN
  477. UN215 =2.D0/15.D0
  478. DO 251 IA=1,5
  479. POIGAU(IA)=UN215
  480. 251 CONTINUE
  481. GOTO 666
  482. C
  483. C ELEMENT PYRAMIDE 13 NOEUDS VOLUME =2/3
  484. C
  485. 26 CONTINUE
  486. QSIGAU(1)= UN
  487. QSIGAU(2)= UNDEMI
  488. QSIGAU(3)= XZERO
  489. QSIGAU(4)=-UNDEMI
  490. QSIGAU(5)=-UN
  491. QSIGAU(6)=-UNDEMI
  492. QSIGAU(7)= XZERO
  493. QSIGAU(8)= UNDEMI
  494. QSIGAU(9)= UNDEMI
  495. QSIGAU(10)= XZERO
  496. QSIGAU(11)=-UNDEMI
  497. QSIGAU(12)= XZERO
  498. QSIGAU(13)= XZERO
  499. ETAGAU(1)= XZERO
  500. ETAGAU(2)= UNDEMI
  501. ETAGAU(3)= UN
  502. ETAGAU(4)= UNDEMI
  503. ETAGAU(5)= XZERO
  504. ETAGAU(6)=-UNDEMI
  505. ETAGAU(7)=-UN
  506. ETAGAU(8)=-UNDEMI
  507. ETAGAU(9)= XZERO
  508. ETAGAU(10)= UNDEMI
  509. ETAGAU(11)= XZERO
  510. ETAGAU(12)=-UNDEMI
  511. ETAGAU(13)= XZERO
  512. DO 261 IA=9,12
  513. DZEGAU(IA)=UNDEMI
  514. 261 CONTINUE
  515. DZEGAU(13)=UN
  516. *
  517. IF (NNO.EQ.19) THEN
  518. * 14 a l'origine
  519. QSIGAU(15)=QSIGAU(2)
  520. ETAGAU(15)=ETAGAU(2)
  521. QSIGAU(16)=QSIGAU(4)
  522. ETAGAU(16)=ETAGAU(4)
  523. QSIGAU(17)=QSIGAU(6)
  524. ETAGAU(17)=ETAGAU(6)
  525. QSIGAU(18)=QSIGAU(8)
  526. ETAGAU(18)=ETAGAU(8)
  527. DO IA=15,18
  528. DZEGAU(IA)=UNDEMI
  529. ENDDO
  530. DZEGAU(19)=UNQUAR
  531. ENDIF
  532. *
  533. UN239=2.D0/39.D0
  534. IF (NNO.EQ.19) UN239=2.D0/57.D0
  535. DO 262 IA=1,NNO
  536. POIGAU(IA)=UN239
  537. 262 CONTINUE
  538. GOTO 666
  539. C
  540. C POLYGONE A N COTES SURFACE = N * COS(XPI/N) * SIN(XPI/N)
  541. C
  542. 32 CONTINUE
  543. C
  544. DO 325 IA = 1, NNO
  545. C
  546. ALPHA = (2*IA - 1) * XPI / NNO
  547. C
  548. QSIGAU(IA) = COS(ALPHA)
  549. ETAGAU(IA) = SIN(ALPHA)
  550. C
  551. 325 CONTINUE
  552. GOTO 666
  553. C
  554. 96 CONTINUE
  555. C
  556. C ELEMENT TUYO LONGUEUR = 2
  557. C
  558. NTETA= NNO/2
  559. DO 961 IN=1,NTETA
  560. QSIGAU(IN)=-UN
  561. QSIGAU(IN+NTETA)= UN
  562. 961 CONTINUE
  563. *
  564. DTETA=2.D0*XPI/DBLE(NTETA)
  565. TETA=0.D0
  566. DO 962 IN=1,NTETA
  567. ETAGAU(IN)=TETA
  568. ETAGAU(IN+NTETA)=TETA
  569. TETA=TETA+DTETA
  570. 962 CONTINUE
  571. GOTO 666
  572.  
  573. *
  574. 666 CONTINUE
  575. C
  576. C MISE A UN DES POIDS DES POINTS
  577. C
  578. DO 200 IA=1,NNO
  579. POIGAU(IA)=UN
  580. 200 CONTINUE
  581. IF(IRET.EQ.0) SEGSUP MINTE
  582. IF(IRET.EQ.1) SEGDES MINTE
  583. RETURN
  584. END
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  

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