42 SUBROUTINE spinit3(IGRTYP ,SPBUF ,KXSP ,X ,GEO ,
43 . XMAS ,NPC ,PLD ,XIN ,SKEW ,
44 . DTELEM ,NEL ,STIFN ,STIFR ,IGEO ,
45 . PARTSAV ,V ,IPARTSP,BUFMAT,
46 . PM ,ITAB ,MSR ,INR ,IXSP ,
47 . NOD2SP ,IPARG ,ALE_CONNECTIVITY ,DETONATORS ,
48 . SIGSPH ,ISPTAG ,IPART,
49 . IPM ,NSIGSPH ,PTSPH ,NPF ,
50 . TF ,ELBUF_STR,MCP ,TEMP ,ILOADP ,
51 . FACLOAD ,STIFINT ,I7STIFS,GLOB_THERM,MAT_PARAM)
63#include "implicit_f.inc"
77#include "vect01_c.inc"
81 INTEGER (NISP,*), NPC(*),IPARTSP(*),ITAB(*),IGEO(*),
82 . (KVOISPH,*),NOD2SP(*),IPARG(*),ISPTAG(*),
83 . IPART(LIPART1,*),IPM(NPROPMI,*), PTSPH(*), NPF(*)
84 INTEGER IGRTYP, NEL,NSIGSPH
86 . X(3,*), GEO(NPROPG,*), XMAS(*), PLD(*), XIN(*),
87 . SKEW(LSKEW,*), DTELEM(*),(*),STIFR(*),PARTSAV(20,*), V(*),
88 . BUFMAT(*),PM(NPROPM,*), MSR(3,*), INR(3,*),
89 . SPBUF(NSPBUF,*),SIGSPH(NSIGSPH,*), TF(*), MCP(*), TEMP(*)
90 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
91 INTEGER,
INTENT(IN) :: ILOADP(SIZLOADP,*)
92 my_real,
INTENT(IN) :: FACLOAD(LFACLOAD,*)
93 INTEGER,
INTENT(IN) :: I7STIFS
94 my_real,
INTENT(INOUT) :: stifint(numnod)
96 type (glob_therm_) ,
intent(inout) :: glob_therm
97 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(INOUT) :: MAT_PARAM
101 INTEGER IPRT,IMAT,IG,N,I,J,INOD,IGTYP,IBID,NF1,NDEPAR,JJ,IP,II(6)
102 INTEGER MXT(MVSIZ),NGEO(MVSIZ),NC1(MVSIZ),NGL(MVSIZ)
104 . vol(mvsiz),mass(mvsiz),rho(mvsiz),deltax(mvsiz),dtx(mvsiz),
105 . x1(mvsiz),y1(mvsiz),z1(mvsiz),rbid(1), aire(mvsiz)
108 my_real :: tempel(nel)
109 TYPE(g_bufel_) ,
POINTER :: GBUF
110 TYPE(l_bufel_) ,
POINTER :: LBUF
111 TYPE(buf_mat_) ,
POINTER :: MBUF
114 INTEGER GET_U_PNU,GET_U_PID,GET_U_MID,GET_U_MNU
116 . get_u_mat,get_u_geo,get_u_func
117 EXTERNAL get_u_pnu,get_u_mnu,get_u_mat,get_u_geo,get_u_pid,
118 . get_u_mid,get_u_func
122 gbuf => elbuf_str%GBUF
123 lbuf => elbuf_str%BUFLY(1)%LBUF(1,1,1)
124 mbuf => elbuf_str%BUFLY(1)%MAT(1,1,1)
141 IF (nint(spbuf(13,n))==1)
THEN
143 vol(i)=spbuf(12,n)/rho(i)
144 ELSEIF (nint(spbuf(13,n))==2)
THEN
150 IF(nspcond/=0) vol(i)=vol(i)/isptag(n)
151 mass(i) =rho(i)*vol(i)
165 mass(i) =rho(i)*vol(i)
166 IF(mass(i)/=spbuf(2,n))
THEN
181 mxt(i) =ipart(1,iprt)
182 ngeo(i)=ipart(2,iprt)
212 CALL sporth3(ipart ,ipartsp(nft+1) ,igeo ,gbuf%GAMA,skew,
216 IF (jthe == 0 .and. glob_therm%NINTEMP > 0)
THEN
217 tempel(1:nel) = temp(nc1(1:nel))
219 tempel(1:nel) = pm(79,mxt(1:nel))
225 CALL matini(pm ,kxsp ,nisp ,x ,
226 . geo ,ale_connectivity ,detonators ,iparg ,
227 . sigsph ,nel ,skew ,igeo ,
229 . mxt ,ipm ,nsigsph ,numsphy ,ptsph ,
230 . ip ,ngl ,npf ,tf ,bufmat ,
231 . gbuf ,lbuf ,mbuf ,elbuf_str,iloadp ,
232 . facload, deltax ,tempel ,mat_param )
236 IF(isigi==3.OR.isigi==4.OR.isigi==5)
THEN
241 IF(sigsph(11,jj)/=0.)
THEN
242 spbuf(1,n)=sigsph(11,jj)
245 spbuf(2,n) = gbuf%RHO(i)
253 gbuf%TEMP(i)=pm(79,mxt(i))
255 ELSEIF (jthe < 0)
THEN
256 glob_therm%INTHEAT = 1
259 rhocp = pm(69,mxt(i))*vol(i)
260 mcp(j) = rhocp+mcp(j)
261 temp(j) = pm(79,mxt(i))
267 CALL sppart3(xmas,partsav,nc1,mass,x,v,ipartsp(nf1))
271 ndepar=numelc+numels+numelt+numelq+numelp+numelr+numeltg
276 CALL dtmain(geo ,pm ,ipm ,ngeo ,mxt ,fv ,
277 . gbuf%EINT ,gbuf%TEMP ,gbuf%DELTAX ,gbuf%RK ,gbuf%RE ,bufmat, deltax, aire,
278 . gbuf%VOL, dtx, igeo,igtyp)
281 dtelem(ndepar+i)=dtx(i)
282 sti = two * mass(i) /
max(em20,dtx(i)*dtx(i))
283 stifn(kxsp(3,i+nft))=stifn(kxsp(3,i+nft))+sti
292 stifint(kxsp(3,i+nft))= half*pm(32,mxt(i))*vol(i)**third
298 IF(kxsp(2,n) < 0.AND.
299 . (n < first_sphsol.OR.n >= first_sphsol+nsphsol))
THEN
303 gbuf%SIG(ii(1)+i) = zero
304 gbuf%SIG(ii(2)+i) = zero
305 gbuf%SIG(ii(3)+i) = zero
306 gbuf%SIG(ii(4)+i) = zero
307 gbuf%SIG(ii(5)+i) = zero
308 gbuf%SIG(ii(6)+i) = zero
309 ELSEIF(kxsp(2,n) < 0 .AND.
310 . first_sphsol <= n .AND. n < first_sphsol+nsphsol)
THEN
subroutine dtmain(geo, pm, ipm, pid, mat, fv, eint, temp, deltax, rk, re, bufmat, ddeltax, aire, vol, dtx, igeo, igtyp)
subroutine matini(pm, ix, nix, x, geo, ale_connectivity, detonators, iparg, sigi, nel, skew, igeo, ipart, ipartel, mat, ipm, nsig, nums, pt, ipt, ngl, npf, tf, bufmat, gbuf, lbuf, mbuf, elbuf_str, iloadp, facload, ddeltax, tempel, mat_param)
subroutine spinit3(igrtyp, spbuf, kxsp, x, geo, xmas, npc, pld, xin, skew, dtelem, nel, stifn, stifr, igeo, partsav, v, ipartsp, bufmat, pm, itab, msr, inr, ixsp, nod2sp, iparg, ale_connectivity, detonators, sigsph, isptag, ipart, ipm, nsigsph, ptsph, npf, tf, elbuf_str, mcp, temp, iloadp, facload, stifint, i7stifs, glob_therm, mat_param)