36 1 JFT ,JLT ,ISMSTR,ILAW ,ITHK ,
37 2 PM ,GEO ,IXTG ,X ,XREFTG ,
38 3 FOR ,THK ,EINT ,GSTR ,
39 4 PX2G ,PY2G ,PX3G ,PY3G ,X2S ,
40 5 Y2S ,X3S ,Y3S ,OFF ,IMAT ,
42 7 NLAY ,DIR_A ,DIR_B ,SIGI ,NPF ,
48 use element_mod ,
only : nixtg
52#include "implicit_f.inc"
65 INTEGER JFT, JLT, ISMSTR, ILAW,IMAT,ITHK,NEL,IREP,NLAY
66 INTEGER IXTG(NIXTG,*),IPM(NPROPMI,*),NPF(*)
68 . PM(NPROPM,*),GEO(NPROPG,*) ,X(3,*) ,XREFTG(3,3,*),
69 . FOR(NEL,5) ,THK(*) ,EINT(JLT,2),GSTR(NEL,8),
70 . PX2G(*) ,PY2G(*) ,PX3G(*) ,(*) ,UVAR(*),
71 . (*) ,X3S(*) ,(*) ,Y3S(*) ,(*),
72 . DIR_A(NEL,*),DIR_B(NEL,*),SIGI(NEL,3),TF(*)
73 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
74 TYPE (MATPARAM_STRUCT_) ,
INTENT(IN) :: MAT_PARAM
78 INTEGER I, NT, I1, I2, I3,IDRAPE,IGTYP
81 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz),
82 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
83 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
84 . x1(mvsiz) , x2(mvsiz) , x3(mvsiz) ,x4(mvsiz) ,
85 . y1(mvsiz) , y2(mvsiz) , y3(mvsiz) ,y4(mvsiz) ,
86 . z1(mvsiz) , z2(mvsiz) , z3(mvsiz), z4(mvsiz) ,
area(mvsiz),
87 . px2(mvsiz), px3(mvsiz), py2(mvsiz), py3(mvsiz),
88 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),eyz(mvsiz),ezx(mvsiz),
89 . vl(3,3,mvsiz), xl(3,3,mvsiz
91 .
DIMENSION(:) ,
POINTER :: dir1, dir2
94 idrape = elbuf_str%IDRAPE
95 igtyp = elbuf_str%IGTYP
103 x2(i) = x(1,i2)-x(1,i1)
104 y2(i) = x(2,i2)-x(2,i1)
105 z2(i) = x(3,i2)-x(3,i1)
106 x3(i) = x(1,i3)-x(1,i1)
107 y3(i) = x(2,i3)-x(2,i1)
108 z3(i) = x(3,i3)-x(3,i1)
112 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
113 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
114 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
117 xl(1,2,i) = e1x(i)*x2(i) + e1y(i)*y2(i) + e1z(i)*z2(i)
118 xl(2,2,i) = e2x(i)*x2(i) + e2y(i)*y2(i) + e2z(i)*z2(i)
119 xl(1,3,i) = e1x(i)*x3(i) + e1y(i)*y3(i) + e1z(i
120 xl(2,3,i) = e2x(i)*x3(i) + e2y(i)*y3(i) + e2z(i)*z3(i)
124 x2(i) = xreftg(2,1,i) - xreftg(1,1,i)
125 y2(i) = xreftg(2,2,i) - xreftg(1,2,i)
126 z2(i) = xreftg(2,3,i) - xreftg(1,3,i)
127 x3(i) = xreftg(3,1,i) - xreftg(1,1,i)
128 y3(i) = xreftg(3,2,i) - xreftg(1,2,i)
129 z3(i) = xreftg(3,3,i) - xreftg(1,3,i)
133 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
134 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
135 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
141 vl(1,2,i) = e1x(i)*xl(1,2,i)+e2x(i)*xl(2,2,i)
142 vl(2,2,i) = e1y(i)*xl(1,2,i)+e2y(i)*xl(2,2,i)
143 vl(3,2,i) = e1z(i)*xl(1,2,i)+e2z(i)*xl(2,2,i)
144 vl(1,3,i) = e1x(i)*xl(1,3,i)+e2x(i)*xl(2,3,i)
145 vl(2,3,i) = e1y(i)*xl(1,3,i)+e2y(i)*xl(2,3,i)
146 vl(3,3,i) = e1z(i)*xl(1,3,i)+e2z(i)*xl(2,3,i)
149 fac = one / float(nitrs)
151 vl(1,2,i) = (vl(1,2,i) - x2(i))*fac
152 vl(2,2,i) = (vl(2,2,i) - y2(i))*fac
153 vl(3,2,i) = (vl(3,2,i) - z2(i))*fac
154 vl(1,3,i) = (vl(1,3,i) - x3(i))*fac
155 vl(2,3,i) = (vl(2,3,i) - y3(i))*fac
156 vl(3,3,i) = (vl(3,3,i) - z3(i))*fac
161 fac = float(nt) - one
164 x1(i) = xreftg(1,1,i) + fac*vl(1,1,i)
165 y1(i) = xreftg(1,2,i) + fac*vl(2,1,i)
166 z1(i) = xreftg(1,3,i) + fac*vl(3,1,i)
167 x2(i) = xreftg(2,1,i) + fac*vl(1,2,i)
168 y2(i) = xreftg(2,2,i) + fac
169 z2(i) = xreftg(2,3,i) + fac*vl(3,2,i
170 x3(i) = xreftg(3,1,i) + fac*vl(1,3,i)
171 y3(i) = xreftg(3,2,i) + fac*vl(2,3,i)
172 z3(i) = xreftg(3,3,i) + fac*vl(3,3,i)
176 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
177 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
178 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
180 CALL corth3(elbuf_str,dir_a ,dir_b ,jft ,jlt ,
182 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
183 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
184 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
188 . px2g ,py2g ,px3g ,py3g ,
189 . px2 ,py2 ,px3 ,py3 ,
190 . x2s ,y2s ,x3s ,y3s ,
191 . x1 ,x2 ,x3 ,y1 ,y2 ,
193 . e1x ,e2x ,e3x ,e1y ,e2y ,
194 . e3y ,e1z ,e2z ,e3z ,
area )
196 CALL cdkdefoi(jft ,jlt ,nel ,vl ,gstr ,
197 . px2 ,py2 ,px3 ,py3 ,
198 . e1x ,e2x ,e3x ,e1y ,e2y ,
199 . e3y ,e1z ,e2z ,e3z ,
200 . exx ,eyy ,exy ,eyz ,ezx )
203 . jft ,jlt ,ilaw ,ithk ,pm ,
204 . for ,thk ,eint ,gstr ,dir_a,
206 . nel ,sigi ,npf ,tf ,
207 .
area ,exx ,eyy ,exy ,imat )
214 . px2g ,py2g ,px3g ,py3g ,
215 . px2 ,py2 ,px3 ,py3 ,
216 . x2s ,y2s ,x3s ,y3s ,
217 . x1 ,x2 ,x3 ,y1 ,y2 ,
219 . e1x ,e2x ,e3x ,e1y ,e2y ,
220 . e3y ,e1z ,e2z ,e3z ,
area )
221 dir1 => elbuf_str%BUFLY(1)%DIRA
222 dir2 => elbuf_str%BUFLY(1)%DIRB
225 CALL cdkdefoi(jft ,jlt ,nel ,vl ,gstr ,
226 . px2 ,py2 ,px3 ,py3 ,
227 . e1x ,e2x ,e3x ,e1y ,e2y ,
228 . e3y ,e1z ,e2z ,e3z ,
229 . exx ,eyy ,exy ,eyz ,ezx )
232 . jft ,jlt ,ilaw ,ithk ,pm ,
233 . for ,thk ,eint ,gstr ,dir_a,
235 . nel ,sigi ,npf ,tf ,
236 .
area ,exx ,eyy ,exy ,imat )