43 1 LFT ,LLT ,NFT ,NEL ,IXS ,
44 2 PM ,GEO ,IPM ,IGEO ,X ,
46 4 D ,MS ,IN ,TF ,NPF ,
47 5 BUFMAT ,IPARG ,IPARTS ,PARTSAV ,MAT_PARAM,
48 6 FSKY ,FR_WAVE ,IADS ,EANI ,STIFN ,
49 7 STIFR ,FX ,FY ,FZ ,IFAILURE,
50 8 MTN ,IGTYP ,NPT ,JSMS ,MSSA ,
51 9 DMELS ,ITASK ,IOUTPRT ,JTHE ,TABLE ,
52 A IDTMINS ,DTFACS ,DTMINS)
64#include "implicit_f.inc"
83 TYPE(timer_),
INTENT(INOUT) :: TIMERS
84 INTEGER LFT, LLT,NEL,NFT,MTN,IGTYP,IFAILURE,NPT, JSMS,IOUTPRT,JTHE
85 INTEGER IXS(NIXS,*), IPARG(*), NPF(*),IADS(8,*),
86 . IPARTS(*), IGEO(NPROPGI,*), IPM(NPROPMI,*),ITASK
87 INTEGER ,
INTENT(IN) :: IDTMINS
88 my_real ,
INTENT(IN) :: DTFACS
89 my_real ,
INTENT(IN) :: DTMINS
93 . pm(npropm,*), geo(npropg,*), x(*), a(*), v(*), ms(*), w(*),
94 . ar(*), vr(*), in(*),d(*),tf(*), bufmat(*),fr_wave(*),
95 . partsav(*),stifn(*), stifr(*), fsky(*),eani(*),
96 . fx(mvsiz,8),fy(mvsiz,8),fz(mvsiz,8),
98 TYPE (),
TARGET :: ELBUF_STR
99 TYPE (TTABLE) ,
DIMENSION(NTABLE) :: TABLE
100 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
104 INTEGER I,J,NF1,IFLAG,NUPARAM,IG,IGT,
107 INTEGER (MVSIZ),SID(MVSIZ),IPROP(MVSIZ),NC(MVSIZ,8)
109 . mx(mvsiz,8),my(mvsiz,8) , mz(mvsiz,8),
110 . sti(mvsiz),stir(mvsiz), viscm(mvsiz) ,viscr(mvsiz)
112 . off(mvsiz) , rhoo(mvsiz),fr_w_e(mvsiz),
113 . xx(mvsiz,8), yy(mvsiz,8), zz(mvsiz,8),
114 . ux(mvsiz,8), uy(mvsiz,8), uz(mvsiz,8),
115 . vx(mvsiz,8), vy(mvsiz,8), vz(mvsiz,8),
116 . vrx(mvsiz,8),vry(mvsiz,8),vrz(mvsiz,8),sig_loc(6,nel),
117 . eint_loc(mvsiz),vol_loc(mvsiz),off_loc(mvsiz),rho_loc(mvsiz)
118 TYPE(g_bufel_) ,
POINTER :: GBUF
120 .
DIMENSION(:),
POINTER :: UVAR
127 GBUF => elbuf_str%GBUF
128 uvar => elbuf_str%GBUF%VAR
137 CALL sucoor3(ixs(1,nf1),x ,v,vr,w,d,fr_wave ,fr_w_e ,
138 . xx ,yy ,zz, ux ,uy ,uz ,
139 . vx ,vy ,vz, vrx ,vry ,vrz,
140 . gbuf%OFF,off, nc,sid,imat,iprop)
141 nuvar = elbuf_str%GBUF%G_NUVAR
142 nuparam = ipm(9,imat(1))
147 nuvarp=nint(geo(25,ig))
156 sig_loc(1,i) = gbuf%SIG(ii(1)+i)
157 sig_loc(2,i) = gbuf%SIG(ii(2)+i)
158 sig_loc(3,i) = gbuf%SIG(ii(3)+i)
159 sig_loc(4,i) = gbuf%SIG(ii(4)+i)
160 sig_loc(5,i) = gbuf%SIG(ii(5)+i)
161 sig_loc(6,i) = gbuf%SIG(ii(6)+i)
162 eint_loc(i) = gbuf%EINT(i)
163 vol_loc(i) = gbuf%VOL(i)
164 off_loc(i) = gbuf%OFF(i)
165 rho_loc(i) = gbuf%RHO(i)
168 IF (userl_avail>0)
THEN
169 CALL eng_userlib_suser(igtyp,
170 1 nel ,nuvar ,iprop(1),imat(1),sid ,tt ,dt1 ,
171 2 eint_loc,vol_loc,uvar,fr_w_e,off_loc,rho_loc,sig_loc ,
172 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),
173 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),
174 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),
175 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),
176 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),
177 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),
178 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),
179 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),
180 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),
181 c vrx(1,1),vrx(1,2),vrx(1,3),vrx(1,4),
182 c vrx(1,5),vrx(1,6),vrx(1,7),vrx(1,8),
183 d vry(1,1),vry(1,2),vry(1,3),vry(1,4),
184 d vry(1,5),vry(1,6),vry(1,7),vry(1,8),
185 e vrz(1,1),vrz(1,2),vrz(1,3),vrz(1,4),
186 e vrz(1,5),vrz(1,6),vrz(1,7),vrz(1,8),
187 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),
188 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),
189 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),
190 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),
191 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),
192 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),
193 l sti ,stir ,viscm ,viscr)
196 1 gbuf%FILL,sti, fx(1,1), fx(1,2),
197 2 fx(1,3), fx(1,4), fx(1,5), fx(1,6),
198 3 fx(1,7), fx(1,8), fy(1,1), fy(1,2),
199 4 fy(1,3), fy(1,4), fy(1,5), fy(1,6),
200 5 fy(1,7), fy(1,8), fz(1,1), fz(1,2),
201 6 fz(1,3), fz(1,4), fz(1,5), fz(1,6),
202 7 fz(1,7), fz(1,8), nel)
204 1 gbuf%FILL,stir, mx(1,1), mx(1,2),
205 2 mx(1,3), mx(1,4), mx(1,5), mx(1,6),
206 3 mx(1,7), mx(1,8), my(1,1), my(1,2),
207 4 my(1,3), my(1,4), my(1,5), my(1,6),
208 5 my(1,7), my(1,8), mz(1,1), mz(1,2),
209 6 mz(1,3), mz(1,4), mz(1,5), mz(1,6),
210 7 mz(1,7), mz(1,8), nel)
215 option=
'/PROP/USER1 - SOLID'
216 size=len_trim(option)
217 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
222 gbuf%SIG(ii(1)+i) = sig_loc(1,i)
223 gbuf%SIG(ii(2)+i) = sig_loc(2,i)
224 gbuf%SIG(ii(3)+i) = sig_loc(3,i)
225 gbuf%SIG(ii(4)+i) = sig_loc(4,i)
226 gbuf%SIG(ii(5)+i) = sig_loc(5,i)
227 gbuf%SIG(ii(6)+i) = sig_loc(6,i)
228 gbuf%EINT(i) = eint_loc(i)
229 gbuf%VOL(i) = vol_loc(i)
230 gbuf%OFF(i) = off_loc(i)
231 gbuf%RHO(i) = rho_loc(i)
234 ELSEIF(igtyp==30)
THEN
236 sig_loc(1,i) = gbuf%SIG(ii(1)+i)
237 sig_loc(2,i) = gbuf%SIG(ii(2)+i)
238 sig_loc(3,i) = gbuf%SIG(ii(3)+i)
239 sig_loc(4,i) = gbuf%SIG(ii(4)+i)
240 sig_loc(5,i) = gbuf%SIG(ii(5)+i)
241 sig_loc(6,i) = gbuf%SIG(ii(6)+i)
242 eint_loc(i) = gbuf%EINT(i)
243 vol_loc(i) = gbuf%VOL(i)
244 off_loc(i) = gbuf%OFF(i)
245 rho_loc(i) = gbuf%RHO(i)
247 IF (userl_avail>0)
THEN
248 CALL eng_userlib_suser(igtyp,
249 1 nel ,nuvar ,iprop(1),imat(1),sid ,tt ,dt1 ,
250 2 eint_loc,vol_loc,uvar,fr_w_e,off_loc,rho_loc,sig_loc ,
251 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),
252 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),
253 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),
254 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),
255 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),
256 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),
257 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),
258 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),
259 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),
260 c vrx(1,1),vrx(1,2),vrx(1,3),vrx(1,4),
262 d vry(1,1),vry(1,2),vry(1,3),vry(1,4),
263 d vry(1,5),vry(1,6),vry(1,7),vry(1,8),
264 e vrz(1,1),vrz(1,2),vrz(1,3),vrz(1,4),
265 e vrz(1,5),vrz(1,6),vrz(1,7),vrz(1,8),
266 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),
267 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),
268 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),
269 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),
270 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),
271 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),
272 l sti ,stir ,viscm ,viscr)
275 1 gbuf%FILL,sti, fx(1,1), fx(1,2),
276 2 fx(1,3), fx(1,4), fx(1,5), fx(1,6),
277 3 fx(1,7), fx(1,8), fy(1,1), fy(1,2),
278 4 fy(1,3), fy(1,4), fy(1,5), fy(1,6),
279 5 fy(1,7), fy(1,8), fz(1,1), fz(1,2),
280 6 fz(1,3), fz(1,4), fz(1,5), fz(1,6),
281 7 fz(1,7), fz(1,8), nel)
283 1 gbuf%FILL,stir, mx(1,1), mx(1,2),
284 2 mx(1,3), mx(1,4), mx(1,5), mx(1,6),
285 3 mx(1,7), mx(1,8), my(1,1), my(1,2),
286 4 my(1,3), my(1,4), my(1,5), my(1,6),
287 5 my(1,7), my(1,8), mz(1,1), mz(1,2),
288 6 mz(1,3), mz(1,4), mz(1,5), mz(1,6),
289 7 mz(1,7), mz(1,8), nel)
294 option=
'/PROP/USER2 - SOLID'
295 size=len_trim(option)
296 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
301 gbuf%SIG(ii(1)+i) = sig_loc(1,i)
302 gbuf%SIG(ii(2)+i) = sig_loc(2,i)
303 gbuf%SIG(ii(3)+i) = sig_loc(3,i)
304 gbuf%SIG(ii(4)+i) = sig_loc(4,i)
305 gbuf%SIG(ii(5)+i) = sig_loc(5,i)
306 gbuf%SIG(ii(6)+i) = sig_loc(6,i)
307 gbuf%EINT(i) = eint_loc(i)
308 gbuf%VOL(i) = vol_loc(i)
309 gbuf%OFF(i) = off_loc(i)
310 gbuf%RHO(i) = rho_loc(i)
313 ELSEIF(igtyp==31)
THEN
315 sig_loc(1,i) = gbuf%SIG(ii(1)+i)
316 sig_loc(2,i) = gbuf%SIG(ii(2)+i)
317 sig_loc(3,i) = gbuf%SIG(ii(3)+i)
318 sig_loc(4,i) = gbuf%SIG(ii(4)+i)
319 sig_loc(5,i) = gbuf%SIG(ii(5)+i)
320 sig_loc(6,i) = gbuf%SIG(ii(6)+i)
321 eint_loc(i) = gbuf%EINT(i)
322 vol_loc(i) = gbuf%VOL(i)
323 off_loc(i) = gbuf%OFF(i)
324 rho_loc(i) = gbuf%RHO(i)
326 IF (userl_avail>0)
THEN
327 CALL eng_userlib_suser(igtyp,
328 1 nel ,nuvar ,iprop(1),imat(1),sid ,tt ,dt1 ,
329 2 eint_loc,vol_loc,uvar,fr_w_e,off_loc,rho_loc,sig_loc ,
330 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),
331 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),
332 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),
333 6 ux(1,1),ux(1,2),ux(1,3),ux(1,4),ux(1,5),ux(1,6),ux(1,7),ux
335 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),
336 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),
337 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),
338 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),
339 c vrx(1,1),vrx(1,2),vrx(1,3),vrx(1,4),
340 c vrx(1,5),vrx(1,6),vrx(1,7),vrx(1,8),
341 d vry(1,1),vry(1,2),vry(1,3),vry(1,4),
342 d vry(1,5),vry(1,6),vry(1,7),vry(1,8),
343 e vrz(1,1),vrz(1,2),vrz(1,3),vrz(1,4),
344 e vrz(1,5),vrz(1,6),vrz(1,7),vrz(1,8),
345 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),
346 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),
347 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),
348 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),
349 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),
350 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),
351 l sti ,stir ,viscm ,viscr)
354 1 gbuf%FILL,sti, fx(1,1), fx(1,2),
355 2 fx(1,3), fx(1,4), fx(1,5), fx(1,6),
356 3 fx(1,7), fx(1,8), fy(1,1), fy(1,2),
357 4 fy(1,3), fy(1,4), fy(1,5), fy(1,6),
358 5 fy(1,7), fy(1,8), fz(1,1), fz(1,2),
359 6 fz(1,3), fz(1,4), fz(1,5), fz(1,6),
360 7 fz(1,7), fz(1,8), nel)
362 1 gbuf%FILL,stir, mx(1,1), mx(1,2),
363 2 mx(1,3), mx(1,4), mx(1,5), mx(1,6),
364 3 mx(1,7), mx(1,8), my(1,1), my(1,2),
365 4 my(1,3), my(1,4), my(1,5), my(1,6),
366 5 my(1,7), my(1,8), mz(1,1), mz(1,2),
367 6 mz(1,3), mz(1,4), mz(1,5), mz(1,6),
368 7 mz(1,7), mz(1,8), nel)
373 option=
'/PROP/USER3 - SOLID'
374 size=len_trim(option)
375 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
380 gbuf%SIG(ii(1)+i) = sig_loc(1,i)
381 gbuf%SIG(ii(2)+i) = sig_loc(2,i)
382 gbuf%SIG(ii(3)+i) = sig_loc(3,i)
383 gbuf%SIG(ii(4)+i) = sig_loc(4,i)
384 gbuf%SIG(ii(5)+i) = sig_loc(5,i)
385 gbuf%SIG(ii(6)+i) = sig_loc(6,i)
386 gbuf%EINT(i) = eint_loc(i)
387 gbuf%VOL(i) = vol_loc(i)
388 gbuf%OFF(i) = off_loc(i)
389 gbuf%RHO(i) = rho_loc(i)
392 ELSEIF (igtyp == 43)
THEN
402 1 elbuf_str ,iout ,iprop(1),imat(1),sid ,tt ,dt1 ,fr_w_e,
403 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),
404 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),
405 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),
406 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),
407 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),
408 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),
409 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),
410 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),
411 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),
412 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),
413 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),
414 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),
415 h sti ,stir ,viscm ,viscr ,partsav,iparts ,bufmat ,ioutprt,
416 l ifailure,npf ,tf ,ipm ,igeo ,npt ,nel ,jsms ,
417 m dmels ,pm ,geo ,itask ,jthe ,table ,mat_param ,
418 n idtmins,dtfacs ,dtmins)
421 1 gbuf%FILL,sti, fx(1,1), fx(1,2),
422 2 fx(1,3), fx(1,4), fx(1,5), fx(1,6),
423 3 fx(1,7), fx(1,8), fy(1,1), fy(1,2),
424 4 fy(1,3), fy(1,4), fy(1,5), fy(1,6),
425 5 fy(1,7), fy(1,8), fz(1,1), fz(1,2),
426 6 fz(1,3), fz(1,4), fz(1,5), fz(1,6),
427 7 fz(1,7), fz(1,8), nel)
438 IF(fr_wave(nc(i,j))==zero)fr_wave(nc(i,j))=-fr_w_e(i)
441#include "lockoff.inc"
444 IF (iparit == 0)
THEN
446 . a ,ar ,nc ,stifn ,stifr ,sti ,stir ,
447 . fx ,fy ,fz ,mx ,my ,mz )
449 CALL sucumu3p(fsky,fsky,iads(1,nf1),sti,stir,
450 . fx ,fy ,fz ,mx ,my ,mz )