62 1 ELBUF_TAB, NG, PM, GEO,
65 4 VEUL, FV, ALE_CONNECT,IPARG,
66 5 TF, NPF, BUFMAT, PARTSAV,
67 6 NLOC_DMG, DT2T, NELTST, ITYPTST,
68 7 STIFN, FSKY, IADS, OFFSET,
69 8 EANI, IPARTS, IXS20, IADS20,
76 F VDYY, VDZZ, DNIDR, DNIDS,
78 H IPM, ISTRAIN, TEMP, FTHE,
79 I FTHESKY, IEXPAN, GRESAV, GRTH,
80 J IGRTH, TABLE, IGEO, VOLN,
81 K CONDN, CONDNSKY, ITASK, IOUTPRT,
82 L MAT_ELEM, H3D_STRAIN, DT, IDEL7NOK,
83 M SNPC, STF, SBUFMAT, SVIS,
84 N IDTMINS, NSVOIS, IRESP, IDEL7NG,
85 O IDTMIN, MAXFUNC, IMON_MAT, USERL_AVAIL,
86 . GLOB_THERM, impl_s, idyna, SENSORS)
91 USE output_mod,
only : output_
104#include "implicit_f.inc"
108#include "mvsiz_p.inc"
112#include "com01_c.inc"
113#include "com04_c.inc"
114#include "com08_c.inc"
115#include "vect01_c.inc"
116#include "parit_c.inc"
117#include "param_c.inc"
127 TYPE(timer_) ,
INTENT(INOUT) :: TIMERS
128 TYPE(OUTPUT_) ,
INTENT(INOUT) :: OUTPUT
129 INTEGER ,
INTENT(IN) :: IDEL7NG
130 INTEGER ,
INTENT(INOUT) :: IDEL7NOK
131 integer,
dimension(102) :: IDTMIN
132 INTEGER ,
INTENT(IN) :: MAXFUNC
133 INTEGER,
INTENT(IN) :: SNPC
135INTEGER,
INTENT(IN) :: SBUFMAT
136 INTEGER,
INTENT(IN) :: IDTMINS
137 INTEGER,
INTENT(IN) :: NSVOIS
138 INTEGER ,
INTENT(IN) :: IRESP
139 INTEGER,
INTENT(IN) :: IMPL_S
140 INTEGER,
INTENT(IN) :: IDYNA
141 INTEGER,
INTENT(IN) :: USERL_AVAIL
142 INTEGER,
INTENT(IN) :: IMON_MAT
143 INTEGER IXS(NIXS,*), IPARG(NPARG,NGROUP),NPF(*),
144 . IADS(8,*),IPARTS(*),IXS20(12,*),IADS20(12,*),IPM(*),
145 . GRTH(*),IGRTH(*),IGEO(*),ITASK,IOUTPRT
146 INTEGER NELTST,ITYPTST,OFFSET,NEL,ISTRAIN,
147 . iexpan,ng,h3d_strain
151 . pm(*), geo(npropg,*), x(*), a(*), v(*), ms(*), w(*), flux(6,*),flu1(*),
152 . veul(*), fv(*), tf(*),temp(*), fthe(*),fthesky(*),gresav(*),
153 . bufmat(*),partsav(*),stifn(*), fsky(*),eani(*),voln(mvsiz)
155 . fx(mvsiz,npe),fy(mvsiz,npe),fz(mvsiz,npe),volnp(mvsiz,nipmax),
156 . rx(mvsiz,nipmax) , ry(mvsiz,nipmax) , rz(mvsiz,nipmax) ,
157 . sx(mvsiz,nipmax) , sy(mvsiz,nipmax) , sz(mvsiz,nipmax) ,
158 . tx(mvsiz,nipmax),ty(mvsiz,nipmax),tz(mvsiz,nipmax),
159 . stig(mvsiz,npe),stin(mvsiz,npe),ul(mvsiz,npe),
160 . xx(mvsiz,npe), yy(mvsiz,npe), zz(mvsiz,npe),
162 . vdxx(mvsiz,npe), vdyy(mvsiz,npe), vdzz(mvsiz,npe),
163 . dnidr(mvsiz,npe),dnids(mvsiz,npe),dnidt(mvsiz,npe),
164 . px(mvsiz,npe,nipmax),py(mvsiz,npe,nipmax),pz(mvsiz,npe,nipmax),
165 . condn(*),condnsky(*)
166 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
167 TYPE (TTABLE) TABLE(*)
168 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) ::
169 TYPE (NLOCAL_STR_) ,
TARGET :: NLOC_DMG
170 TYPE(t_ale_connectivity),
INTENT(IN) :: ALE_CONNECT
171 TYPE (MAT_ELEM_) ,
INTENT(INOUT) :: MAT_ELEM
172 TYPE(DT_),
INTENT(INOUT) :: DT
173 type (glob_therm_) ,
intent(inout) :: glob_therm
174 type (sensors_),
INTENT(INOUT) :: SENSORS
178 INTEGER I,N,NF1,NF2,ILAY,IP,IR,IS,IT,NPTT,NPTS,NPTR,IFLAG,IBID
179 INTEGER IBIDON(1),ITET,NN_DEL,PID,IMAT
181 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ), IPERM1(NPE),
185 . VD2(MVSIZ) , DVOL(MVSIZ),DELTAX(MVSIZ),
186 . (MVSIZ) , QVIS(MVSIZ), CXX(MVSIZ) ,
187 . S1(MVSIZ) , S2(MVSIZ) , S3(MVSIZ) ,
188 . S4(MVSIZ) , S5() , (MVSIZ) ,
189 . DXX(MVSIZ) , DYY(MVSIZ) , DZZ(MVSIZ) ,
190 . D4(MVSIZ) , D5() , D6(MVSIZ) ,
191 . vdx(mvsiz),vdy(mvsiz),vdz(mvsiz),ssp_eq(mvsiz),
192 . aire(mvsiz),conde(mvsiz),condeg(mvsiz,npe),amu(mvsiz),divde(mvsiz)
196 . sti(mvsiz), wxx(mvsiz) , wyy(mvsiz) , wzz(mvsiz)
204 . sigy(mvsiz),et(mvsiz),gama(mvsiz,6),
205 . r1_free(mvsiz),r3_free(mvsiz),r4_free(mvsiz),
206 . tempel(mvsiz),die(mvsiz),them(mvsiz,npe)
207 my_real,
dimension(mvsiz) :: fheat
210 INTEGER NC(MVSIZ,NPE)
212 . OFF(MVSIZ) , RHOO(MVSIZ),NI(NPE,NIPMAX),
213 . DXY(MVSIZ),DYX(MVSIZ),
214 . DYZ(MVSIZ),DZY(MVSIZ),VOLG(MVSIZ),
215 . DZX(MVSIZ),DXZ(MVSIZ),BID(MVSIZ),AA,WI,BB, MBID(1),LL8(MVSIZ),L_MAX(MVSIZ)
218 . VOLDP(MVSIZ,NIPMAX)
220 TYPE(l_bufel_) ,
POINTER :: LBUF
221 TYPE(G_BUFEL_) ,
POINTER :: GBUF
222 TYPE(BUF_MAT_) ,
POINTER :: MBUF
225 . w_gauss(9,9),a_gauss(9,9)
234 3 0.555555555555556d0,0.888888888888889d0,0.555555555555556d0,
237 4 0.347854845137454d0,0.652145154862546d0,0.652145154862546d0,
238 4 0.347854845137454d0,0.d0 ,0.d0 ,
240 5 0.236926885056189d0,0.478628670499366d0,0.568888888888889d0,
241 5 0.478628670499366d0,0.236926885056189d0,0.d0 ,
243 6 0.171324492379170d0,0.360761573048139d0,0.467913934572691d0,
244 6 0.467913934572691d0,0.360761573048139d0,0.171324492379170d0,
246 7 0.129484966168870d0,0.279705391489277d0,0.381830050505119d0,
247 7 0.417959183673469d0,0.381830050505119d0,0.279705391489
248 7 0.129484966168870d0,0.d0 ,0.d0 ,
249 8 0.101228536290376d0,0.222381034453374d0,0.313706645877887d0,
250 8 0.362683783378362d0,0.362683783378362d0,0.313706645877887d0,
251 8 0.222381034453374d0,0.101228536290376d0,0.d0 ,
252 9 0.081274388361574d0,0.180648160694857d0,0.260610696402935d0,
253 9 0.312347077040003d0,0.330239355001260d0,0.312347077040003d0,
254 9 0.260610696402935d0,0.180648160694857d0,0.081274388361574d0/
260 2 -.577350269189625d0,0.577350269189625d0,0.d0 ,
263 3 -.774596669241483d0,0.d0 ,0.774596669241483d0,
266 4 -.861136311594053d0,-.339981043584856d0,0.339981043584856d0,
267 4 0.861136311594053d0,0.d0 ,0.d0 ,
269 5 -.906179845938664d0,-.538469310105683d0,0.d0 ,
270 5 0.538469310105683d0,0.906179845938664d0,0.d0 ,
272 6 -.932469514203152d0,-.661209386466265d0,-.238619186083197d0,
273 6 0.238619186083197d0,0.661209386466265d0,0.932469514203152d0,
275 7 -.949107912342759d0,-.741531185599394d0,-.405845151377397d0,
276 7 0.d0 ,0.405845151377397d0,0.741531185599394d0,
277 7 0.949107912342759d0,0.d0 ,0.d0 ,
278 8 -.960289856497536d0,-.796666477413627d0,-.525532409916329d0,
279 8 -.183434642495650d0,0.183434642495650d0,0.525532409916329d0,
280 8 0.796666477413627d0,0.960289856497536d0,0.d0 ,
281 9 -.968160239507626d0,-.836031107326636d0,-.613371432700590d0,
282 9 -.324253423403809d0,0.d0 ,0.324253423403809d0,
283 9 0.613371432700590d0,0.836031107326636d0,0.968160239507626d0/
287 DATA iperm1/0,0,0,0,0,0,0,0,1,2,3,4,1,2,3,4,5,6,7,8/
288 DATA iperm2/0,0,0,0,0,0,0,0,2,3,4,1,5,6,7,8,6,7,8,5/
292 gbuf => elbuf_tab(ng)%GBUF
296 sz_ix=numelq+numels+nsvois
302 nf2 = nf1-(numels8+numels10)
305 1 x, ixs(1,nf1), ixs20(1,nf2),v,
306 2 w, iperm1, iperm2, npe,
308 4 vy, vz, vdxx, vdyy,
309 5 vdzz, vdx, vdy, vdz,
310 6 vd2, vis, gbuf%OFF, off,
311 7 gbuf%SMSTR, nc, ngl, mxt,
313 9 stig, gbuf%SIG, gbuf%EINT, gbuf%RHO,
314 a gbuf%QVIS, gbuf%PLA, gbuf%EPSD
315 b gbuf%G_EPSD, nel, condeg, jale,
316 c ismstr, jeul, jlag)
320 IF (geo(190,pid)+geo(191,pid)+geo(192,pid)+geo(192,pid)>zero)
322 IF (nn_del ==0 .AND. dt%IDEL_BRICK>0) nn_del=20
332 IF(jthe < 0) them(1:nel,1:npe) = zero
337 nptr = elbuf_tab(ng)%NPTR
338 npts = elbuf_tab(ng)%NPTS
339 nptt = elbuf_tab(ng)%NPTT
345 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
348 ip = ir + ( (is-1) + (it-1)*npts
349 wi = w_gauss(ir,nptr)*w_gauss(is,npts)*w_gauss(it,nptt)
352 1 a_gauss(ir,nptr),a_gauss(is,npts),a_gauss(it,nptt),ni(1,ip),
353 2 dnidr ,dnids ,dnidt )
356 1 ngl, off, a_gauss(ir,nptr),a_gauss(is,npts),
357 2 a_gauss(it,nptt),wi, dnidr, dnids,
358 3 dnidt, rx(1,ip), ry(1,ip), rz(1,ip),
359 4 sx(1,ip), sy(1,ip), sz(1,ip), tx(1,ip),
360 5 ty(1,ip), tz(1,ip), xx, yy,
361 6 zz, px(1,1,ip), py(1,1,ip), pz(1,1,ip),
362 7 volnp(1,ip), deltax, stin, ni(1,ip),
364 9 it, voldp(1,ip), nel)
372 aa =
max(ul(i,1),ul(i,2),ul(i,3),ul(i,4),
373 . ul(i,5),ul(i,6),ul(i,7),ul(i,8))
374 bb =
max(ul(i,9) ,ul(i,10),ul(i,11),ul(i,12),ul(i,13),ul(i,14),
375 . ul(i,15),ul(i,16),ul(i,17),ul(i,18),ul(i,19),ul(i,20))
377 bb = bb*eighty16/seven
378 deltax(i) = sqrt(two*volg(i)/
max(aa,bb))
387 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
388 ip = ir + ( (is-1) + (it-1)*npts )*nptr
389 wi = w_gauss(ir,nptr)*w_gauss(is,npts)*w_gauss(it,nptt)
392 1 npe, px(1,1,ip), py(1,1,ip), pz(1,1,ip),
394 3 dxy, dxz, dyx, dyy,
395 4 dyz, dzx, dzy, dzz,
397 6 wyy, wzz, lbuf%RHO, rhoo,
398 7 volnp(1,ip),voln, nel)
400 divde(1:nel) = dt1*(dxx(1:nel)+ dyy(1:nel)+ dzz(1:nel))
402 1 pm, lbuf%VOL, lbuf%RHO, lbuf%EINT,
403 2 divde, flux(1,nf1),flu1(nf1), voln,
404 3 dvol, ngl, mxt, off,
405 4 0, gbuf%TAG22, voldp(1,ip),lbuf%VOL0DP,
406 5 amu, gbuf%OFF, nel, mtn,
407 6 jale, ismstr, jeul, jlag)
410 1 lbuf%SIG,s1, s2, s3,
412 3 wyy, wzz, nel, mtn,
418 1 gbuf%SMSTR,gbuf%OFF, off, wxx,
419 2 wyy, wzz, nel, ismstr,
425 CALL s20tempcg(1,nel,npe, nc,ni(1,ip),temp,tempel)
430 CALL mmain(timers, output,
431 1 elbuf_tab, ng, pm, geo,
432 2 ale_connect, ixs, iparg,
433 3 v, tf, npf, bufmat,
434 4 sti, x, dt2t, neltst,
435 5 ityptst, offset, nel, w,
436 6 off, ngeo, mxt, ngl,
437 7 voln, vd2, dvol, deltax,
438 8 vis, qvis, cxx, s1,
442 c wyy, wzz, rx(1,ip), ry(1,ip),
443 d rz(1,ip), sx(1,ip), sy(1,ip), sz(1,ip),
444 e vdx, vdy, vdz, muvoid,
445 f ssp_eq, aire, sigy, et,
446 g r1_free, lbuf%PLA, r3_free, amu,
447 h bid, bid, bid, bid,
448 i bid, bid, bid, bid,
449 j bid, ipm, gama, bid,
450 k bid, bid, bid, bid,
451 l bid, bid, istrain, tempel,
452 m die, iexpan, ilay, mbid,
454 o table, bid, bid, bid,
455 p bid, iparg(1,ng), igeo, conde,
456 q itask, nloc_dmg, varnl, mat_elem ,
457 r h3d_strain, jplasol, jsph, sz_bid,
458 * snpc, stf, sbufmat, glob_therm,
459 * svis, sz_ix, iresp,
460 * n2d, th_strain, ngroup, tt,
461 . dt1, ntable, numelq, nummat,
462 . numgeo, numnod, numels,
463 . idel7nok, idtmin, maxfunc,
464 . imon_mat, userl_avail, impl_s,
465 . idyna, dt, fheat ,sensors)
467 IF (istrain == 1)
THEN
470 2 d5, d6, lbuf%STRA,wxx,
471 3 wyy, wzz, off, nel,
479 1 gbuf%OFF,off, nel, ismstr)
485 1 npe, lbuf%SIG, px(1,1,ip),py(1,1,ip),
486 2 pz(1,1,ip),ssp_eq, fx, fy,
487 3 fz, voln, qvis, stig,
488 4 stin, lbuf%EINT, lbuf%RHO, lbuf%QVIS,
489 5 lbuf%PLA, lbuf%EPSD, gbuf%EPSD, gbuf%SIG,
490 6 gbuf%EINT, gbuf%RHO, gbuf%QVIS, gbuf%PLA,
491 7 wi, volg, lbuf%VOL, gbuf%VOL,
492 8 gbuf%G_PLA,nel, conde, deltax,
493 9 condeg, israt ,svis ,glob_therm%NODADT_THERM,
494 1 gbuf%WPLA, lbuf%WPLA,gbuf%G_WPLA)
501 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1)
THEN
504 2 voln, px(1,1,ip),py(1,1,ip),pz(1,1,ip),
505 3 ni(1,ip), dt1, temp, tempel,
506 4 fheat, them, gbuf%OFF, lbuf%OFF,
507 5 nel ,glob_therm%THEACCFACT)
511 2 voln, px(1,1,ip),py(1,1,ip),pz(1,1,ip),
512 3 ni(1,ip), dt1, temp, tempel,
513 4 die , them, gbuf%OFF, lbuf%OFF,
514 5 nel ,glob_therm%THEACCFACT)
523 CALL sdlen8(ll8,volg,ixs(1,nf1),
524 . xx(1,1), xx(1,2), xx(1,3), xx(1,4),
525 . xx(1,5), xx(1,6), xx(1,7), xx(1,8),
526 . yy(1,1), yy(1,2), yy(1,3), yy(1,4),
527 . yy(1,5), yy(1,6), yy(1,7), yy(1,8),
528 . zz(1,1), zz(1,2), zz(1,3), zz(1,4),
529 . zz(1,5), zz(1,6), zz(1,7), zz(1,8), nel)
531 . xx(1,1), xx(1,2), xx(1,3), xx(1,4),
532 . xx(1,5), xx(1,6), xx(1,7), xx(1,8),
533 . yy(1,1), yy(1,2), yy(1,3), yy(1,4),
534 . yy(1,5), yy(1,6), yy
535 . zz(1,1), zz(1,2), zz(1,3), zz(1,4),
536 . zz(1,5), zz(1,6), zz(1,7), zz(1,8), nel)
537 CALL sgeodel3(ngl,gbuf%OFF,volg,ll8,gbuf%VOL,geo(1,ngeo(1)),l_max,dt,nel,idel7nok )
543 iflag=mod(ncycle,ncpri)
545 CALL s20bilan(partsav,gbuf%EINT,gbuf%RHO,volg,
546 . vx, vy, vz,iparts,gbuf%VOL,
547 . gresav,grth,igrth,iexpan,gbuf%EINTTH,
548 . gbuf%FILL, xx, yy, zz,itask,iparg(1,ng),
549 . gbuf%OFF,sensors,nel,gbuf%G_WPLA,gbuf%WPLA)
554 1 npe, gbuf%FILL,stig, fx,
559 1 gbuf%OFF,a, nc, stifn,
561 3 iperm1, iperm2, npe, them,
562 4 fthe, condn, condeg, nel,
563 5 jthe, glob_therm%NODADT_THERM)
566 1 gbuf%OFF, stig, fsky, fsky,
567 2 iads(1,nf1), fx, fy, fz,
568 3 iads20(1,nf2),nc, iperm1, iperm2,
569 4 npe, them, fthesky, condnsky,
570 5 condeg, nel, nft, jthe,
571 6 glob_therm%NODADT_THERM)