39 SUBROUTINE ig3dinit3(ELBUF_STR,MS ,KXIG3D ,IXIG3D ,PM ,X,
40 . DETONATORS,GEO ,VEUL ,ALE_CONNECTIVITY ,IPARG ,
41 . DTELEM ,SIGI ,NEL ,SKEW ,IGEO ,
42 . STIFN ,PARTSAV ,V ,IPARTIG3D,MSS ,
44 . NSIGI ,IN ,VR ,IPM ,NSIGS ,
45 . VNIGE ,BNIGE ,PTSOL ,
46 . BUFMAT ,NPF ,TF ,FAIL_INI,NCTRL,
47 . MSIG3D ,KNOT ,NCTRLMAX,WIGE ,PX,PY,PZ,
48 . KNOTLOCPC,KNOTLOCEL)
60#include "implicit_f.inc"
73#include "vect01_c.inc"
78 INTEGER IXIG3D(*), IPARG(*),
79 . NEL, IPART(LIPART1,*),
80 . IGEO(NPROPGI,*), IPM(NPROPMI,*), PTSOL(*), NSIGI, NSIGS,
81 . NPF(*),FAIL_INI(*),KXIG3D(NIXIG3D,*),NCTRL,NCTRLMAX,
82 . IPARTIG3D(*),PX,PY,PZ
84 . MS(*), X(3,*), GEO(NPROPG,*),PM(NPROPM,*),
85 . VEUL(LVEUL,*), DTELEM(*),SIGI(NSIGS,*),SKEW(LSKEW,*),STIFN(*),
86 . PARTSAV(20,*), V(3,*), MSS(8,*), KNOTLOCPC(DEG_MAX,3,*),
87 . knotlocel(2,3,*), sigsp(nsigi,*) , in(*), vr(3,*),
88 . vnige(nctrlmax,*), bnige(nctrlmax,*),bufmat(*), tf(*),
89 . msig3d(numelig3d,nctrlmax),knot(*),wige(*)
90 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
91 TYPE(DETONATORS_STRUCT_)::DETONATORS
96 INTEGER I,J,K,N,NF1,IBID,JHBE,IGTYP,IREP,NCC,NUVAR,IP,NREFSTA,
97 . IPID,NPTR,NPTS,NPTT,NLAY,ITEL
98 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(),
99 . iprop(mvsiz) ,imat(mvsiz) ,iad_knot,
100 . el_id(mvsiz),n1,n2,n3,nknot1,nknot2,nknot3,
101 . idx(mvsiz),idy(mvsiz),idz(mvsiz),
102 . idx2(mvsiz),idy2(mvsiz),idz2(mvsiz)
103 CHARACTER(LEN=NCHARTITLE)::TITR1
105 . bid, fv, v8loc(51,mvsiz), volu(mvsiz), dtx(mvsiz),dtx0(mvsiz),
106 . mass(nctrl,nel),inn(mvsiz,8),xx(nctrl,mvsiz),
107 . yy(nctrl,mvsiz),zz(nctrl,mvsiz),ww(nctrl,mvsiz),
108 . vx(nctrl,mvsiz),vy(nctrl,mvsiz), vz(nctrl,mvsiz),vrx(mvsiz,8),
109 . vry(mvsiz,8),vrz(mvsiz,8),sti(mvsiz),stir(mvsiz),viscm(mvsiz),
111 . x1(mvsiz),x2(mvsiz),x3(mvsiz),x4(mvsiz),x5(mvsiz),x6(mvsiz),
112 . x7(mvsiz),x8(mvsiz),y1(mvsiz),y2(mvsiz),y3
113 . y5(mvsiz),y6(mvsiz),y7(mvsiz),y8(mvsiz),z1(mvsiz),z2(mvsiz),
114 . z3(mvsiz),z4(mvsiz),z5(mvsiz),z6(mvsiz),z7(mvsiz
116 . sy(mvsiz) ,sz(mvsiz) ,tx(mvsiz) ,ty(mvsiz
117 . e1x(mvsiz),e1y(mvsiz
118 . e2y(mvsiz),e2z(mvsiz),e3x(mvsiz),e3y(mvsiz),e3z(mvsiz),
119 . f1x(mvsiz) ,f1y(mvsiz) ,f1z(mvsiz) ,
120 . f2x(mvsiz) ,f2y(mvsiz) ,f2z(mvsiz),
121 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),
122 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
123 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),
124 . kx ,ky ,kz, zr, zs, zt
127 . volo(mvsiz),dte(mvsiz),pgauss,detjac
129 . r(nctrl),drdxi(3,nctrl),knotlocx(px+1,nctrl,mvsiz),
130 . knotlocy(py+1,nctrl,mvsiz),knotlocz(pz+1,nctrl,mvsiz),
131 . knotlocelx(2,mvsiz),
132 . knotlocely(2,mvsiz),knotlocelz(2,mvsiz)
134 . tbid(mvsiz), tbid2(8,mvsiz)
136 TYPE(g_bufel_) ,
POINTER :: GBUF
137 TYPE(l_bufel_) ,
POINTER :: LBUF
138 TYPE(BUF_MAT_) ,
POINTER
141 . W_GAUSS(9,9),A_GAUSS(9,9)
149 3 0.555555555555556d0,0.888888888888889d0,0.555555555555556d0,
152 4 0.347854845137454d0,0.652145154862546d0,0.652145154862546d0,
153 4 0.347854845137454d0,0.d0 ,0.d0 ,
155 5 0.236926885056189d0,0.478628670499366d0,0.568888888888889d0,
156 5 0.478628670499366d0,0.236926885056189d0,0.d0 ,
158 6 0.171324492379170d0,0.360761573048139d0,0.467913934572691d0,
159 6 0.467913934572691d0,0.360761573048139d0,0.171324492379170d0,
161 7 0.129484966168870d0,0.279705391489277d0,0.381830050505119d0,
162 7 0.417959183673469d0,0.381830050505119d0,0.279705391489277d0,
163 7 0.129484966168870d0,0.d0
164 8 0.101228536290376d0,0.222381034453374d0,0.313706645877887d0,
165 8 0.362683783378362d0,0.362683783378362d0,0.313706645877887d0,
166 8 0.222381034453374d0,0.101228536290376d0,0.d0 ,
167 9 0.081274388361574d0,0.180648160694857d0
168 9 0.312347077040003d0,0.330239355001260d0,0.312347077040003d0,
169 9 0.260610696402935d0,0.180648160694857d0,0.081274388361574d0/
174 2 -.577350269189625d0,0.577350269189625d0,0.d0 ,
177 3 -.774596669241483d0,0.d0 ,0.774596669241483d0
180 4 -.861136311594053d0,-.339981043584856d0,0.339981043584856d0,
181 4 0.861136311594053d0,0.d0 ,0.d0 ,
183 5 -.906179845938664d0,-.538469310105683d0,0.d0 ,
184 5 0.538469310105683d0,0.906179845938664d0,0.d0 ,
186 6 -.932469514203152d0,-.661209386466265d0,-.238619186083197d0,
187 6 0.238619186083197d0,0.661209386466265d0,0.932469514203152d0,
189 7 -.949107912342759d0,-.741531185599394d0,-.405845151377397d0,
190 7 0.d0 ,0.405845151377397d0,0.741531185599394d0,
191 7 0.949107912342759d0,0.d0 ,0.d0 ,
192 8 -.960289856497536d0,-.796666477413627d0,-.52
193 8 -.183434642495650d0,0.183434642495650d0,0.5255324099
194 8 0.796666477413627d0,0.960289856497536d0,0.d0 ,
195 9 -.968160239507626d0,-.836031107326636d0,-.613371432700590d0,
196 9 -.324253423403809d0,0.d0 ,0.324253423403809d0,
197 9 0.613371432700590d0,0.836031107326636d0,0.968160239507626d0/
203 gbuf => elbuf_str%GBUF
228 xx(j,i)=x(1,ixig3d(kxig3d(4,i+nft)+j-1))
229 yy(j,i)=x(2,ixig3d(kxig3d(4,i+nft)+j-1))
230 zz(j,i)=x(3,ixig3d(kxig3d(4,i+nft)+j-1))
231 vx(j,i)=v(1,ixig3d(kxig3d(4,i+nft)+j-1))
232 vy(j,i)=v(2,ixig3d(kxig3d(4,i+nft)+j-1))
233 vz(j,i)=v(3,ixig3d(kxig3d(4,i+nft)+j-1))
236 knotlocx(k,j,i)=knotlocpc(k,1,(kxig3d(2,i+nft)-1)*numnod+ixig3d(kxig3d(4,i+nft)+j-1))
239 knotlocy(k,j,i)=knotlocpc(k,2,(kxig3d(2,i+nft)-1)*numnod+ixig3d(kxig3d(4,i+nft)+j-1))
242 knotlocz(k,j,i)=knotlocpc
245 el_id(i)=kxig3d(5,i+nft)
246 idx(i) = kxig3d(6,i+nft)
247 idy(i) = kxig3d(7,i+nft)
248 idz(i) = kxig3d(8,i+nft)
249 idx2(i) = kxig3d(9,i+nft)
251 idz2(i) = kxig3d(11,i+nft)
252 knotlocelx(1,i) = knotlocel
253 knotlocely(1,i) = knotlocel(1,2,i+nft)
254 knotlocelz(1,i) = knotlocel(1,3,i+nft)
255 knotlocelx(2,i) = knotlocel(2,1,i+nft)
256 knotlocely(2,i) = knotlocel(2,2,i+nft)
257 knotlocelz(2,i) = knotlocel(2,3,i+nft)
260 iad_knot = igeo(40,ipid)
269 iprop(i)=kxig3d(2,i+nft)
270 imat(i) =kxig3d(1,i+nft)
281 CALL sczero3(gbuf%RHO,gbuf%SIG,gbuf%EINT,nel)
289 lbuf => elbuf_str%BUFLY(1)%LBUF(i,j,k)
290 mbuf => elbuf_str%BUFLY(1)%MAT(i,j,k)
295 lbuf%RHO(itel) = pm(89,imat(itel))
299 pgauss=w_gauss(i,px)*w_gauss(j,py)*w_gauss(k,pz)
310 1 itel ,n ,xx(:,itel) ,yy(:,itel),
311 2 zz(:,itel),ww(:,itel) ,idx(itel) ,idy(itel) ,
312 3 idz(itel) ,knotlocx(:,:,itel) ,knotlocy(:,:,itel),knotlocz(:,:,itel) ,
313 4 drdxi ,r ,detjac ,nctrl ,
314 5 zr ,zs ,zt ,knot(iad_knot+1),
315 6 knot(iad_knot+nknot1+1),knot(iad_knot+nknot1+nknot2+1),px-1,
317 8 idx2(itel),idy2(itel) ,idz2(itel) ,
318 9 knotlocelx(:,itel),knotlocely(:,itel),knotlocelz(:,itel))
320 lbuf%VOL(itel)= pgauss*detjac
322 IF (px*py*pz/=1)
THEN
323 gbuf%VOL(itel)=gbuf%VOL(itel) + lbuf%VOL(itel)
331 1 lbuf%RHO,ms ,partsav ,xx ,yy ,
332 2 zz ,vx ,vy ,vz ,ipartig3d(nf1),
333 3 msig3d ,lbuf%VOL,tbid ,tbid2 ,bid ,
334 4 bid ,bid ,tbid ,tbid ,tbid ,
335 5 tbid2 ,tbid ,bid ,bid ,nctrl ,
336 6 kxig3d ,ixig3d ,r ,detjac ,pgauss ,
341 CALL matini(pm ,ixig3d ,sixig3d ,x ,
342 1 geo ,ale_connectivity ,detonators,iparg ,
343 2 sigi ,nel ,skew ,igeo ,
345 4 imat ,ipm ,nsigs ,numsol ,ptsol ,
346 5 ibid ,ngl ,npf ,tf ,bufmat ,
347 6 gbuf ,lbuf ,mbuf ,elbuf_str,ibid ,
353 CALL dtmain(geo ,pm ,ipm ,iprop ,imat ,fv ,
354 . lbuf%EINT ,lbuf%TEMP ,lbuf%DELTAX ,lbuf%RK ,lbuf%RE ,bufmat,
355 . tbid ,tbid ,tbid ,tbid ,igeo ,igtyp)
361 IF (px*py*pz/=1)
THEN
367 lbuf => elbuf_str%BUFLY(1)%LBUF(i,j,k)
370 1 lbuf%RHO,lbuf%VOL,lbuf%OFF,lbuf%SIG,lbuf%EINT,dtx ,
384 CALL bulkige3(gbuf%VOL ,nctrl ,imat ,pm ,
385 2 vnige(1,nf1),bnige(1,nf1),px ,