54
55
56
57 USE elbufdef_mod
58
59
60
61#include "implicit_f.inc"
62
63
64
65#include "mvsiz_p.inc"
66
67
68
69#include "com01_c.inc"
70#include "param_c.inc"
71
72
73
74 INTEGER, INTENT(IN) :: ISMSTR
75 INTEGER, INTENT(IN) :: NFT
76 INTEGER, INTENT(IN) :: MTN
77 INTEGER, INTENT(IN) :: JMULT
78 INTEGER, INTENT(IN) :: JHBE
79 INTEGER, INTENT(IN) :: JCVT
80 INTEGER, INTENT(IN) :: IGTYP
81 INTEGER, INTENT(IN) :: ISORTH
82 INTEGER IXQ(NIXQ,*), ICP, ICSIG, IKGEO
83 INTEGER NEL, LIAD, NPG,
84 . IPM(NPROPMI,*), IGEO(NPROPGI,*), ETAG(*), IDDL(*),
85 . NDOF(*), IADK(*), JDIK(*)
87 . pm(npropm,*), geo(npropg,*), x(3,*),
88 . bufmat(*), k_diag(*), k_lt(*)
89 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115 INTEGER I,II,J,EP
116
117 INTEGER IKORTH,IADBUF,ICPG,IPREDU
118
119 INTEGER IAD0
120
121 INTEGER LCO
122
123 INTEGER NF1
124
125 INTEGER MXT(MVSIZ),
126 + NC1(MVSIZ),NC2(MVSIZ),NC3(MVSIZ),NC4(MVSIZ),
127 + NGL(MVSIZ),NGEO(MVSIZ)
128
129 INTEGER NNPT,NPTR,NPTS,IR,IS,IT,IP
130
131
132
133
134
135
136
137
138
139
140
141
142
144 + offg(mvsiz),off(mvsiz),gama(mvsiz,6),
145 + y1(mvsiz),y2(mvsiz),y3(mvsiz),y4(mvsiz),
146 + z1(mvsiz),z2(mvsiz),z3(mvsiz),z4(mvsiz),
147 + y12(mvsiz),y34(mvsiz),y13(mvsiz),y24(mvsiz),
148 + y14(mvsiz),y23(mvsiz),
149 + z12(mvsiz),z34(mvsiz),z13(mvsiz),z24(mvsiz),
150 + z14(mvsiz),z23(mvsiz),
151 + y234(mvsiz),y124(mvsiz),yavg(mvsiz),
152 + pyc1(mvsiz),pyc2(mvsiz),pzc1(mvsiz),pzc2(mvsiz),
153 + ay(mvsiz),ay1(mvsiz),ay2(mvsiz),ay3(mvsiz),ay4(mvsiz),
154 + aire(mvsiz),volu(mvsiz),
155 + py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
156 + pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),
157 + airn(mvsiz),voln(mvsiz),
158 + k11(2,2,mvsiz),k12(2,2,mvsiz),k13(2,2,mvsiz),k14(2,2,mvsiz),
159 + k22(2,2,mvsiz),k23(2,2,mvsiz),k24(2,2,mvsiz),
160 + k33(2,2,mvsiz),k34(2,2,mvsiz),k44(2,2,mvsiz),
161 + k11u(2,2,mvsiz),k12u(2,2,mvsiz),k13u(2,2,mvsiz),k14u(2,2,mvsiz),
162 + k22u(2,2,mvsiz),k23u(2,2,mvsiz),k24u(2,2,mvsiz),
163 + k33u(2,2,mvsiz),k34u(2,2,mvsiz),k44u(2,2,mvsiz),
164 + k11l(2,2,mvsiz),k12l(2,2,mvsiz),k13l(2,2,mvsiz),k14l(2,2,mvsiz),
165 + k22l(2,2,mvsiz),k23l(2,2,mvsiz),k24l(2,2,mvsiz),
166 + k33l(2,2,mvsiz),k34l(2,2,mvsiz),k44l(2,2,mvsiz),
167 + r11(mvsiz),r12(mvsiz),r13(mvsiz),
168 + r21(mvsiz),r22(mvsiz),r23(mvsiz),
169 + r31(mvsiz),r32(mvsiz),r33(mvsiz)
170
171
173 . nu(mvsiz),c1,e0(mvsiz),fac(mvsiz),bid(1),
174 . hh(2,mvsiz),hh1(2,mvsiz),
175 . dm(9,mvsiz),dgm(9,mvsiz),gm(9,mvsiz),
176 . dd(9,mvsiz),dg(9,mvsiz),gg(mvsiz),g33(9,mvsiz),
177 . byz1(mvsiz),byz2(mvsiz),byz3(mvsiz),byz4(mvsiz),
178 . bzy1(mvsiz),bzy2(mvsiz),bzy3(mvsiz),bzy4(mvsiz),
179 + nuu(mvsiz)
180
181
183 + vd2(mvsiz),vis(mvsiz),
184 + rx(mvsiz),ry(mvsiz),rz(mvsiz),
185 + sx(mvsiz),sy(mvsiz),sz(mvsiz),
186 + tx(mvsiz),ty(mvsiz),tz(mvsiz)
188 + aa,bb
189
191 + wi,ksi,eta
193 + w_gauss(9,9),a_gauss(9,9)
194 TYPE() ,POINTER :: GBUF
195 TYPE(L_BUFEL_) ,POINTER :: LBUF
196
197 DATA w_gauss /
198 1 2. ,0. ,0. ,
199 1 0. ,0. ,0. ,
200 1 0. ,0. ,0. ,
201 2 1. ,1. ,0. ,
202 2 0. ,0. ,0. ,
203 2 0. ,0. ,0. ,
204 3 0.555555555555556,0.888888888888889,0.555555555555556,
205 3 0. ,0. ,0. ,
206 3 0. ,0. ,0. ,
207 4 0.347854845137454,0.652145154862546,0.652145154862546,
208 4 0.347854845137454,0. ,0. ,
209 4 0. ,0. ,0. ,
210 5 0.236926885056189,0.478628670499366,0.568888888888889,
211 5 0.478628670499366,0.236926885056189,0. ,
212 5 0. ,0. ,0. ,
213 6 0.171324492379170,0.360761573048139,0.467913934572691,
214 6 0.467913934572691,0.3
215 6 0. ,0. ,0. ,
216 7 0.129484966168870,0.279705391489277,0.381830050505119,
217 7 0.417959183673469,0.381830050505119,0.279705391489277,
218 7 0.129484966168870,0. ,0. ,
219 8 0.101228536290376,0.222381034453374,0.313706645877887,
220 8 0.362683783378362,0.362683783378362,0.313706645877887,
221 8 0.222381034453374,0.101228536290376,0. ,
222 9 0.081274388361574,0.180648160694857,0.260610696402935,
223 9 0.312347077040003,0.330239355001260,0.312347077040003,
224 9 0.260610696402935,0.180648160694857,0.081274388361574/
225 DATA a_gauss /
226 1 0. ,0. ,0. ,
227 1 0. ,0. ,0. ,
228 1 0. ,0. ,0. ,
229 2 -.577350269189626,0.577350269189626,0. ,
230 2 0. ,0. ,0. ,
231 2 0. ,0. ,0. ,
232 3 -.774596669241483,0. ,0.774596669241483,
233 3 0. ,0. ,0. ,
234 3 0. ,0. ,0. ,
235 4 -.861136311594053,-.339981043584856,0.339981043584856,
236 4 0.861136311594053,0. ,0. ,
237 4 0. ,0. ,0. ,
238 5 -.906179845938664,-.538469310105683,0. ,
239 5 0.538469310105683,0.906179845938664,0. ,
240 5 0. ,0. ,0. ,
241 6 -.932469514203152,-.661209386466265,-.238619186083197,
242 6 0.238619186083197,0.661209386466265,0.932469514203152,
243 6 0. ,0. ,0. ,
244 7 -.949107912342759,-.741531185599394,-.405845151377397,
245 7 0. ,0.405845151377397,0.741531185599394,
246 7 0.949107912342759,0. ,0. ,
247 8 -.960289856497536,-.796666477413627,-.525532409916329,
248 8 -.183434642495650,0.183434642495650,0.525532409916329,
249 8 0.796666477413627,0.960289856497536,0. ,
250 9 -.968160239507626,-.836031107326636,-.613371432700590,
251 9 -.324253423403809,0. ,0.324253423403809,
252 9 0.613371432700590,0.836031107326636,0.968160239507626/
253
254
255
256 gbuf => elbuf_str%GBUF
257 IF (isorth == 0) THEN
258 DO i=1,nel
259 gama(i,1) = one
260 gama(i,2) = zero
261 gama(i,3) = zero
262 gama(i,4) = zero
263 gama(i,5) = one
264 gama(i,6) = zero
265 ENDDO
266 ELSE
267 DO i=1,nel
268 gama(i,1) = gbuf%GAMA(i )
269 gama(i,2) = gbuf%GAMA(i + nel)
270 gama(i,3) = gbuf%GAMA(i + 2*nel)
271 gama(i,4) = gbuf%GAMA(i + 3*nel)
272 gama(i,5) = gbuf%GAMA(i + 4*nel)
273 gama(i,6) = gbuf%GAMA(i + 5*nel)
274 ENDDO
275 ENDIF
276 iad0 = 1
277 IF (isorth > 0) iad0 = 1 + 6*nel
278 IF (igtyp == 21.OR.igtyp == 22) THEN
279 ikorth=2
280 ELSEIF (isorth>0) THEN
281 ikorth=1
282 ELSE
283 ikorth=0
284 ENDIF
285
286 lco = 1 + nixq*nft
287 nf1 = 1 + nft
288
289
290
291
292 IF (jcvt==0) THEN
294 1 x, ixq(1,nf1),y1, y2,
295 2 y3, y4, z1, z2,
296 3 z3, z4, nc1, nc2,
297 4 nc3, nc4, ngl, mxt,
298 5 ngeo, vd2, vis, nel)
299 ELSE
301 1 x, ixq(1,nf1),y1, y2,
302 2 y3, y4, z1, z2,
303 3 z3, z4, nc1, nc2,
304 4 nc3, nc4, ngl, mxt,
305 5 ngeo, vd2, r11, r12,
306 6 r13, r21, r22, r23,
307 7 r31, r32, r33, gama,
308 8 y234, y124, vis, nel,
309 9 isorth)
310 ENDIF
311
312
313
314 DO i=1,nel
315 nu(i)=
min(half,pm(21,mxt(i)))
316 c1 =pm(32,mxt(i))
317 e0(i) =three*(one-two*nu(i))*c1
318 ENDDO
319 IF(icp==2) THEN
320 CALL s8zsigp3(1 ,nel ,gbuf%SIG,e0 ,gbuf%PLA,
321 2 fac ,gbuf%G_PLA,nel )
322 DO i=1,nel
323 nuu(i)=nu(i)+(half-nu(i))*fac(i)
324 ENDDO
325 ELSEIF(icp==1) THEN
326 DO i=1,nel
327 nuu(i)=half
328 ENDDO
329 ELSE
330 DO i=1,nel
331 nuu(i)=zero
332 ENDDO
333 ENDIF
334
336 1 gbuf%OFF,aire, volu, ngl,
337 2 y1, y2, y3, y4,
338 3 z1, z2, z3, z4,
339 4 y234, y124, nel, jmult,
340 5 jcvt)
341
342 IF(n2d==1) THEN
343 DO i=1,nel
344 yavg(i) = x(2,nc1(i))+x(2,nc2(i))+x(2,nc3(i))+x(2,nc4(i))
345 ENDDO
346 ENDIF
347
349 1 y1, y2, y3, y4,
350 2 z1, z2, z3, z4,
351 3 y12, y34, y13, y24,
352 4 y14, y23, z12, z34,
353 5 z13, z24, z14, z23,
354 6 pyc1, pyc2, pzc1, pzc2,
355 7 aire, volu, yavg, rx,
356 8 ry, rz, sx, sy,
357 9 sz, nel, jhbe)
358
359
360
361
362 icpg = 0
363 IF(icpg==2) icpg = 1
364
365
366 nptr = 2
367 npts = 2
368 nnpt = nptr*npts
369
370 IF (mtn>=28) THEN
371 iadbuf = ipm(7,mxt(1))
372 ELSE
373 iadbuf = 1
374 ENDIF
375 CALL mmats(1 ,nel ,pm ,mxt ,hh ,
376 . mtn ,ikorth ,ipm ,igeo ,gama ,
377 . bufmat(iadbuf) ,dm ,dgm ,gm ,
378 . jhbe ,gbuf%SIG ,bid ,nnpt ,nel )
380 1 hh, hh1, fac, icpg,
381 2 ipredu, nel, mtn, ismstr,
382 3 jhbe)
383
384 DO i=1,nel
385 offg(i) = gbuf%OFF(i)
386 ENDDO
387
388 DO ep=1,nel
389 DO j=1,2
390 DO i=1,2
391 k11(i,j,ep)=zero
392 k12(i,j,ep)=zero
393 k13(i,j,ep)=zero
394 k14(i,j,ep)=zero
395 k22(i,j,ep)=zero
396 k23(i,j,ep)=zero
397 k24(i,j,ep)=zero
398 k33(i,j,ep)=zero
399 k34(i,j,ep)=zero
400 k44(i,j,ep)=zero
401 k11u(i,j,ep)=zero
402 k12u(i,j,ep)=zero
403 k13u(i,j,ep)=zero
404 k14u(i,j,ep)=zero
405 k22u(i,j,ep)=zero
406 k23u(i,j,ep)=zero
407 k24u(i,j,ep)=zero
408 k33u(i,j,ep)=zero
409 k34u(i,j,ep)=zero
410 k44u(i,j,ep)=zero
411 k11l(i,j,ep)=zero
412 k12l(i,j,ep)=zero
413 k13l(i,j,ep)=zero
414 k14l(i,j,ep)=zero
415 k22l(i,j,ep)=zero
416 k23l(i,j,ep)=zero
417 k24l(i,j,ep)=zero
418 k33l(i,j,ep)=zero
419 k34l(i,j,ep)=zero
420 k44l(i,j,ep)=zero
421 ENDDO
422 ENDDO
423 ENDDO
424
425
426 it = 1
427 DO 100 ir=1,nptr
428 DO 200 is=1,npts
429 lbuf => elbuf_str%BUFLY(1)%LBUF(ir,is,1)
430
431
432 ip = ir + (is-1)*nptr
433 ksi = a_gauss(ir,nptr)
434 eta = a_gauss(is,npts)
435 wi = w_gauss(ir,nptr)*w_gauss(is,npts)
436
437
439 1 offg, off, ksi, eta,
440 2 wi, yavg, y12, y34,
441 3 y13, y24, y14, y23,
442 4 z12, z34, z13, z24,
443 5 z14, z23, py1, py2,
444 6 py3, py4, pz1, pz2,
445 7 pz3, pz4, pyc1, pyc2,
446 8 pzc1, pzc2, byz1, byz2,
447 9 byz3, byz4, bzy1, bzy2,
448 a bzy3, bzy4, airn, voln,
449 b nuu, nel, jhbe)
450
451
453 1 pm, mxt, hh1, voln,
454 2 icsig, dd, gg, dg,
455 3 g33, dm, gm, dgm,
456 4 ikorth, lbuf%SIG,ir, is,
457 5 it, nel, jhbe, mtn)
458
460 1 py1, py2, py3, py4,
461 2 pz1, pz2, pz3, pz4,
462 3 pyc1, pyc2, pzc1, pzc2,
463 4 ay, r22, r23, k11,
464 5 k12, k13, k14, k22,
465 6 k23, k24, k33, k34,
466 7 k44, k11u, k12u, k13u,
467 8 k14u, k22u, k23u, k24u,
468 9 k33u, k34u, k44u, k11l,
469 a k12l, k13l, k14l, k22l,
470 b k23l, k24l, k33l, k34l,
471 c k44l, dd, gg, dg,
472 d g33, ikorth, icpg, offg,
473 e nel, jcvt)
474
475
476
477
478
479
480
481
482
483
484200 CONTINUE
485100 CONTINUE
486
487
488 IF (ipredu > 0) THEN
490 1 pyc1, pyc2, pzc1, pzc2,
491 2 ay, r22, r23, k11,
492 3 k12, k13, k14, k22,
493 4 k23, k24, k33, k34,
494 5 k44, hh, volu, fac,
495 6 icpg, offg, nel, jcvt)
496 ENDIF
497
498
499 IF (ikgeo/=0) THEN
501 1 pyc1, pyc2, pzc1, pzc2,
502 2 ay, k11, k12, k13,
503 3 k14, k22, k23, k24,
504 4 k33, k34, k44, gbuf%SIG,
505 5 volu, offg, nel)
506 ENDIF
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521 IF (jcvt/=0) THEN
523 1 r22, r32, r23, r33,
524 2 k11, k12, k13, k14,
525 3 k22, k23, k24, k33,
526 4 k34, k44, nel)
527 ENDIF
528
529
530
531
532
534 1 ixq(1,nf1),nel ,iddl ,ndof ,k_diag,
535 2 k_lt ,iadk ,jdik ,k11 ,k12 ,
536 3 k13 ,k14 ,k22 ,k23 ,k24 ,
537 4 k33 ,k34 ,k44 ,offg )
538
539 RETURN
subroutine assem_q4(ixq, nel, iddl, ndof, k_diag, k_lt, iadk, jdik, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, off)
subroutine mmat_h1(hh, hh1, fac, icp, ipredu, nel, mtn, ismstr, jhbe)
subroutine mmats(jft, jlt, pm, mat, hh, mtn, iorth, ipm, igeo, gama, uparam, cc, cg, g33, jhbe, sig, eps, nppt, nel)
subroutine mmstifs(pm, mat, hh, vol, icsig, dd, gg, dg, g33, dm, gm, dgm, iorth, sig, ir, is, it, nel, jhbe, mtn)
subroutine q4deric2(y1, y2, y3, y4, z1, z2, z3, z4, y12, y34, y13, y24, y14, y23, z12, z34, z13, z24, z14, z23, pyc1, pyc2, pzc1, pzc2, aire, volu, yavg, rx, ry, rz, sx, sy, sz, nel, jhbe)
subroutine q4kega2(py1, py2, pz1, pz2, ay, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, sig, air, off, nel)
subroutine q4kel2(py1, py2, py3, py4, pz1, pz2, pz3, pz4, pyc1, pyc2, pzc1, pzc2, ay, r22, r23, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, k11u, k12u, k13u, k14u, k22u, k23u, k24u, k33u, k34u, k44u, k11l, k12l, k13l, k14l, k22l, k23l, k24l, k33l, k34l, k44l, dd, gg, dg, g33, iksup, icp, off, nel, jcvt)
subroutine q4kep2(py1, py2, pz1, pz2, ay, r22, r23, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, hh, air, fac, icp, off, nel, jcvt)
subroutine q4kerot2(r22, r32, r23, r33, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, nel)
subroutine qvolu2(off, aire, volu, ngl, y1, y2, y3, y4, z1, z2, z3, z4, y234, y124, nel, jmult, jcvt)
subroutine s8zsigp3(lft, llt, sig, e0, defp, fac, g_pla, nel)
subroutine q4deri2(vol, ksi, eta, wi, y12, y34, y13, y24, y14, y23, z12, z34, z13, z24, z14, z23, y1, y2, y3, y4, yavg, ihbe, ngl)
subroutine qcoor2(x, ixq, ngl, mxt, pid, ix1, ix2, ix3, ix4, y1, y2, y3, y4, z1, z2, z3, z4, sy, sz, ty, tz)
subroutine qrcoor2(x, ixq, ngl, mxt, pid, ix1, ix2, ix3, ix4, y1, y2, y3, y4, z1, z2, z3, z4, sy, sz, ty, tz, e1y, e1z, e2y, e2z)