15 integer(kind=kint):: ielem
16 real(kind=
kreal):: det
17 real(kind=
kreal):: w(4),n(4,4),nx(4,4),ny(4,4),nz(4,4)
19 integer(kind=kint):: i, ii, j, ilocal
20 real(kind=
kreal):: dum
21 real(kind=
kreal):: xx(4), yy(4), zz(4)
22 real(kind=
kreal):: nr(4), ns(4), nt(4)
23 real(kind=
kreal):: jacob(3,3), jinv(3,3)
24 real(kind=
kreal),
parameter:: alpha = 0.58541020, beta = 0.13819660
31 ilocal = hecmesh%elem_node_item( 4*ielem -ii )
32 xx(i) = hecmesh%node( ilocal*3 -2 )
33 yy(i) = hecmesh%node( ilocal*3 -1 )
34 zz(i) = hecmesh%node( ilocal*3 )
81 jacob(1,1) = nr(1)*xx(1)+nr(2)*xx(2)+nr(3)*xx(3)+nr(4)*xx(4)
82 jacob(2,1) = ns(1)*xx(1)+ns(2)*xx(2)+ns(3)*xx(3)+ns(4)*xx(4)
83 jacob(3,1) = nt(1)*xx(1)+nt(2)*xx(2)+nt(3)*xx(3)+nt(4)*xx(4)
84 jacob(1,2) = nr(1)*yy(1)+nr(2)*yy(2)+nr(3)*yy(3)+nr(4)*yy(4)
85 jacob(2,2) = ns(1)*yy(1)+ns(2)*yy(2)+ns(3)*yy(3)+ns(4)*yy(4)
86 jacob(3,2) = nt(1)*yy(1)+nt(2)*yy(2)+nt(3)*yy(3)+nt(4)*yy(4)
87 jacob(1,3) = nr(1)*zz(1)+nr(2)*zz(2)+nr(3)*zz(3)+nr(4)*zz(4)
88 jacob(2,3) = ns(1)*zz(1)+ns(2)*zz(2)+ns(3)*zz(3)+ns(4)*zz(4)
89 jacob(3,3) = nt(1)*zz(1)+nt(2)*zz(2)+nt(3)*zz(3)+nt(4)*zz(4)
91 det = jacob(1,1) * jacob(2,2) * jacob(3,3) &
92 & + jacob(1,2) * jacob(2,3) * jacob(3,1) &
93 & + jacob(1,3) * jacob(2,1) * jacob(3,2) &
94 & - jacob(1,3) * jacob(2,2) * jacob(3,1) &
95 & - jacob(1,2) * jacob(2,1) * jacob(3,3) &
96 & - jacob(1,1) * jacob(2,3) * jacob(3,2)
101 jinv(1,1) = dum*( jacob(2,2)*jacob(3,3) -jacob(2,3)*jacob(3,2) )
102 jinv(2,1) = dum*( -jacob(2,1)*jacob(3,3) +jacob(2,3)*jacob(3,1) )
103 jinv(3,1) = dum*( jacob(2,1)*jacob(3,2) -jacob(2,2)*jacob(3,1) )
104 jinv(1,2) = dum*( -jacob(1,2)*jacob(3,3) +jacob(1,3)*jacob(3,2) )
105 jinv(2,2) = dum*( jacob(1,1)*jacob(3,3) -jacob(1,3)*jacob(3,1) )
106 jinv(3,2) = dum*( -jacob(1,1)*jacob(3,2) +jacob(1,2)*jacob(3,1) )
107 jinv(1,3) = dum*( jacob(1,2)*jacob(2,3) -jacob(1,3)*jacob(2,2) )
108 jinv(2,3) = dum*( -jacob(1,1)*jacob(2,3) +jacob(1,3)*jacob(2,1) )
109 jinv(3,3) = dum*( jacob(1,1)*jacob(2,2) -jacob(1,2)*jacob(2,1) )
114 nx(i,j) = jinv(1,1)*nr(i) + jinv(1,2)*ns(i) +jinv(1,3)*nt(i)
115 ny(i,j) = jinv(2,1)*nr(i) + jinv(2,2)*ns(i) +jinv(2,3)*nt(i)
116 nz(i,j) = jinv(3,1)*nr(i) + jinv(3,2)*ns(i) +jinv(3,3)*nt(i)