44 1 LFT ,LLT ,NFT ,NEL ,IXS ,
45 2 PM ,GEO ,IPM ,IGEO ,X ,
47 4 D ,MS ,IN ,TF ,NPF ,
48 5 BUFMAT ,IPARG ,IPARTS ,PARTSAV ,MAT_PARAM,
49 6 FSKY ,FR_WAVE ,IADS ,EANI ,STIFN ,
50 7 STIFR ,FX ,FY ,FZ ,IFAILURE,
51 8 MTN ,IGTYP ,NPT ,JSMS ,MSSA ,
52 9 DMELS ,ITASK ,IOUTPRT ,JTHE ,TABLE ,
53 A IDTMINS ,DTFACS ,DTMINS)
62 use element_mod ,
only : nixs
66#include "implicit_f.inc"
85 TYPE(timer_),
INTENT(INOUT) :: TIMERS
86 INTEGER LFT, LLT,NEL,NFT,MTN,IGTYP,IFAILURE,NPT, JSMS,IOUTPRT,JTHE
87 INTEGER IXS(NIXS,*), IPARG(*), NPF(*),IADS(8,*),
88 . IPARTS(*), IGEO(NPROPGI,*), IPM(NPROPMI,*),ITASK
89 INTEGER ,
INTENT(IN) :: IDTMINS
90 my_real ,
INTENT(IN) :: DTFACS
91 my_real ,
INTENT(IN) :: DTMINS
95 . pm(npropm,*), geo(npropg,*), x(*), a(*), v(*), ms(*), w(*),
96 . ar(*), vr(*), in(*),d(*),tf(*), bufmat(*),fr_wave(*),
97 . partsav(*),stifn(*), stifr(*), fsky(*),eani(*),
98 . fx(mvsiz,8),fy(mvsiz,8),fz(mvsiz,8),
100 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_STR
101 TYPE (TTABLE) ,
DIMENSION(NTABLE) :: TABLE
102 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
106 INTEGER I,J,NF1,NUPARAM,IG,IGT,
109 INTEGER IMAT(MVSIZ),SID(MVSIZ),IPROP(MVSIZ),NC(MVSIZ,8)
111 . mx(mvsiz,8),my(mvsiz,8) , mz(mvsiz,8),
112 . sti(mvsiz),stir(mvsiz), viscm(mvsiz) ,viscr(mvsiz)
114 . off(mvsiz) ,fr_w_e(mvsiz),
115 . xx(mvsiz,8), yy(mvsiz,8), zz(mvsiz,8),
116 . ux(mvsiz,8), uy(mvsiz,8), uz(mvsiz,8),
117 . vx(mvsiz,8), vy(mvsiz,8), vz(mvsiz,8),
118 . vrx(mvsiz,8),vry(mvsiz,8),vrz(mvsiz,8),sig_loc(6,nel),
119 . eint_loc(mvsiz),vol_loc(mvsiz),off_loc(mvsiz),rho_loc(mvsiz)
120 TYPE(g_bufel_) ,
POINTER :: GBUF
122 .
DIMENSION(:),
POINTER :: UVAR
129 GBUF => elbuf_str%GBUF
130 uvar => elbuf_str%GBUF%VAR
139 CALL sucoor3(ixs(1,nf1),x ,v,vr,w,d,fr_wave ,fr_w_e ,
140 . xx ,yy ,zz, ux ,uy ,uz ,
141 . vx ,vy ,vz, vrx ,vry ,vrz,
142 . gbuf%OFF,off, nc,sid,imat,iprop)
143 nuvar = elbuf_str%GBUF%G_NUVAR
144 nuparam = ipm(9,imat(1))
149 nuvarp=nint(geo(25,ig))
158 sig_loc(1,i) = gbuf%SIG(ii(1)+i)
159 sig_loc(2,i) = gbuf%SIG(ii(2)+i)
160 sig_loc(3,i) = gbuf%SIG(ii(3)+i)
161 sig_loc(4,i) = gbuf%SIG(ii(4)+i)
162 sig_loc(5,i) = gbuf%SIG(ii(5)+i)
163 sig_loc(6,i) = gbuf%SIG(ii(6)+i)
164 eint_loc(i) = gbuf%EINT(i)
165 vol_loc(i) = gbuf%VOL(i)
166 off_loc(i) = gbuf%OFF(i)
167 rho_loc(i) = gbuf%RHO(i)
170 IF (userl_avail>0)
THEN
171 CALL eng_userlib_suser(igtyp,
172 1 nel ,nuvar ,iprop(1),imat(1),sid ,tt ,dt1 ,
173 2 eint_loc,vol_loc,uvar,fr_w_e,off_loc,rho_loc,sig_loc ,
174 3 xx(1,1),xx(1,2),xx(1,3),xx(1,4),xx(1,5),xx(1,6),xx(1,7),xx(1,8),
175 4 yy(1,1),yy(1,2),yy(1,3),yy(1,4),yy(1,5),yy(1,6),yy(1,7),yy(1,8),
176 5 zz(1,1),zz(1,2),zz(1,3),zz(1,4),zz(1,5),zz(1,6),zz(1,7),zz(1,8),
177 6 ux(1,1),ux(1,2),ux(1,3),ux(1,4),ux(1,5),ux(1,6),ux(1,7),ux(1,8),
178 7 uy(1,1),uy(1,2),uy(1,3),uy(1,4),uy(1,5),uy(1,6),uy(1,7),uy(1,8),
179 8 uz(1,1),uz(1,2),uz(1,3),uz(1,4),uz(1,5),uz(1,6),uz(1,7),uz(1,8),
180 9 vx(1,1),vx(1,2),vx(1,3),vx(1,4),vx(1,5),vx(1,6),vx(1,7),vx(1,8),
181 a vy(1,1),vy(1,2),vy(1,3),vy(1,4),vy(1,5),vy(1,6),vy(1,7),vy(1,8),
182 b vz(1,1),vz(1,2),vz(1,3),vz(1,4),vz(1,5),vz(1,6),vz(1,7),vz(1,8),
183 c vrx(1,1),vrx(1,2),vrx(1,3),vrx(1,4),
184 c vrx(1,5),vrx(1,6),vrx(1,7),vrx(1,8),
185 d vry(1,1),vry(1,2),vry(1,3),vry(1,4),
186 d vry(1,5),vry(1,6),vry(1,7),vry(1,8),
187 e vrz(1,1),vrz(1,2),vrz(1,3),vrz(1,4),
188 e vrz(1,5),vrz(1,6),vrz(1,7),vrz(1,8),
189 f fx(1,1),fx(1,2),fx(1,3),fx(1,4),fx(1,5),fx(1,6),fx(1,7),fx(1,8),
190 g fy(1,1),fy(1,2),fy(1,3),fy(1,4),fy(1,5),fy(1,6),fy(1,7),fy(1,8),
191 h fz(1,1),fz(1,2),fz(1,3),fz(1,4),fz(1,5),fz(1,6),fz(1,7),fz(1,8),
192 i mx(1,1),mx(1,2),mx(1,3),mx(1,4),mx(1,5),mx(1,6),mx(1,7),mx(1,8),
193 j my(1,1),my(1,2),my(1,3),my(1,4),my(1,5),my(1,6),my(1,7),my(1,8),
194 k mz(1,1),mz(1,2),mz(1,3),mz(1,4),mz(1,5),mz(1,6),mz(1,7),mz(1,8),
195 l sti ,stir ,viscm ,viscr)
198 1 gbuf%FILL,sti, fx(1,1), fx(1,2),
199 2 fx(1,3), fx(1,4), fx(1,5), fx(1,6),
200 3 fx(1,7), fx(1,8), fy(1,1), fy(1,2),
201 4 fy(1,3), fy(1,4), fy(1,5), fy(1,6),
202 5 fy(1,7), fy(1,8), fz(1,1), fz(1,2),
203 6 fz(1,3), fz(1,4), fz(1,5), fz(1,6),
204 7 fz(1,7), fz(1,8), nel)
206 1 gbuf%FILL,stir, mx(1,1), mx(1,2),
207 2 mx(1,3), mx(1,4), mx(1,5), mx(1,6),
208 3 mx(1,7), mx(1,8), my(1,1), my(1,2),
209 4 my(1,3), my(1,4), my(1,5), my(1,6),
210 5 my(1,7), my(1,8), mz(1,1), mz(1,2),
211 6 mz(1,3), mz(1,4), mz(1,5), mz(1,6),
212 7 mz(1,7), mz(1,8), nel)
217 option=
'/PROP/USER1 - SOLID'
218 size=len_trim(option)
219 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
224 gbuf%SIG(ii(1)+i) = sig_loc(1,i)
225 gbuf%SIG(ii(2)+i) = sig_loc(2,i)
226 gbuf%SIG(ii(3)+i) = sig_loc(3,i)
227 gbuf%SIG(ii(4)+i) = sig_loc(4,i)
228 gbuf%SIG(ii(5)+i) = sig_loc(5,i)
229 gbuf%SIG(ii(6)+i) = sig_loc(6,i)
230 gbuf%EINT(i) = eint_loc(i)
231 gbuf%VOL(i) = vol_loc(i)
232 gbuf%OFF(i) = off_loc(i)
233 gbuf%RHO(i) = rho_loc(i)
236 ELSEIF(igtyp==30)
THEN
238 sig_loc(1,i) = gbuf%SIG(ii(1)+i)
239 sig_loc(2,i) = gbuf%SIG(ii(2)+i)
240 sig_loc(3,i) = gbuf%SIG(ii(3)+i)
241 sig_loc(4,i) = gbuf%SIG(ii(4)+i)
242 sig_loc(5,i) = gbuf%SIG(ii(5)+i)
243 sig_loc(6,i) = gbuf%SIG(ii(6)+i)
244 eint_loc(i) = gbuf%EINT(i)
245 vol_loc(i) = gbuf%VOL(i)
246 off_loc(i) = gbuf%OFF(i)
247 rho_loc(i) = gbuf%RHO(i)
249 IF (userl_avail>0)
THEN
250 CALL eng_userlib_suser(igtyp,
251 1 nel ,nuvar ,iprop(1),imat(1),sid ,tt ,dt1 ,
252 2 eint_loc,vol_loc,uvar,fr_w_e,off_loc,rho_loc,sig_loc ,
253 3 xx(1,1),xx(1,2),xx(1,3),xx(1,4),xx(1,5),xx(1,6),xx(1,7),xx(1,8),
254 4 yy(1,1),yy(1,2),yy(1,3),yy(1,4),yy(1,5),yy(1,6),yy(1,7),yy(1,8),
255 5 zz(1,1),zz(1,2),zz(1,3),zz(1,4),zz(1,5),zz(1,6),zz(1,7),zz(1,8),
256 6 ux(1,1),ux(1,2),ux(1,3),ux(1,4),ux(1,5),ux(1,6),ux(1,7),ux(1,8),
257 7 uy(1,1),uy(1,2),uy(1,3),uy(1,4),uy(1,5),uy(1,6),uy(1,7),uy(1,8),
258 8 uz(1,1),uz(1,2),uz(1,3),uz(1,4),uz(1,5),uz(1,6),uz(1,7),uz(1,8),
259 9 vx(1,1),vx(1,2),vx(1,3),vx(1,4),vx(1,5),vx(1,6),vx(1,7),vx(1,8),
260 a vy(1,1),vy(1,2),vy(1,3),vy(1,4),vy(1,5),vy(1,6),vy(1,7),vy(1,8),
261 b vz(1,1),vz(1,2),vz(1,3),vz(1,4),vz(1,5),vz(1,6),vz(1,7),vz(1,8),
262 c vrx(1,1),vrx(1,2),vrx(1,3),vrx(1,4),
263 c vrx(1,5),vrx(1,6),vrx(1,7),vrx(1,8),
264 d vry(1,1),vry(1,2),vry(1,3),vry(1,4),
265 d vry(1,5),vry(1,6),vry(1,7),vry(1,8),
266 e vrz(1,1),vrz(1,2),vrz(1,3),vrz(1,4),
267 e vrz(1,5),vrz(1,6),vrz(1,7),vrz(1,8),
268 f fx(1,1),fx(1,2),fx(1,3),fx(1,4),fx(1,5),fx(1,6),fx(1,7),fx(1,8),
269 g fy(1,1),fy(1,2),fy(1,3),fy(1,4),fy(1,5),fy(1,6),fy(1,7),fy(1,8),
270 h fz(1,1),fz(1,2),fz(1,3),fz(1,4),fz(1,5),fz(1,6),fz(1,7),fz(1,8),
271 i mx(1,1),mx(1,2),mx(1,3),mx(1,4),mx(1,5),mx(1,6),mx(1,7),mx(1,8),
272 j my(1,1),my(1,2),my(1,3),my(1,4),my(1,5),my(1,6),my(1,7),my(1,8),
273 k mz(1,1),mz(1,2),mz(1,3),mz(1,4),mz(1,5),mz(1,6),mz(1,7),mz(1,8),
274 l sti ,stir ,viscm ,viscr)
277 1 gbuf%FILL,sti, fx(1,1), fx(1,2),
278 2 fx(1,3), fx(1,4), fx(1,5), fx(1,6),
279 3 fx(1,7), fx(1,8), fy(1,1), fy(1,2),
280 4 fy(1,3), fy(1,4), fy(1,5), fy(1,6),
281 5 fy(1,7), fy(1,8), fz(1,1), fz(1,2),
282 6 fz(1,3), fz(1,4), fz(1,5), fz(1,6),
283 7 fz(1,7), fz(1,8), nel)
285 1 gbuf%FILL,stir, mx(1,1), mx(1,2),
286 2 mx(1,3), mx(1,4), mx(1,5), mx(1,6),
287 3 mx(1,7), mx(1,8), my(1,1), my(1,2),
288 4 my(1,3), my(1,4), my(1,5), my(1,6),
289 5 my(1,7), my(1,8), mz(1,1), mz(1,2),
290 6 mz(1,3), mz(1,4), mz(1,5), mz(1,6),
291 7 mz(1,7), mz(1,8), nel)
296 option=
'/PROP/USER2 - SOLID'
297 size=len_trim(option)
298 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
303 gbuf%SIG(ii(1)+i) = sig_loc(1,i)
304 gbuf%SIG(ii(2)+i) = sig_loc(2,i)
305 gbuf%SIG(ii(3)+i) = sig_loc(3,i)
306 gbuf%SIG(ii(4)+i) = sig_loc(4,i)
307 gbuf%SIG(ii(5)+i) = sig_loc(5,i)
308 gbuf%SIG(ii(6)+i) = sig_loc(6,i)
309 gbuf%EINT(i) = eint_loc(i)
310 gbuf%VOL(i) = vol_loc(i)
311 gbuf%OFF(i) = off_loc(i)
312 gbuf%RHO(i) = rho_loc(i)
315 ELSEIF(igtyp==31)
THEN
317 sig_loc(1,i) = gbuf%SIG(ii(1)+i)
318 sig_loc(2,i) = gbuf%SIG(ii(2)+i)
319 sig_loc(3,i) = gbuf%SIG(ii(3)+i)
320 sig_loc(4,i) = gbuf%SIG(ii(4)+i)
321 sig_loc(5,i) = gbuf%SIG(ii(5)+i)
322 sig_loc(6,i) = gbuf%SIG(ii(6)+i)
323 eint_loc(i) = gbuf%EINT(i)
324 vol_loc(i) = gbuf%VOL(i)
325 off_loc(i) = gbuf%OFF(i)
326 rho_loc(i) = gbuf%RHO(i)
328 IF (userl_avail>0)
THEN
329 CALL eng_userlib_suser(igtyp,
330 1 nel ,nuvar ,iprop(1),imat(1),sid ,tt ,dt1 ,
331 2 eint_loc,vol_loc,uvar,fr_w_e,off_loc,rho_loc,sig_loc ,
332 3 xx(1,1),xx(1,2),xx(1,3),xx(1,4),xx(1,5),xx(1,6),xx(1,7),xx(1,8),
333 4 yy(1,1),yy(1,2),yy(1,3),yy(1,4),yy(1,5),yy(1,6),yy(1,7),yy(1,8),
334 5 zz(1,1),zz(1,2),zz(1,3),zz(1,4),zz(1,5),zz(1,6),zz(1,7),zz(1,8),
335 6 ux(1,1),ux(1,2),ux(1,3),ux(1,4),ux(1,5),ux(1,6),ux(1,7),ux(1,8),
336 7 uy(1,1),uy(1,2),uy(1,3),uy(1,4),uy(1,5),uy(1,6),uy(1,7),uy(1,8),
337 8 uz(1,1),uz(1,2),uz(1,3),uz(1,4),uz(1,5),uz(1,6),uz(1,7),uz(1,8),
338 9 vx(1,1),vx(1,2),vx(1,3),vx(1,4),vx(1,5),vx(1,6),vx(1,7),vx(1,8),
339 a vy(1,1),vy(1,2),vy(1,3),vy(1,4),vy(1,5),vy(1,6),vy(1,7),vy(1,8),
340 b vz(1,1),vz(1,2),vz(1,3),vz(1,4),vz(1,5),vz(1,6),vz(1,7),vz(1,8),
341 c vrx(1,1),vrx(1,2),vrx(1,3),vrx(1,4),
342 c vrx(1,5),vrx(1,6),vrx(1,7),vrx(1,8),
343 d vry(1,1),vry(1,2),vry(1,3),vry(1,4),
344 d vry(1,5),vry(1,6),vry(1,7),vry(1,8),
345 e vrz(1,1),vrz(1,2),vrz(1,3),vrz(1,4),
346 e vrz(1,5),vrz(1,6),vrz(1,7),vrz(1,8),
347 f fx(1,1),fx(1,2),fx(1,3),fx(1,4),fx(1,5),fx(1,6),fx(1,7),fx(1,8),
348 g fy(1,1),fy(1,2),fy(1,3),fy(1,4),fy(1,5),fy(1,6),fy(1,7),fy(1,8),
349 h fz(1,1),fz(1,2),fz(1,3),fz(1,4),fz(1,5),fz(1,6),fz(1,7),fz(1,8),
350 i mx(1,1),mx(1,2),mx(1,3),mx(1,4),mx(1,5),mx(1,6),mx(1,7),mx(1,8),
351 j my(1,1),my(1,2),my(1,3),my(1,4),my(1,5),my(1,6),my(1,7),my(1,8),
352 k mz(1,1),mz(1,2),mz(1,3),mz(1,4),mz(1,5),mz(1,6),mz(1,7),mz(1,8),
353 l sti ,stir ,viscm ,viscr)
356 1 gbuf%FILL,sti, fx(1,1), fx(1,2),
357 2 fx(1,3), fx(1,4), fx(1,5), fx(1,6),
358 3 fx(1,7), fx(1,8), fy(1,1), fy(1,2),
359 4 fy(1,3), fy(1,4), fy(1,5), fy(1,6),
360 5 fy(1,7), fy(1,8), fz(1,1), fz(1,2),
361 6 fz(1,3), fz(1,4), fz(1,5), fz(1,6),
362 7 fz(1,7), fz(1,8), nel)
364 1 gbuf%FILL,stir, mx(1,1), mx(1,2),
365 2 mx(1,3), mx(1,4), mx(1,5), mx(1,6),
366 3 mx(1,7), mx(1,8), my(1,1), my(1,2),
367 4 my(1,3), my(1,4), my(1,5), my(1,6),
368 5 my(1,7), my(1,8), mz(1,1), mz(1,2),
369 6 mz(1,3), mz(1,4), mz(1,5), mz(1,6),
370 7 mz(1,7), mz(1,8), nel)
375 option=
'/PROP/USER3 - SOLID'
376 size=len_trim(option)
377 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
382 gbuf%SIG(ii(1)+i) = sig_loc(1,i)
383 gbuf%SIG(ii(2)+i) = sig_loc(2,i)
384 gbuf%SIG(ii(3)+i) = sig_loc(3,i)
385 gbuf%SIG(ii(4)+i) = sig_loc(4,i)
386 gbuf%SIG(ii(5)+i) = sig_loc(5,i)
387 gbuf%SIG(ii(6)+i) = sig_loc(6,i)
388 gbuf%EINT(i) = eint_loc(i)
389 gbuf%VOL(i) = vol_loc(i)
390 gbuf%OFF(i) = off_loc(i)
391 gbuf%RHO(i) = rho_loc(i)
394 ELSEIF (igtyp == 43)
THEN
404 1 elbuf_str ,iout ,iprop(1),imat(1),sid ,tt ,dt1 ,fr_w_e,
405 2 xx(1,1),xx(1,2),xx(1,3),xx(1,4),xx(1,5),xx(1,6),xx(1,7),xx(1,8),
406 3 yy(1,1),yy(1,2),yy(1,3),yy(1,4),yy(1,5),yy(1,6),yy(1,7),yy(1,8),
407 4 zz(1,1),zz(1,2),zz(1,3),zz(1,4),zz(1,5),zz(1,6),zz(1,7),zz(1,8),
408 5 ux(1,1),ux(1,2),ux(1,3),ux(1,4),ux(1,5),ux(1,6),ux(1,7),ux(1,8),
409 6 uy(1,1),uy(1,2),uy(1,3),uy(1,4),uy(1,5),uy(1,6),uy(1,7),uy(1,8),
410 7 uz(1,1),uz(1,2),uz(1,3),uz(1,4),uz(1,5),uz(1,6),uz(1,7),uz(1,8),
411 8 vx(1,1),vx(1,2),vx(1,3),vx(1,4),vx(1,5),vx(1,6),vx(1,7),vx(1,8),
412 9 vy(1,1),vy(1,2),vy(1,3),vy(1,4),vy(1,5),vy(1,6),vy(1,7),vy(1,8),
413 a vz(1,1),vz(1,2),vz(1,3),vz(1,4),vz(1,5),vz(1,6),vz(1,7),vz(1,8),
414 b fx(1,1),fx(1,2),fx(1,3),fx(1,4),fx(1,5),fx(1,6),fx(1,7),fx(1,8),
415 f fy(1,1),fy(1,2),fy(1,3),fy(1,4),fy(1,5),fy(1,6),fy(1,7),fy(1,8),
416 g fz(1,1),fz(1,2),fz(1,3),fz(1,4),fz(1,5),fz(1,6),fz(1,7),fz(1,8),
417 h sti ,stir ,viscm ,viscr ,partsav,iparts ,bufmat ,ioutprt,
418 l ifailure,npf ,tf ,ipm ,igeo ,npt ,nel ,jsms ,
419 m dmels ,pm ,geo ,itask ,jthe ,table ,mat_param ,
420 n idtmins,dtfacs ,dtmins)
423 1 gbuf%FILL,sti, fx(1,1), fx(1,2),
424 2 fx(1,3), fx(1,4), fx(1,5), fx(1,6),
425 3 fx(1,7), fx(1,8), fy(1,1), fy(1,2),
426 4 fy(1,3), fy(1,4), fy(1,5), fy(1,6),
427 5 fy(1,7), fy(1,8), fz(1,1), fz(1,2),
428 6 fz(1,3), fz(1,4), fz(1,5), fz(1,6),
429 7 fz(1,7), fz(1,8), nel)
440 IF(fr_wave(nc(i,j))==zero)fr_wave(nc(i,j))=-fr_w_e(i)
443#include "lockoff.inc"
446 IF (iparit == 0)
THEN
448 . a ,ar ,nc ,stifn ,stifr ,sti ,stir ,
449 . fx ,fy ,fz ,mx ,my ,mz )
451 CALL sucumu3p(fsky,fsky,iads(1,nf1),sti,stir,
452 . fx ,fy ,fz ,mx ,my ,mz )