38 1 JFT ,JLT ,ISMSTR ,MTN ,ITHK ,
39 2 PM ,GEO ,IXTG ,X ,XREFTG ,
40 3 FOR ,THK ,EINT ,GSTR ,NLAY ,
41 4 PX1G ,PY1G ,PY2G ,X2S ,X3S ,
43 6 NEL ,DIR_A ,DIR_B ,SIGI ,NPF ,
44 7 TF ,IREP ,ISH3NFR,IMAT )
49 use element_mod ,
only : nixtg
53#include "implicit_f.inc"
66 INTEGER JFT,JLT,ISMSTR,MTN,ITHK,NEL,NLAY,IREP,ISH3NFR,IMAT
67 INTEGER IXTG(NIXTG,*),IPM(NPROPMI,*),NPF(*)
69 . PM(,*),GEO(NPROPG,*),X(3,*),XREFTG(3,3,*),
70 . FOR(NEL,5) ,THK(*) ,EINT(NEL,2),GSTR(NEL,8),
71 . PX1G(*) ,PY1G(*) ,PY2G(*),X2S(*) ,X3S(*) ,Y3S(*),
72 . UVAR(*),DIR_A(NEL,*),DIR_B(NEL,*),SIGI(NEL,3),TF(*),
73 . px1(mvsiz), py1(mvsiz), py2(mvsiz)
74 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
75 TYPE (MATPARAM_STRUCT_) ,
INTENT(IN) :: MAT_PARAM
79 INTEGER I, NT, I1, I2, I3,IDRAPE,IGTYP
81 my_real ecos(mvsiz),esin(mvsiz),
82 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz),
83 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
84 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
85 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),eyz(mvsiz),ezx(mvsiz),
86 . x1(mvsiz) , x2(mvsiz) , x3(mvsiz) ,x4(mvsiz) ,
87 . y1(mvsiz) , y2(mvsiz) , y3(mvsiz) ,y4(mvsiz) ,
88 . z1(mvsiz) , z2(mvsiz) , z3(mvsiz) ,z4(mvsiz) ,
89 . x31(mvsiz) , y31(mvsiz) , z31(mvsiz),
90 . vl(3,3,mvsiz), xl(3,3,mvsiz),
area(mvsiz),
91 . x2h(mvsiz), x3h(mvsiz), y3h(mvsiz),
92 . x2l(mvsiz), x3l(mvsiz), y3l(mvsiz)
93 my_real,
DIMENSION(:) ,
POINTER :: dir1, dir2
95 idrape = elbuf_str%IDRAPE
96 igtyp = elbuf_str%IGTYP
104 x2(i) = x(1,i2) - x(1,i1)
105 y2(i) = x(2,i2) - x(2,i1)
106 z2(i) = x(3,i2) - x(3,i1)
107 x3(i) = x(1,i3) - x(1,i1)
108 y3(i) = x(2,i3) - x(2,i1)
109 z3(i) = x(3,i3) - x(3,i1)
113 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
114 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
115 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
116 . x31, y31, z31 ,x2l ,x3l ,y3l )
119 xl(1,2,i) = e1x(i)*x2(i) + e1y(i)*y2(i) + e1z(i)*z2(i)
120 xl(2,2,i) = e2x(i)*x2(i) + e2y(i)*y2(i) + e2z(i)*z2(i)
121 xl(1,3,i) = e1x(i)*x3(i) + e1y(i)*y3(i) + e1z(i)*z3(i)
122 xl(2,3,i) = e2x(i)*x3(i) + e2y(i)*y3(i) + e2z(i)*z3(i)
125 x2(i) = xreftg(2,1,i) - xreftg(1,1,i)
126 y2(i) = xreftg(2,2,i) - xreftg(1,2,i)
127 z2(i) = xreftg(2,3,i) - xreftg(1,3,i)
128 x3(i) = xreftg(3,1,i) - xreftg(1,1,i)
129 y3(i) = xreftg(3,2,i) - xreftg(1,2,i)
130 z3(i) = xreftg(3,3,i) - xreftg(1,3,i)
134 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
135 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
136 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
137 . x31, y31, z31 ,x2l ,x3l ,y3l )
141 IF (ish3nfr ==0 )
CALL c3newve3(jft ,jlt ,ecos,esin,
area,
142 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
143 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
144 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
146 fac = one/float(nitrs)
151 vl(1,2,i) = e1x(i)*xl(1,2,i) + e2x(i)*xl(2,2,i)
152 vl(2,2,i) = e1y(i)*xl(1,2,i) + e2y(i)*xl(2,2,i)
153 vl(3,2,i) = e1z(i)*xl(1,2,i) + e2z(i)*xl(2,2,i)
154 vl(1,3,i) = e1x(i)*xl(1,3,i) + e2x(i)*xl(2,3,i)
155 vl(2,3,i) = e1y(i)*xl(1,3,i) + e2y(i)*xl(2,3,i)
156 vl(3,3,i) = e1z(i)*xl(1,3,i) + e2z(i)*xl(2,3,i)
158 vl(1,2,i) = (vl(1,2,i) - x2(i))*fac
159 vl(2,2,i) = (vl(2,2,i) - y2(i))*fac
160 vl(3,2,i) = (vl(3,2,i) - z2(i))*fac
161 vl(1,3,i) = (vl(1,3,i) - x3(i))*fac
162 vl(2,3,i) = (vl(2,3,i) - y3(i))*fac
163 vl(3,3,i) = (vl(3,3,i) - z3(i))*fac
166 IF (ismstr/=1 .AND. ismstr/=11)
THEN
170 fac = float(nt) - one
172 x1(i) = xreftg(1,1,i) + fac*vl(1,1,i)
173 y1(i) = xreftg(1,2,i) + fac*vl(2,1,i)
174 z1(i) = xreftg(1,3,i) + fac*vl(3,1,i)
175 x2(i) = xreftg(2,1,i) + fac*vl(1,2,i)
176 y2(i) = xreftg(2,2,i) + fac*vl(2,2,i)
177 z2(i) = xreftg(2,3,i) + fac*vl(3,2,i)
178 x3(i) = xreftg(3,1,i) + fac*vl(1,3,i)
179 y3(i) = xreftg(3,2,i) + fac*vl(2,3,i)
180 z3(i) = xreftg(3,3,i) + fac*vl(3,3,i)
184 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
185 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
186 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
187 . x31, y31, z31 ,x2l ,x3l ,y3l )
190 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
191 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
192 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
194 CALL corth3(elbuf_str,dir_a,dir_b,jft,jlt,
196 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
197 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
198 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z ,
205 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
206 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
207 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
208 CALL c3defoi(jft ,jlt ,nel ,vl ,gstr,
209 . px1 ,py1 ,py2 ,
area,
210 . exx ,eyy ,exy ,eyz ,ezx ,
211 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
213 IF (ish3nfr ==0 )
CALL shtroto3(jft,jlt,ecos,esin,gstr,nel)
216 . jft ,jlt ,mtn ,ithk ,pm ,
217 . for ,thk ,eint ,gstr ,dir_a ,
219 . nel ,sigi ,npf ,tf ,
220 .
area ,exx ,eyy ,exy ,imat )
231 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
232 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
233 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
234 dir1 => elbuf_str%BUFLY(1)%DIRA
235 dir2 => elbuf_str%BUFLY(1)%DIRB
238 CALL c3defoi(jft ,jlt ,nel ,vl ,gstr,
239 . px1 ,py1 ,py2 ,
area,
240 . exx ,eyy ,exy ,eyz ,ezx ,
241 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
243 IF (ish3nfr == 0)
CALL shtroto3(jft,jlt,ecos,esin,gstr,nel)
246 . jft ,jlt ,mtn ,ithk ,pm ,
247 . for ,thk ,eint ,gstr ,dir1 ,
249 . nel ,sigi ,npf ,tf ,
250 .
area ,exx ,eyy ,exy ,imat )
342 . PX1 ,PY1 ,PY2 ,AREA,
343 . EXX ,EYY ,EXY ,EYZ ,EZX ,
344 . E1X ,E2X ,E3X ,E1Y ,E2Y ,E3Y ,E1Z ,E2Z ,E3Z )
348#include "implicit_f.inc"
352#include "mvsiz_p.inc"
357 my_real vl(3,3,*),gstr(nel,8),px1(*),py1(*),py2(*),
358 . exx(mvsiz) , eyy(mvsiz) , exy(mvsiz) ,
359 . ezx(mvsiz) , eyz(mvsiz) ,
area(mvsiz),
360 . e1x(mvsiz) , e1y(mvsiz) , e1z(mvsiz) ,
361 . e2x(mvsiz) , e2y(mvsiz) , e2z(mvsiz) ,
362 . e3x(mvsiz) , e3y(mvsiz) , e3z(mvsiz)
368 . VX1(MVSIZ) , VX2(MVSIZ) , VX3(MVSIZ) ,
369 . VY1(MVSIZ) , VY2(MVSIZ) , VY3(MVSIZ) ,
370 . VZ1(MVSIZ) , VZ2(MVSIZ) , VZ3(MVSIZ) ,
371 . VX12(MVSIZ), VX13(MVSIZ), VX23(MVSIZ),
372 . vy12(mvsiz), vy13(mvsiz), vy23(mvsiz),
373 . vz12(mvsiz), vz13(mvsiz), vz23(mvsiz)
378 vx1(i)=e1x(i)*vl(1,1,i)+e1y(i)*vl(2,1,i)+e1z(i)*vl(3,1,i)
379 vx2(i)=e1x(i)*vl(1,2,i)+e1y(i)*vl(2,2,i)+e1z(i)*vl(3,2,i)
380 vx3(i)=e1x(i)*vl(1,3,i)+e1y(i)*vl(2,3,i)+e1z(i)*vl(3,3,i)
382 vy3(i)=e2x(i)*vl(1,3,i)+e2y(i)*vl(2,3,i)+e2z(i)*vl(3,3,i)
383 vy2(i)=e2x(i)*vl(1,2,i)+e2y(i)*vl(2,2,i)+e2z(i)*vl(3,2,i
384 vy1(i)=e2x(i)*vl(1,1,i)+e2y(i)*vl(2,1,i)+e2z(i)*vl(3,1,i)
386 vz1(i)=e3x(i)*vl(1,1,i)+e3y(i)*vl(2,1,i)+e3z(i)*vl(3,1,i)
387 vz2(i)=e3x(i)*vl(1,2,i)+e3y(i)*vl(2,2,i)+e3z(i)*vl(3,2,i)
388 vz3(i)=e3x(i)*vl(1,3,i)+e3y(i)*vl(2,3,i)+e3z(i)*vl(3,3,i)
392 vz12(i)=vz1(i) - vz2(i)
393 vz13(i)=vz1(i) - vz3(i)
394 vz23(i)=vz2(i) - vz3(i)
396 tmp1 = fourth * vz12(i) / (py1(i)+py2(i))
397 tmp2 = (py1(i) * vz1(i) + py2(i) * vz2(i)) / (py1(i)+py2(i))
398 tmp2 = fourth * (tmp2 - vz3(i)) / px1(i)
400 vx1(i) = vx1(i) - vz1(i) * tmp1
401 vx2(i) = vx2(i) - vz2(i) * tmp1
402 vx3(i) = vx3(i) - vz3(i) * tmp1
404 vy1(i) = vy1(i) - vz1(i) * tmp2
405 vy2(i) = vy2(i) - vz2(i) * tmp2
406 vy3(i) = vy3(i) - vz3(i) * tmp2
408 vx12(i)=vx1(i) - vx2(i)
409 vy12(i)=vy1(i) - vy2(i)
410 vx13(i)=vx1(i) - vx3(i)
411 vy13(i)=vy1(i) - vy3(i)
412 vx23(i)=vx2(i) - vx3(i)
413 vy23(i)=vy2(i) - vy3(i)
415 exx(i)=px1(i)*vx12(i)
416 eyy(i)=py1(i)*vy13(i) + py2(i)*vy23(i)
418 exy(i)=py1(i)*vx13(i) + py2(i)*vx23(i) + px1(i)*vy12(i)
419 eyz(i)=py1(i)*vz13(i) + py2(i)*vz23(i)
420 ezx(i)=px1(i)*vz12(i)
431 gstr(i,1)=gstr(i,1)+exx(i)
432 gstr(i,2)=gstr(i,2)+eyy(i)
433 gstr(i,3)=gstr(i,3)+exy(i)