34 1 X ,IRECTS ,IRECTM ,NRTS ,NRTM ,
35 2 GEO ,PM ,IXS ,IXC ,IXTG ,
36 3 NINT ,NTY ,NOINT ,NSN ,NSV ,
37 4 GAP ,IGAP ,GAP_S ,GAPMIN,CRITER,
38 5 GAPMAX,IELES ,STF ,NMN ,MSR ,
39 6 KNOD2ELS ,KNOD2ELC ,KNOD2ELTG ,NOD2ELS ,NOD2ELC,
41 8 IKINE ,ITAB ,INACTI ,GAPSCALE,STFN ,
42 9 DEPTH ,GAP_S0 ,AREA_S0 ,XM0 ,LXM ,
43 A LYM ,LZM ,INTTH ,DRAD ,IPARTS ,
44 B IPARTC ,IPARTG ,THK_PART ,THKNOD0 ,ID ,
45 C TITR ,DGAPLOAD ,RESORT )
48 use element_mod ,
only :nixs,nixc,nixtg
52#include "implicit_f.inc"
66 INTEGER NRTS, NRTM, NINT, NTY, NOINT,NSN, NMN, IGAP,
68 INTEGER IRECTS(4,*), IRECTM(4,*), IXS(NIXS,*), IXC(NIXC,*),
69 . NSV(*), IXTG(NIXTG,*),
70 . KNOD2ELS(*), KNOD2ELC(*), KNOD2ELTG(*), NOD2ELS(*), NOD2ELC(*),
71 . NOD2ELTG(*),IELES(*),
72 . (*), ITAB(*), IKINE(*), IPARTS(*), IPARTC(*), IPARTG(*)
73 INTEGER ,
INTENT (IN) :: RESORT
75 my_real ,
INTENT(IN) :: DGAPLOAD
77 . GAP,GAPMIN,CRITER, GAPMAX, GAPSCALE, DEPTH, DRAD, , LYM, LZM
79 . x(3,*), pm(npropm,*), geo(npropg,*),
80 . gap_s(*), thknod(*), stf(*), stfn
81 . gap_s0(*), area_s0(*), xm0(3,*),thk_part(*),thknod0(*)
83 CHARACTER(LEN=NCHARTITLE) :: TITR
87 INTEGER NDX, I, J, II, INRT, NEL,
88 . n1,n2,n3,n4, ix, n, l, llt, nn, ip, stat
92 . dxm, gapmx, gapmn, dx,gaps1,gaps2, gapm,
93 . xxx, yyy, zzz, x0, x1, y0, y1, z0, z1
95 . x12(mvsiz),y12(mvsiz),z12(mvsiz),
96 . x13(mvsiz),y13(mvsiz),z13(mvsiz),
97 . x24(mvsiz),y24(mvsiz),z24(mvsiz),
98 . nx(mvsiz),ny(mvsiz),nz(mvsiz),aa(mvsiz)
99 my_real,
DIMENSION(:),
ALLOCATABLE :: thk_part_nods
113 CALL i4gmx3(x,irects,inrt,gapmx)
119 ALLOCATE (thk_part_nods(numnod) ,stat=stat)
120 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
122 . c1=
'THK_PART_NODS')
123 thk_part_nods(1:numnod) = zero
130 thk_part_nods(nn) =
max(thk_part_nods(n),thk_part(ip))
132 ELSEIF(nel<=(numels+numelc))
THEN
133 ip = ipartc(nel-numels)
136 thk_part_nods(nn) =
max(thk_part_nods(n),thk_part(ip))
139 ip = ipartg(nel-numels-numelc)
142 thk_part_nods(nn) =
max(thk_part_nods(n),thk_part(ip))
153 IF(thk_part_nods(nsv(i))/=zero)
THEN
154 dx = thk_part_nods(nsv(i))*gapscale
156 dx = thknod(nsv(i))*gapscale
160 gaps2 =
max(gaps2,gapm)
168 thknod0(i) = thknod(nsv(i))
170 IF (
ALLOCATED(thk_part_nods))
DEALLOCATE(thk_part_nods)
189 IF (resort==0)
WRITE(iout,1000)gap
195 IF(gap>zero)gapmin=gap
196 IF (resort==0)
WRITE(iout,1000)gapmin
199 IF(gapmax==zero)gapmax=ep30
200 IF (resort==0)
WRITE(iout,1500)gapmax
201 gap =
min(gap,gapmax)
206 gap =
min(gapmax,
max(gaps2,gapmin))
216 criter =
min(criter,gap_s(i))
218 criter=
max(criter,gapmin)
221 IF(dgapload > zero) criter=
max(criter,em01*(gap + dgapload))
227 ELSEIF(depth<gap)
THEN
231 IF (resort==0)
WRITE(iout,2000)depth
233 criter=
max(criter,em01*depth)
235 IF(depth>gapmx .AND. resort==0 )
THEN
237 . msgtype=msgwarning,
238 . anmode=aninfo_blind_2,
252 IF (resort==0)
WRITE(iout,2001)drad
254 criter=
max(criter,em01*drad)
256 IF(drad>gapmx .AND. resort==0)
THEN
258 . msgtype=msgwarning,
259 . anmode=aninfo_blind_2,
282 gap_s0(i) =
min(gap_s(i),gapmax)
283 gap_s0(i) =
max(gapmin ,gap_s0(i))
294 llt=
min(nrts-n+1,mvsiz)
304 x13(l)=x(1,n3)-x(1,n1)
305 y13(l)=x(2,n3)-x(2,n1)
306 z13(l)=x(3,n3)-x(3,n1)
307 x24(l)=x(1,n4)-x(1,n2)
308 y24(l)=x(2,n4)-x(2,n2)
309 z24(l)=x(3,n4)-x(3,n2)
310 nx(l)=y13(l)*z24(l)-z13(l)*y24(l)
311 ny(l)=z13(l)*x24(l)-x13(l)*z24(l)
312 nz(l)=x13(l)*y24(l)-y13(l)*x24(l)
313 aa(l)=one_over_8*sqrt(nx(l)*nx(l)+ny(l)*ny(l)+nz(l)*nz(l))
314 area_s0(itmp(n1))=area_s0(itmp(n1))+aa(l)
315 area_s0(itmp(n2))=area_s0(itmp(n2))+aa(l)
316 area_s0(itmp(n3))=area_s0(itmp(n3))+aa(l)
317 area_s0(itmp(n4))=area_s0(itmp(n4))+aa(l)
319 x12(l)=x(1,n2)-x(1,n1)
320 y12(l)=x(2,n2)-x(2,n1)
321 z12(l)=x(3,n2)-x(3,n1)
322 x13(l)=x(1,n3)-x(1,n1)
323 y13(l)=x(2,n3)-x(2,n1)
324 z13(l)=x(3,n3)-x(3,n1)
325 nx(l)=y12(l)*z13(l)-z12(l)*y13(l)
326 ny(l)=z12(l)*x13(l)-x12(l)*z13(l)
327 nz(l)=x12(l)*y13(l)-y12(l)*x13(l)
328 aa(l)=one_over_6*sqrt(nx(l)*nx(l)+ny(l)*ny(l)+nz(l)*nz(l))
329 area_s0(itmp(n1))=area_s0(itmp(n1))+aa(l)
330 area_s0(itmp(n2))=area_s0(itmp(n2))+aa(l)
331 area_s0(itmp(n3))=area_s0(itmp(n3))+aa(l)
346 llt=
min(nrts-n+1,mvsiz)
356 x13(l)=x(1,n3)-x(1,n1)
357 y13(l)=x(2,n3)-x(2,n1)
358 z13(l)=x(3,n3)-x(3,n1)
359 x24(l)=x(1,n4)-x(1,n2)
360 y24(l)=x(2,n4)-x(2,n2)
361 z24(l)=x(3,n4)-x(3,n2)
362 nx(l)=y13(l)*z24(l)-z13(l)*y24(l)
363 ny(l)=z13(l)*x24(l)-x13(l)*z24(l)
364 nz(l)=x13(l)*y24(l)-y13(l)*x24(l)
365 aa(l)=one_over_8*sqrt(nx(l)*nx(l)+ny(l)*ny(l)+nz(l)*nz(l))
366 area_s0(itmp(n1))=area_s0(itmp(n1))+aa(l)
367 area_s0(itmp(n2))=area_s0(itmp(n2))+aa(l)
368 area_s0(itmp(n3))=area_s0(itmp(n3))+aa(l)
369 area_s0(itmp(n4))=area_s0(itmp(n4))+aa(l
371 x12(l)=x(1,n2)-x(1,n1)
372 y12(l)=x(2,n2)-x(2,n1)
373 z12(l)=x(3,n2)-x(3,n1)
374 x13(l)=x(1,n3)-x(1,n1)
375 y13(l)=x(2,n3)-x(2,n1)
376 z13(l)=x(3,n3)-x(3,n1)
377 nx(l)=y12(l)*z13(l)-z12(l)*y13(l)
378 ny(l)=z12(l)*x13(l)-x12(l)*z13(l)
379 nz(l)=x12(l)*y13(l)-y12(l)*x13(l)
380 aa(l)=one_over_6*sqrt(nx(l)*nx(l)+ny(l)*ny(l)+nz(l)*nz(l))
381 area_s0(itmp(n1))=area_s0(itmp(n1))+aa(l)
382 area_s0(itmp(n2))=area_s0(itmp(n2))+aa(l)
383 area_s0(itmp(n3))=area_s0(itmp(n3))+aa(l)
418 1000
FORMAT(2x,
'GAP MIN = ',1pg20.13)
419 1500
FORMAT(2x,
'GAP MAX = ',1pg20.13)
420 2000
FORMAT(2x,
'DEPTH BEFORE RELEASE = ',1pg20.13)
421 2001
FORMAT(2x,
'Maximum distance for radiation computation = ',
subroutine i21gap3(x, irects, irectm, nrts, nrtm, geo, pm, ixs, ixc, ixtg, nint, nty, noint, nsn, nsv, gap, igap, gap_s, gapmin, criter, gapmax, ieles, stf, nmn, msr, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, thknod, ikine, itab, inacti, gapscale, stfn, depth, gap_s0, area_s0, xm0, lxm, lym, lzm, intth, drad, iparts, ipartc, ipartg, thk_part, thknod0, id, titr, dgapload, resort)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)