30 SUBROUTINE aniskew(ELBUF_TAB,SKEW ,IPARG ,X , IXT,
31 . IXP ,IXR ,GEO ,BUFL)
39#include "implicit_f.inc"
50 . x(3,*), skew(lskew,*), geo
51 INTEGER IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),IPARG(NPARG,*),
54 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
58 INTEGER I,J,ISK(6),JJ,NEL,LFT,LLT,NG,
59 . ity,mlw,nft,n,ii,len,iprop
61 . ex(9),s3000,x1,y1,z1,x2,y2,z2,s
63 TYPE(g_bufel_) ,
POINTER :: GBUF
70 isk(1)=nint(skew(1,i)*s3000)
71 isk(2)=nint(skew(2,i)*s3000)
72 isk(3)=nint(skew(3,i)*s3000)
73 isk(4)=nint(skew(4,i)*s3000)
74 isk(5)=nint(skew(5,i)*s3000)
75 isk(6)=nint(skew(6,i)*s3000)
89 gbuf => elbuf_tab(ng)%GBUF
96 x1=x(1,ixt(3,i))-x(1,ixt(2,i))
97 y1=x(2,ixt(3,i))-x(2,ixt(2,i))
98 z1=x(3,ixt(3,i))-x(3,ixt(2,i))
99 s=one/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
104 IF (abs(z1) < half)
THEN
113 s=s3000/sqrt(x2*x2+y2*y2+z2*z2)
114 isk(1)=nint(x1*s3000)
115 isk(2)=nint(y1*s3000)
116 isk(3)=nint(z1*s3000)
125 ELSEIF (ity == 5)
THEN
129 x1=x(1,ixp(3,n))-x(1,ixp(2,n))
130 y1=x(2,ixp(3,n))-x(2,ixp(2,n))
131 z1=x(3,ixp(3,n))-x(3,ixp(2,n))
132 s=s3000/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
133 x2 = gbuf%SKEW(jj + 1)
134 y2 = gbuf%SKEW(jj + 2)
135 z2 = gbuf%SKEW(jj + 3)
142 isk(4)=nint(x2*s3000)
143 isk(5)=nint(y2*s3000)
144 isk(6)=nint(z2*s3000)
150 ELSEIF (ity == 6)
THEN
152 igtyp = nint(geo(12,iprop))
157 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
158 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
159 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
171 IF (abs(z1) < half)
THEN
181 s=s3000/
max(em20,sqrt(s))
182 isk(1)=nint(x1*s3000)
183 isk(2)=nint(y1*s3000)
184 isk(3)=nint(z1*s3000)
191 ELSEIF (igtyp == 12)
THEN
194 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
195 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
196 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
197 s=one/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
201 IF (abs(z1) < half)
THEN
210 s=s3000/
max(em20,sqrt(x2*x2+y2*y2+z2*z2))
211 isk(1)=nint(x1*s3000)
212 isk(2)=nint(y1*s3000)
213 isk(3)=nint(z1*s3000)
218 x1=x(1,ixr(4,n))-x(1,ixr(3,n))
219 y1=x(2,ixr(4,n))-x(2,ixr(3,n))
220 z1=x(3,ixr(4,n))-x(3,ixr(3,n))
221 s=one/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
234 s=s3000/
max(em20,sqrt(x2*x2+y2*y2+z2*z2))
236 isk(2)=nint(y1*s3000)
237 isk(3)=nint(z1*s3000)
244 ELSEIF (igtyp == 13 .OR. igtyp == 23)
THEN
248 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
249 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
250 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
251 s=s3000/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
252 x2 = gbuf%SKEW(jj + 1)
253 y2 = gbuf%SKEW(jj + 2)
254 z2 = gbuf%SKEW(jj + 3)
261 isk(4)=nint(x2*s3000)
262 isk(5)=nint(y2*s3000)
263 isk(6)=nint(z2*s3000)
266 ELSEIF (igtyp == 25)
THEN
271 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
272 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
273 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
275 x2 = gbuf%SKEW(jj + 1)
276 y2 = gbuf%SKEW(jj + 2)
277 z2 = gbuf%SKEW(jj + 3)
284 isk(4)=nint(x2*s3000)
285 isk(5)=nint(y2*s3000)
286 isk(6)=nint(z2*s3000)
290 ELSEIF (igtyp >= 29 .AND. igtyp <= 32)
THEN
295 x1=x(1,ixr(3,n))-x(1,ixr(2,n))
296 y1=x(2,ixr(3,n))-x(2,ixr(2,n))
297 z1=x(3,ixr(3,n))-x(3,ixr(2,n))
298 s=s3000/
max(em20,sqrt(x1*x1+y1*y1+z1*z1))
299 x2 = gbuf%SKEW(jj + 1)
300 y2 = gbuf%SKEW(jj + 2)
301 z2 = gbuf%SKEW(jj + 3)
308 isk(4)=nint(x2*s3000)
309 isk(5)=nint(y2*s3000)
310 isk(6)=nint(z2*s3000)
314 ELSEIF (igtyp == 33 .OR. igtyp == 45)
THEN
318 ex(1) = gbuf%VAR(jj + 1)
319 ex(2) = gbuf%VAR(jj + 2)
320 ex(3) = gbuf%VAR(jj + 3)
321 ex(4) = gbuf%VAR(jj + 4)
322 ex(5) = gbuf%VAR(jj + 5)
323 ex(6) = gbuf%VAR(jj + 6)
330 isk(1)=nint(ex(1)*s3000)
331 isk(2)=nint(ex(2)*s3000)
332 isk(3)=nint(ex(3)*s3000)
333 isk(4)=nint(ex(4)*s3000)
334 isk(5)=nint(ex(5)*s3000)
335 isk(6)=nint(ex(6)*s3000)