49 . ELBUF_STR,MAS ,IXS ,PM ,X ,
50 . DETONATORS,GEO ,VEUL ,ALE_CONNECTIVITY,IPARG ,
51 . DTELEM ,SIGI ,NEL ,SKEW ,IGEO ,
52 . STIFN ,PARTSAV ,V ,IPARTS ,MSS ,
54 . SIGSP ,NSIGI ,IPM ,IUSER ,NSIGS ,
55 . VOLNOD ,BVOLNOD ,VNS ,BNS ,PTSOL ,
56 . BUFMAT ,MCP ,MCPS ,MCPSX ,TEMP ,
57 . NPF ,TF ,STRSGLOB,STRAGLOB ,MSSA ,
58 . ORTHOGLOB,FAIL_INI,ILOADP ,FACLOAD ,RNOISE,
59 . PERTURB ,MAT_PARAM,DEFAULTS_SOLID)
74 use element_mod ,
only : nixs
78#include "implicit_f.inc"
91#include "vect01_c.inc"
95 INTEGER IXS(NIXS,*), IPARG(*),IPARTS(*),
96 . NEL, IPART(LIPART1,*),PERTURB(NPERTURB),
97 . IPM(NPROPMI,*), PTSOL(*), NSIGI, IUSER, NSIGS, NPF(*)
98 INTEGER IGEO(NPROPGI,*),STRSGLOB(*),STRAGLOB(*),ORTHOGLOB(*),
101 . MAS(*), PM(NPROPM,*), X(*), GEO(NPROPG,*),
102 . VEUL(LVEUL,*), DTELEM(*),SIGI(NSIGS,*),SKEW(LSKEW,*),STIFN(*),
103 . PARTSAV(20,*), V(*), MSS(8,*),SIGSP(NSIGI,*),
104 . VOLNOD(*), BVOLNOD(*), VNS(8,*), BNS(8,*),BUFMAT(*),MCP(*),
105 . MCPS(8,*), MCPSX(12,*),TEMP(*), TF(*), MSSA(*),RNOISE(NPERTURB,*)
106 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
107 INTEGER,
INTENT(IN) :: ILOADP(SIZLOADP,*)
108 my_real,
INTENT(IN) :: FACLOAD(LFACLOAD,*)
110 TYPE(t_ale_connectivity),
INTENT(INOUT) :: ALE_CONNECTIVITY
111 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(INOUT) :: MAT_PARAM
112 TYPE(SOLID_DEFAULTS_),
INTENT(IN) :: DEFAULTS_SOLID
113 type (glob_therm_) ,
intent(in) :: glob_therm
117 INTEGER I,NF1,IBID,IGTYP,IREP,IP,ILAY,NLAY,NUVAR,NCC,JHBE,
118 . nuvarr,idef,ipang,ipthk,ippos,ipmat,ig,im,mtn0,nlymax,
119 . ipid1,nptr,npts,nptt,l_pla,l_sigb,imas_ds
120 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ), MAT0(MVSIZ)
121 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
122 . ix5(mvsiz), ix6(mvsiz)
124 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz), x5(mvsiz), x6(mvsiz),
125 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz), y5(mvsiz), y6(mvsiz),
126 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz), z5(mvsiz), z6(mvsiz)
127 CHARACTER(LEN=NCHARTITLE)::TITR1
129 . bid, fv, sti, zi,wi
131 . v8loc(51,mvsiz),volu(mvsiz),dtx(mvsiz),vzl(mvsiz),vzq(mvsiz),
132 . rx(mvsiz) ,ry(mvsiz) ,rz(mvsiz) ,sx(mvsiz) ,
133 . sy(mvsiz) ,sz(mvsiz) ,tx(mvsiz) ,ty(mvsiz) ,tz(mvsiz) ,
134 . e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),
135 . e2x(mvsiz),e2y(mvsiz),e2z(mvsiz),
136 . e3x(mvsiz),e3y(mvsiz),e3z(mvsiz),
137 . f1x(mvsiz) ,f1y(mvsiz) ,f1z(mvsiz) ,llsh(mvsiz) ,
138 . f2x(mvsiz) ,f2y(mvsiz) ,f2z(mvsiz) ,rhocp(mvsiz),temp0(mvsiz), deltax(mvsiz), aire(mvsiz)
139 my_real :: tempel(nel)
141 TYPE(g_bufel_) ,
POINTER :: GBUF
142 TYPE(BUF_LAY_) ,
POINTER :: BUFLY
143 TYPE(L_BUFEL_) ,
POINTER :: LBUF
144 TYPE(BUF_MAT_) ,
POINTER :: MBUF
147 . W_GAUSS(9,9),A_GAUSS(9,9),ANGLE(MVSIZ),DTX0()
155 3 0.555555555555556,0.888888888888889,0.555555555555556,
158 4 0.347854845137454,0.652145154862546,0.652145154862546,
159 4 0.347854845137454,0. ,0. ,
161 5 0.236926885056189,0.478628670499366,0.568888888888889,
162 5 0.478628670499366,0.236926885056189,0. ,
164 6 0.171324492379170,0.360761573048139,0.467913934572691,
165 6 0.467913934572691,0.360761573048139,0.171324492379170,
167 7 0.129484966168870,0.279705391489277,0.381830050505119,
168 7 0.417959183673469,0.381830050505119,0.279705391489277,
169 7 0.129484966168870,0. ,0. ,
170 8 0.101228536290376,0.222381034453374,0.313706645877887,
171 8 0.362683783378362,0.362683783378362,0.313706645877887,
172 8 0.222381034453374,0.101228536290376,0. ,
173 9 0.081274388361574,0.180648160694857,0.260610696402935,
174 9 0.312347077040003,0.330239355001260,0.312347077040003,
175 9 0.260610696402935,0.180648160694857,0.081274388361574/
180 2 -.577350269189626,0.577350269189626,0. ,
183 3 -.774596669241483,0. ,0.774596669241483,
186 4 -.861136311594053,-.339981043584856,0.339981043584856,
187 4 0.861136311594053,0. ,0. ,
189 5 -.906179845938664,-.538469310105683,0. ,
190 5 0.538469310105683,0.906179845938664,0. ,
192 6 -.932469514203152,-.661209386466265,-.238619186083197,
193 6 0.238619186083197,0.661209386466265,0.932469514203152,
195 7 -.949107912342759,-.741531185599394,-.405845151377397,
196 7 0. ,0.405845151377397,0.741531185599394,
197 7 0.949107912342759,0. ,0. ,
198 8 -.960289856497536,-.796666477413627,-.525532409916329,
199 8 -.183434642495650,0.183434642495650,0.525532409916329,
200 8 0.796666477413627,0.960289856497536,0. ,
201 9 -.968160239507626,-.836031107326636,-.613371432700590,
202 9 -.324253423403809,0. ,0.324253423403809,
203 9 0.613371432700590,0.836031107326636,0.968160239507626/
207 gbuf => elbuf_str%GBUF
208 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,1)
209 mbuf => elbuf_str%BUFLY(1)%MAT(1,1,1)
210 bufly => elbuf_str%BUFLY(1)
211 nptr = elbuf_str%NPTR
212 npts = elbuf_str%NPTS
213 nptt = elbuf_str%NPTT
214 nlay = elbuf_str%NLAY
223 IF (igtyp /= 22)
THEN
226 imas_ds = defaults_solid%IMAS
229 rhocp(i) = pm(69,ixs(1,nft+i))
230 temp0(i) = pm(79,ixs(1,nft+i))
233 CALL s6ccoor3(x ,ixs(1,nf1) ,geo ,ngl ,mat ,pid ,
234 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
235 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
236 . f1x ,f1y ,f1z ,f2x ,f2y ,f2z ,temp0, temp,glob_therm%NINTEMP,
237 . ix1, ix2, ix3, ix4, ix5, ix6,
238 . x1, x2, x3, x4, x5, x6,
239 . y1, y2, y3, y4, y5, y6,
240 . z1, z2, z3, z4, z5, z6)
241 IF (igtyp == 21 .OR. igtyp == 22)
THEN
243 angle(i) = geo(1,pid(i))
245 CALL scmorth3(pid ,geo ,igeo ,skew ,irep ,gbuf%GAMA ,
246 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
247 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
248 . ngl ,angle,nsigi,sigsp,nsigs,sigi ,ixs ,1 ,
249 . orthoglob,ptsol,nel)
250 IF (igtyp == 22)
THEN
264 CALL s6cderi3(nel,gbuf%VOL,geo,vzl,ngl,deltax,volu ,
265 . x1, x2, x3, x4, x5, x6,
266 . y1, y2, y3, y4, y5, y6,
267 . z1, z2, z3, z4, z5, z6)
270 . x1, x2, x3, x4, x5, x6,
271 . y1, y2, y3, y4, y5, y6,
272 . z1, z2, z3, z4, z5, z6)
274 IF (gbuf%IDT_TSH(i)>0)
275 . deltax(i)=
max(llsh(i),deltax(i))
281 IF (jthe == 0 .and. glob_therm%NINTEMP > 0)
THEN
283 tempel(i) = one_over_8 *(temp(ixs(2,i)) + temp(ixs(3,i))
284 . + temp(ixs(4,i)) + temp(ixs(5,i))
285 . + temp(ixs(6,i)) + temp(ixs(7,i))
286 . + temp(ixs(8,i)) + temp(ixs(9,i)))
289 tempel(1:nel) = temp0(1:nel)
293 CALL matini(pm ,ixs ,nixs ,x ,
294 . geo ,ale_connectivity ,detonators ,iparg ,
295 . sigi ,nel ,skew ,igeo ,
297 . mat ,ipm ,nsigs ,numsol ,ptsol ,
298 . ip ,ngl ,npf ,tf ,bufmat ,
299 . gbuf ,lbuf ,mbuf ,elbuf_str ,iloadp ,
300 . facload, deltax ,tempel ,mat_param )
302 IF (igtyp == 22)
CALL sczero3(gbuf%RHO,gbuf%SIG,gbuf%EINT,nel)
305 IF(jthe /=0)
CALL atheri(mat,pm,gbuf%TEMP)
309 lbuf => elbuf_str%BUFLY(ilay)%LBUF(1,1,1)
310 mbuf => elbuf_str%BUFLY(ilay)%MAT(1,1,1)
311 l_pla = elbuf_str%BUFLY(ilay)%L_PLA
312 l_sigb= elbuf_str%BUFLY(ilay)%L_SIGB
314 IF (igtyp == 22)
THEN
315 zi = geo(ippos+ilay,ig)
316 wi = geo(ipthk+ilay,ig)
317 im=igeo(ipmat+ilay,ig)
321 angle(i) = geo(ipang+ilay,pid(i))
324 zi = a_gauss(ilay,nlay)
325 wi = w_gauss(ilay,nlay)
329 lbuf%VOL0DP(i)= half*wi*(gbuf%VOL(i)+vzl(i)*zi)
330 lbuf%VOL(i)= lbuf%VOL0DP(i)
333 .
CALL scmorth3(pid ,geo ,igeo ,skew ,irep ,lbuf%GAMA ,
334 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
335 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
336 . ngl ,angle,nsigi,sigsp,nsigs,sigi ,ixs,ilay,
337 . orthoglob,ptsol,nel)
341 IF (jthe == 0 .and. glob_therm%NINTEMP > 0)
THEN
343 tempel(i) = one_over_8 *(temp(ixs(2,i)) + temp(ixs(3,i))
344 . + temp(ixs(4,i)) + temp(ixs(5,i))
346 . + temp(ixs(8,i)) + temp(ixs(9,i)))
349 tempel(1:nel) = temp0(1:nel)
352 CALL matini(pm ,ixs ,nixs ,x ,
353 . geo ,ale_connectivity ,detonators,iparg ,
354 . sigi ,nel ,skew ,igeo ,
356 . mat ,ipm ,nsigs ,numsol ,ptsol ,
357 . ilay ,ngl ,npf ,tf ,bufmat ,
358 . gbuf ,lbuf ,mbuf ,elbuf_str ,iloadp ,
359 . facload, deltax ,tempel ,mat_param )
361 nuvar = ipm(8,ixs(1,nft+1))
365 IF(mtn == 14 .OR. mtn == 12)
THEN
367 ELSEIF(mtn == 24)
THEN
369 ELSEIF(istrain == 1)
THEN
376 ELSEIF(mtn == 3.OR.mtn == 6.OR.mtn == 10
377 . .OR.mtn == 21.OR.mtn == 22.OR.mtn == 23.OR.mtn == 49)
THEN
383 . lbuf%SIG,pm ,lbuf%VOL ,sigsp ,
384 . sigi ,lbuf%EINT,lbuf%RHO,mbuf%VAR ,lbuf%STRA,
385 . ixs ,nixs ,nsigi ,ilay ,nuvar ,
386 . nel ,iuser ,idef ,nsigs ,strsglob ,
387 . straglob,jhbe ,igtyp ,x ,lbuf%GAMA,
388 . mat ,lbuf%PLA ,l_pla ,ptsol ,lbuf%SIGB,
389 . l_sigb ,ipm ,bufmat ,lbuf%VOL0DP)
394 CALL dtmain(geo ,pm ,ipm ,pid ,mat ,fv ,
395 . lbuf%EINT ,lbuf%TEMP ,lbuf%DELTAX ,lbuf%RK ,lbuf%RE ,bufmat, deltax, aire,
396 . volu, dtx , igeo,igtyp)
399 . lbuf%RHO,lbuf%VOL,lbuf%OFF,lbuf%SIG,lbuf%EINT,dtx,
400 . gbuf%RHO,gbuf%VOL,gbuf%OFF,gbuf%SIG,gbuf%EINT,dtx0,
413 CALL s6mass3(gbuf%RHO,mas,partsav,x,v,iparts(nf1),mss(1,nf1),
414 . rhocp,mcp ,mcps(1,nf1),mssa(nf1),gbuf%FILL, volu,
415 . ix1, ix2, ix3, ix4, ix5, ix6,imas_ds)
418 CALL failini(elbuf_str,nptr,npts,nptt,nlay,
419 . ipm,sigsp,nsigi,fail_ini ,
420 . sigi,nsigs,ixs,nixs,ptsol,
421 . rnoise,perturb,mat_param)
427 CALL sbulk3(volu ,ix1 ,ncc,mat,pm ,
428 2 volnod,bvolnod,vns(1,nf1),bns(1,nf1),bid,
434 CALL dtmain(geo ,pm ,ipm ,pid ,mat ,fv ,
435 . lbuf%EINT ,lbuf%TEMP ,lbuf%DELTAX ,lbuf%RK ,lbuf%RE ,bufmat, deltax, aire,
436 . volu, dtx, igeo,igtyp)
445 IF(ixs(10,i+nft) /= 0)
THEN
446 IF (igtyp < 20 .OR. igtyp > 22)
THEN
447 ipid1=ixs(nixs-1,i+nft)
448 CALL fretitl2(titr1,igeo(npropgi-ltitr+1,ipid1),ltitr)
451 . anmode=aninfo_blind_1,
458 sti = fourth * gbuf%FILL(i) * gbuf%RHO(i) * volu(i) /
459 .
max(em20,dtx(i)*dtx(i))
460 stifn(ixs(2,i+nft))=stifn(ixs(2,i+nft))+sti
461 stifn(ixs(3,i+nft))=stifn(ixs(3,i+nft))+sti
462 stifn(ixs(4,i+nft))=stifn(ixs(4,i+nft))+sti
463 stifn(ixs(5,i+nft))=stifn(ixs(5,i+nft))+sti
464 stifn(ixs(6,i+nft))=stifn(ixs(6,i+nft))+sti
465 stifn(ixs(7,i+nft))=stifn(ixs(7,i+nft))+sti
466 stifn(ixs(8,i+nft))=stifn(ixs(8,i+nft))+sti
467 stifn(ixs(9,i+nft))=stifn(ixs(9,i+nft))+sti
subroutine initia(iparg, elbuf, ms, in, v, x, ixs, ixq, ixc, ixt, ixp, ixr, detonators, geo, pm, rby, npby, lpby, npc, npts, pld, veul, ale_connectivity, skew, fill, ipart, itab, sensors, skvol, ixtg, thk, nloc_dmg, group_param_tab, glob_therm, igrnod, igrsurf, bufsf, vr, bufmat, xlas, las, dtelem, mss, msq, msc, mst, msp, msr, mstg, ptg, inc, nod2eltg, knod2eltg, inp, inr, intg, index, itri, kxx, ixx, xelemwa, iwa, nod2elq, knod2elq, nod2els, knod2els, kxsp, ixsp, nod2sp, ispcond, icode, iskew, iskn, ispsym, xframe, isptag, spbuf, mssx, nsigi, npbyl, lpbyl, rbyl, msnf, mssf, nsigsh, igeo, ipm, nsigs, nsigsph, vns, vnsx, stc, stt, stp, str, sttg, stur, bns, bnsx, volnod, bvolnod, etnod, nshnod, stifint, fxbdep, fxbvit, fxbacc, fxbipm, fxbrpm, fxbelm, fxbsig, fxbmod, ins, ptshel, ptsh3n, ptsol, ptquad, wma, ptsph, fxbnod, mbufel, mdepl, fxani, numel, nsigrs, sh4tree, sh3tree, mcp, temp, imerge2, iadmerge2, slnrbm, nslnrbm, rmstifn, rmstifr, ms_layer, zi_layer, itag, itagel, mcpc, mcptg, xrefc, xreftg, xrefs, mssa, msrt, irbe2, lrbe2, inivol, kvol, nbsubmat, ixs10, ixs16, ixs20, totaddmas, ipmas, stifn, msz2, itagn, sitage, itage, ixr_kj, elbuf_tab, nom_opt, ptr_nopt_rbe2, ptr_nopt_adm, ptr_nopt_fun, sol2sph, irst, sh3trim, xfem_tab, kxig3d, ixig3d, msig3d, knot, nctrlmax, wige, stack, rnoise, drape, sh4ang, sh3ang, geo_stack, igeo_stack, stifintr, strc, strp, strr, strtg, perturb, itagnd, nativ_sms, iloadp, facload, ptspri, nsigbeam, ptbeam, nsigtruss, pttruss, multi_fvm, sigi, sigsh, sigsp, sigsph, sigrs, sigbeam, sigtruss, strsglob, straglob, orthoglob, isigsh, iyldini, ksigsh3, fail_ini, iusolyld, iuser, iddlevel, inimap1d, inimap2d, func2d, fvm_inivel, tagprt_sms, igrbric, igrquad, igrsh4n, igrsh3n, igrpart, totmas, knotlocpc, knotlocel, vnige, bnige, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxb_matrix, fxb_matrix_add, fxb_last_adress, ptr_nopt_fxb, r_skew, knod2el1d, nod2el1d, ebcs_tab, rby_iniaxis, alea, knod2elc, nod2elc, dr, slrbody, drapeg, ipari, intbuf_tab, interfaces, mat_param, npreload_a, preload_a, fail_fractal, fail_brokmann, defaults, ndamp_freq_range, dampr, ibeam_vector, rbeam_vector, ikine, lsigi, lsigsp, srnoise, nprw, lprw, rwstif_pen, sln_pen)