42
43
44
45#include "implicit_f.inc"
46
47
48
49#include "mvsiz_p.inc"
50
51
52
53
54
55
56 INTEGER NEL
57
59 . x(3,*),
60 . x1(*), x2(*), x3(*), x4(*), x5(*), x6(*), x7(*), x8(*),
61 . y1(*), y2(*), y3(*), y4(*), y5(*), y6(*), y7(*), y8(*),
62 . z1(*), z2(*), z3(*), z4(*), z5(*), z6(*), z7(*), z8(*),
63 . offg(*), off(*), sav(nel,21), gama0(nel,6),gama(mvsiz,6),
64 . r(3,3,mvsiz)
66 . k11(9,*) ,k12(9,*) ,k13(9,*) ,k14(9,*) ,k15(9,*) ,
67 . k16(9,*) ,k17(9,*) ,k18(9,*) ,k22(9,*) ,k23(9,*) ,
68 . k24(9,*) ,k25(9,*) ,k26(9,*) ,k27(9,*) ,k28(9,*) ,
69 . k33(9,*) ,k34(9,*) ,k35(9,*) ,k36(9,*) ,k37(9,*) ,
70 . k38(9,*) ,k44(9,*) ,k45(9,*) ,k46(9,*) ,k47(9,*) ,
71 . k48(9,*) ,k55(9,*) ,k56(9,*) ,k57
72 . k66(9,*) ,k67(9,*) ,k68(9,*) ,k77(9,*) ,k78(9,*) ,
73 . k88(9,*)
74 INTEGER NC1(*), NC2(*), NC3(*), NC4(*),
75 . NC5(*), NC6(*), NC7(*), NC8(*), MXT(*), NGL(*),NGEO(*)
76 INTEGER IXS(NIXS,*),KHBE
77 double precision
78 . trm(nel,24,24),invj(mvsiz,3,3),kl(576,nel),
79 . v1(mvsiz,9), v2(mvsiz,9), v3(mvsiz,9), v4(mvsiz,9),
80 . v5(mvsiz,9), v6(mvsiz,9), v7(mvsiz,9), v8(mvsiz,9)
81
82
83
84 INTEGER I,J, MXT_1
85
87 . g11(mvsiz),g12(mvsiz),g13(mvsiz),
88 . g21(mvsiz),g22(mvsiz),g23(mvsiz),
89 . g31(mvsiz),g32(mvsiz),g33(mvsiz),
90 . t11(mvsiz),t12(mvsiz),t13(mvsiz),
91 . t21(mvsiz),t22(mvsiz),t23(mvsiz),
92 . t31(mvsiz),t32(mvsiz),t33(mvsiz)
94 . xl,yl,zl
96 . rx(mvsiz) , ry(mvsiz) , rz(mvsiz) ,
97 . sx(mvsiz) , sy(mvsiz) , sz(mvsiz) ,
98 . tx(mvsiz) , ty(mvsiz) , tz(mvsiz)
99 DOUBLE PRECISION DX_DR,DX_DS,DX_DT,DY_DR,DY_DS,DY_DT,DZ_DR,DZ_DS,DZ_DT
100 DOUBLE PRECISION X0(8),Y0(8),Z0(8),,DETJ0
101
102C
103 mxt_1 = ixs(1,1)
104 DO i=1,nel
105 ngeo(i)=ixs(10,i)
106 ngl(i)=ixs(11,i)
107 mxt(i)=mxt_1
108 nc1(i)=ixs(2,i)
109 nc2(i)=ixs(3,i)
110 nc3(i)=ixs(4,i)
111 nc4(i)=ixs(5,i)
112 nc5(i)=ixs(6,i)
113 nc6(i)=ixs(7,i)
114 nc7(i)=ixs(8,i)
115 nc8(i)=ixs(9,i)
116 ENDDO
117
118
119
120 DO i=1,nel
121 x1(i)=x(1,nc1(i))
122 y1(i)=x(2,nc1(i))
123 z1(i)=x(3,nc1(i))
124 x2(i)=x(1,nc2(i))
125 y2(i)=x(2,nc2(i))
126 z2(i)=x(3,nc2(i))
127 x3(i)=x(1,nc3(i))
128 y3(i)=x(2,nc3(i))
129 z3(i)=x(3,nc3(i))
130 x4(i)=x(1,nc4(i))
131 y4(i)=x(2,nc4(i))
132 z4(i)=x(3,nc4(i))
133 x5(i)=x(1,nc5(i))
134 y5(i)=x(2,nc5(i))
135 z5(i)=x(3,nc5(i))
136 x6(i)=x(1,nc6(i))
137 y6(i)=x(2,nc6(i))
138 z6(i)=x(3,nc6(i))
139 x7(i)=x(1,nc7(i))
140 y7(i)=x(2,nc7(i))
141 z7(i)=x(3,nc7(i))
142 x8(i)=x(1,nc8(i))
143 y8(i)=x(2,nc8(i))
144 z8(i)=x(3,nc8(i))
145 ENDDO
146
147
148
149 DO i=1,nel
150 x0(1) = zero
151 y0(1) = zero
152 z0(1) = zero
153 x0(2) = sav(i,1)
154 y0(2) = sav(i,2)
155 z0(2) = sav(i,3)
156 x0(3) = sav(i,4)
157 y0(3) = sav(i,5)
158 z0(3) = sav(i,6)
159 x0(4) = sav(i,7)
160 y0(4) = sav(i,8)
161 z0(4) = sav(i,9)
162 x0(5) = sav(i,10)
163 y0(5) = sav(i,11)
164 z0(5) = sav(i,12)
165 x0(6) = sav(i,13)
166 y0(6) = sav(i,14)
167 z0(6) = sav(i,15)
168 x0(7) = sav(i,16)
169 y0(7) = sav(i,17)
170 z0(7) = sav(i,18)
171 x0(8) = sav(i,19)
172 y0(8) = sav(i,20)
173 z0(8) = sav(i,21)
174
175 dx_dr = (x0(3)+x0(4)+x0(7)+x0(8))-(x0(1)+x0(2)+x0(5)+x0(6))
176 dy_dr = (y0(3)+y0(4)+y0(7)+y0(8))-(y0(1)+y0(2)+y0(5)+y0(6))
177 dz_dr = (z0(3)+z0(4)+z0(7)+z0(8))-(z0(1)+z0(2)+z0(5)+z0(6))
178 dx_ds = (x0(5)+x0(6)+x0(7)+x0(8))-(x0(1)+x0(2)+x0(3)+x0(4))
179 dy_ds = (y0(5)+y0(6)+y0(7)+y0(8))-(y0(1)+y0(2)+y0(3)+y0(4))
180 dz_ds = (z0(5)+z0(6)+z0(7)+z0(8))-(z0(1)+z0(2)+z0(3)+z0(4))
181 dx_dt = (x0(2)+x0(3)+x0(6)+x0(7))-(x0(1)+x0(4)+x0(5)+x0(8))
182 dy_dt = (y0(2)+y0(3)+y0(6)+y0(7))-(y0(1)+y0(4)+y0(5)+y0(8))
183 dz_dt = (z0(2)+z0(3)+z0(6)+z0(7))-(z0(1)+z0(4)+z0(5)+z0(8))
184 detj0 =(dx_dr*(dy_ds*dz_dt-dz_ds*dy_dt)
185 . -dx_ds*(dy_dr*dz_dt-dy_dt*dz_dr)
186 . +dx_dt*(dy_dr*dz_ds-dy_ds*dz_dr))
187 detm1 = one/detj0
188 detm1 = eight*detm1
189 invj(i,1,1) = (dy_ds*dz_dt-dz_ds*dy_dt)*detm1
190 invj(i,2,1) = (dz_dr*dy_dt-dy_dr*dz_dt)*detm1
191 invj(i,3,1) = (dy_dr*dz_ds-dy_ds*dz_dr)*detm1
192 invj(i,1,2) = (dx_dt*dz_ds-dx_ds*dz_dt)*detm1
193 invj(i,2,2) = (dx_dr*dz_dt-dx_dt*dz_dr)*detm1
194 invj(i,3,2) = (dx_ds*dz_dr-dx_dr*dz_ds)*detm1
195 invj(i,1,3) = (dx_ds*dy_dt-dx_dt*dy_ds)*detm1
196 invj(i,2,3) = (dx_dt*dy_dr-dx_dr*dy_dt)*detm1
197 invj(i,3,3) = (dx_dr*dy_ds-dx_ds*dy_dr)*detm1
198 ENDDO
200 1 sav, invj, x1, x2,
201 2 x3, x4, x5, x6,
202 3 x7, x8, y1, y2,
203 4 y3, y4, y5, y6,
204 5 y7, y8, z1, z2,
205 6 z3, z4, z5, z6,
206 7 z7, z8, v1, v2,
207 8 v3, v4, v5, v6,
208 9 v7, v8, r, trm,
209 a nel)
210
211
212
213 DO i = 1,nel
214 x1(i) = zero
215 y1(i) = zero
216 z1(i) = zero
217 x2(i) = sav(i,1)
218 y2(i) = sav(i,2)
219 z2(i) = sav(i,3)
220 x3(i) = sav(i,4)
221 y3(i) = sav(i,5)
222 z3(i) = sav(i,6)
223 x4(i) = sav(i,7)
224 y4(i) = sav(i,8)
225 z4(i) = sav(i,9)
226 x5(i) = sav(i,10)
227 y5(i) = sav(i,11)
228 z5(i) = sav(i,12)
229 x6(i) = sav(i,13)
230 y6(i) = sav(i,14)
231 z6(i) = sav(i,15)
232 x7(i) = sav(i,16)
233 y7(i) = sav(i,17)
234 z7(i) = sav(i,18)
235 x8(i) = sav(i,19)
236 y8(i) = sav(i,20)
237 z8(i) = sav(i,21)
238 ENDDO
239 DO i=1,nel
240 IF(offg(i)>one)THEN
241 off(i) = offg(i)-one
242 ENDIF
243 ENDDO
244 DO i=1,nel
245 off(i) =
min(one,offg(i))
246 ENDDO
247
248 DO j=1,9
249 DO i=1,nel
250 k11(j,i)=zero
251 k12(j,i)=zero
252 k13(j,i)=zero
253 k14(j,i)=zero
254 k15(j,i)=zero
255 k16(j,i)=zero
256 k17(j,i)=zero
257 k18(j,i)=zero
258 k22(j,i)=zero
259 k23(j,i)=zero
260 k24(j,i)=zero
261 k25(j,i)=zero
262 k26(j,i)=zero
263 k27(j,i)=zero
264 k28(j,i)=zero
265 k33(j,i)=zero
266 k34(j,i)=zero
267 k35(j,i)=zero
268 k36(j,i)=zero
269 k37(j
270 k38(j,i)=zero
271 k44(j,i)=zero
272 k45(j,i)=zero
273 k46(j,i)=zero
274 k47(j,i)=zero
275 k48(j,i)=zero
276 k55(j,i)=zero
277 k56(j,i)=zero
278 k57(j,i)=zero
279 k58(j,i)=zero
280 k66(j,i)=zero
281 k67(j,i)=zero
282 k68(j,i)=zero
283 k77(j,i)=zero
284 k78(j,i)=zero
285 k88(j,i)=zero
286 ENDDO
287 ENDDO
288
289 DO j=1,nel
290 DO i=1,576
291 kl(i,j)=zero
292 ENDDO
293 ENDDO
294
295 RETURN
subroutine crtrans_imp(sav, invj, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8, v1, v2, v3, v4, v5, v6, v7, v8, r, trm, nel)