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