34 SUBROUTINE sigrota(JFT ,JLT ,NFT ,IPT ,NEL ,
35 2 NS1 ,X ,IXC ,ELBUF_STR,
36 3 SIG ,ITY ,IXTG ,IHBE ,ISTRAIN ,
42 use element_mod ,
only : nixc,nixtg
46#include "implicit_f.inc"
54 INTEGER , JLT, NFT, NEL, IPT, NS1, IXC(NIXC,*),
55 . ITY, IXTG(NIXTG,*),IHBE ,ISTRAIN ,IVISC
56 my_real X(3,*), SIG(MVSIZ,5)
57 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
61 INTEGER I, J, N, NLAY, NPTR, NPTS, , IR, IS, JJ(5), IDRAPE,
63 . X1(NEL), X2(NEL), X3(NEL), X4(NEL),
64 . y1(nel), y2(nel), y3(nel), y4(nel),
65 . z1(nel), z2(nel), z3(nel), z4(nel),
66 . x21(nel), y21(nel), z21(nel),
67 . x31(nel), y31(nel), z31(nel),
68 . x32(nel), y32(nel), z32(nel),
70 . e1x(nel), e1y(nel), e1z(nel),
71 . e2x(nel), e2y(nel), e2z(nel),
72 . e3x(nel), e3y(nel), e3z(nel),
73 . e11(nel),e12(nel),e13(nel),
74 . e21(nel),e22(nel),e23(nel), dir(nel,2),
76 . v1,v2,v3,vr,vs,aa,bb,suma
78 .
DIMENSION(:) ,
POINTER :: dir1
80 TYPE(l_bufel_) ,
POINTER :: LBUF
87 idrape = elbuf_str%IDRAPE
88 igtyp = elbuf_str%IGTYP
89 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
91 dir1 => elbuf_str%BUFLY(ipt)%LBUF_DIR(1)%DIRA
93 dir1 => elbuf_str%BUFLY(1)%LBUF_DIR(1)%DIRA
97 dir1 => elbuf_str%BUFLY(ipt)%DIRA
99 dir1 => elbuf_str%BUFLY(1)%DIRA
128 e1x(i)= x2(i)+x3(i)-x1(i)-x4(i)
129 e1y(i)= y2(i)+y3(i)-y1(i)-y4(i)
130 e1z(i)= z2(i)+z3(i)-z1(i)-z4(i)
131 e2x(i)= x3(i)+x4(i)-x1(i)-x2(i)
132 e2y(i)= y3(i)+y4(i)-y1(i)-y2(i)
133 e2z(i)= z3(i)+z4(i)-z1(i)-z2(i)
134 e3x(i)=e1y(i)*e2z(i)-e1z(i)*e2y(i)
135 e3y(i)=e1z(i)*e2x(i)-e1x(i)*e2z(i)
136 e3z(i)=e1x(i)*e2y(i)-e1y(i)*e2x(i)
148 suma=e2x(i)*e2x(i)+e2y(i)*e2y(i)+e2z(i)*e2z(i)
149 e1x(i) = e1x(i)*suma + e2y(i)*e3z(i)-e2z(i)*e3y(i)
150 e1y(i) = e1y(i)*suma + e2z(i)*e3x(i)-e2x(i)*e3z(i)
151 e1z(i) = e1z(i)*suma + e2x(i)*e3y(i)-e2y(i)*e3x(i)
155 suma=e1x(i)*e1x(i)+e1y(i)*e1y(i)+e1z(i)*e1z(i)
162 suma=e3x(i)*e3x(i)+e3y(i)*e3y(i)+e3z(i)*e3z(i)
163 suma=one/
max(sqrt(suma),em20)
167 e2x(i)=e3y(i)*e1z(i)-e3z(i)*e1y(i)
168 e2y(i)=e3z(i)*e1x(i)-e3x(i)*e1z(i)
169 e2z(i)=e3x(i)*e1y(i)-e3y(i)*e1x(i)
172 suma=e2x(i)*e2x(i)+e2y(i)*e2y(i)+e2z(i)*e2z(i)
173 suma=one/
max(sqrt(suma),em20)
220 suma = sqrt(e1x(i)*e1x(i)+e1y(i)*e1y(i)+e1z(i)*e1z(i))
221 suma=one/
max(suma,em20)
228 e3x(i)=y31(i)*z32(i)-z31(i)*y32(i)
229 e3y(i)=z31(i)*x32(i)-x31(i)*z32(i)
230 e3z(i)=x31(i)*y32(i)-y31(i)*x32(i)
231 suma = sqrt(e3x(i)*e3x(i)+e3y(i)*e3y(i)+e3z(i)*e3z(i))
232 suma = one/
max(suma,em20)
239 e2x(i)=e3y(i)*e1z(i)-e3z(i)*e1y(i)
240 e2y(i)=e3z(i)*e1x(i)-e3x(i)*e1z(i)
241 e2z(i)=e3x(i)*e1y(i)-e3y(i)*e1x(i)
242 suma = sqrt(e2x(i)*e2x(i)+e2y(i)*e2y(i)+e2z(i)*e2z(i))
243 suma = one/
max(suma,em20)
253 v1 = aa*e11(i) + bb*e21(i)
254 v2 = aa*e12(i) + bb*e22(i)
255 v3 = aa*e13(i) + bb*e23(i)
256 vr=v1*e1x(i)+v2*e1y(i)+v3*e1z(i)
257 vs=v1*e2x(i)+v2*e2y(i)+v3*e2z(i)
258 suma=sqrt(vr*vr + vs*vs)
273 lbuf => elbuf_str%BUFLY(ipt)%LBUF(ir,is,1)
275 lbuf => elbuf_str%BUFLY(1)%LBUF(ir,is,ipt)
278 sig(i,j) = sig(i,j) + lbuf%SIG(jj(j) + i)/npg
288 lbuf => elbuf_str%BUFLY(ipt)%LBUF(ir,is,1)
290 lbuf => elbuf_str%BUFLY(1)%LBUF(ir,is,ipt)
293 sig(i,j) = sig(i,j) + lbuf%VISC(jj(j) + i)/npg
301 lbuf => elbuf_str%BUFLY(ipt)%LBUF(1,1,1)
303 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,ipt)
307 sig(i,j) = lbuf%SIG(jj(j) + i)
313 sig(i,j) = sig(i,j) + lbuf%VISC(jj(j) + i)
319 CALL urotov(jft,jlt,sig,dir,nel)