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