Download testno.eso

Back to the list

   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 :  

© Cast3M 2003 - All rights reserved.
Disclaimer