32
33
34
36 use element_mod , only :nixs
37
38
39
40#include "implicit_f.inc"
41
42
43
44#include "mvsiz_p.inc"
45
46
47
48 INTEGER IXS(NIXS,*)
49 my_real x(3,*),tzinf,xx(8),yy(8), zz(8), coormin(3), coormax(3), ddmax
50 INTEGER BUFBRIC(*), NBRIC
51
52
53
54 INTEGER L
55 INTEGER NE
57 . dx1,dy1,dz1,
58 . dx3,dy3,dz3,
59 . dx4,dy4,dz4,
60 . dx6,dy6,dz6,
61 . dd1,dd2,dd3,dd4,dd,dd0,xmin,ymin,zmin,
62 . xmax,
ymax,zmax,tzinf0,gapsmax,
63 . bid,tzinf_st,marge,marge_st,gapv(mvsiz),
64 . diag(4)
65
66
67
68 IF(nbric==0)RETURN
69
70
71
72
73
74
75 l = 1
76 ne = bufbric(l)
77 xx(1:8) = x(1, ixs(2:9,ne) )
78 yy(1:8) = x(2, ixs(2:9,ne) )
79 zz(1:8) = x(3, ixs(2:9,ne) )
80
81 diag(1) = sqrt((xx(1)-xx(7))**2 + (yy(1)-yy(7))**2 + (zz(1)-zz(7))**2)
82 diag(2) = sqrt((xx(3)-xx(5))**2 + (yy(3)-yy(5))**2 + (zz(3)-zz(5))**2)
83 diag(3) = sqrt((xx(2)-xx(8))**2 + (yy(2)-yy(8))**2 + (zz(2)-zz(8))**2)
84 diag(4) = sqrt((xx(4)-xx(6))**2 + (yy(4)-yy(6))**2 + (zz(4)-zz(6))**2)
85
86 ddmax = maxval(diag(1:4))
87
88 DO l=2,nbric
89 ne = bufbric(l)
90 xx(1:8) = x(1, ixs(2:9,ne) )
91 yy(1:8) = x(2, ixs(2:9,ne) )
92 zz(1:8) = x(3, ixs(2:9,ne) )
93 diag(1) = sqrt((xx(1)-xx(7))**2 + (yy(1)-yy(7))**2 + (zz(1)-zz(7))**2)
94 diag(2) = sqrt((xx(3)-xx(5))**2 + (yy(3)-yy(5))**2 + (zz(3)-zz(5))**2)
95 diag(3) = sqrt((xx(2)-xx(8))**2 + (yy(2)-yy(8))**2 + (zz(2)-zz(8))**2)
96 diag(4) = sqrt((xx(4)-xx(6))**2 + (yy(4)-yy(6))**2 + (zz(4)-zz(6))**2)
97 dd = maxval(diag(1:4))
98 IF(dd>ddmax)THEN
99 ddmax = dd
100 ENDIF
101 ENDDO
102
103 tzinf = (one+five/hundred) * ddmax
104
105 RETURN
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)