Télécharger donoeu.eso

Retour à la liste

Numérotation des lignes :

  1. C DONOEU SOURCE CB215821 19/08/20 21:16:44 10287
  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. END
  583.  
  584.  
  585.  

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