52
53
54
55 USE elbufdef_mod
56 use element_mod , only : nixs
57
58
59
60#include "implicit_f.inc"
61
62
63
64#include "mvsiz_p.inc"
65
66
67
68#include "com04_c.inc"
69#include "param_c.inc"
70
71
72
73 INTEGER, INTENT(IN) :: JLAG
74 INTEGER, INTENT(IN) :: NFT
75 INTEGER, INTENT(IN) :: MTN
76 INTEGER, INTENT(IN) :: NPT
77 INTEGER, INTENT(IN) :: ISMSTR
78 INTEGER, INTENT(IN) :: JHBE
79 INTEGER, INTENT(IN) :: IREP
80 INTEGER, INTENT(IN) :: ISORTH
81 INTEGER IXS(NIXS,*),IXS10(6,*), IKGEO
82
83 INTEGER NEL ,IPM(NPROPMI,*),IGEO(NPROPGI,*),
84 . ETAG(*),IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*)
85
87 . pm(npropm,*), geo(npropg,*), x(*),
88 . k11(9,mvsiz),k12(9,mvsiz),k13(9,mvsiz),k14(9,mvsiz),k15(9,mvsiz),
89 . k16(9,mvsiz),k17(9,mvsiz),k18(9,mvsiz),k19(9,mvsiz),k10(9,mvsiz),
90 . k22(9,mvsiz),k23(9,mvsiz),k24(9,mvsiz),k25(9,mvsiz),k26(9,mvsiz),
91 . k27(9,mvsiz),k28(9,mvsiz),k29(9,mvsiz),k20(9,mvsiz),k33(9,mvsiz),
92 . k34(9,mvsiz),k35(9,mvsiz),k36(9,mvsiz),k37(9,mvsiz),k38(9,mvsiz),
93 . k39(9,mvsiz),k30(9,mvsiz),k44(9,mvsiz),k45(9,mvsiz),k46(9,mvsiz),
94 . k47(9,mvsiz),k48(9,mvsiz),k49(9,mvsiz),k40(9,mvsiz),k55(9,mvsiz),
95 . k56(9,mvsiz),k57(9,mvsiz),k58(9,mvsiz),k59(9,mvsiz),k50(9,mvsiz),
96 . k66(9,mvsiz),k67(9,mvsiz),k68(9,mvsiz),k69(9,mvsiz),k60(9,mvsiz),
97 . k77(9,mvsiz),k78(9,mvsiz),k79(9,mvsiz),k70(9,mvsiz),k88(9,mvsiz),
98 . k89(9,mvsiz),k80(9,mvsiz),k99(9,mvsiz),k90(9,mvsiz),k00(9,mvsiz),
99 . offg(mvsiz) ,bufmat(*),k_diag(*) ,k_lt(*)
100 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
101
102
103
104 INTEGER NF1, IP, NF2, I,J
105 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ)
107 . rx(mvsiz) , ry(mvsiz) , rz(mvsiz) ,
108 . sx(mvsiz) , sy(mvsiz) , sz(mvsiz) ,
109 . tx(mvsiz) , ty(mvsiz) , tz(mvsiz) ,
110 . e1x(mvsiz) , e1y(mvsiz) , e1z(mvsiz) ,
111 . e2x(mvsiz) , e2y(mvsiz) , e2z(mvsiz) ,
112 . e3x(mvsiz) , e3y(mvsiz) , e3z(mvsiz) ,
113 . voln(mvsiz), deltax(mvsiz), deltax2(mvsiz),volg(mvsiz)
114
115 INTEGER NC(MVSIZ,10),IADBUF,IKORTH,IBID,IUN
117 . volp(mvsiz,5),
118 . xx(mvsiz,10), yy(mvsiz,10), zz(mvsiz,10),
119 .
120 . px(mvsiz,10,5),py(mvsiz,10,5),pz(mvsiz,10,5),
121 . nx(mvsiz,10,5),
122 . wip(5,5), alph(5,5), beta(5,5),bid(mvsiz)
123 DATA wip / 1. ,0. ,0. ,0. ,0. ,
124 2 0. ,0. ,0. ,0. ,0. ,
125 3 0. ,0. ,0. ,0. ,0. ,
126 4 0.25,0.25,0.25,0.25,0. ,
127 5 0.45,0.45,0.45,0.45,-0.8/
128
130 . hh(2,mvsiz),dd(9,mvsiz),gg(mvsiz),dm(9,mvsiz),gm(9,mvsiz),
131 . dgm(9,mvsiz),dg(9,mvsiz),g33(9,mvsiz),gama(mvsiz,6)
132 TYPE(G_BUFEL_) ,POINTER :: GBUF
133 TYPE(L_BUFEL_) ,POINTER :: LBUF
134 double precision
135 . voldp(mvsiz,5)
136
137
138
139
140 gbuf => elbuf_str%GBUF
141 DO ip=1,3
142 DO j=1,5
143 alph(j,ip)=zero
144 beta(j,ip)=zero
145 END DO
146 END DO
147 alph(1,4)=zep5854102
148 alph(2,4)=zep5854102
149 alph(3,4)=zep5854102
150 alph(4,4)=zep5854102
151 alph(5,4)=zero
152 alph(1,5)=half
153 alph(2,5)=half
154 alph(3,5)=half
155 alph(4,5)=half
156 alph(5,5)=fourth
157 beta(1,4)=zep1381966
158 beta(2,4)=zep1381966
159 beta(3,4)=zep1381966
160 beta(4,4)=zep1381966
161 beta(5,4)=zero
162 beta(1,5)=one_over_6
163 beta(2,5)=one_over_6
164 beta(3,5)=one_over_6
165 beta(4,5)=one_over_6
166 beta(5,5)=fourth
167 IF (isorth>0) THEN
168 ikorth=1
169 ELSE
170 ikorth=0
171 ENDIF
172
173 nf1=nft+1
174 nf2=nf1-numels8
175
177 1 x, ixs(1,nf1), ixs10(1,nf2),xx,
178 2 yy, zz, gbuf%OFF, offg,
179 3 gbuf%SMSTR, nc, ngl, mxt,
180 4 ngeo, k11, k12, k13,
181 5 k14, k15, k16, k17,
182 6 k18, k19, k10, k22,
183 7 k23, k24, k25, k26,
184 8 k27, k28, k29, k20,
185 9 k33, k34, k35, k36,
186 a k37, k38, k39, k30,
187 b k44, k45, k46, k47,
188 c k48, k49, k40, k55,
189 d k56, k57, k58, k59,
190 e k50, k66, k67, k68,
191 f k69, k60, k77, k78,
192 g k79, k70, k88, k89,
193 h k80, k99, k90, k00,
194 i nel, ismstr)
195
197 1 offg, volp, ngl, deltax,
198 2 deltax2, xx, yy, zz,
199 3 px, py, pz, nx,
200 4 rx, ry, rz, sx,
201 5 sy, sz, tx, ty,
202 6 tz, wip(1,npt), alph(1,npt),beta(1,npt),
203 7 voln, volg, voldp, nc,
204 8 gbuf%SMSTR, gbuf%OFF, nel, npt,
205 9 ismstr, jlag)
207 1 rx, ry, rz, sx,
208 2 sy, sz, tx, ty,
209 3 tz, e1x, e2x, e3x,
210 4 e1y, e2y, e3y, e1z,
211 5 e2z, e3z, nel)
212 IF (isorth == 0) THEN
213 DO i=1,nel
214 gama(i,1) = one
215 gama(i,2) = zero
216 gama(i,3) = zero
217 gama(i,4) = zero
218 gama(i,5) = one
219 gama(i,6) = zero
220 ENDDO
221 ELSE
223 1 rx, ry, rz, sx,
224 2 sy, sz, tx, ty,
225 3 tz, e1x, e2x, e3x,
226 4 e1y, e2y, e3y, e1z,
227 5 e2z, e3z, gbuf%GAMA,gama,
228 6 nel, irep)
230 + e1y,e2y ,e3y ,e1z,e2z,e3z)
231 ENDIF
232 IF (mtn>=28) THEN
233 iadbuf = ipm(7,mxt(1))
234 ELSE
235 iadbuf = 1
236 ENDIF
237 CALL mmats(1 ,nel ,pm ,mxt ,hh ,
238 . mtn ,ikorth ,ipm ,igeo ,gama ,
239 . bufmat(iadbuf) ,dm ,dgm ,gm ,
240 . jhbe ,gbuf%SIG ,bid ,npt ,nel )
241 ibid = 0
242
243
244
245 iun=1
246 DO ip=1,npt
247 lbuf => elbuf_str%BUFLY(1)%LBUF(ip,1,1)
248
250 1 pm, mxt, hh, volp(1,ip),
251 2 ibid, dd, gg, dg,
252 3 g33, dm, gm, dgm,
253 4 ikorth, lbuf%SIG, iun, iun,
254 5 ip, nel, jhbe, mtn)
256 1 px(1,1,ip),py(1,1,ip),pz(1,1,ip),dd,
257 2 gg, dg, g33, ikorth,
258 3 k11, k12, k13, k14,
259 4 k15, k16, k17, k18,
260 5 k19, k10, k22, k23,
261 6 k24, k25, k26, k27,
262 7 k28, k29, k20, k33,
263 8 k34, k35, k36, k37,
264 9 k38, k39, k30, k44,
265 a k45, k46, k47, k48,
266 b k49, k40, k55, k56,
267 c k57, k58, k59, k50,
268 d k66, k67, k68, k69,
269 e k60, k77, k78, k79,
270 f k70, k88, k89, k80,
271 g k99, k90, k00, nel)
272
273
274
275 IF (ikgeo>0) THEN
277 1 lbuf%SIG, volp(1,ip),px(1,1,ip),py(1,1,ip),
278 2 pz(1,1,ip),k11, k12, k13,
279 3 k14, k15, k16, k17,
280 4 k18, k19, k10, k22,
281 5 k23, k24, k25, k26,
282 6 k27, k28, k29, k20,
283 7 k33, k34, k35, k36,
284 8 k37, k38, k39, k30,
285 9 k44, k45, k46, k47,
286 a k48, k49, k40, k55,
287 b k56, k57, k58, k59,
288 c k50, k66, k67, k68,
289 d k69, k60, k77, k78,
290 e k79, k70, k88, k89,
291 f k80, k99, k90, k00,
292 g nel)
293 ENDIF
294 ENDDO
295
297 1 1, nel, ixs(1,nf1),ixs10(1,nf2), etag, offg)
299 1 ixs(1,nf1),ixs10(1,nf2),nel,iddl ,ndof ,
300 2 k_diag,k_lt ,iadk ,jdik ,k11 ,
301 3 k12 ,k13 ,k14 ,k15 ,k16 ,
302 4 k17 ,k18 ,k19 ,k10 ,k22 ,
303 5 k23 ,k24 ,k25 ,k26 ,k27 ,
304 6 k28 ,k29 ,k20 ,k33 ,k34 ,
305 7 k35 ,k36 ,k37 ,k38 ,k39 ,
306 8 k30 ,k44 ,k45 ,k46 ,k47 ,
307 9 k48 ,k49 ,k40 ,k55 ,k56 ,
308 a k57 ,k58 ,k59 ,k50 ,k66 ,
309 b k67 ,k68 ,k69 ,k60 ,k77 ,
310 c k78 ,k79 ,k70 ,k88 ,k89 ,
311 d k80 ,k99 ,k90 ,k00 ,offg )
312
313 RETURN
subroutine assem_s10(ixs, ixs10, nel, iddl, ndof, k_diag, k_lt, iadk, jdik, k11, k12, k13, k14, k15, k16, k17, k18, k19, k10, k22, k23, k24, k25, k26, k27, k28, k29, k20, k33, k34, k35, k36, k37, k38, k39, k30, k44, k45, k46, k47, k48, k49, k40, k55, k56, k57, k58, k59, k50, k66, k67, k68, k69, k60, k77, k78, k79, k70, k88, k89, k80, k99, k90, k00, 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 morthlock3(lft, llt, gama, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
subroutine s10coork(x, ixs, ixs10, xx, yy, zz, offg, off, sav, nc, ngl, mxt, ngeo, k11, k12, k13, k14, k15, k16, k17, k18, k19, k10, k22, k23, k24, k25, k26, k27, k28, k29, k20, k33, k34, k35, k36, k37, k38, k39, k30, k44, k45, k46, k47, k48, k49, k40, k55, k56, k57, k58, k59, k50, k66, k67, k68, k69, k60, k77, k78, k79, k70, k88, k89, k80, k99, k90, k00, nel, ismstr)
subroutine s10cumg3(px, py, pz, dd, gg, dg, g33, iksup, k11, k12, k13, k14, k15, k16, k17, k18, k19, k10, k22, k23, k24, k25, k26, k27, k28, k29, k20, k33, k34, k35, k36, k37, k38, k39, k30, k44, k45, k46, k47, k48, k49, k40, k55, k56, k57, k58, k59, k50, k66, k67, k68, k69, k60, k77, k78, k79, k70, k88, k89, k80, k99, k90, k00, nel)
subroutine s10eoff(jft, jlt, ixs, ixs10, etag, off)
subroutine s10kgeo3(sig, vol, px, py, pz, k11, k12, k13, k14, k15, k16, k17, k18, k19, k10, k22, k23, k24, k25, k26, k27, k28, k29, k20, k33, k34, k35, k36, k37, k38, k39, k30, k44, k45, k46, k47, k48, k49, k40, k55, k56, k57, k58, k59, k50, k66, k67, k68, k69, k60, k77, k78, k79, k70, k88, k89, k80, k99, k90, k00, nel)
subroutine sorthdir3(rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, gama0, gama, nel, irep)
subroutine s10deri3(vol, ngl, xx, yy, zz, px, py, pz, nx, rx, ry, rz, sx, sy, sz, tx, ty, tz, volu, voln, elbuf_str, volg)
subroutine sreploc3(rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)