31 . NSPHDIR ,NCELL ,INOD ,IDS ,IDMAX ,
32 . X ,IXS ,KXSP ,IPARTSP ,NOD2SP ,
38 use element_mod ,
only : nixs
42#include "implicit_f.inc"
52 INTEGER NSPHDIR, NCELL, INOD, IDS, IDMAX, IXS(NIXS),
53 . KXSP(NISP,*), IPARTSP(*), NOD2SP(*), IRST(3,*)
59 INTEGER I, J, IR, IS, IT,
60 . N1, N2, N3, N4, N5, N6, N7, N8
63 . x1,x2,x3,x4,x5,x6,x7,x8,
64 . y1,y2,y3,y4,y5,y6,y7,y8,
65 . z1,z2,z3,z4,z5,z6,z7,z8,
66 . phi1,phi2,phi3,phi4,phi5,phi6,phi7,phi8,
79 3 -.666666666666666,0. ,0.666666666666666,
88 6 -.833333333333333,-.5 ,-.166666666666666,
89 6 0.166666666666666,0.5 ,0.833333333333333,
91 7 -.857142857142857,-.571428571428571,-.285714285714285,
92 7 0. ,0.285714285714285,0.571428571428571,
93 7 0.857142857142857,0. ,0. ,
94 8 -.875 ,-.625 ,-.375 ,
95 8 -.125 ,0.125 ,0.375,
97 9 -.888888888888888,-.666666666666666,-.444444444444444,
98 9 -.222222222222222,0. ,0.222222222222222,
99 9 0.444444444444444,0.666666666666666,0.888888888888888/
137 ksi = a_gauss(ir,nsphdir)
138 eta = a_gauss(is,nsphdir)
139 zeta = a_gauss(it,nsphdir)
141 phi1=(one-ksi)*(one-eta)*(one-zeta)
142 phi2=(one-ksi)*(one-eta)*(one+zeta)
143 phi3=(one+ksi)*(one-eta)*(one+zeta)
144 phi4=(one+ksi)*(one-eta)*(one-zeta)
145 phi5=(one-ksi)*(one+eta)*(one-zeta)
146 phi6=(one-ksi)*(one+eta)*(one+zeta)
147 phi7=(one+ksi)*(one+eta)*(one+zeta)
148 phi8=(one+ksi)*(one+eta)*(one-zeta)
149 xi=one_over_8*(phi1*x1+phi2*x2+phi3*x3+phi4*x4+
150 . phi5*x5+phi6*x6+phi7*x7+phi8*x8)
151 yi=one_over_8*(phi1*y1+phi2*y2+phi3*y3+phi4*y4+
152 . phi5*y5+phi6*y6+phi7*y7+phi8*y8)
153 zi=one_over_8*(phi1*z1+phi2*z2+phi3*z3+phi4*z4+
154 . phi5*z5+phi6*z6+phi7*z7+phi8*z8)
166 kxsp(nisp,ncell)=idmax
167 irst(1,ncell-first_sphsol+1)=ir
168 irst(2,ncell-first_sphsol+1)=is
169 irst(3,ncell-first_sphsol+1)=it
187 . NSPHDIR ,NCELL ,INOD ,IDS ,IDMAX ,
188 . X ,IXS ,KXSP ,IPARTSP ,NOD2SP ,
194 use element_mod ,
only : nixs
198#include "implicit_f.inc"
208 INTEGER NSPHDIR, NCELL, INOD, IDS, IDMAX, IXS(NIXS),
209 . KXSP(NISP,*), IPARTSP(*), NOD2SP(*), IRST(3,*)
215 INTEGER IR, IS, IT,N1,N2,N3,N4
218 . x1,x2,x3,x4,y1,y2,y3,y4,
219 . z1,z2,z3,z4,phi1,phi2,phi3,phi4,ksi,
220 . eta,zeta,xi,yi,zi,a_gauss_tetra(9,9)
230 1 0.250000000000000,0.000000000000000,0.000000000000000,
231 1 0.000000000000000,0.000000000000000,0.000000000000000,
232 1 0.000000000000000,0.000000000000000,0.000000000000000,
233 2 0.166666666666667,0.500000000000000,0.000000000000000,
234 2 0.000000000000000,0.000000000000000,0.000000000000000,
235 2 0.000000000000000,0.000000000000000,0.000000000000000,
236 3 0.125000000000000,0.375000000000000,0.625000000000000,
237 3 0.000000000000000,0.000000000000000,0.000000000000000,
238 3 0.000000000000000,0.000000000000000,0.000000000000000,
239 4 0.100000000000000,0.300000000000000,0.500000000000000,
240 4 0.700000000000000,0.000000000000000,0.000000000000000,
241 4 0.000000000000000,0.000000000000000,0.000000000000000,
242 5 0.083333333333333,0.250000000000000,0.416666666666667,
243 5 0.583333333333333,0.750000000000000,0.000000000000000,
244 5 0.000000000000000,0.000000000000000,0.000000000000000,
245 6 0.071428571428571,0.214285714285714,0.357142857142857,
246 6 0.500000000000000,0.642857142857143,0.785714285714286,
247 6 0.000000000000000,0.000000000000000,0.000000000000000,
248 7 0.062500000000000,0.187500000000000,0.312500000000000,
249 7 0.437500000000000,0.562500000000000,0.687500000000000,
250 7 0.812500000000000,0.000000000000000,0.000000000000000,
251 8 0.055555555555556,0.166666666666667,0.277777777777778,
252 8 0.388888888888889,0.500000000000000,0.611111111111111,
253 8 0.722222222222222,0.833333333333333,0.000000000000000,
254 9 0.050000000000000,0.150000000000000,0.250000000000000,
255 9 0.350000000000000,0.450000000000000,0.550000000000000,
256 9 0.650000000000000,0.750000000000000,0.850000000000000/
288 DO it=1,nsphdir-is-ir+2
290 ksi = a_gauss_tetra(ir,nsphdir)
291 eta = a_gauss_tetra(is,nsphdir)
292 zeta = a_gauss_tetra(it,nsphdir)
297 phi4=one-ksi-eta-zeta
299 xi=phi1*x1+phi2*x2+phi3*x3+phi4*x4
300 yi=phi1*y1+phi2*y2+phi3*y3+phi4*y4
301 zi=phi1*z1+phi2*z2+phi3*z3+phi4*z4
313 kxsp(nisp,ncell)=idmax
314 irst(1,ncell-first_sphsol+1)=ir
315 irst(2,ncell-first_sphsol+1)=is
316 irst(3,ncell-first_sphsol+1)=it
336 . NSPHDIR ,RHO ,NCELL ,X ,SPBUF ,
337 . IXS ,KXSP ,IPARTSP ,IRST )
342 use element_mod ,
only : nixs
346#include "implicit_f.inc"
356 INTEGER NSPHDIR, NCELL, IXS(NIXS), KXSP(NISP,*),
357 . IPARTSP(*), IRST(3,*)
359 . RHO, X(3,*), SPBUF(NSPBUF,*)
363 INTEGER I, J, IR, IS, IT, IP,
364 . n1, n2, n3, n4, n5, n6, n7, n8, np
367 . x1,x2,x3,x4,x5,x6,x7,x8,
368 . y1,y2,y3,y4,y5,y6,y7,y8,
369 . z1,z2,z3,z4,z5,z6,z7,z8,
370 . x17 , x28 , x35 , x46 ,
371 . y17 , y28 , y35 , y46 ,
372 . z17 , z28 , z35 , z46 ,
373 . vol, hx(4), hy(4), hz(4), det,
380 . jac_59_68, jac_67_49, jac_48_57,
381 . jac_38_29, jac_19_37, jac_27_18,
382 . jac_26_35, jac_34_16, jac_15_24,
383 . x_17_46 , x_28_35 ,
384 . y_17_46 , y_28_35 ,
385 . z_17_46 , z_28_35 ,
386 . ksi, eta, zeta, wi,
390 . w_gauss(9,9),a_gauss(9,9)
398 3 0.555555555555556,0.888888888888889,0.555555555555556,
401 4 0.347854845137454,0.652145154862546,0.652145154862546,
402 4 0.347854845137454,0. ,0. ,
404 5 0.236926885056189,0.478628670499366,0.568888888888889,
405 5 0.478628670499366,0.236926885056189,0. ,
407 6 0.171324492379170,0.360761573048139,0.467913934572691,
408 6 0.467913934572691,0.360761573048139,0.171324492379170,
410 7 0.129484966168870,0.279705391489277,0.381830050505119,
411 7 0.417959183673469,0.381830050505119,0.279705391489277,
412 7 0.129484966168870,0. ,0. ,
413 8 0.101228536290376,0.222381034453374,0.313706645877887,
414 8 0.362683783378362,0.362683783378362,0.313706645877887,
415 8 0.222381034453374,0.101228536290376,0. ,
416 9 0.081274388361574,0.180648160694857,0.260610696402935,
417 9 0.312347077040003,0.330239355001260,0.312347077040003,
418 9 0.260610696402935,0.180648160694857,0.081274388361574/
426 3 -.666666666666666,0. ,0.666666666666666,
435 6 -.833333333333333,-.5 ,-.166666666666666,
436 6 0.166666666666666,0.5 ,0.833333333333333,
438 7 -.857142857142857,-.571428571428571,-.285714285714285,
439 7 0. ,0.285714285714285,0.571428571428571,
440 7 0.857142857142857,0. ,0. ,
441 8 -.875 ,-.625 ,-.375 ,
442 8 -.125 ,0.125 ,0.375,
444 9 -.888888888888888,-.666666666666666,-.4444444444444
445 9 -.222222222222222,0. ,0.222222222222222,
446 9 0.444444444444444,0.666666666666666,0.888888888888888/
448 np = nsphdir*nsphdir*nsphdir
516 hx(1)=(x1+x2-x3-x4-x5-x6+x7+x8)
517 hy(1)=(y1+y2-y3-y4-y5-y6+y7+y8)
518 hz(1)=(z1+z2-z3-z4-z5-z6+z7+z8)
521 hx(2)=(x1-x2-x3+x4-x5+x6+x7-x8)
522 hy(2)=(y1-y2-y3+y4-y5+y6+y7-y8)
523 hz(2)=(z1-z2-z3+z4-z5+z6+z7-z8)
526 hx(3)=(x1-x2+x3-x4+x5-x6+x7-x8)
527 hy(3)=(y1-y2+y3-y4+y5-y6+y7-y8)
528 hz(3)=(z1-z2+z3-z4+z5-z6+z7-z8)
531 hx(4)=(-x1+x2-x3+x4+x5-x6+x7-x8)
532 hy(4)=(-y1+y2-y3+y4+y5-y6+y7-y8)
533 hz(4)=(-z1+z2-z3+z4+z5-z6+z7-z8)
540 ksi = a_gauss(it,nsphdir)
541 eta = a_gauss(ir,nsphdir)
542 zeta = a_gauss(is,nsphdir)
547 jac1=cj1+hx(3)*eta+(hx(2)+hx(4)*eta)*zeta
548 jac2=cj2+hy(3)*eta+(hy(2)+hy(4)*eta)*zeta
549 jac3=cj3+hz(3)*eta+(hz(2)+hz(4)*eta)*zeta
551 jac4=cj4+hx(1)*zeta+(hx(3)+hx(4)*zeta)*ksi
552 jac5=cj5+hy(1)*zeta+(hy(3)+hy(4)*zeta)*ksi
553 jac6=cj6+hz(1)*zeta+(hz(3)+hz(4)*zeta)*ksi
555 jac7=cj7+hx(2)*ksi+(hx(1)+hx(4)*ksi)*eta
556 jac8=cj8+hy(2)*ksi+(hy(1)+hy(4)*ksi)*eta
557 jac9=cj9+hz(2)*ksi+(hz(1)+hz(4)*ksi)*eta
559 jac_59_68=jac5*jac9-jac6*jac8
560 jac_67_49=jac6*jac7-jac4*jac9
561 jac_48_57=jac4*jac8-jac5*jac7
563 det=one_over_512*(jac1*jac_59_68+jac2*jac_67_49+jac3*jac_48_57)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)