114
115
116
117 USE timer_mod
121 USE mat_elem_mod
122 USE fail_param_mod
127 USE elbufdef_mod
129 USE fail_lemaitre_c_mod
130 USE fail_composite_c_mod
131
132
133
134#include "implicit_f.inc"
135#include "comlock.inc"
136
137
138
139#include "usrplas_c.inc"
140#include "units_c.inc"
141#include "scr17_c.inc"
142#include "scr19_c.inc"
143#include "param_c.inc"
144#include "com01_c.inc"
145#include "com04_c.inc"
146#include "com08_c.inc"
147#include "com20_c.inc"
148#include "impl1_c.inc"
149#include "userlib.inc"
150#include "com_xfem1.inc"
151#include "timeri_c.inc"
152
153
154
155 TYPE(TIMER_), INTENT(INOUT) :: TIMERS
156 INTEGER IR,IS,IPT,JFT,JLT,NEL,NPT,IPLA,IOFC,NG,NLAY,
157 . ISMSTR,IXFEM,IFAILURE,JHBE,IXLAY,IXEL,JTHE,
158 . IREP,ISUBSTACK,ITASK,NUMTABL
159 INTEGER MAT(*),PID(*),NPF(*),NGL(MVSIZ),INDX(MVSIZ),
160 . IGEO(NPROPGI,*),IPM(NPROPMI,*),ELCRKINI(NXLAYMAX,*),
161 . IPARG(*),FWAVE_EL(NEL)
162 INTEGER, INTENT(IN) :: NLAY_MAX, LAYNPT_MAX
164 my_real,
intent(in),
dimension(mvsiz) :: epsd_pg
165 my_real,
intent(inout),
dimension(mvsiz) :: ssp_eq
166 my_real for(nel,5),mom(nel,3),gstr(nel,8),thk(*),eint(jlt,2),off(*),
167 . dir_a(*),dir_b(*),viscmx(*),pm(npropm,*),thk_ly(nel,*),
168 .
area(*),geo(npropg,*),tf(*),dt1c(*),thkly(*),aldt(*),
169 . exx(*), eyy(*), exy(*), exz(*), eyz(*),
170 . kxx(*), kyy(*), kxy(*),bufmat(*),ssp(*),rho(*),
171 . zcfac(mvsiz,2),shf(*),sigy(*),thk0(*),
172 . posly(mvsiz,*),tempel(mvsiz),die(*),varnl(nel,*),
173 . r11(mvsiz), r12(mvsiz), r13(mvsiz),
174 . r21(mvsiz), r22(mvsiz), r23(mvsiz),
175 . r31(mvsiz), r32(mvsiz), r33(mvsiz),
176 . dir1_crk(*),dir2_crk(*),tensx(nel,5),
177 . f_def(mvsiz,8),pm_stack(20,*)
178 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
179 TARGET :: aldt, ipm, varnl
180 TYPE (STACK_PLY) :: STACK
181 TYPE (FAILWAVE_STR_) ,TARGET :: FAILWAVE
182 TYPE (NLOCAL_STR_) :: NLOC_DMG
183 TYPE (MAT_ELEM_) ,INTENT(INOUT) ,TARGET :: MAT_ELEM
184 TYPE (DT_) ,INTENT(IN) :: DT
185 INTEGER, DIMENSION(LIPART1,NPART), INTENT(IN) :: IPART
186 integer, intent(in),dimension(NEL) :: IPARTC
187
188
189
190 INTEGER I,II,JJ,J,JMLY,IPG,IT,IFL,ILAY,NPG,MPT,IMAT,
191 . IRUPT,NFAIL,IADBUF,IGTYP,NUVAR,NVARF,JDIR,
192 . NFUNC, JPOS, NINDX,NUPAR,NUPARAM,NFUNC_FAIL,NTABL_FAIL,IFAILWV,
193 . IUN,IBID,IBIDON1,IBIDON2,IBIDON3,IBIDON4,IBIDON5,
194 . FAC,ILAW_USER,IPTX,ILAYER,IROT,DMG_FLAG,
195 . IGMAT,IPGMAT,KK,NPTT,IPT_ALL,NPTTOT,NUVARV,ILAW,
196 . FAILNPT,JOFF,SIZNUL,PLY_ID,IJ(5),K,ISEQ,PROGRESSIVE_CRACK,
197 . ORTH_DAMAGE,L_DMG,IPRONY,ISRATE,,INLOC,IDRAPE,
198 . LF_DAMMX,NIPAR
199 INTEGER :: IJ1,IJ2,IJ3,IJ4,IJ5
200 INTEGER :: IFUNC(MAXFUNC),IFLAG(1),IOFF_DUCT(MVSIZ)
201 INTEGER :: MAT_ID
202
204 . degmb(mvsiz) ,degfx(mvsiz) ,sigoff(mvsiz),
205 . thklyl(mvsiz),thkn(mvsiz) ,etse(mvsiz),
206 . depsxx(mvsiz),depsyy(mvsiz),depsxy(mvsiz),depsyz(mvsiz),
207 . depszx(mvsiz),epsxx(mvsiz) ,epsyy(mvsiz) ,epsxy(mvsiz),
208 . epsyz(mvsiz) ,epszx(mvsiz) ,epspxx(mvsiz),epspyy(mvsiz),
209 . epspxy(mvsiz),epspyz(mvsiz),epspzx(mvsiz),sigoxx(mvsiz),
210 . sigoyy(mvsiz),sigoxy(mvsiz),sigoyz(mvsiz),sigozx(mvsiz),
211 . signxx(mvsiz),signyy(mvsiz),signxy(mvsiz),signyz(mvsiz),
212 . signzx(mvsiz),sigvxx(mvsiz),sigvyy(mvsiz),sigvxy(mvsiz),
213 . sigvyz(mvsiz),sigvzx(mvsiz),tens(mvsiz,5),
214 . wmc(mvsiz), epspl(mvsiz), yld(mvsiz),dpla(mvsiz),
215 . vol0(mvsiz), coef(mvsiz),hardm(mvsiz),tstar(mvsiz),
216 . pla0(mvsiz),g_imp(mvsiz), sigksi(mvsiz,5),
217 . visc(mvsiz),off_old(mvsiz),epsp_loc(mvsiz),eint_loc(2,mvsiz),
218 . dmg_glob_scale(mvsiz),dmg_loc_scale(mvsiz),bid_arr(mvsiz)
220 . fpsxx(mvsiz),fpsyy(mvsiz),fpszz(mvsiz),fpsxy(mvsiz),fpsyx(mvsiz),
221 . epchk(mvsiz),epspdt(mvsiz)
223 . zt,dtinv,vol2,asrate,tref,tmelt,
224 . r1,r2,s1,s2,r12a,r22a,s12b,s22b,rs1,rs2,rs3,
225 . t1,t2,t3,fact,r3r3,s3s3,trelax,
228 my_real,
DIMENSION(NEL,5) :: dmg_orth_scale
230 my_real ,
DIMENSION(NEL),
TARGET :: le_max
232 my_real,
DIMENSION(:) ,
POINTER :: el_temp,crklen,crkdir,dadv,tfail,el_len,
233 . el_pla
234 TARGET :: tempel,bufmat,epsxx,epsyy,depsxx,depsyy,scale1,posly,thkly
235
236 INTEGER , DIMENSION(MVSIZ) :: ADDITIONAL_INT_PARAMETERS
237 my_real ,
DIMENSION(MVSIZ) :: additional_flt_parameters
238
239 TYPE(TTABLE) TABLE(*)
240 TYPE() :: USERBUF
241 TYPE(BUF_LAY_) ,POINTER :: BUFLY
242 TYPE(L_BUFEL_) ,POINTER :: LBUF
243 TYPE(G_BUFEL_) ,POINTER :: GBUF
244 TYPE(BUF_FAIL_),POINTER :: FBUF
245 TYPE(FAIL_PARAM_),POINTER :: FAIL_PARAM
246
247 INTEGER, DIMENSION(:) ,POINTER :: FLD_IDX,FOFF,OFFLY,ITABLE,IFUNC_FAIL,
248 . ITABL_FAIL,VARTMP,IPARAMF
249 my_real,
DIMENSION(:) ,
POINTER :: uvar,uvarf,uelr,uelr1,dam,
250 . dfmax,tdel ,offl,uvarv,uparam,uparamf,eps1,eps2,deps1,deps2,
251 . dirdmg,dir_orth,zz,thly,damini
252
253 LOGICAL :: LOGICAL_USERL_AVAIL
254 LOGICAL :: FLAG_EPS,FLAG_ZCFAC
255 LOGICAL, DIMENSION(NEL) :: PRINT_FAIL
256 CHARACTER*256 MDS_LIBNAME
257 INTEGER LENGTH
258
259 CHARACTER OPTION*256
260 INTEGER SIZE
261 CHARACTER (LEN=NCHARLINE100):: IUSER_KEY
262
263
264
265 gbuf => elbuf_str%GBUF
266 ipg = (is-1)*elbuf_str%NPTR + ir
267 npg = elbuf_str%NPTR * elbuf_str%NPTS
268 igtyp = igeo(11,pid(1))
269 igmat = igeo(98,pid(1))
270 inloc = iparg(78)
271 idrape = elbuf_str%IDRAPE
272
273 logical_userl_avail=.false.
274 IF (userl_avail > 0) logical_userl_avail=.true.
275 DO k=1,5
276 ij(k) = nel*(k-1)
277 ENDDO
278 ij1 = ij(1) + 1
279 ij2 = ij(2) + 1
280 ij3 = ij(3) + 1
281 ij4 = ij(4) + 1
282 ij5 = ij(5) + 1
283
284 ipt_all = 0
285 npttot = 0
286
287
288
289 iprony = 0
290 DO ilay=1,nlay
291 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
292 ilayer = ilay
293 IF (ixfem == 1 .AND. ixlay > 0) ilayer = ixlay
294 ilaw = elbuf_str%BUFLY(ilayer)%ILAW
295 imat = elbuf_str%BUFLY(ilayer)%IMAT
296 IF (mat_elem%MAT_PARAM(imat)%IVISC > 0) iprony=1
297 ENDDO
298
299
300 flag_zcfac=.false.
301 IF( (jhbe>=21.AND.jhbe<=29).OR.(impl_s>0)) flag_zcfac=.true.
302 scale1(1:nel) = one
303 iflag(1) = ipla
306 bidon3 = zero
307 bidon4 = zero
308 bidon5 = zero
309 ibidon1 = 0
310 ibidon2 = 0
311 ibidon3 = 0
312 ibidon4 = 0
313 ibidon5 = 0
314 ibid = 0
315 ilaw_user = ipm(217, mat(1))
316 iun=1
317
318 dmg_flag = 0
319 trelax = zero
320
321 degmb(jft:jlt) =
for(jft:jlt,1)*exx(jft:jlt)+
for(jft:jlt,2)*eyy(jft:jlt)
322 . +
for(jft:jlt,3)*exy(jft:jlt)+
for(jft:jlt,4)*eyz(jft:jlt)
323 . +
for(jft:jlt,5)*exz(jft:jlt)
324 degfx(jft:jlt) = mom(jft:jlt,1)*kxx(jft:jlt)+mom(jft:jlt,2)*kyy(jft:jlt) +mom(jft:jlt,3)*kxy(jft:jlt)
325
326 vol0(jft:jlt) =
area(jft:jlt)*thk0(jft:jlt)
327 thkn(jft:jlt) = thk(jft:jlt)
328 for(jft:jlt,1) = zero
329 for(jft:jlt,2) = zero
330 for(jft:jlt,3) = zero
331 for(jft:jlt,4) = zero
332 for(jft:jlt,5) = zero
333 mom(jft:jlt,1) = zero
334 mom(jft:jlt,2) = zero
335 mom(jft:jlt,3) = zero
336 yld(jft:jlt) = zero
337 IF(flag_zcfac) zcfac(jft:jlt,2)= one
338 etse(jft:jlt) = one
339 coef(jft:jlt) = one
340 off_old(jft:jlt) = off(jft:jlt)
341 ioff_duct(jft:jlt) = 0
342 dmg_glob_scale(jft:jlt) = one
343 sigoff(1:nel) = one
344 epchk(1:mvsiz) = zero
345 viscmx(1:mvsiz) = zero
346
347 dtinv = dt1 /
max(dt1**2,em20)
348
349
350
351 IF (tt == zero) THEN
352 DO i=1,mvsiz
353 DO j=1,5000
354 uuvar(i,j) = zero
355 END DO
356 END DO
357 ENDIF
358
359 DO ilay=1,nlay
360 ilayer = ilay
361 IF (ixfem == 1 .AND. ixlay > 0) ilayer = ixlay
362 imat = elbuf_str%BUFLY(ilayer)%IMAT
363 ilaw = elbuf_str%BUFLY(ilayer)%ILAW
364
365 DO it = 1,elbuf_str%BUFLY(ilayer)%NPTT
366 uvar => elbuf_str%BUFLY(ilayer)%MAT(ir,is,it)%VAR
367 nuvar = elbuf_str%BUFLY(ilayer)%NVAR_MAT
368 DO j=1,nuvar
369 kk = ilayer
370 IF (nlay == 1) kk = it
371 jj = kk*j
372 ii = nel*(j-1)
373 IF (jj > 5000) EXIT
374 DO i=jft,jlt
375 uuvar(i,jj) = uvar(ii + i)
376 ENDDO
377 ENDDO
378 ENDDO
379 ENDDO
380
381
382
383 DO ilay =1,nlay
384 IF (ixfem == 1 .AND. ixlay > 0) THEN
385 ilayer = ixlay
386 ELSE
387 ilayer = ilay
388 ENDIF
389 progressive_crack = 0
390 orth_damage = 0
391 ply_id = 0
392 IF (igtyp == 52) THEN
393 ply_id =
ply_info(1,stack%IGEO(2+ilay,isubstack)-numstack)
394 ELSEIF(igtyp == 17 .OR. igtyp == 51)THEN
395 ply_id = igeo(1,stack%IGEO(2+ilay,isubstack))
396 ENDIF
397 bufly => elbuf_str%BUFLY(ilayer)
398 nptt = bufly%NPTT
399 jmly = 1 + (ilayer-1)*jlt
400 jdir = 1 + (ilayer-1)*jlt*2
401
402 nfail = bufly%NFAIL
403 imat = bufly%IMAT
404 ilaw = bufly%ILAW
405 nuvar = bufly%NVAR_MAT
406 nvartmp= bufly%NVARTMP
407 nuvarv = bufly%NVAR_VISC
408 iseq = bufly%L_SEQ
409 iadbuf =
max(1,ipm(7,imat))
410 nuparam= ipm(9,imat)
411 nfunc = ipm(10,imat)
412 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
413 numtabl= ipm(226,imat)
414 itable => ipm(226+1:226+numtabl,imat)
415 mat_id = mat_elem%MAT_PARAM(imat)%MAT_ID
416
417 DO i=1,nfunc
418 ifunc(i)=ipm(10+i,imat)
419 ENDDO
420
421 flag_eps = .true.
422
423
424
425 depsyz(jft:jlt)=eyz(jft:jlt)
426 depszx(jft:jlt)=exz(jft:jlt)
427 IF (flag_eps) THEN
428 IF (igtyp == 1) THEN
429 epsyz(jft:jlt)= gstr(jft:jlt,4)
430 epszx(jft:jlt)= gstr(jft:jlt,5)
431 ELSE
432 epsxy(jft:jlt) = zero
433 epsyz(jft:jlt) = zero
434 epszx(jft:jlt) = zero
435 ENDIF
436 ENDIF
437
438 israte = ipm(3,imat)
439 if (israte > 0) then
440 asrate =
min(one, pm(9,imat)*dt1)
441 else
442 asrate = one
443 end if
444
445
446 IF (jthe > 0 .or. elbuf_str%bufly(ilayer)%l_temp > 0) THEN
447 tref = mat_elem%mat_param(imat)%therm%tref
448 tmelt = mat_elem%mat_param(imat)%therm%tmelt
449 tstar(1:nel) =
max(zero, (tempel(1:nel) - tref) /
max(tmelt-tref, em20))
450 ELSE
451 tstar(1:nel) = zero
452 ENDIF
453
454
455 l_dmg = bufly%L_DMG
456
457 DO it=1,nptt
458 ipt = ipt_all + it
459 jpos = 1 + (ipt-1)*jlt
460
461 lbuf => bufly%LBUF(ir,is,it)
462 uvar => bufly%MAT(ir,is,it)%VAR
463 uvarv => bufly%VISC(ir,is,it)%VAR
464 vartmp=> bufly%MAT(ir,is,it)%VARTMP
465 dirdmg => lbuf%DMG(1:l_dmg*nel)
466 IF(idrape > 0 ) jdir = 1 + (ipt - 1)*jlt*2
467
468
469 IF (inloc > 0) THEN
470 DO i = jft,jlt
471 varnl(i,it) =
max(varnl(i,it),zero)
472 lbuf%PLANL(i) = lbuf%PLANL(i) + varnl(i,it)
473 lbuf%EPSDNL(i) = varnl(i,it)/
max(dt1,em20)
474 ENDDO
475 ENDIF
476
477 IF (jthe == 0 .and. bufly%L_TEMP > 0) THEN
478 el_temp => lbuf%TEMP(1:nel)
479 ELSE
480 el_temp => tempel(1:nel)
481 ENDIF
482
483
484
485
486 if (bufly%l_epsd > 0) then
487 do i=1,nel
488 epspl(i) = asrate*epsd_pg(i) + (one-asrate)*lbuf%epsd(i)
489 epspdt(i) = epspl(i)*dt1
490 end do
491 else
492 epspl(1:nel) = zero
493 end if
494
495
496
497 zz => posly(1:nel,ipt)
498 thly => thkly(jpos:jpos+nel-1)
499 thklyl(1:nel) = thly(1:nel)*thk0(1:nel)
500
501 IF (igtyp == 1 .or. igtyp == 9) THEN
502 wmc(1:nel) = wm(ipt,npt)
503 ELSE
504 wmc(1:nel) = zz(1:nel)*thly(1:nel)
505 ENDIF
506
507
508
509 signxx(1:mvsiz) = zero
510 signyy(1:mvsiz) = zero
511 signxy(1:mvsiz) = zero
512 signyz(1:mvsiz) = zero
513 signzx(1:mvsiz) = zero
514 sigvxx(1:mvsiz) = zero
515 sigvyy(1:mvsiz) = zero
516 sigvxy(1:mvsiz) = zero
517 sigvyz(1:mvsiz) = zero
518 sigvzx(1:mvsiz) = zero
519 sigoxx(jft:jlt) = lbuf%SIG(ij(1)+jft:ij(1)+jlt)
520 sigoyy(jft:jlt) = lbuf%SIG(ij(2)+jft:ij(2)+jlt)
521 sigoxy(jft:jlt) = lbuf%SIG(ij(3)+jft:ij(3)+jlt)
522 sigoyz(jft:jlt) = lbuf%SIG(ij(4)+jft:ij(4)+jlt)
523 sigozx(jft:jlt) = lbuf%SIG(ij(5)+jft:ij(5)+jlt)
524
525 IF (igtyp == 1) THEN
526 DO i=jft,jlt
527 zt=zz(i)*thk0(i)
528 depsxx(i)=exx(i)+zt*kxx(i)
529 depsyy(i)=eyy(i)+zt*kyy(i)
530 depsxy(i)=exy(i)+zt*kxy(i)
531 ENDDO
532 IF (flag_eps) THEN
533 DO i=jft,jlt
534 zt=zz(i)*thk0(i)
535 epsxx(i)= gstr(i,1)+zt*gstr(i,6)
536 epsyy(i)= gstr(i,2)+zt*gstr(i,7)
537 epsxy(i)= gstr(i,3)+zt*gstr(i,8)
538 ENDDO
539 ENDIF
540
541
542
543 ELSEIF (igtyp == 16) THEN
544
545 IF (ismstr == 11) THEN
546
547 DO i=jft,jlt
548 ii = jdir + i-1
549 r1 = dir_a(ii)
550 s1 = dir_a(ii+nel)
551 r2 = dir_b(ii)
552 s2 = dir_b(ii+nel)
553
554 zt = zz(i)*thk0(i)
555 t1 = gstr(i,1) + zt*gstr(i,6)
556 t2 = gstr(i,2) + zt*gstr(i,7)
557 t3 = half*(gstr(i,3) + zt*gstr(i,8))
558 depsxy(i) = (r1*r2 + s1*s2) / (r1*s2 - r2*s1)
559 depsxx(i) = r1*r1*t1 + s1*s1*t2 + two*r1*s1*t3
560 depsyy(i) = r2*r2*t1 + s2*s2*t2 + two*r2*s2*t3
561 epsxx(i) = t1
562 epsyy(i) = t2
563 epsxy(i) = t3 * two
564 ENDDO
565 ELSE
566 DO i=jft,jlt
567 ii = jdir + i-1
568 r1 = dir_a(ii)
569 s1 = dir_a(ii+nel)
570 r2 = dir_b(ii)
571 s2 = dir_b(ii+nel)
572 zt = zz(i)*thk0(i)
573 t1 = exx(i) + zt*kxx(i)
574 t2 = eyy(i) + zt*kyy(i)
575 t3 = half*(exy(i) + zt*kxy(i))
576 depsxy(i) = (r1*r2 + s1*s2) / (r1*s2 - r2*s1)
577 depsxx(i) = r1*r1*t1 + s1*s1*t2 + two*r1*s1*t3
578 depsyy(i) = r2*r2*t1 + s2*s2*t2 + two*r2*s2*t3
579
580 ENDDO
581 ENDIF
582 IF (flag_eps) THEN
583 DO i=jft,jlt
584
585 zt = zz(i)*thk0(i)
586 epsxx(i) = gstr(i,1) + zt*gstr(i,6)
587 epsyy(i) = gstr(i,2) + zt*gstr(i,7)
588 epsxy(i) = gstr(i,3) + zt*gstr(i,8)
589 ENDDO
590 ENDIF
591
592 ELSE
593
594 DO i=jft,jlt
595 zt = zz(i)*thk0(i)
596 tens(i,1)=exx(i)+zt*kxx(i)
597 tens(i,2)=eyy(i)+zt*kyy(i)
598 tens(i,3)=half*(exy(i)+zt*kxy(i))
599 tens(i,4)=half*eyz(i)
600 tens(i,5)=half*exz(i)
601 ENDDO
602
603 CALL rotov(jft,jlt,tens,dir_a(jdir),nel)
604
605 DO i=jft,jlt
606 depsxx(i)=tens(i,1)
607 depsyy(i)=tens(i,2)
608 depsxy(i)=two*tens(i,3)
609 depsyz(i)=two*tens(i,4)
610 depszx(i)=two*tens(i,5)
611 ENDDO
612
613 DO i=jft,jlt
614 zt=zz(i)*thk0(i)
615 tens(i,1)= gstr(i,1)+zt*gstr(i,6)
616 tens(i,2)= gstr(i,2)+zt*gstr(i,7)
617 tens(i,3)= half*(gstr(i,3)+zt*gstr(i,8))
618 tens(i,4)= half*gstr(i,4)
619 tens(i,5)= half*gstr(i,5)
620 ENDDO
621
622 CALL rotov(jft,jlt,tens,dir_a(jdir),nel)
623
624 IF (flag_eps) THEN
625 DO i=jft,jlt
626 epsxx(i) = tens(i,1)
627 epsyy(i) = tens(i,2)
628 epsxy(i) = two*tens(i,3)
629 epsyz(i) = two*tens(i,4)
630 epszx(i) = two*tens(i,5)
631 ENDDO
632 ENDIF
633
634 ENDIF
635
636
637
638
639 DO i=jft,jlt
640 epspxx(i)=depsxx(i)*dtinv
641 epspyy(i)=depsyy(i)*dtinv
642 epspxy(i)=depsxy(i)*dtinv
643 epspyz(i)=depsyz(i)*dtinv
644 epspzx(i)=depszx(i)*dtinv
645 ENDDO
646 dpla(1:mvsiz) = zero
647 IF (ifailure == 1) THEN
648 IF (elbuf_str%BUFLY(ilayer)%L_PLA > 0) THEN
649 pla0(jft:jlt) = lbuf%PLA(jft:jlt)
650 ELSE
651 pla0(jft:jlt) = zero
652 ENDIF
653 ENDIF
654
655
656
657
658 IF (ilaw == 29) THEN
659 DO i=jft,jlt
660 u_tagplas(i)=0
661 END DO
662
663 DO i=jft,jlt
664 eint_loc(1,i) = eint(i,1)
665 eint_loc(2,i) = eint(i,2)
666 copy_pla(i) = lbuf%PLA(i)
667 ENDDO
668
669 IF (logical_userl_avail) THEN
670 tt_local = tt
671 CALL eng_userlib_sigepsc(29,
672 1 jlt ,nuparam,nuvar ,nfunc ,ifunc ,
673 2 npf ,npt ,ipt ,iflag ,
674 2 tf ,tt_local,dt1c ,uparam ,rho,
675 3
area ,eint_loc,thklyl ,
676 4 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
677 5 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
678 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
679 7 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
680 8 signxx ,signyy ,signxy ,signyz ,signzx ,
681 9 sigvxx ,sigvyy ,sigvxy ,sigvyz ,sigvzx ,
682 a ssp ,viscmx ,thkn ,copy_pla ,uvar ,
683 b off ,ngl ,shf )
684 ELSE
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702 option='/MAT/LAW29 - SHELL '
703 size=len_trim(option)
704 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
706
707
708 ENDIF
709
710 DO i=jft,jlt
711 eint(i,1) = eint_loc(1,i)
712 eint(i,2) = eint_loc(2,i)
713 lbuf%PLA(i) = copy_pla(i)
714 ENDDO
715
716 DO i=jft,jlt
717 IF (u_tagplas(i) /= 0) THEN
718 sigy(i)=u_yeld(i)
719 etse(i)=u_etse(i)
720 ELSE
721 sigy(i)=ep30
722 etse(i)=one
723 END IF
724 END DO
725 ELSEIF (ilaw == 30) THEN
726 DO i=jft,jlt
727 u_tagplas(i)=0
728 END DO
729
730 DO i=jft,jlt
731 eint_loc(1,i) = eint(i,1)
732 eint_loc(2,i) = eint(i,2)
733 copy_pla(i) = lbuf%PLA(i)
734 ENDDO
735
736 IF (logical_userl_avail) THEN
737 tt_local = tt
738 CALL eng_userlib_sigepsc(30,
739 1 jlt ,nuparam,nuvar ,nfunc ,ifunc ,
740 2 npf ,npt ,ipt ,iflag ,
741 2 tf ,tt_local,dt1c ,uparam ,rho,
742 3
area ,eint_loc,thklyl ,
743 4 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
744 5 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
745 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
746 7 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
747 8 signxx ,signyy ,signxy ,signyz ,signzx ,
748 9 sigvxx ,sigvyy ,sigvxy ,sigvyz ,sigvzx ,
749 a ssp ,viscmx ,thkn ,copy_pla ,uvar ,
750 b off ,ngl ,shf )
751 ELSE
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768 option='/MAT/LAW30 - SHELL '
769 size=len_trim(option)
770 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
772
773
774 ENDIF
775
776 DO i=jft,jlt
777 eint(i,1) = eint_loc(1,i)
778 eint(i,2) = eint_loc(2,i)
779 lbuf%PLA(i) = copy_pla(i)
780 ENDDO
781
782 DO i=jft,jlt
783 IF (u_tagplas(i) /= 0) THEN
784 sigy(i)=u_yeld(i)
785 etse(i)=u_etse(i)
786 ELSE
787 sigy(i)=ep30
788 etse(i)=one
789 END IF
790 END DO
791 ELSEIF (ilaw == 31) THEN
792 DO i=jft,jlt
793 u_tagplas(i)=0
794 END DO
795
796 DO i=jft,jlt
797 eint_loc(1,i) = eint(i,1)
798 eint_loc(2,i) = eint(i,2)
799 copy_pla(i) = lbuf%PLA(i)
800 ENDDO
801
802 IF (logical_userl_avail) THEN
803 tt_local = tt
804 CALL eng_userlib_sigepsc(31,
805 1 jlt ,nuparam,nuvar ,nfunc ,ifunc ,
806 2 npf ,npt ,ipt ,iflag ,
807 2 tf ,tt_local,dt1c ,uparam ,rho ,
808 3
area ,eint_loc,thklyl ,
809 4 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
810 5 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
811 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
812 7 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
813 8 signxx ,signyy ,signxy ,signyz ,signzx ,
814 9 sigvxx ,sigvyy ,sigvxy ,sigvyz ,sigvzx ,
815 a ssp ,viscmx ,thkn ,copy_pla ,uvar ,
816 b off ,ngl ,shf )
817 ELSE
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834 option='/MAT/LAW31 - SHELL '
835 size=len_trim(option)
836 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
838
839
840 ENDIF
841
842 DO i=jft,jlt
843 eint(i,1) = eint_loc(1,i)
844 eint(i,2) = eint_loc(2,i)
845 lbuf%PLA(i) = copy_pla(i)
846 ENDDO
847
848 DO i=jft,jlt
849 IF (u_tagplas(i) /= 0) THEN
850 sigy(i)=u_yeld(i)
851 etse(i)=u_etse(i)
852 ELSE
853 sigy(i)=ep30
854 etse(i)=one
855 END IF
856 END DO
857
858 ELSEIF (ilaw == 99) THEN
859
860
861
862
863
864 DO i=jft,jlt
865 eint_loc(1,i) = eint(i,1)
866 eint_loc(2,i) = eint(i,2)
867 copy_pla(i) = lbuf%PLA(i)
868 ENDDO
869
870 IF (logical_userl_avail) THEN
871
872 IF (ismstr == 10) THEN
873
874 DO i=jft,jlt
875 zt=zz(i)*thk0(i)
876 fpsxx(i) = f_def(i,1)+zt*f_def(i,6) + one
877 fpsyy(i) = f_def(i,2)+zt*f_def(i,7) + one
878 fpsxy(i) = f_def(i,3)+zt*f_def(i,8)
879 fpsyx(i) = f_def(i,4)+zt*f_def(i,5)
880 fpszz(i) = thkn(i)/gbuf%THK_I(i)
881 END DO
882 IF (igtyp /= 1 .AND.igtyp /= 16) THEN
883 CALL rotos4(jft,jlt,fpsxx,fpsyy,fpsxy,fpsyx,dir_a(jdir),nel)
884 END IF
885 ELSE
886 DO i=jft,jlt
887 fpsxx(i) = zero
888 fpsyy(i) = zero
889 fpsxy(i) = zero
890 fpsyx(i) = zero
891 fpszz(i) = zero
892 END DO
893 END IF
894
895 CALL eng_userlib_get_lawc_var(
896 * ncycle ,imat ,ipt ,npt ,iflag ,
897 * r11 ,r12 ,r13 ,r21 ,r22 ,
898 * r23 ,r31 ,r32 ,r33 ,sigoxx ,
899 * sigoyy ,sigoxy ,sigoyz ,sigozx ,epspxx ,
900 * epspyy ,epspxy ,epspyz ,epspzx ,epsxx ,
901 * epsyy ,epsxy ,epsyz ,epszx ,depsxx ,
902 * depsyy ,depsxy ,depsyz ,depszx ,thklyl ,
903 * thkn ,signxx ,signyy ,signxy ,signyz ,
904 * signzx ,sigvxx ,sigvyy ,sigvxy ,sigvyz ,
905 * sigvzx ,dpla )
906
907 IF (dlibtkvers >= 1301501260) THEN
908 siznul=0
909 CALL eng_userlib_get_lawc_var_2(
910 * fpsxx ,mvsiz ,fpsyy ,mvsiz,
911 * fpszz ,mvsiz ,fpsxy ,mvsiz ,fpsyx ,mvsiz ,el_temp ,mvsiz ,
912 * bid_arr,ipg ,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
913 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
914 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
915 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
916 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
917 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
918 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
919 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
920 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
921 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
922 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
923 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
924 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
925 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
926 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
927 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
928 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
929 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
930 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
931 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
932 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
933 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
934 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul)
935 ENDIF
936
937 tt_local = tt
938 CALL eng_userlib_sigeps99c(
939 * jlt ,nuparam ,nuvar ,ilaw_user ,nfunc ,
940 * ifunc ,npf ,ngl ,tf ,tt_local,
941 * dt1c ,uparam ,rho ,
area ,eint_loc,
942 * shf ,ssp ,viscmx ,copy_pla ,uvar ,
943 * off ,sigy )
944
945 CALL eng_userlib_set_lawc(
946 * signxx ,signyy ,signxy, signyz, signzx,
947 * sigvxx ,sigvyy ,sigvxy, sigvyz
948 * dpla ,etse ,thkn )
949 IF (dlibtkvers >= 1301501260) THEN
950 siznul=0
951 CALL eng_userlib_set_lawc_var_2(el_temp,mvsiz,bid_arr,siznul,
952 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
953 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
954 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
955 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
956 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
957 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
958 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
959 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
960 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
961 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
962 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
963 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
964 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
965 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul
966 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
967 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
968 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
969 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
970 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
971 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
972 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
973 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
974 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
975 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul )
976 ENDIF
977
978 ELSE
979 userbuf%NCYCLE = ncycle
980 userbuf%ID = imat
981 userbuf%ILAYER = ipt
982 userbuf%NPTA = npt
983 userbuf%IFLAG
984
985 userbuf%R11 = r11
986 userbuf%R12 = r12
987 userbuf%R13 = r13
988
989 userbuf%R21 = r21
990 userbuf%R22 = r22
991 userbuf%R23 = r23
992
993 userbuf%R31 = r31
994 userbuf%R32 = r32
995 userbuf%R33 = r33
996
997
998
999
1000 userbuf%SIGOXX = sigoxx
1001 userbuf%SIGOYY = sigoyy
1002 userbuf%SIGOXY = sigoxy
1003 userbuf%SIGOYZ = sigoyz
1004 userbuf%SIGOZX = sigozx
1005
1006 userbuf%EPSPXX = epspxx
1007 userbuf%EPSPYY = epspyy
1008 userbuf%EPSPXY = epspxy
1009 userbuf%EPSPYZ = epspyz
1010 userbuf%EPSPZX = epspzx
1011
1012 userbuf%EPSXX = epsxx
1013 userbuf%EPSYY = epsyy
1014 userbuf%EPSXY = epsxy
1015 userbuf%EPSYZ = epsyz
1016 userbuf%EPSZX = epszx
1017 IF (ismstr == 10) THEN
1018
1019 DO i=jft,jlt
1020 zt=zz(i)*thk0(i)
1021 userbuf%FPSXX(i) = f_def(i,1)+zt*f_def(i,6) + one
1022 userbuf%FPSYY(i) = f_def(i,2)+zt*f_def(i,7) + one
1023 userbuf%FPSXY(i) = f_def(i,3)+zt*f_def(i,8)
1024 userbuf%FPSYX(i) = f_def(i,4)+zt*f_def(i,5)
1025 userbuf%FPSZZ(i) = thkn(i)/gbuf%THK_I(i)
1026 END DO
1027 IF (igtyp /= 1 .AND.igtyp /= 16) THEN
1028 CALL rotos4(jft,jlt,userbuf%FPSXX,userbuf%FPSYY,
1029 + userbuf%FPSXY,userbuf%FPSYX,dir_a(jdir),nel)
1030 END IF
1031 ELSE
1032 userbuf%FPSXX = zero
1033 userbuf%FPSYY = zero
1034 userbuf%FPSXY = zero
1035 userbuf%FPSYX = zero
1036 userbuf%FPSZZ = zero
1037 END IF
1038
1039 userbuf%DEPSXX = depsxx
1040 userbuf%DEPSYY = depsyy
1041 userbuf%DEPSXY = depsxy
1042 userbuf%DEPSYZ = depsyz
1043 userbuf%DEPSZX = depszx
1044
1045 userbuf%THKLYL = thklyl
1046 userbuf%THKN = thkn
1047 userbuf%TEMP = el_temp
1048
1049 userbuf%SIGNXX = signxx
1050 userbuf%SIGNYY = signyy
1051 userbuf%SIGNXY = signxy
1052 userbuf%SIGNYZ = signyz
1053 userbuf%SIGNZX = signzx
1054
1055 userbuf%SIGVXX = sigvxx
1056 userbuf%SIGVYY = sigvyy
1057 userbuf%SIGVXY = sigvxy
1058 userbuf%SIGVYZ = sigvyz
1059 userbuf%SIGVZX = sigvzx
1060
1061 userbuf%DPLA = dpla
1062
1063
1064
1065! 2 ifunc ,npf ,ngl ,tf ,tt ,
1066
1067
1068
1069
1070
1071
1073 option='/MAT/'//iuser_key//' - SHELL'
1074 size=len_trim(option)
1075 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
1077
1078
1079
1080 signxx = userbuf%SIGNXX
1081 signyy = userbuf%SIGNYY
1082 signxy = userbuf%SIGNXY
1083 signyz = userbuf%SIGNYZ
1084 signzx = userbuf%SIGNZX
1085
1086 sigvxx = userbuf%SIGVXX
1087 sigvyy = userbuf%SIGVYY
1088 sigvxy = userbuf%SIGVXY
1089 sigvyz = userbuf%SIGVYZ
1090 sigvzx = userbuf%SIGVZX
1091 dpla = userbuf%DPLA
1092 etse = userbuf%ETSE
1093 thkn = userbuf%THKN
1094 IF (jthe == 0) el_temp = userbuf%TEMP
1095 ENDIF
1096
1097
1098 DO i=jft,jlt
1099 eint(i,1) = eint_loc(1,i)
1100 eint(i,2) = eint_loc(2,i)
1101 lbuf%PLA(i) = copy_pla(i)
1102 ENDDO
1103
1104#ifdef DNC
1105 ELSEIF (ilaw == 200 ) THEN
1106
1107
1108 IF(mds_avail == 1) THEN
1109 DO i=jft,jlt
1110 eint_loc(1,i) = eint(i,1)
1111 eint_loc(2,i) = eint(i,2)
1112 copy_pla(i) = lbuf%PLA(i)
1113 ENDDO
1114
1115 IF (ismstr == 10) THEN
1116
1117 DO i=jft,jlt
1118 zt=zz(i)*thk0(i)
1119 fpsxx(i) = f_def(i,1)+zt*f_def(i,6) + one
1120 fpsyy(i) = f_def(i,2)+zt*f_def(i,7) + one
1121 fpsxy(i) = f_def(i,3)+zt*f_def(i,8)
1122 fpsyx(i) = f_def(i,4)+zt*f_def(i,5)
1123 fpszz(i) = thkn(i)/gbuf%THK_I(i)
1124 END DO
1125 IF (igtyp /= 1 .AND.igtyp /= 16) THEN
1126 CALL rotos4(jft,jlt,fpsxx,fpsyy,fpsxy,fpsyx,dir_a(jdir),nel)
1127 END IF
1128 ELSE
1129 DO i=jft,jlt
1130 fpsxx(i) = zero
1131 fpsyy(i) = zero
1132 fpsxy(i) = zero
1133 fpsyx(i) = zero
1134 fpszz(i) = zero
1135 END DO
1136 END IF
1137
1138 CALL eng_mds_sigeps_c( ncycle , mat_id, ngl ,
1139 * nel , npt , it ,ilay, ipg , iflag,
1140 * uparam , nuparam , uvar , nuvar,
1141 * nfunc , ifunc , tf , npf ,
1142 * tt_local, dt1c , rho ,
area, eint_loc,
1143 * thkly , thk , shf , etse ,
1144 * epspxx , epspyy , epspxy , epspyz , epspzx ,
1145 * depsxx , depsyy , depsxy , depsyz , depszx ,
1146 * epsxx , epsyy , epsxy , epsyz , epszx ,
1147 * ssp , viscmx , copy_pla, off ,
1148 * el_temp , r11 , r12 , r13 , r21 ,
1149 * r22 , r23 , r31 , r32 , r33 ,
1150 * sigy , sigoxx , sigoyy , sigoxy , sigoyz ,
1151 * sigozx , signxx , signyy , signxy ,
1152 * signyz , signzx , sigvxx , sigvyy , sigvxy ,
1153 * sigvyz , sigvzx ,dpla,
1154 * additional_flt_parameters,additional_int_parameters)
1155
1156
1157 DO i=jft,jlt
1158 eint(i,1) = eint_loc(1,i)
1159 eint(i,2) = eint_loc(2,i)
1160 lbuf%PLA(i) = copy_pla(i)
1161 ENDDO
1162 ELSE
1163 CALL mds_userlib_name_get(mds_libname,length)
1164 CALL ancmsg(msgid=287,anmode=aninfo,
1165 . c1=mds_libname(1:length))
1167 ENDIF
1168#endif
1169 ENDIF
1170
1171 DO i=jft,jlt
1172 viscmx(i) =
max(dm,viscmx(i))
1173 ENDDO
1174
1175
1176
1177
1178
1179 IF (ifailure == 1) THEN
1180 IF ((itask==0).AND.(imon_mat==1))
CALL startime(timers,121)
1181
1182 IF (ixfem > 0) THEN
1183 DO i=jft,jlt
1184 tensx(i,1) = zero
1185 tensx(i,2) = zero
1186 tensx(i,3) = zero
1187 tensx(i,4) = zero
1188 tensx(i,5) = zero
1189 ENDDO
1190 ENDIF
1191
1192 sigoff(1:nel) = one
1193 dmg_loc_scale(1:nel) = one
1194 dmg_orth_scale(1:nel,1:5) = one
1195
1196 mpt = npttot *
max(1,npg)
1197 fbuf => bufly%FAIL(ir,is,it)
1198
1199
1200
1201 IF (inloc > 0) THEN
1202 le_max(1:nel) = nloc_dmg%LE_MAX(mat(1))
1203 el_len => le_max(1:nel)
1204
1205 ELSE
1206 el_len => aldt(1:nel)
1207 ENDIF
1208
1209
1210 IF (bufly%L_PLA > 0) THEN
1211
1212 IF (inloc > 0) THEN
1213 DO i=jft,jlt
1214 dpla(i) =
max(varnl(i,it),zero)
1215 epspl(i) = lbuf%EPSDNL(i)
1216 ENDDO
1217 el_pla => lbuf%PLANL(1:nel)
1218
1219 ELSE
1220 DO i=jft,jlt
1221 dpla(i) = lbuf%PLA(i) - pla0(i)
1222 ENDDO
1223 el_pla => lbuf%PLA(1:nel)
1224 ENDIF
1225 ENDIF
1226
1227 IF (ixfem == 1) THEN
1228 uelr1 => elbuf_str%BUFLY(ilayer)%UELR1
1229 ELSE
1230 uelr1 => gbuf%UELR1
1231 ENDIF
1232 IF (ixlay == 0) THEN
1233 uelr => gbuf%UELR
1234 ELSEIF (ixlay > 0) THEN
1235 uelr => elbuf_str%BUFLY(ixlay)%UELR
1236 ENDIF
1237 dadv => gbuf%DMG
1238
1239 offl => lbuf%OFF
1240 offly=> bufly%OFF
1241 zt = zz(1)
1242
1243 DO ifl = 1, nfail
1244 uvarf => fbuf%FLOC(ifl)%VAR
1245 nvarf = fbuf%FLOC(ifl)%NVAR
1246 irupt = fbuf%FLOC(ifl)%ILAWF
1247 dam => fbuf%FLOC(ifl)%DAM
1248 dfmax => fbuf%FLOC(ifl)%DAMMX
1249 damini => fbuf%FLOC(ifl)%DAMINI
1250 tdel => fbuf%FLOC(ifl)%TDEL
1251 fld_idx=> fbuf%FLOC(ifl)%INDX
1252 foff => fbuf%FLOC(ifl)%OFF
1253 lf_dammx = fbuf%FLOC(ifl)%LF_DAMMX
1254 fail_param => mat_elem%MAT_PARAM(imat)%FAIL(ifl)
1255 nupar = mat_elem%MAT_PARAM(imat)%FAIL(ifl)%NUPARAM
1256 nipar = mat_elem%MAT_PARAM(imat)%FAIL(ifl)%NIPARAM
1257 nfunc_fail = mat_elem%MAT_PARAM(imat)%FAIL(ifl)%NFUNC
1258 ntabl_fail = mat_elem%MAT_PARAM(imat)%FAIL(ifl)%NTABLE
1259 uparamf => mat_elem%MAT_PARAM(imat)%FAIL(ifl)%UPARAM(1:nupar)
1260 iparamf => mat_elem%MAT_PARAM(imat)%FAIL(ifl)%IPARAM(1:nipar
1261 ifunc_fail => mat_elem%MAT_PARAM(imat)%FAIL(ifl)%IFUNC(1:nfunc_fail)
1262 itabl_fail => mat_elem%MAT_PARAM(imat)%FAIL(ifl)%TABLE(1:ntabl_fail)
1263
1264
1265 SELECT CASE (irupt)
1266
1267 CASE (1)
1268 IF (ixfem == 0) THEN
1270 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1271 2 tt ,ngl ,ipg ,ilayer ,it ,
1272 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1273 4 dpla ,epspl ,tstar ,off ,foff ,
1274 5 dfmax ,tdel )
1275 ELSE
1277 1 nel ,nupar ,uparamf ,nvarf ,uvarf ,
1278 2 tt ,tensx ,dpla ,epspl ,tstar ,
1279 3 ngl ,ipt ,mpt ,nptt ,uelr1 ,
1280 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1281 5 off ,offl ,gbuf%NOFF,dfmax ,tdel ,
1282 6 elcrkini ,ixfem ,ixel ,ilayer ,it )
1283 ENDIF
1284
1285 CASE (2)
1286 IF (ixfem == 0) THEN
1288 1 nel ,nuparam ,nvarf ,uparam ,uvarf ,
1289 2 tt ,dt1c ,ipg ,ilayer ,it ,
1290 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1291 4 ngl ,off ,foff ,dfmax ,tdel )
1292 ELSE
1294 1 nel ,nupar ,uparamf ,nvarf ,uvarf ,
1295 2 tt ,dt1c ,tensx ,dfmax ,tdel ,
1296 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1297 4 ngl ,ipt ,mpt ,
1298 5 gbuf%NOFF,off ,offl ,elcrkini ,ixfem ,
1299 6 ixel ,ilayer ,it ,nptt ,uelr1 )
1300 ENDIF
1301
1302 CASE (3)
1304 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1305 2 tt ,ngl ,ipg ,ilayer ,it ,
1306 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1307 4 dpla ,foff ,dfmax ,tdel )
1308
1309 CASE (4)
1310 DO i=jft,jlt
1311 copy_pla(i) = lbuf%PLA(i)
1312 ENDDO
1313 IF (logical_userl_avail)THEN
1314 tt_local = tt
1315 CALL eng_userlib_flawc(irupt,nel ,nupar,nvarf,nfunc_fail,ifunc_fail,npf,
1316 2 tf ,tt_local ,dt1c ,uparamf,ngl ,ipt,
1317 3 mpt ,ipg ,ibidon2,ibidon3 ,
1318 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1319 5 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
1320 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1321 7 copy_pla ,dpla ,epspl ,uvarf ,uelr ,
1322 8 off ,aldt ,
area ,dfmax,bidon4,bidon5 )
1323 ELSE
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335 option='/FAIL/USER1 - SHELL '
1336 size=len_trim(option)
1337 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
1339
1340
1341 ENDIF
1342 DO i=jft,jlt
1343 lbuf%PLA(i) = copy_pla(i)
1344 ENDDO
1345
1346
1347 CASE (5)
1348 DO i=jft,jlt
1349 copy_pla(i) = lbuf%PLA(i)
1350 ENDDO
1351 IF (logical_userl_avail)THEN
1352 tt_local = tt
1353 CALL eng_userlib_flawc(irupt,nel ,nupar,nvarf,nfunc_fail,ifunc_fail,npf,
1354 2 tf ,tt_local,dt1c ,uparamf,ngl ,ipt,
1355 3 mpt ,ipg ,ibidon2,ibidon3 ,
1356 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1357 5 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
1358 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1359 7 copy_pla ,dpla ,epspl ,uvarf ,uelr ,
1360 8 off ,aldt ,
area ,dfmax,bidon4,bidon5 )
1361 ELSE
1362
1363
1364
1365
1366
1367! 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1368
1369
1370
1371
1372
1373 option='/FAIL/USER2 - SHELL '
1374 size=len_trim(option)
1375 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
1377
1378
1379 ENDIF
1380 DO i=jft,jlt
1381 lbuf%PLA(i) = copy_pla(i)
1382 ENDDO
1383
1384
1385 CASE (6)
1386 DO i=jft,jlt
1387 copy_pla(i) = lbuf%PLA(i)
1388 ENDDO
1389 IF (logical_userl_avail)THEN
1390 tt_local = tt
1391 CALL eng_userlib_flawc(irupt,nel ,nupar,nvarf,nfunc_fail,ifunc_fail,npf,
1392 2 tf ,tt_local ,dt1c ,uparamf,ngl ,ipt,
1393 3 mpt ,ipg ,ibidon2,ibidon3 ,
1394 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1395 5 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
1396 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1397 7 copy_pla ,dpla ,epspl ,uvarf ,uelr ,
1398 8 off ,aldt ,
area ,dfmax,bidon4,bidon5 )
1399 ELSE
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411 option='/FAIL/USER3 - SHELL '
1412 size=len_trim(option)
1413 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
1415
1416
1417 ENDIF
1418 DO i=jft,jlt
1419 lbuf%PLA(i) = copy_pla(i)
1420 ENDDO
1421
1422 CASE (7)
1423 DO i=jft,jlt
1424 zt=zz(i)*thk0(i)
1425 epsxx(i)= gstr(i,1)+zt*gstr(i,6)
1426 epsyy(i)= gstr(i,2)+zt*gstr(i,7)
1427 epsxy(i)= gstr(i,3)+zt*gstr(i,8)
1428 epsyz(i)= gstr(i,4)
1429 epszx(i)= gstr(i,5)
1430 ENDDO
1431 IF (ixfem == 0) THEN
1433 1 nel ,nupar ,nfunc_fail,ifunc_fail ,
1434 2 npf ,tf ,tt ,uparamf ,
1435 3 ngl ,ipg ,ilayer ,it ,
1436 4 epsxx ,epsyy ,epsxy ,lf_dammx ,
1437 5 depsxx ,depsyy ,depsxy ,el_pla ,
1438 6 zt ,off ,foff ,tdel ,
1439 7 fld_idx ,dam ,dfmax ,dt1 ,
1440 8 nipar ,iparamf ,nvarf ,uvarf )
1441 ELSE
1443 1 nel ,nupar ,nvarf ,nfunc_fail,ifunc_fail,
1444 2 npf ,tf ,tt ,uparamf ,
1445 3 ngl ,ipt ,mpt ,ssp ,tensx ,
1446 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1447 5 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1448 6 uvarf ,gbuf%NOFF ,off ,lf_dammx ,
1449 7 elcrkini ,ixfem ,ixel ,ilayer ,it ,
1450 8 offl ,nptt ,uelr1 ,dfmax ,tdel ,
1451 9 dam ,fld_idx ,nipar ,iparamf ,el_pla ,
1452 a depsxx ,depsyy ,depsxy ,dt1 )
1453 ENDIF
1454
1455 CASE (9)
1457 1 nel ,nupar ,uparamf ,nvarf ,uvarf ,
1458 2 tt ,ngl ,ipg ,ilayer ,it ,
1459 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1460 4 dpla ,off ,foff ,dfmax ,
1461 5 tdel )
1462
1463 CASE (10)
1465 1 nel ,nfunc_fail ,nupar ,nvarf ,ifunc_fail ,
1466 2 uparamf ,uvarf ,npf ,tf ,tt ,
1467 3 ngl ,ipg ,ilayer ,it ,epspl ,
1468 4 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1469 5 off ,foff ,dfmax ,tdel ,
1470 6 dmg_flag ,dmg_loc_scale ,aldt ,tstar ,ismstr )
1471
1472 CASE (11)
1474 1 nel ,nupar ,nvarf ,nfunc_fail ,ifunc_fail ,
1475 2 uparamf ,uvarf ,npf ,tf ,tt ,
1476 3 ngl ,ipg ,ilayer ,it ,epspl ,
1477 4
area ,thkn ,dmg_flag ,
1478 5 dmg_loc_scale ,off ,foff ,dfmax ,tdel ,
1479 6 signxx ,signyy ,signxy ,signyz ,signzx ,
1480 7 depsxx ,depsyy ,depsxy ,depsyz ,depszx )
1481
1482 CASE (13)
1484 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1485 2 tt ,dt1c ,ipg ,ilayer ,it ,
1486 3 ngl ,dmg_flag ,dmg_loc_scale ,dfmax ,tdel ,
1487 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1488 5 off ,foff ,lf_dammx )
1489
1490 CASE (14)
1491
1492
1493
1494
1496 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1497 2 tt ,dt1c ,ipg ,ilayer ,it ,
1498 3 ngl ,dmg_flag ,dmg_loc_scale ,dfmax ,tdel ,
1499 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1500 5 off ,foff ,ply_id ,
1501 6 epspl ,fwave_el ,dadv ,lf_dammx )
1502
1503 CASE (16)
1505 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1506 2 tt ,ngl ,ipg ,ilayer ,it ,
1507 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1508 4 off ,foff ,dmg_flag ,dmg_loc_scale ,
1509 5 dfmax ,lf_dammx ,tdel ,dt1c )
1510
1511 CASE (23)
1512 IF (ixfem == 0) THEN
1514 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1515 2 nfunc_fail ,ifunc_fail ,table ,npf ,tf ,
1516 3 tt ,ngl ,ipg ,ilayer ,it ,
1517 4 signxx ,signyy ,signxy ,ntabl_fail,itabl_fail,
1518 5 dpla ,epspl ,thkn ,el_len ,tstar ,
1519 6 dmg_flag,dmg_loc_scale ,off ,foff ,
1520 7 dfmax ,tdel ,inloc )
1521 ELSE
1523 1 nel ,nupar ,nvarf ,npf ,tf ,
1524 2 tt ,dt1c ,uparamf ,ngl ,ipt ,
1525 3 mpt ,nfunc_fail ,ifunc_fail ,table ,
1526 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1527 5 dpla ,epspl ,tstar ,tensx ,uvarf ,
1528 6 gbuf%NOFF,aldt ,off ,offl ,elcrkini ,
1529 7 ixfem ,ixel ,ilayer ,dfmax ,tdel ,
1530 8 dmg_flag ,ntabl_fail,itabl_fail)
1531 ENDIF
1532
1533 CASE (24)
1535 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1536 2 nfunc_fail,ifunc_fail,npf ,tf ,ngl ,
1537 3 tt ,dt1 ,ipg ,ilayer ,it ,
1538 4 epsxx ,epsyy ,epsxy ,dmg_flag ,dmg_loc_scale ,
1539 5 epspxx ,epspyy ,epspxy ,aldt ,ismstr ,
1540 6 signxx ,signyy ,signxy ,lf_dammx ,
1541 7 off ,offly ,foff ,dfmax ,tdel )
1542
1543 CASE (25)
1545 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1546 2 tt ,npf ,tf ,nfunc_fail,ifunc_fail,
1547 3 ngl ,ipg ,ilayer ,it ,hardm ,
1548 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1549 5 off ,foff ,dfmax ,tdel ,lf_dammx )
1550
1551 CASE (28)
1552 irot = elbuf_str%BUFLY(ilayer)%LY_DIRA
1553 crkdir => elbuf_str%BUFLY(ilayer)%CRKDIR
1554 ifailwv = failwave%WAVE_MOD
1555 progressive_crack = 1
1556 orth_damage = 1
1557
1558 IF (ixfem > 0) THEN
1559 IF (ixel == 0) THEN
1560 crklen => elbuf_str%BUFLY(ilayer)%DMG(1:nel)
1561 ELSE
1562 crklen => aldt(1:nel)
1563 ENDIF
1565 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1566 2 tt ,dt1 ,ssp ,aldt ,crklen ,
1567 3 elcrkini ,uelr1 ,off ,offly ,
1568 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1569 5 ngl ,ixel ,ilayer ,ipt ,nptt ,
1570 6 ixfem ,irot ,dir_a(jdir),dir1_crk ,dir2_crk ,
1571 7 crkdir )
1572
1573 ELSEIF (ifailwv > 0) THEN
1575 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1576 2 tt ,dt1 ,ssp ,aldt ,fwave_el ,
1577 3 uelr ,uelr1 ,off ,offly ,foff ,
1578 4 signxx ,signyy ,signxy ,dfmax ,ngl ,
1579 5 ilayer ,ipt ,nptt ,crkdir ,dadv ,
1580 6 dmg_flag ,trelax )
1581 ENDIF
1582
1583 CASE (30)
1585 1 jlt ,nvarf ,
1586 2 tt ,uparamf ,ngl ,ipt ,mpt ,
1587 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1588 4 dpla ,uvarf ,uelr1 ,
1589 5 off ,offl ,dfmax ,tdel ,nfunc_fail,
1590 6 ifunc_fail,npf ,tf ,el_len ,foff ,ipg ,
1591 7 dmg_flag ,dmg_loc_scale)
1592
1593 CASE (31)
1594
1595 IF (ismstr == 11) THEN
1596 deps1 => depsxx(1:nel)
1597 deps2 => depsyy(1:nel)
1598 eps1 => depsxx(1:nel)
1599 eps2 => depsyy(1:nel)
1600 ELSE
1601 ii = nel*3
1602 jj = nel + ii
1603 deps1 => depsxx(1:nel)
1604 deps2 => depsyy(1:nel)
1605 eps1 => uvar(ii:ii+nel)
1606 eps2 => uvar(jj:jj+nel)
1607 ENDIF
1609 1 nel ,ngl ,nupar ,nvarf ,nfunc_fail ,
1610 2 uparamf ,uvarf ,ifunc_fail ,tt ,dt1 ,
1611 3 npf ,tf ,deps1 ,deps2 ,eps1 ,
1612 4 eps2 ,signxx ,signyy ,dfmax ,tdel ,
1613 5 ipg ,ilayer ,it ,off ,foff )
1614
1615 CASE (32)
1617 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1618 2 tt ,ngl ,ipt ,ilayer ,it ,
1619 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1620 4 dpla ,off ,foff ,
1621 5 dfmax ,tdel ,uelr1 ,mpt ,
1622 6 fld_idx ,dam ,el_pla )
1623
1624 CASE (34)
1626 1 jlt ,nvarf ,
1627 2 tt ,uparamf ,ngl ,ipt ,ilayer ,
1628 3 mpt ,it ,ipg ,
1629 4 signxx ,signyy ,signxy ,
1630 5 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1631 6 dpla ,uvarf ,uelr1 ,foff ,
1632 7 off ,dfmax ,tdel )
1633
1634 CASE (36)
1636 1 jlt ,nvarf ,tt ,dt1 ,uparamf ,ngl ,
1637 2 signxx ,signyy ,signxy ,epsxx ,epsyy ,epsxy ,
1638 3 uvarf ,off ,dfmax ,ismstr )
1639
1640 CASE (37)
1641 IF (ixfem == 0) THEN
1643 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1644 2 nfunc_fail ,ifunc_fail ,npf ,tf ,
1645 3 tt ,ngl ,ipg ,ilayer ,it ,
1646 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1647 5 dpla ,epspl ,thkn ,el_len ,tstar ,
1648 6 off ,foff ,dfmax ,tdel )
1649 ELSE
1651 1 nel ,nupar ,nvarf ,npf ,tf ,
1652 2 tt ,dt1c ,uparamf ,ngl ,ipt ,
1653 3 mpt ,nfunc_fail ,ifunc_fail ,dmg_flag ,
1654 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1655 5 dpla ,epspl ,tstar ,tensx ,uvarf ,
1656 6 gbuf%NOFF,aldt ,off ,offl ,elcrkini ,
1657 7 ixfem ,ixel ,ilayer ,dfmax ,tdel )
1658 ENDIF
1659
1660 CASE (38)
1661
1663 1 jlt ,nvarf ,
1664 2 tt ,uparamf ,ngl ,ipt ,mpt ,
1665 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1666 4 dpla ,epspl ,uvarf ,uelr1 ,
1667 5 off ,offl ,dfmax ,tdel ,nfunc_fail,
1668 6 ifunc_fail,npf ,tf ,el_len ,foff ,
1669 7 ipg )
1670
1671 CASE (39)
1672
1674 1 jlt ,nupar ,nvarf ,nfunc_fail ,ifunc_fail ,
1675 2 npf ,tf ,tt ,dt1c ,uparamf ,ipg ,
1676 3 ngl ,gbuf%DT ,epspl ,uvarf ,off ,
1677 4 epsxx ,epsyy ,epsxy ,
area ,thkn ,
1678 5 signxx ,signyy ,signxy ,signyz ,signzx ,
1679 6 el_temp ,dfmax ,aldt ,table ,tdel ,
1680 7 thk0 ,ipt ,foff ,thklyl ,ntabl_fail,
1681 8 itabl_fail,lf_dammx,nipar ,iparamf ,dt)
1682
1683 CASE (40)
1684
1686 1 jlt ,nupar ,nvarf ,tt ,dt1c ,uparamf ,
1687 2 signxx ,signyy ,signxy ,signyz ,signzx ,mpt ,
1688 3 ngl ,dpla ,uvarf ,off ,dfmax ,tdel ,
1689 4
area ,foff ,igtyp ,offl ,ipt ,thk0 )
1690
1691 CASE (41)
1692
1694 1 jlt ,nupar ,nvarf ,nfunc_fail,ifunc_fail,
1695 2 npf ,table ,tf ,tt ,uparamf ,
1696 3 ngl ,el_len ,dpla ,epspl ,uvarf ,
1697 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1698 5 el_temp ,foff ,dfmax ,tdel ,ipt ,
1699 6 ipg ,dmg_flag ,dmg_loc_scale,ntabl_fail,itabl_fail)
1700
1701 CASE (42)
1702
1704 1 jlt ,nupar ,nvarf ,
1705 2 table ,ntabl_fail,itabl_fail ,tt ,uparamf ,
1706 3 ngl ,el_len ,dpla ,epspl ,uvarf ,
1707 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1708 5 el_pla ,el_temp ,sigy ,foff ,dfmax ,
1709 6 tdel ,ipt ,ipg ,dmg_flag ,dmg_loc_scale,
1710 7 damini ,
area ,inloc ,npg )
1711
1712 CASE (43)
1713
1715 1 jlt ,uparamf ,nupar ,uvarf ,nvarf ,
1716 2 tt ,ngl ,ipt ,dpla ,el_pla ,
1717 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1718 4 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1719 5 dfmax ,nfunc_fail ,ifunc_fail ,el_len ,foff ,
1720 6 ipg ,dmg_flag ,dmg_loc_scale,npf ,tf )
1721
1722 CASE (44)
1723
1725 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1726 2 tt ,ngl ,ipg ,ilayer ,it ,
1727 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1728 4 off ,foff ,dmg_flag ,dmg_loc_scale ,
1729 5 dfmax ,lf_dammx ,tdel ,dt1c )
1730
1731 CASE (45)
1732
1734 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1735 2 tt ,ngl ,ipg ,ilayer ,it ,
1736 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1737 4 off ,foff ,dmg_flag ,dmg_loc_scale ,
1738 5 dfmax ,lf_dammx ,tdel ,dt1c )
1739
1740 CASE (46)
1741
1743 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1744 2 tt ,ngl ,ipg ,ilayer ,it ,
1745 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1746 4 off ,foff ,dmg_flag ,dmg_loc_scale ,
1747 5 dfmax ,lf_dammx ,tdel ,dt1c )
1748
1749 CASE (47)
1750
1752 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1753 2 tt ,ngl ,ipg ,ilayer ,it ,
1754 3 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1755 4 off ,foff ,dmg_flag ,dmg_loc_scale ,
1756 5 dfmax ,lf_dammx ,tdel ,dt1c )
1757
1758 CASE (48)
1759
1761 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1762 2 ngl ,tt ,ipg ,ilayer ,it ,
1763 3 depsxx ,depsyy ,depsxy ,dmg_flag ,dmg_orth_scale,
1764 4 aldt ,foff ,dfmax ,tdel ,
1765 5 signxx ,signyy ,signxy ,igtyp ,ply_id )
1766
1767 CASE (50)
1768
1769 CALL fail_lemaitre_c(
1770 1 nel ,nupar ,uparamf ,mat_elem%MAT_PARAM(imat),
1771 2 signxx ,signyy ,signxy ,dpla ,el_pla ,
1772 3 foff ,off ,dfmax ,tdel ,dmg_flag ,
1773 4 dmg_loc_scale,ipg ,ply_id ,ilayer ,it ,
1774 5 ngl ,tt ,igtyp )
1775
1776 CASE (51)
1777
1778 CALL fail_composite_c(
1779 1 nel ,fail_param,nvarf ,uvarf ,tt ,
1780 2 ngl ,ipg ,ilayer ,it ,ply_id ,
1781 3 igtyp ,tdel ,signxx ,signyy ,signxy ,
1782 4 foff ,dmg_flag ,dmg_loc_scale,lf_dammx,dfmax )
1783
1784
1785 END SELECT
1786
1787 IF (orth_damage == 0) THEN
1788 DO i=1,nel
1789 IF (foff(i) == 0) THEN
1790 offl(i) = zero
1791
1792 sigoff(i) = zero
1793 ENDIF
1794 ENDDO
1795 ELSE
1796 DO i=1,nel
1797 IF (off(i) == zero) THEN
1798 sigoff(i) = zero
1799 ENDIF
1800 ENDDO
1801 ENDIF
1802
1803 ENDDO
1804 IF ((itask==0).AND.(imon_mat==1))
CALL stoptime(timers,121)
1805 ENDIF
1806
1807
1808
1809#include "vectorize.inc"
1810 DO i=jft,jlt
1811 lbuf%SIG(ij(1)+i) = signxx(i) * sigoff(i)
1812 lbuf%SIG(ij(2)+i) = signyy(i) * sigoff(i)
1813 lbuf%SIG(ij(3)+i) = signxy(i) * sigoff(i)
1814 lbuf%SIG(ij(4)+i) = signyz(i) * sigoff(i)
1815 lbuf%SIG(ij(5)+i) = signzx(i) * sigoff(i)
1816 ENDDO
1817
1818 IF (igtyp /= 1) THEN
1819 SELECT CASE (dmg_flag)
1820 CASE (0)
1821 tens(jft:jlt,1) = signxx(jft:jlt)+sigvxx(jft:jlt)
1822 tens(jft:jlt,2) = signyy(jft:jlt)+sigvyy(jft:jlt)
1823 tens(jft:jlt,3) = signxy(jft:jlt)+sigvxy(jft:jlt)
1824 tens(jft:jlt,4) = signyz(jft:jlt)+sigvyz(jft:jlt)
1825 tens(jft:jlt,5) = signzx(jft:jlt)+sigvzx(jft:jlt)
1826 CASE (1)
1827 tens(jft:jlt,1) = (signxx(jft:jlt)+sigvxx(jft:jlt))*dmg_loc_scale(jft
1828 tens(jft:jlt,2) = (signyy(jft:jlt)+sigvyy(jft:jlt))*dmg_loc_scale(jft:jlt)
1829 tens(jft:jlt,3) = (signxy(jft:jlt)+sigvxy(jft:jlt))*dmg_loc_scale(jft:jlt)
1830 tens(jft:jlt,4) = (signyz(jft:jlt)+sigvyz(jft:jlt))*dmg_loc_scale(jft:jlt)
1831 tens(jft:jlt,5) = (signzx(jft:jlt)+sigvzx(jft:jlt))*dmg_loc_scale(jft:jlt)
1832 CASE (2)
1833 tens(jft:jlt,1) = (signxx(jft:jlt)+sigvxx(jft:jlt))*dmg_orth_scale(jft:jlt,1)
1834 tens(jft:jlt,2) = (signyy(jft:jlt)+sigvyy(jft:jlt))*dmg_orth_scale(jft:jlt,2)
1835 tens(jft:jlt,3) = (signxy(jft:jlt)+sigvxy(jft:jlt))*dmg_orth_scale(jft:jlt,3)
1836 tens(jft:jlt,4) = (signyz(jft:jlt)+sigvyz(jft:jlt))*dmg_orth_scale(jft:jlt,4)
1837 tens(jft:jlt,5) = (signzx(jft:jlt)+sigvzx(jft:jlt))*dmg_orth_scale(jft:jlt,5)
1838 END SELECT
1839
1840 IF (igtyp == 16) THEN
1841 DO i=jft,jlt
1842 ii = jdir + i-1
1843 r1 = dir_a(ii)
1844 s1 = dir_a(ii+nel)
1845 r2 = dir_b(ii)
1846 s2 = dir_b(ii+nel)
1847
1848 rs1= r1*s1
1849 rs2= r2*s2
1850 r12a = r1*r1
1851 r22a = r2*r2
1852 s12b = s1*s1
1853 s22b = s2*s2
1854
1855 rs3 = s1*s2-r1*r2
1856 r3r3= one+s1*r2+r1*s2
1857 r3r3= half*r3r3
1858 s3s3= one-s1*r2-r1*s2
1859 s3s3= half*s3s3
1860 t1 = tens(i,1)
1861 t2 = tens(i,2)
1862 t3 = tens(i,3)
1863 tens(i,1) = r12a*t1 + r22a*t2 - rs3*t3
1864 tens(i,2) = s12b*t1 + s22b*t2 + rs3*t3
1865 tens(i,3) = rs1*t1 + rs2*t2 + (r3r3 - s3s3)*t3
1866 tens(i,4) = signyz(i)
1867 tens(i,5) = signzx(i)
1868 ENDDO
1869
1870 ELSE
1871 CALL urotov(jft,jlt,tens,dir_a(jdir),nel)
1872 ENDIF
1873
1874
1875
1876#include "vectorize.inc"
1877 DO i=jft,jlt
1878 for(i,1) =
for(i,1) + thly(i)*tens(i,1)
1879 for(i,2) =
for(i,2) + thly(i)*tens(i,2)
1880 for(i,3) =
for(i,3) + thly(i)*tens(i,3)
1881 for(i,4) =
for(i,4) + thly(i)*tens(i,4)
1882 for(i,5) =
for(i,5) + thly(i)*tens(i,5)
1883 mom(i,1) = mom(i,1) + wmc(i)*tens(i,1)
1884 mom(i,2) = mom(i,2) + wmc(i)*tens(i,2)
1885 mom(i,3) = mom(i,3) + wmc(i)*tens(i,3)
1886 ENDDO
1887
1888 ELSE
1889 SELECT CASE (dmg_flag)
1890 CASE (0)
1891 for(1:nel,1) =
for(1:nel,1) + thly(1:nel)*(signxx(1:nel)+sigvxx(1:nel))
1892 for(1:nel,2) =
for(1:nel,2) + thly(1:nel)*(signyy(1:nel)+sigvyy(1:nel))
1893 for(1:nel,3) =
for(1:nel,3) + thly(1:nel)*(signxy(1:nel)+sigvxy(1:nel))
1894 for(1:nel,4) =
for(1:nel,4) + thly(1:nel)*(signyz(1:nel)+sigvyz(1:nel))
1895 for(1:nel,5) =
for(1:nel,5) + thly(1:nel)*(signzx(1:nel)+sigvzx(1:nel))
1896 mom(1:nel,1) = mom(1:nel,1) + wmc(1:nel)*(signxx(1:nel)+sigvxx(1:nel))
1897 mom(1:nel,2) = mom(1:nel,2) + wmc(1:nel)*(signyy(1:nel)+sigvyy(1:nel))
1898 mom(1:nel,3) = mom(1:nel,3) + wmc(1:nel)*(signxy(1:nel)+sigvxy(1:nel))
1899 CASE (1)
1900 for(1:nel,1) =
for(1:nel,1) + thly(1:nel)*(signxx(1:nel)+sigvxx(1:nel))*dmg_loc_scale(1:nel)
1901 for(1:nel,2) =
for(1:nel,2) + thly(1:nel)*(signyy(1:nel)+sigvyy(1:nel))*dmg_loc_scale(1:nel)
1902 for(1:nel,3) =
for(1:nel,3) + thly(1:nel)*(signxy(1:nel)+sigvxy(1:nel))*dmg_loc_scale(1:nel)
1903 for(1:nel,4) =
for(1:nel,4) + thly(1:nel)*(signyz(1:nel)+sigvyz(1:nel))*dmg_loc_scale(1:nel)
1904 for(1:nel,5) =
for(1:nel,5) + thly(1:nel)*(signzx(1:nel)+sigvzx(1:nel))*dmg_loc_scale(1:nel)
1905 mom(1:nel,1) = mom(1:nel,1) + wmc(1:nel) *(signxx(1:nel)+sigvxx(1:nel))*dmg_loc_scale(1:nel)
1906 mom(1:nel,2) = mom(1:nel,2) + wmc(1:nel) *(signyy(1:nel)+sigvyy(1:nel))*dmg_loc_scale(1:nel)
1907 mom(1:nel,3) = mom(1:nel,3) + wmc(1:nel) *(signxy(1:nel)+sigvxy(1:nel))*dmg_loc_scale(1:nel)
1908 CASE (3)
1909 for(1:nel,1) =
for(1:nel,1) + thly(1:nel)*(signxx(1:nel)+sigvxx(1:nel))*dmg_orth_scale(1:nel,1)
1910 for(1:nel,2) =
for(1:nel,2) + thly(1:nel)*(signyy(1:nel)+sigvyy(1:nel))*dmg_orth_scale(1:nel,2)
1911 for(1:nel,3) =
for(1:nel,3) + thly(1:nel)*(signxy(1:nel)+sigvxy(1:nel))*dmg_orth_scale(1:nel,3)
1912 for(1:nel,4) =
for(1:nel,4) + thly(1:nel)*(signyz(1:nel)+sigvyz(1:nel))*dmg_orth_scale(1:nel,4)
1913 for(1:nel,5) =
for(1:nel,5) + thly(1:nel)*(signzx(1:nel)+sigvzx(1:nel))*dmg_orth_scale(1:nel,5)
1914 mom(1:nel,1) = mom(1:nel,1) + wmc(1:nel) *(signxx(1:nel)+sigvxx(1:nel))*dmg_orth_scale(1:nel,1)
1915 mom(1:nel,2) = mom(1:nel,2) + wmc(1:nel) *(signyy(1:nel)+sigvyy(1:nel))*dmg_orth_scale(1:nel,2)
1916 mom(1:nel,3) = mom(1:nel,3) + wmc(1:nel) *(signxy(1:nel)+sigvxy(1:nel))*dmg_orth_scale(1:nel,3)
1917 END SELECT
1918
1919 ENDIF
1920
1921
1922
1923 IF(flag_zcfac) THEN
1924 zcfac(jft:jlt,1) = zcfac(jft:jlt,1) + etse(jft:jlt) * thly(jft:jlt)
1925 zcfac(jft:jlt,2) =
min(etse(jft:jlt),zcfac(jft:jlt,2))
1926 ENDIF
1927 yld(jft:jlt) = yld(jft:jlt) + sigy(jft:jlt)*thly(jft:jlt)
1928 ssp_eq(jft:jlt) = ssp_eq(jft:jlt) + ssp(jft:jlt)*thly(jft:jlt)
1929
1930 IF (impl_s > 0) THEN
1931 CALL putsignorc3(jft ,jlt ,iun,ng,ipt,g_imp ,sigksi)
1932 END IF
1933
1934 IF (ixel == 0 .and. progressive_crack == 0) THEN
1935 dir_orth => bufly%DIRA
1936 irot = elbuf_str%BUFLY(ilayer)%LY_DIRA
1937 IF (ixfem == 1) THEN
1939 . jlt ,ilayer ,ixfem ,elcrkini,
1940 . dir_orth,tensx ,dir1_crk ,dir2_crk ,irot )
1941 ELSEIF (ixfem == 2) THEN
1942 iptx = 1
1944 . jlt ,iptx ,ixfem ,elcrkini,
1945 . dir_orth ,tensx ,dir1_crk,dir2_crk,irot )
1946 ENDIF
1947 ENDIF
1948
1949
1950
1951 IF (bufly%L_PLA > 0) THEN
1952
1953 IF (inloc > 0) THEN
1954 DO i=jft,jlt
1955 IF (off(i) == one) THEN
1956 varnl(i,it) = lbuf%PLA(i)
1957 ELSE
1958 varnl(i,it) = zero
1959 ENDIF
1960 ENDDO
1961 ENDIF
1962 ENDIF
1963
1964 ENDDO
1965 ipt_all = ipt_all + nptt
1966 ENDDO
1967
1968
1969
1970
1971
1972
1973 print_fail(1:nel) = .true.
1974
1975 IF (ifailure == 1 .and. ixfem == 0) THEN
1976 IF (orth_damage == 1) THEN
1977 tfail => gbuf%DMG(1+nel:nel*2)
1979 . elbuf_str,mat_elem ,geo ,pid(1) ,
1980 . ngl ,nel ,ir ,is ,
1981 . nlay ,npttot ,thk_ly ,thkly ,
1982 . off ,npg ,stack ,isubstack,
1983 . igtyp ,failwave ,fwave_el ,dmg_flag ,
1984 . tt ,trelax ,tfail ,dmg_glob_scale)
1985 ELSEIF (npg == 1) THEN
1987 . ngl ,nel ,nlay ,npttot ,
1988 . thk_ly ,thkly ,off ,stack ,
1989 . isubstack,igtyp ,failwave ,fwave_el ,
1990 . nlay_max ,laynpt_max,numgeo ,numstack ,
1991 . igeo ,print_fail,
1992 . ipart ,lipart1 ,ipartc ,npart)
1993 ELSE
1995 . elbuf_str,mat_elem ,geo ,pid(1) ,
1996 . ngl ,nel ,ir ,is ,
1997 . nlay ,npttot ,thk_ly ,thkly ,
1998 . off ,npg ,stack ,isubstack,
1999 . igtyp ,failwave ,fwave_el ,nlay_max ,
2000 . laynpt_max,numgeo ,ipg ,numstack ,
2001 . igeo ,print_fail,
2002 . ipart ,lipart1 ,ipartc ,npart)
2003 ENDIF
2004 ENDIF
2005
2006
2007 nindx = 0
2008 IF (ixfem == 0) THEN
2009 DO i=jft,jlt
2010 IF (off(i) == four_over_5 .and. ioff_duct(i) == 0 .or.
2011 . off(i) > zero .and. off_old(i) < em01 .or.
2012 . off(i) > zero .and. off(i) < one .and. dmg_flag == 1 .and.
2013 . dmg_glob_scale(i) < em02) THEN
2014 off(i) = zero
2015
2016 IF (print_fail(i)) THEN
2017 nindx = nindx + 1
2018 indx(nindx) = i
2019 ENDIF
2020 ENDIF
2021 ENDDO
2022 ENDIF
2023
2024
2025
2026 DO i = 1,nel
2027 IF ((off_old(i) > zero) .AND. (off(i) == zero)) THEN
2028 idel7nok = 1
2029 ENDIF
2030 ENDDO
2031
2032
2033
2034 IF (igtyp == 11 .AND. igmat > 0) THEN
2035 ipgmat = 700
2036 DO i=jft,jlt
2037 rho(i) = geo(ipgmat+1,pid(1))
2038 ssp(i) = geo(ipgmat+9,pid(1))
2039 ENDDO
2040 ssp_eq(jft:jlt) = ssp(jft:jlt)
2041 ELSEIF (igtyp == 52 .OR.
2042 . ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0)) THEN
2043 DO i=jft,jlt
2044 ssp(i) = pm_stack(9,isubstack)
2045 rho(i) = pm_stack(1,isubstack)
2046 ENDDO
2047 ssp_eq(jft:jlt) = ssp(jft:jlt)
2048 ENDIF
2049
2050 thk(jft:jlt) =
max(thkn(jft:jlt),em30)
2051
2052 fact = onep414*dm
2053 visc(jft:jlt) = fact*ssp(jft:jlt)*sqrt(
area(jft:jlt))*dtinv*rho(jft:jlt)
2054
2055 for(jft:jlt,1)=
for(jft:jlt,1)+visc(jft:jlt)*(exx(jft:jlt)+half*eyy(jft:jlt))
2056 for(jft:jlt,2)=
for(jft:jlt,2)+visc(jft:jlt)*(eyy(jft:jlt)+half*exx(jft:jlt))
2057 for(jft:jlt,3)=
for(jft:jlt,3)+visc(jft:jlt)* exy(jft:jlt) *third
2058
2059 for(jft:jlt,1)=
for(jft:jlt,1)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2060 for(jft:jlt,2)=
for(jft:jlt,2)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2061 for(jft:jlt,3)=
for(jft:jlt,3)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2062 for(jft:jlt,4)=
for(jft:jlt,4)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2063 for(jft:jlt,5)=
for(jft:jlt,5)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2064 mom(jft:jlt,1)=mom(jft:jlt,1)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2065 mom(jft:jlt,2)=mom(jft:jlt,2)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2066 mom(jft:jlt,3)=mom(jft:jlt,3)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2067
2068 degmb(jft:jlt) = degmb(jft:jlt)+
for(jft:jlt,1)*exx(jft:jlt)+
for(jft:jlt,2)*eyy(jft:jlt)
2069 . +
for(jft:jlt,3)*exy(jft:jlt)+
for(jft:jlt,4)*eyz(jft:jlt)
2070 . +
for(jft:jlt,5)*exz(jft:jlt)
2071 degfx(jft:jlt) = degfx(jft:jlt)+ mom(jft:jlt,1)*kxx(jft:jlt)+mom(jft:jlt,2)*kyy(jft:jlt)
2072 . + mom(jft:jlt,3)*kxy(jft:jlt)
2073
2074 DO i=jft,jlt
2075 vol2 = half*vol0(i)
2076 eint(i,1) = eint(i,1) + degmb(i)*vol2
2077 eint(i,2) = eint(i,2) + degfx(i)*thk0(i)*vol2
2078 ENDDO
2079
2080 IF (jthe > 0) die(jft:jlt) = die(jft:jlt) +
2081 . coef(jft:jlt)*( degmb(jft:jlt)*half*vol0(jft:jlt) +
2082 . degfx(jft:jlt)*thk0(jft:jlt)*half*vol0(jft:jlt) )
2083
2084
2085 IF (ixfem > 0) THEN
2086 DO i=jft,jlt
2087 IF (off(i) == four_over_5) THEN
2088 off(i) = zero
2089 nindx = nindx + 1
2090 indx(nindx) = i
2091 ENDIF
2092 ENDDO
2093 ENDIF
2094
2095
2096
2097 iofc = nindx
2098 IF (nindx > 0 .and. ixel == 0) THEN
2099 IF (imconv == 1) THEN
2100 DO ii = 1,nindx
2101 i = indx(ii)
2102#include "lockon.inc"
2103 WRITE(iout, 1000) ngl(i)
2104 WRITE(istdo,1100) ngl(i),tt
2105#include "lockoff.inc"
2106 ENDDO
2107 ENDIF
2108 ENDIF
2109
2110 1000 FORMAT(1x,'-- RUPTURE OF SHELL ELEMENT NUMBER ',i10)
2111 1100 FORMAT(1x,'-- RUPTURE OF SHELL ELEMENT :',i10,' AT TIME :',g11.4)
2112
2113 RETURN
subroutine putsignorc3(jft, jlt, ir, is, it, g_imp, signor)
subroutine fail_biquad_c(nel, nuvar, time, uparam, ngl, ipt, nptot, signxx, signyy, signxy, signyz, signzx, dpla, uvar, uel1, off, offl, dfmax, tdel, nfunc, ifunc, npf, tf, aldt, foff, ipg, dmg_flag, dmgscl)
subroutine fail_changchang_c(nel, nuparam, nuvar, uparam, uvar, time, timestep, ipg, ilay, ipt, ngl, dmg_flag, dmg_scale, dfmax, tdel, signxx, signyy, signxy, signyz, signzx, off, foff, lf_dammx)
subroutine fail_cockroft_c(nel, nuvar, time, uparam, ngl, ipt, ilay, npt0, iptt, ipg, signxx, signyy, signxy, epsxx, epsyy, epsxy, epsyz, epszx, dpla, uvar, uel, foff, off, dfmax, tdel)
subroutine fail_energy_c(nel, nuparam, nuvar, nfunc, ifunc, uparam, uvar, npf, tf, time, ngl, ipg, ilay, ipt, epsp, area, thk, dmg_flag, dmg_scale, off, foff, dfmax, tdel, signxx, signyy, signxy, signyz, signzx, depsxx, depsyy, depsxy, depsyz, depszx)
subroutine fail_fabric_c(nel, ngl, nuparam, nuvar, nfunc, uparam, uvar, ifunc, time, timestep, npf, tf, deps1, deps2, eps1, eps2, sig1, sig2, dfmax, tdel, ipg, ilay, ipt, off, foff)
subroutine fail_fld_c(nel, nuparam, nfunc, ifunc, npf, tf, time, uparam, ngl, ipg, ilay, iptt, epsxx, epsyy, epsxy, lf_dammx, depsxx, depsyy, depsxy, pla, zt, off, foff, tdel, fld_idx, dam, dfmax, dt1, niparam, iparam, nuvar, uvar)
subroutine fail_fld_xfem(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, time, uparam, ngl, ipt, nptot, ssp, tens, signxx, signyy, signxy, signyz, signzx, epsxx, epsyy, epsxy, epsyz, epszx, uvar, noff, off, lf_dammx, elcrkini, ixfem, ixel, ilay, iptt, offl, nptt, npttf, dfmax, tdel, dam, fld_idx, niparam, iparam, pla, depsxx, depsyy, depsxy, dt1)
subroutine fail_gene1_c(nel, nuparam, nuvar, nfunc, ifunc, npf, tf, time, timestep, uparam, ipg, ngl, gbuf_dt, epsp, uvar, off, epsxx, epsyy, epsxy, area, thkn, signxx, signyy, signxy, signyz, signzx, temp, dfmax, aldt, table, tdele, thk0, ipt, foff, thklyl, ntablf, itablf, lf_dammx, niparam, iparam, dt)
subroutine fail_hashin_c(nel, nuparam, nuvar, uparam, uvar, time, timestep, ipg, ilay, ipt, ngl, dmg_flag, dmg_scale, dfmax, tdel, signxx, signyy, signxy, signyz, signzx, off, foff, ply_id, epsp, fwave_el, dadv, lf_dammx)
subroutine fail_hc_dsse_c(nel, nuparam, nuvar, uparam, uvar, time, ngl, ipt, ilay, iptt, signxx, signyy, signxy, signyz, signzx, dpla, off, foff, dfmax, tdel, uel, nptot, fld_idx, dam, pla)
subroutine fail_hoffman_c(nel, nuparam, nuvar, uparam, uvar, time, ngl, ipg, ilay, ipt, signxx, signyy, signxy, signyz, signzx, off, foff, dmg_flag, dmg_scale, dfmax, lf_dammx, tdel, timestep)
subroutine fail_inievo_c(nel, nuparam, nuvar, table, ntablf, itablf, time, uparam, ngl, aldt, dpla, epsp, uvar, signxx, signyy, signxy, signyz, signzx, pla, temp, sigy, foff, dfmax, tdele, ipt, ipg, dmg_flag, dmg_scale, damini, area, inloc, npg)
subroutine fail_johnson_c(nel, nuparam, nuvar, uparam, uvar, time, ngl, ipg, ilay, iptt, signxx, signyy, signxy, signyz, signzx, dpla, epsp, tstar, off, foff, dfmax, tdel)
subroutine fail_johnson_xfem(nel, nuparam, uparam, nuvar, uvar, time, tens, dpla, epsp, tstar, ngl, ipt, nptot, nptt, npttf, signxx, signyy, signxy, signyz, signzx, off, offl, noff, dfmax, tdel, elcrkini, ixfem, ixel, ilay, iptt)
subroutine fail_maxstrain_c(nel, nuparam, nuvar, uparam, uvar, time, ngl, ipg, ilay, ipt, epsxx, epsyy, epsxy, epsyz, epszx, off, foff, dmg_flag, dmg_scale, dfmax, lf_dammx, tdel, timestep)
subroutine fail_nxt_c(nel, nuparam, nuvar, uparam, uvar, time, npf, tf, nfunc, ifunc, ngl, ipg, ilay, ipt, hardm, signxx, signyy, signxy, signyz, signzx, off, foff, dfmax, tdel, lf_dammx)
subroutine fail_orthbiquad_c(nel, nuvar, time, uparam, ngl, ipt, nptot, signxx, signyy, signxy, signyz, signzx, dpla, epsp, uvar, uel1, off, offl, dfmax, tdel, nfunc, ifunc, npf, tf, aldt, foff, ipg)
subroutine fail_orthenerg_c(nel, nuparam, nuvar, uparam, uvar, ngl, time, ipg, ilay, ipt, depsxx, depsyy, depsxy, dmg_flag, dmg_scale, aldt, foff, dfmax, tdel, signxx, signyy, signxy, igtyp, ply_id)
subroutine fail_orthstrain_c(nel, nuparam, nuvar, uparam, uvar, nfunc, ifunc, npf, tf, ngl, time, timestep, ipg, ilay, ipt, epsxx, epsyy, epsxy, dmg_flag, dmg_scale, epspxx, epspyy, epspxy, aldt, ismstr, signxx, signyy, signxy, lf_dammx, off, offly, foff, dfmax, tdel)
subroutine fail_puck_c(nel, nuparam, nuvar, uparam, uvar, time, ngl, ipg, ilay, ipt, signxx, signyy, signxy, signyz, signzx, off, foff, dmg_flag, dmg_scale, dfmax, lf_dammx, tdel, timestep)
subroutine fail_rtcl_c(nel, nuparam, nuvar, time, timestep, uparam, signxx, signyy, signxy, signyz, signzx, nptot, ngl, dpla, uvar, off, dfmax, tdele, area, foff, igtyp, offl, ipt, thk0)
subroutine fail_setoff_c(elbuf_str, mat_elem, geo, pid, ngl, nel, nlay, npttot, thk_ly, thkly, off, stack, isubstack, igtyp, failwave, fwave_el, nlay_max, laynpt_max, numgeo, numstack, igeo, print_fail, ipart, lipart1, ipartc, npart)
subroutine fail_setoff_npg_c(elbuf_str, mat_elem, geo, pid, ngl, nel, ir, is, nlay, npttot, thk_ly, thkly, off, npg, stack, isubstack, igtyp, failwave, fwave_el, nlay_max, laynpt_max, numgeo, ipg, numstack, igeo, print_fail, ipart, lipart1, ipartc, npart)
subroutine fail_setoff_wind_frwave(elbuf_str, mat_elem, geo, pid, ngl, nel, ir, is, nlay, npttot, thk_ly, thkly, off, npg, stack, isubstack, igtyp, failwave, fwave_el, dmg_flag, time, trelax, tfail, dmg_scale)
subroutine fail_syazwan_c(nel, uparam, nuparam, uvar, nuvar, time, ngl, ipt, dpla, pla, signxx, signyy, signxy, signyz, signzx, epsxx, epsyy, epsxy, epsyz, epszx, dfmax, nfunc, ifunc, aldt, foff, ipg, dmg_flag, dmg_scale, npf, tf)
subroutine fail_tab2_c(nel, nuparam, nuvar, nfunc, ifunc, npf, table, tf, time, uparam, ngl, aldt, dpla, epsp, uvar, signxx, signyy, signxy, signyz, signzx, temp, foff, dfmax, tdele, ipt, ipg, dmg_flag, dmg_scale, ntablf, itablf)
subroutine fail_tab_c(nel, nuparam, nuvar, uparam, uvar, nfunc, ifunc, table, npf, tf, time, ngl, ipg, ilay, ipt, signxx, signyy, signxy, ntablf, itablf, dpla, epsp, thk, aldt, temp, dmg_flag, dmg_scale, off, foff, dfmax, tdel, inloc)
subroutine fail_tab_old_c(nel, nuparam, nuvar, uparam, uvar, nfunc, ifunc, npf, tf, time, ngl, ipg, ilay, ipt, signxx, signyy, signxy, signyz, signzx, dpla, epsp, thk, aldt, temp, off, foff, dfmax, tdel)
subroutine fail_tab_old_xfem(nel, nparam, nuvar, npf, tf, time, timestep, uparam, ngl, ipt, nptot, nfunc, ifunc, dmg_flag, signxx, signyy, signxy, signyz, signzx, dpla, epsp, tstar, tens, uvar, noff, aldt, off, offl, elcrkini, ixfem, ixel, ilay, dfmax, tdel)
subroutine fail_tab_xfem(nel, nparam, nuvar, npf, tf, time, timestep, uparam, ngl, ipt, nptot, nfunc, ifunc, table, signxx, signyy, signxy, signyz, signzx, dpla, epsp, tstar, tens, uvar, noff, aldt, off, offl, elcrkini, ixfem, ixel, ilay, dfmax, tdel, dmg_flag, ntablf, itablf)
subroutine fail_tbutcher_c(nel, nuparam, nuvar, uparam, uvar, time, timestep, ipg, ilay, ipt, signxx, signyy, signxy, signyz, signzx, ngl, off, foff, dfmax, tdel)
subroutine fail_tbutcher_xfem(nel, nuparam, uparam, nuvar, uvar, time, timestep, tens, dfmax, tdel, signxx, signyy, signxy, signyz, signzx, ngl, ipt, nptot, noff, off, offl, elcrkini, ixfem, ixel, ilay, iptt, nptt, npttf)
subroutine fail_tensstrain_c(nel, nfunc, nuparam, nuvar, ifunc, uparam, uvar, npf, tf, time, ngl, ipg, ilay, ipt, epsp, epsxx, epsyy, epsxy, epsyz, epszx, off, foff, dfmax, tdel, dmg_flag, dmg_scale, aldt, tstar, ismstr)
subroutine fail_tsaihill_c(nel, nuparam, nuvar, uparam, uvar, time, ngl, ipg, ilay, ipt, signxx, signyy, signxy, signyz, signzx, off, foff, dmg_flag, dmg_scale, dfmax, lf_dammx, tdel, timestep)
subroutine fail_tsaiwu_c(nel, nuparam, nuvar, uparam, uvar, time, ngl, ipg, ilay, ipt, signxx, signyy, signxy, signyz, signzx, off, foff, dmg_flag, dmg_scale, dfmax, lf_dammx, tdel, timestep)
subroutine fail_visual_c(nel, nuvar, time, timestep, uparam, ngl, signxx, signyy, signxy, epsxx, epsyy, epsxy, uvar, off, dfmax, ismstr)
subroutine fail_wierzbicki_c(nel, nuparam, uparam, nuvar, uvar, time, ngl, ipg, ilay, ipt, signxx, signyy, signxy, signyz, signzx, dpla, off, foff, dfmax, tdel)
subroutine fail_wilkins_c(nel, nuparam, nuvar, uparam, uvar, time, ngl, ipg, ilay, ipt, signxx, signyy, signxy, signyz, signzx, dpla, foff, dfmax, tdel)
subroutine fail_wind_frwave(nel, nuparam, nuvar, uparam, uvar, time, timestep, ssp, aldt, fwave_el, tdel1, tdel2, off, offly, foff, signxx, signyy, signxy, dfmax, ngl, ilay, ipt, npt, crkdir, dadv, dmg_flag, trelax)
subroutine fail_wind_xfem(nel, nuparam, nuvar, uparam, uvar, time, timestep, ssp, aldt, crklen, elcrkini, tdel, off, offly, signxx, signyy, signxy, signyz, signzx, ngl, ixel, ilay, ipt, npt, ixfem, iorth, dir_a, dir1_crk, dir2_crk, crkdir)
subroutine area(d1, x, x2, y, y2, eint, stif0)
for(i8=*sizetab-1;i8 >=0;i8--)
integer, parameter ncharline100
integer, dimension(:,:), allocatable ply_info
subroutine nolib_usermat99(ilaw_user, iuser_key)
subroutine rotov(jft, jlt, sig, dir, nel)
subroutine rotos4(jft, jlt, sigxx, sigyy, sigxy, sigyx, dir, nel)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
subroutine startime(event, itask)
subroutine stoptime(event, itask)
subroutine urotov(jft, jlt, sig, dir, nel)
subroutine xfem_crk_dir(nel, ilay, ixfem, elcrkini, dir_a, tens, dir1_crk, dir2_crk, irot)