35
36
37
38#include "implicit_f.inc"
39
40
41
42
44 . x(3,*),gama(6)
45 INTEGER IXS(NIXS), KHBE, ITYP,ICSIG
46
47
48
49
51 . x1, x2, x3, x4,
52 . x5, x6, x7, x8,
53 . y1, y2, y3, y4,
54 . y5, y6, y7, y8,
55 . z1, z2, z3, z4,
56 . z5, z6, z7, z8,
57 . l11,l12,l13,l22,l23,l33,
58 . r11,r12,r13,r21,r22,r23,r31,r32,r33,
59 . g11,g22,g33,g12,g21,g23,g32,g13,g31,
60 . t11,t22,t33,t12,t21,t23,t32,t13,t31,
61 . s11,s12,s21,s13,s31,s22,s23,s32,s33,
62 . cp ,sp
63 INTEGER NC1, NC2, NC3, NC4,
64 . NC5, NC6, NC7, NC8
65
66 nc1=ixs(2)
67 nc2=ixs(3)
68 nc3=ixs(4)
69 nc4=ixs(5)
70 nc5=ixs(6)
71 nc6=ixs(7)
72 nc7=ixs(8)
73 nc8=ixs(9)
74
75
76
77 x1=x(1,nc1)
78 y1=x(2,nc1)
79 z1=x(3,nc1)
80 x2=x(1,nc2)
81 y2=x(2,nc2)
82 z2=x(3,nc2)
83 x3=x(1,nc3)
84 y3=x(2,nc3)
85 z3=x(3,nc3)
86 x4=x(1,nc4)
87 y4=x(2,nc4)
88 z4=x(3,nc4)
89 x5=x(1,nc5)
90 y5=x(2,nc5)
91 z5=x(3,nc5)
92 x6=x(1,nc6)
93 y6=x(2,nc6)
94 z6=x(3,nc6)
95 x7=x(1,nc7)
96 y7=x(2,nc7)
97 z7=x(3,nc7)
98 x8=x(1,nc8)
99 y8=x(2,nc8)
100 z8=x(3,nc8)
101
102 IF(khbe/=15)THEN
103
104 IF (khbe==24.OR.khbe==14) THEN
106 . x1, x2, x3, x4, x5, x6, x7, x8,
107 . y1, y2, y3, y4, y5, y6, y7, y8,
108 . z1, z2, z3, z4, z5, z6, z7, z8,
109 . r12, r13, r11, r22, r23, r21, r32, r33, r31)
110 ELSE
112 . x1, x2, x3, x4, x5, x6, x7, x8,
113 . y1, y2, y3, y4, y5, y6, y7, y8,
114 . z1, z2, z3, z4, z5, z6, z7, z8,
115 . r11, r12, r13, r21, r22, r23, r31, r32, r33)
116 ENDIF
117 ELSE
119 . x1, x2, x3, x4, x5, x6, x7, x8,
120 . y1, y2, y3, y4, y5, y6, y7, y8,
121 . z1, z2, z3, z4, z5, z6, z7, z8,
122 . r11, r12, r13, r21, r22, r23, r31, r32, r33)
123 ENDIF
124
125
126
127 IF(ityp == 21 .OR. ityp == 22) THEN
128 cp = gama(1)
129 sp = gama(2)
130 IF(icsig == 10.OR.khbe == 15)THEN
131 t11=r11*cp+r12*sp
132 t12=r21*cp+r22*sp
133 t13=r31*cp+r32*sp
134 t21=r12*cp-r11*sp
135 t22=r22*cp-r21*sp
136 t23=r32*cp-r31*sp
137 ELSEIF(icsig == 100)THEN
138 t11=r13*cp+r11*sp
139 t12=r23*cp+r21*sp
140 t13=r33*cp+r31*sp
141 t21=r11*cp-r13*sp
142 t22=r21*cp-r23*sp
143 t23=r31*cp-r33*sp
144
145 ELSE
146 t11=r12*cp+r13*sp
147 t12=r22*cp+r23*sp
148 t13=r32*cp+r33*sp
149 t21=r13*cp-r12*sp
150 t22=r23*cp-r22*sp
151 t23=r33*cp-r32*sp
152 ENDIF
153 gama(1)=t11
154 gama(2)=t12
155 gama(3)=t13
156 gama(4)=t21
157 gama(5)=t22
158 gama(6)=t23
159 ELSE
160 g11=gama(1)
161 g21=gama(2)
162 g31=gama(3)
163 g12=gama(4)
164 g22=gama(5)
165 g32=gama(6)
166 g13=g21*g32-g31*g22
167 g23=g31*g12-g11*g32
168 g33=g11*g22-g21*g12
169
170 t11=r11*g11+r12*g21+r13*g31
171 t12=r11*g12+r12*g22+r13*g32
172 t13=r11*g13+r12*g23+r13*g33
173 t21=r21*g11+r22*g21+r23*g31
174 t22=r21*g12+r22*g22+r23*g32
175 t23=r21*g13+r22*g23+r23*g33
176 t31=r31*g11+r32*g21+r33*g31
177 t32=r31*g12+r32*g22+r33*g32
178 t33=r31*g13+r32*g23+r33*g33
179 gama(1)=t11
180 gama(2)=t21
181 gama(3)=t31
182 gama(4)=t12
183 gama(5)=t22
184 gama(6)=t32
185 ENDIF
186
187 RETURN
subroutine scortho31(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
subroutine sortho31(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)