48
49
50
51#include "implicit_f.inc"
52
53
54
55
56
57
58 INTEGER, INTENT(INOUT) :: ISORTH
59
61 . x(3,*),tens(6),gama(6)
62 INTEGER IXS(NIXS), KCVT, KHBE, ITYP
63
64
65
66
68 . x1, x2, x3, x4,
69 . x5, x6, x7, x8,
70 . y1, y2, y3, y4,
71 . y5, y6, y7, y8,
72 . z1, z2, z3, z4,
73 . z5, z6, z7, z8,
74 . l11,l12,l13,l22,l23,l33,
75 . r11,r12,r13,r21,r22,r23,r31,r32,r33,
76 . g11,g22,g33,g12,g21,g23,g32,g13,g31,
77 . t11,t22,t33,t12,t21,t23,t32,t13,t31,
78 . s11,s12,s21,s13,s31,s22,s23,s32,s33
79 INTEGER NC1, NC2, NC3, NC4,
80 . NC5, NC6, NC7, NC8
81
82
83 IF (kcvt==0.AND.isorth==0) RETURN
84 nc1=ixs(2)
85 nc2=ixs(3)
86 nc3=ixs(4)
87 nc4=ixs(5)
88 nc5=ixs(6)
89 nc6=ixs(7)
90 nc7=ixs(8)
91 nc8=ixs(9)
92
93
94
95 x1=x(1,nc1)
96 y1=x(2,nc1)
97 z1=x(3,nc1)
98 x2=x(1,nc2)
99 y2=x(2,nc2)
100 z2=x(3,nc2)
101 x3=x(1,nc3)
102 y3=x(2,nc3)
103 z3=x(3,nc3)
104 x4=x(1,nc4)
105 y4=x(2,nc4)
106 z4=x(3,nc4)
107 x5=x(1,nc5)
108 y5=x(2,nc5)
109 z5=x(3,nc5)
110 x6=x(1,nc6)
111 y6=x(2,nc6)
112 z6=x(3,nc6)
113 x7=x(1,nc7)
114 y7=x(2,nc7)
115 z7=x(3,nc7)
116 x8=x(1,nc8)
117 y8=x(2,nc8)
118 z8=x(3,nc8)
119
120 IF (ityp == 43) THEN
121
123 . x1, x2, x3, x4, x5, x6, x7, x8,
124 . y1, y2, y3, y4, y5, y6, y7, y8,
125 . z1, z2, z3, z4, z5, z6, z7, z8,
126 . r11, r12, r13, r21, r22, r23, r31, r32, r33)
127 ELSEIF(khbe/=15)THEN
128
129 IF (khbe==24.OR.khbe==14) THEN
131 . x1, x2, x3, x4, x5, x6, x7, x8,
132 . y1, y2, y3, y4, y5, y6, y7, y8,
133 . z1, z2, z3, z4, z5, z6, z7, z8,
134 . r12, r13, r11, r22, r23, r21, r32, r33, r31)
135 ELSE
137 . x1, x2, x3, x4, x5, x6, x7, x8,
138 . y1, y2, y3, y4, y5, y6, y7, y8,
139 . z1, z2, z3, z4, z5, z6, z7, z8,
140 . r11, r12, r13, r21, r22, r23, r31, r32, r33)
141 ENDIF
142 ELSE
144 . x1, x2, x3, x4, x5, x6, x7, x8,
145 . y1, y2, y3, y4, y5, y6, y7, y8,
146 . z1, z2, z3, z4, z5, z6, z7, z8,
147 . r11, r12, r13, r21, r22, r23, r31, r32, r33)
148 ENDIF
149
150
151
152 IF (kcvt==2) THEN
153 IF (isorth > 0) THEN
154 g11=gama(1)
155 g21=gama(2)
156 g31=gama(3)
157 g12=gama(4)
158 g22=gama(5)
159 g32=gama(6)
160 g13=g21*g32-g31*g22
161 g23=g31*g12-g11*g32
162 g33=g11*g22-g21*g12
163
164 t11=r11*g11+r12*g21+r13*g31
165 t12=r11*g12+r12*g22+r13*g32
166 t13=r11*g13+r12*g23+r13*g33
167 t21=r21*g11+r22*g21+r23*g31
168 t22=r21*g12+r22*g22+r23*g32
169 t23=r21*g13+r22*g23+r23*g33
170 t31=r31*g11+r32*g21+r33*g31
171 t32=r31*g12+r32*g22+r33*g32
172 t33=r31*g13+r32*g23+r33*g33
173 r11=t11
174 r12=t12
175 r13=t13
176 r21=t21
177 r22=t22
178 r23=t23
179 r31=t31
180 r32=t32
181 r33=t33
182 ENDIF
183 ENDIF
184
185
186
187
188
189
190
191
192
193
194
195
196
197 l11 =tens(1)
198 l22 =tens(2)
199 l33 =tens(3)
200 l12 =tens(4)
201 l23 =tens(5)
202 l13 =tens(6)
203 s11 =l11*r11+l12*r12+l13*r13
204 s12 =l11*r21+l12*r22+l13*r23
205 s13 =l11*r31+l12*r32+l13*r33
206 s21 =l12*r11+l22*r12+l23*r13
207 s22 =l12*r21+l22*r22+l23*r23
208 s23 =l12*r31+l22*r32+l23*r33
209 s31 =l13*r11+l23*r12+l33*r13
210 s32 =l13*r21+l23*r22+l33*r23
211 s33 =l13*r31+l23*r32+l33*r33
212 tens(1)=r11*s11+r12*s21+r13*s31
213 tens(2)=r21*s12+r22*s22+r23*s32
214 tens(3)=r31*s13+r32*s23+r33*s33
215 tens(4)=r11*s12+r12*s22+r13*s32
216 tens(5)=r21*s13+r22*s23+r23*s33
217 tens(6)=r11*s13+r12*s23+r13*s33
218
219 RETURN
subroutine scoor431(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 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)