34 SUBROUTINE aniskew(ELBUF_TAB,SKEW,IPARG ,X ,IXT ,
35 . IXP ,IXR ,GEO ,DD_IAD,BUFL)
40 use element_mod ,
only : nixt,nixr,nixp
44#include "implicit_f.inc"
57 . x(3,*), skew(lskew,*), geo(npropg,*)
58 INTEGER IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),IPARG(NPARG,*),
59 . dd_iad(nspmd+1,*), bufl
61 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
65 INTEGER I,ISK(6),NEL,LFT,LLT,NG,
66 . ity,iad,mlw,nft,n,ii,len,iprop,igtyp,wa(bufl),jj,nuvar
68 . ex(9),s3000,x1,y1,z1,x2,y2,z2,s
70 TYPE(g_bufel_) ,
POINTER :: GBUF
79 isk(1)=nint(skew(1,i)*s3000)
80 isk(2)=nint(skew(2,i)*s3000)
81 isk(3)=nint(skew(3,i)*s3000)
82 isk(4)=nint(skew(4,i)*s3000)
83 isk(5)=nint(skew(5,i)*s3000)
84 isk(6)=nint(skew(6,i)*s3000)
102 gbuf => elbuf_tab(ng)%GBUF
110 x1=x(1,ixt(3,i))-x(1,ixt(2,i))
111 y1=x(2,ixt(3,i))-x(2,ixt(2,i))
112 z1=x(3,ixt(3,i))-x(3,ixt(2,i))
113 s=1./
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
127 s=s3000/sqrt(x2*x2+y2*y2+z2*z2)
128 wa(ii+1) = nint(x1*s3000)
129 wa(ii+2) = nint(y1*s3000)
130 wa(ii+3) = nint(z1*s3000)
131 wa(ii+4) = nint(x2*s)
132 wa(ii+5) = nint(y2*s)
133 wa(ii+6) = nint(z2*s)
144 x1=x(1,ixp(3,n))-x(1,ixp(2,n))
145 y1=x(2,ixp(3,n))-x(2,ixp(2,n))
146 z1=x(3,ixp(3,n))-x(3,ixp(2,n))
147 s=s3000/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
148 x2 = gbuf%SKEW(jj + 1)
149 y2 = gbuf%SKEW(jj + 2)
150 z2 = gbuf%SKEW(jj + 3)
151 wa(ii+1) = nint(x1*s)
152 wa(ii+2) = nint(y1*s)
153 wa(ii+3) = nint(z1*s)
154 wa(ii+4) = nint(x2*s3000)
155 wa(ii+5) = nint(y2*s3000)
156 wa(ii+6) = nint(z2*s3000)
164 igtyp = nint(geo(12,iprop))
165 IF(igtyp==4.OR.igtyp==26)
THEN
168 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
169 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
170 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
192 s=s3000/
max(em20,sqrt(s))
193 wa(ii+1) = nint(x1*s3000)
194 wa(ii+2) = nint(y1*s3000)
195 wa(ii+3) = nint(z1*s3000)
196 wa(ii+4) = nint(x2*s)
197 wa(ii+5) = nint(y2*s)
198 wa(ii+6) = nint(z2*s)
202 ELSEIF(igtyp==12)
THEN
205 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
206 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
207 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
208 s=1./
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
221 s=s3000/
max(em20,sqrt(x2*x2+y2*y2+z2*z2))
222 wa(ii+1) = nint(x1*s3000)
223 wa(ii+2) = nint(y1*s3000)
224 wa(ii+3) = nint(z1*s3000)
225 wa(ii+4) = nint(x2*s)
226 wa(ii+5) = nint(y2*s)
227 wa(ii+6) = nint(z2*s)
229 x1=x(1,ixr(4,n))-x(1,ixr(3,n))
230 y1=x(2,ixr(4,n))-x(2,ixr(3,n))
231 z1=x(3,ixr(4,n))-x(3,ixr(3,n))
232 s=one/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
245 s=s3000/
max(em20,sqrt(x2*x2+y2*y2+z2*z2))
246 wa(ii+1) = nint(x1*s3000)
247 wa(ii+2) = nint(y1*s3000)
248 wa(ii+3) = nint(z1*s3000)
249 wa(ii+4) = nint(x2*s)
250 wa(ii+5) = nint(y2*s)
251 wa(ii+6) = nint(z2*s)
256 ELSEIF(igtyp==13 .OR. igtyp == 23)
THEN
260 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
261 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
262 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
263 s=s3000/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
264 x2 = gbuf%SKEW(jj + 1)
265 y2 = gbuf%SKEW(jj + 2)
266 z2 = gbuf%SKEW(jj + 3)
267 wa(ii+1) = nint(x1*s)
268 wa(ii+2) = nint(y1*s)
269 wa(ii+3) = nint(z1*s)
270 wa(ii+4) = nint(x2*s3000)
271 wa(ii+5) = nint(y2*s3000)
272 wa(ii+6) = nint(z2*s3000)
276 ELSEIF(igtyp == 25)
THEN
280 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
281 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
282 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
283 s=s3000/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
284 x2 = gbuf%SKEW(jj + 1)
285 y2 = gbuf%SKEW(jj + 2)
286 z2 = gbuf%SKEW(jj + 3)
287 wa(ii+1) = nint(x1*s)
288 wa(ii+2) = nint(y1*s)
289 wa(ii+3) = nint(z1*s)
290 wa(ii+4) = nint(x2*s3000)
291 wa(ii+5) = nint(y2*s3000)
292 wa(ii+6) = nint(z2*s3000)
296 ELSEIF(igtyp>=29.AND.igtyp<=32)
THEN
300 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
301 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
302 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
303 s=s3000/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
304 x2 = gbuf%SKEW(jj + 1)
305 y2 = gbuf%SKEW(jj + 2)
306 z2 = gbuf%SKEW(jj + 3)
307 wa(ii+1) = nint(x1*s)
308 wa(ii+2) = nint(y1*s)
309 wa(ii+3) = nint(z1*s)
310 wa(ii+4) = nint(x2*s3000)
311 wa(ii+5) = nint(y2*s3000)
312 wa(ii+6) = nint(z2*s3000)
317 ELSEIF ((igtyp==33).OR.(igtyp==45))
THEN
318 nuvar = nint(geo(25,iprop))
322 ex(1) = gbuf%VAR(jj + 1)
323 ex(2) = gbuf%VAR(jj + 2)
324 ex(3) = gbuf%VAR(jj + 3)
325 ex(4) = gbuf%VAR(jj + 4)
326 ex(5) = gbuf%VAR(jj + 5)
327 ex(6) = gbuf%VAR(jj + 6)
328 wa(ii+1) = nint(ex(1)*s3000)
329 wa(ii+2) = nint(ex(2)*s3000)
330 wa(ii+3) = nint(ex(3)*s3000)
331 wa(ii+4) = nint(ex(4)*s3000)
332 wa(ii+5) = nint(ex(5)*s3000)
333 wa(ii+6) = nint(ex(6)*s3000)