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