56 2 V ,PM ,GEO ,MS ,IN ,
57 3 PTG ,MSC ,MSS ,MSTG ,INC ,
58 4 INTG,THKC ,THKT ,PARTSAV,IPARTS ,
59 5 IPARTC ,IPARTT ,VEUL ,DTELEM ,IHBE ,
60 6 ISOLNOD,NVC ,I8MI ,MSNF ,MSSF ,
61 7 IGEO ,ETNOD ,NSHNOD ,STC ,STTG ,
62 8 WMA ,SH4TREE,SH3TREE,MCP ,MCPC ,
63 9 TEMP ,MCPS ,MSSX ,MCPSX ,INS ,
64 A STIFN ,STIFR ,CONNEC ,IRIG_NODE,NUMEL,
65 B NINDX ,XREFC ,XREFTG ,XREFS ,MSSA ,
66 C SH3TRIM,ISUBSTACK,BUFMAT,IPM ,STACK ,
67 D RNOISE ,STRC ,STRTG ,PERTURB ,NEL ,
68 E GROUP_PARAM ,IGTYP ,DEFAULTS,GLOB_THERM)
81#include "implicit_f.inc"
89#include "vect01_c.inc"
94#include "remesh_c.inc"
98 INTEGER NVC, IHBE, ISOLNOD, NDDIM, ILEV,NRIG_MAT
100INTEGER ,
INTENT(IN) :: IGTYP
101 INTEGER IXC(NIXC,*),IXS(NIXS,*),IXTG(NIXTG,*),IXS10(6,*),
102 . IPARTS(*),IPARTC(*),IPARTT(*),IGEO(NPROPGI,*),
103 . NSHNOD(*), SH4TREE(KSH4TREE,*), SH3TREE(*),
104 . IRIG_NODE(*) ,CONNEC(NUMEL, 10),SH3TRIM(*)
105 INTEGER *8 I8MI(6,*),IPM(NPROPMI,*),(NPERTURB)
107 . PM(NPROPM,*), GEO(NPROPG,*),MS(*),MSC(*),MSS(8,*),
108 . MSTG(*),INTG(*),PTG(3,*),IN(*),INC(*),THKC(*),THKT(*),
109 . X(3,*),V(3,*),VEUL(LVEUL,*),DTELEM(*),PARTSAV(20,*),
110 . MSNF(*), MSSF(8,*), WMA(*), ETNOD(*), STC(*), STTG(
112 . mssx(12,*),stifn(*), stifr(*),
113 . xrefc(4,3,*),xreftg(3,3,*),xrefs(8,3,*), mssa(*),bufmat(*),
114 . rnoise(*),strc(*),strtg(*)
115 TYPE(group_param_) :: GROUP_PARAM
116 TYPE(DEFAULTS_),
INTENT(IN) :: DEFAULTS
117 TYPE(glob_therm_) ,
intent(in) :: glob_therm
121 INTEGER I, NDEPAR, NDSA,NC(20),N,JJ,,J,K,IP,NF1,NF2,
122 . ILAW,IMAT,IPROP,IBID(MVSIZ),NREFSTA,IMAS_DS
123 INTEGER NC10(MVSIZ,10)
124 INTEGER,
DIMENSION(MVSIZ) :: IX1,IX2,IX3,IX4,IX5,IX6,IX7,IX8,MXT,PID,NGL
127 . RX(MVSIZ) ,RY(MVSIZ) ,RZ(MVSIZ) ,SX(MVSIZ) ,
128 . sy(mvsiz) ,sz(mvsiz) ,tx(mvsiz) ,ty(mvsiz) ,tz(mvsiz) ,
129 . f1x(mvsiz) ,f1y(mvsiz) ,f1z(mvsiz) ,
130 . f2x(mvsiz) ,f2y(mvsiz) ,f2z(mvsiz),bid(mvsiz),rhocp(mvsiz),
131 . temp0(mvsiz),fill(mvsiz),bidg(mvsiz),
132 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),
133 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
134 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),
135 . void6(nel,6), mass(mvsiz),
136 . volp(mvsiz,5),deltax(mvsiz),deltax2(mvsiz),
137 . xx(mvsiz,10), yy(mvsiz,10), zz(mvsiz,10),
138 . vx(mvsiz,10), vy(mvsiz,10), vz(mvsiz,10),
139 . px(mvsiz,10,5),py(mvsiz,10,5),pz(mvsiz,10,5),
140 . masscp(mvsiz),volu(mvsiz),volg(mvsiz),
141 . sti(mvsiz) ,nx(mvsiz,10,5),dtx(mvsiz),stie,
142 . a11,b1,b2,stir,bid1(mvsiz), ddeltax(mvsiz)
143 my_real,
DIMENSION(MVSIZ) ::
area,vol,rho
145 . y1,y2,y3,y4,y5,y6,y7,y8,
146 . z1,z2,z3,z4,z5,z6,z7,z8,
147 . e1x,e2x,e3x,e1y,e2y,e3y,e1z,e2z,e3z,
148 . x2l,x3l,x4l,y2l,y3l,y4l,x31,y31,z31
149 my_real :: v_piter(nel,3,10)
151 TYPE(elbuf_struct_) ,
POINTER :: BIDBUF
152 TYPE (STACK_PLY) :: STACK
153 TYPE (DRAPE_) ,
DIMENSION(NUMELC_DRAPE+NUMELTG_DRAPE),
TARGET :: DRAPE
156 . xd1(mvsiz), xd2(mvsiz), xd3(mvsiz), xd4(mvsiz),
157 . xd5(mvsiz), xd6(mvsiz), xd7(mvsiz), xd8(mvsiz),
158 . yd1(mvsiz), yd2(mvsiz), yd3(mvsiz), yd4(mvsiz),
159 . yd5(mvsiz), yd6(mvsiz), yd7(mvsiz), yd8(mvsiz),
160 . zd1(mvsiz), zd2(mvsiz), zd3(mvsiz), zd4(mvsiz),
161 . zd5(mvsiz), zd6(mvsiz), zd7(mvsiz), zd8(mvsiz
169 imas_ds = defaults%SOLID%IMAS
171 IF (ity == 1.AND. ismstr == 10) ismstr
173 IF (ity == 1.AND. isolnod == 4)
THEN
176 CALL s4coor3(x ,xrefs(1,1,nft+1),ixs(1,nft+1),ngl ,mxt ,
177 . pid ,ix1 ,ix2 ,ix3 ,ix4 ,
178 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
181 rho(i) = pm(89,mxt(i))
182 dtelem(nft+i) = 1.e30
184 rhocp(i) = pm(69,mxt(i))
185 temp0(i) = pm(79,mxt(i))
199 connec(nindx, j) = nc(j)
203 CALL s4deri3(vol,veul(1,nft+1) ,geo ,igeo ,rx ,
206 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
207 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
208 . px1 ,px2 ,px3 ,px4 ,
209 . py1 ,py2 ,py3 ,py4 ,
210 . pz1 ,pz2 ,pz3 ,pz4 ,bid1,
211 . ddeltax,volu ,ngl ,pid ,mxt ,
214 IF(jlag+jale+jeul > 0)
THEN
216 1 rho ,ms ,partsav,x ,v ,
217 2 iparts(nft+1),mss(1,nft+1),msnf ,mssf(1,nft+1),wma ,
218 3 rhocp ,mcp ,mcps(1,nft+1) ,temp0,
219 4 temp ,mssa ,ix1 ,ix2 ,ix3 ,ix4 ,
220 5 fill, volu ,imas_ds ,glob_therm%NINTEMP)
223 CALL dtmain(geo ,pm ,void ,pid ,mxt ,void ,
224 . void ,void ,void ,void ,void ,bufmat,
225 . ddeltax,
area, volu, dtx, igeo,igtyp)
229 stie = fourth * rho(i) * vol(i) /
max(em20,dtx(i)*dtx(i))
230 stifn(ixs(2,i+nft))=stifn(ixs(2,i+nft)) + stie
231 stifn(ixs(4,i+nft))=stifn(ixs(4,i+nft)) + stie
232 stifn(ixs(6,i+nft))=stifn(ixs(6,i+nft)) + stie
233 stifn(ixs(7,i+nft))=stifn(ixs(7,i+nft)) + stie
236 ELSEIF (ity == 1.AND. isolnod == 10)
THEN
242 . xx, yy, zz, vx, vy, vz, nc10,
243 . ngl,mxt,pid,mass,dtelem(nft+1),sti,
244 . void6,void,void,void,
245 . temp0, temp ,nel,glob_therm%NINTEMP)
247 . xx, yy, zz, px,py,pz, nx,
248 . rx, ry, rz, sx, sy, sz, tx, ty, tz,volu,void,
250 CALL s10len3(volp,ngl,deltax,deltax2,
251 . px,py,pz,volu,void,volg,
252 . rx, ry, rz, sx, sy, sz, tx, ty, tz,
253 . nel,mxt,pm,v_piter,ibid)
258 rho(i) = pm(89,mxt(i))
260 dtelem(nft+i) = 1.e30
261 rhocp(i) = pm(69,mxt(i))
262 temp0(i) = pm(79,mxt(i))
266 mass(i) = mass(i) + volp(i,ip)*rho(i)
267 sti(i) = sti(i) + rho(i) * volp(i,ip) /
268 .
max(em20,dtx(i)*dtx(i))
272 CALL s10mass3(mass,ms,partsav,iparts(nf1),mss(1,nf1),volu,
273 . xx ,yy ,zz ,vx ,vy ,vz ,
274 . nc10 ,sti,stifn ,deltax2 ,mssx(1,nf1),masscp,
275 . mcp ,mcps(1,nf1),mcpsx(1,nf1),in ,stifr,
276 . ins(1,nf1),mssa ,x ,fill ,imas_ds)
301 ELSEIF(ity == 1.AND.isolnod == 16)
THEN
303 ELSEIF(ity == 1.AND.isolnod == 20)
THEN
330 IF(nc(j) > 0) connec(nindx, j) = nc(j)
334 CALL scoor3(x,xrefs(1,1,nft+1),ixs(1,nft+1) ,geo ,mxt ,pid ,ngl ,
335 . ix1 ,ix2 ,ix3 ,ix4 ,ix5 ,ix6 ,ix7 ,ix8 ,
336 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
337 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
338 . z1 ,z2 ,z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
339 . rx ,ry ,rz ,sx ,sy ,sz ,tx ,ty ,tz ,
340 . e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,e3z ,
341 . f1x ,f1y ,f1z ,f2x ,f2y ,f2z ,temp0, temp,glob_therm%NINTEMP,
342 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
343 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
344 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 )
347 rho(i) = pm(89,mxt(i))
351 CALL sderi3(vol,veul(1,nft+1),geo,igeo,
352 . xd1 ,xd2 ,xd3 ,xd4 ,xd5 ,xd6 ,xd7 ,xd8 ,
353 . yd1 ,yd2 ,yd3 ,yd4 ,yd5 ,yd6 ,yd7 ,yd8 ,
354 . zd1 ,zd2 ,zd3 ,zd4 ,zd5 ,zd6 ,zd7 ,zd8 ,
355 . rx ,ry ,rz ,sx ,sy ,sz ,ngl ,pid ,
356 . px1 ,px2 ,px3 ,px4 ,py1 ,py2 ,py3 ,py4 ,
357 . pz1 ,pz2 ,pz3 ,pz4 ,volu ,voldp,nel ,jeul ,
360 . x1 ,x2 ,x3 ,x4 ,x5 ,x6 ,x7 ,x8 ,
361 . y1 ,y2 ,y3 ,y4 ,y5 ,y6 ,y7 ,y8 ,
365 1 rho ,ms ,partsav,x ,v ,
366 2 iparts(nft+1),mss(1,nft+1) ,volu ,
367 3 msnf ,mssf(1,nft+1),in ,
368 4 void ,ins ,wma , rhocp ,mcp ,
369 5 mcps(1,nft+1),mssa ,bid ,bid ,fill,
370 6 ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8)
373 CALL dtmain(geo ,pm ,void ,pid
374 . void ,void ,void ,void ,void ,bufmat, ddeltax,
area, volu, dtx , igeo,igtyp)
379 stie = fourth * rho(i) * vol(i) /
max(em20,dtx(i)*dtx(i))
380 stifn(ixs(2,n))=stifn(ixs(2,n))+stie
381 stifn(ixs(3,n))=stifn(ixs(3,n))+stie
382 stifn(ixs(4,n))=stifn(ixs(4,n))+stie
383 stifn(ixs(5,n))=stifn(ixs(5,n))+stie
384 stifn(ixs(6,n))=stifn(ixs(6,n))+stie
385 stifn(ixs(7,n))=stifn(ixs(7,n))+stie
386 stifn(ixs(8,n))=stifn(ixs(8,n))+stie
387 stifn(ixs(9,n))=stifn(ixs(9,n))+stie
396 CALL ccoori(x,xrefc(1,1,nft+1),ixc(1,nft
397 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
398 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
399 . ix1 ,ix2 ,ix3 ,ix4 ,ngl )
401 CALL cveok3(nvc,4,ix1,ix2,ix3,ix4)
403 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
404 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
405 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
407 CALL cinmas(x,xrefc(1,1,nft+1),ixc,geo,pm,ms,in,
408 . thkc,ihbe,partsav,v,ipartc(nft+1),
409 . msc(nft+1),inc(nft+1),
area ,
410 . i8mi ,igeo ,etnod ,imat ,iprop ,
411 . nshnod ,stc(nft+1),sh4tree ,mcp ,mcpc(nft+1) ,
412 . temp ,bid , bid,bid,bid,
413 . bid,bid,isubstack,ibid,bidbuf,
414 . stack,bidg, rnoise ,drape ,glob_therm%NINTEMP,
415 . perturb,ix1 ,ix2 ,ix3 ,ix4 ,ibid, ibid )
416 CALL cderii(px1 ,px2 ,py1 ,py2,
417 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
418 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
419 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
420 . x2l ,x3l ,x4l ,y2l ,y3l ,y4l )
427 b1 = px1(i)*px1(i)+py1(i)*py1(i)
428 b2 = px2(i)*px2(i)+py2(i)*py2(i)
429 stie =
max(b1,b2) * thkc(i) * a11 /
area(i)
430 stir = one_over_12*stie * (thkc(i)*thkc(i) +
area(i))
431 stifn(ixc(2,n))=stifn(ixc(2,n))+stie
432 stifn(ixc(3,n))=stifn(ixc(3,n))+stie
433 stifn(ixc(4,n))=stifn(ixc(4,n))+stie
434 stifn(ixc(5,n))=stifn(ixc(5,n))+stie
435 stifr(ixc(2,n))=stifr(ixc(2,n))+stir
436 stifr(ixc(3,n))=stifr(ixc(3,n))+stir
437 stifr(ixc(4,n))=stifr(ixc(4,n))+stir
438 stifr(ixc(5,n))=stifr(ixc(5,n))+stir
444 IF(sh4tree(3,n) >= 0)
THEN
446 b1 = px1(i)*px1(i)+py1(i)*py1(i)
447 b2 = px2(i)*px2(i)+py2(i)*py2(i)
448 stie =
max(b1,b2) * thkc(i) * a11 /
area(i)
449 stir = one_over_12*stie * (thkc
450 stifn(ixc(2,n))=stifn(ixc(2,n))+stie
451 stifn(ixc(3,n))=stifn(ixc(3,n))+stie
452 stifn(ixc(4,n))=stifn(ixc(4,n))+stie
453 stifn(ixc(5,n))=stifn(ixc(5,n))+stie
454 stifr(ixc(2,n))=stifr(ixc(2,n))+stir
455 stifr(ixc(3,n))=stifr
456 stifr(ixc(4,n))=stifr(ixc(4,n))+stir
457 stifr(ixc(5,n))=stifr(ixc(5,n))+stir
465 dtelem(ndepar+i) = ep30
476 connec(nindx,1) = nc(1)
477 connec(nindx,2) = nc(2)
478 connec(nindx,3) = nc(3)
479 connec(nindx,4) = nc(4)
491 iprop = ixtg(nixtg-1,1+nft)
493 CALL c3coori(x,xreftg(1,1,nft+1),ixtg(1,nft+1),ngl,
494 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
495 . z1 ,z2 ,z3 ,ix1 ,ix2 ,ix3 )
496 CALL c3veok3(nvc ,ix1 ,ix2 ,ix3)
498 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
499 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
500 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
501 . x31, y31, z31 ,x2l ,x3l ,y3l )
502 CALL c3inmas(x,xreftg(1,1,nft+1),ixtg,geo,pm,ms,in,thkt,
505 . etnod,nshnod,sttg(nft+1), sh3tree,mcp
506 . mcps(1,nft+1) , temp,sh3trim,isubstack,ibid,
507 . bidbuf, stack,bidg ,rnoise,drape,
508 . perturb,ix1 ,ix2 ,ix3 ,glob_therm%NINTEMP,
509 . x2l ,x3l ,y3l , ibid, ibid )
510 CALL c3derii(lft,llt,pm,geo,px1,py1,py2,s
511 . tifn ,stifr ,ixtg(1,nft+1),
512 . thkt,sh3tree,aldt,bufmat , ipm ,igeo ,
513 . stack%PM , isubstack, strtg(nft+1),imat,iprop,
514 .
area ,dt ,x31 ,y31 ,z31 ,
515 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,
516 . e1z ,e2z ,e3z ,x2l ,x3l ,y3l ,
519 ndepar=numels+numelc+numelt+numelp+numelr+nft
521 dtelem(ndepar+i) = ep30
532 connec(nindx , 1) = nc(1)
533 connec(nindx , 2) = nc(2)
534 connec(nindx , 3) = nc(3)