48 1 ELBUF_STR ,MAS ,IXS ,PM ,X ,
49 2 DETONATORS,GEO ,VEUL ,ALE_CONNECTIVITY ,IPARG ,
50 3 DTELEM ,SIGI ,NEL ,SKEW ,IGEO ,
51 4 STIFN ,PARTSAV ,V ,IPARTS ,MSS ,
52 5 IXS16 ,IPART ,MSSX ,SIGSP ,NSIGI ,
53 6 IPM ,IUSER ,NSIGS ,VOLNOD ,BVOLNOD ,
54 7 VNS ,BNS ,VNSX ,BNSX ,PTSOL ,
55 8 BUFMAT ,MCP ,MCPS ,MCPSX ,TEMP ,
56 9 NPF ,TF ,STRSGLOB,STRAGLOB,FAIL_INI ,
57 A ILOADP ,FACLOAD ,RNOISE ,PERTURB ,MAT_PARAM,
70 use element_mod ,
only : nixs
74#include "implicit_f.inc"
87#include "vect01_c.inc"
91 INTEGER (NIXS,*), IPARG(*),IPARTS(*),IGEO(NPROPGI,*),
92 . IXS16(8,*), IPART(LIPART1,*),(NPROPMI,*), PTSOL(*),
93 . NPF(*),STRSGLOB(*),STRAGLOB(*),FAIL_INI(*),PERTURB(NPERTURB)
94 INTEGER NEL,NSIGI,IUSER,NSIGS
96 . MAS(*), PM(,*), X(*), GEO(NPROPG,*),
97 . VEUL(LVEUL,*), DTELEM(*),(NSIGS,*),SKEW(LSKEW,*),STIFN(*),
98 . PARTSAV(20,*), V(*), MSS(8,*), MSSX(12,*), SIGSP(NSIGI, *),
99 . VOLNOD(*), BVOLNOD(*), VNS(8,*), BNS(8,*),
100 . VNSX(12,*), BNSX(12,*),BUFMAT(*),RNOISE(NPERTURB,*),
101 . MCP(*), MCPS(8,*),(12,*), TEMP(*), TF(*)
102 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
103 INTEGER,
INTENT(IN) :: ILOADP(SIZLOADP,*)
104 ,
INTENT(IN) :: FACLOAD(LFACLOAD,*)
107 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(INOUT) :: MAT_PARAM
108 type (glob_therm_) ,
intent(in) :: glob_therm
112 INTEGER NF1,IBID,,IGTYP,IP,NF2,NPTR,NPTS,NPTT,,IL,IR,IS,IT,
113 . n, nuvar,iint, ncc,idef,jhbe,ipid1,l_pla,l_sigb
114 INTEGER (MVSIZ,16),MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ),RBID(1)
115 INTEGER ,
PARAMETER :: NPE=16
116 CHARACTER(LEN=NCHARTITLE)::TITR1
121 . volp(mvsiz,5), sti(mvsiz),deltax(mvsiz),deltax2(mvsiz),
122 . xx(mvsiz,16), yy(mvsiz,16), zz(mvsiz,16),
123 . vx(mvsiz,16), vy(mvsiz,16), vz(mvsiz,16),
124 . px(mvsiz,16), py(mvsiz,16), pz(mvsiz,16),
125 . rx(mvsiz),ry(mvsiz),rz(mvsiz),
126 . sx(mvsiz),sy(mvsiz),sz(mvsiz),volg(mvsiz),
127 . tx(mvsiz),ty(mvsiz),tz(mvsiz),ul(mvsiz,16),
128 . ni(mvsiz,16),dnidr(mvsiz,16),dnids(mvsiz,16),dnidt(mvsiz,16),
129 . dtx(mvsiz),stin(mvsiz,16), rhocp(mvsiz),temp0(mvsiz), aire(mvsiz)
130 my_real :: tempel(nel)
131 TYPE(l_bufel_) ,
POINTER :: LBUF
132 TYPE(G_BUFEL_) ,
POINTER :: GBUF
133 TYPE(BUF_MAT_) ,
POINTER :: MBUF
136 . W_GAUSS(9,9),A_GAUSS(9,9),W_LOBATTO(9,9),A_LOBATTO(9,9),
137 . W_NEWTON(9,9),A_NEWTON(9,9)
146 3 0.555555555555556,0.888888888888889,0.555555555555556,
149 4 0.347854845137454,0.652145154862546,0.652145154862546,
150 4 0.347854845137454,0. ,0. ,
152 5 0.236926885056189,0.478628670499366,0.568888888888889,
153 5 0.478628670499366,0.236926885056189,0. ,
155 6 0.171324492379170,0.360761573048139,0.467913934572691,
156 6 0.467913934572691,0.360761573048139,0.171324492379170,
158 7 0.129484966168870,0.279705391489277,0.381830050505119,
159 7 0.417959183673469,0.381830050505119,0.279705391489277,
160 7 0.129484966168870,0. ,0. ,
161 8 0.101228536290376,0.222381034453374,0.313706645877887,
162 8 0.362683783378362,0.362683783378362,0.313706645877887,
163 8 0.222381034453374,0.101228536290376,0. ,
164 9 0.081274388361574,0.180648160694857,0.260610696402935,
165 9 0.312347077040003,0.330239355001260,0.312347077040003,
166 9 0.260610696402935,0.180648160694857,0.081274388361574/
171 2 -.577350269189626,0.577350269189626,0. ,
174 3 -.774596669241483,0. ,0.774596669241483,
177 4 -.861136311594053,-.339981043584856,0.339981043584856,
178 4 0.861136311594053,0. ,0. ,
180 5 -.906179845938664,-.538469310105683,0. ,
181 5 0.538469310105683,0.906179845938664,0. ,
183 6 -.932469514203152,-.661209386466265,-.238619186083197,
184 6 0.238619186083197,0.661209386466265,0.932469514203152,
186 7 -.949107912342759,-.741531185599394,-.405845151377397,
187 7 0. ,0.405845151377397,0.741531185599394,
188 7 0.949107912342759,0. ,0. ,
189 8 -.960289856497536,-.796666477413627,-.525532409916329,
190 8 -.183434642495650,0.183434642495650,0.525532409916329,
191 8 0.796666477413627,0.960289856497536,0. ,
192 9 -.968160239507626,-.836031107326636,-.613371432700590,
193 9 -.324253423403809,0. ,0.324253423403809,
194 9 0.613371432700590,0.836031107326636,0.968160239507626/
203 3 0.333333333333333,1.333333333333333,0.333333333333333,
206 4 0.166666666666667,0.833333333333333,0.833333333333333,
207 4 0.166666666666667,0. ,0. ,
209 5 0.1 ,0.544444444444444,0.711111111111111,
210 5 0.544444444444444,0.1 ,0. ,
212 6 0.066666666666667,0.37847496 ,0.55485838 ,
213 6 0.55485838 ,0.37847496 ,0.066666666666667,
215 7 0.04761904 ,0.27682604 ,0.43174538 ,
216 7 0.48761904 ,0.43174538 ,0.27682604 ,
217 7 0.04761904 ,0. ,0. ,
218 8 0.03571428 ,0.21070422 ,0.34112270 ,
219 8 0.41245880 ,0.41245880 ,0.34112270 ,
220 8 0.21070422 ,0.03571428 ,0. ,
221 9 0.027777777777778,0.1654953616 ,0.2745387126 ,
222 9 0.3464285110 ,0.3715192744 ,0.3464285110 ,
223 9 0.2745387126 ,0.1654953616 ,0.027777777777778/
234 4 -1. ,-.44721360 ,0.44721360 ,
237 5 -1. ,-.65465367 ,0. ,
238 5 0.65465367 , 1. ,0. ,
240 6 -1. ,-.76505532 ,-.28523152 ,
241 6 0.28523152 ,0.76505532 , 1. ,
243 7 -1. ,-.83022390 ,-.46884879 ,
244 7 0. ,0.46884879 ,0.83022390 ,
246 8 -1. ,-.87174015 ,-.59170018 ,
247 8 -.20929922 ,0.20929922 ,0.59170018 ,
248 8 0.87174015 , 1. ,0. ,
249 9 -1. ,-.8997579954 ,-.6771862795 ,
250 9 -.3631174638 ,0. ,0.3631174638 ,
251 9 0.6771862795 ,0.8997579954 , 1. /
264 4 0.166666666666667,0.833333333333333,0.833333333333333,
265 4 0.166666666666667,0. ,0. ,
270 6 0.066666666666667,0.37847496 ,0.55485838 ,
271 6 0.55485838 ,0.37847496 ,0.066666666666667,
273 7 0.04761904 ,0.27682604 ,0.43174538 ,
274 7 0.48761904 ,0.43174538 ,0.27682604 ,
275 7 0.04761904 ,0. ,0. ,
276 8 0.03571428 ,0.21070422 ,0.34112270 ,
277 8 0.41245880 ,0.41245880 ,0.34112270 ,
278 8 0.21070422 ,0.03571428 ,0. ,
279 9 0.027777777777778,0.1654953616 ,0.2745387126 ,
280 9 0.3464285110 ,0.3715192744 ,0.3464285110 ,
281 9 0.2745387126 ,0.1654953616 ,0.027777777777778/
298 6 -1. ,-.76505532 ,-.28523152 ,
299 6 0.28523152 ,0.76505532 , 1. ,
301 7 -1. ,-.83022390 ,-.46884879 ,
302 7 0. ,0.46884879 ,0.83022390 ,
304 8 -1. ,-.87174015 ,-.59170018 ,
305 8 -.20929922 ,0.20929922 ,0.59170018 ,
306 8 0.87174015 , 1. ,0. ,
307 9 -1. ,-.8997579954 ,-.6771862795 ,
308 9 -.3631174638 ,0. ,0.3631174638 ,
309 9 0.6771862795 ,0.8997579954 , 1. /
313 gbuf => elbuf_str%GBUF
314 nptr = elbuf_str%NPTR
315 npts = elbuf_str%NPTS
316 nptt = elbuf_str%NPTT
317 nlay = elbuf_str%NLAY
324 nf2=nf1-(numels8+numels10+numels20)
329 rhocp(i) = pm(69,ixs(1,nft+i))
330 temp0(i) = pm(79,ixs(1,nft+i))
334 1 x ,v ,ixs(1,nf1) ,ixs16(1,nf2),xx ,
335 2 yy ,zz ,vx ,vy ,vz ,
336 3 nc ,ngl ,mat ,pid ,mass ,
337 4 dtelem(nft+1),sti ,gbuf%SIG ,gbuf%EINT ,gbuf%RHO,
338 5 gbuf%QVIS ,temp0 ,temp ,nel ,glob_therm%NINTEMP)
352 IF(jthe /=0)
CALL atheri(mat
361 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it
362 mbuf => elbuf_str%BUFLY(il)%MAT(ir,is,it)
363 l_pla = elbuf_str%BUFLY(il)%L_PLA
364 l_sigb = elbuf_str%BUFLY(il)%L_SIGB
365 ip = ir + ( (il-1) + (it-1)*nlay )*nptr
369 wi = w_gauss(ir,nptr)*w_gauss(il,nlay)*w_gauss(it,nptt)
372 1 a_gauss(ir,nptr),a_gauss(il,nlay),a_gauss(it,nptt),ni ,
373 2 dnidr ,dnids ,dnidt )
376 1 a_gauss(ir,nptr),a_gauss(il,nlay),a_gauss(it,nptt),wi,
377 2 dnidr ,dnids ,dnidt ,rx ,ry ,rz ,
378 3 sx ,sy ,sz ,tx ,ty ,tz ,
379 4 xx ,yy ,zz ,px ,py ,pz ,
380 5 lbuf%VOL,deltax ,stin ,ni ,volg ,ul ,lbuf%VOL0DP)
381 ELSEIF (iint == 2)
THEN
383 wi = w_gauss(ir,nptr)*w_lobatto(il,nlay)*w_gauss(it,nptt)
386 1 a_gauss(ir,nptr),a_lobatto(il,nlay),a_gauss(it,nptt),ni ,
387 2 dnidr ,dnids ,dnidt )
390 1 a_gauss(ir,nptr),a_lobatto(il,nlay),a_gauss(it,nptt),wi,
391 2 dnidr ,dnids ,dnidt ,rx ,ry ,rz ,
392 3 sx ,sy ,sz ,tx ,ty ,tz ,
393 4 xx ,yy ,zz ,px ,py ,pz ,
394 5 lbuf%VOL,deltax ,stin ,ni ,volg ,ul ,lbuf%VOL0DP )
397 IF (jthe == 0 .and. glob_therm%NINTEMP > 0)
THEN
398 CALL s20temp(nel,numnod,mvsiz,npe, nc,ni(1,ip),temp,tempel)
400 tempel(1:nel) = temp0(1:nel)
403 CALL matini(pm ,ixs ,nixs ,x ,
404 . geo ,ale_connectivity ,detonators ,iparg ,
405 . sigi ,nel ,skew ,igeo(1,1) ,
407 . mat ,ipm ,nsigs ,numsol ,ptsol ,
408 . ip ,ngl ,npf ,tf ,bufmat ,
409 . gbuf ,lbuf ,mbuf ,elbuf_str ,iloadp ,
410 . facload, deltax ,tempel ,mat_param )
414 CALL s20msi(lbuf%RHO ,mass ,lbuf%VOL ,dtelem(nft+1),sti ,
415 . lbuf%OFF ,lbuf%SIG ,lbuf%EINT ,dtx ,nel ,
416 . gbuf%OFF ,gbuf%SIG ,gbuf%EINT ,gbuf%RHO ,wi/eight)
422 nuvar = ipm(8,ixs(1,nft+1))
426 IF(mtn == 14 .OR. mtn == 12)
THEN
428 ELSEIF(mtn == 24)
THEN
430 ELSEIF(istrain == 1)
THEN
437 ELSEIF(mtn == 3.OR.mtn == 6.OR.mtn ==10.OR.
438 . mtn == 21.OR.mtn == 22.OR.
439 . mtn == 23.OR.mtn == 49)
THEN
444 CALL sigin20b(lbuf%SIG,pm ,lbuf%VOL,sigsp ,
445 . sigi ,lbuf%EINT,lbuf%RHO,mbuf%VAR,lbuf%STRA,
446 . ixs ,nixs ,nsigi ,ip ,nuvar ,
447 . nel ,iuser ,idef ,nsigs ,strsglob ,
448 . straglob,jhbe ,igtyp ,x ,lbuf%GAMA,
449 . mat ,lbuf%PLA ,l_pla ,ptsol ,lbuf%SIGB,
450 . l_sigb ,ipm ,bufmat ,lbuf%VOL0DP)
456 aa =
max(ul(i,1),ul(i,2),ul(i,3),ul(i,4),
457 . ul(i,5),ul(i,6),ul(i,7),ul(i,8))
458 bb =
max(ul(i,9) ,ul(i,10),ul(i,11),ul(i,12),ul(i,13),ul(i,14),
460 deltax2(i) = aa/
max(aa,bb)
462 bb = bb*thirty2*third
463 deltax(i) = sqrt(two*volg(i)/
max(aa,bb))
464 gbuf%VOL(i) = volg(i)
468 CALL dtmain(geo ,pm ,ipm ,pid ,mat ,fv ,
469 . gbuf%EINT ,gbuf%TEMP ,gbuf%DELTAX ,gbuf%RK ,gbuf%RE ,bufmat, deltax, aire,
470 . gbuf%VOL, dtx, igeo,igtyp)
473 1 mass ,mas,partsav,iparts(nf1),mss(1,nf1),volg,
474 2 xx ,yy ,zz ,vx ,vy ,vz ,
475 3 nc ,sti,stifn ,deltax2 ,gbuf%RHO ,dtx ,
476 4 dtelem(nft+1),mssx(1,nf1),rhocp, mcp, mcps(1,nf1) ,
477 5 mcpsx(1,nf1) ,gbuf%FILL )
481 CALL failini(elbuf_str,nptr,npts,nptt,nlay,
482 . ipm,sigsp,nsigi,fail_ini ,
483 . sigi,nsigs,ixs,nixs,ptsol,
484 . rnoise,perturb,mat_param)
489 IF (i7stifs /= 0)
THEN
491 CALL sbulk3(volg ,nc ,ncc,mat,pm ,
492 2 volnod,bvolnod,vns(1,nf1),bns(1,nf1),
493 3 vnsx(1,nf1),bnsx(1,nf1) ,gbuf%FILL)
497 IF(ixs(10,i+nft) /= 0)
THEN
498 IF (igtyp/=0 .AND. igtyp /= 14 .AND. igtyp/=20 .AND.
500 ipid1=ixs(nixs-1,i+nft)
501 CALL fretitl2(titr1,igeo(npropgi-ltitr+1,ipid1),ltitr)
504 . anmode=aninfo_blind_1,