98 1 JFT ,JLT ,NEL ,PM ,FOR ,MOM ,
99 2 GSTR ,THK ,EINT ,OFF ,DIR_A ,DIR_B ,
100 3 MAT ,AREA ,EXX ,EYY ,EXY ,EXZ ,
101 4 EYZ ,KXX ,KYY ,KXY ,GEO ,THK_LY ,
102 5 PID ,TF ,NPF ,MTN ,DT1C ,DM ,
103 6 BUFMAT ,SSP ,RHO ,VISCMX ,IPLA ,IOFC ,
104 7 INDX ,NGL ,THKLY ,MATLY ,ZCFAC ,NG ,
105 8 SHF ,GS ,SIGY ,THK0 ,epsd_pg ,
106 9 POSLY ,IGEO ,IPM ,FAILWAVE ,FWAVE_EL ,
107 A IFAILURE ,ALDT ,TEMPEL ,DIE ,
108 B R11 ,R12 ,R13 ,R21 ,R22 ,R23 ,
109 C R31 ,R32 ,R33 ,TABLE ,IXFEM ,ELCRKINI ,
110 D DIR1_CRK ,DIR2_CRK ,IPARG ,JHBE ,ISMSTR ,JTHE ,
111 E TENSX ,IR ,IS ,NLAY ,NPT ,IXLAY ,
112 F IXEL ,ITHK ,F_DEF ,ISHPLYXFEM,
113 G ITASK ,PM_STACK , ISUBSTACK,STACK ,ALPE ,
114 H PLY_EXX ,PLY_EYY ,PLY_EXY ,PLY_EXZ ,PLY_EYZ ,PLY_F ,
115 I VARNL ,NLOC_DMG ,NLAY_MAX ,LAYNPT_MAX,DT )
131 USE fail_lemaitre_c_mod
132 USE fail_composite_c_mod
136#include "implicit_f.inc"
137#include "comlock.inc"
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"
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(,*),
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
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,,PLY_ID,IJ(5),K,ISEQ,PROGRESSIVE_CRACK,
198 . ORTH_DAMAGE,L_DMG,IPRONY,ISRATE,NVARTMP,INLOC,IDRAPE,
200 INTEGER :: IJ1,IJ2,IJ3,IJ4,IJ5
201 INTEGER IFAIL(MVSIZ),
202 . ifunc(maxfunc),iflag(1),ioff_duct(mvsiz)
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),sigoxy(mvsiz),sigoyz(mvsiz),sigozx(mvsiz),
212 . signxx(mvsiz),signyy(mvsiz),signxy(mvsiz),signyz(mvsiz),
213 . signzx(mvsiz),sigvxx(mvsiz),sigvyy(mvsiz),sigvxy(mvsiz),
214 . sigvyz(mvsiz),sigvzx
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,
230 my_real copy_pla(mvsiz)
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,
237 TARGET :: tempel,bufmat,epsxx,epsyy,depsxx,depsyy,scale1,posly,thkly
239 INTEGER ,
DIMENSION(MVSIZ) :: ADDITIONAL_INT_PARAMETERS
240 my_real ,
DIMENSION(MVSIZ) :: additional_flt_parameters
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
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
256 LOGICAL :: LOGICAL_USERL_AVAIL
257 LOGICAL :: FLAG_EPS,FLAG_ZCFAC
258 LOGICAL,
DIMENSION(NEL)
259CHARACTER*256 MDS_LIBNAME
264 CHARACTER (LEN=NCHARLINE100)
268 gbuf => elbuf_str%GBUF
269 ipg = (is-1)*elbuf_str%NPTR + ir
270 npg = elbuf_str%NPTR * elbuf_str%NPTS
272 igmat = igeo(98,pid(1))
274 idrape = elbuf_str%IDRAPE
276 logical_userl_avail=.false
277 IF (userl_avail > 0) logical_userl_avail=.true.
298 tstar(jft:jlt) = zero
305 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
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
315 IF( (jhbe>=21.AND.jhbe<=29).OR.(impl_s>0)) flag_zcfac=.true.
329 ilaw_user = ipm(217, mat(1))
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)
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
352 IF(flag_zcfac .AND. mtn /= 22) zcfac(jft:jlt,1)= zero
353 IF(flag_zcfac) zcfac(jft:jlt,2)= one
356 off_old(jft:jlt) = off(jft:jlt)
357 ioff_duct(jft:jlt) = 0
358 dmg_glob_scale(jft:jlt) = one
360 epchk(1:mvsiz) = zero
361 viscmx(1:mvsiz) = zero
364 dtinv = dt1 /
max(dt1**2,em20)
377 IF (ixfem == 1 .AND. ixlay > 0) ilayer = ixlay
378 imat = elbuf_str%BUFLY(ilayer)%IMAT
379 ilaw = elbuf_str%BUFLY(ilayer)%ILAW
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
386 IF (nlay == 1) kk = it
391 uuvar(i,jj) = uvar(ii + i)
400 IF (ixfem == 1 .AND. ixlay > 0)
THEN
405 progressive_crack = 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))
413 bufly => elbuf_str%BUFLY(ilayer)
415 jmly = 1 + (ilayer-1)*jlt
416 jdir = 1 + (ilayer-1)*jlt*2
421 nuvar = bufly%NVAR_MAT
422 nvartmp= bufly%NVARTMP
423 nuvarv = bufly%NVAR_VISC
425 iadbuf =
max(1,ipm(7,imat))
428 uparam => bufmat(iadbuf:iadbuf+nuparam)
429 numtabl= ipm(226,imat)
430 itable => ipm(226+1:226+numtabl,imat)
433 ifunc(i)=ipm(10+i,imat)
440 depsyz(jft:jlt)=eyz(jft:jlt)
441 depszx(jft:jlt)=exz(jft:jlt)
444 epsyz(jft:jlt)= gstr(jft:jlt,4)
445 epszx(jft:jlt)= gstr(jft:jlt,5)
447 epsxy(jft:jlt) = zero
448 epsyz(jft:jlt) = zero
449 epszx(jft:jlt) = zero
455 asrate =
min(one, pm(9,imat)*dt1)
464 ipt = ipt_all + it ! count all nptt through all layers
465 jpos = 1 + (ipt-1)*jlt
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
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)
483 IF (jthe == 0 .and. bufly%L_TEMP > 0)
THEN
484 el_temp => lbuf%TEMP(1:nel)
486 el_temp => tempel(1:nel)
492 if (bufly%l_epsd > 0)
then
494 epspl(i) = asrate*epsd_pg(i) + (one-asrate)*lbuf%epsd(i)
495 epspdt(i) = epspl(i)*dt1
503 zz => posly(1:nel,ipt)
504 thly => thkly(jpos:jpos+nel-1)
505 thklyl(1:nel) = thly(1:nel)*thk0(1:nel)
507 IF (igtyp == 1 .or. igtyp == 9)
THEN
508 wmc(1:nel) = wm(ipt,npt)
510 wmc(1:nel) = zz(1:nel)*thly(1:nel)
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)
534 depsxx(i)=exx(i)+zt*kxx(i)
535 depsyy(i)=eyy(i)+zt*kyy(i)
536 depsxy(i)=exy(i)+zt*kxy(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)
549 ELSEIF (igtyp == 16)
THEN
551 IF (ismstr == 11)
THEN
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
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
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)
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)
609 CALL rotov(jft,jlt,tens,dir_a(jdir),nel)
614 depsxy(i)=two*tens(i,3)
615 depsyz(i)=two*tens(i,4)
616 depszx(i)=two*tens(i,5)
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)
628 CALL rotov(jft,jlt,tens,dir_a(jdir
634 epsxy(i) = two*tens(i,3)
635 epsyz(i) = two*tens(i,4)
636 epszx(i) = two*tens(i,5)
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
653 IF (ifailure == 1)
THEN
654 IF (elbuf_str%BUFLY(ilayer)%L_PLA > 0)
THEN
655 pla0(jft:jlt) = lbuf%PLA(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)
675 IF (logical_userl_avail)
THEN
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 ,
693! 2 npf ,npt ,ipt ,iflag ,
708 option=
'/MAT/LAW29 - SHELL '
709 size=len_trim(option)
710 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
717 eint(i,1) = eint_loc(1,i)
719 lbuf%PLA(i) = copy_pla(i)
723 IF (u_tagplas(i) /= 0)
THEN
737 eint_loc(1,i) = eint(i,1)
738 eint_loc(2,i) = eint(i,2)
739 copy_pla(i) = lbuf%PLA(i)
742 IF (logical_userl_avail)
THEN
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 ,
774 option=
'/MAT/LAW30 - SHELL '
775 size=len_trim(option)
776 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
783 eint(i,1) = eint_loc(1,i)
784 eint(i,2) = eint_loc(2,i)
785 lbuf%PLA(i) = copy_pla(i)
789 IF (u_tagplas(i) /= 0)
THEN
797 ELSEIF (ilaw == 31)
THEN
803 eint_loc(1,i) = eint(i,1)
804 eint_loc(2,i) = eint(i,2)
805 copy_pla(i) = lbuf%PLA(i)
808 IF (logical_userl_avail)
THEN
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 ,
831! 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
840 option=
'/MAT/LAW31 - SHELL '
841 size=len_trim(option)
842 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
849 eint(i,1) = eint_loc(1,i)
850 eint(i,2) = eint_loc(2,i)
851 lbuf%PLA(i) = copy_pla(i)
855 IF (u_tagplas(i) /= 0)
THEN
864 ELSEIF (ilaw == 99)
THEN
871 eint_loc(1,i) = eint(i,1)
872 eint_loc(2,i) = eint(i,2)
873 copy_pla(i) = lbuf%PLA(i)
876 IF (logical_userl_avail)
THEN
878 IF (ismstr == 10)
THEN
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)
888 IF (igtyp /= 1 .AND.igtyp /= 16)
THEN
889 CALL rotos4(jft,jlt,fpsxx,fpsyy,fpsxy,fpsyx,dir_a(jdir),nel)
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 ,
913 IF (dlibtkvers >= 1301501260)
THEN
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,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 * 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)
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 ,
951 CALL eng_userlib_set_lawc(
952 * signxx ,signyy ,signxy, signyz, signzx,
953 * sigvxx ,sigvyy ,sigvxy, sigvyz, sigvzx,
955 IF (dlibtkvers >= 1301501260)
THEN
957 CALL eng_userlib_set_lawc_var_2
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 )
985 userbuf%NCYCLE = ncycle
989 userbuf%IFLAG = iflag(1)
1004! userbuf%DIR_B = dir_b
1006 userbuf%SIGOXX = sigoxx
1007 userbuf%SIGOYY = sigoyy
1008 userbuf%SIGOXY = sigoxy
1009 userbuf%SIGOYZ = sigoyz
1010 userbuf%SIGOZX = sigozx
1012 userbuf%EPSPXX = epspxx
1013 userbuf%EPSPYY = epspyy
1014 userbuf%EPSPXY = epspxy
1015 userbuf%EPSPYZ = epspyz
1016 userbuf%EPSPZX = epspzx
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
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)
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)
1038 userbuf%FPSXX = zero
1039 userbuf%FPSYY = zero
1040 userbuf%FPSXY = zero
1041 userbuf%FPSYX = zero
1042 userbuf%FPSZZ = zero
1045 userbuf%DEPSXX = depsxx
1046 userbuf%DEPSYY = depsyy
1047 userbuf%DEPSXY = depsxy
1048 userbuf%DEPSYZ = depsyz
1049 userbuf%DEPSZX = depszx
1051 userbuf%THKLYL = thklyl
1053 userbuf%TEMP = el_temp
1055 userbuf%SIGNXX = signxx
1056 userbuf%SIGNYY = signyy
1057 userbuf%SIGNXY = signxy
1058 userbuf%SIGNYZ = signyz
1059 userbuf%SIGNZX = signzx
1061 userbuf%SIGVXX = sigvxx
1062 userbuf%SIGVYY = sigvyy
1063 userbuf%SIGVXY = sigvxy
1064 userbuf%SIGVYZ = sigvyz
1065 userbuf%SIGVZX = sigvzx
1079 option=
'/MAT/'//iuser_key//
' - SHELL'
1080 size=len_trim(option)
1081 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
1086 signxx = userbuf%SIGNXX
1087 signyy = userbuf%SIGNYY
1088 signxy = userbuf%SIGNXY
1089 signyz = userbuf%SIGNYZ
1090 signzx = userbuf%SIGNZX
1092 sigvxx = userbuf%SIGVXX
1093 sigvyy = userbuf%SIGVYY
1094 sigvxy = userbuf%SIGVXY
1095 sigvyz = userbuf%SIGVYZ
1096 sigvzx = userbuf%SIGVZX
1100 IF (jthe == 0) el_temp
1105 eint(i,1) = eint_loc(1,i)
1107 lbuf%PLA(i) = copy_pla(i)
1111 ELSEIF (mtn == 200 )
THEN
1114 IF(mds_avail == 1)
THEN
1116 eint_loc(1,i) = eint(i,1)
1117 eint_loc(2,i) = eint(i,2)
1118 copy_pla(i) = lbuf%PLA(i)
1121 IF (ismstr == 10)
THEN
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)
1131 IF (igtyp /= 1 .AND.igtyp /= 16)
THEN
1132 CALL rotos4(jft,jlt,fpsxx,fpsyy,fpsxy,fpsyx,dir_a(jdir),nel)
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 ,
1157 * sigozx , signxx , signyy , signxy ,
1158 * signyz , signzx , sigvxx , sigvyy , sigvxy ,
1159 * sigvyz , sigvzx ,dpla,
1160 * additional_flt_parameters,additional_int_parameters)
1164 eint(i,1) = eint_loc(1,i)
1165 eint(i,2) = eint_loc(2,i)
1166 lbuf%PLA(i) = copy_pla(i)
1169 CALL mds_userlib_name_get(mds_libname,length)
1170 CALL ancmsg(msgid=287,anmode=aninfo,
1171 . c1=mds_libname(1:length))
1178 viscmx(i) =
max(dm,viscmx(i))
1185 IF (ifailure == 1)
THEN
1186 IF ((itask==0).AND.(imon_mat==1))
CALL startime(timers,121)
1199 dmg_loc_scale(1:nel) = one
1200 dmg_orth_scale(1:nel,1:5) = one
1202 mpt = npttot *
max(1,npg)
1203 fbuf => bufly%FAIL(ir,is,it)
1208 le_max(1:nel) = nloc_dmg%LE_MAX(mat(1))
1209 el_len => le_max(1:nel)
1212 el_len => aldt(1:nel)
1216 IF (bufly%L_PLA > 0)
THEN
1220 dpla(i) =
max(varnl(i,it),zero)
1221 epspl(i) = lbuf%EPSDNL(i)
1223 el_pla => lbuf%PLANL(1:nel)
1227 dpla(i) = lbuf%PLA(i) - pla0(i)
1229 el_pla => lbuf%PLA(1:nel)
1233 IF (ixfem == 1)
THEN
1234 uelr1 => elbuf_str%BUFLY(ilayer)%UELR1
1238 IF (ixlay == 0)
THEN
1240 ELSEIF (ixlay > 0)
THEN
1241 uelr => elbuf_str%BUFLY(ixlay)%UELR
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)
1268 itabl_fail => mat_elem%MAT_PARAM(imat)%FAIL(ifl)%TABLE(1:ntabl_fail)
1274 IF (ixfem == 0)
THEN
1277 2 tt ,ngl ,ipg ,ilayer ,it ,
1278 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1279 4 dpla ,epspl ,tstar ,off ,foff ,
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 )
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 )
1300 1 nel ,nupar ,uparamf ,nvarf ,uvarf ,
1301 2 tt ,dt1c ,tensx ,dfmax ,tdel ,
1304 5 gbuf%NOFF,off ,offl ,elcrkini ,ixfem ,
1305 6 ixel ,ilayer ,it ,nptt ,uelr1 )
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 )
1317 copy_pla(i) = lbuf%PLA(i)
1319 IF (logical_userl_avail)
THEN
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 )
1334! 5 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
1341 option=
'/FAIL/USER1 - SHELL '
1342 size=len_trim(option)
1343 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
1349 lbuf%PLA(i) = copy_pla(i)
1355 copy_pla(i) = lbuf%PLA(i)
1357 IF (logical_userl_avail)
THEN
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 )
1369! 2 tf ,tt ,dt1c ,uparamf,ngl,ipt,
1370! 3 mpt ,ipg ,ibidon2,ibidon3 ,
1374! 7 copy_pla ,dpla ,epspl ,uvarf ,uelr ,
1379 option=
'/FAIL/USER2 - SHELL '
1380 size=len_trim(option)
1381 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
1387 lbuf%PLA(i) = copy_pla(i)
1393 copy_pla(i) = lbuf%PLA(i)
1395 IF (logical_userl_avail)
THEN
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 )
1417 option=
'/FAIL/USER3 - SHELL '
1418 size=len_trim(option)
1419 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
1425 lbuf%PLA(i) = copy_pla(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)
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 )
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 )
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 ,
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 )
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 )
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 )
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 )
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 )
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 )
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)
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 )
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 )
1558 irot = elbuf_str%BUFLY(ilayer)%LY_DIRA
1559 crkdir => elbuf_str%BUFLY(ilayer)%CRKDIR
1560 ifailwv = failwave%WAVE_MOD
1561 progressive_crack = 1
1566 crklen => elbuf_str%BUFLY(ilayer)%DMG(1:nel)
1568 crklen => aldt(1:nel)
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 ,
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 )
1592 2 tt ,uparamf ,ngl ,ipt ,mpt ,
1593 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1594 4 dpla ,uvarf ,uelr1 ,
1596 6 ifunc_fail,npf ,tf ,el_len ,foff ,ipg ,
1597 7 dmg_flag ,dmg_loc_scale)
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)
1609 deps1 => depsxx(1:nel)
1610 deps2 => depsyy(1:nel)
1611 eps1 => uvar(ii:ii+nel)
1612 eps2 => uvar(jj:jj+nel)
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 )
1623 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1624 2 tt ,ngl ,ipt ,ilayer ,it ,
1625 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1627 5 dfmax ,tdel ,uelr1 ,mpt ,
1628 6 fld_idx ,dam ,el_pla )
1633 2 tt ,uparamf ,ngl ,ipt ,ilayer ,
1635 4 signxx ,signyy ,signxy ,
1636 5 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1637 6 dpla ,uvarf ,uelr1 ,foff ,
1638 7 off ,dfmax ,tdel )
1642 1 jlt ,nvarf ,tt ,dt1 ,uparamf ,ngl ,
1643 2 signxx ,signyy ,signxy ,epsxx ,epsyy ,epsxy ,
1644 3 uvarf ,off ,dfmax ,ismstr )
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 )
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 )
1670 2 tt ,uparamf ,ngl ,ipt ,mpt ,
1671 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1672 4 dpla ,epspl ,uvarf ,uelr1 ,
1674 6 ifunc_fail,npf ,tf ,el_len ,foff ,
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)
1692 1 jlt ,nupar ,nvarf ,tt ,dt1c ,uparamf ,
1693 2 signxx ,signyy ,signxy ,signyz ,signzx ,mpt ,
1695 4 area ,foff ,igtyp ,offl ,ipt ,thk0 )
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)
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 )
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 )
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 )
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 )
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 ,
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 )
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 )
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 ,
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 )
1793 IF (orth_damage == 0)
THEN
1795 IF (foff(i) == 0)
THEN
1803 IF (off(i) == zero)
THEN
1810 IF ((itask==0).AND.(imon_mat==1))
CALL stoptime(timers,121)
1815#include "vectorize.inc"
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)
1824 IF (igtyp /= 1)
THEN
1825 SELECT CASE (dmg_flag)
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
1831 tens(jft:jlt,5) = signzx(jft:jlt)+sigvzx(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
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)
1846 IF (igtyp == 16)
THEN
1862 r3r3= one+s1*r2+r1*s2
1864 s3s3= one-s1*r2-r1*s2
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)
1877 CALL urotov(jft,jlt,tens,dir_a(jdir),nel)
1882#include "vectorize.inc"
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)
1895 SELECT CASE (dmg_flag)
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
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))
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
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
1915 for(1:nel,1) = for(1:nel,1) + thly(1:nel)*(signxx(1:nel)+sigvxx(1:nel))*dmg_orth_scale(1:nel
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)
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))
1933 yld(jft:jlt) = yld(jft:jlt) + sigy(jft:jlt)*thly(jft:jlt)
1935 IF (impl_s > 0)
THEN
1936 CALL putsignorc3(jft ,jlt ,iun,ng,ipt,g_imp ,sigksi)
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
1949 . jlt ,iptx ,ixfem ,elcrkini,
1950 . dir_orth ,tensx ,dir1_crk,dir2_crk,irot )
1956 IF (bufly%L_PLA > 0)
THEN
1960 IF (off(i) == one)
THEN
1961 varnl(i,it) = lbuf%PLA(i)
1970 ipt_all = ipt_all + nptt
1978 print_fail(1:nel) = .true.
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
1994 . isubstack,igtyp ,failwave ,fwave_el ,
1995 . nlay_max ,laynpt_max,numgeo
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 ,
2011 IF (ixfem == 0)
THEN
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
2019 IF (print_fail(i))
THEN
2030 IF ((off_old(i) > zero) .AND. (off(i) == zero))
THEN
2037 IF (igtyp == 11 .AND. igmat > 0)
THEN
2040 rho(i) = geo(ipgmat+1,pid(1))
2041 ssp(i) = geo(ipgmat+9,pid(1))
2043 ELSEIF (igtyp == 52 .OR.
2044 . ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
2046 ssp(i) = pm_stack(9,isubstack)
2047 rho(i) = pm_stack(1,isubstack)
2060 areamin(i) = pm(53,mx)
2061 dareamin(i) = pm(54,mx)
2063 IF (ismstr == 3)
THEN
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)
2068 for(i,1)=for(i,1)*aa
2069 for(i,2)=for(i,2)*aa
2070 for(i,3)=for(i,3)*aa
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)
2080 for(i,1)=for(i,1)*aa
2081 for(i,2)=for(i,2)*aa
2082 for(i,3)=for(i,3)*aa
2089 thk(jft:jlt) =
max(thkn(jft:jlt),em30)
2092 visc(jft:jlt) = fact*ssp(jft:jlt)*sqrt(area(jft:jlt))*dtinv*rho(jft:jlt)
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
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)
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)
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)
2119 .
CALL m25delam(jft,jlt,pm,gstr,gbuf%DAMDL,mat,ngl,nel)
2121 IF (ishplyxfem > 0)
THEN
2127 IF (ixfem == 1 .AND. ixlay > 0) ilayer = ixlay
2128 nptt = elbuf_str%BUFLY(ilayer)%NPTT
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
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)
2146 ipt_all = ipt_all + nptt
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
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) )
2165 IF (off(i) == four_over_5)
THEN
2176 IF (nindx > 0 .and. ixel == 0)
THEN
2177 IF (imconv == 1)
THEN
2180#include "lockon.inc"
2181 WRITE(iout, 1000) ngl(i)
2182 WRITE(istdo,1100) ngl(i),tt
2183#include "lockoff.inc"
2188 1000
FORMAT(1x,
'-- RUPTURE OF SHELL ELEMENT NUMBER ',i10)
2189 1100
FORMAT(1x,
'-- RUPTURE OF SHELL ELEMENT :',i10,
' AT TIME :',g11.4)