30 1 OFFG, OFF, VOLDP, NGL,
40 B A33, DN_R, DN_S, DN_T,
41 C INVJ, DN_X, DN_Y, DN_Z,
46#include "implicit_f.inc"
61 INTEGER,
INTENT(IN) :: NEL
65 . OFF(*),OFFG(*),KSI,ETA,ZETA,WI,VOLN(*),
66 . A11(MVSIZ), A12(MVSIZ), A13(MVSIZ),
67 . A21(MVSIZ), A22(MVSIZ), A23(MVSIZ),
68 . A31(MVSIZ), A32(MVSIZ), A33(MVSIZ)
74 INTEGER NGL(*), I, J ,ICOR,ep
78 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
79 . x5(mvsiz), x6(mvsiz), x7(mvsiz), x8(mvsiz),
80 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
81 . y5(mvsiz), y6(mvsiz), y7(mvsiz), y8(mvsiz),
82 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
83 . z5(mvsiz), z6(mvsiz), z7(mvsiz), z8(mvsiz),vol(mvsiz)
85 DOUBLE PRECISION RI(8),SI(8),TI(8),DN_R(8),DN_S(8),DN_T(8),
86 . DX_R,DX_S,DX_T,DY_R,DY_S,DY_T,DZ_R,DZ_S,DZ_T,DETM1,
87 . detj(mvsiz),invj(9,mvsiz),
88 . dn_x(mvsiz,8),dn_y(mvsiz,8),dn_z(mvsiz,8),c(6,6,mvsiz),detdp
91 DATA ri /-1.0, -1.0, 1.0, 1.0,-1.0, -1.0, 1.0, 1.0/
92 DATA si /-1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0/
93 DATA ti /-1.0, 1.0, 1.0, -1.0,-1.0, 1.0, 1.0,-1.0/
95!sb ksi->t eta->r zeta->s
97 dn_r(i) = ri(i)*(one+ksi*ti(i))*(one+zeta*si(i))/eight
98 dn_s(i) = si(i)*(one+ksi*ti(i))*(one+eta*ri(i))/eight
99 dn_t(i) = ti(i)*(one+eta*ri(i))*(one+zeta*si(i))/eight
103 dx_r = x1(i)*dn_r(1)+x2(i)*dn_r(2)+x3(i)*dn_r(3)+x4(i)*dn_r(4)
104 . +x5(i)*dn_r(5)+x6(i)*dn_r(6)+x7(i)*dn_r(7)+x8(i)*dn_r(8)
105 dx_s = x1(i)*dn_s(1)+x2(i)*dn_s(2)+x3(i)*dn_s(3)+x4(i)*dn_s(4)
106 . +x5(i)*dn_s(5)+x6(i)*dn_s(6)+x7(i)*dn_s(7)+x8(i)*dn_s(8)
107 dx_t = x1(i)*dn_t(1)+x2(i)*dn_t(2)+x3(i)*dn_t(3)+x4(i)*dn_t(4)
108 . +x5(i)*dn_t(5)+x6(i)*dn_t(6)+x7(i)*dn_t(7)+x8(i)*dn_t(8)
110 dy_r = y1(i)*dn_r(1)+y2(i)*dn_r(2)+y3(i)*dn_r(3)+y4(i)*dn_r(4)
111 . +y5(i)*dn_r(5)+y6(i)*dn_r(6)+y7(i)*dn_r(7)+y8(i)*dn_r(8)
112 dy_s = y1(i)*dn_s(1)+y2(i)*dn_s(2)+y3(i)*dn_s(3)+y4(i)*dn_s(4)
113 . +y5(i)*dn_s(5)+y6(i)*dn_s(6)+y7(i)*dn_s(7)+y8(i)*dn_s(8)
114 dy_t = y1(i)*dn_t(1)+y2(i)*dn_t(2)+y3(i)*dn_t(3)+y4(i)*dn_t(4)
115 . +y5(i)*dn_t(5)+y6(i)*dn_t(6)+y7(i)*dn_t(7)+y8(i)*dn_t(8)
117 dz_r = z1(i)*dn_r(1)+z2(i)*dn_r(2)+z3(i)*dn_r(3)+z4(i)*dn_r(4)
118 . +z5(i)*dn_r(5)+z6(i)*dn_r(6)+z7(i)*dn_r(7)+z8(i)*dn_r(8)
119 dz_s = z1(i)*dn_s(1)+z2(i)*dn_s(2)+z3(i)*dn_s(3)+z4(i)*dn_s(4)
120 . +z5(i)*dn_s(5)+z6(i)*dn_s(6)+z7(i)*dn_s(7)+z8(i)*dn_s(8)
121 dz_t = z1(i)*dn_t(1)+z2(i)*dn_t(2)+z3(i)*dn_t(3)+z4(i)*dn_t(4)
122 . +z5(i)*dn_t(5)+z6(i)*dn_t(6)+z7(i)*dn_t(7)+z8(i)*dn_t(8)
124 detdp = dx_r*(dy_s*dz_t-dz_s*dy_t)
125 . -dx_s*(dy_r*dz_t-dy_t*dz_r)
126 . +dx_t*(dy_r*dz_s-dy_s*dz_r)
130 IF (detj(i) > zero)
THEN
133 invj(1,i) = (dy_s*dz_t-dz_s*dy_t)*detm1
134 invj(2,i) = (dz_r*dy_t-dy_r*dz_t)*detm1
135 invj(3,i) = (dy_r*dz_s-dy_s*dz_r)*detm1
136 invj(4,i) = (dx_t*dz_s-dx_s*dz_t)*detm1
137 invj(5,i) = (dx_r*dz_t-dx_t*dz_r)*detm1
138 invj(6,i) = (dx_s*dz_r-dx_r*dz_s)*detm1
139 invj(7,i) = (dx_s*dy_t-dx_t*dy_s)*detm1
140 invj(8,i) = (dx_t*dy_r-dx_r*dy_t)*detm1
141 invj(9,i) = (dx_r*dy_s-dx_s*dy_r)*detm1
159 dn_x(i,j) = dn_r(j)*invj(1,i)+dn_s(j)*invj(2,i)+dn_t(j)*invj(3,i)
160 dn_y(i,j) = dn_r(j)*invj(4,i)+dn_s(j)*invj(5,i)+dn_t(j)*invj(6,i)
161 dn_z(i,j) = dn_r(j)*invj(7,i)+dn_s(j)*invj(8,i)+dn_t(j)*invj(9,i)
170 IF (voldp(i)<=zero) voldp(i)=one
171 ELSEIF (voldp(i)<=zero )
THEN
178 IF (icor>0.AND.impl_s>0)
THEN
180 IF(voldp(i)<=zero.AND.off(i)/=zero)
THEN
185 WRITE(iout ,2001) ngl(i)
186#include "lockoff.inc"
189 ELSEIF (imconv==1)
THEN
191 WRITE(istdo,2000) ngl(i)
192 WRITE(iout ,2000) ngl(i)
193#include "lockoff.inc"
206 2000
FORMAT(/
' ZERO OR NEGATIVE SUB-VOLUME : DELETE 3D-ELEMENT NB',
208 2001
FORMAT(/
' ZERO OR NEGATIVE SOLID SUB-VOLUME : ELEMENT NB:',
subroutine s8sderi3(offg, off, voldp, ngl, ksi, eta, zeta, wi, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, a11, a12, a13, a21, a22, a23, a31, a32, a33, dn_r, dn_s, dn_t, invj, dn_x, dn_y, dn_z, voln, nel)