Télécharger testno.eso

Retour à la liste

Numérotation des lignes :

testno
  1. C TESTNO SOURCE CHAT 05/01/13 03:36:35 5004
  2. SUBROUTINE TESTNO(EPSILO,ITYG,XREF,INOEUD)
  3. ************************************************************************
  4. *** SP 'TESTNO' : en coordonnees de reference, teste un pt par rapport
  5. *** à un element pour savoir s'il appartient à l'un de ses noeuds à
  6. *** 'EPSILO' près (erreur acceptable % noeud).
  7. ***
  8. *** APPELES 1 = aucun
  9. *** APPELES 2 = aucun
  10. ***
  11. *** E = 'EPSILO' erreur de précision de calcul (calibrage) acceptable
  12. *** 'ITYG' entier caracterisant la géométrie de l'élément
  13. *** 'XREF' coordonnées reference du pt considéré
  14. ***
  15. *** S = 'INOEUD' vaut n° local du noeud où se trouve le pt, 0 sinon
  16. ***
  17. *** ORIGINE = PATRICK, MODIFICATION = CYRIL, TEST = OK !!!
  18. ************************************************************************
  19. IMPLICIT INTEGER(I-N)
  20. IMPLICIT REAL*8 (A-H,O-Z)
  21. DIMENSION XREF(3)
  22. INOEUD=0
  23. *** element de reference est un triangle TRI3
  24. IF (ITYG.EQ.4) THEN
  25. IF (ABS(XREF(1)).LT.EPSILO) THEN
  26. IF (ABS(XREF(2)).LT.EPSILO) THEN
  27. INOEUD=1
  28. XREF(1)=0.D0
  29. XREF(2)=0.D0
  30. ELSEIF (ABS(1.D0-XREF(2)).LT.EPSILO) THEN
  31. INOEUD=3
  32. XREF(1)=0.D0
  33. XREF(2)=1.D0
  34. ENDIF
  35. ELSEIF (ABS(1.D0-XREF(1)).LT.EPSILO) THEN
  36. IF (ABS(XREF(2)).LT.EPSILO) THEN
  37. INOEUD=2
  38. XREF(1)=1.D0
  39. XREF(2)=0.D0
  40. ENDIF
  41. ENDIF
  42. *** element de reference est un carre QUA4
  43. ELSEIF (ITYG.EQ.8) THEN
  44. IF (ABS(1.D0+XREF(1)).LT.EPSILO) THEN
  45. IF (ABS(1.D0+XREF(2)).LT.EPSILO) THEN
  46. INOEUD=1
  47. XREF(1)=-1.D0
  48. XREF(2)=-1.D0
  49. ELSEIF (ABS(1.D0-XREF(2)).LT.EPSILO) THEN
  50. INOEUD=4
  51. XREF(1)=-1.D0
  52. XREF(2)=1.D0
  53. ENDIF
  54. ELSEIF (ABS(1.D0-XREF(1)).LT.EPSILO) THEN
  55. IF (ABS(1.D0+XREF(2)).LT.EPSILO) THEN
  56. INOEUD=2
  57. XREF(1)=1.D0
  58. XREF(2)=-1.D0
  59. ELSEIF (ABS(1.D0-XREF(2)).LT.EPSILO) THEN
  60. INOEUD=3
  61. XREF(1)=1.D0
  62. XREF(2)=1.D0
  63. ENDIF
  64. ENDIF
  65. *** element de reference est un cube CUB8
  66. ELSEIF (ITYG.EQ.14) THEN
  67. IF (ABS(1.D0+XREF(3)).LT.EPSILO) THEN
  68. IF (ABS(1.D0+XREF(1)).LT.EPSILO) THEN
  69. IF (ABS(1.D0+XREF(2)).LT.EPSILO) THEN
  70. INOEUD=1
  71. XREF(1)=-1.D0
  72. XREF(2)=-1.D0
  73. XREF(3)=-1.D0
  74. ELSEIF (ABS(1.D0-XREF(2)).LT.EPSILO) THEN
  75. INOEUD=4
  76. XREF(1)=-1.D0
  77. XREF(2)=1.D0
  78. XREF(3)=-1.D0
  79. ENDIF
  80. ELSEIF (ABS(1.D0-XREF(1)).LT.EPSILO) THEN
  81. IF (ABS(1.D0+XREF(2)).LT.EPSILO) THEN
  82. INOEUD=2
  83. XREF(1)=1.D0
  84. XREF(2)=-1.D0
  85. XREF(3)=-1.D0
  86. ELSEIF (ABS(1.D0-XREF(2)).LT.EPSILO) THEN
  87. INOEUD=3
  88. XREF(1)=1.D0
  89. XREF(2)=1.D0
  90. XREF(3)=-1.D0
  91. ENDIF
  92. ENDIF
  93. ELSEIF (ABS(1.D0-XREF(3)).LT.EPSILO) THEN
  94. IF (ABS(1.D0+XREF(1)).LT.EPSILO) THEN
  95. IF (ABS(1.D0+XREF(2)).LT.EPSILO) THEN
  96. INOEUD=5
  97. XREF(1)=-1.D0
  98. XREF(2)=-1.D0
  99. XREF(3)=1.D0
  100. ELSEIF (ABS(1.D0-XREF(2)).LT.EPSILO) THEN
  101. INOEUD=8
  102. XREF(1)=-1.D0
  103. XREF(2)=1.D0
  104. XREF(3)=1.D0
  105. ENDIF
  106. ELSEIF (ABS(1.D0-XREF(1)).LT.EPSILO) THEN
  107. IF (ABS(1.D0+XREF(2)).LT.EPSILO) THEN
  108. INOEUD=6
  109. XREF(1)=1.D0
  110. XREF(2)=-1.D0
  111. XREF(3)=1.D0
  112. ELSEIF (ABS(1.D0-XREF(2)).LT.EPSILO) THEN
  113. INOEUD=7
  114. XREF(1)=1.D0
  115. XREF(2)=1.D0
  116. XREF(3)=1.D0
  117. ENDIF
  118. ENDIF
  119. ENDIF
  120. *** element de reference est un prisme PRI6
  121. ELSEIF (ITYG.EQ.16) THEN
  122. IF ((ABS(XREF(3)+1.D0).LT.EPSILO)) THEN
  123. IF (ABS(XREF(1)).LT.EPSILO) THEN
  124. IF (ABS(XREF(2)).LT.EPSILO) THEN
  125. INOEUD=1
  126. XREF(1)=0.D0
  127. XREF(2)=0.D0
  128. XREF(3)=-1.D0
  129. ELSEIF (ABS(1.D0-XREF(2)).LT.EPSILO) THEN
  130. INOEUD=3
  131. XREF(1)=0.D0
  132. XREF(2)=1.D0
  133. XREF(3)=-1.D0
  134. ENDIF
  135. ELSEIF (ABS(1.D0-XREF(1)).LT.EPSILO) THEN
  136. IF (ABS(XREF(2)).LT.EPSILO) THEN
  137. INOEUD=2
  138. XREF(1)=1.D0
  139. XREF(2)=0.D0
  140. XREF(3)=-1.D0
  141. ENDIF
  142. ENDIF
  143. ELSEIF (ABS(1.D0-XREF(3)).LT.EPSILO) THEN
  144. IF (ABS(XREF(1)).LT.EPSILO) THEN
  145. IF (ABS(XREF(2)).LT.EPSILO) THEN
  146. INOEUD=4
  147. XREF(1)=0.D0
  148. XREF(2)=0.D0
  149. XREF(3)=1.D0
  150. ELSEIF (ABS(1.D0-XREF(2)).LT.EPSILO) THEN
  151. INOEUD=6
  152. XREF(1)=0.D0
  153. XREF(2)=1.D0
  154. XREF(3)=1.D0
  155. ENDIF
  156. ELSEIF (ABS(1.D0-XREF(1)).LT.EPSILO) THEN
  157. IF (ABS(XREF(2)).LT.EPSILO) THEN
  158. INOEUD=5
  159. XREF(1)=1.D0
  160. XREF(2)=0.D0
  161. XREF(3)=1.D0
  162. ENDIF
  163. ENDIF
  164. ENDIF
  165. *** element de reference est un tetraedre TET4
  166. ELSEIF (ITYG.EQ.23) THEN
  167. IF (ABS(XREF(3)).LT.EPSILO) THEN
  168. IF (ABS(XREF(1)).LT.EPSILO) THEN
  169. IF (ABS(XREF(2)).LT.EPSILO) THEN
  170. INOEUD=1
  171. XREF(1)=0.D0
  172. XREF(2)=0.D0
  173. XREF(3)=0.D0
  174. ELSEIF (ABS(1.D0-XREF(2)).LT.EPSILO) THEN
  175. INOEUD=3
  176. XREF(1)=0.D0
  177. XREF(2)=1.D0
  178. XREF(3)=0.D0
  179. ENDIF
  180. ELSEIF (ABS(1.D0-XREF(1)).LT.EPSILO) THEN
  181. IF (ABS(XREF(2)).LT.EPSILO) THEN
  182. INOEUD=2
  183. XREF(1)=1.D0
  184. XREF(2)=0.D0
  185. XREF(3)=0.D0
  186. ENDIF
  187. ENDIF
  188. ELSEIF (ABS(1.D0-XREF(3)).LT.EPSILO) THEN
  189. IF (ABS(XREF(1)).LT.EPSILO) THEN
  190. IF (ABS(XREF(2)).LT.EPSILO) THEN
  191. INOEUD=4
  192. XREF(1)=0.D0
  193. XREF(2)=0.D0
  194. XREF(3)=1.D0
  195. ENDIF
  196. ENDIF
  197. ENDIF
  198. ENDIF
  199. RETURN
  200. END
  201.  
  202.  
  203.  
  204.  

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