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 ,
51#include "implicit_f.inc"
64 INTEGER JFT, JLT, ISMSTR, ILAW,IMAT,ITHK,NEL,IREP,NLAY
65 INTEGER IXTG(NIXTG,*),IPM(NPROPMI,*),NPF(*)
67 . PM(NPROPM,*),GEO(NPROPG,*) ,X(3,*) ,XREFTG(3,3,*),
68 . FOR(NEL,5) ,THK(*) ,EINT(JLT,2),GSTR(NEL,8),
69 . PX2G(*) ,PY2G(*) ,PX3G(*) ,PY3G(*) ,UVAR(*),
70 . X2S(*) ,X3S(*) ,Y2S(*) ,Y3S(*) ,OFF(*),
71 . DIR_A(NEL,*),DIR_B(NEL,*),SIGI(NEL,3),TF(*)
72 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
73 TYPE (MATPARAM_STRUCT_) ,
INTENT(IN) :: MAT_PARAM
77 INTEGER I, NT, I1, I2, I3,IDRAPE,IGTYP
80 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz),
81 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
82 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
83 . x1(mvsiz) , x2(mvsiz) , x3(mvsiz) ,x4(mvsiz) ,
84 . y1(mvsiz) , y2(mvsiz) , y3(mvsiz) ,y4(mvsiz) ,
85 . z1(mvsiz) , z2(mvsiz) , z3(mvsiz), z4(mvsiz) ,
area(mvsiz),
86 . px2(mvsiz), px3(mvsiz), py2(mvsiz), py3(mvsiz),
87 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),eyz(mvsiz),ezx(mvsiz),
88 . vl(3,3,mvsiz), xl(3,3,mvsiz)
90 .
DIMENSION(:) ,
POINTER :: dir1, dir2
93 idrape = elbuf_str%IDRAPE
94 igtyp = elbuf_str%IGTYP
102 x2(i) = x(1,i2)-x(1,i1)
103 y2(i) = x(2,i2)-x(2,i1)
104 z2(i) = x(3,i2)-x(3,i1)
105 x3(i) = x(1,i3)-x(1,i1)
106 y3(i) = x(2,i3)-x(2,i1)
107 z3(i) = x(3,i3)-x(3,i1)
111 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
112 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
113 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
116 xl(1,2,i) = e1x(i)*x2(i) + e1y(i)*y2(i) + e1z(i)*z2(i)
117 xl(2,2,i) = e2x(i)*x2(i) + e2y(i)*y2(i) + e2z(i)*z2(i)
118 xl(1,3,i) = e1x(i)*x3(i) + e1y(i)*y3(i) + e1z(i)*z3(i)
119 xl(2,3,i) = e2x(i)*x3(i) + e2y(i)*y3(i) + e2z(i)*z3(i)
123 x2(i) = xreftg(2,1,i) - xreftg(1,1,i)
124 y2(i) = xreftg(2,2,i) - xreftg(1,2,i)
125 z2(i) = xreftg(2,3,i) - xreftg(1,3,i)
126 x3(i) = xreftg(3,1,i) - xreftg(1,1,i)
127 y3(i) = xreftg(3,2,i) - xreftg(1,2,i)
128 z3(i) = xreftg(3,3,i) - xreftg(1,3,i)
132 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
133 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
134 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
140 vl(1,2,i) = e1x(i)*xl(1,2,i)+e2x(i)*xl(2,2,i)
141 vl(2,2,i) = e1y(i)*xl(1,2,i)+e2y(i)*xl(2,2,i)
142 vl(3,2,i) = e1z(i)*xl(1,2,i)+e2z(i)*xl(2,2,i)
143 vl(1,3,i) = e1x(i)*xl(1,3,i)+e2x(i)*xl(2,3,i)
144 vl(2,3,i) = e1y(i)*xl(1,3,i)+e2y(i)*xl(2,3,i)
145 vl(3,3,i) = e1z(i)*xl(1,3,i)+e2z(i)*xl(2,3,i)
148 fac = one / float(nitrs)
150 vl(1,2,i) = (vl(1,2,i) - x2(i))*fac
151 vl(2,2,i) = (vl(2,2,i) - y2(i))*fac
152 vl(3,2,i) = (vl(3,2,i) - z2(i))*fac
153 vl(1,3,i) = (vl(1,3,i) - x3(i))*fac
154 vl(2,3,i) = (vl(2,3,i) - y3(i))*fac
155 vl(3,3,i) = (vl(3,3,i) - z3(i))*fac
160 fac = float(nt) - one
163 x1(i) = xreftg(1,1,i) + fac*vl(1,1,i)
164 y1(i) = xreftg(1,2,i) + fac*vl(2,1,i)
165 z1(i) = xreftg(1,3,i) + fac*vl(3,1,i)
166 x2(i) = xreftg(2,1,i) + fac*vl(1,2,i)
167 y2(i) = xreftg(2,2,i) + fac*vl(2,2,i)
169 x3(i) = xreftg(3,1,i) + fac*vl(1,3,i)
170 y3(i) = xreftg(3,2,i) + fac*vl(2,3,i)
171 z3(i) = xreftg(3,3,i) + fac*vl(3,3,i)
175 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
176 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
177 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
179 CALL corth3(elbuf_str,dir_a ,dir_b ,jft ,jlt ,
181 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
182 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
183 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
187 . px2g ,py2g ,px3g ,py3g ,
188 . px2 ,py2 ,px3 ,py3 ,
189 . x2s ,y2s ,x3s ,y3s ,
190 . x1 ,x2 ,x3 ,y1 ,y2 ,
192 . e1x ,e2x ,e3x ,e1y ,e2y ,
193 . e3y ,e1z ,e2z ,e3z ,
area )
195 CALL cdkdefoi(jft ,jlt ,nel ,vl ,gstr ,
196 . px2 ,py2 ,px3 ,py3 ,
197 . e1x ,e2x ,e3x ,e1y ,e2y ,
198 . e3y ,e1z ,e2z ,e3z ,
199 . exx ,eyy ,exy ,eyz ,ezx )
202 . jft ,jlt ,ilaw ,ithk ,pm ,
203 . for ,thk ,eint ,gstr ,dir_a,
205 . nel ,sigi ,npf ,tf ,
206 .
area ,exx ,eyy ,exy ,imat )
213 . px2g ,py2g ,px3g ,py3g ,
214 . px2 ,py2 ,px3 ,py3 ,
215 . x2s ,y2s ,x3s ,y3s ,
216 . x1 ,x2 ,x3 ,y1 ,y2 ,
218 . e1x ,e2x ,e3x ,e1y ,e2y ,
219 . e3y ,e1z ,e2z ,e3z ,
area )
220 dir1 => elbuf_str%BUFLY(1)%DIRA
221 dir2 => elbuf_str%BUFLY(1)%DIRB
224 CALL cdkdefoi(jft ,jlt ,nel ,vl ,gstr ,
225 . px2 ,py2 ,px3 ,py3 ,
226 . e1x ,e2x ,e3x ,e1y ,e2y ,
227 . e3y ,e1z ,e2z ,e3z ,
228 . exx ,eyy ,exy ,eyz ,ezx )
231 . jft ,jlt ,ilaw ,ithk ,pm ,
232 . for ,thk ,eint ,gstr ,dir_a,
234 . nel ,sigi ,npf ,tf ,
235 .
area ,exx ,eyy ,exy ,imat )
subroutine cdkinit3(elbuf_str, group_param, ixtg, pm, x, geo, xmas, in, nvc, dtelem, xreftg, offset, nel, ithk, thk, isigsh, sigsh, stifn, stifr, partsav, v, ipart, mstg, intg, ptg, skew, ish3n, nsigsh, igeo, ipm, iuser, etnod, nshnod, sttg, ptsh3n, bufmat, sh3tree, mcp, mcps, temp, iparg, cpt_eltens, part_area, npf, tf, sh3trim, isubstack, stack, rnoise, drape, sh3ang, geo_stack, igeo_stack, strtg, perturb, iyldini, ele_area, nloc_dmg, idrape, drapeg, mat_param, glob_therm)