28 SUBROUTINE ccoor3(JFT ,JLT ,X ,IXC ,GEO ,OFFG ,
29 2 OFF ,SIGY,PID,V,VR,VL1,VL2,VL3,VL4,
30 3 VRL1,VRL2,VRL3,VRL4,MAT,DT1C,THKE,THK0,NGL,
31 4 X1 ,X2 ,X3 ,X4 ,Y1 ,Y2 ,
32 5 Y3 ,Y4 ,Z1 ,Z2 ,Z3 ,Z4 )
36#include "implicit_f.inc"
50 INTEGER NGL(MVSIZ), IXC(NIXC,*),MAT(MVSIZ), PID(MVSIZ)
53 . x(3,*), geo(npropg,*), offg(*), off(*), sigy(*),
54 . v(3,*),vr(3,*),vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
55 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),vrl4(mvsiz,3),dt1c(*),thke(*),
56 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz), y1(mvsiz),
57 . y2(mvsiz), y3(mvsiz), y4(mvsiz), z1(mvsiz), z2(mvsiz),
58 . z3(mvsiz), z4(mvsiz) ,thk0(mvsiz)
62 INTEGER IXCTMP2,IXCTMP3,IXCTMP4,IXCTMP5
100 vl3(i,3)=v(3,ixctmp4)
101 vl4(i,1)=v(1,ixctmp5)
102 vl4(i,2)=v(2,ixctmp5)
103 vl4(i,3)=v(3,ixctmp5)
104 vrl1(i,1)=vr(1,ixctmp2)
105 vrl1(i,2)=vr(2,ixctmp2)
106 vrl1(i,3)=vr(3,ixctmp2)
107 vrl2(i,1)=vr(1,ixctmp3)
108 vrl2(i,2)=vr(2,ixctmp3)
109 vrl2(i,3)=vr(3,ixctmp3)
110 vrl3(i,1)=vr(1,ixctmp4)
111 vrl3(i,2)=vr(2,ixctmp4)
112 vrl3(i,3)=vr(3,ixctmp4)
113 vrl4(i,1)=vr(1,ixctmp5)
114 vrl4(i,2)=vr(2,ixctmp5)
115 vrl4(i,3)=vr(3,ixctmp5)
121 off(i) =
min(one,abs(offg(i)))
122 off_l =
min(off_l,offg(i))
164 1 DR ,PX1 ,PX2 ,PY1 ,PY2 ,
165 2 E1X ,E1Y ,E1Z ,E2X ,E2Y ,
166 3 E2Z ,E3X ,E3Y ,E3Z ,AREA ,
167 4 V13X ,V24X ,V13Y ,V24Y ,SMSTR ,
172#include "implicit_f.inc"
176#include "mvsiz_p.inc"
183 . X(3,*), OFFG(*), DR(3,*),
184 . E1X(*), E1Y(*), E1Z(*),
185 . E2X(*), E2Y(*), E2Z(*),E3X(*), E3Y(*), E3Z(*),
186 . SMSTR(*),AREA(*),PX1(*),PX2(*),PY1(*),PY2(*),
187 . V13X(*),V24X(*),V13Y(*),V24Y(*)
191 INTEGER I, J, II(9),NN(4)
193 . X0G2(MVSIZ),X0G3(MVSIZ),X0G4(MVSIZ),Y0G2(MVSIZ),
194 . Y0G3(MVSIZ),Y0G4(MVSIZ),Z0G2(MVSIZ),Z0G3(MVSIZ),Z0G4(MVSIZ),
195 . OFF_L,VG13(3),VG24(3),
196 . XL2(MVSIZ),XL3(MVSIZ),XL4(MVSIZ),(MVSIZ),YL3(MVSIZ),
197 . YL4(MVSIZ),UXYZ(MVSIZ,3,4),A_I(MVSIZ)
204 IF(abs(offg(i))==one)offg(i)=sign(two,offg(i))
205 uxyz(i,1:3,1:4)= zero
210 x0g2(i) = x(1,nn(2))-x(1,nn(1))
211 y0g2(i) = x(2,nn(2))-x(2,nn(1))
212 z0g2(i) = x(3,nn(2))-x(3,nn(1))
213 x0g3(i) = x(1,nn(3))-x(1,nn(1))
214 y0g3(i) = x(2,nn(3))-x(2,nn(1))
215 z0g3(i) = x(3,nn(3))-x(3,nn(1))
216 x0g4(i) = x(1,nn(4))-x(1,nn(1))
217 y0g4(i) = x(2,nn(4))-x(2,nn(1))
218 z0g4(i) = x(3,nn(4))-x(3,nn(1))
219 IF(abs(offg(i))==two)
THEN
220 uxyz(i,1,2) = x0g2(i)-smstr(ii(1)+i)
221 uxyz(i,2,2) = y0g2(i)-smstr(ii(2)+i)
222 uxyz(i,3,2) = z0g2(i)-smstr(ii
223 uxyz(i,1,3) = x0g3(i)-smstr(ii(4)+i)
224 uxyz(i,2,3) = y0g3(i)-smstr(ii(5)+i)
225 uxyz(i,3,3) = z0g3(i)-smstr(ii(6)+i)
226 uxyz(i,1,4) = x0g4(i)-smstr(ii(7)+i)
227 uxyz(i,2,4) = y0g4(i)-smstr(ii(8)+i)
228 uxyz(i,3,4) = z0g4(i)-smstr(ii(9)+i)
230 x0g2(i) = smstr(ii(1)+i)
231 y0g2(i) = smstr(ii(2)+i)
232 z0g2(i) = smstr(ii(3)+i)
233 x0g3(i) = smstr(ii(4)+i)
234 y0g3(i) = smstr(ii(5)+i)
235 z0g3(i) = smstr(ii(6)+i)
236 x0g4(i) = smstr(ii(7)+i)
237 y0g4(i) = smstr(ii(8)+i)
238 z0g4(i) = smstr(ii(9)+i)
241 smstr(ii(1)+i)= x0g2(i)
242 smstr(ii(2)+i)= y0g2(i)
243 smstr(ii(3)+i)= z0g2(i)
244 smstr(ii(4)+i)= x0g3(i)
245 smstr(ii(5)+i)= y0g3(i)
246 smstr(ii(6)+i)= z0g3(i)
247 smstr(ii(7)+i)= x0g4(i)
248 smstr(ii(8)+i)= y0g4(i)
249 smstr(ii(9)+i)= z0g4(i)
254 xl2(i)=e1x(i)*x0g2(i)+e1y(i)*y0g2(i)+e1z(i)*z0g2(i)
255 xl3(i)=e1x(i)*x0g3(i)+e1y(i)*y0g3(i)+e1z(i)*z0g3(i)
256 xl4(i)=e1x(i)*x0g4(i)+e1y(i)*y0g4(i)+e1z(i)*z0g4(i)
257 yl2(i)=e2x(i)*x0g2(i)+e2y(i)*y0g2(i)+e2z(i)*z0g2(i)
258 yl3(i)=e2x(i)*x0g3(i)+e2y(i)*y0g3(i)+e2z(i)*z0g3(i)
259 yl4(i)=e2x(i)*x0g4(i)+e2y(i)*y0g4(i)+e2z(i)*z0g4(i)
262 px1(i)= half*(yl2(i)-yl4(i))
263 py1(i)= half*(xl4(i)-xl2(i))
266 area(i)=
max(two*(py2(i)*px1(i)-py1(i)*px2(i)),em20)
267 a_i(i) = one / area(i)
271 vg13(1)=uxyz(i,1,1)-uxyz(i,1,3)
272 vg24(1)=uxyz(i,1,2)-uxyz(i,1,4)
273 vg13(2)=uxyz(i,2,1)-uxyz(i,2,3)
274 vg24(2)=uxyz(i,2,2)-uxyz(i,2,4)
275 vg13(3)=uxyz(i,3,1)-uxyz(i,3,3)
276 vg24(3)=uxyz(i,3,2)-uxyz(i,3,4)
278 v13x(i)=e1x(i)*vg13(1)+e1y(i)*vg13(2)+e1z(i)*vg13(3)
279 v24x(i)=e1x(i)*vg24(1)+e1y(i)*vg24(2)+e1z(i)*vg24(3)
280 v13y(i)=e2x(i)*vg13(1)+e2y(i)*vg13(2)+e2z(i)*vg13(3)
281 v24y(i)=e2x(i)*vg24(1)+e2y(i)*vg24(2)+e2z(i)*vg24(3)
291 off_l =
min(off_l,offg(i))
293 IF (off_l < zero)
THEN
295 IF (offg(i) < zero)
THEN
subroutine ccoort3(jft, jlt, x, ixc, offg, dr, px1, px2, py1, py2, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, area, v13x, v24x, v13y, v24y, smstr, nel)
subroutine ccoor3(jft, jlt, x, ixc, geo, offg, off, sigy, pid, v, vr, vl1, vl2, vl3, vl4, vrl1, vrl2, vrl3, vrl4, mat, dt1c, thke, thk0, ngl, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4)