36
37
38
39#include "implicit_f.inc"
40
41
42
43 INTEGER NEL
44
46 . tthick
48 . f1x(*),f2x(*),f3x(*),f4x(*),f5x(*),f6x(*),f7x(*),f8x(*),
49 . f1y(*),f2y(*),f3y(*),f4y(*),f5y(*),f6y(*),f7y(*),f8y(*),
50 . f1z(*),f2z(*),f3z(*),f4z(*),f5z(*),f6z(*),f7z(*),f8z(*),
51 . r1x(nel),r2x(nel),r3x(nel),r4x(nel),
52 . r5x(nel),r6x(nel),r7x(nel),r8x(nel),
53 . r1y(nel),r2y(nel),r3y(nel),r4y(nel),
54 . r5y(nel),r6y(nel),r7y(nel),r8y(nel),
55 . r1z(nel),r2z(nel),r3z(nel),r4z(nel),
56 . r5z(nel),r6z(nel),r7z(nel),r8z(nel),rxx(nel),ryy(nel),rzz(nel)
57
58
59
60 INTEGER I
61
63 . mxx(nel),myy(nel),mzz(nel)
65 . myz,mzy,mzx,mxz,mxy,myx,fxx,fyy,fzz,fa,fb,rax,rbx,ray,rby,
66 . d1,d2,dd
67
68 DO i=1,nel
69 mxy = r1x(i)*f1y(i)+r2x(i)*f2y(i)+r3x(i)*f3y(i)+r4x(i)*f4y(i)
70 . +r5x(i)*f5y(i)+r6x(i)*f6y(i)+r7x(i)*f7y(i)+r8x(i)*f8y(i)
71 myx = r1y(i)*f1x(i)+r2y(i)*f2x(i)+r3y(i)*f3x(i)+r4y(i)*f4x(i)
72 . +r5y(i)*f5x(i)+r6y(i)*f6x(i)+r7y(i)*f7x(i)+r8y(i)*f8x(i)
73 mzz(i) = mxy - myx
74
75
76
77 fyy = mxy/rxx(i)
78 fxx =-myx/ryy(i)
79
80 f1x(i) = f1x(i) - fxx
81 f2x(i) = f2x(i) - fxx
82 f3x(i) = f3x(i) + fxx
83 f4x(i) = f4x(i) + fxx
84 f5x(i) = f5x(i) - fxx
85 f6x(i) = f6x(i) - fxx
86 f7x(i) = f7x(i) + fxx
87 f8x(i) = f8x(i) + fxx
88
89 f1y(i) = f1y(i) + fyy
90 f2y(i) = f2y(i) - fyy
91 f3y(i) = f3y(i) - fyy
92 f4y(i) = f4y(i) + fyy
93 f5y(i) = f5y(i) + fyy
94 f6y(i) = f6y(i) - fyy
95 f7y(i) = f7y(i) - fyy
96 f8y(i) = f8y(i) + fyy
97
98
99
100
101 IF(tthick >zero)THEN
102 myz = r1y(i)*f1z(i)+r2y(i)*f2z(i)+r3y(i)*f3z(i)+r4y(i)*f4z(i)
103 . +r5y(i)*f5z(i)+r6y(i)*f6z(i)+r7y(i)*f7z(i)+r8y(i)*f8z(i)
104 mzy = tthick*half*(-f1y(i)-f2y(i)-f3y(i)-f4y(i)
105 . +f5y(i)+f6y(i)+f7y(i)+f8y(i))
106 mxx(i) = myz - mzy
107
108 mzx = tthick*half*(-f1x(i)-f2x(i)-f3x(i)-f4x(i)
109 . +f5x(i)+f6x(i)+f7x(i)+f8x(i))
110 mxz = r1x(i)*f1z(i)+r2x(i)*f2z(i)+r3x(i)*f3z(i)+r4x(i)*f4z(i)
111 . +r5x(i)*f5z(i)+r6x(i)*f6z(i)+r7x(i)*f7z(i)+r8x(i)*f8z(i)
112 myy(i) = mzx - mxz
113 ELSE
114 myz = r1y(i)*f1z(i)+r2y(i)*f2z(i)+r3y(i)*f3z(i)+r4y(i)*f4z(i)
115 . +r5y(i)*f5z(i)+r6y(i)*f6z(i)+r7y(i)*f7z(i)+r8y(i)*f8z(i)
116 mzy = r1z(i)*f1y(i)+r2z(i)*f2y(i)+r3z(i)*f3y(i)+r4z(i)*f4y(i)
117 . +r5z(i)*f5y(i)+r6z(i)*f6y(i)+r7z(i)*f7y(i)+r8z(i)*f8y(i)
118 mxx(i) = myz - mzy
119 mzx = r1z(i)*f1x(i)+r2z(i)*f2x(i)+r3z(i)*f3x(i)+r4z(i)*f4x(i)
120 . +r5z(i)*f5x(i)+r6z(i)*f6x(i)+r7z(i)*f7x(i)+r8z(i)*f8x(i)
121 mxz = r1x(i)*f1z(i)+r2x(i)*f2z(i)+r3x(i)*f3z(i)+r4x(i)*f4z(i)
122 . +r5x(i)*f5z(i)+r6x(i)*f6z(i)+r7x(i)*f7z(i)+r8x(i)*f8z(i)
123 myy(i) = mzx - mxz
124 ENDIF
125
126 rax = r1x(i) + r5x(i) - r3x(i) - r7x(i)
127 rbx = r4x(i) + r8x(i) - r2x(i) - r6x(i)
128 ray = r1y(i) + r5y(i) - r3y(i) - r7y(i)
129 rby = r4y(i) + r8y(i) - r2y(i) - r6y(i)
130 d1 = -mxx(i)*rbx - myy(i)*rby
131 d2 = mxx(i)*rax + myy(i)*ray
132 dd = ray*rbx - rax*rby
133 fa = d1 / dd
134 fb = d2 / dd
135
136 f1z(i) = f1z(i) + fa
137 f2z(i) = f2z(i) - fb
138 f3z(i) = f3z(i) - fa
139 f4z(i) = f4z(i) + fb
140 f5z(i) = f5z(i) + fa
141 f6z(i) = f6z(i) - fb
142 f7z(i) = f7z(i) - fa
143 f8z(i) = f8z(i) + fb
144
145 ENDDO
146
147 RETURN