63 1 ELBUF_TAB, NG, PM, GEO,
66 4 VEUL, FV, ALE_CONNECT,IPARG,
67 5 TF, NPF, BUFMAT, PARTSAV,
68 6 NLOC_DMG, DT2T, NELTST, ITYPTST,
69 7 STIFN, FSKY, IADS, OFFSET,
70 8 EANI, IPARTS, IXS20, IADS20,
77 F VDYY, VDZZ, DNIDR, DNIDS,
79 H IPM, ISTRAIN, TEMP, FTHE,
80 I FTHESKY, IEXPAN, GRESAV, GRTH,
81 J IGRTH, TABLE, IGEO, VOLN,
82 K CONDN, CONDNSKY, ITASK, IOUTPRT,
83 L MAT_ELEM, H3D_STRAIN, DT, IDEL7NOK,
84 M SNPC, STF, SBUFMAT, SVIS,
85 N IDTMINS, NSVOIS, IRESP, IDEL7NG,
86 O IDTMIN, MAXFUNC, IMON_MAT, USERL_AVAIL,
87 . GLOB_THERM, impl_s, idyna, SENSORS)
92 USE output_mod,
only : output_
102 use element_mod ,
only : nixs
106#include "implicit_f.inc"
110#include "mvsiz_p.inc"
114#include "com01_c.inc"
115#include "com04_c.inc"
116#include "com08_c.inc"
117#include "vect01_c.inc"
118#include "parit_c.inc"
119#include "param_c.inc"
129 TYPE(timer_) ,
INTENT(INOUT) :: TIMERS
130 TYPE(OUTPUT_) ,
INTENT(INOUT) :: OUTPUT
131 INTEGER ,
INTENT(IN) :: IDEL7NG
132 INTEGER ,
INTENT(INOUT) :: IDEL7NOK
133 integer,
dimension(102) :: IDTMIN
134 INTEGER ,
INTENT(IN) :: MAXFUNC
135 INTEGER,
INTENT(IN) :: SNPC
136 INTEGER,
INTENT(IN) :: STF
137 INTEGER,
INTENT(IN) :: SBUFMAT
138 INTEGER,
INTENT(IN) :: IDTMINS
139 INTEGER,
INTENT(IN) :: NSVOIS
140 INTEGER ,
INTENT(IN) :: IRESP
141 INTEGER,
INTENT(IN) :: IMPL_S
142 INTEGER,
INTENT(IN) :: IDYNA
143 INTEGER,
INTENT(IN) :: USERL_AVAIL
144 INTEGER,
INTENT(IN) :: IMON_MAT
145 INTEGER IXS(NIXS,*), IPARG(NPARG,NGROUP),NPF(*),
146 . IADS(8,*),IPARTS(*),IXS20(12,*),IADS20(12,*),IPM(*),
147 . GRTH(*),IGRTH(*),IGEO(*),ITASK,IOUTPRT
148 INTEGER NELTST,ITYPTST,OFFSET,NEL,ISTRAIN,
149 . iexpan,ng,h3d_strain
153 . pm(*), geo(npropg,*), x(*), a(*), v(*), ms(*), w(*), flux(6,*),flu1(*),
154 . veul(*), fv(*), tf(*),temp(*), fthe(*),fthesky(*),gresav(*),
155 . bufmat(*),partsav(*),stifn(*), fsky(*),eani(*),voln(mvsiz)
157 . fx(mvsiz,npe),fy(mvsiz,npe),fz(mvsiz,npe),volnp(mvsiz,nipmax),
158 . rx(mvsiz,nipmax) , ry(mvsiz,nipmax) , rz(mvsiz,nipmax) ,
159 . sx(mvsiz,nipmax) , sy(mvsiz,nipmax) , sz(mvsiz,nipmax) ,
160 . tx(mvsiz,nipmax),ty(mvsiz,nipmax),tz(mvsiz,nipmax),
161 . stig(mvsiz,npe),stin(mvsiz,npe),ul(mvsiz,npe),
162 . xx(mvsiz,npe), yy(mvsiz,npe), zz(mvsiz,npe),
163 . vx(mvsiz,npe),vy(mvsiz,npe),vz(mvsiz,npe),
164 . vdxx(mvsiz,npe), vdyy(mvsiz,npe), vdzz(mvsiz,npe),
165 . dnidr(mvsiz,npe),dnids(mvsiz,npe),dnidt(mvsiz,npe),
166 . px(mvsiz,npe,nipmax),py(mvsiz,npe,nipmax),pz(mvsiz,npe,nipmax),
167 . condn(*),condnsky(*)
168 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
169 TYPE (TTABLE) TABLE(*)
170 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
171 TYPE (NLOCAL_STR_) ,
TARGET :: NLOC_DMG
172 TYPE(t_ale_connectivity),
INTENT(IN) :: ALE_CONNECT
173 TYPE (MAT_ELEM_) ,
INTENT(INOUT) :: MAT_ELEM
174 TYPE(DT_),
INTENT(INOUT) :: DT
175 type (glob_therm_) ,
intent(inout) :: glob_therm
176 type (sensors_),
INTENT(INOUT) :: SENSORS
180 INTEGER I,N,NF1,NF2,ILAY,IP,IR,IS,IT,NPTT,NPTS,NPTR,IFLAG,IBID
181 INTEGER IBIDON(1), NN_DEL, PID, IMAT
183 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ), IPERM1(NPE),
187 . VD2(MVSIZ) , DVOL(MVSIZ),DELTAX(MVSIZ),
188 . VIS(MVSIZ) , QVIS(MVSIZ), CXX(MVSIZ) ,
189 . S1(MVSIZ) , S2(MVSIZ) , S3(MVSIZ) ,
190 . S4(MVSIZ) , S5(MVSIZ) , S6(MVSIZ) ,
191 . DXX(MVSIZ) , DYY(MVSIZ) , DZZ(MVSIZ) ,
192 . D4(MVSIZ) , D5(MVSIZ) , D6(MVSIZ) ,
193 . vdx(mvsiz),vdy(mvsiz),vdz(mvsiz),ssp_eq(mvsiz),
194 . aire(mvsiz),conde(mvsiz),condeg(mvsiz,npe),amu(mvsiz),divde(mvsiz)
198 . sti(mvsiz), wxx(mvsiz) , wyy(mvsiz) , wzz(mvsiz)
206 . sigy(mvsiz),et(mvsiz),gama(mvsiz,6),
207 . r1_free(mvsiz),r3_free(mvsiz),
208 . tempel(mvsiz),die(mvsiz),them(mvsiz,npe)
209 my_real,
dimension(mvsiz) :: fheat
212 INTEGER NC(MVSIZ,NPE)
214 . OFF(MVSIZ) , RHOO(MVSIZ),NI(NPE,NIPMAX)
222 TYPE(l_bufel_) ,
POINTER :: LBUF
223 TYPE(G_BUFEL_) ,
POINTER :: GBUF
227 . w_gauss(9,9),a_gauss(9,9)
236 3 0.555555555555556d0,0.888888888888889d0,0.555555555555556d0,
239 4 0.347854845137454d0,0.652145154862546d0,0.652145154862546d0,
240 4 0.347854845137454d0,0.d0 ,0.d0 ,
242 5 0.236926885056189d0,0.478628670499366d0,0.568888888888889d0,
243 5 0.478628670499366d0,0.236926885056189d0,0.d0 ,
245 6 0.171324492379170d0,0.360761573048139d0,0.467913934572691d0,
246 6 0.467913934572691d0,0.360761573048139d0,0.171324492379170d0,
248 7 0.129484966168870d0,0.279705391489277d0,0.381830050505119d0,
249 7 0.417959183673469d0,0.381830050505119d0,0.279705391489277d0,
250 7 0.129484966168870d0,0.d0 ,0.d0 ,
251 8 0.101228536290376d0,0.222381034453374d0,0.313706645877887d0,
252 8 0.362683783378362d0,0.362683783378362d0,0.313706645877887d0,
253 8 0.222381034453374d0,0.101228536290376d0,0.d0 ,
254 9 0.081274388361574d0,0.180648160694857d0,0.2606
255 9 0.312347077040003d0,0.330239355001260d0,0.312347077040003d0,
256 9 0.260610696402935d0,0.180648160694857d0,0.081274388361574d0/
262 2 -.577350269189625d0,0.577350269189625d0,0.d0 ,
265 3 -.774596669241483d0,0.d0 ,0.774596669241483d0,
268 4 -.861136311594053d0,-.339981043584856d0,0.339981043584856d0,
269 4 0.861136311594053d0,0.d0 ,0.d0 ,
271 5 -.906179845938664d0,-.538469310105683d0,0.d0 ,
272 5 0.538469310105683d0,0.906179845938664d0,0.d0 ,
274 6 -.932469514203152d0,-.661209386466265d0,-.238619186083197d0,
275 6 0.238619186083197d0,0.661209386466265d0,0.932469514203152d0,
277 7 -.949107912342759d0,-.741531185599394d0,-.405845151377397d0,
278 7 0.d0 ,0.405845151377397d0,0.741531185599394d0,
279 7 0.949107912342759d0,0.d0 ,0.d0 ,
280 8 -.960289856497536d0,-.796666477413627d0,-.525532409916329d0,
281 8 -.183434642495650d0,0.183434642495650d0,0.525532409916329d0,
282 8 0.796666477413627d0,0.960289856497536d0,0.d0 ,
283 9 -.968160239507626d0,-.836031107326636d0,-.61337143270059
284 9 -.324253423403809d0,0.d0 ,0.324253423403809d0,
285 9 0.613371432700590d0,0.836031107326636d0,0.968160239507626d0
289 DATA iperm1/0,0,0,0,0,0,0,0,1,2,3,4,1,2,3,4,5,6,7,8/
290 DATA iperm2/0,0,0,0,0,0,0,0,2,3,4,1,5,6,7,8,6,7,8,5/
294 gbuf => elbuf_tab(ng)%GBUF
298 sz_ix=numelq+numels+nsvois
304 nf2 = nf1-(numels8+numels10)
307 1 x, ixs(1,nf1), ixs20(1,nf2),v,
308 2 w, iperm1, iperm2, npe,
310 4 vy, vz, vdxx, vdyy,
311 5 vdzz, vdx, vdy, vdz,
312 6 vd2, vis, gbuf%OFF, off,
313 7 gbuf%SMSTR, nc, ngl, mxt,
315 9 stig, gbuf%SIG, gbuf%EINT, gbuf%RHO,
316 a gbuf%QVIS, gbuf%PLA, gbuf%EPSD, gbuf%G_PLA,
317 b gbuf%G_EPSD, nel, condeg, jale,
318 c ismstr, jeul, jlag)
322 IF (geo(190,pid)+geo(191,pid)+geo(192,pid)+geo(192,pid)>zero)
324 IF (nn_del ==0 .AND. dt%IDEL_BRICK>0) nn_del=20
334 IF(jthe < 0) them(1:nel,1:npe) = zero
339 nptr = elbuf_tab(ng)%NPTR
340 npts = elbuf_tab(ng)%NPTS
341 nptt = elbuf_tab(ng)%NPTT
347 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
350 ip = ir + ( (is-1) + (it-1)*npts )*nptr
351 wi = w_gauss(ir,nptr)*w_gauss(is,npts)*w_gauss(it,nptt)
354 1 a_gauss(ir,nptr),a_gauss(is,npts),a_gauss(it,nptt),ni(1,ip),
355 2 dnidr ,dnids ,dnidt )
358 1 ngl, off, a_gauss(ir,nptr),a_gauss(is,npts),
359 2 a_gauss(it,nptt),wi, dnidr, dnids,
360 3 dnidt, rx(1,ip), ry(1,ip), rz(1,ip),
361 4 sx(1,ip), sy(1,ip), sz(1,ip), tx(1,ip),
362 5 ty(1,ip), tz(1,ip), xx, yy,
363 6 zz, px(1,1,ip), py(1,1,ip), pz(1,1,ip),
364 7 volnp(1,ip), deltax, stin, ni(1,ip),
366 9 it, voldp(1,ip), nel)
374 aa =
max(ul(i,1),ul(i,2),ul(i,3),ul(i,4),
375 . ul(i,5),ul(i,6),ul(i,7),ul(i,8))
376 bb =
max(ul(i,9) ,ul(i,10),ul(i,11),ul(i,12),ul(i,13),ul(i,14),
377 . ul(i,15),ul(i,16),ul(i,17),ul(i,18),ul(i,19),ul(i,20))
379 bb = bb*eighty16/seven
380 deltax(i) = sqrt(two*volg(i)/
max(aa,bb))
389 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
390 ip = ir + ( (is-1) + (it-1)*npts )*nptr
391 wi = w_gauss(ir,nptr)*w_gauss(is,npts)*w_gauss(it,nptt)
394 1 npe, px(1,1,ip), py(1,1,ip), pz(1,1,ip),
396 3 dxy, dxz, dyx, dyy,
397 4 dyz, dzx, dzy, dzz,
399 6 wyy, wzz, lbuf%RHO, rhoo,
400 7 volnp(1,ip),voln, nel)
402 divde(1:nel) = dt1*(dxx(1:nel)+ dyy(1:nel)+ dzz(1:nel))
404 1 pm, lbuf%VOL, lbuf%RHO, lbuf%EINT,
405 2 divde, flux(1,nf1),flu1(nf1), voln,
406 3 dvol, ngl, mxt, off,
407 4 0, gbuf%TAG22, voldp(1,ip),lbuf%VOL0DP,
408 5 amu, gbuf%OFF, nel, mtn,
409 6 jale, ismstr, jeul, jlag)
412 1 lbuf%SIG,s1, s2, s3,
414 3 wyy, wzz, nel, mtn,
420 1 gbuf%SMSTR,gbuf%OFF, off, wxx,
421 2 wyy, wzz, nel, ismstr,
427 CALL s20tempcg(1,nel,npe, nc,ni(1,ip),temp,tempel)
432 CALL mmain(timers, output,
433 1 elbuf_tab, ng, pm, geo,
434 2 ale_connect, ixs, iparg,
435 3 v, tf, npf, bufmat,
436 4 sti, x, dt2t, neltst,
437 5 ityptst, offset, nel, w,
438 6 off, ngeo, mxt, ngl,
439 7 voln, vd2, dvol, deltax,
440 8 vis, qvis, cxx, s1,
444 c wyy, wzz, rx(1,ip), ry(1,ip),
445 d rz(1,ip), sx(1,ip), sy(1,ip), sz(1,ip),
446 e vdx, vdy, vdz, muvoid,
447 f ssp_eq, aire, sigy, et,
448 g r1_free, lbuf%PLA, r3_free, amu,
449 h bid, bid, bid, bid,
450 i bid, bid, bid, bid,
451 j bid, ipm, gama, bid,
452 k bid, bid, bid, bid,
453 l bid, bid, istrain, tempel,
454 m die, iexpan, ilay, mbid,
456 o table, bid, bid, bid,
457 p bid, iparg(1,ng), igeo, conde,
458 q itask, nloc_dmg, varnl, mat_elem ,
459 r h3d_strain, jplasol, jsph, sz_bid,
460 * snpc, stf, sbufmat, glob_therm,
461 * svis, sz_ix, iresp,
462 * n2d, th_strain, ngroup, tt,
463 . dt1, ntable, numelq, nummat,
464 . numgeo, numnod, numels,
465 . idel7nok, idtmin, maxfunc,
466 . imon_mat, userl_avail, impl_s,
467 . idyna, dt, fheat ,sensors)
469 IF (istrain == 1)
THEN
472 2 d5, d6, lbuf%STRA,wxx,
473 3 wyy, wzz, off, nel,
481 1 gbuf%OFF,off, nel, ismstr)
488 2 pz(1,1,ip),ssp_eq, fx, fy,
489 3 fz, voln, qvis, stig,
490 4 stin, lbuf%EINT, lbuf%RHO, lbuf%QVIS,
491 5 lbuf%PLA, lbuf%EPSD, gbuf%EPSD, gbuf%SIG,
492 6 gbuf%EINT, gbuf%RHO, gbuf%QVIS, gbuf%PLA,
493 7 wi, volg, lbuf%VOL, gbuf%VOL,
494 8 gbuf%G_PLA,nel, conde, deltax,
495 9 condeg, israt ,svis ,glob_therm%NODADT_THERM,
496 1 gbuf%WPLA, lbuf%WPLA,gbuf%G_WPLA)
503 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1)
THEN
506 2 voln, px(1,1,ip),py(1,1,ip),pz(1,1,ip),
507 3 ni(1,ip), dt1, temp, tempel,
508 4 fheat, them, gbuf%OFF, lbuf%OFF,
509 5 nel ,glob_therm%THEACCFACT)
513 2 voln, px(1,1,ip),py(1,1,ip),pz(1,1,ip),
514 3 ni(1,ip), dt1, temp, tempel,
515 4 die , them, gbuf%OFF, lbuf%OFF,
516 5 nel ,glob_therm%THEACCFACT)
525 CALL sdlen8(ll8,volg,ixs(1,nf1),
526 . xx(1,1), xx(1,2), xx(1,3), xx(1,4),
527 . xx(1,5), xx(1,6), xx(1,7), xx(1,8),
528 . yy(1,1), yy(1,2), yy(1,3), yy(1,4),
529 . yy(1,5), yy(1,6), yy(1,7), yy(1,8),
530 . zz(1,1), zz(1,2), zz(1,3), zz(1,4),
531 . zz(1,5), zz(1,6), zz(1,7), zz(1,8), nel)
533 . xx(1,1), xx(1,2), xx(1,3), xx(1,4),
534 . xx(1,5), xx(1,6), xx(1,7), xx(1,8),
535 . yy(1,1), yy(1,2), yy(1,3), yy(1,4),
536 . yy(1,5), yy(1,6), yy(1,7), yy(1,8),
537 . zz(1,1), zz(1,2), zz(1,3), zz(1,4),
538 . zz(1,5), zz(1,6), zz(1,7), zz(1,8), nel)
539 CALL sgeodel3(ngl,gbuf%OFF,volg,ll8,gbuf%VOL,geo(1,ngeo(1)),l_max,dt,nel,idel7nok )
545 iflag=mod(ncycle,ncpri)
547 CALL s20bilan(partsav,gbuf%EINT,gbuf%RHO,volg,
548 . vx, vy, vz,iparts,gbuf%VOL,
549 . gresav,grth,igrth,iexpan,gbuf%EINTTH,
550 . gbuf%FILL, xx, yy, zz,itask,iparg(1,ng),
551 . gbuf%OFF,sensors,nel,gbuf%G_WPLA,gbuf%WPLA)
556 1 npe, gbuf%FILL,stig, fx,
561 1 gbuf%OFF,a, nc, stifn,
563 3 iperm1, iperm2, npe, them,
564 4 fthe, condn, condeg, nel,
565 5 jthe, glob_therm%NODADT_THERM)
568 1 gbuf%OFF, stig, fsky, fsky,
569 2 iads(1,nf1), fx, fy, fz,
570 3 iads20(1,nf2),nc, iperm1, iperm2,
571 4 npe, them, fthesky, condnsky,
572 5 condeg, nel, nft, jthe,
573 6 glob_therm%NODADT_THERM)