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 ,
51#include "implicit_f.inc"
64 INTEGER JFT, JLT, ISMSTR, MTN,IMAT,ITHK, NEL, IREP,NLAY
65 INTEGER IXC(NIXC,*),IGEO(NPROPGI,*),IPM(NPROPMI,*),NPF(*)
67 . PM(NPROPM,*),GEO(NPROPG,*) ,X(3,*) ,XREFC(4,3,*),
68 . FOR(NEL,5) ,THK(*) ,EINT(JLT,2),GSTR(NEL,8),
69 . PX1G(*) ,PX2G(*) ,PY1G(*) ,PY2G(*),
70 . X2S(*) ,Y2S(*) ,X3S(*) ,(*) ,X4S(*) ,
71 . Y4S(*) ,OFF(*) ,UVAR(NEL,*) ,
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, , I4,IDRAPE,IGTYP
81 . x1(mvsiz) , x2(mvsiz) , x3(mvsiz) , x4(mvsiz) ,
82 . y1(mvsiz) , y2(mvsiz) , y3(mvsiz) , y4(mvsiz) ,
83 . z1(mvsiz) , z2(mvsiz) , z3(mvsiz) , z4(mvsiz) ,
84 . px1(mvsiz), px2(mvsiz), py1(mvsiz), py2(mvsiz),
85 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz),
area(mvsiz),
86 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
87 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
88 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),eyz(mvsiz),ezx(mvsiz),
89 . vl(3,4,mvsiz), xl(3,4,mvsiz)
91 .
DIMENSION(:) ,
POINTER :: dir1, dir2
95 idrape = elbuf_str%IDRAPE
96 igtyp = elbuf_str%IGTYP
105 x2(i) = x(1,i2) - x(1,i1)
106 y2(i) = x(2,i2) - x(2,i1)
107 z2(i) = x(3,i2) - x(3,i1)
108 x3(i) = x(1,i3) - x(1,i1)
109 y3(i) = x(2,i3) - x(2,i1)
110 z3(i) = x(3,i3) - x(3,i1)
111 x4(i) = x(1,i4) - x(1,i1)
112 y4(i) = x(2,i4) - x(2,i1)
113 z4(i) = x(3,i4) - x(3,i1)
117 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
118 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
119 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
122 xl(1,2,i) = e1x(i)*x2(i) + e1y(i)*y2(i) + e1z(i)*z2(i)
123 xl(2,2,i) = e2x(i)*x2(i) + e2y(i)*y2(i) + e2z(i)*z2(i)
124 xl(1,3,i) = e1x(i)*x3(i) + e1y(i)*y3(i) + e1z(i)*z3(i)
125 xl(2,3,i) = e2x(i)*x3(i) + e2y(i)*y3(i) + e2z(i)*z3(i)
126 xl(1,4,i) = e1x(i)*x4(i) + e1y(i)*y4(i) + e1z(i)*z4(i)
127 xl(2,4,i) = e2x(i)*x4(i) + e2y(i)*y4(i) + e2z(i)*z4(i)
133 x2(i) = xrefc(2,1,i) - xrefc(1,1,i)
134 y2(i) = xrefc(2,2,i) - xrefc(1,2,i)
135 z2(i) = xrefc(2,3,i) - xrefc(1,3,i)
136 x3(i) = xrefc(3,1,i) - xrefc(1,1,i)
137 y3(i) = xrefc(3,2,i) - xrefc(1,2,i)
138 z3(i) = xrefc(3,3,i) - xrefc(1,3,i)
139 x4(i) = xrefc(4,1,i) - xrefc(1,1,i)
140 y4(i) = xrefc(4,2,i) - xrefc(1,2,i)
141 z4(i) = xrefc(4,3,i) - xrefc(1,3,i)
145 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
146 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
147 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
154 vl(1,2,i) = e1x(i)*xl(1,2,i) + e2x(i)*xl(2,2,i)
155 vl(2,2,i) = e1y(i)*xl(1,2,i) + e2y(i)*xl(2,2,i)
156 vl(3,2,i) = e1z(i)*xl(1,2,i) + e2z(i)*xl(2,2,i)
157 vl(1,3,i) = e1x(i)*xl(1,3,i) + e2x(i)*xl(2,3,i)
158 vl(2,3,i) = e1y(i)*xl(1,3,i) + e2y(i)*xl(2,3,i)
159 vl(3,3,i) = e1z(i)*xl(1,3,i) + e2z(i)*xl(2,3,i)
160 vl(1,4,i) = e1x(i)*xl(1,4,i) + e2x(i)*xl(2,4,i)
161 vl(2,4,i) = e1y(i)*xl(1,4,i) + e2y(i)*xl(2,4,i)
162 vl(3,4,i) = e1z(i)*xl(1,4,i) + e2z(i)*xl(2,4,i)
165 fac = one / float(nitrs)
167 vl(1,2,i) = (vl(1,2,i) - x2(i)) * fac
168 vl(2,2,i) = (vl(2,2,i) - y2(i)) * fac
169 vl(3,2,i) = (vl(3,2,i) - z2(i)) * fac
170 vl(1,3,i) = (vl(1,3,i) - x3(i)) * fac
171 vl(2,3,i) = (vl(2,3,i) - y3(i)) * fac
172 vl(3,3,i) = (vl(3,3,i) - z3(i)) * fac
173 vl(1,4,i) = (vl(1,4,i) - x4(i)) * fac
174 vl(2,4,i) = (vl(2,4,i) - y4(i)) * fac
175 vl(3,4,i) = (vl(3,4,i) - z4(i)) * fac
180 IF (ismstr /= 1 .AND. ismstr /= 11)
THEN
184 fac = float(nt) - one
187 x1(i) = xrefc(1,1,i) + fac*vl(1,1,i)
188 y1(i) = xrefc(1,2,i) + fac*vl(2,1,i)
189 z1(i) = xrefc(1,3,i) + fac*vl(3,1,i)
190 x2(i) = xrefc(2,1,i) + fac*vl(1,2,i)
191 y2(i) = xrefc(2,2,i) + fac*vl(2,2,i)
192 z2(i) = xrefc(2,3,i) + fac*vl(3,2,i)
193 x3(i) = xrefc(3,1,i) + fac*vl(1,3,i)
194 y3(i) = xrefc(3,2,i) + fac*vl(2,3,i)
195 z3(i) = xrefc(3,3,i) + fac*vl(3,3,i)
196 x4(i) = xrefc(4,1,i) + fac*vl(1,4,i)
197 y4(i) = xrefc(4,2,i) + fac*vl(2,4,i)
198 z4(i) = xrefc(4,3,i) + fac*vl(3,4,i)
202 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
203 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
204 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
206 CALL corth3(elbuf_str,dir_a ,dir_b ,jft ,jlt ,
208 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
209 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
210 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
214 . px1g ,px2g ,py1g ,py2g ,
215 . px1 ,px2 ,py1 ,py2 ,
216 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
217 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
218 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
219 . x2s ,y2s ,x3s ,y3s ,x4s ,y4s )
221 CALL cdefoi(jft ,jlt ,vl ,gstr ,
222 . px1 ,px2 ,py1 ,py2 ,nel,
223 .
area ,exx ,eyy ,exy ,eyz ,ezx ,
224 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
226 . jft ,jlt ,mtn ,ithk ,pm ,
227 . for ,thk ,eint ,gstr ,dir_a,
229 . nel ,sigi ,npf ,tf ,
230 .
area ,exx ,eyy ,exy ,imat )
237 . px1g ,px2g ,py1g ,py2g ,
238 . px1 ,px2 ,py1 ,py2 ,
239 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
240 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
241 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
242 . x2s ,y2s ,x3s ,y3s ,x4s ,y4s )
244 dir1 => elbuf_str%BUFLY(1)%DIRA
245 dir2 => elbuf_str%BUFLY(1)%DIRB
248 CALL cdefoi(jft ,jlt ,vl ,gstr ,
249 . px1 ,px2 ,py1 ,py2 ,nel ,
250 .
area ,exx ,eyy ,exy ,eyz ,ezx ,
251 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
254 . jft,jlt,mtn,ithk,pm,
255 . for,thk,eint,gstr,dir1,
258 .
area,exx ,eyy ,exy, imat )