49 SUBROUTINE s8cinit3(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 ,MSNF ,MSSF ,IPM ,
55 . IUSER ,NSIGS ,VOLNOD ,BVOLNOD ,VNS ,
56 . BNS ,WMA ,PTSOL ,BUFMAT ,MCP ,
57 . MCPS ,TEMP ,NPF ,TF ,XREFS ,
58 . MSSA ,STRSGLOB,STRAGLOB,ORTHOGLOB,FAIL_INI ,
59 . ILOADP ,FACLOAD ,RNOISE ,PERTURB ,MAT_PARAM,GLOB_THERM)
76#include "implicit_f.inc"
90#include "vect01_c.inc"
94 INTEGER IXS(NIXS,*), IPARG(*),IPARTS(*),
95 . NEL, IPART(LIPART1,*),PERTURB(NPERTURB),
96 . IPM(NPROPMI,*), PTSOL(*), NSIGI, IUSER, NSIGS, NPF(*)
97 INTEGER IGEO(NPROPGI,*),STRSGLOB(*),STRAGLOB(*),ORTHOGLOB(*),
100 . MAS(*), PM(NPROPM,*), X(*), GEO(NPROPG,*),
101 . VEUL(LVEUL,*), DTELEM(*),SIGI(NSIGS,*),SKEW(LSKEW,*),STIFN(*),
102 . PARTSAV(20,*), V(*), MSS(8,*),
103 . SIGSP(NSIGI,*),MSNF(*), MSSF(8,*), WMA(*),RNOISE(NPERTURB,*),
104 . volnod(*), bvolnod(*), vns(8,*), bns(8,*),bufmat(*),
105 . mcp(*), mcps(8,*),temp(*), tf(*),xrefs(8,3,*), mssa(*)
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) ::
112 type (glob_therm_) ,
intent(in) :: glob_therm
116 INTEGER I,NF1,IBID,IGTYP,IP,IR,IS,IT,IL,NLAY,NPTR,NPTS,NPTT,NCC,
117 . jhbe,irep,mpt,nuvar,nuvarr,idef,nrefsta,
118 . ipthk, ippos,ig,im,mtn0,icstr,ipid1,l_pla,l_sigb
119 INTEGER PID(MVSIZ), NGL(MVSIZ),MAT(MVSIZ), MAT0(MVSIZ),
120 . ix1(mvsiz), ix2(mvsiz), ix3(mvsiz), ix4(mvsiz),
121 . ix5(mvsiz), ix6(mvsiz), ix7(mvsiz), ix8(mvsiz)
123 . x1(mvsiz),x2(mvsiz),x3(mvsiz),x4(mvsiz),x5(mvsiz),x6(mvsiz),
124 . x7(mvsiz),x8(mvsiz),y1(mvsiz),y2(mvsiz),y3(mvsiz),y4(mvsiz),
125 . y5(mvsiz),y6(mvsiz),y7(mvsiz),y8(mvsiz),z1(mvsiz),z2(mvsiz),
126 . z3(mvsiz),z4(mvsiz),z5(mvsiz),z6(mvsiz),z7(mvsiz),z8(mvsiz),
127 . rx(mvsiz) ,ry(mvsiz) ,rz(mvsiz) ,sx(mvsiz) ,
128 . sy(mvsiz) ,sz(mvsiz) ,tx(mvsiz) ,ty(mvsiz) ,tz(mvsiz) ,
129 . e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),e2x(mvsiz),
130 . e2y(mvsiz),e2z(mvsiz),e3x(mvsiz),e3y(mvsiz),e3z(mvsiz),
131 . f1x(mvsiz) ,f1y(mvsiz) ,f1z(mvsiz) ,
132 . f2x(mvsiz) ,f2y(mvsiz) ,f2z(mvsiz) ,
133 . ajc1(mvsiz) , ajc2(mvsiz) , ajc3(mvsiz) ,
134 . ajc4(mvsiz) , ajc5(mvsiz) , ajc6(mvsiz) ,
135 . ajc7(mvsiz) , ajc8(mvsiz) , ajc9(mvsiz) ,
136 . hx(4,mvsiz) , hy(4,mvsiz), hz(4,mvsiz),gama(6,mvsiz),
137 . smax(mvsiz) , volu(mvsiz), dtx(mvsiz), deltax(mvsiz),
138 . rhocp(mvsiz),temp0(mvsiz), aire(mvsiz),llsh(mvsiz)
140 . bid(mvsiz), fv, sti, wi
142 . angle(mvsiz),dtx0(mvsiz),wt,zr,zs,zt,zz
143 my_real :: tempel(nel)
145 . XD1(MVSIZ), XD2(MVSIZ), XD3(MVSIZ), XD4(MVSIZ),
146 . XD5(MVSIZ), XD6(MVSIZ), XD7(MVSIZ), XD8(MVSIZ),
147 . YD1(MVSIZ), YD2(MVSIZ), YD3(MVSIZ), YD4(MVSIZ),
148 . YD5(MVSIZ), YD6(MVSIZ), YD7(MVSIZ), YD8(MVSIZ),
149 . zd1(mvsiz), zd2(mvsiz), zd3(mvsiz), zd4(mvsiz),
150 . zd5(mvsiz), zd6(mvsiz), zd7(mvsiz), zd8(mvsiz)
151 INTEGER NLYMAX, IPMAT,IPANG
152 CHARACTER(LEN=NCHARTITLE)::TITR
153 parameter(nlymax = 200,ipmat = 100,ipang = 200)
155 TYPE(l_bufel_) ,
POINTER :: LBUF
156 TYPE(G_BUFEL_) ,
POINTER :: GBUF
157 TYPE(BUF_MAT_) ,
POINTER :: MBUF
160 . W_GAUSS(9,9),A_GAUSS(9,9)
168 3 0.555555555555556,0.888888888888889,0.555555555555556,
171 4 0.347854845137454,0.652145154862546,0.652145154862546,
172 4 0.347854845137454,0. ,0. ,
174 5 0.236926885056189,0.478628670499366,0.568888888888889,
175 5 0.478628670499366,0.236926885056189,0. ,
177 6 0.171324492379170,0.360761573048139,0.467913934572691,
178 6 0.467913934572691,0.360761573048139,0.171324492379170,
180 7 0.129484966168870,0.279705391489277,0.381830050505119,
181 7 0.417959183673469,0.381830050505119,0.279705391489277,
182 7 0.129484966168870,0. ,0. ,
183 8 0.101228536290376,0.222381034453374,0.313706645877887,
184 8 0.362683783378362,0.362683783378362,0.313706645877887,
185 8 0.222381034453374,0.101228536290376,0. ,
186 9 0.081274388361574,0.180648160694857,0.260610696402935,
187 9 0.312347077040003,0.330239355001260,0.312347077040003,
188 9 0.260610696402935,0.180648160694857,0.081274388361574/
193 2 -.577350269189626,0.577350269189626,0. ,
196 3 -.774596669241483,0. ,0.774596669241483,
199 4 -.861136311594053,-.339981043584856,0.339981043584856,
200 4 0.861136311594053,0. ,0. ,
202 5 -.906179845938664,-.538469310105683,0. ,
203 5 0.538469310105683,0.906179845938664,0. ,
205 6 -.932469514203152,-.661209386466265,-.238619186083197,
206 6 0.238619186083197,0.661209386466265,0.932469514203152,
208 7 -.949107912342759,-.741531185599394,-.405845151377397,
209 7 0. ,0.405845151377397,0.741531185599394,
210 7 0.949107912342759,0. ,0. ,
211 8 -.960289856497536,-.796666477413627,-.525532409916329,
212 8 -.183434642495650,0.183434642495650,0.525532409916329,
213 8 0.796666477413627,0.960289856497536,0. ,
214 9 -.968160239507626,-.836031107326636,-.613371432700590,
215 9 -.324253423403809,0. ,0.324253423403809,
216 9 0.613371432700590,0.836031107326636,0.968160239507626/
220 gbuf => elbuf_str%GBUF
221 mbuf => elbuf_str%BUFLY(1)%MAT(1,1,1)
222 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,1)
233 IF (jcvt==1.AND.isorth/=0) jcvt=2
236 IF (igtyp /= 22) isorth = 0
240 rhocp(i) = pm(69,ixs(1,nft+i))
241 temp0(i) = pm(79,ixs(1,nft+i))
245 CALL scoor3(x ,bid(1),ixs(1,nf1) ,geo ,mat ,pid ,ngl ,
246 . ix1 ,ix2 ,ix3 ,ix4 ,ix5 ,ix6 ,ix7 ,ix8 ,
247 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
248 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
249 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
250 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
251 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
252 . f1x ,f1y ,f1z ,f2x ,f2y ,f2z ,temp0, temp,glob_therm%NINTEMP,
253 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
254 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
255 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 )
257 CALL srcoor3(x,bid(1),ixs(1,nf1) ,geo ,mat ,pid ,ngl ,jhbe ,
258 . ix1 ,ix2 ,ix3 ,ix4 ,ix5 ,ix6 ,ix7 ,ix8 ,
259 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
260 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
261 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
262 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
263 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
264 . f1x ,f1y ,f1z ,f2x ,f2y ,f2z ,temp0,temp,glob_therm%NINTEMP,
265 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
266 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
267 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 )
274 angle(i) = geo(1,pid(i))
276CALL scmorth3(pid ,geo ,igeo ,skew ,irep ,gbuf%GAMA ,
277 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
278 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
279 . ngl ,angle,nsigi,sigsp,nsigs,sigi ,ixs(1,nf1) ,1 ,
280 . orthoglob ,ptsol,nel)
284 angle(i) = geo(1,pid(i))
286 CALL scmorth3(pid ,geo ,igeo ,skew ,irep ,gbuf%GAMA ,
287 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
288 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
289 . ngl ,angle ,nsigi,sigsp,nsigs,sigi ,ixs(1,nf1),1 ,
290 . orthoglob ,ptsol,nel)
304 . ajc7,ajc8,ajc9,smax, volu, ngl,
305 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
306 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
307 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 )
310 . x1, x2, x3, x4, x5, x6, x7, x8,
311 . y1, y2, y3, y4, y5, y6, y7, y8
312 . z1, z2, z3, z4, z5, z6, z7, z8,icstr,idt1sol)
318 IF (jthe == 0 .and. glob_therm%NINTEMP > 0)
THEN
320 tempel(i) = one_over_8 *(temp(ixs(2,i)) + temp(ixs(3,i))
321 . + temp(ixs(4,i)) + temp(ixs(5,i))
322 . + temp(ixs(6,i)) + temp(ixs(7,i))
323 . + temp(ixs(8,i)) + temp(ixs(9,i)))
326 tempel(1:nel) = temp0(1:nel)
330 CALL matini(pm ,ixs ,nixs ,x ,
331 . geo ,ale_connectivity ,detonators ,iparg ,
332 . sigi ,nel ,skew ,igeo ,
334 . mat ,ipm ,nsigs ,numsol ,ptsol ,
335 . ip ,ngl ,npf ,tf ,bufmat ,
336 . gbuf ,lbuf ,mbuf ,elbuf_str ,iloadp ,
337 . facload, deltax ,tempel )
339 CALL sczero3(gbuf%RHO,gbuf%SIG,gbuf%EINT,nel)
342 IF(jthe /=0)
CALL atheri(mat,pm,gbuf%TEMP)
344 nlay = elbuf_str%NLAY
345 nptr = elbuf_str%NPTR
346 npts = elbuf_str%NPTS
347 nptt = elbuf_str%NPTT
355 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
356 mbuf => elbuf_str%BUFLY(il)%MAT(ir,is,it)
357 l_pla = elbuf_str%BUFLY(il)%L_PLA
358 l_sigb= elbuf_str%BUFLY(il)%L_SIGB
360 IF (igtyp == 22)
THEN
361 wt = geo(ipthk+il,ig)
362 zz = geo(ippos+il,ig)
363 im =igeo(ipmat+il,ig)
367 angle(i) = geo(ipang+il,pid(i))
370 zz = a_gauss(il,nlay)
371 wt = w_gauss(il,nlay)
374 IF (icstr == 10)
THEN
375 zr = a_gauss(ir,nptr)
376 zs = a_gauss(is,npts)
378 ELSEIF (icstr == 100)
THEN
379 zr = a_gauss(ir,nptr)
381 zt = a_gauss(is,npts)
382 ELSEIF (icstr == 1)
THEN
384 zs = a_gauss(ir,nptr)
385 zt = a_gauss(is,npts)
387 ip = ir + ( (is-1) + (il-1)*npts )*nptr
388 wi = w_gauss(ir,nptr)*w_gauss(is,npts)*wt
390 CALL s8zderi3(lbuf%VOL,veul(1,nf1),geo,
395 . ajc7,ajc8,ajc9,smax, deltax, ngl,lbuf%VOL0DP)
398 IF (gbuf%IDT_TSH(i)>0)
399 . deltax(i)=
max(llsh(i),deltax(i))
403 .
CALL scmorth3(pid ,geo ,igeo ,skew ,irep ,lbuf%GAMA,
404 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
405 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
406 . ngl ,angle ,nsigi,sigsp,nsigs,sigi ,ixs(1,nf1),il ,
407 . orthoglob, ptsol,nel)
409 IF (jthe == 0 .and. glob_therm%NINTEMP > 0)
THEN
411 tempel(i) = one_over_8 *(temp(ixs(2,i)) + temp(ixs(3,i))
412 . + temp(ixs(4,i)) + temp(ixs(5,i))
413 . + temp(ixs(6,i)) + temp(ixs(7,i))
414 . + temp(ixs(8,i)) + temp(ixs(9,i)))
417 tempel(1:nel) = temp0(1:nel)
420 CALL matini(pm ,ixs ,nixs ,x ,
421 . geo ,ale_connectivity ,detonators,iparg ,
425 . ip ,ngl ,npf ,tf ,bufmat ,
426 . gbuf ,lbuf ,mbuf ,elbuf_str ,iloadp ,
427 . facload,deltax ,tempel)
431 nuvar = ipm(8,ixs(1,nft+1))
435 IF (mtn == 14 .OR. mtn == 12 .OR. mtn == 24)
THEN
437 ELSEIF (istrain == 1 .AND.
438 . (mtn == 1 .OR. mtn == 2 .OR. mtn
439 . mtn == 4 .OR. mtn == 6 .OR. mtn == 10 .OR.
440 . mtn == 21 .OR. mtn == 22 .OR. mtn == 23 .OR.
447 . lbuf%SIG ,pm ,lbuf%VOL ,sigsp ,
448 . sigi ,lbuf%EINT,lbuf%RHO ,mbuf%VAR ,lbuf%STRA,
449 . ixs ,nixs ,nsigi ,ip ,nuvar ,
450 . nel ,iuser ,idef ,nsigs ,strsglob ,
451 . straglob ,jhbe ,igtyp ,x ,gbuf%GAMA,
452 . mat ,lbuf%PLA ,l_pla ,ptsol ,lbuf%SIGB,
453 . l_sigb ,ipm ,bufmat ,lbuf%VOL0DP)
455 IF (igtyp == 22)
THEN
457 CALL dtmain(geo ,pm ,ipm ,pid ,mat ,fv ,
458 . lbuf%EINT ,lbuf%TEMP ,lbuf%DELTAX ,lbuf%RK ,lbuf%RE ,bufmat, deltax, aire,
459 . volu, dtx,igeo,igtyp)
462 . lbuf%RHO,lbuf%VOL,lbuf%OFF,lbuf%SIG,lbuf%EINT,dtx,
463 . gbuf%RHO,gbuf%VOL,gbuf%OFF,gbuf%SIG,gbuf%EINT,dtx0,
467 . lbuf%RHO,lbuf%VOL,lbuf%OFF,lbuf%SIG,lbuf%EINT,dtx,
468 . gbuf%RHO,gbuf%VOL,gbuf%OFF,gbuf%SIG,gbuf%EINT,dtx0,
476 IF (igtyp == 22)
THEN
485 . gbuf%RHO,mas,partsav
486 . iparts(nf1),mss(1,nf1),volu ,
487 . msnf ,mssf(1,nf1) ,bid(1) ,
488 . bid(1) ,bid(1) ,wma ,rhocp ,mcp ,
489 . mcps(1,nf1) ,mssa ,bid(1) ,bid(1),gbuf%FILL,
490 . ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8)
494 IF (i7stifs /= 0)
THEN
496 CALL sbulk3(volu ,ix1 ,ncc,mat,pm ,
497 . volnod,bvolnod,vns(1,nf1),bns(1,nf1),bid(1),
502 CALL failini(elbuf_str,nptr,npts,nptt,nlay,
503 . ipm,sigsp,nsigi,fail_ini ,
504 . sigi,nsigs,ixs,nixs,ptsol,rnoise,perturb,mat_param)
508 CALL dtmain(geo ,pm ,ipm ,pid ,mat ,fv ,
509 . lbuf%EINT ,lbuf%TEMP ,lbuf%DELTAX ,lbuf%RK ,lbuf%RE ,bufmat, deltax, aire,
510 . volu, dtx,igeo,igtyp)
512 IF (igtyp == 22)
THEN
518 IF (ixs(10,i+nft)/=0.AND.invers>14)
THEN
519 IF(igtyp/=0.AND.igtyp/=6.AND.igtyp/=14.AND.igtyp/=15
520 . .AND.igtyp/=20.AND.igtyp/=21.AND.igtyp/=22)
THEN
521 ipid1=ixs(nixs-1,i+nft)
522 CALL fretitl2(titr,igeo(npropgi-ltitr+1,ipid1),ltitr)
525 . anmode=aninfo_blind_1,
533 sti = fourth * gbuf%FILL(i) * gbuf%RHO(i) * volu(i)
534 . /
max(em20,dtx(i)*dtx(i))
535 stifn(ixs(2,i+nft))=stifn(ixs(2,i+nft))+sti
536 stifn(ixs(3,i+nft))=stifn(ixs(3,i+nft))+sti
537 stifn(ixs(4,i+nft))=stifn(ixs(4,i+nft))+sti
538 stifn(ixs(5,i+nft))=stifn(ixs(5,i+nft))+sti
539 stifn(ixs(6,i+nft))=stifn(ixs(6,i+nft))+sti
540 stifn(ixs(7,i+nft))=stifn(ixs(7,i+nft))+sti
541 stifn(ixs(8,i+nft))=stifn(ixs(8,i+nft))+sti
542 stifn(ixs(9,i+nft))=stifn(ixs(9,i+nft))+sti