47
48
49
50 USE elbufdef_mod
51
52
53
54#include "implicit_f.inc"
55
56
57
58#include "mvsiz_p.inc"
59
60
61
62#include "com04_c.inc"
63#include "param_c.inc"
64
65
66
67 INTEGER, INTENT(IN) :: NFT
68 INTEGER, INTENT(IN) :: MTN
69 INTEGER, INTENT(IN) :: JHBE
70 INTEGER, INTENT(IN) :: JCVT
71 INTEGER, INTENT(IN) :: IGTYP
72 INTEGER, INTENT(IN) :: ISORTH
73 INTEGER NEL ,ICP, ICSIG,IKGEO,MPT
74 INTEGER NDOF(*) ,IADK(*) ,JDIK(*),
75 . IXS(NIXS,*),IPM(NPROPMI,*),IGEO(NPROPGI,*),ETAG(*),IDDL(*)
76
78 . pm(npropm,*), geo(npropg,*), x(*),
79 . k11(9,mvsiz) , k12(9,mvsiz) ,k13(9,mvsiz) ,k14(9,mvsiz) ,
80 . k15(9,mvsiz) , k16(9,mvsiz) ,k17(9,mvsiz) ,k18(9,mvsiz) ,
81 . k22(9,mvsiz) ,k23(9,mvsiz) ,k24(9,mvsiz) ,k25(9,mvsiz) ,
82 . k26(9,mvsiz) ,k27(9,mvsiz) ,k28(9,mvsiz) ,k33(9,mvsiz) ,
83 . k34(9,mvsiz) ,k35(9,mvsiz) ,k36(9,mvsiz) ,k37(9,mvsiz) ,
84 . k38(9,mvsiz) ,k44(9,mvsiz) ,k45(9,mvsiz) ,k46(9,mvsiz) ,
85 . k47(9,mvsiz) ,k48(9,mvsiz) ,k55(9,mvsiz) ,k56(9,mvsiz) ,
86 . k57(9,mvsiz) ,k58(9,mvsiz) ,k66(9,mvsiz) ,k67(9,mvsiz) ,
87 . k68(9,mvsiz) ,k77(9,mvsiz) ,k78(9,mvsiz) ,k88(9,mvsiz) ,
88 . offg(mvsiz) ,bufmat(*) ,k_diag(*) ,k_lt(*)
89 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
90
91
92
93 INTEGER LCO,NF1,IFLAG,NB3S,I,J,IKSUP,IKORTH,IADBUF,IPREDU,
94 . IR, IS, IT,IL,IP,ICR,ICS,ICT,ICPG,NPTR,NPTS,NPTT,NLAY,NPPT,
95 . IAD0,PID , L, M, N,IJ,JJ,K
96 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ),IDEG(MVSIZ)
98 . voln(mvsiz), deltax(mvsiz),
99 . ajc1(mvsiz) , ajc2(mvsiz) , ajc3(mvsiz) ,
100 . ajc4(mvsiz) , ajc5(mvsiz) , ajc6(mvsiz) ,
101 . ajc7(mvsiz) , ajc8(mvsiz) , ajc9(mvsiz) ,
102 . aj1(mvsiz) , aj2(mvsiz) , aj3(mvsiz) ,
103 . aj4(mvsiz) , aj5(mvsiz) , aj6(mvsiz) ,
104 . aj7(mvsiz) , aj8(mvsiz) , aj9(mvsiz)
105
106 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
107 . NC5(MVSIZ), NC6(MVSIZ), NC7(MVSIZ), NC8(MVSIZ)
109 . off(mvsiz) , rhoo(mvsiz),
110 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
111 . x5(mvsiz), x6(mvsiz), x7(mvsiz), x8(mvsiz),
112 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
113 . y5(mvsiz), y6(mvsiz), y7(mvsiz), y8(mvsiz),
114 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
115 . z5(mvsiz), z6(mvsiz), z7(mvsiz), z8(mvsiz), r
116
118
119
120
121 . g1x(mvsiz),g2x(mvsiz),g3x(mvsiz),
122 . g1y(mvsiz),g2y(mvsiz),g3y(mvsiz),
123 . g1z(mvsiz),g2z(mvsiz),g3z(mvsiz)
125 . bid,wi,smax(mvsiz),volg(mvsiz),pp(mvsiz),usb(mvsiz),
126 . volm(mvsiz),sigm(mvsiz),nu1(mvsiz),gama(mvsiz,6)
127 double precision
128 . kl(24,24,nel),ktemp(24,24),ks(24,24,nel), trm(nel,24,24),
129 . dn_x(mvsiz,8),dn_y(mvsiz,8),dn_z(mvsiz,8),
130 . dn_r(8),dn_s(8),dn_t(8),invj(9,mvsiz),
131 . v1(mvsiz,9), v2(mvsiz,9), v3(mvsiz,9), v4(mvsiz,9),
132 . v5(mvsiz,9), v6(mvsiz,9), v7(mvsiz,9), v8(mvsiz,9)
133 TYPE(G_BUFEL_) ,POINTER :: GBUF
134 TYPE(L_BUFEL_) ,POINTER :: LBUF
135
137 . w_gauss(9,9),a_gauss(9,9)
138 DATA w_gauss /
139 1 2. ,0. ,0. ,
140 1 0. ,0. ,0. ,
141 1 0. ,0. ,0. ,
142 2 1. ,1. ,0. ,
143 2 0. ,0. ,0. ,
144 2 0. ,0. ,0. ,
145 3 0.555555555555556,0.888888888888889,0.555555555555556,
146 3 0. ,0. ,0. ,
147 3 0. ,0. ,0. ,
148 4 0.347854845137454,0.652145154862546,0.652145154862546,
149 4 0.347854845137454,0. ,0. ,
150 4 0. ,0. ,0. ,
151 5 0.236926885056189,0.478628670499366,0.568888888888889,
152 5 0.478628670499366,0.236926885056189,0. ,
153 5 0. ,0. ,0. ,
154 6 0.171324492379170,0.360761573048139,0.467913934572691,
155 6 0.467913934572691,0.360761573048139,0.171324492379170,
156 6 0. ,0. ,0. ,
157 7 0.129484966168870,0.279705391489277,0.381830050505119,
158 7 0.417959183673469,0.381830050505119,0.279705391489277,
159 7 0.129484966168870,0. ,0. ,
160 8 0.101228536290376,0.222381034453374,0.313706645877887,
161 8 0.362683783378362,0.362683783378362,0.313706645877887,
162 8 0.222381034453374,0.101228536290376,0. ,
163 9 0.081274388361574,0.180648160694857,0.260610696402935,
164 9 0.312347077040003,0.330239355001260,0.312347077040003,
165 9 0.260610696402935,0.180648160694857,0.081274388361574/
166 DATA a_gauss /
167 1 0. ,0. ,0. ,
168 1 0. ,0. ,0. ,
169 1 0. ,0. ,0. ,
170 2 -.577350269189626,0.577350269189626,0. ,
171 2 0. ,0. ,0. ,
172 2 0. ,0. ,0. ,
173 3 -.774596669241483,0. ,0.774596669241483,
174 3 0. ,0. ,0. ,
175 3 0. ,0. ,0. ,
176 4 -.861136311594053,-.339981043584856,0.339981043584856,
177 4 0.861136311594053,0. ,0. ,
178 4 0. ,0. ,0. ,
179 5 -.906179845938664,-.538469310105683,0. ,
180 5 0.538469310105683,0.906179845938664,0. ,
181 5 0. ,0. ,0. ,
182 6 -.932469514203152,-.661209386466265,-.238619186083197,
183 6 0.238619186083197,0.661209386466265,0.932469514203152,
184 6 0. ,0. ,0. ,
185 7 -.949107912342759,-.741531185599394,-.405845151377397,
186 7 0. ,0.405845151377397,0.741531185599394,
187 7 0.949107912342759,0. ,0. ,
188 8 -.960289856497536,-.796666477413627,-.525532409916329,
189 8 -.183434642495650,0.183434642495650,0.525532409916329,
190 8 0.796666477413627,0.960289856497536,0. ,
191 9 -.968160239507626,-.836031107326636,-.613371432700590,
192 9 -.324253423403809,0. ,0.324253423403809,
193 9 0.613371432700590,0.836031107326636,0.968160239507626/
194
196 . hh(2,mvsiz),fac(mvsiz),c1,e0(mvsiz),dd(9,mvsiz),
197 . dm(9,mvsiz),gm(9,mvsiz),dgm(9,mvsiz),dg(9,mvsiz),
198 . g33(9,mvsiz),hh1(2,mvsiz),lamda,nu,gg
200 . a11(mvsiz), a12(mvsiz), a13(mvsiz),
201 . a21(mvsiz), a22(mvsiz), a23(mvsiz),
202 . a31(mvsiz), a32(mvsiz), a33(mvsiz)
203
204
205
206
207
208 gbuf => elbuf_str%GBUF
209 nlay = elbuf_str%NLAY
210 IF (mpt == 222) THEN
211 nptr = 2
212 npts = 2
213 nptt = 2
214 ELSE
215 nptr = elbuf_str%NPTR
216 npts = elbuf_str%NPTS
217 nptt = elbuf_str%NPTT
218 ENDIF
219 iad0 = 1
220 IF (isorth > 0) iad0 = 1 + 6*nel
221 IF (igtyp == 21.OR.igtyp == 22) THEN
222 ikorth=2
223 ELSEIF (isorth>0) THEN
224 ikorth=1
225 ELSE
226 ikorth=0
227 ENDIF
228
229 nf1=nft+1
230
232 . x1, x2, x3, x4, x5, x6, x7, x8,
233 . y1, y2, y3, y4, y5, y6, y7, y8,
234 . z1, z2, z3, z4, z5, z6, z7, z8,
235 . gbuf%OFF,offg,gbuf%SMSTR, gbuf%COR_FR,
236
237 . v1,v2,v3,v4,v5,v6,v7,v8,
238 . nc1,nc2,nc3,nc4,nc5,nc6,nc7,nc8,ngl,mxt,ngeo,
239 . k11,k12,k13,k14,k15,k16,k17,k18,k22,k23,
240 . k24,k25,k26,k27,k28,k33,k34,k35,k36,k37,
241 . k38,k44,k45,k46,k47,k48,k55,k56,k57,k58,
242 . k66,k67,k68,k77,k78,k88,jhbe,gbuf%GAMA,gama,
243 . nel,trm,kl)
244
245 pid=ngeo(1)
246
247
248 DO i=1,nel
249 nu =pm(21,mxt(i))
250 c1 =three*pm(32,mxt(i))/(one+nu)
251 lamda=c1*nu
252 gg =c1*(one-two*nu)
253 hh(1,i)=lamda
254 hh(2,i)=gg*half
255 ENDDO
256 icpg = icp
257 IF (jhbe/=14.AND.jhbe/=17.AND.jhbe/=24) THEN
258 icpg = 1
259 ENDIF
260
261
262
263
264 il = 1
265
266
267 DO is=1,npts
268 DO ir=1,nptr
269 DO it=1,nptt
270 IF (jhbe == 14.OR.jhbe == 12.OR.jhbe == 17) THEN
271 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
272 ELSE
273 lbuf => elbuf_str%BUFLY(il)%LBUF(1,1,1)
274 ENDIF
275
276 ip = ir + ( (is-1) + (it-1)*npts )*nptr
277 wi = w_gauss(ir,nptr)*w_gauss(is,npts)*w_gauss(it,nptt)
278
279
280
281
282
283
284
285
286
288 1 offg, off, voln, ngl,
289 2 a_gauss(it,nptt),a_gauss(ir,nptr),a_gauss(is,npts),wi,
290 3 x1, x2, x3, x4,
291 4 x5, x6, x7, x8,
292 5 y1, y2, y3, y4,
293 6 y5, y6, y7, y8,
294 7 z1, z2, z3, z4,
295 8 z5, z6, z7, z8,
296 9 a11, a12, a13, a21,
297 a a22, a23, a31, a32,
298 b a33, dn_r, dn_s, dn_t,
299 c invj, dn_x, dn_y, dn_z,
300 d volm, nel)
302 1 kl, hh, voln,
303 2 dn_y, dn_z, a_gauss(it,nptt),a_gauss(ir,nptr),
304 3 a_gauss(is,npts),dn_r, dn_s, dn_t,
305 4 invj, x1, x2, x3,
306 5 x4, x5, x6, x7,
307 6 x8, y1, y2, y3,
308 7 y4, y5, y6, y7,
309 8 y8, z1, z2, z3,
310 9 z4, z5, z6, z7,
311 a z8, a11, a12, a13,
312 b a21, a22, a23, a31,
313 c a32, a33, nel)
314 ENDDO
315 ENDDO
316 ENDDO
317
319 1 kl, trm, nel)
320
322 . gbuf%COR_NF,ks,v1,v2,v3,v4,v5,v6,v7,v8,
323 . nc1,nc2,nc3,nc4,nc5,nc6,nc7,nc8)
324 DO k=1,nel
325 DO j=1,24
326 DO i=1,24
327 kl(i,j,k)=kl(i,j,k)+ks(i,j,k)
328 ENDDO
329 ENDDO
330 ENDDO
331
332
333
335 1 1, nel, ixs(1,nf1), etag, offg)
336
337 DO k=1,nel
338 DO j=1,3
339 jj=3*(j-1)
340 DO i=1,3
341 ij= i+jj
342 k11(ij,k)=kl(i,j,k)
343 k22(ij,k)=kl(i+3,j+3,k)
344 k33(ij,k)=kl(i+6,j+6,k)
345 k44(ij,k)=kl(i+9,j+9,k)
346 k55(ij,k)=kl(i+12,j+12,k)
347 k66(ij,k)=kl(i+15,j+15,k)
348 k77(ij,k)=kl(i+18,j+18,k)
349 k88(ij,k)=kl(i+21,j+21,k)
350 k12(ij,k)=kl(i,j+3,k)
351 k13(ij,k)=kl(i,j+6,k)
352 k14(ij,k)=kl(i,j+9,k)
353 k15(ij,k)=kl(i,j+12,k)
354 k16(ij,k)=kl(i,j+15,k)
355 k17(ij,k)=kl(i,j+18,k)
356 k18(ij,k)=kl(i,j+21,k)
357 k23(ij,k)=kl(i+3,j+6,k)
358 k24(ij,k)=kl(i+3,j+9,k)
359 k25(ij,k)=kl(i+3,j+12,k)
360 k26(ij,k)=kl(i+3,j+15,k)
361 k27(ij,k)=kl(i+3,j+18,k)
362 k28(ij,k)=kl(i+3,j+21,k)
363 k34(ij,k)=kl(i+6,j+9,k)
364 k35(ij,k)=kl(i+6,j+12,k)
365 k36(ij,k)=kl(i+6,j+15,k)
366 k37(ij,k)=kl(i+6,j+18,k)
367 k38(ij,k)=kl(i+6,j+21,k)
368 k45(ij,k)=kl(i+9,j+12,k)
369 k46(ij,k)=kl(i+9,j+15,k)
370 k47(ij,k)=kl(i+9,j+18,k)
371 k48(ij,k)=kl(i+9,j+21,k)
372 k56(ij,k)=kl(i+12,j+15,k)
373 k57(ij,k)=kl(i+12,j+18,k)
374 k58(ij,k)=kl(i+12,j+21,k)
375 k67(ij,k)=kl(i+15,j+18,k)
376 k68(ij,k)=kl(i+15,j+21,k)
377 k78(ij,k)=kl(i+18,j+21,k)
378 ENDDO
379 ENDDO
380 ENDDO
381
383 1 ixs(1,nf1),nel ,iddl ,ndof ,k_diag,
384 2 k_lt ,iadk ,jdik ,k11 ,k12 ,
385 3 k13 ,k14 ,k15 ,k16 ,k17 ,
386 4 k18 ,k22 ,k23 ,k24 ,k25 ,
387 5 k26 ,k27 ,k28 ,k33 ,k34 ,
388 6 k35 ,k36 ,k37 ,k38 ,k44 ,
389 7 k45 ,k46 ,k47 ,k48 ,k55 ,
390 8 k56 ,k57 ,k58 ,k66 ,k67 ,
391 9 k68 ,k77 ,k78 ,k88 ,offg )
392
393 RETURN
subroutine assem_s8(ixs, nel, iddl, ndof, k_diag, k_lt, iadk, jdik, k11, k12, k13, k14, k15, k16, k17, k18, k22, k23, k24, k25, k26, k27, k28, k33, k34, k35, k36, k37, k38, k44, k45, k46, k47, k48, k55, k56, k57, k58, k66, k67, k68, k77, k78, k88, off)
subroutine s8eoff(jft, jlt, ixs, etag, off)
subroutine s8sderi3(offg, off, voldp, ngl, ksi, eta, zeta, wi, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, a11, a12, a13, a21, a22, a23, a31, a32, a33, dn_r, dn_s, dn_t, invj, dn_x, dn_y, dn_z, voln, nel)
subroutine s8sksig(x, ixs, nel, qf, ks, v1, v2, v3, v4, v5, v6, v7, v8, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8)
subroutine s8slke3(kl, hh, vol, dn_y, dn_z, ksi, eta, zeta, dn_r, dn_s, dn_t, invj, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, a11, a12, a13, a21, a22, a23, a31, a32, a33, nel)
subroutine s8scoork_imp(x, ixs, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, offg, off, sav, r, v1, v2, v3, v4, v5, v6, v7, v8, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, ngl, mxt, ngeo, k11, k12, k13, k14, k15, k16, k17, k18, k22, k23, k24, k25, k26, k27, k28, k33, k34, k35, k36, k37, k38, k44, k45, k46, k47, k48, k55, k56, k57, k58, k66, k67, k68, k77, k78, k88, khbe, gama0, gama, nel, trm, kl)
subroutine transk(kl, trm, nel)