34 SUBROUTINE cnvec3(ELBUF_STR,DIR_A ,DIR_B ,
35 1 JFT ,JLT ,IREP ,IGTYP ,NLAY ,
36 2 X1 ,X2 ,X3 ,X4 ,Y1 ,Y2 ,
37 3 Y3 ,Y4 ,Z1 ,Z2 ,Z3 ,Z4 ,
38 4 E1X ,E1Y ,E1Z ,E2X ,E2Y ,E2Z ,
39 5 E3X ,E3Y ,E3Z ,NEL )
47#include "implicit_f.inc"
55 INTEGER,
INTENT(IN) :: JFT,JLT,NLAY,IREP,IGTYP,NEL
57 . X1(*), X2(*), X3(*), X4(*), Y1(*), Y2(*), Y3(*), Y4(*),
58 . Z1(*), Z2(*), Z3(*), Z4(
60TYPE (ELBUF_STRUCT_) :: ELBUF_STR
71 . SUMA,S1,S2,X21,X32,X34,X41,Y21,Y32,Y34,Y41,Z21,Z32,Z34,Z41
72 my_real,
DIMENSION(MVSIZ) ::
73 . e11,e12,e13,e21,e22,e23,rx,ry,rz,sx,sy,sz
99 e3x(i) = e1y(i)*e2z(i)-e1z(i)*e2y(i)
100 e3y(i) = e1z(i)*e2x(i)-e1x(i)*e2z(i)
101 e3z(i) = e1x(i)*e2y(i)-e1y(i)*e2x(i)
116 IF (ishfram == 0 .OR. igtyp == 16 )
THEN
120 suma = one /
max(sqrt(suma),em20)
121 e3x(i) = e3x(i) * suma
122 e3y(i) = e3y(i) * suma
123 e3z(i) = e3z(i) * suma
125 s1 = e1x(i)*e1x(i)+e1y(i)*e1y(i)+e1z(i)*e1z(i)
126 s2 = e2x(i)*e2x(i)+e2y(i)*e2y(i)+e2z(i)*e2z(i)
128 e1x(i) = e1x(i) + (e2y(i)*e3z(i)-e2z(i)*e3y(i))*suma
129 e1y(i) = e1y(i) + (e2z(i)*e3x(i)-e2x(i)*e3z(i))*suma
130 e1z(i) = e1z(i) + (e2x(i)*e3y(i)-e2y(i)*e3x(i))*suma
132 suma = e1x(i)*e1x(i)+e1y(i)*e1y(i)+e1z(i)*e1z(i)
133 suma = one /
max(sqrt(suma),em20)
134 e1x(i) = e1x(i) * suma
135 e1y(i) = e1y(i) * suma
136 e1z(i) = e1z(i) * suma
138 e2x(i) = e3y(i) * e1z(i) - e3z(i) * e1y(i)
139 e2y(i) = e3z(i) * e1x(i) - e3x(i) * e1z(i)
140 e2z(i) = e3x(i) * e1y(i) - e3y(i) * e1x(i)
142 ELSEIF (ishfram == 2)
THEN
145 suma = e2x(i)*e2x(i)+e2y(i)*e2y(i)+e2z(i)*e2z(i)
146 e1x(i) = e1x(i)*suma + e2y(i)*e3z(i)-e2z(i)*e3y(i)
147 e1y(i) = e1y(i)*suma + e2z(i)*e3x(i)-e2x(i)*e3z(i)
148 e1z(i) = e1z(i)*suma + e2x(i)*e3y(i)-e2y(i)*e3x(i)
149 suma = e1x(i)*e1x(i)+e1y(i)*e1y(i)+e1z(i)*e1z(i)
150 suma = one/
max(sqrt(suma),em20)
155 suma = e3x(i)*e3x(i)+e3y(i)*e3y(i)+e3z(i)*e3z(i)
156 suma = one /
max(sqrt(suma),em20)
157 e3x(i) = e3x(i) * suma
158 e3y(i) = e3y(i) * suma
159 e3z(i) = e3z(i) * suma
161 e2x(i) = e3y(i)*e1z(i)-e3z(i)*e1y(i)
162 e2y(i) = e3z(i)*e1x(i)-e3x(i)*e1z(i)
163 e2z(i) = e3x(i)*e1y(i)-e3y(i)*e1x(i)
164 suma = e2x(i)*e2x(i)+e2y(i)*e2y(i)+e2z(i)*e2z(i)
165 suma = one/
max(sqrt(suma),em20)
174 CALL cortdir3(elbuf_str,dir_a ,dir_b ,jft ,jlt ,
175 . nlay ,irep ,rx ,ry ,rz ,
176 . sx ,sy ,sz ,e1x ,e1y ,
177 . e1z ,e2x ,e2y ,e2z ,nel )
subroutine cnvec3(elbuf_str, dir_a, dir_b, jft, jlt, irep, igtyp, nlay, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, nel)
subroutine cortdir3(elbuf_str, dir_a, dir_b, jft, jlt, nlay, irep, rx, ry, rz, sx, sy, sz, e1x, e1y, e1z, e2x, e2y, e2z, nel)