34 1 DELTAX, VOLG, IXS, X1,
41 8 TAGPRT_SMS, TAGELEM_SMS,NEL)
45#include "implicit_f.inc"
53 INTEGER,
INTENT(IN) ::
54 INTEGER (NIXS,*), IPARTS(*), TAGPRT_SMS(*), TAGELEM_SMS(*)
58 . X1(*), X2(*), X3(*), X4(*), X5(*), X6(*), X7(*), X8(*),
59 . Y1(*), Y2(*), Y3(*), Y4(*), Y5(*), Y6(*), Y7(*), Y8(*),
60 . Z1(*), Z2(*), Z3(*), Z4(*), Z5(*), Z6(*), Z7(*), Z8(*)
69 INTEGER I, J, IT, IPT, IDEGE(MVSIZ), NINDX, NJNDX,
70 . INDEX(MVSIZ), JNDEX(MVSIZ)
73 . AJ11, AJ12, AJ13, AJ21,
74 . AJ22, AJ23, AJ31, AJ32,
75 . AJ33, AI11, AI12, AI13,
76 . AI21, AI22, AI23, AI31,
80 . x12(mvsiz), x34(mvsiz), x56(mvsiz),
81 . x78(mvsiz), y12(mvsiz), y34(mvsiz), y56(mvsiz), y78(mvsiz),
82 . z12(mvsiz), z34(mvsiz), z56(mvsiz), z78(mvsiz), x14(mvsiz),
83 . x23(mvsiz), x58(mvsiz), x67(mvsiz), y14(mvsiz), y23(mvsiz),
84 . y58(mvsiz), y67(mvsiz), z14(mvsiz), z23(mvsiz), z58(mvsiz),
85 . z67(mvsiz), x15(mvsiz), x26(mvsiz
86 . y15(mvsiz), y26(mvsiz), y37(mvsiz), y48(mvsiz), z15(mvsiz),
87 . z26(mvsiz), z37(mvsiz), z48(mvsiz), h(8), vlinv,
88 . xx1,yy1,zz1,xx2,yy2,zz2,xx3,yy3,zz3,smax(mvsiz),vmin,
91 . aream(mvsiz), fac, v_g
97 IF (isms_selec==1)
THEN
103 ELSEIF (isms_selec==2)
THEN
106 IF(tagprt_sms(iparts(i))==0)
THEN
114 ELSEIF (isms_selec==3)
THEN
117 IF(tagelem_sms(i)==0)
THEN
125 ELSEIF (isms_selec==4)
THEN
128 IF ((tagelem_sms(i)==0).AND.(tagprt_sms(iparts(i))==0))
THEN
152 CALL idege8(x1(i),x2(i),x3(i),x4(i),y1(i),y2(i),y3(i),y4(i),
153 . z1(i),z2(i),z3(i),z4(i),aream(i),fac,it)
154 CALL idege8(x5(i),x6(i),x7(i),x8(i),y5(i),y6(i),y7(i),y8(i),
155 . z5(i),z6(i),z7(i),z8(i),aream(i),fac,it)
156 CALL idege8(x1(i),x2(i),x6(i),x5(i),y1(i),y2(i),y6(i),y5(i),
157 . z1(i),z2(i),z6(i),z5(i),aream(i),fac,it)
158 CALL idege8(x2(i),x3(i),x7(i),x6(i),y2(i),y3(i),y7(i),y6(i),
159 . z2(i),z3(i),z7(i),z6(i),aream(i),fac,it)
160 CALL idege8(x3(i),x4(i),x8(i),x7(i),y3(i),y4(i),y8(i),y7(i),
161 . z3(i),z4(i),z8(i),z7(i),aream(i),fac,it)
162 CALL idege8(x4(i),x1(i),x5(i),x8(i),y4(i),y1(i),y5(i),y8(i),
163 . z4(i),z1(i),z5(i),z8(i),aream(i),fac,it)
167 IF (idege(i) > 2)
THEN
169 ELSEIF (idege(i) > 1)
THEN
175 IF (it ==0 ) aream(i)=fac*aream(i)
177 IF (idege(i) > 3 )
THEN
178 aream(i)=aream(i)*fac
180 . x1(i), x2(i), x3(i), x4(i), x5(i), x6(i), x7(i), x8(i),
181 . y1(i), y2(i), y3(i), y4(i), y5(i), y6(i), y7(i), y8(i),
182 . z1(i), z2(i), z3(i), z4(i), z5(i), z6(i), z7(i), z8(i))
188 deltax(i)=four*volg(i)/sqrt(aream(i))
199 IF (idege(i) > 2)
THEN
201 ELSEIF (idege(i) > 1)
THEN
207 CALL idege8(x1(i),x2(i),x3(i),x4(i),y1(i),y2(i),y3(i),y4(i),
208 . z1(i),z2(i),z3(i),z4(i),aream(i),fac,it)
209 CALL idege8(x5(i),x6(i),x7(i),x8(i),y5(i),y6(i),y7(i),y8(i),
210 . z5(i),z6(i),z7(i),z8(i),aream(i),fac,it)
211 CALL idege8(x1(i),x2(i),x6(i),x5(i),y1(i),y2(i),y6(i),y5(i),
212 . z1(i),z2(i),z6(i),z5(i),aream(i),fac,it)
213 CALL idege8(x2(i),x3(i),x7(i),x6(i),y2(i),y3(i),y7(i),y6(i),
215 CALL idege8(x3(i),x4(i),x8(i),x7(i),y3(i),y4(i),y8(i),y7(i),
216 . z3(i),z4(i),z8(i),z7(i),aream(i),fac,it)
217 CALL idege8(x4(i),x1(i),x5(i),x8(i),y4(i),y1(i),y5(i),y8(i),
218 . z4(i),z1(i),z5(i),z8(i),aream(i),fac,it)
220 IF (it ==0 ) aream(i)=fac*aream(i)
221 IF (idege(i) > 3 )
THEN
222 aream(i)=aream(i)*fac
224 . x1(i), x2(i), x3(i), x4
226 . z1(i), z2(i), z3(i), z4(i), z5(i), z6(i), z7(i), z8(i))
230 deltax(i) = four*v_g/sqrt(aream(i))
274 CALL basisf (h,p1,p2,p3,ipt)
277 aj11=p1(1)*x12(i)+p1(3)*x34(i)+p1(5)*x56(i)+p1(7)*x78(i)
278 aj12=p1(1)*y12(i)+p1(3)*y34(i)+p1(5)*y56(i)+p1(7)*y78(i)
279 aj13=p1(1)*z12(i)+p1(3)*z34(i)+p1(5)*z56(i)+p1(7)*z78(i)
280 aj21=p2(1)*x14(i)+p2(2)*x23(i)+p2(5)*x58(i)+p2(6)*x67(i)
281 aj22=p2(1)*y14(i)+p2(2)*y23(i)+p2(5)*y58(i)+p2(6)*y67(i)
282 aj23=p2(1)*z14(i)+p2(2)*z23(i)+p2(5)*z58(i)+p2(6)*z67(i)
283 aj31=p3(1)*x15(i)+p3(2)*x26(i)+p3(3)*x37(i)+p3(4)*x48(i)
284 aj32=p3(1)*y15(i)+p3(2)*y26(i)+p3(3)*y37(i)+p3(4)*y48(i)
285 aj33=p3(1)*z15(i)+p3(2)*z26(i)+p3(3)*z37(i)+p3(4)*z48(i)
286 ai11= aj22*aj33-aj23*aj32
287 ai21=-aj21*aj33+aj23*aj31
288 ai31= aj21*aj32-aj22*aj31
289 vlinc(i,ipt)=aj11*ai11+aj12*ai21+aj13*ai31
295 xx1 = x1(i) + x2(i) + x3(i) + x4(i)
296 . - x5(i) - x6(i) - x7(i) - x8(i)
297 yy1 = y1(i) + y2(i) + y3(i) + y4(i)
298 . - y5(i) - y6(i) - y7(i) - y8(i)
299 zz1 = z1(i) + z2(i) + z3(i) + z4(i)
300 . - z5(i) - z6(i) - z7(i) - z8(i)
301 xx2 = x1(i) + x2(i) + x5(i) + x6(i)
302 . - x3(i) - x4(i) - x7(i) - x8(i)
303 yy2 = y1(i) + y2(i) + y5(i) + y6(i)
304 . - y3(i) - y4(i) - y7(i) - y8(i)
305 zz2 = z1(i) + z2(i) + z5(i) + z6(i)
306 . - z3(i) - z4(i) - z7(i) - z8(i)
307 xx3 = x1(i) + x4(i) + x5(i) + x8(i)
308 . - x3(i) - x2(i) - x7(i) - x6(i)
309 yy3 = y1(i) + y4(i) + y5(i) + y8(i)
310 . - y3(i) - y2(i) - y7(i) - y6(i)
311 zz3 = z1(i) + z4(i) + z5(i) + z8(i)
312 . - z3(i) - z2(i) - z7(i) - z6(i)
314 smax(i) = (yy1 * zz2 - yy2 * zz1)**2
315 . + (zz1 * xx2 - zz2 * xx1)**2
316 . + (xx1 * yy2 - xx2 * yy1)**2
317 smax(i) =
max(smax(i),(yy1 * zz3 - yy3 * zz1)**2
318 . + (zz1 * xx3 - zz3 * xx1)**2
319 . + (xx1 * yy3 - xx3 * yy1)**2)
320 smax(i) =
max(smax(i),(yy3 * zz2 - yy2 * zz3)**2
321 . + (zz3 * xx2 - zz2 * xx3)**2
322 . + (xx3 * yy2 - xx2 * yy3)**2)
329 vmin =
min(vlinc(i,1),vlinc(i,2),vlinc(i,3),vlinc(i,4),
330 . vlinc(i,5),vlinc(i,6),vlinc(i,7),vlinc(i,8))
331 deltax(i)=hundred28*vmin/sqrt(smax(i))
336 vmin =
min(vlinc(i,1),vlinc(i,2),vlinc(i,3),vlinc(i,4),
337 . vlinc(i,5),vlinc(i,6),vlinc(i,7),vlinc(i,8))
338 deltax(i)=hundred28*vmin/sqrt(smax(i))