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 )
51#include "implicit_f.inc"
65 INTEGER , NRTM, NINT, NTY, NOINT,NSN, NMN, IGAP,
67 INTEGER IRECTS(4,*), IRECTM(4,*), IXS(NIXS,*), IXC(NIXC,*),
68 . NSV(*), IXTG(NIXTG,*),
69 . KNOD2ELS(*), KNOD2ELC(*), KNOD2ELTG(*), NOD2ELS(*), NOD2ELC(*),
70 . NOD2ELTG(*),IELES(*),
71 . MSR(*), ITAB(*), IKINE(*), IPARTS(*), IPARTC(*), IPARTG(
72INTEGER ,
INTENT (IN) :: RESORT
74 my_real ,
INTENT(IN) :: DGAPLOAD
76 . GAP,GAPMIN,CRITER, GAPMAX, GAPSCALE, DEPTH, DRAD, LXM, LYM, LZM
78 . x(3,*), pm(npropm,*), geo(npropg,*),
79 . gap_s(*), thknod(*), stf(*), stfn(*),
80 . gap_s0(*), area_s0(*), xm0(3,*),thk_part(*),thknod0(*)
82 CHARACTER(LEN=NCHARTITLE) :: TITR
86 INTEGER NDX, I, J, II, INRT, NELS, NELC, NELTG, NEL,
87 . n1,n2,n3,n4, ix, n, l, llt, nn, ip, stat
91 . dxm, gapmx, gapmn,
area, dx,gaps1,gaps2, gapm, ddx,
92 . gaptmp, xxx, yyy, zzz, x0, x1, y0, y1, z0, z1
94 . x12(mvsiz),y12(mvsiz),z12(mvsiz),
95 . x13(mvsiz),y13(mvsiz),z13(mvsiz),
96 . x24(mvsiz),y24(mvsiz),z24(mvsiz),
97 . nx(mvsiz),ny(mvsiz),nz(mvsiz),aa(mvsiz)
98 my_real,
DIMENSION(:),
ALLOCATABLE :: thk_part_nods
112 CALL i4gmx3(x,irects,inrt,gapmx)
118 ALLOCATE (thk_part_nods(numnod) ,stat=stat)
119 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
121 . c1=
'THK_PART_NODS')
122 thk_part_nods(1:numnod) = zero
129 thk_part_nods(nn) =
max(thk_part_nods(n),thk_part(ip))
131 ELSEIF(nel<=(numels+numelc))
THEN
132 ip = ipartc(nel-numels)
135 thk_part_nods(nn) =
max(thk_part_nods(n),thk_part(ip))
138 ip = ipartg(nel-numels-numelc)
141 thk_part_nods(nn) =
max(thk_part_nods(n),thk_part(ip))
153 dx = thk_part_nods(nsv(i))*gapscale
155 dx = thknod(nsv(i))*gapscale
159 gaps2 =
max(gaps2,gapm)
167 thknod0(i) = thknod(nsv(i))
169 IF (
ALLOCATED(thk_part_nods))
DEALLOCATE(thk_part_nods)
188 IF (resort==0)
WRITE(iout,1000)gap
194 IF(gap>zero)gapmin=gap
195 IF (resort==0)
WRITE(iout,1000)gapmin
198 IF(gapmax==zero)gapmax=ep30
199 IF (resort==0)
WRITE(iout,1500)gapmax
200 gap =
min(gap,gapmax)
205 gap =
min(gapmax,
max(gaps2,gapmin))
215 criter =
min(criter,gap_s(i))
217 criter=
max(criter,gapmin)
220 IF(dgapload > zero) criter=
max(criter,em01*(gap + dgapload))
226 ELSEIF(depth<gap)
THEN
230 IF (resort==0)
WRITE(iout,2000)depth
232 criter=
max(criter,em01*depth)
234 IF(depth>gapmx .AND. resort==0 )
THEN
236 . msgtype=msgwarning,
237 . anmode=aninfo_blind_2,
251 IF (resort==0)
WRITE(iout,2001)drad
253 criter=
max(criter,em01*drad)
255 IF(drad>gapmx .AND. resort==0)
THEN
257 . msgtype=msgwarning,
258 . anmode=aninfo_blind_2,
281 gap_s0(i) =
min(gap_s(i),gapmax)
282 gap_s0(i) =
max(gapmin ,gap_s0(i))
293 llt=
min(nrts-n+1,mvsiz)
303 x13(l)=x(1,n3)-x(1,n1)
304 y13(l)=x(2,n3)-x(2,n1)
305 z13(l)=x(3,n3)-x(3,n1)
306 x24(l)=x(1,n4)-x(1,n2)
307 y24(l)=x(2,n4)-x(2,n2)
308 z24(l)=x(3,n4)-x(3,n2)
309 nx(l)=y13(l)*z24(l)-z13(l)*y24(l)
310 ny(l)=z13(l)*x24(l)-x13(l)*z24(l)
311 nz(l)=x13(l)*y24(l)-y13(l)*x24(l)
312 aa(l)=one_over_8*sqrt(nx(l)*nx(l)+ny(l)*ny(l)+nz(l)*nz(l))
313 area_s0(itmp(n1))=area_s0(itmp(n1))+aa(l)
314 area_s0(itmp(n2))=area_s0(itmp(n2))+aa(l)
315 area_s0(itmp(n3))=area_s0(itmp(n3))+aa(l)
316 area_s0(itmp(n4))=area_s0(itmp(n4))+aa(l)
318 x12(l)=x(1,n2)-x(1,n1)
319 y12(l)=x(2,n2)-x(2,n1)
320 z12(l)=x(3,n2)-x(3,n1)
321 x13(l)=x(1,n3)-x(1,n1)
322 y13(l)=x(2,n3)-x(2,n1)
323 z13(l)=x(3,n3)-x(3,n1)
324 nx(l)=y12(l)*z13(l)-z12(l)*y13(l)
325 ny(l)=z12(l)*x13(l)-x12(l)*z13(l)
326 nz(l)=x12(l)*y13(l)-y12(l)*x13(l)
327 aa(l)=one_over_6*sqrt(nx(l)*nx(l)+ny(l)*ny(l)+nz(l)*nz(l))
328 area_s0(itmp(n1))=area_s0(itmp(n1))+aa(l)
329 area_s0(itmp(n2))=area_s0(itmp(n2))+aa(l)
330 area_s0(itmp(n3))=area_s0(itmp(n3))+aa(l)
345 llt=
min(nrts-n+1,mvsiz)
355 x13(l)=x(1,n3)-x(1,n1)
356 y13(l)=x(2,n3)-x(2,n1)
357 z13(l)=x(3,n3)-x(3,n1)
358 x24(l)=x(1,n4)-x(1,n2)
359 y24(l)=x(2,n4)-x(2,n2)
360 z24(l)=x(3,n4)-x(3,n2)
361 nx(l)=y13(l)*z24(l)-z13(l)*y24(l)
363 nz(l)=x13(l)*y24(l)-y13(l)*x24(l)
364 aa(l)=one_over_8*sqrt(nx(l)*nx(l)+ny(l)*ny(l)+nz(l)*nz(l))
365 area_s0(itmp(n1))=area_s0(itmp(n1))+aa(l)
366 area_s0(itmp(n2))=area_s0(itmp(n2))+aa(l)
367 area_s0(itmp(n3))=area_s0(itmp(n3))+aa(l)
368 area_s0(itmp(n4))=area_s0(itmp(n4))+aa(l)
370 x12(l)=x(1,n2)-x(1,n1)
371 y12(l)=x(2,n2)-x(2,n1)
372 z12(l)=x(3,n2)-x(3,n1)
373 x13(l)=x(1,n3)-x(1,n1)
374 y13(l)=x(2,n3)-x(2,n1)
375 z13(l)=x(3,n3)-x(3,n1)
376 nx(l)=y12(l)*z13(l)-z12(l)*y13(l)
377 ny(l)=z12(l)*x13(l)-x12(l)*z13(l)
378 nz(l)=x12(l)*y13(l)-y12(l)*x13(l)
379 aa(l)=one_over_6*sqrt(nx(l)*nx(l)+ny(l)*ny(l)+nz(l)*nz(l))
380 area_s0(itmp(n1))=area_s0(itmp(n1))+aa(l)
381 area_s0(itmp(n2))=area_s0(itmp(n2))+aa(l)
382 area_s0(itmp(n3))=area_s0(itmp
417 1000
FORMAT(2x,
'GAP MIN = ',1pg20.13)
418 1500
FORMAT(2x,
'GAP MAX = ',1pg20.13)
419 2000
FORMAT(2x,
'DEPTH BEFORE RELEASE = ',1pg20.13)
420 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)