34 1 JFT ,JLT ,NFT ,ILAY ,NEL ,
35 2 ITY ,IEL_CRK,IADC_CRK,IADTG_CRK,IXFEM,
36 3 ICRK ,NLAY ,SIG ,IVISC ,CRKEDGE )
45#include "implicit_f.inc"
54 INTEGER JFT,JLT,NFT,NEL,ILAY,ITY,IXFEM,ICRK,NLAY,IVISC,
55 . IEL_CRK(*),IADC_CRK(4,*),IADTG_CRK(3,*)
59 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
60 TYPE (ELBUF_STRUCT_),
TARGET :: XFEM_STR
61 TYPE (XFEM_EDGE_) ,
DIMENSION(*) :: CRKEDGE
65 INTEGER I,II,J,N,I1,ELCRK,ILAYCRK,
66 . IADC1,IADC2,IADC3,IADC4,JJ(5)
68 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
70 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
71 . x21(mvsiz), y21(mvsiz), z21(mvsiz),
72 . x31(mvsiz), y31(mvsiz), z31(mvsiz),
73 . x32(mvsiz), y32(mvsiz), z32
74 . x42(mvsiz), y42(mvsiz), z42(mvsiz),
76 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
77 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
78 . e11(mvsiz),e12(mvsiz),e13(mvsiz),
79 . e21(mvsiz),e22(mvsiz),e23(mvsiz), dir(nel,2),
80 . v1,v2,v3,vr,vs,aa,bb,suma
82 .
DIMENSION(:) ,
POINTER :: dir10,dir1
83 TYPE(g_bufel_) ,
POINTER :: GBUF
84 TYPE(l_bufel_) ,
POINTER :: LBUF
86 TYPE(l_bufel_) ,
POINTER :: XLBUF
89 dir10 => elbuf_str%BUFLY(ilay)%DIRA
90 dir1 => xfem_str%BUFLY(ilay)%DIRA
92 dir10 => elbuf_str%BUFLY(1)%DIRA
93 dir1 => xfem_str%BUFLY(1)%DIRA
108 iadc1 = iadc_crk(1,elcrk)
109 iadc2 = iadc_crk(2,elcrk)
110 iadc3 = iadc_crk(3,elcrk)
111 iadc4 = iadc_crk(4,elcrk)
116 x1(i) =
crkavx(icrk)%X(1,iadc1)
117 y1(i) =
crkavx(icrk)%X(2,iadc1)
118 z1(i) =
crkavx(icrk)%X(3,iadc1)
120 x2(i) =
crkavx(icrk)%X(1,iadc2)
121 y2(i) =
crkavx(icrk)%X(2,iadc2)
122 z2(i) =
crkavx(icrk)%X(3,iadc2)
124 x3(i) =
crkavx(icrk)%X(1,iadc3)
125 y3(i) =
crkavx(icrk)%X(2,iadc3)
126 z3(i) =
crkavx(icrk)%X(3,iadc3)
128 x4(i) =
crkavx(icrk)%X(1,iadc4)
129 y4(i) =
crkavx(icrk)%X(2,iadc4)
134 e1x(i)= x2(i)+x3(i)-x1(i)-x4(i)
135 e1y(i)= y2(i)+y3(i)-y1(i)-y4(i)
136 e1z(i)= z2(i)+z3(i)-z1(i)-z4(i)
137 e2x(i)= x3(i)+x4(i)-x1(i)-x2(i)
138 e2y(i)= y3(i)+y4(i)-y1(i)-y2(i)
139 e2z(i)= z3(i)+z4(i)-z1(i)-z2(i)
140 e3x(i)=e1y(i)*e2z(i)-e1z(i)*e2y(i)
141 e3y(i)=e1z(i)*e2x(i)-e1x(i)*e2z(i)
142 e3z(i)=e1x(i)*e2y(i)-e1y(i)*e2x
155 suma=e2x(i)*e2x(i)+e2y(i)*e2y(i)+e2z(i)*e2z(i)
156 e1x(i) = e1x(i)*suma + e2y(i)*e3z
157 e1y(i) = e1y(i)*suma + e2z(i)*e3x(i)-e2x(i)*e3z(i)
158 e1z(i) = e1z(i)*suma + e2x(i)*e3y(i)-e2y(i)*e3x(i)
162 suma=e1x(i)*e1x(i)+e1y(i)*e1y(i)+e1z(i)*e1z(i)
163 suma=one/
max(sqrt(suma),em20)
170 suma=e3x(i)*e3x(i)+e3y(i)*e3y(i)+e3z(i)*e3z(i)
171 suma=one/
max(sqrt(suma),em20)
175 e2x(i)=e3y(i)*e1z(i)-e3z(i)*e1y(i)
176 e2y(i)=e3z(i)*e1x(i)-e3x(i)*e1z(i)
177 e2z(i)=e3x(i)*e1y(i)-e3y(i)*e1x(i)
181 suma=e2x(i)*e2x(i)+e2y(i)*e2y(i)+e2z(i)*e2z(i)
182 suma=one/
max(sqrt(suma),em20)
193 elcrk = iel_crk(n+numelc)
194 iadc1 = iadtg_crk(1,elcrk)
195 iadc2 = iadtg_crk(2,elcrk)
196 iadc3 = iadtg_crk(3,elcrk)
201 x1(i) =
crkavx(icrk)%X(1,iadc1)
202 y1(i) =
crkavx(icrk)%X(2,iadc1)
203 z1(i) =
crkavx(icrk)%X(3,iadc1)
205 x2(i) =
crkavx(icrk)%X(1,iadc2)
206 y2(i) =
crkavx(icrk)%X(2,iadc2)
207 z2(i) =
crkavx(icrk)%X(3,iadc2)
209 x3(i) =
crkavx(icrk)%X(1,iadc3)
210 y3(i) =
crkavx(icrk)%X(2,iadc3)
211 z3(i) =
crkavx(icrk)%X(3,iadc3)
239 suma = sqrt(e1x(i)*e1x(i)+e1y(i)*e1y(i
240 suma = one/
max(suma,em20)
247 e3x(i)=y31(i)*z32(i)-z31(i)*y32(i)
248 e3y(i)=z31(i)*x32(i)-x31(i)*z32(i)
249 e3z(i)=x31(i)*y32(i)-y31(i)*x32(i)
250 suma = sqrt(e3x(i)*e3x(i)+e3y(i)*e3y(i)+e3z(i)*e3z(i))
251 suma = one/
max(suma,em20)
259 e2y(i)=e3z(i)*e1x(i)-e3x(i)*e1z(i)
260 e2z(i)=e3x(i)*e1y(i)-e3y(i)*e1x(i)
262 suma = one/
max(suma,em20)
271 IF (ity == 7) elcrk = iel_crk(n+numelc)
272 ilaycrk = crkedge(ilay)%LAYCUT(elcrk)
273 IF (ilaycrk == 0 .OR. abs(ilaycrk) == 1)
THEN
281 v1 = aa*e11(i) + bb*e21(i)
282 v2 = aa*e12(i) + bb*e22(i)
283 v3 = aa*e13(i) + bb*e23(i)
284 vr=v1*e1x(i)+v2*e1y(i)+v3*e1z(i)
285 vs=v1*e2x(i)+v2*e2y(i)+v3*e2z(i)
286 suma=sqrt(vr*vr + vs*vs)
293 lbuf => elbuf_str%BUFLY(ilay)%LBUF(1,1,1)
295 xlbuf => xfem_str%BUFLY(ilay)%LBUF(1,1,1)
298 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,ilay)
300 xlbuf => xfem_str%BUFLY(1)%LBUF(1,1,ilay)
306 IF (ity == 7) elcrk = iel_crk(n+numelc)
307 ilaycrk = crkedge(ilay)%LAYCUT(elcrk)
308 IF (ilaycrk == 0 .OR. abs(ilaycrk) == 1)
THEN
311 sig(i,j) = lbuf%SIG(jj(j) + i)
315 sig(i,j) = xlbuf%SIG(jj(j) + i)
324 IF (ity == 7) elcrk = iel_crk(n+numelc)
325 ilaycrk = crkedge(ilay)%LAYCUT(elcrk)
326 IF (ilaycrk == 0 .OR. abs(ilaycrk) == 1)
THEN
329 sig(i,j) = sig(i,j) + lbuf%VISC(jj(j)+i)
333 sig(i,j) = sig(i,j) + xlbuf%VISC(jj(j)+i)
339 CALL urotov(jft,jlt,sig,dir,nel)