Télécharger numnoe.eso

Retour à la liste

Numérotation des lignes :

numnoe
  1. C NUMNOE SOURCE CHAT 05/01/13 02:03:18 5004
  2. C
  3. SUBROUTINE NUMNOE(XYZ,ITYP,INOEU)
  4. C
  5. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  6. C
  7. C RECHERCHE SI LE POINT XYZ EST UN NOEUD DANS LES COORDONNEES
  8. C DE REFERENCE
  9. C DANS CE CAS CE PROGRAMME DONNE EGALEMENT LE NUMERO DU NOEUD
  10. C DE L'ELEMENT
  11. C INOEU=0 CE N EST PAS UN NOEUD
  12. C INOEU#0 C'EST LE NUMERO DU NOEUD
  13. C
  14. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  15. C
  16. IMPLICIT INTEGER(I-N)
  17. IMPLICIT REAL*8 (A-H,O-Z)
  18. C
  19. DIMENSION XYZ(3)
  20. C
  21. EPS=1.D-10
  22. C
  23. C ON CHERCHE SI ON A AFFAIRE A UN NOEUD DU MAILLAGE
  24. INOEU=0
  25. IF(ITYP.EQ.4.OR.ITYP.EQ.6.OR.ITYP.EQ.7)THEN
  26. C L ELEMENT DE REFERENCE EST UN TRIANGLE
  27. IF(ABS(XYZ(1)).LT.EPS)THEN
  28. IF(ABS(XYZ(2)).LT.EPS)THEN
  29. INOEU=1
  30. XYZ(1)=0.D0
  31. XYZ(2)=0.D0
  32. ELSE
  33. INOEU=3
  34. XYZ(1)=0.D0
  35. XYZ(2)=1.D0
  36. ENDIF
  37. ELSE
  38. INOEU=2
  39. XYZ(1)=1.D0
  40. XYZ(2)=0.D0
  41. ENDIF
  42. C
  43. ELSEIF(ITYP.EQ.8.OR.ITYP.EQ.11)THEN
  44. C L ELEMENT DE REFERENCE EST UN CARRE
  45. IF(ABS(1.D0+XYZ(1)).LT.EPS)THEN
  46. IF(ABS(1.D0+XYZ(2)).LT.EPS)THEN
  47. INOEU=1
  48. XYZ(1)=-1.D0
  49. XYZ(2)=-1.D0
  50. ELSE
  51. INOEU=4
  52. XYZ(1)=-1.D0
  53. XYZ(2)=1.D0
  54. ENDIF
  55. ELSE
  56. IF(ABS(1.D0+XYZ(2)).LT.EPS)THEN
  57. INOEU=2
  58. XYZ(1)=1.D0
  59. XYZ(2)=-1.D0
  60. ELSE
  61. INOEU=3
  62. XYZ(1)=1.D0
  63. XYZ(2)=1.D0
  64. ENDIF
  65. ENDIF
  66. C
  67. ELSEIF(ITYP.EQ.16)THEN
  68. C L ELEMENT DE REFERENCE EST UN PRISME
  69. IF((ABS(XYZ(3)+1.D0).LT.EPS))THEN
  70. IF(ABS(XYZ(1)).LT.EPS)THEN
  71. IF(ABS(XYZ(2)).LT.EPS)THEN
  72. INOEU=1
  73. XYZ(1)=0.D0
  74. XYZ(2)=0.D0
  75. XYZ(3)=-1.D0
  76. ELSE
  77. INOEU=3
  78. XYZ(1)=0.D0
  79. XYZ(2)=1.D0
  80. XYZ(3)=-1.D0
  81. ENDIF
  82. ELSE
  83. INOEU=2
  84. XYZ(1)=1.D0
  85. XYZ(2)=0.D0
  86. XYZ(3)=-1.D0
  87. ENDIF
  88. ELSE
  89. IF(ABS(XYZ(1)).LT.EPS)THEN
  90. IF(ABS(XYZ(2)).LT.EPS)THEN
  91. INOEU=4
  92. XYZ(1)=0.D0
  93. XYZ(2)=0.D0
  94. XYZ(3)=1.D0
  95. ELSE
  96. INOEU=6
  97. XYZ(1)=0.D0
  98. XYZ(2)=1.D0
  99. XYZ(3)=1.D0
  100. ENDIF
  101. ELSE
  102. INOEU=5
  103. XYZ(1)=1.D0
  104. XYZ(2)=0.D0
  105. XYZ(3)=1.D0
  106. ENDIF
  107. ENDIF
  108. C
  109. C
  110. ELSEIF(ITYP.EQ.14)THEN
  111. C L ELEMENT DE REFERENCE EST UN CUBE
  112. IF(ABS(1.D0+XYZ(3)).LT.EPS)THEN
  113. C
  114. IF(ABS(1.D0+XYZ(1)).LT.EPS)THEN
  115. IF(ABS(1.D0+XYZ(2)).LT.EPS)THEN
  116. INOEU=1
  117. XYZ(1)=-1.D0
  118. XYZ(2)=-1.D0
  119. XYZ(3)=-1.D0
  120. ELSE
  121. INOEU=4
  122. XYZ(1)=-1.D0
  123. XYZ(2)=1.D0
  124. XYZ(3)=-1.D0
  125. ENDIF
  126. ELSE
  127. IF(ABS(1.D0+XYZ(2)).LT.EPS)THEN
  128. INOEU=2
  129. XYZ(1)=1.D0
  130. XYZ(2)=-1.D0
  131. XYZ(3)=-1.D0
  132. ELSE
  133. INOEU=3
  134. XYZ(1)=1.D0
  135. XYZ(2)=1.D0
  136. XYZ(3)=-1.D0
  137. ENDIF
  138. ENDIF
  139. C
  140. ELSE
  141. C
  142. IF(ABS(1.D0+XYZ(1)).LT.EPS)THEN
  143. IF(ABS(1.D0+XYZ(2)).LT.EPS)THEN
  144. INOEU=5
  145. XYZ(1)=-1.D0
  146. XYZ(2)=-1.D0
  147. XYZ(3)=1.D0
  148. ELSE
  149. INOEU=8
  150. XYZ(1)=-1.D0
  151. XYZ(2)=1.D0
  152. XYZ(3)=1.D0
  153. ENDIF
  154. ELSE
  155. IF(ABS(1.D0+XYZ(2)).LT.EPS)THEN
  156. INOEU=6
  157. XYZ(1)=1.D0
  158. XYZ(2)=-1.D0
  159. XYZ(3)=1.D0
  160. ELSE
  161. INOEU=7
  162. XYZ(1)=1.D0
  163. XYZ(2)=1.D0
  164. XYZ(3)=1.D0
  165. ENDIF
  166. ENDIF
  167. ENDIF
  168.  
  169. C
  170. ELSEIF(ITYP.EQ.23)THEN
  171. C L ELEMENT DE REFERENCE EST UN TETRAEDRE
  172. IF(ABS(XYZ(3)).LT.EPS)THEN
  173. IF(ABS(XYZ(1)).LT.EPS)THEN
  174. IF(ABS(XYZ(2)).LT.EPS)THEN
  175. INOEU=1
  176. XYZ(1)=0.D0
  177. XYZ(2)=0.D0
  178. XYZ(3)=0.D0
  179. ELSE
  180. INOEU=3
  181. XYZ(1)=0.D0
  182. XYZ(2)=1.D0
  183. XYZ(3)=0.D0
  184. ENDIF
  185. ELSE
  186. INOEU=2
  187. XYZ(1)=1.D0
  188. XYZ(2)=0.D0
  189. XYZ(3)=0.D0
  190. ENDIF
  191. ELSE
  192. INOEU=4
  193. XYZ(1)=0.D0
  194. XYZ(2)=0.D0
  195. XYZ(3)=1.D0
  196. ENDIF
  197. C
  198. ENDIF
  199. RETURN
  200. END
  201.  
  202.  
  203.  
  204.  

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