33 SUBROUTINE aniskew(ELBUF_TAB,SKEW,IPARG ,X ,IXT ,
34 . IXP ,IXR ,GEO ,DD_IAD,BUFL)
42#include "implicit_f.inc"
55 . x(3,*), skew(lskew,*), geo(npropg,*)
56 INTEGER IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),IPARG(NPARG,*),
57 . dd_iad(nspmd+1,*), bufl
59 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
63 INTEGER I, J,ISK(6),NEL,NEL3,OFFSET,LFT,LLT,NG,
64 . ity,iad,mlw,nft,n,ii,len,iprop,igtyp,wa(bufl),jj,nuvar
66 . ex(9),s3000,x1,y1,z1,x2,y2,z2,s
68 TYPE(g_bufel_) ,
POINTER :: GBUF
77 isk(1)=nint(skew(1,i)*s3000)
78 isk(2)=nint(skew(2,i)*s3000)
79 isk(3)=nint(skew(3,i)*s3000)
80 isk(4)=nint(skew(4,i)*s3000)
81 isk(5)=nint(skew(5,i)*s3000)
82 isk(6)=nint(skew(6,i)*s3000)
100 gbuf => elbuf_tab(ng)%GBUF
108 x1=x(1,ixt(3,i))-x(1,ixt(2,i))
109 y1=x(2,ixt(3,i))-x(2,ixt(2,i))
110 z1=x(3,ixt(3,i))-x(3,ixt(2,i))
111 s=1./
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
125 s=s3000/sqrt(x2*x2+y2*y2+z2*z2)
126 wa(ii+1) = nint(x1*s3000)
127 wa(ii+2) = nint(y1*s3000)
128 wa(ii+3) = nint(z1*s3000)
129 wa(ii+4) = nint(x2*s)
130 wa(ii+5) = nint(y2*s)
131 wa(ii+6) = nint(z2*s)
142 x1=x(1,ixp(3,n))-x(1,ixp
143 y1=x(2,ixp(3,n))-x(2,ixp(2,n))
145 s=s3000/
max(em20,sqrt(x1*x1+y1*y1+z1
148 z2 = gbuf%SKEW(jj + 3)
150 wa(ii+2) = nint(y1*s)
151 wa(ii+3) = nint(z1*s)
152 wa(ii+4) = nint(x2*s3000)
153 wa(ii+5) = nint(y2*s3000)
154 wa(ii+6) = nint(z2*s3000)
162 igtyp = nint(geo(12,iprop))
163 IF(igtyp==4.OR.igtyp==26)
THEN
166 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
167 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
168 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
190 s=s3000/
max(em20,sqrt(s))
191 wa(ii+1) = nint(x1*s3000)
192 wa(ii+2) = nint(y1*s3000)
193 wa(ii+3) = nint(z1*s3000)
194 wa(ii+4) = nint(x2*s)
196 wa(ii+6) = nint(z2*s)
200 ELSEIF(igtyp==12)
THEN
203 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
204 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
205 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
206 s=1./
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
219 s=s3000/
max(em20,sqrt(x2*x2+y2*y2+z2*z2))
220 wa(ii+1) = nint(x1*s3000)
221 wa(ii+2) = nint(y1*s3000)
222 wa(ii+3) = nint(z1*s3000)
223 wa(ii+4) = nint(x2*s)
224 wa(ii+5) = nint(y2*s)
225 wa(ii+6) = nint(z2*s)
227 x1=x(1,ixr(4,n))-x(1,ixr(3,n))
228 y1=x(2,ixr(4,n))-x(2,ixr(3,n))
229 z1=x(3,ixr(4,n))-x(3,ixr(3,n))
230 s=one/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
243 s=s3000/
max(em20,sqrt(x2*x2+y2*y2+z2*z2))
244 wa(ii+1) = nint(x1*s3000)
245 wa(ii+2) = nint(y1*s3000)
246 wa(ii+3) = nint(z1*s3000)
247 wa(ii+4) = nint(x2*s)
248 wa(ii+5) = nint(y2*s)
249 wa(ii+6) = nint(z2*s)
254 ELSEIF(igtyp==13 .OR. igtyp == 23)
THEN
258 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
259 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
260 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
261 s=s3000/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
262 x2 = gbuf%SKEW(jj + 1)
263 y2 = gbuf%SKEW(jj + 2)
264 z2 = gbuf%SKEW(jj + 3)
265 wa(ii+1) = nint(x1*s)
266 wa(ii+2) = nint(y1*s)
267 wa(ii+3) = nint(z1*s)
268 wa(ii+4) = nint(x2*s3000)
269 wa(ii+5) = nint(y2*s3000)
274 ELSEIF(igtyp == 25)
THEN
278 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
279 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
280 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
281 s=s3000/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
282 x2 = gbuf%SKEW(jj + 1)
283 y2 = gbuf%SKEW(jj + 2)
284 z2 = gbuf%SKEW(jj + 3)
285 wa(ii+1) = nint(x1*s)
286 wa(ii+2) = nint(y1*s)
287 wa(ii+3) = nint(z1*s)
288 wa(ii+4) = nint(x2*s3000)
289 wa(ii+5) = nint(y2*s3000)
290 wa(ii+6) = nint(z2*s3000)
294 ELSEIF(igtyp>=29.AND.igtyp<=32)
THEN
298 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
299 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
300 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
301 s=s3000/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
302 x2 = gbuf%SKEW(jj + 1)
303 y2 = gbuf%SKEW(jj + 2)
304 z2 = gbuf%SKEW(jj + 3)
305 wa(ii+1) = nint(x1*s)
306 wa(ii+2) = nint(y1*s)
307 wa(ii+3) = nint(z1*s)
308 wa(ii+4) = nint(x2*s3000)
309 wa(ii+5) = nint(y2*s3000)
310 wa(ii+6) = nint(z2*s3000)
315 ELSEIF ((igtyp==33).OR.(igtyp==45))
THEN
316 nuvar = nint(geo(25,iprop))
320 ex(1) = gbuf%VAR(jj + 1)
321 ex(2) = gbuf%VAR(jj + 2)
322 ex(3) = gbuf%VAR(jj + 3)
323 ex(4) = gbuf%VAR(jj + 4)
324 ex(5) = gbuf%VAR(jj + 5)
325 ex(6) = gbuf%VAR(jj + 6)
326 wa(ii+1) = nint(ex(1)*s3000)
328 wa(ii+3) = nint(ex(3)*s3000)
329 wa(ii+4) = nint(ex(4)*s3000)
330 wa(ii+5) = nint(ex(5)*s3000)
331 wa(ii+6) = nint(ex(6)*s3000)