36 1 JFT ,JLT ,ISMSTR,MTN ,ITHK ,
37 2 PM ,GEO ,IXC ,X ,XREFC ,
38 3 NLAY ,FOR ,THK ,EINT ,GSTR ,
39 4 PX1G ,PX2G ,PY1G ,PY2G ,X2S ,
40 5 Y2S ,X3S ,Y3S ,X4S ,Y4S ,
41 6 OFF ,UVAR ,IPM ,IMAT ,
42 7 IGEO ,NEL ,DIR_A ,DIR_B ,SIGI ,
48 use element_mod ,
only : nixc
52#include "implicit_f.inc"
65 INTEGER JFT, JLT, ISMSTR, MTN,,ITHK, NEL, ,NLAY
66 INTEGER IXC(NIXC,*),IGEO(,*),IPM(NPROPMI,*),NPF(*)
68 . PM(NPROPM,*),GEO(NPROPG,*) ,X(3,*) ,XREFC(4,3,*),
69 . FOR(NEL,5) ,THK(*) ,EINT(JLT,2),GSTR(NEL,8),
70 . PX1G(*) ,PX2G(*) ,PY1G(*) ,PY2G(*),
71 . X2S(*) ,Y2S(*) ,X3S(*) ,Y3S(*) ,X4S(*) ,
72 . Y4S(*) ,OFF(*) ,UVAR(NEL,*) ,
73 . dir_a(nel,*),dir_b(nel,*),sigi(nel,3),tf(*)
74 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
75 TYPE (MATPARAM_STRUCT_) ,
INTENT(IN) :: MAT_PARAM
79 INTEGER I, NT, I1, , I3, I4,IDRAPE,IGTYP
82 . x1(mvsiz) , x2(mvsiz) , x3(mvsiz) , x4(mvsiz) ,
83 . y1(mvsiz) , y2(mvsiz) , y3(mvsiz) , y4(mvsiz) ,
84 . z1(mvsiz) , z2(mvsiz) , z3(mvsiz) , z4(mvsiz) ,
85 . px1(mvsiz), px2(mvsiz), py1(mvsiz), py2(mvsiz),
86 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz),
area(mvsiz),
87 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
88 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
89 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),eyz(mvsiz),ezx(mvsiz),
90 . vl(3,4,mvsiz), xl(3,4,mvsiz)
92 .
DIMENSION(:) ,
POINTER :: dir1, dir2
96 idrape = elbuf_str%IDRAPE
97 igtyp = elbuf_str%IGTYP
106 x2(i) = x(1,i2) - x(1,i1)
107 y2(i) = x(2,i2) - x(2,i1)
108 z2(i) = x(3,i2) - x(3,i1)
109 x3(i) = x(1,i3) - x(1,i1)
110 y3(i) = x(2,i3) - x(2,i1)
111 z3(i) = x(3,i3) - x(3,i1)
112 x4(i) = x(1,i4) - x(1,i1)
113 y4(i) = x(2,i4) - x(2,i1)
114 z4(i) = x(3,i4) - x(3,i1)
118 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
119 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
120 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
123 xl(1,2,i) = e1x(i)*x2(i) + e1y(i)*y2(i) + e1z(i)*z2(i)
124 xl(2,2,i) = e2x(i)*x2(i) + e2y(i)*y2(i) + e2z(i)*z2(i)
125 xl(1,3,i) = e1x(i)*x3(i) + e1y(i)*y3(i) + e1z(i)*z3(i)
126 xl(2,3,i) = e2x(i)*x3(i) + e2y(i)*y3(i) + e2z(i)*z3(i)
127 xl(1,4,i) = e1x(i)*x4(i) + e1y(i)*y4(i) + e1z(i)*z4(i)
128 xl(2,4,i) = e2x(i)*x4(i) + e2y(i)*y4(i) + e2z(i)*z4(i)
134 x2(i) = xrefc(2,1,i) - xrefc(1,1,i)
135 y2(i) = xrefc(2,2,i) - xrefc(1,2,i)
136 z2(i) = xrefc(2,3,i) - xrefc(1,3,i)
137 x3(i) = xrefc(3,1,i) - xrefc(1,1,i)
138 y3(i) = xrefc(3,2,i) - xrefc(1,2,i)
139 z3(i) = xrefc(3,3,i) - xrefc(1,3,i)
140 x4(i) = xrefc(4,1,i) - xrefc(1,1,i)
141 y4(i) = xrefc(4,2,i) - xrefc(1,2,i)
142 z4(i) = xrefc(4,3,i) - xrefc(1,3,i)
146 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
147 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
148 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
155 vl(1,2,i) = e1x(i)*xl(1,2,i) + e2x(i)*xl(2,2,i)
156 vl(2,2,i) = e1y(i)*xl(1,2,i) + e2y(i)*xl(2,2,i)
157 vl(3,2,i) = e1z(i)*xl(1,2,i) + e2z(i)*xl(2,2,i)
158 vl(1,3,i) = e1x(i)*xl(1,3,i) + e2x(i)*xl(2,3,i)
159 vl(2,3,i) = e1y(i)*xl(1,3,i) + e2y(i)*xl(2,3,i)
160 vl(3,3,i) = e1z(i)*xl(1,3,i) + e2z(i)*xl(2,3,i)
161 vl(1,4,i) = e1x(i)*xl(1,4,i) + e2x(i)*xl(2,4,i)
162 vl(2,4,i) = e1y(i)*xl(1,4,i) + e2y(i)*xl(2,4,i)
163 vl(3,4,i) = e1z(i)*xl(1,4,i) + e2z(i)*xl(2,4,i)
166 fac = one / float(nitrs)
168 vl(1,2,i) = (vl(1,2,i) - x2(i)) * fac
169 vl(2,2,i) = (vl(2,2,i) - y2(i)) * fac
170 vl(3,2,i) = (vl(3,2,i) - z2(i)) * fac
171 vl(1,3,i) = (vl(1,3,i) - x3(i)) * fac
172 vl(2,3,i) = (vl(2,3,i) - y3(i)) * fac
173 vl(3,3,i) = (vl(3,3,i) - z3(i)) * fac
174 vl(1,4,i) = (vl(1,4,i) - x4(i)) * fac
175 vl(2,4,i) = (vl(2,4,i) - y4(i)) * fac
176 vl(3,4,i) = (vl(3,4,i) - z4(i)) * fac
181 IF (ismstr /= 1 .AND. ismstr /= 11)
THEN
185 fac = float(nt) - one
188 x1(i) = xrefc(1,1,i) + fac*vl(1,1,i)
189 y1(i) = xrefc(1,2,i) + fac*vl(2,1,i)
190 z1(i) = xrefc(1,3,i) + fac*vl(3,1,i)
191 x2(i) = xrefc(2,1,i) + fac*vl(1,2,i)
192 y2(i) = xrefc(2,2,i) + fac*vl(2,2,i)
193 z2(i) = xrefc(2,3,i) + fac*vl(3,2,i)
194 x3(i) = xrefc(3,1,i) + fac*vl(1,3,i)
195 y3(i) = xrefc(3,2,i) + fac*vl(2,3,i)
196 z3(i) = xrefc(3,3,i) + fac*vl(3,3,i)
197 x4(i) = xrefc(4,1,i) + fac*vl(1,4,i)
198 y4(i) = xrefc(4,2,i) + fac*vl(2,4,i)
199 z4(i) = xrefc(4,3,i) + fac*vl(3,4,i)
203 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
204 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
205 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
207 CALL corth3(elbuf_str,dir_a ,dir_b ,jft ,jlt ,
209 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
210 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
215 . px1g ,px2g ,py1g ,py2g ,
216 . px1 ,px2 ,py1 ,py2 ,
217 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
218 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
219 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
220 . x2s ,y2s ,x3s ,y3s ,x4s ,y4s )
222 CALL cdefoi(jft ,jlt ,vl ,gstr ,
223 . px1 ,px2 ,py1 ,py2 ,nel,
224 .
area ,exx ,eyy ,exy ,eyz ,ezx ,
225 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
227 . jft ,jlt ,mtn ,ithk ,pm ,
228 . for ,thk ,eint ,gstr ,dir_a,
230 . nel ,sigi ,npf ,tf ,
231 .
area ,exx ,eyy ,exy ,imat )
238 . px1g ,px2g ,py1g ,py2g ,
239 . px1 ,px2 ,py1 ,py2 ,
240 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
241 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
242 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
243 . x2s ,y2s ,x3s ,y3s ,x4s ,y4s )
245 dir1 => elbuf_str%BUFLY(1)%DIRA
246 dir2 => elbuf_str%BUFLY(1)%DIRB
249 CALL cdefoi(jft ,jlt ,vl ,gstr ,
250 . px1 ,px2 ,py1 ,py2 ,nel ,
251 .
area ,exx ,eyy ,exy ,eyz ,ezx ,
252 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
255 . jft,jlt,mtn,ithk,pm,
256 . for,thk,eint,gstr,dir1,
259 .
area,exx ,eyy ,exy, imat )