36 use element_mod , only : nixc
37
38
39
40#include "implicit_f.inc"
41
42
43
44#include "mvsiz_p.inc"
45
46
47
48#include "param_c.inc"
49
50
51
52 INTEGER MAT(MVSIZ), IXC(NIXC,*), JFT, JLT,NEL
53
55 . pm(npropm,*), sti(*), stir(*),smstr(*),
56 . px1(*), px2(*), py1(*), py2(*),
57 . x2(mvsiz), x3(mvsiz), x4(mvsiz),
area(mvsiz),
58 . y2(mvsiz), y3(mvsiz), y4(mvsiz), z2(mvsiz),thk0(mvsiz)
59
60
61
62 INTEGER I, II(4), MX
63
65 . young ,
66 . pxx, al2
67
68 mx = mat(jft)
69 young=pm(20,mx)
70
71 DO i=1,4
72 ii(i) = nel*(i-1)
73 ENDDO
74
75 DO i=jft,jlt
76 z2(i) = zero
77 px1(i) = smstr(ii(1)+i)
78 px2(i) = smstr(ii(2)+i)
79 py1(i) = smstr(ii(3)+i)
80 py2(i) = smstr(ii(4)+i)
81 x2(i) =-two*py1(i)
82 y2(i) = zero
83 x3(i) =-two*py2(i)
84 y3(i) = two*px2(i)
85 x4(i) = zero
86 y4(i) =-two*px1(i)
87 z2(i) = zero
88 area(i)= two*(py2(i)*px1(i)-py1(i)*px2(i))
89 ENDDO
90
91 DO i=jft,jlt
92 pxx =
max(px1(i)**2+py1(i)**2,px2(i)**2+py2(i)**2)
93 sti(i) = young * pxx * thk0(i) /
area(i)
94 stir(i)= zero
95 ENDDO
96
97 DO i=jft,jlt
98 IF (ixc(4,i) == ixc(5,i)) THEN
99 al2= (py1(i)+py2(i))**2
100 al2=
min(al2, px1(i)**2+py1(i)**2 )
101 al2= four *
min(al2, px2(i)**2+py2(i)**2 )
102 sti(i) = half *
area(i) * thk0(i) * young / al2
103 ENDIF
104 ENDDO
105
106 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)