33 SUBROUTINE sigrota(JFT ,JLT ,NFT ,IPT ,NEL ,
34 2 NS1 ,X ,IXC ,ELBUF_STR,
35 3 SIG ,ITY ,IXTG ,IHBE ,ISTRAIN ,
44#include "implicit_f.inc"
52 INTEGER JFT, JLT, NFT, NEL, IPT, NS1, IXC(NIXC,*),
53 . ITY, IXTG(NIXTG,*),IHBE ,ISTRAIN ,IVISC
54 my_real X(3,*), SIG(MVSIZ,5)
55 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
59 INTEGER I,II,J,K,N,I1,NLAY,NPTR,NPTS,NPG
63 . z1(nel), z2(nel), z3(nel), z4(nel),
64 . x21(nel), y21(nel), z21(nel),
65 . x31(nel), y31(nel), z31(nel),
66 . x32(nel), y32(nel), z32(nel),
67 . x42(nel), y42(nel), z42(nel),
68 . e1x(nel), e1y(nel), e1z(nel),
69 . e2x(nel), e2y(nel), e2z(nel),
70 . e3x(nel), e3y(nel), e3z(nel),
71 . e11(nel),e12(nel),e13(nel),
72 . e21(nel),e22(nel),e23(nel), dir(nel,2),
73 . phi,csp,snp,u(3,nel),
74 . v1,v2,v3,vr,vs,aa,bb,suma
76 .
DIMENSION(:) ,
POINTER :: dir1
77 TYPE(g_bufel_) ,
POINTER :: GBUF
78 TYPE(l_bufel_) ,
POINTER :: LBUF
79 TYPE(L_BUFEL_DIR_) ,
POINTER :: LBUF_DIR
85 idrape = elbuf_str%IDRAPE
86 igtyp = elbuf_str%IGTYP
87 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52))
THEN
89 dir1 => elbuf_str%BUFLY(ipt)%LBUF_DIR(1)%DIRA
91 dir1 => elbuf_str%BUFLY(1)%LBUF_DIR(1)%DIRA
95 dir1 => elbuf_str%BUFLY(ipt)%DIRA
97 dir1 => elbuf_str%BUFLY(1)%DIRA
126 e1x(i)= x2(i)+x3(i)-x1(i)-x4(i)
127 e1y(i)= y2(i)+y3(i)-y1(i)-y4(i)
128 e1z(i)= z2(i)+z3(i)-z1(i)-z4(i)
129 e2x(i)= x3(i)+x4(i)-x1(i)-x2(i)
130 e2y(i)= y3(i)+y4(i)-y1(i)-y2(i)
131 e2z(i)= z3(i)+z4(i)-z1(i)-z2(i)
132 e3x(i)=e1y(i)*e2z(i)-e1z(i)*e2y(i)
133 e3y(i)=e1z(i)*e2x(i)-e1x(i)*e2z(i)
134 e3z(i)=e1x(i)*e2y(i)-e1y(i)*e2x(i)
146 suma=e2x(i)*e2x(i)+e2y(i)*e2y(i)+e2z(i)*e2z(i)
147 e1x(i) = e1x(i)*suma + e2y(i)*e3z(i)-e2z(i)*e3y(i)
148 e1y(i) = e1y(i)*suma + e2z(i)*e3x(i)-e2x(i)*e3z(i)
149 e1z(i) = e1z(i)*suma + e2x(i)*e3y(i)-e2y(i)*e3x
153 suma=e1x(i)*e1x(i)+e1y(i)*e1y(i)+e1z(i)*e1z(i)
160 suma=e3x(i)*e3x(i)+e3y(i)*e3y(i)+e3z(i)*e3z(i)
165 e2x(i)=e3y(i)*e1z(i)-e3z(i)*e1y(i)
166 e2y(i)=e3z(i)*e1x(i)-e3x(i)*e1z(i)
167 e2z(i)=e3x(i)*e1y(i)-e3y(i)*e1x(i)
170 suma=e2x(i)*e2x(i)+e2y(i)*e2y(i)+e2z(i)*e2z(i)
171 suma=one/
max(sqrt(suma),em20)
218 suma = sqrt(e1x(i)*e1x(i)+e1y(i)*e1y(i)+e1z(i)*e1z(i))
219 suma=one/
max(suma,em20)
226 e3x(i)=y31(i)*z32(i)-z31(i)*y32(i)
227 e3y(i)=z31(i)*x32(i)-x31(i)*z32(i)
228 e3z(i)=x31(i)*y32(i)-y31(i)*x32(i)
229 suma = sqrt(e3x(i)*e3x(i)+e3y(i)*e3y(i)+e3z(i)*e3z(i))
230 suma = one/
max(suma,em20)
237 e2x(i)=e3y(i)*e1z(i)-e3z(i)*e1y(i)
238 e2y(i)=e3z(i)*e1x(i)-e3x(i)*e1z(i)
239 e2z(i)=e3x(i)*e1y(i)-e3y(i)*e1x(i)
240 suma = sqrt(e2x(i)*e2x(i)+e2y(i)*e2y(i)+e2z(i)*e2z(i))
241 suma = one/
max(suma,em20)
251 v1 = aa*e11(i) + bb*e21(i)
252 v2 = aa*e12(i) + bb*e22(i)
253 v3 = aa*e13(i) + bb*e23(i)
254 vr=v1*e1x(i)+v2*e1y(i
255 vs=v1*e2x(i)+v2*e2y(i)+v3*e2z(i)
256 suma=sqrt(vr*vr + vs*vs)
271 lbuf => elbuf_str%BUFLY(ipt)%LBUF(ir,is,1)
273 lbuf => elbuf_str%BUFLY(1)%LBUF(ir,is,ipt)
276 sig(i,j) = sig(i,j) + lbuf%SIG(jj(j) +
286 lbuf => elbuf_str%BUFLY(ipt)%LBUF(ir,is,1)
288 lbuf => elbuf_str%BUFLY(1)%LBUF(ir,is,ipt)
291 sig(i,j) = sig(i,j) + lbuf%VISC(jj(j)
299 lbuf => elbuf_str%BUFLY(ipt)%LBUF(1,1,1)
301 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,ipt)
305 sig(i,j) = lbuf%SIG(jj(j) + i)
311 sig(i,j) = sig(i,j) + lbuf%VISC(jj(j) + i)
317 CALL urotov(jft,jlt,sig,dir,nel)