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,MAT_PARAM)
61#include "implicit_f.inc"
74#include "vect01_c.inc"
79 INTEGER IXIG3D(*), IPARG(*),
80 . NEL, IPART(LIPART1,*),
81 . IGEO(NPROPGI,*), (NPROPMI,*), PTSOL(*), NSIGI, NSIGS,
82 . NPF(*),FAIL_INI(*),KXIG3D(NIXIG3D,*),NCTRL,NCTRLMAX,
83 . IPARTIG3D(*),PX,PY,PZ
85 . MS(*), X(3,*), GEO(NPROPG,*),PM(NPROPM,*),
86 . VEUL(LVEUL,*), DTELEM(*),SIGI(NSIGS,*),SKEW(LSKEW,*),STIFN(*),
87 . PARTSAV(20,*), V(3,*), MSS(8,*), KNOTLOCPC(DEG_MAX,3,*),
88 . knotlocel(2,3,*), sigsp(nsigi,*) , in(*), vr(3,*),
89 . vnige(nctrlmax,*), bnige(nctrlmax,*),bufmat(*), tf(*),
90 . msig3d(numelig3d,nctrlmax),knot(*),wige(*)
91 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
92 TYPE(DETONATORS_STRUCT_)::DETONATORS
94 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(INOUT) :: MAT_PARAM
98 INTEGER I,J,K,N,NF1,IBID,JHBE,IGTYP,IREP,NCC,NUVAR,IP,NREFSTA,
99 . IPID,NPTR,NPTS,NPTT,NLAY,ITEL
100 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ),
101 . iprop(mvsiz) ,imat(mvsiz) ,iad_knot,
102 . el_id(mvsiz),n1,n2,n3,nknot1,nknot2,nknot3,
103 . idx(mvsiz),idy(mvsiz),idz(mvsiz),
104 . idx2(mvsiz),idy2(mvsiz),idz2(mvsiz)
105 CHARACTER(LEN=NCHARTITLE)::TITR1
107 . bid, fv, v8loc(51,mvsiz), volu(mvsiz), dtx(mvsiz),dtx0(mvsiz),
108 . mass(nctrl,nel),inn(mvsiz,8),xx(nctrl,mvsiz),
109 . yy(nctrl,mvsiz),zz(nctrl,mvsiz),ww(nctrl,mvsiz),
110 . vx(nctrl,mvsiz),vy(nctrl,mvsiz), vz(nctrl,mvsiz),vrx(mvsiz,8),
111 . vry(mvsiz,8),vrz(mvsiz,8),sti(mvsiz),stir(mvsiz),viscm(mvsiz),
113 . x1(mvsiz),x2(mvsiz),x3(mvsiz),x4(mvsiz),x5(mvsiz),x6(mvsiz),
114 . x7(mvsiz),x8(mvsiz),y1(mvsiz),y2(mvsiz),y3(mvsiz),y4(mvsiz),
115 . y5(mvsiz),y6(mvsiz),y7(mvsiz),y8(mvsiz),z1(mvsiz),z2(mvsiz),
116 . z3(mvsiz),z4(mvsiz),z5(mvsiz),z6(mvsiz),z7(mvsiz),z8(mvsiz),
117 . rx(mvsiz) ,ry(mvsiz) ,rz(mvsiz) ,sx(mvsiz) ,
118 . sy(mvsiz) ,sz(mvsiz) ,tx(mvsiz) ,ty(mvsiz) ,tz(mvsiz) ,
119 . e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),e2x(mvsiz),
120 . e2y(mvsiz),e2z(mvsiz),e3x(mvsiz),e3y(mvsiz),e3z(mvsiz),
121 . f1x(mvsiz) ,f1y(mvsiz) ,f1z(mvsiz) ,
122 . f2x(mvsiz) ,f2y(mvsiz) ,f2z(mvsiz),
123 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),
124 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
125 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),
126 . kx ,ky ,kz, zr, zs, zt
129 . volo(mvsiz),dte(mvsiz),pgauss,detjac
131 . r(nctrl),drdxi(3,nctrl),knotlocx(px+1,nctrl,mvsiz),
132 . knotlocy(py+1,nctrl,mvsiz),knotlocz(pz+1,nctrl,mvsiz),
133 . knotlocelx(2,mvsiz),
134 . knotlocely(2,mvsiz),knotlocelz(2,mvsiz)
136 . tbid(mvsiz), tbid2(8,mvsiz)
138 TYPE(g_bufel_) ,
POINTER :: GBUF
139 TYPE(l_bufel_) ,
POINTER :: LBUF
140 TYPE(BUF_MAT_) ,
POINTER :: MBUF
143 . W_GAUSS(9,9),A_GAUSS(9,9)
151 3 0.555555555555556d0,0.888888888888889d0,0.555555555555556d0,
154 4 0.347854845137454d0,0.652145154862546d0,0.652145154862546d0,
155 4 0.347854845137454d0,0.d0 ,0.d0 ,
157 5 0.236926885056189d0,0.478628670499366d0,0.568888888888889d0,
158 5 0.478628670499366d0,0.236926885056189d0,0.d0 ,
160 6 0.171324492379170d0,0.360761573048139d0,0.467913934572691d0,
161 6 0.467913934572691d0,0.360761573048139d0,0.171324492379170d0,
163 7 0.129484966168870d0,0.279705391489277d0,0.381830050505119d0,
164 7 0.417959183673469d0,0.381830050505119d0,0.279705391489277d0,
165 7 0.129484966168870d0,0.d0 ,0.d0 ,
166 8 0.101228536290376d0,0.222381034453374d0,0.313706645877887d0,
167 8 0.362683783378362d0,0.362683783378362d0,0.313706645877887d0,
168 8 0.222381034453374d0,0.101228536290376d0,0.d0 ,
169 9 0.081274388361574d0,0.180648160694857d0,0.260610696402935d0,
170 9 0.312347077040003d0,0.330239355001260d0,0.312347077040003d0,
171 9 0.260610696402935d0,0.180648160694857d0,0.081274388361574d0/
176 2 -.577350269189625d0,0.577350269189625d0,0.d0 ,
179 3 -.774596669241483d0,0.d0 ,0.774596669241483d0,
182 4 -.861136311594053d0,-.339981043584856d0,0.339981043584856d0,
183 4 0.861136311594053d0,0.d0 ,0.d0 ,
185 5 -.906179845938664d0,-.538469310105683d0,0.d0 ,
186 5 0.538469310105683d0,0.906179845938664d0,0.d0 ,
188 6 -.932469514203152d0,-.661209386466265d0,-.238619186083197d0,
189 6 0.238619186083197d0,0.661209386466265d0,0.932469514203152d0,
191 7 -.949107912342759d0,-.741531185599394d0,-.405845151377397d0,
192 7 0.d0 ,0.405845151377397d0,0.741531185599394d0,
193 7 0.949107912342759d0,0.d0 ,0.d0 ,
194 8 -.960289856497536d0,-.796666477413627d0,-.525532409916329d0,
195 8 -.183434642495650d0,0.183434642495650d0,0.525532409916329d0,
196 8 0.796666477413627d0,0.960289856497536d0,0.d0 ,
197 9 -.968160239507626d0,-.836031107326636d0,-.613371432700590d0,
198 9 -.324253423403809d0,0.d0 ,0.324253423403809d0,
199 9 0.613371432700590d0,0.836031107326636d0,0.968160239507626d0/
205 gbuf => elbuf_str%GBUF
230 xx(j,i)=x(1,ixig3d(kxig3d(4,i+nft)+j-1))
231 yy(j,i)=x(2,ixig3d(kxig3d(4,i+nft)+j-1))
232 zz(j,i)=x(3,ixig3d(kxig3d(4,i+nft)+j-1))
233 vx(j,i)=v(1,ixig3d(kxig3d(4,i+nft)+j-1))
234 vy(j,i)=v(2,ixig3d(kxig3d(4,i+nft)+j-1))
235 vz(j,i)=v(3,ixig3d(kxig3d(4,i+nft)+j-1))
241 knotlocy(k,j,i)=knotlocpc
244 knotlocz(k,j,i)=knotlocpc(k,3,(kxig3d(2,i+nft)-1)*numnod+ixig3d(kxig3d(4,i+nft)+j-1))
247 el_id(i)=kxig3d(5,i+nft)
248 idx(i) = kxig3d(6,i+nft)
249 idy(i) = kxig3d(7,i+nft)
250 idz(i) = kxig3d(8,i+nft)
251 idx2(i) = kxig3d(9,i+nft)
252 idy2(i) = kxig3d(10,i+nft)
253 idz2(i) = kxig3d(11,i+nft)
254 knotlocelx(1,i) = knotlocel(1,1,i+nft)
255 knotlocely(1,i) = knotlocel(1,2,i+nft)
256 knotlocelz(1,i) = knotlocel(1,3,i+nft)
257 knotlocelx(2,i) = knotlocel(2,1,i+nft)
258 knotlocely(2,i) = knotlocel(2,2,i+nft)
259 knotlocelz(2,i) = knotlocel(2,3,i+nft)
262 iad_knot = igeo(40,ipid)
271 iprop(i)=kxig3d(2,i+nft)
272 imat(i) =kxig3d(1,i+nft)
283 CALL sczero3(gbuf%RHO,gbuf%SIG,gbuf%EINT,nel)
291 lbuf => elbuf_str%BUFLY(1)%LBUF(i,j,k)
292 mbuf => elbuf_str%BUFLY(1)%MAT(i,j,k)
297 lbuf%RHO(itel) = pm(89,imat(itel))
301 pgauss=w_gauss(i,px)*w_gauss(j,py)*w_gauss(k,pz)
312 1 itel ,n ,xx(:,itel) ,yy(:,itel),
313 2 zz(:,itel),ww(:,itel) ,idx(itel) ,idy(itel) ,
314 3 idz(itel) ,knotlocx(:,:,itel) ,knotlocy(:,:,itel),knotlocz(:,:,itel) ,
315 4 drdxi ,r ,detjac ,nctrl ,
316 5 zr ,zs ,zt ,knot(iad_knot+1),
317 6 knot(iad_knot+nknot1+1),knot(iad_knot+nknot1+nknot2+1),px
319 8 idx2(itel),idy2(itel) ,idz2(itel) ,
320 9 knotlocelx(:,itel),knotlocely(:,itel),knotlocelz(:,itel))
322 lbuf%VOL(itel)= pgauss*detjac
324 IF (px*py*pz/=1)
THEN
325 gbuf%VOL(itel)=gbuf%VOL(itel) + lbuf%VOL(itel)
334 2 zz ,vx ,vy ,vz ,ipartig3d(nf1),
335 3 msig3d ,lbuf%VOL,tbid ,tbid2 ,bid ,
336 4 bid ,bid ,tbid ,tbid ,tbid ,
337 5 tbid2 ,tbid ,bid ,bid ,nctrl ,
338 6 kxig3d ,ixig3d ,r ,detjac ,pgauss ,
343 CALL matini(pm ,ixig3d ,sixig3d ,x ,
344 1 geo ,ale_connectivity ,detonators,iparg
345 2 sigi ,nel ,skew ,igeo ,
347 4 imat ,ipm ,nsigs ,numsol ,ptsol ,
348 5 ibid ,ngl ,npf ,tf ,bufmat ,
349 6 gbuf ,lbuf ,mbuf ,elbuf_str,ibid ,
350 7 tbid ,tbid ,tbid ,mat_param )
355 CALL dtmain(geo ,pm ,ipm ,iprop ,imat ,fv ,
356 . lbuf%EINT ,lbuf%TEMP ,lbuf%DELTAX ,lbuf%RK ,lbuf%RE ,bufmat,
357 . tbid ,tbid ,tbid ,tbid ,igeo ,igtyp)
363 IF (px*py*pz/=1)
THEN
369 lbuf => elbuf_str%BUFLY(1)%LBUF(i,j,k)
372 1 lbuf%RHO,lbuf%VOL,lbuf%OFF,lbuf%SIG,lbuf%EINT,dtx ,
373 2 gbuf%RHO,gbuf%VOL,gbuf%OFF,gbuf%SIG,gbuf%EINT,dtx0,
386 CALL bulkige3(gbuf%VOL ,nctrl ,imat ,pm ,
387 2 vnige(1,nf1),bnige(1,nf1),px ,