67 SUBROUTINE q4forc2(TIMERS, OUTPUT, PM ,GEO ,IC ,X ,A ,
68 2 V ,MS ,W ,FLUX ,FLU1 ,
69 3 VEUL ,FV ,ALE_CONNECT ,IPARG ,NLOC_DMG,
70 4 ELBUF_TAB,TF ,NPF ,BUFMAT,PARTSAV,
71 5 DT2T ,NELTST ,ITYPTST,STIFN ,OFFSET ,
72 6 EANI ,IPARTQ ,NEL ,IADQ ,FSKY ,
74 8 IPM ,BUFVOIS,QMV ,GRESAV,GRTH ,
75 9 IGRTH ,TABLE ,IGEO ,ITASK ,IEXPAN ,
76 A MS_2D ,FSKYM ,IOUTPRT,MAT_ELEM,H3D_STRAIN,SZ_BUFVOIS,SNPC,
77 B STF,SBUFMAT,SVIS,NSVOIS,IDTMINS,IRESP,TT,DT1,
78 . IDEL7NG, IDEL7NOK, IDTMIN, MAXFUNC,IMON_MAT,
79 V USERL_AVAIL, impl_s, idyna,
80 . DT , GLOB_THERM,SENSORS)
85 USE output_mod,
only : output_
98#include "implicit_f.inc"
102#include "mvsiz_p.inc"
106#include "vect01_c.inc"
107#include "com01_c.inc"
108#include "com04_c.inc"
109#include "parit_c.inc"
110#include "param_c.inc"
114 TYPE(timer_),
INTENT(INOUT) :: TIMERS
115 TYPE(OUTPUT_),
INTENT(INOUT) :: OUTPUT
116 my_real,
INTENT(IN) :: DT1
117 my_real,
INTENT(IN) :: TT
118 INTEGER,
INTENT(IN) :: SNPC
119 INTEGER,
INTENT(IN) :: STF
120 INTEGER,
INTENT(IN) :: SBUFMAT
121 INTEGER,
INTENT(IN) :: NSVOIS
122 INTEGER,
INTENT(IN) :: IDTMINS
123 INTEGER ,
INTENT(IN) :: IRESP
124 INTEGER ,
INTENT(IN) :: IDEL7NG
125 INTEGER ,
INTENT(INOUT) :: IDEL7NOK
126 integer,
dimension(102) :: IDTMIN
127 INTEGER ,
INTENT(IN) :: MAXFUNC
128 INTEGER,
INTENT(IN) :: IMPL_S
129 INTEGER,
INTENT(IN) :: IDYNA
130 INTEGER,
INTENT(IN) :: USERL_AVAIL
131 INTEGER,
INTENT(IN) :: IMON_MAT
132 INTEGER IC(*), IPARG(NPARG,*), NPF(*), IPARTQ(*),
133 + ipm(*), grth(*), igrth(*), igeo(*), iadq(4,*),itask,ioutprt
134 INTEGER OFFSET, NEL, NELTST, ITYPTST, ICP, NG, IEXPAN,H3D_STRAIN
138 + pm(npropm,*), geo(*), x(*),a(*),v(3,*),ms(*), w(*),partsav(*),
139 + flux(4,*),flu1(*),veul(*),fv(*), tf(*),bufmat(*),
140 + fsky(*),stifn(*),eani(*),bufvois(6,*),qmv(8,*),gresav(*),ms_2d(*),
142 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
143 TYPE (TTABLE) TABLE(*)
144 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
145 TYPE (NLOCAL_STR_) ,
TARGET :: NLOC_DMG
146 TYPE(t_ale_connectivity),
INTENT(IN) :: ALE_CONNECT
147 TYPE (MAT_ELEM_) ,
INTENT(INOUT) :: MAT_ELEM
148 TYPE (DT_),
INTENT(IN) :: DT
149 type (glob_therm_) ,
intent(inout) :: glob_therm
150 type (sensors_),
INTENT(INOUT) :: SENSORS
185 INTEGER I,II,IFLAG,IOFFS,ICPG,ISTRAIN
187 INTEGER IBID,IBIDON(1),ipr,enum,SZ_IX
195 + NC1(MVSIZ),NC2(MVSIZ),NC3(MVSIZ),NC4(MVSIZ),
196 + NGL(MVSIZ),NGEO(MVSIZ)
198 INTEGER NPTR,NPTS,IR,IS,ILAY
201 .
DIMENSION(:),
POINTER :: eint
202 TYPE(g_bufel_) ,
POINTER :: GBUF
203 TYPE(l_bufel_) ,
POINTER :: LBUF
206 + bid(mvsiz),mbid(mvsiz),ehou(mvsiz)
218 + offg(mvsiz),offs(mvsiz),off(mvsiz),
220 + sti(mvsiz),stim(mvsiz),
221 + y1(mvsiz),y2(mvsiz),y3(mvsiz),y4(mvsiz),
222 + z1(mvsiz),z2(mvsiz),z3(mvsiz),z4(mvsiz),
223 + vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
224 + vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
225 + y12(mvsiz),y34(mvsiz),y13(mvsiz),y24(mvsiz),
226 + y14(mvsiz),y23(mvsiz),
227 + z12(mvsiz),z34(mvsiz),z13(mvsiz),z24(mvsiz),
228 + z14(mvsiz),z23(mvsiz),
229 + y234(mvsiz),y124(mvsiz),yavg(mvsiz),
230 + aire(mvsiz),volu(mvsiz),deltax(mvsiz),
231 + r11(mvsiz),r12(mvsiz),r13(mvsiz),
232 + r21(mvsiz),r22(mvsiz),r23(mvsiz),
233 + r31(mvsiz),r32(mvsiz),r33(mvsiz)
250 + vdy(mvsiz),vdz(mvsiz),vdx(mvsiz),vd2(mvsiz),
256 + sigy(mvsiz),et(mvsiz),
258 + r3_free(mvsiz),r4_free(mvsiz),
259 + pyc1(mvsiz),pyc2(mvsiz),pzc1(mvsiz),pzc2(mvsiz),
261 + py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
262 + pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),
263 + rx(mvsiz),ry(mvsiz),rz(mvsiz),
264 + sx(mvsiz),sy(mvsiz),sz(mvsiz),
265 + tx(mvsiz),ty(mvsiz),tz(mvsiz),
266 + airn(mvsiz),voln(mvsiz),
268 + nu(mvsiz),e0(mvsiz),c1,fac(mvsiz),
269 + eyy(mvsiz),ezz(mvsiz),exx(mvsiz),
270 + eyz(mvsiz),ezx(mvsiz),exy(mvsiz),
271 + wyy(mvsiz),wzz(mvsiz),wxx(mvsiz),
272 + s1(mvsiz),s2(mvsiz),s3(mvsiz),
273 + s4(mvsiz),s5(mvsiz),s6(mvsiz),
274 + fy1(mvsiz),fz1(mvsiz),fy2(mvsiz),fz2(mvsiz),
275 + fy3(mvsiz),fz3(mvsiz),fy4(mvsiz),fz4(mvsiz),
276 + fay(mvsiz),faz(mvsiz),
277 + pp(mvsiz),dsv(mvsiz)
280 + ay1(mvsiz),ay2(mvsiz),ay3(mvsiz),ay4(mvsiz),yh(mvsiz),
281 + fay1(mvsiz),fay2(mvsiz),fay3(mvsiz),fay4(mvsiz),
283 . byz1(mvsiz),byz2(mvsiz),byz3(mvsiz),byz4(mvsiz),
284 . bzy1(mvsiz),bzy2(mvsiz),bzy3(mvsiz),bzy4(mvsiz),
285 + qn1,qn2,qn3,qn4,nuu
291 + w_gauss(9,9),a_gauss(9,9)
299 3 0.555555555555556,0.888888888888889,0.555555555555556,
302 4 0.347854845137454,0.652145154862546,0.652145154862546,
303 4 0.347854845137454,0. ,0. ,
305 5 0.236926885056189,0.478628670499366,0.568888888888889,
306 5 0.478628670499366,0.236926885056189,0. ,
308 6 0.171324492379170,0.360761573048139,0.467913934572691,
309 6 0.467913934572691,0.360761573048139,0.171324492379170,
311 7 0.129484966168870,0.279705391489277,0.381830050505119,
312 7 0.417959183673469,0.381830050505119,0.279705391489277,
313 7 0.129484966168870,0. ,0. ,
314 8 0.101228536290376,0.222381034453374,0.313706645877887,
315 8 0.362683783378362,0.362683783378362,0.313706645877887,
316 8 0.222381034453374,0.101228536290376,0. ,
317 9 0.081274388361574,0.180648160694857,0.260610696402935,
318 9 0.312347077040003,0.330239355001260,0.312347077040003,
319 9 0.260610696402935,0.180648160694857,0.081274388361574/
324 2 -.577350269189626,0.577350269189626,0. ,
327 3 -.774596669241483,0. ,0.774596669241483,
330 4 -.861136311594053,-.339981043584856,0.339981043584856,
331 4 0.861136311594053,0. ,0. ,
333 5 -.906179845938664,-.538469310105683,0. ,
334 5 0.538469310105683,0.906179845938664,0. ,
336 6 -.932469514203152,-.661209386466265,-.238619186083197,
337 6 0.238619186083197,0.661209386466265,0.932469514203152,
339 7 -.949107912342759,-.741531185599394,-.405845151377397,
340 7 0. ,0.405845151377397,0.741531185599394,
341 7 0.949107912342759,0. ,0. ,
342 8 -.960289856497536,-.796666477413627,-.525532409916329,
343 8 -.183434642495650,0.183434642495650,0.525532409916329,
344 8 0.796666477413627,0.960289856497536,0. ,
345 9 -.968160239507626,-.836031107326636,-.613371432700590,
346 9 -.324253423403809,0. ,0.324253423403809,
347 9 0.613371432700590,0.836031107326636,0.968160239507626/
352 sz_ix=numelq+numels+nsvois
354 gbuf => elbuf_tab(ng)%GBUF
370 IF (isorth == 0)
THEN
381 gama(i,1) = gbuf%GAMA(i )
382 gama(i,2) = gbuf%GAMA(i + nel)
383 gama(i,3) = gbuf%GAMA(i + 2*nel)
384 gama(i,4) = gbuf%GAMA(i + 3*nel)
385 gama(i,5) = gbuf%GAMA(i + 4*nel)
386 gama(i,6) = gbuf%GAMA(i + 5*nel)
390 istrain = iparg(44,ng)
399 1 x, ic(lco), y1, y2,
402 4 nc3, nc4, ngl, mat,
404 6 vy1, vy2, vy3, vy4,
405 7 vz1, vz2, vz3, vz4,
406 8 yavg, ay, exx, nel,
412 1 x, ic(lco), y1, y2,
415 4 nc3, nc4, ngl, mat,
416 5 ngeo, vd2, r11, r12,
417 6 r13, r21, r22, r23,
418 7 r31, r32, r33, gama,
419 8 y234, y124, vis, v,
420 9 vy1, vy2, vy3, vy4,
421 a vz1, vz2, vz3, vz4,
422 b yavg, ay, exx, nel,
428 nu(i)=
min(half,pm(21,mat(i)))
430 e0(i) =three*(one-two*nu(i))*c1
433 CALL s8zsigp3(lft ,llt ,gbuf%SIG,e0 ,gbuf%PLA,
434 2 fac ,gbuf%G_PLA,nel )
436 nuu(i)=nu(i)+(half-nu(i))*fac(i)
449 1 gbuf%OFF,aire, volu, ngl,
452 4 y234, y124, nel, jmult,
456 CALL qdlen2(y1,y2,y3,y4,z1,z2,z3,z4,aire,deltax,iparg(63,ng))
463 3 y12, y34, y13, y24,
464 4 y14, y23, z12, z34,
465 5 z13, z24, z14, z23,
466 6 pyc1, pyc2, pzc1, pzc2,
467 7 aire, volu, yavg, rx,
478 1 vy1, vy2, vy3, vy4,
479 2 vz1, vz2, vz3, vz4,
480 3 pyc1, pyc2, pzc1, pzc2,
481 4 aire, eyz, exx, dsv,
488 offg(i) = gbuf%OFF(i)
494 + fy1, fz1, fy2, fz2, fy3, fz3, fy4, fz4
495 + fay, faz, fay1, fay2, fay3, fay4,
496 + gbuf%SIG,gbuf%EINT,gbuf%RHO,gbuf%QVIS,gbuf%PLA,
497 + gbuf%EPSD,stim,pp,gbuf%G_PLA,gbuf%G_EPSD,nel)
504 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
507 ksi = a_gauss(ir,nptr)
508 eta = a_gauss(is,npts)
509 wi = w_gauss(ir,nptr)*w_gauss(is,npts)
515 1 offg, off, ksi, eta,
516 2 wi, yavg, y12, y34,
518 4 z12, z34, z13, z24,
519 5 z14, z23, py1, py2,
520 6 py3, py4, pz1, pz2,
521 7 pz3, pz4, pyc1, pyc2,
522 8 pzc1, pzc2, byz1, byz2,
523 9 byz3, byz4, bzy1, bzy2,
524 a bzy3, bzy4, airn, voln,
530 1 py1, py2, py3, py4,
531 2 pz1, pz2, pz3, pz4,
532 3 byz1, byz2, byz3, byz4,
533 4 bzy1, bzy2, bzy3, bzy4,
534 5 vy1, vy2, vy3, vy4,
535 6 vz1, vz2, vz3, vz4,
536 7 eyz, eyy, ezz, exx,
538 9 off, gbuf%OFF, lbuf%VOL, lbuf%EINT,
539 a dsv, icpg, fac, nel,
547 1 pm, lbuf%VOL, lbuf%RHO, lbuf%EINT,
548 2 voln, dvol, mat, nel)
552 1 lbuf%SIG,s1, s2, s3,
557 CALL mmain(timers, output,
558 1 elbuf_tab, ng, pm, geo,
559 2 ale_connect, ic, iparg,
560 3 v, tf, npf, bufmat,
561 4 sti, x, dt2t, neltst,
562 5 ityptst, offset, nel, w,
563 6 off, ngeo, mat, ngl,
564 7 voln, vd2, dvol, deltax,
565 8 vis, qvis, ssp, s1,
568 b eyz, ezx, exy, wyy,
571 e vdy, vdz, vdx, muvoid,
572 f ssp_eq, aire, sigy, et,
573 g bufvois, lbuf%PLA, r3_free, r4_free,
574 h eyy, ezz, exx, eyz,
575 i ezx, exy, wyy, wzz,
576 j wxx, ipm, gama, bid,
577 k bid, bid, bid, bid,
579 m bid, ibidon(1), ilay, mbid,
581 o table, bid, bid, bid,
582 p bid, iparg(1,ng), igeo, bid,
583 q itask, nloc_dmg, varnl, mat_elem,
584 r h3d_strain, jplasol, jsph, sz_bufvois,
585 s snpc, stf, sbufmat, glob_therm,
586 t svis, sz_ix, iresp,
587 * n2d, th_strain, ngroup, tt,
588 . dt1, ntable, numelq, nummat,
589 . numgeo, numnod, numels,
590 . idel7nok, idtmin, maxfunc,
591 . imon_mat, userl_avail, impl_s,
592 . idyna, dt , bid ,sensors)
596 1 lbuf%SIG,ay, fay, faz,
597 2 py1, py2, py3, py4,
598 3 pz1, pz2, pz3, pz4,
599 4 byz1, byz2, byz3, byz4,
600 5 bzy1, bzy2, bzy3, bzy4,
601 6 fy1, fz1, fy2, fz2,
602 7 fy3, fz3, fy4, fz4,
603 8 r22, r23, r32, r33,
604 9 airn, voln, qvis, icpg,
605 a nel, jhbe, jcvt, svis)
609 1 lbuf%SIG, voln, qvis, pp,
610 2 lbuf%EINT, lbuf%RHO, lbuf%QVIS, lbuf%PLA,
611 3 lbuf%EPSD, gbuf%EPSD, gbuf%SIG, gbuf%EINT,
612 4 gbuf%RHO, gbuf%QVIS, gbuf%PLA, volu,
613 5 sti, stim, icpg, off,
614 6 lbuf%VOL, gbuf%VOL, gbuf%G_PLA, gbuf%G_EPSD,
615 7 lbuf%EINTTH,gbuf%EINTTH,iexpan, nel,
616 8 bid, bid,svis,glob_therm%NODADT_THERM,
617 9 gbuf%WPLA, lbuf%WPLA, gbuf%G_WPLA)
620 offg(i)=
min(offg(i),off(i))
621 IF (lbuf%OFF(i) > one .AND. gbuf%OFF(i) == one)
THEN
622 offs(i) =
min(lbuf%OFF(i),offs(i))
633 IF(offs(i)<=two)
THEN
634 gbuf%OFF(i) = offs(i)
639 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
641 IF (gbuf%OFF(i) > one) lbuf%OFF(i) = gbuf%OFF(i)
647 1 gbuf%OFF,offg, nel, ismstr)
651 1 pyc1, pyc2, pzc1, pzc2,
653 3 fy2, fz2, fy3, fz3,
654 4 fy4, fz4, aire, volu,
655 5 gbuf%SIG,pp, icpg, nel,
658 IF(n2d==1.AND.jhbe==17)
THEN
660 1 pm, gbuf%OFF,gbuf%RHO,y1,
663 4 vy2, vy3, vy4, vz1,
664 5 vz2, vz3, vz4, py1,
665 6 py2, pz1, pz2, fy1,
666 7 fy2, fy3, fy4, fz1,
667 8 fz2, fz3, fz4, aire,
671 iflag=mod(ncycle,ncpri)
675 eint => elbuf_tab(ng)%GBUF%EINS(1:nel)
677 eint => elbuf_tab(ng)%GBUF%EINT(1:nel)
680 1 partsav, gbuf%OFF, eint, gbuf%RHO,
681 2 gbuf%RK, gbuf%VOL, vy1, vy2,
682 3 vy3, vy4, vz1, vz2,
683 4 vz3, vz4, volu, ipartq,
684 5 ehou, r22, r23, r32,
685 6 r33, gresav, grth, igrth,
686 7 ibidon(1), gbuf%EINTTH,itask, nel,
687 8 jtur, jcvt, igre, sensors,
688 9 gbuf%G_WPLA,gbuf%WPLA)
694 1 r22, r32, r23, r33,
695 2 fy1, fy2, fy3, fy4,
696 3 fz1, fz2, fz3, fz4,
701 IF(n2d==1.AND.jhbe==17)
THEN
703 fy1(i) = fy1(i) + fay(i)
704 fy2(i) = fy2(i) + fay(i)
705 fy3(i) = fy3(i) + fay(i)
706 fy4(i) = fy4(i) + fay(i)
707 fz1(i) = fz1(i) + faz(i)
708 fz2(i) = fz2(i) + faz(i)
709 fz3(i) = fz3(i) + faz(i)
710 fz4(i) = fz4(i) + faz(i)
715 IF(n2d==1.AND.jhbe==17)
THEN
718 1 gbuf%OFF,gbuf%RHO,ms, aire,
719 2 nc1, nc2, nc3, nc4,
723 1 gbuf%OFF,gbuf%RHO,aire, fsky,
724 2 fsky, iadq, nel, nft)
729 1 gbuf%OFF,gbuf%RHO,ms, volu,
730 2 nc1, nc2, nc3, nc4,
734 1 gbuf%OFF,gbuf%RHO,volu, fsky,
735 2 fsky, iadq, nel, nft)
742 IF (jale+jeul > 0 )
THEN
745 1 gbuf%OFF,gbuf%RHO,ms_2d, volu,
746 2 nc1, nc2, nc3, nc4,
750 1 gbuf%OFF,gbuf%RHO,volu, fskym,
758 1 a, stifn, nc1, nc2,
759 2 nc3, nc4, fy1, fz1,
760 3 fy2, fz2, fy3, fz3,
761 4 fy4, fz4, stim, nel)
764 1 fsky, fsky, iadq, fy1,
765 2 fz1, fy2, fz2, fy3,
766 3 fz3, fy4, fz4, stim,