51
52
53
54 USE elbufdef_mod
55 use element_mod , only : nixs
56
57
58
59#include "implicit_f.inc"
60
61
62
63#include "mvsiz_p.inc"
64
65
66
67#include "com04_c.inc"
68#include "param_c.inc"
69
70
71
72 INTEGER, INTENT(IN) :: ISMSTR
73 INTEGER, INTENT(IN) :: NFT
74 INTEGER, INTENT(IN) :: MTN
75 INTEGER, INTENT(IN) :: JHBE
76 INTEGER, INTENT(IN) :: ISORTH
77 INTEGER, INTENT(INOUT) :: ISORTHG
78 INTEGER ICP, ICSIG, IKGEO, NEL
79 INTEGER ETAG(*),IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*),
80 . IXS(NIXS,*),IPM(NPROPMI,*),IGEO(NPROPGI,
81
83 . pm(npropm,*), geo(npropg,*), x(*),
84 . k11(9,mvsiz),k12(9,mvsiz),k13(9,mvsiz),k14(9,mvsiz),k15(9,mvsiz),
85 . k16(9,mvsiz),k22(9,mvsiz),k23(9,mvsiz),k24(9,mvsiz),k25(9,mvsiz),
86 . k26(9,mvsiz),k33(9,mvsiz),k34(9,mvsiz),k35(9,mvsiz),k36(9,mvsiz),
87 . k44(9,mvsiz),k45(9,mvsiz),k46(9,mvsiz),k55(9,mvsiz),k56(9,mvsiz),
88 . k66(9,mvsiz) ,offg(mvsiz) ,bufmat(*),k_diag(*) ,k_lt(*)
89 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
90
91
92
93 INTEGER NF1, I, IS, IAD0
94 INTEGER IADBUF, IKORTH, IBID, IUN, NLAY
95 INTEGER MXT(MVSIZ), NGL(MVSIZ), NGEO(MVSIZ)
97 . voln(mvsiz),
98 . aj1(mvsiz) , aj2(mvsiz) , aj3(mvsiz) ,
99 . aj4(mvsiz) , aj5(mvsiz) , aj6(mvsiz)
100
101 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
102 . NC5(MVSIZ), NC6(MVSIZ)
104 . bid(1),
105 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
106 . x5(mvsiz), x6(mvsiz),
107 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
108 . y5(mvsiz), y6(mvsiz),
109 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
110 . z5(mvsiz), z6(mvsiz),
111 . pxc1(mvsiz),pxc2(mvsiz),pxc3(mvsiz),pxc4(mvsiz),
112 . pyc1(mvsiz),pyc2(mvsiz),pyc3(mvsiz),pyc4(mvsiz),
113 . pzc1(mvsiz),pzc2(mvsiz),pzc3(mvsiz),pzc4(mvsiz),
114 . px1h(mvsiz),px2h(mvsiz),px3h(mvsiz),
115 . py1h(mvsiz),py2h(mvsiz),py3h(mvsiz),
116 . pz1h(mvsiz),pz2h(mvsiz),pz3h(mvsiz)
118 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
119 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
120 . r31(mvsiz),r32(mvsiz),r33(mvsiz),gama(mvsiz,6)
121
123 . volg(mvsiz),
124 . b1122(mvsiz),b1221(mvsiz),b2212(mvsiz),b1121(mvsiz),
125 . b1122h(mvsiz),b1221h(mvsiz),b2212h(mvsiz),b1121h(mvsiz),
126 . b1x(mvsiz,2),b1y(mvsiz,2),b2x(mvsiz,2),b2y(mvsiz,2),
127 . b1xh(mvsiz,2),b1yh(mvsiz,2),b2xh(mvsiz,2),b2yh(mvsiz,2),
128 . vzl(mvsiz),ji33(mvsiz)
129 TYPE(G_BUFEL_) ,POINTER :: GBUF
130 TYPE(L_BUFEL_) ,POINTER :: LBUF
132 . w_gauss(9,9),a_gauss(9,9)
133 DATA w_gauss /
134 1 2. ,0. ,0. ,
135 1 0. ,0. ,0. ,
136 1 0. ,0. ,0. ,
137 2 1. ,1. ,0. ,
138 2 0. ,0. ,0. ,
139 2 0. ,0. ,0. ,
140 3 0.555555555555556,0.888888888888889,0.555555555555556,
141 3 0. ,0. ,0. ,
142 3 0. ,0. ,0. ,
143 4 0.347854845137454,0.652145154862546,0.652145154862546,
144 4 0.347854845137454,0. ,0. ,
145 4 0. ,0. ,0. ,
146 5 0.236926885056189,0.478628670499366,0.568888888888889,
147 5 0.478628670499366,0.236926885056189,0. ,
148 5 0. ,0. ,0. ,
149 6 0.171324492379170,0.360761573048139,0.467913934572691,
150 6 0.467913934572691,0.360761573048139,0.171324492379170,
151 6 0. ,0. ,0. ,
152 7 0.129484966168870,0.279705391489277,0.381830050505119,
153 7 0.417959183673469,0.381830050505119,0.279705391489277,
154 7 0.129484966168870,0. ,0. ,
155 8 0.101228536290376,0.222381034453374,0.313706645877887,
156 8 0.362683783378362,0.362683783378362,0.313706645877887,
157 8 0.222381034453374,0.101228536290376,0. ,
158 9 0.081274388361574,0.180648160694857,0.260610696402935,
159 9 0.312347077040003,0.330239355001260,0.312347077040003,
160 9 0.260610696402935,0.180648160694857,0.081274388361574/
161 DATA a_gauss /
162 1 0. ,0. ,0. ,
163 1 0. ,0. ,0. ,
164 1 0. ,0. ,0. ,
165 2 -.577350269189626,0.577350269189626,0. ,
166 2 0. ,0. ,0. ,
167 2 0. ,0. ,0. ,
168 3 -.774596669241483,0. ,0.774596669241483,
169 3 0. ,0. ,0. ,
170 3 0. ,0. ,0. ,
171 4 -.861136311594053,-.339981043584856,0.339981043584856,
172 4 0.861136311594053,0. ,0. ,
173 4 0. ,0. ,0. ,
174 5 -.906179845938664,-.538469310105683,0. ,
175 5 0.538469310105683,0.906179845938664,0. ,
176 5 0. ,0. ,0. ,
177 6 -.932469514203152,-.661209386466265,-.238619186083197,
178 6 0.238619186083197,0.661209386466265,0.932469514203152,
179 6 0. ,0. ,0. ,
180 7 -.949107912342759,-.741531185599394,-.405845151377397,
181 7 0. ,0.405845151377397,0.741531185599394,
182 7 0.949107912342759,0. ,0. ,
183 8 -.960289856497536,-.796666477413627,-.525532409916329,
184 8 -.183434642495650,0.183434642495650,0.525532409916329,
185 8 0.796666477413627,0.960289856497536,0. ,
186 9 -.968160239507626,-.836031107326636,-.613371432700590,
187 9 -.324253423403809,0. ,0.324253423403809,
188 9 0.613371432700590,0.836031107326636,0.968160239507626/
189
191 . nu(mvsiz),nu1(mvsiz),hh(2,mvsiz),fac(mvsiz),c1,e0(mvsiz),
192 . dd(9,mvsiz),gg(mvsiz),dm(9,mvsiz),gm(9,mvsiz),dgm(9,mvsiz),
193 . dg(9,mvsiz),g33(9,mvsiz)
194
195
196
197
198 gbuf => elbuf_str%GBUF
199 nlay = elbuf_str%NLAY
200 iad0 = 1
201 IF (isorth > 0) iad0 = 1 + 6*nel
202 isorthg = 0
203 ikorth=0
204
205 nf1=nft+1
206
208 1 x, ixs(1,nf1),x1, x2,
209 2 x3, x4, x5, x6,
210 3 y1, y2, y3, y4,
211 4 y5, y6, z1, z2,
212 5 z3, z4, z5, z6,
213 6 gbuf%OFF, offg, gbuf%SMSTR,r11,
214 7 r12, r13, r21, r22,
215 8 r23, r31, r32, r33,
216 9 nc1, nc2, nc3, nc4,
217 a nc5, nc6, ngl, mxt,
218 b ngeo, k11, k12, k13,
219 c k14, k15, k16, k22,
220 d k23, k24, k25, k26,
221 e k33, k34, k35, k36,
222 f k44, k45, k46, k55,
223 g k56, k66, nel, ismstr)
224
225
226 DO i=1,nel
227 nu(i)=
min(half,pm(21,mxt(i)))
228 c1 =pm(32,mxt(i))
229 e0(i) =three*(one-two*nu(i))*c1
230 ENDDO
231
232 IF (icp==1) THEN
233 DO i=1,nel
234 nu1(i)=half
235 ENDDO
236 ELSEIF (icp==2) THEN
237 CALL s8zsigp3(1 ,nel ,gbuf%SIG,e0,gbuf%PLA,
238 2 fac ,gbuf%G_PLA,nel )
239 DO i=1,nel
240 nu1(i)=nu(i)+(half-nu(i))*fac(i)
241 ENDDO
242 ELSE
243 DO i=1,nel
244 nu1(i) =nu(i)
245 ENDDO
246 ENDIF
248 1 offg, voln, ngl, x1,
249 2 x2, x3, x4, x5,
250 3 x6, y1, y2, y3,
251 4 y4, y5, y6, z1,
252 5 z2, z3, z4, z5,
253 6 z6, pxc1, pxc2, pxc3,
254 7 pxc4, pyc1, pyc2, pyc3,
255 8 pyc4, pzc1, pzc2, pzc3,
256 9 pzc4, px1h, px2h, px3h,
257 a py1h, py2h, py3h, pz1h,
258 b pz2h, pz3h, aj1, aj2,
259 c aj3, aj4, aj5, aj6,
260 d ji33, b1x, b1y, b2y,
261 e b2x, b1122, b1221, b2212,
262 f b1121, b1xh, b1yh, b2xh,
263 g b2yh, b1122h, b1221h, b2212h,
264 h b1121h, vzl, volg, gbuf%SMSTR,
265 i gbuf%OFF, nel, ismstr)
266 IF (mtn>=28) THEN
267 iadbuf = ipm(7,mxt(1))
268 ELSE
269 iadbuf = 0
270 ENDIF
271
272 CALL mmats(1 ,nel ,pm ,mxt ,hh ,
273 . mtn ,ikorth ,ipm ,igeo ,gama ,
274 . bufmat(iadbuf) ,dm ,dgm ,gm ,
275 . jhbe ,gbuf%SIG ,bid ,nlay ,nel )
276
277 ibid=0
278 iun = 1
279 DO is=1,nlay
280 lbuf => elbuf_str%BUFLY(is)%LBUF(1,1,1)
281 DO i=1,nel
282 voln(i)=half*w_gauss(is,nlay)*(volg(i)+vzl(i)*a_gauss(is,nlay))
283 ENDDO
285 1 pm, mxt, hh, voln,
286 2 ibid, dd, gg, dg,
287 3 g33, dm, gm, dgm,
288 4 ikorth, lbuf%SIG,iun, iun,
289 5 is, nel, jhbe, mtn)
291 1 pxc1, pxc2, pxc3, pxc4,
292 2 pyc1, pyc2, pyc3, pyc4,
293 3 pzc1, pzc2, pzc3, pzc4,
294 4 px1h, px2h, px3h, py1h,
295 5 py2h, py3h, pz1h, pz2h,
296 6 pz3h, ji33, b1x, b1y,
297 7 b2y, b2x, b1122, b1221,
298 8 b2212, b1121, b1xh, b1yh,
299 9 b2xh, b2yh, b1122h, b1221h,
300 a b2212h, b1121h, dd, gg,
301 b voln, a_gauss(is,nlay),w_gauss(is,nlay),nu1,
302 c k11, k12, k13, k14,
303 d k15, k16, k22, k23,
304 e k24, k25, k26, k33,
305 f k34, k35, k36, k44,
306 g k45, k46, k55, k56,
307 h k66, nel)
308 ENDDO
309
310
311
312 IF (ikgeo>0) THEN
314 1 gbuf%SIG,volg, pxc1, pxc2,
315 2 pxc3, pxc4, pyc1, pyc2,
316 3 pyc3, pyc4, k11, k12,
317 4 k13, k14, k15, k16,
318 5 k22, k23, k24, k25,
319 6 k26, k33, k34, k35,
320 7 k36, k44, k45, k46,
321 8 k55, k56, k66, nel)
322 ENDIF
323
324
325
327 1 r11, r21, r31, r12,
328 2 r22, r32, r13, r23,
329 3 r33, k11, k12, k13,
330 4 k14, k15, k16, k22,
331 5 k23, k24, k25, k26,
332 6 k33, k34, k35, k36,
333 7 k44, k45, k46, k55,
334 8 k56, k66, x1, x2,
335 9 x3, x4, x5, x6,
336 a y1, y2, y3, y4,
337 b y5, y6, z1, z2,
338 c z3, z4, z5, z6,
339 d nel)
340
342 1 1, nel, ixs(1,nf1), etag, offg)
344 1 ixs(1,nf1),nel ,iddl ,ndof ,k_diag,
345 2 k_lt ,iadk ,jdik ,k11 ,k12 ,
346 3 k13 ,k14 ,k15 ,k16 ,k22 ,
347 4 k23 ,k24 ,k25 ,k26 ,k33 ,
348 5 k34 ,k35 ,k36 ,k44 ,k45 ,
349 6 k46 ,k55 ,k56 ,k66 ,offg )
350
351 RETURN
subroutine assem_s6(ixs, nel, iddl, ndof, k_diag, k_lt, iadk, jdik, k11, k12, k13, k14, k15, k16, k22, k23, k24, k25, k26, k33, k34, k35, k36, k44, k45, k46, k55, k56, k66, off)
subroutine mmats(jft, jlt, pm, mat, hh, mtn, iorth, ipm, igeo, gama, uparam, cc, cg, g33, jhbe, sig, eps, nppt, nel)
subroutine mmstifs(pm, mat, hh, vol, icsig, dd, gg, dg, g33, dm, gm, dgm, iorth, sig, ir, is, it, nel, jhbe, mtn)
subroutine s6ccumg3(r11, r21, r31, r12, r22, r32, r13, r23, r33, k11, k12, k13, k14, k15, k16, k22, k23, k24, k25, k26, k33, k34, k35, k36, k44, k45, k46, k55, k56, k66, x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6, nel)
subroutine s6ckgeo3(sig, vol, pxc1, pxc2, pxc3, pxc4, pyc1, pyc2, pyc3, pyc4, k11, k12, k13, k14, k15, k16, k22, k23, k24, k25, k26, k33, k34, k35, k36, k44, k45, k46, k55, k56, k66, nel)
subroutine s6clke3(pxc1, pxc2, pxc3, pxc4, pyc1, pyc2, pyc3, pyc4, pzc1, pzc2, pzc3, pzc4, px1h, px2h, px3h, py1h, py2h, py3h, pz1h, pz2h, pz3h, ji33, b1x, b1y, b2y, b2x, b1122, b1221, b2212, b1121, b1xh, b1yh, b2xh, b2yh, b1122h, b1221h, b2212h, b1121h, dd, gg, vol, zi, wi, nu, k11, k12, k13, k14, k15, k16, k22, k23, k24, k25, k26, k33, k34, k35, k36, k44, k45, k46, k55, k56, k66, nel)
subroutine s6rcoork(x, ixs, x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6, offg, off, sav, r11, r12, r13, r21, r22, r23, r31, r32, r33, nc1, nc2, nc3, nc4, nc5, nc6, ngl, mxt, ngeo, k11, k12, k13, k14, k15, k16, k22, k23, k24, k25, k26, k33, k34, k35, k36, k44, k45, k46, k55, k56, k66, nel, ismstr)
subroutine s8eoff(jft, jlt, ixs, etag, off)
subroutine s8zsigp3(lft, llt, sig, e0, defp, fac, g_pla, nel)
subroutine s6cderi3(nel, vol, geo, vzl, ngl, deltax, det, x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6)