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 :
© Cast3M 2003 - All rights reserved.
Disclaimer