97 1 JFT ,JLT ,NEL ,PM ,FOR ,MOM ,
98 2 GSTR ,THK ,EINT ,OFF ,DIR_A ,DIR_B ,
99 3 MAT ,AREA ,EXX ,EYY ,EXY ,EXZ ,
100 4 EYZ ,KXX ,KYY ,KXY ,GEO ,THK_LY ,
101 5 PID ,TF ,NPF ,DT1C ,DM ,
102 6 BUFMAT ,SSP ,RHO ,VISCMX ,IPLA ,IOFC ,
103 7 INDX ,NGL ,THKLY ,ZCFAC ,NG ,
104 8 SHF ,SIGY ,THK0 ,epsd_pg ,
105 9 POSLY ,IGEO ,IPM ,FAILWAVE ,FWAVE_EL ,
106 A IFAILURE ,ALDT ,TEMPEL ,DIE ,
107 B R11 ,R12 ,R13 ,R21 ,R22 ,R23 ,
108 C R31 ,R32 ,R33 ,TABLE ,IXFEM ,ELCRKINI ,
109 D DIR1_CRK ,DIR2_CRK ,IPARG ,JHBE ,ISMSTR ,JTHE ,
110 E TENSX ,IR ,IS ,NLAY ,NPT ,IXLAY ,
111 F IXEL ,F_DEF ,ITASK ,PM_STACK ,ISUBSTACK ,STACK ,
112 G VARNL ,NLOC_DMG ,NLAY_MAX ,LAYNPT_MAX,DT ,SSP_EQ ,
129 USE fail_lemaitre_c_mod
130 USE fail_composite_c_mod
134#include "implicit_f.inc"
135#include "comlock.inc"
139#include "usrplas_c.inc"
140#include "units_c.inc"
141#include "scr17_c.inc"
142#include "scr19_c.inc"
143#include "param_c.inc"
144#include "com01_c.inc"
145#include "com04_c.inc"
146#include "com08_c.inc"
147#include "com20_c.inc"
148#include "impl1_c.inc"
149#include "userlib.inc"
150#include "com_xfem1.inc"
151#include "timeri_c.inc"
155 TYPE(timer_),
INTENT(INOUT) :: TIMERS
156 INTEGER IR,,IPT,JFT,JLT,NEL,NPT,IPLA,IOFC,NG,NLAY,
157 . ISMSTR,IXFEM,IFAILURE,JHBE,IXLAY,IXEL,JTHE,
158 . IREP,ISUBSTACK,ITASK,NUMTABL
159 INTEGER MAT(*),PID(*),NPF(*),NGL(MVSIZ),INDX(),
160 . IGEO(NPROPGI,*),IPM(,*),ELCRKINI(NXLAYMAX,*),
161 . IPARG(*),FWAVE_EL(NEL)
162 INTEGER,
INTENT(IN) :: NLAY_MAX, LAYNPT_MAX
164 my_real,
intent(in),
dimension(mvsiz) :: epsd_pg
165 my_real,
intent(inout),
dimension(mvsiz) :: SSP_EQ
166 my_real FOR(NEL,5),MOM(NEL,3),GSTR(NEL,8),THK(*),EINT(JLT,2),OFF(*),
167 . DIR_A(*),DIR_B(*),VISCMX(*),PM(NPROPM,*),THK_LY(NEL,*),
168 . AREA(*),GEO(NPROPG,*),TF(*),DT1C(*),THKLY(*),ALDT(*),
169 . EXX(*), EYY(*), EXY(*), EXZ(*), EYZ(*),
170 . KXX(*), KYY(*), KXY(*),BUFMAT(*),SSP(*),RHO(*),
171 . ZCFAC(MVSIZ,2),SHF(*),SIGY(*),THK0(*),
172 . posly(mvsiz,*),tempel(mvsiz),die(*),varnl(nel,*),
173 . r11(mvsiz), r12(mvsiz), r13(mvsiz),
174 . r21(mvsiz), r22(mvsiz), r23(mvsiz),
175 . r31(mvsiz), r32(mvsiz), r33(mvsiz),
176 . dir1_crk(*),dir2_crk(*),tensx(nel,5),
177 . f_def(mvsiz,8),pm_stack(20,*)
178 TYPE(elbuf_struct_),
TARGET :: ELBUF_STR
179 TARGET :: aldt, ipm, varnl
180 TYPE (STACK_PLY) :: STACK
181 TYPE (FAILWAVE_STR_) ,
TARGET :: FAILWAVE
182 TYPE (NLOCAL_STR_) :: NLOC_DMG
183 TYPE (MAT_ELEM_) ,
INTENT(INOUT) ,
TARGET :: MAT_ELEM
184 TYPE (DT_) ,
INTENT(IN) :: DT
185 INTEGER,
DIMENSION(LIPART1,NPART),
INTENT(IN) :: IPART
186 integer,
intent(in),
dimension(NEL) ::
190 INTEGER I,II,JJ,J,JMLY,IPG,IT,IFL,ILAY,NPG,MPT,IMAT,
191 . IRUPT,NFAIL,IADBUF,IGTYP,NUVAR,NVARF,JDIR,
192 . NFUNC, JPOS, NINDX,NUPAR,NUPARAM,NFUNC_FAIL,NTABL_FAIL,IFAILWV,
193 . IUN,IBID,IBIDON1,IBIDON2,IBIDON3,IBIDON4,IBIDON5,
194 . FAC,ILAYER,IROT,DMG_FLAG,
195 . igmat,ipgmat,kk,nptt,ipt_all,npttot,nuvarv,ilaw,
196 . failnpt,joff,siznul,ply_id,ij(5),k,iseq,progressive_crack,
197 . orth_damage,l_dmg,iprony,israte,nvartmp,inloc,idrape,
199 INTEGER :: IJ1,IJ2,IJ3,IJ4,IJ5
200 INTEGER :: IFUNC(MAXFUNC),IFLAG(1),IOFF_DUCT(MVSIZ)
204 . degmb(mvsiz) ,degfx(mvsiz) ,sigoff(mvsiz),
205 . thklyl(mvsiz),thkn(mvsiz) ,etse(mvsiz),
206 . depsxx(mvsiz),depsyy(mvsiz),depsxy(mvsiz),depsyz(mvsiz),
207 . depszx(mvsiz),epsxx(mvsiz) ,epsyy(mvsiz) ,epsxy(mvsiz),
208 . epsyz(mvsiz) ,epszx(mvsiz) ,epspxx(mvsiz),epspyy(mvsiz),
209 . epspxy(mvsiz),epspyz(mvsiz),epspzx(mvsiz),sigoxx(mvsiz),
210 . sigoyy(mvsiz),sigoxy(mvsiz
211 . signxx(mvsiz),signyy(mvsiz),signxy(mvsiz),signyz(mvsiz),
212 . signzx(mvsiz),sigvxx(mvsiz),sigvyy(mvsiz),sigvxy(mvsiz),
213 . sigvyz(mvsiz),sigvzx(mvsiz),tens(mvsiz,5),
214 . wmc(mvsiz), epspl(mvsiz), yld(mvsiz),dpla(mvsiz),
215 . vol0(mvsiz), coef(mvsiz),hardm(mvsiz),tstar(mvsiz),
216 . pla0(mvsiz),g_imp(mvsiz), sigksi(mvsiz,5),
217 . visc(mvsiz),off_old(mvsiz),epsp_loc(mvsiz),eint_loc(2,mvsiz),
218 . dmg_glob_scale(mvsiz),dmg_loc_scale(mvsiz),bid_arr(mvsiz)
220 . fpsxx(mvsiz),fpsyy(mvsiz),fpszz(mvsiz),fpsxy(mvsiz),fpsyx(mvsiz),
221 . epchk(mvsiz),epspdt(mvsiz)
223 . zt,dtinv,vol2,asrate,tref,tmelt,
225 . t1,t2,t3,fact,r3r3,s3s3,trelax,
227 my_real copy_pla(mvsiz)
228 my_real,
DIMENSION(NEL,5) :: dmg_orth_scale
230 my_real ,
DIMENSION(NEL),
TARGET :: le_max
232 my_real,
DIMENSION(:) ,
POINTER :: el_temp,crklen,crkdir,dadv,tfail,el_len,
234 TARGET :: tempel,bufmat,epsxx,epsyy,depsxx,depsyy,scale1,posly,thkly
236 INTEGER ,
DIMENSION(MVSIZ) :: ADDITIONAL_INT_PARAMETERS
237 my_real ,
DIMENSION(MVSIZ) :: ADDITIONAL_FLT_PARAMETERS
240 TYPE(ULAWCINTBUF) :: USERBUF
241 TYPE(BUF_LAY_) ,
POINTER :: BUFLY
242 TYPE(L_BUFEL_) ,
POINTER :: LBUF
243 TYPE(G_BUFEL_) ,
POINTER :: GBUF
244 TYPE(buf_fail_),
POINTER :: FBUF
245 TYPE(fail_param_),
POINTER :: FAIL_PARAM
247 INTEGER,
DIMENSION(:) ,
POINTER :: FLD_IDX,FOFF,OFFLY,ITABLE,IFUNC_FAIL,
248 . itabl_fail,vartmp,iparamf
249 my_real,
DIMENSION(:) ,
POINTER :: uvar,uvarf,uelr,uelr1,dam,
250 . dfmax,tdel ,offl,uvarv,uparam,uparamf,eps1,eps2,deps1,deps2,
251 . dirdmg,dir_orth,zz,thly,damini
253 LOGICAL :: LOGICAL_USERL_AVAIL
255 LOGICAL,
DIMENSION(NEL) :: PRINT_FAIL
261 CHARACTER (LEN=NCHARLINE100):: IUSER_KEY
265 gbuf => elbuf_str%GBUF
266 ipg = (is-1)*elbuf_str%NPTR + ir
267 npg = elbuf_str%NPTR * elbuf_str%NPTS
268 igtyp = igeo(11,pid(1))
269 igmat = igeo(98,pid(1))
271 idrape = elbuf_str%IDRAPE
273 logical_userl_avail=.false.
274 IF (userl_avail > 0) logical_userl_avail=.true.
291 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
293 IF (ixfem == 1 .AND. ixlay > 0) ilayer = ixlay
294 ilaw = elbuf_str%BUFLY(ilayer)%ILAW
295 imat = elbuf_str%BUFLY(ilayer)%IMAT
296 IF (mat_elem%MAT_PARAM(imat)%IVISC > 0) iprony=1
301 IF( (jhbe>=21.AND.jhbe<=29).OR.(impl_s>0)) flag_zcfac=.true.
315 ilaw_user = ipm(217, mat(1))
321 degmb(jft:jlt) = for(jft:jlt,1)*exx(jft:jlt)+for(jft:jlt,2)*eyy(jft:jlt)
322 . + for(jft:jlt,3)*exy(jft:jlt)+for(jft:jlt,4)*eyz(jft:jlt)
323 . + for(jft:jlt,5)*exz(jft:jlt)
324 degfx(jft:jlt) = mom(jft:jlt,1)*kxx(jft:jlt)+mom(jft:jlt,2)*kyy(jft:jlt) +mom(jft:jlt,3)*kxy(jft:jlt)
326 vol0(jft:jlt) = area(jft:jlt)*thk0(jft:jlt)
327 thkn(jft:jlt) = thk(jft:jlt)
328 for(jft:jlt,1) = zero
329 for(jft:jlt,2) = zero
330 for(jft:jlt,3) = zero
331 for(jft:jlt,4) = zero
332 for(jft:jlt,5) = zero
333 mom(jft:jlt,1) = zero
334 mom(jft:jlt,2) = zero
335 mom(jft:jlt,3) = zero
337 IF(flag_zcfac) zcfac(jft:jlt,2)= one
340 off_old(jft:jlt) = off(jft:jlt)
341 ioff_duct(jft:jlt) = 0
342 dmg_glob_scale(jft:jlt) = one
344 epchk(1:mvsiz) = zero
345 viscmx(1:mvsiz) = zero
347 dtinv = dt1 /
max(dt1**2,em20)
361 IF (ixfem == 1 .AND. ixlay > 0) ilayer = ixlay
362 imat = elbuf_str%BUFLY(ilayer)%IMAT
363 ilaw = elbuf_str%BUFLY(ilayer)%ILAW
365 DO it = 1,elbuf_str%BUFLY(ilayer)%NPTT
366 uvar => elbuf_str%BUFLY(ilayer)%MAT(ir,is,it)%VAR
367 nuvar = elbuf_str%BUFLY(ilayer)%NVAR_MAT
370 IF (nlay == 1) kk = it
375 uuvar(i,jj) = uvar(ii + i)
384 IF (ixfem == 1 .AND. ixlay > 0)
THEN
389 progressive_crack = 0
392 IF (igtyp == 52)
THEN
393 ply_id =
ply_info(1,stack%IGEO(2+ilay,isubstack)-numstack)
394 ELSEIF(igtyp == 17 .OR. igtyp == 51)
THEN
395 ply_id = igeo(1,stack%IGEO(2+ilay,isubstack))
397 bufly => elbuf_str%BUFLY(ilayer)
399 jmly = 1 + (ilayer-1)*jlt
400 jdir = 1 + (ilayer-1)*jlt*2
405 nuvar = bufly%NVAR_MAT
406 nvartmp= bufly%NVARTMP
407 nuvarv = bufly%NVAR_VISC
409 iadbuf =
max(1,ipm(7,imat))
412 uparam => bufmat(iadbuf:iadbuf+nuparam-1)
413 numtabl= ipm(226,imat)
414 itable => ipm(226+1:226+numtabl,imat)
415 mat_id = mat_elem%MAT_PARAM(imat)%MAT_ID
418 ifunc(i)=ipm(10+i,imat)
425 depsyz(jft:jlt)=eyz(jft:jlt)
426 depszx(jft:jlt)=exz(jft:jlt)
429 epsyz(jft:jlt)= gstr(jft:jlt,4)
430 epszx(jft:jlt)= gstr(jft:jlt,5)
432 epsxy(jft:jlt) = zero
433 epsyz(jft:jlt) = zero
434 epszx(jft:jlt) = zero
440 asrate =
min(one, pm(9,imat)*dt1)
446 IF (jthe > 0 .or. elbuf_str%bufly(ilayer)%l_temp > 0)
THEN
447 tref = mat_elem%mat_param(imat)%therm%tref
448 tmelt = mat_elem%mat_param(imat)%therm%tmelt
449 tstar(1:nel) =
max(zero, (tempel(1:nel) - tref) /
max(tmelt-tref, em20))
459 jpos = 1 + (ipt-1)*jlt
461 lbuf => bufly%LBUF(ir,is,it)
462 uvar => bufly%MAT(ir,is,it)%VAR
463 uvarv => bufly%VISC(ir,is,it)%VAR
464 vartmp=> bufly%MAT(ir,is,it)%VARTMP
465 dirdmg => lbuf%DMG(1:l_dmg*nel)
466 IF(idrape > 0 ) jdir = 1 + (ipt - 1)*jlt*2
471 varnl(i,it) =
max(varnl(i,it),zero)
472 lbuf%PLANL(i) = lbuf%PLANL(i) + varnl(i,it)
473 lbuf%EPSDNL(i) = varnl(i,it)/
max(dt1,em20)
477 IF (jthe == 0 .and. bufly%L_TEMP > 0)
THEN
478 el_temp => lbuf%TEMP(1:nel)
480 el_temp => tempel(1:nel)
482!----------------------------------------------------------------------
486 if (bufly%l_epsd > 0)
then
488 epspl(i) = asrate*epsd_pg(i) + (one-asrate)*lbuf%epsd(i)
489 epspdt(i) = epspl(i)*dt1
497 zz => posly(1:nel,ipt)
498 thly => thkly(jpos:jpos+nel-1)
499 thklyl(1:nel) = thly(1:nel)*thk0(1:nel)
501 IF (igtyp == 1 .or. igtyp == 9)
THEN
502 wmc(1:nel) = wm(ipt,npt)
504 wmc(1:nel) = zz(1:nel)*thly(1:nel)
509 signxx(1:mvsiz) = zero
510 signyy(1:mvsiz) = zero
511 signxy(1:mvsiz) = zero
512 signyz(1:mvsiz) = zero
513 signzx(1:mvsiz) = zero
514 sigvxx(1:mvsiz) = zero
515 sigvyy(1:mvsiz) = zero
516 sigvxy(1:mvsiz) = zero
517 sigvyz(1:mvsiz) = zero
518 sigvzx(1:mvsiz) = zero
519 sigoxx(jft:jlt) = lbuf%SIG(ij(1)+jft:ij(1)+jlt)
520 sigoyy(jft:jlt) = lbuf%SIG(ij(2)+jft:ij(2)+jlt)
521 sigoxy(jft:jlt) = lbuf%SIG(ij(3)+jft:ij(3)+jlt)
522 sigoyz(jft:jlt) = lbuf%SIG(ij(4)+jft:ij(4)+jlt)
523 sigozx(jft:jlt) = lbuf%SIG(ij(5)+jft:ij(5)+jlt)
528 depsxx(i)=exx(i)+zt*kxx(i)
530 depsxy(i)=exy(i)+zt*kxy(i)
535 epsxx(i)= gstr(i,1)+zt*gstr(i,6)
536 epsyy(i)= gstr(i,2)+zt*gstr(i,7)
537 epsxy(i)= gstr(i,3)+zt*gstr(i,8)
543 ELSEIF (igtyp == 16)
THEN
545 IF (ismstr == 11)
THEN
555 t1 = gstr(i,1) + zt*gstr(i,6)
556 t2 = gstr(i,2) + zt*gstr(i,7)
557 t3 = half*(gstr(i,3) + zt*gstr(i,8))
558 depsxy(i) = (r1*r2 + s1*s2) / (r1*s2 - r2*s1)
559 depsxx(i) = r1*r1*t1 + s1*s1*t2 + two*r1*s1*t3
560 depsyy(i) = r2*r2*t1 + s2*s2*t2 + two*r2*s2*t3 ! eps_y dir2
573 t1 = exx(i) + zt*kxx(i)
574 t2 = eyy(i) + zt*kyy(i)
575 t3 = half*(exy(i) + zt*kxy(i))
576 depsxy(i) = (r1*r2 + s1*s2) / (r1*s2 - r2*s1)
577 depsxx(i) = r1*r1*t1 + s1*s1*t2 + two*r1*s1*t3
578 depsyy(i) = r2*r2*t1 + s2*s2*t2 + two*r2*s2*t3 ! delta_eps_y dir2
586 epsxx(i) = gstr(i,1) + zt*gstr(i,6)
587 epsyy(i) = gstr(i,2) + zt*gstr(i,7)
588 epsxy(i) = gstr(i,3) + zt*gstr(i,8)
596 tens(i,1)=exx(i)+zt*kxx(i)
597 tens(i,2)=eyy(i)+zt*kyy(i)
598 tens(i,3)=half*(exy(i)+zt*kxy(i))
599 tens(i,4)=half*eyz(i)
600 tens(i,5)=half*exz(i)
603 CALL rotov(jft,jlt,tens,dir_a(jdir),nel)
608 depsxy(i)=two*tens(i,3)
609 depsyz(i)=two*tens(i,4)
610 depszx(i)=two*tens(i,5)
615 tens(i,1)= gstr(i,1)+zt*gstr(i,6)
616 tens(i,2)= gstr(i,2)+zt*gstr(i,7)
617 tens(i,3)= half*(gstr(i,3)+zt*gstr(i,8))
618 tens(i,4)= half*gstr(i,4)
619 tens(i,5)= half*gstr(i,5)
622 CALL rotov(jft,jlt,tens,dir_a(jdir),nel)
628 epsxy(i) = two*tens(i,3)
629 epsyz(i) = two*tens(i,4)
630 epszx(i) = two*tens(i,5)
640 epspxx(i)=depsxx(i)*dtinv
641 epspyy(i)=depsyy(i)*dtinv
642 epspxy(i)=depsxy(i)*dtinv
643 epspyz(i)=depsyz(i)*dtinv
644 epspzx(i)=depszx(i)*dtinv
647 IF (ifailure == 1)
THEN
648 IF (elbuf_str%BUFLY(ilayer)%L_PLA > 0)
THEN
649 pla0(jft:jlt) = lbuf%PLA(jft:jlt)
664 eint_loc(1,i) = eint(i,1)
665 eint_loc(2,i) = eint(i,2)
666 copy_pla(i) = lbuf%PLA(i)
669 IF (logical_userl_avail)
THEN
671 CALL eng_userlib_sigepsc(29,
672 1 jlt ,nuparam,nuvar ,nfunc ,ifunc ,
673 2 npf ,npt ,ipt ,iflag ,
674 2 tf ,tt_local,dt1c ,uparam ,rho,
675 3 area ,eint_loc,thklyl ,
676 4 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
677 5 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
678 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
679 7 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
680 8 signxx ,signyy ,signxy ,signyz ,signzx ,
681 9 sigvxx ,sigvyy ,sigvxy ,sigvyz ,sigvzx ,
682 a ssp ,viscmx ,thkn ,copy_pla ,uvar ,
694! 8 signxx ,signyy ,signxy ,signyz ,signzx ,
702 option=
'/MAT/LAW29 - SHELL '
703 size=len_trim(option)
704 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
711 eint(i,1) = eint_loc(1,i)
712 eint(i,2) = eint_loc(2,i)
713 lbuf%PLA(i) = copy_pla(i)
725 ELSEIF (ilaw == 30)
THEN
731 eint_loc(1,i) = eint(i,1)
732 eint_loc(2,i) = eint(i,2)
733 copy_pla(i) = lbuf%PLA(i)
736 IF (logical_userl_avail)
THEN
738 CALL eng_userlib_sigepsc(30,
739 1 jlt ,nuparam,nuvar ,nfunc ,ifunc ,
740 2 npf ,npt ,ipt ,iflag ,
741 2 tf ,tt_local,dt1c ,uparam ,rho,
742 3 area ,eint_loc,thklyl ,
743 4 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
744 5 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
745 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
746 7 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
747 8 signxx ,signyy ,signxy ,signyz ,signzx ,
748 9 sigvxx ,sigvyy ,sigvxy ,sigvyz ,sigvzx ,
749 a ssp ,viscmx ,thkn ,copy_pla ,uvar ,
753! 1 jlt ,nuparam,nuvar ,nfunc ,ifunc ,
762! 9 sigvxx ,sigvyy ,sigvxy ,sigvyz ,sigvzx ,
763! a ssp ,viscmx ,thkn ,copy_pla ,uvar ,
768 option=
'/MAT/LAW30 - SHELL '
769 size=len_trim(option)
770 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
777 eint(i,1) = eint_loc(1,i)
778 eint(i,2) = eint_loc(2,i)
779 lbuf%PLA(i) = copy_pla(i)
783 IF (u_tagplas(i) /= 0)
THEN
791 ELSEIF (ilaw == 31)
THEN
797 eint_loc(1,i) = eint(i,1)
798 eint_loc(2,i) = eint(i,2)
799 copy_pla(i) = lbuf%PLA(i)
802 IF (logical_userl_avail)
THEN
804 CALL eng_userlib_sigepsc(31,
805 1 jlt ,nuparam,nuvar ,nfunc ,ifunc ,
806 2 npf ,npt ,ipt ,iflag ,
807 2 tf ,tt_local,dt1c ,uparam ,rho ,
808 3 area ,eint_loc,thklyl ,
809 4 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
810 5 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,
811 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
812 7 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
813 8 signxx ,signyy ,signxy ,signyz ,signzx ,
814 9 sigvxx ,sigvyy ,sigvxy ,sigvyz ,sigvzx ,
815 a ssp ,viscmx ,thkn ,copy_pla ,uvar ,
834 option=
'/MAT/LAW31 - SHELL '
835 size=len_trim(option)
836 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
843 eint(i,1) = eint_loc(1,i)
844 eint(i,2) = eint_loc(2,i)
845 lbuf%PLA(i) = copy_pla(i)
849 IF (u_tagplas(i) /= 0)
THEN
858 ELSEIF (ilaw == 99)
THEN
865 eint_loc(1,i) = eint(i,1)
866 eint_loc(2,i) = eint(i,2)
867 copy_pla(i) = lbuf%PLA(i)
870 IF (logical_userl_avail)
THEN
872 IF (ismstr == 10)
THEN
876 fpsxx(i) = f_def(i,1)+zt*f_def(i,6) + one
877 fpsyy(i) = f_def(i,2)+zt*f_def(i,7) + one
878 fpsxy(i) = f_def(i,3)+zt*f_def(i,8)
879 fpsyx(i) = f_def(i,4)+zt*f_def(i,5)
880 fpszz(i) = thkn(i)/gbuf%THK_I(i)
882 IF (igtyp /= 1 .AND.igtyp /= 16)
THEN
883 CALL rotos4(jft,jlt,fpsxx,fpsyy,fpsxy,fpsyx,dir_a(jdir),nel)
895 CALL eng_userlib_get_lawc_var(
896 * ncycle ,imat ,ipt ,npt ,iflag ,
898 * r23 ,r31 ,r32 ,r33 ,sigoxx ,
899 * sigoyy ,sigoxy ,sigoyz ,sigozx ,epspxx ,
900 * epspyy ,epspxy ,epspyz ,epspzx ,epsxx ,
901 * epsyy ,epsxy ,epsyz ,epszx ,depsxx ,
902 * depsyy ,depsxy ,depsyz ,depszx ,thklyl ,
903 * thkn ,signxx ,signyy ,signxy ,signyz ,
904 * signzx ,sigvxx ,sigvyy ,sigvxy ,sigvyz ,
907 IF (dlibtkvers >= 1301501260)
THEN
909 CALL eng_userlib_get_lawc_var_2(
910 * fpsxx ,mvsiz ,fpsyy ,mvsiz,
911 * fpszz ,mvsiz ,fpsxy ,mvsiz ,fpsyx ,mvsiz ,el_temp ,mvsiz ,
912 * bid_arr,ipg ,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
913 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
914 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
915 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
916 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
917 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
918 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
919 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
920 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
921 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
922 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
923 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
924 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
925 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
926 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
927 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
928 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
929 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
930 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
931 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
932 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
933 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
934 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul)
938 CALL eng_userlib_sigeps99c(
939 * jlt ,nuparam ,nuvar ,ilaw_user ,nfunc ,
940 * ifunc ,npf ,ngl ,tf ,tt_local,
941 * dt1c ,uparam ,rho ,area ,eint_loc,
942 * shf ,ssp ,viscmx ,copy_pla ,uvar ,
945 CALL eng_userlib_set_lawc(
946 * signxx ,signyy ,signxy, signyz, signzx,
947 * sigvxx ,sigvyy ,sigvxy, sigvyz, sigvzx,
949 IF (dlibtkvers >= 1301501260)
THEN
951 CALL eng_userlib_set_lawc_var_2(el_temp,mvsiz,bid_arr,siznul,
952 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
953 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
954 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
955 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
956 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
957 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
958 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
959 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
960 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
961 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
962 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
963 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
964 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
965 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,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
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 )
979 userbuf%NCYCLE = ncycle
983 userbuf%IFLAG = iflag(1)
1000 userbuf%SIGOXX = sigoxx
1001 userbuf%SIGOYY = sigoyy
1002 userbuf%SIGOXY = sigoxy
1003 userbuf%SIGOYZ = sigoyz
1004 userbuf%SIGOZX = sigozx
1006 userbuf%EPSPXX = epspxx
1007 userbuf%EPSPYY = epspyy
1008 userbuf%EPSPXY = epspxy
1009 userbuf%EPSPYZ = epspyz
1010 userbuf%EPSPZX = epspzx
1012 userbuf%EPSXX = epsxx
1013 userbuf%EPSYY = epsyy
1014 userbuf%EPSXY = epsxy
1015 userbuf%EPSYZ = epsyz
1016 userbuf%EPSZX = epszx
1017 IF (ismstr == 10)
THEN
1021 userbuf%FPSXX(i) = f_def(i,1)+zt*f_def(i,6) + one
1022 userbuf%FPSYY(i) = f_def(i,2)+zt*f_def(i,7) + one
1023 userbuf%FPSXY(i) = f_def(i,3)+zt*f_def(i,8)
1024 userbuf%FPSYX(i) = f_def(i,4)+zt*f_def(i,5)
1025 userbuf%FPSZZ(i) = thkn(i)/gbuf%THK_I(i)
1027 IF (igtyp /= 1 .AND.igtyp /= 16)
THEN
1028 CALL rotos4(jft,jlt,userbuf%FPSXX,userbuf%FPSYY,
1029 + userbuf%FPSXY,userbuf%FPSYX,dir_a(jdir),nel)
1032 userbuf%FPSXX = zero
1033 userbuf%FPSYY = zero
1034 userbuf%FPSXY = zero
1035 userbuf%FPSYX = zero
1036 userbuf%FPSZZ = zero
1039 userbuf%DEPSXX = depsxx
1040 userbuf%DEPSYY = depsyy
1041 userbuf%DEPSXY = depsxy
1042 userbuf%DEPSYZ = depsyz
1043 userbuf%DEPSZX = depszx
1045 userbuf%THKLYL = thklyl
1047 userbuf%TEMP = el_temp
1049 userbuf%SIGNXX = signxx
1050 userbuf%SIGNYY = signyy
1051 userbuf%SIGNXY = signxy
1052 userbuf%SIGNYZ = signyz
1053 userbuf%SIGNZX = signzx
1055 userbuf%SIGVXX = sigvxx
1056 userbuf%SIGVYY = sigvyy
1057 userbuf%SIGVXY = sigvxy
1058 userbuf%SIGVYZ = sigvyz
1059 userbuf%SIGVZX = sigvzx
1073 option=
'/MAT/'//iuser_key//
' - SHELL'
1074 size=len_trim(option)
1075 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo
1080 signxx = userbuf%SIGNXX
1081 signyy = userbuf%SIGNYY
1082 signxy = userbuf%SIGNXY
1083 signyz = userbuf%SIGNYZ
1084 signzx = userbuf%SIGNZX
1086 sigvxx = userbuf%SIGVXX
1087 sigvyy = userbuf%SIGVYY
1088 sigvxy = userbuf%SIGVXY
1089 sigvyz = userbuf%SIGVYZ
1090 sigvzx = userbuf%SIGVZX
1094 IF (jthe == 0) el_temp = userbuf%TEMP
1099 eint(i,1) = eint_loc(1,i)
1100 eint(i,2) = eint_loc(2,i)
1101 lbuf%PLA(i) = copy_pla(i)
1105 ELSEIF (ilaw == 200 )
THEN
1108 IF(mds_avail == 1)
THEN
1110 eint_loc(1,i) = eint(i,1)
1111 eint_loc(2,i) = eint(i,2)
1112 copy_pla(i) = lbuf%PLA(i)
1115 IF (ismstr == 10)
THEN
1119 fpsxx(i) = f_def(i,1)+zt*f_def(i,6) + one
1120 fpsyy(i) = f_def(i,2)+zt*f_def(i,7) + one
1121 fpsxy(i) = f_def(i,3)+zt*f_def(i,8)
1122 fpsyx(i) = f_def(i,4)+zt*f_def(i,5)
1123 fpszz(i) = thkn(i)/gbuf%THK_I(i)
1125 IF (igtyp /= 1 .AND.igtyp /= 16)
THEN
1126 CALL rotos4(jft,jlt,fpsxx,fpsyy,fpsxy,fpsyx,dir_a(jdir),nel)
1138 CALL eng_mds_sigeps_c( ncycle , mat_id, ngl ,
1139 * nel , npt , it ,ilay, ipg , iflag,
1140 * uparam , nuparam , uvar , nuvar,
1141 * nfunc , ifunc , tf , npf ,
1142 * tt_local, dt1c , rho , area, eint_loc,
1143 * thkly , thk , shf , etse ,
1144 * epspxx , epspyy , epspxy , epspyz , epspzx ,
1145 * depsxx , depsyy , depsxy , depsyz , depszx ,
1146 * epsxx , epsyy , epsxy , epsyz , epszx ,
1147 * ssp , viscmx , copy_pla, off ,
1148 * el_temp , r11 , r12 , r13 ,
1150 * sigy , sigoxx , sigoyy , sigoxy , sigoyz ,
1151 * sigozx , signxx , signyy , signxy ,
1152 * signyz , signzx , sigvxx , sigvyy , sigvxy ,
1153 * sigvyz , sigvzx ,dpla,
1154 * additional_flt_parameters,additional_int_parameters)
1158 eint(i,1) = eint_loc(1,i)
1159 eint(i,2) = eint_loc(2,i)
1160 lbuf%PLA(i) = copy_pla(i)
1163 CALL mds_userlib_name_get(mds_libname,length)
1164 CALL ancmsg(msgid=287,anmode=aninfo,
1165 . c1=mds_libname(1:length))
1172 viscmx(i) =
max(dm,viscmx(i))
1179 IF (ifailure == 1)
THEN
1180 IF ((itask==0).AND.(imon_mat==1))
CALL startime(timers,121)
1193 dmg_loc_scale(1:nel) = one
1194 dmg_orth_scale(1:nel,1:5) = one
1196 mpt = npttot *
max(1,npg)
1197 fbuf => bufly%FAIL(ir,is,it)
1202 le_max(1:nel) = nloc_dmg%LE_MAX(mat(1))
1203 el_len => le_max(1:nel)
1206 el_len => aldt(1:nel)
1210 IF (bufly%L_PLA > 0)
THEN
1215 epspl(i) = lbuf%EPSDNL(i)
1217 el_pla => lbuf%PLANL(1:nel)
1221 dpla(i) = lbuf%PLA(i) - pla0(i)
1223 el_pla => lbuf%PLA(1:nel)
1227 IF (ixfem == 1)
THEN
1228 uelr1 => elbuf_str%BUFLY(ilayer)%UELR1
1232 IF (ixlay == 0)
THEN
1234 ELSEIF (ixlay > 0)
THEN
1235 uelr => elbuf_str%BUFLY(ixlay)%UELR
1244 uvarf => fbuf%FLOC(ifl)%VAR
1245 nvarf = fbuf%FLOC(ifl)%NVAR
1246 irupt = fbuf%FLOC(ifl)%ILAWF
1247 dam => fbuf%FLOC(ifl)%DAM
1248 dfmax => fbuf%FLOC(ifl)%DAMMX
1249 damini => fbuf%FLOC(ifl)%DAMINI
1250 tdel => fbuf%FLOC(ifl)%TDEL
1251 fld_idx=> fbuf%FLOC(ifl)%INDX
1252 foff => fbuf%FLOC(ifl)%OFF
1253 lf_dammx = fbuf%FLOC(ifl)%LF_DAMMX
1254 fail_param => mat_elem%MAT_PARAM(imat)%FAIL(ifl)
1255 nupar = mat_elem%MAT_PARAM(imat)%FAIL(ifl)%NUPARAM
1256 nipar = mat_elem%MAT_PARAM(imat)%FAIL(ifl)%NIPARAM
1257 nfunc_fail = mat_elem%MAT_PARAM(imat)%FAIL(ifl)%NFUNC
1258 ntabl_fail = mat_elem%MAT_PARAM(imat)%FAIL(ifl)%NTABLE
1259 uparamf => mat_elem%MAT_PARAM(imat)%FAIL(ifl)%UPARAM(1:nupar)
1260 iparamf => mat_elem%MAT_PARAM(imat)%FAIL(ifl)%IPARAM(1:nipar)
1261 ifunc_fail => mat_elem%MAT_PARAM(imat)%FAIL(ifl)%IFUNC(1:nfunc_fail)
1262 itabl_fail => mat_elem%MAT_PARAM(imat)%FAIL(ifl)%TABLE(1:ntabl_fail)
1263!
IF (ixfem == 0) pthkf(ilayer,ifl) = zero
1268 IF (ixfem == 0)
THEN
1270 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1271 2 tt ,ngl ,ipg ,ilayer ,it ,
1272 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1273 4 dpla ,epspl ,tstar ,off ,foff ,
1277 1 nel ,nupar ,uparamf ,nvarf ,uvarf ,
1278 2 tt ,tensx ,dpla ,epspl ,tstar ,
1279 3 ngl ,ipt ,mpt ,nptt ,uelr1 ,
1280 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1281 5 off ,offl ,gbuf%NOFF,dfmax ,tdel ,
1282 6 elcrkini ,ixfem ,ixel ,ilayer ,it )
1286 IF (ixfem == 0)
THEN
1288 1 nel ,nuparam ,nvarf ,uparam ,uvarf ,
1289 2 tt ,dt1c ,ipg ,ilayer ,it ,
1290 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1291 4 ngl ,off ,foff ,dfmax ,tdel )
1294 1 nel ,nupar ,uparamf ,nvarf ,uvarf ,
1295 2 tt ,dt1c ,tensx ,dfmax ,tdel ,
1296 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1298 5 gbuf%NOFF,off ,offl ,elcrkini ,ixfem ,
1299 6 ixel ,ilayer ,it ,nptt ,uelr1 )
1304 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1305 2 tt ,ngl ,ipg ,ilayer ,it ,
1306 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1307 4 dpla ,foff ,dfmax ,tdel )
1311 copy_pla(i) = lbuf%PLA(i)
1313 IF (logical_userl_avail)
THEN
1315 CALL eng_userlib_flawc(irupt,nel ,nupar,nvarf,nfunc_fail,ifunc_fail,npf,
1316 2 tf ,tt_local ,dt1c ,uparamf,ngl ,ipt,
1317 3 mpt ,ipg ,ibidon2,ibidon3 ,
1318 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1319 5 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
1320 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1321 7 copy_pla ,dpla ,epspl ,uvarf ,uelr ,
1322 8 off ,aldt ,area ,dfmax,bidon4,bidon5 )
1329! 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1335 option=
'/FAIL/USER1 - SHELL '
1336 size=len_trim(option)
1337 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
1343 lbuf%PLA(i) = copy_pla(i)
1349 copy_pla(i) = lbuf%PLA(i)
1351 IF (logical_userl_avail)
THEN
1353 CALL eng_userlib_flawc(irupt,nel ,nupar,nvarf,nfunc_fail,ifunc_fail,npf,
1354 2 tf ,tt_local,dt1c ,uparamf,ngl ,ipt,
1355 3 mpt ,ipg ,ibidon2,ibidon3 ,
1356 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1357 5 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
1358 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1359 7 copy_pla ,dpla ,epspl ,uvarf ,uelr ,
1360 8 off ,aldt ,area ,dfmax,bidon4,bidon5 )
1373 option=
'/FAIL/USER2 - SHELL '
1374 size=len_trim(option)
1375 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
1381 lbuf%PLA(i) = copy_pla(i)
1387 copy_pla(i) = lbuf%PLA(i)
1389 IF (logical_userl_avail)
THEN
1391 CALL eng_userlib_flawc(irupt,nel ,nupar,nvarf,nfunc_fail,ifunc_fail,npf,
1392 2 tf ,tt_local ,dt1c ,uparamf,ngl ,ipt,
1393 3 mpt ,ipg ,ibidon2,ibidon3 ,
1394 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1395 5 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
1396 6 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1397 7 copy_pla ,dpla ,epspl ,uvarf ,uelr ,
1398 8 off ,aldt ,area ,dfmax,bidon4,bidon5 )
1406! 7 copy_pla ,dpla ,epspl ,uvarf ,uelr ,
1411 option=
'/FAIL/USER3 - SHELL '
1412 size=len_trim(option)
1413 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
1419 lbuf%PLA(i) = copy_pla(i)
1425 epsxx(i)= gstr(i,1)+zt*gstr(i,6)
1426 epsyy(i)= gstr(i,2)+zt*gstr(i,7)
1427 epsxy(i)= gstr(i,3)+zt*gstr(i,8)
1431 IF (ixfem == 0)
THEN
1433 1 nel ,nupar ,nfunc_fail,ifunc_fail ,
1434 2 npf ,tf ,tt ,uparamf ,
1435 3 ngl ,ipg ,ilayer ,it ,
1436 4 epsxx ,epsyy ,epsxy ,lf_dammx ,
1437 5 depsxx ,depsyy ,depsxy ,el_pla ,
1438 6 zt ,off ,foff ,tdel ,
1439 7 fld_idx ,dam ,dfmax ,dt1 ,
1440 8 nipar ,iparamf ,nvarf ,uvarf )
1443 1 nel ,nupar ,nvarf ,nfunc_fail,ifunc_fail,
1444 2 npf ,tf ,tt ,uparamf ,
1445 3 ngl ,ipt ,mpt ,ssp ,tensx ,
1446 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1447 5 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1448 6 uvarf ,gbuf%NOFF ,off ,lf_dammx ,
1449 7 elcrkini ,ixfem ,ixel ,ilayer ,it ,
1450 8 offl ,nptt ,uelr1 ,dfmax ,tdel ,
1451 9 dam ,fld_idx ,nipar ,iparamf ,el_pla ,
1452 a depsxx ,depsyy ,depsxy ,dt1 )
1457 1 nel ,nupar ,uparamf ,nvarf ,uvarf ,
1458 2 tt ,ngl ,ipg ,ilayer ,it ,
1459 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1460 4 dpla ,off ,foff ,dfmax ,
1465 1 nel ,nfunc_fail ,nupar ,nvarf ,ifunc_fail ,
1466 2 uparamf ,uvarf ,npf ,tf ,tt ,
1467 3 ngl ,ipg ,ilayer ,it ,epspl ,
1468 4 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1469 5 off ,foff ,dfmax ,tdel ,
1470 6 dmg_flag ,dmg_loc_scale ,aldt ,tstar ,ismstr )
1474 1 nel ,nupar ,nvarf ,nfunc_fail ,ifunc_fail ,
1475 2 uparamf ,uvarf ,npf ,tf ,tt ,
1476 3 ngl ,ipg ,ilayer ,it ,epspl ,
1477 4 area ,thkn ,dmg_flag ,
1478 5 dmg_loc_scale ,off ,foff ,dfmax ,tdel ,
1479 6 signxx ,signyy ,signxy ,signyz ,signzx ,
1480 7 depsxx ,depsyy ,depsxy ,depsyz ,depszx )
1484 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1485 2 tt ,dt1c ,ipg ,ilayer ,it ,
1486 3 ngl ,dmg_flag ,dmg_loc_scale ,dfmax ,tdel ,
1487 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1488 5 off ,foff ,lf_dammx )
1496 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1497 2 tt ,dt1c ,ipg ,ilayer ,it ,
1498 3 ngl ,dmg_flag ,dmg_loc_scale ,dfmax ,tdel ,
1499 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1500 5 off ,foff ,ply_id ,
1501 6 epspl ,fwave_el ,dadv ,lf_dammx )
1505 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1506 2 tt ,ngl ,ipg ,ilayer ,it ,
1507 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1508 4 off ,foff ,dmg_flag ,dmg_loc_scale ,
1509 5 dfmax ,lf_dammx ,tdel ,dt1c )
1512 IF (ixfem == 0)
THEN
1514 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1515 2 nfunc_fail ,ifunc_fail ,table ,npf ,tf ,
1516 3 tt ,ngl ,ipg ,ilayer ,it ,
1517 4 signxx ,signyy ,signxy ,ntabl_fail,itabl_fail,
1518 5 dpla ,epspl ,thkn ,el_len ,tstar ,
1519 6 dmg_flag,dmg_loc_scale ,off ,foff ,
1520 7 dfmax ,tdel ,inloc )
1523 1 nel ,nupar ,nvarf ,npf ,tf ,
1524 2 tt ,dt1c ,uparamf ,ngl ,ipt ,
1525 3 mpt ,nfunc_fail ,ifunc_fail ,table ,
1526 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1527 5 dpla ,epspl ,tstar ,tensx ,uvarf ,
1528 6 gbuf%NOFF,aldt ,off ,offl ,elcrkini ,
1529 7 ixfem ,ixel ,ilayer ,dfmax ,tdel ,
1530 8 dmg_flag ,ntabl_fail,itabl_fail)
1535 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1536 2 nfunc_fail,ifunc_fail,npf ,tf ,ngl ,
1537 3 tt ,dt1 ,ipg ,ilayer ,it ,
1538 4 epsxx ,epsyy ,epsxy ,dmg_flag ,dmg_loc_scale ,
1539 5 epspxx ,epspyy ,epspxy ,aldt ,ismstr ,
1540 6 signxx ,signyy ,signxy ,lf_dammx ,
1541 7 off ,offly ,foff ,dfmax ,tdel )
1545 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1546 2 tt ,npf ,tf ,nfunc_fail,ifunc_fail,
1547 3 ngl ,ipg ,ilayer ,it ,hardm ,
1548 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1549 5 off ,foff ,dfmax ,tdel ,lf_dammx )
1552 irot = elbuf_str%BUFLY(ilayer)%LY_DIRA
1553 crkdir => elbuf_str%BUFLY(ilayer)%CRKDIR
1554 ifailwv = failwave%WAVE_MOD
1555 progressive_crack = 1
1560 crklen => elbuf_str%BUFLY(ilayer)%DMG(1:nel)
1562 crklen => aldt(1:nel)
1565 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1566 2 tt ,dt1 ,ssp ,aldt ,crklen ,
1567 3 elcrkini ,uelr1 ,off ,offly ,
1568 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1569 5 ngl ,ixel ,ilayer ,ipt ,nptt ,
1570 6 ixfem ,irot ,dir_a(jdir),dir1_crk ,dir2_crk ,
1573 ELSEIF (ifailwv > 0)
THEN
1575 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1576 2 tt ,dt1 ,ssp ,aldt ,fwave_el ,
1577 3 uelr ,uelr1 ,off ,offly ,foff ,
1578 4 signxx ,signyy ,signxy ,dfmax ,ngl ,
1579 5 ilayer ,ipt ,nptt ,crkdir ,dadv ,
1580 6 dmg_flag ,trelax )
1586 2 tt ,uparamf ,ngl ,ipt ,mpt ,
1587 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1588 4 dpla ,uvarf ,uelr1 ,
1589 5 off ,offl ,dfmax ,tdel ,nfunc_fail,
1590 6 ifunc_fail,npf ,tf ,el_len ,foff ,ipg ,
1591 7 dmg_flag ,dmg_loc_scale)
1595 IF (ismstr == 11)
THEN
1596 deps1 => depsxx(1:nel)
1597 deps2 => depsyy(1:nel)
1598 eps1 => depsxx(1:nel)
1599 eps2 => depsyy(1:nel)
1603 deps1 => depsxx(1:nel)
1604 deps2 => depsyy(1:nel)
1605 eps1 => uvar(ii:ii+nel)
1606 eps2 => uvar(jj:jj+nel)
1609 1 nel ,ngl ,nupar ,nvarf ,nfunc_fail ,
1610 2 uparamf ,uvarf ,ifunc_fail ,tt ,dt1 ,
1611 3 npf ,tf ,deps1 ,deps2 ,eps1 ,
1612 4 eps2 ,signxx ,signyy ,dfmax ,tdel ,
1613 5 ipg ,ilayer ,it ,off ,foff )
1617 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1618 2 tt ,ngl ,ipt ,ilayer ,it ,
1619 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1621 5 dfmax ,tdel ,uelr1 ,mpt ,
1629 4 signxx ,signyy ,signxy ,
1630 5 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1631 6 dpla ,uvarf ,uelr1 ,foff ,
1632 7 off ,dfmax ,tdel )
1636 1 jlt ,nvarf ,tt ,dt1 ,uparamf ,ngl ,
1637 2 signxx ,signyy ,signxy ,epsxx ,epsyy ,epsxy ,
1638 3 uvarf ,off ,dfmax ,ismstr )
1641 IF (ixfem == 0)
THEN
1643 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1644 2 nfunc_fail ,ifunc_fail ,npf ,tf ,
1645 3 tt ,ngl ,ipg ,ilayer ,it ,
1646 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1647 5 dpla ,epspl ,thkn ,el_len ,tstar ,
1648 6 off ,foff ,dfmax ,tdel )
1651 1 nel ,nupar ,nvarf ,npf ,tf ,
1652 2 tt ,dt1c ,uparamf ,ngl ,ipt ,
1653 3 mpt ,nfunc_fail ,ifunc_fail ,dmg_flag ,
1654 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1655 5 dpla ,epspl ,tstar ,tensx ,uvarf ,
1656 6 gbuf%NOFF,aldt ,off ,offl ,elcrkini ,
1657 7 ixfem ,ixel ,ilayer ,dfmax ,tdel )
1664 2 tt ,uparamf ,ngl ,ipt ,mpt ,
1665 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1666 4 dpla ,epspl ,uvarf ,uelr1 ,
1667 5 off ,offl ,dfmax ,tdel ,nfunc_fail,
1668 6 ifunc_fail,npf ,tf ,el_len ,foff ,
1674 1 jlt ,nupar ,nvarf ,nfunc_fail ,ifunc_fail ,
1675 2 npf ,tf ,tt ,dt1c ,uparamf ,ipg ,
1676 3 ngl ,gbuf%DT ,epspl ,uvarf ,off ,
1677 4 epsxx ,epsyy ,epsxy ,area ,thkn ,
1678 5 signxx ,signyy ,signxy ,signyz ,signzx ,
1679 6 el_temp ,dfmax ,aldt ,table ,tdel ,
1680 7 thk0 ,ipt ,foff ,thklyl ,ntabl_fail,
1681 8 itabl_fail,lf_dammx,nipar ,iparamf ,dt)
1686 1 jlt ,nupar ,nvarf ,tt ,dt1c ,uparamf ,
1687 2 signxx ,signyy ,signxy ,signyz ,signzx ,mpt ,
1688 3 ngl ,dpla ,uvarf ,off ,dfmax ,tdel ,
1689 4 area ,foff ,igtyp ,offl ,ipt ,thk0 )
1694 1 jlt ,nupar ,nvarf ,nfunc_fail,ifunc_fail,
1695 2 npf ,table ,tf ,tt ,uparamf ,
1696 3 ngl ,el_len ,dpla ,epspl ,uvarf ,
1697 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1698 5 el_temp ,foff ,dfmax ,tdel ,ipt ,
1699 6 ipg ,dmg_flag ,dmg_loc_scale,ntabl_fail,itabl_fail)
1704 1 jlt ,nupar ,nvarf ,
1705 2 table ,ntabl_fail,itabl_fail ,tt ,uparamf ,
1706 3 ngl ,el_len ,dpla ,epspl ,uvarf ,
1707 4 signxx ,signyy ,signxy ,signyz ,signzx ,
1708 5 el_pla ,el_temp ,sigy ,foff ,dfmax ,
1709 6 tdel ,ipt ,ipg ,dmg_flag ,dmg_loc_scale,
1710 7 damini ,area ,inloc ,npg )
1715 1 jlt ,uparamf ,nupar ,uvarf ,nvarf ,
1716 2 tt ,ngl ,ipt ,dpla ,el_pla ,
1717 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1718 4 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1719 5 dfmax ,nfunc_fail ,ifunc_fail ,el_len ,foff ,
1720 6 ipg ,dmg_flag ,dmg_loc_scale,npf ,tf )
1725 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1726 2 tt ,ngl ,ipg ,ilayer ,it ,
1727 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1728 4 off ,foff ,dmg_flag ,dmg_loc_scale ,
1729 5 dfmax ,lf_dammx ,tdel ,dt1c )
1734 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1735 2 tt ,ngl ,ipg ,ilayer ,it ,
1736 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1737 4 off ,foff ,dmg_flag ,dmg_loc_scale ,
1738 5 dfmax ,lf_dammx ,tdel ,dt1c )
1743 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1744 2 tt ,ngl ,ipg ,ilayer ,it ,
1745 3 signxx ,signyy ,signxy ,signyz ,signzx ,
1746 4 off ,foff ,dmg_flag ,dmg_loc_scale ,
1747 5 dfmax ,lf_dammx ,tdel ,dt1c )
1752 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1753 2 tt ,ngl ,ipg ,ilayer ,it ,
1754 3 epsxx ,epsyy ,epsxy ,epsyz ,epszx ,
1755 4 off ,foff ,dmg_flag ,dmg_loc_scale ,
1756 5 dfmax ,lf_dammx ,tdel ,dt1c )
1761 1 nel ,nupar ,nvarf ,uparamf ,uvarf ,
1762 2 ngl ,tt ,ipg ,ilayer ,it ,
1763 3 depsxx ,depsyy ,depsxy ,dmg_flag ,dmg_orth_scale,
1764 4 aldt ,foff ,dfmax ,tdel ,
1765 5 signxx ,signyy ,signxy ,igtyp ,ply_id )
1769 CALL fail_lemaitre_c(
1770 1 nel ,nupar ,uparamf ,mat_elem%MAT_PARAM(imat),
1771 2 signxx ,signyy ,signxy ,dpla ,el_pla ,
1772 3 foff ,off ,dfmax ,tdel ,dmg_flag ,
1773 4 dmg_loc_scale,ipg ,ply_id ,ilayer ,it ,
1778 CALL fail_composite_c(
1779 1 nel ,fail_param,nvarf ,uvarf ,tt ,
1780 2 ngl ,ipg ,ilayer ,it ,ply_id ,
1781 3 igtyp ,tdel ,signxx ,signyy ,signxy ,
1782 4 foff ,dmg_flag ,dmg_loc_scale,lf_dammx,dfmax )
1787 IF (orth_damage == 0)
THEN
1789 IF (foff(i) == 0)
THEN
1797 IF (off(i) == zero)
THEN
1804 IF ((itask==0).AND.(imon_mat==1))
CALL stoptime(timers,121)
1809#include "vectorize.inc"
1811 lbuf%SIG(ij(1)+i) = signxx(i) * sigoff(i)
1812 lbuf%SIG(ij(2)+i) = signyy(i) * sigoff(i)
1813 lbuf%SIG(ij(3)+i) = signxy(i) * sigoff(i)
1814 lbuf%SIG(ij(4)+i) = signyz(i) * sigoff(i)
1815 lbuf%SIG(ij(5)+i) = signzx(i) * sigoff(i)
1818 IF (igtyp /= 1)
THEN
1819 SELECT CASE (dmg_flag)
1821 tens(jft:jlt,1) = signxx(jft:jlt)+sigvxx(jft:jlt)
1822 tens(jft:jlt,2) = signyy(jft:jlt)+sigvyy(jft:jlt)
1823 tens(jft:jlt,3) = signxy(jft:jlt)+sigvxy(jft:jlt)
1824 tens(jft:jlt,4) = signyz(jft:jlt)+sigvyz(jft:jlt)
1825 tens(jft:jlt,5) = signzx(jft:jlt)+sigvzx(jft:jlt)
1827 tens(jft:jlt,1) = (signxx(jft:jlt)+sigvxx(jft:jlt))*dmg_loc_scale(jft:jlt)
1828 tens(jft:jlt,2) = (signyy(jft:jlt)+sigvyy(jft:jlt))*dmg_loc_scale(jft:jlt)
1829 tens(jft:jlt,3) = (signxy(jft:jlt)+sigvxy(jft:jlt))*dmg_loc_scale(jft:jlt)
1830 tens(jft:jlt,4) = (signyz(jft:jlt)+sigvyz(jft:jlt))*dmg_loc_scale(jft:jlt)
1831 tens(jft:jlt,5) = (signzx(jft:jlt)+sigvzx(jft:jlt))*dmg_loc_scale(jft:jlt)
1833 tens(jft:jlt,1) = (signxx(jft:jlt)+sigvxx(jft:jlt))*dmg_orth_scale(jft:jlt,1)
1834 tens(jft:jlt,2) = (signyy(jft:jlt)+sigvyy(jft:jlt))*dmg_orth_scale(jft:jlt,2)
1835 tens(jft:jlt,3) = (signxy(jft:jlt)+sigvxy(jft:jlt))*dmg_orth_scale(jft:jlt,3)
1836 tens(jft:jlt,4) = (signyz(jft:jlt)+sigvyz(jft:jlt))*dmg_orth_scale(jft:jlt,4)
1837 tens(jft:jlt,5) = (signzx(jft:jlt)+sigvzx(jft:jlt))*dmg_orth_scale(jft:jlt,5)
1840 IF (igtyp == 16)
THEN
1856 r3r3= one+s1*r2+r1*s2
1858 s3s3= one-s1*r2-r1*s2
1863 tens(i,1) = r12a*t1 + r22a*t2 - rs3*t3
1864 tens(i,2) = s12b*t1 + s22b*t2 + rs3*t3
1865 tens(i,3) = rs1*t1 + rs2*t2 + (r3r3 - s3s3)*t3
1866 tens(i,4) = signyz(i)
1867 tens(i,5) = signzx(i)
1871 CALL urotov(jft,jlt,tens,dir_a(jdir),nel)
1876#include "vectorize.inc"
1878 for(i,1) = for(i,1) + thly(i)*tens(i,1)
1879 for(i,2) = for(i,2) + thly(i)*tens(i,2)
1880 for(i,3) = for(i,3) + thly(i)*tens(i,3)
1881 for(i,4) = for(i,4) + thly(i)*tens(i,4)
1882 for(i,5) = for(i,5) + thly(i)*tens(i,5)
1883 mom(i,1) = mom(i,1) + wmc(i)*tens(i,1)
1884 mom(i,2) = mom(i,2) + wmc(i)*tens(i,2)
1885 mom(i,3) = mom(i,3) + wmc(i)*tens(i,3)
1889 SELECT CASE (dmg_flag)
1891 for(1:nel,1) = for(1:nel,1) + thly(1:nel)*(signxx(1:nel)+sigvxx(1:nel))
1892 for(1:nel,2) = for(1:nel,2) + thly(1:nel)*(signyy(1:nel)+sigvyy(1:nel))
1893 for(1:nel,3) = for(1:nel,3) + thly(1:nel)*(signxy(1:nel)+sigvxy(1:nel))
1894 for(1:nel,4) = for(1:nel,4) + thly(1:nel)*(signyz(1:nel)+sigvyz(1:nel))
1895 for(1:nel,5) = for(1:nel,5) + thly(1:nel)*(signzx(1:nel)+sigvzx(1:nel))
1896 mom(1:nel,1) = mom(1:nel,1) + wmc(1:nel)*(signxx(1:nel)+sigvxx(1:nel))
1897 mom(1:nel,2) = mom(1:nel,2) + wmc(1:nel)*(signyy(1:nel)+sigvyy(1:nel))
1898 mom(1:nel,3) = mom(1:nel,3) + wmc(1:nel)*(signxy(1:nel)+sigvxy(1:nel))
1900 for(1:nel,1) = for(1:nel,1) + thly(1:nel)*(signxx(1:nel)+sigvxx(1:nel))*dmg_loc_scale(1:nel)
1901 for(1:nel,2) = for(1:nel,2) + thly(1:nel)*(signyy(1:nel)+sigvyy(1:nel))*dmg_loc_scale(1:nel)
1902 for(1:nel,3) = for(1:nel,3) + thly(1:nel)*(signxy(1:nel)+sigvxy(1:nel))*dmg_loc_scale(1:nel)
1903 for(1:nel,4) = for(1:nel,4) + thly(1:nel)*(signyz(1:nel)+sigvyz(1:nel))*dmg_loc_scale(1:nel)
1904 for(1:nel,5) = for(1:nel,5) + thly(1:nel)*(signzx(1:nel)+sigvzx(1:nel))*dmg_loc_scale(1:nel)
1905 mom(1:nel,1) = mom(1:nel,1) + wmc(1:nel) *(signxx(1:nel)+sigvxx(1:nel))*dmg_loc_scale(1:nel)
1906 mom(1:nel,2) = mom(1:nel,2) + wmc(1:nel) *(signyy(1:nel)+sigvyy(1:nel))*dmg_loc_scale(1:nel)
1907 mom(1:nel,3) = mom(1:nel,3) + wmc(1:nel) *(signxy(1:nel)+sigvxy(1:nel))*dmg_loc_scale(1:nel)
1909 for(1:nel,1) = for(1:nel,1) + thly(1:nel)*(signxx(1:nel)+sigvxx(1:nel))*dmg_orth_scale(1:nel,1)
1910 for(1:nel,2) = for(1:nel,2) + thly(1:nel)*(signyy(1:nel)+sigvyy(1:nel))*dmg_orth_scale(1:nel,2)
1911 for(1:nel,3) = for(1:nel,3) + thly(1:nel)*(signxy(1:nel)+sigvxy(1:nel))*dmg_orth_scale(1:nel,3)
1912 for(1:nel,4) = for(1:nel,4) + thly(1:nel)*(signyz(1:nel)+sigvyz(1:nel))*dmg_orth_scale(1:nel,4)
1913 for(1:nel,5) = for(1:nel,5) + thly(1:nel)*(signzx(1:nel)+sigvzx(1:nel))*dmg_orth_scale(1:nel,5)
1914 mom(1:nel,1) = mom(1:nel,1) + wmc(1:nel) *(signxx(1:nel)+sigvxx(1:nel))*dmg_orth_scale(1:nel,1)
1915 mom(1:nel,2) = mom(1:nel,2) + wmc(1:nel) *(signyy(1:nel)+sigvyy(1:nel))*dmg_orth_scale(1:nel,2)
1916 mom(1:nel,3) = mom(1:nel,3) + wmc(1:nel) *(signxy(1:nel)+sigvxy(1:nel))*dmg_orth_scale(1:nel,3)
1924 zcfac(jft:jlt,1) = zcfac(jft:jlt,1) + etse(jft:jlt) * thly(jft:jlt)
1925 zcfac(jft:jlt,2) =
min(etse(jft:jlt),zcfac(jft:jlt,2))
1927 yld(jft:jlt) = yld(jft:jlt) + sigy(jft:jlt)*thly(jft:jlt)
1928 ssp_eq(jft:jlt) = ssp_eq(jft:jlt) + ssp(jft:jlt)*thly(jft:jlt)
1930 IF (impl_s > 0)
THEN
1931 CALL putsignorc3(jft ,jlt ,iun,ng,ipt,g_imp ,sigksi)
1934 IF (ixel == 0 .and. progressive_crack == 0)
THEN
1935 dir_orth => bufly%DIRA
1936 irot = elbuf_str%BUFLY(ilayer)%LY_DIRA
1937 IF (ixfem == 1)
THEN
1939 . jlt ,ilayer ,ixfem ,elcrkini,
1940 . dir_orth,tensx ,dir1_crk ,dir2_crk ,irot )
1941 ELSEIF (ixfem == 2)
THEN
1944 . jlt ,iptx ,ixfem ,elcrkini,
1945 . dir_orth ,tensx ,dir1_crk,dir2_crk,irot )
1951 IF (bufly%L_PLA > 0)
THEN
1955 IF (off(i) == one)
THEN
1956 varnl(i,it) = lbuf%PLA(i)
1965 ipt_all = ipt_all + nptt
1973 print_fail(1:nel) = .true.
1975 IF (ifailure == 1 .and. ixfem == 0)
THEN
1976 IF (orth_damage == 1)
THEN
1977 tfail => gbuf%DMG(1+nel:nel*2)
1979 . elbuf_str,mat_elem ,geo ,pid(1) ,
1980 . ngl ,nel ,ir ,is ,
1981 . nlay ,npttot ,thk_ly ,thkly ,
1982 . off ,npg ,stack ,isubstack,
1983 . igtyp ,failwave ,fwave_el ,dmg_flag ,
1984 . tt ,trelax ,tfail ,dmg_glob_scale)
1985 ELSEIF (npg == 1)
THEN
1987 . ngl ,nel ,nlay ,npttot ,
1988 . thk_ly ,thkly ,off ,stack ,
1989 . isubstack,igtyp ,failwave ,fwave_el ,
1990 . nlay_max ,laynpt_max,numgeo ,numstack ,
1992 . ipart ,lipart1 ,ipartc ,npart)
1995 . elbuf_str,mat_elem ,geo ,pid(1) ,
1996 . ngl ,nel ,ir ,is ,
1997 . nlay ,npttot ,thk_ly ,thkly ,
1998 . off ,npg ,stack ,isubstack,
1999 . igtyp ,failwave ,fwave_el ,nlay_max ,
2000 . laynpt_max,numgeo ,ipg ,numstack ,
2002 . ipart ,lipart1 ,ipartc ,npart)
2008 IF (ixfem == 0)
THEN
2010 IF (off(i) == four_over_5 .and. ioff_duct(i) == 0 .or.
2011 . off(i) > zero .and. off_old(i) < em01 .or.
2012 . off(i) > zero .and. off(i) < one .and. dmg_flag == 1 .and.
2013 . dmg_glob_scale(i) < em02)
THEN
2016 IF (print_fail(i))
THEN
2027 IF ((off_old(i) > zero) .AND. (off(i) == zero))
THEN
2034 IF (igtyp == 11 .AND. igmat > 0)
THEN
2037 rho(i) = geo(ipgmat+1,pid(1))
2038 ssp(i) = geo(ipgmat+9,pid(1))
2040 ssp_eq(jft:jlt) = ssp(jft:jlt)
2041 ELSEIF (igtyp == 52 .OR.
2042 . ((igtyp == 17 .OR. igtyp == 51) .AND. igmat > 0))
THEN
2044 ssp(i) = pm_stack(9,isubstack)
2045 rho(i) = pm_stack(1,isubstack)
2047 ssp_eq(jft:jlt) = ssp(jft:jlt)
2050 thk(jft:jlt) =
max(thkn(jft:jlt),em30)
2053 visc(jft:jlt) = fact*ssp(jft:jlt)*sqrt(area(jft:jlt))*dtinv*rho(jft:jlt)
2055 for(jft:jlt,1)=for(jft:jlt,1)+visc(jft:jlt)*(exx(jft:jlt)+half*eyy(jft:jlt))
2056 for(jft:jlt,2)=for(jft:jlt,2)+visc(jft:jlt)*(eyy(jft:jlt)+half*exx(jft:jlt))
2057 for(jft:jlt,3)=for(jft:jlt,3)+visc(jft:jlt)* exy(jft:jlt) *third
2059 for(jft:jlt,1)=for(jft:jlt,1)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2060 for(jft:jlt,2)=for(jft:jlt,2)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2061 for(jft:jlt,3)=for(jft:jlt,3)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2062 for(jft:jlt,4)=for(jft:jlt,4)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2063 for(jft:jlt,5)=for(jft:jlt,5)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2064 mom(jft:jlt,1)=mom(jft:jlt,1)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2065 mom(jft:jlt,2)=mom(jft:jlt,2)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2066 mom(jft:jlt,3)=mom(jft:jlt,3)*off(jft:jlt)*dmg_glob_scale(jft:jlt)
2068 degmb(jft:jlt) = degmb(jft:jlt)+ for(jft:jlt,1)*exx(jft:jlt)+for(jft:jlt,2)*eyy(jft:jlt)
2069 . + for(jft:jlt,3)*exy(jft:jlt)+for(jft:jlt,4)*eyz(jft:jlt)
2070 . + for(jft:jlt,5)*exz(jft:jlt)
2071 degfx(jft:jlt) = degfx(jft:jlt)+ mom(jft:jlt,1)*kxx(jft:jlt)+mom(jft:jlt,2)*kyy(jft:jlt)
2072 . + mom(jft:jlt,3)*kxy(jft:jlt)
2076 eint(i,1) = eint(i,1) + degmb(i)*vol2
2077 eint(i,2) = eint(i,2) + degfx(i)*thk0(i)*vol2
2080 IF (jthe > 0) die(jft:jlt) = die(jft:jlt) +
2081 . coef(jft:jlt)*( degmb(jft:jlt)*half*vol0(jft:jlt) +
2082 . degfx(jft:jlt)*thk0(jft:jlt)*half*vol0(jft:jlt) )
2087 IF (off(i) == four_over_5)
THEN
2098 IF (nindx > 0 .and. ixel == 0)
THEN
2099 IF (imconv == 1)
THEN
2102#include "lockon.inc"
2103 WRITE(iout, 1000) ngl(i)
2104 WRITE(istdo,1100) ngl(i),tt
2105#include "lockoff.inc"
2110 1000
FORMAT(1x,
'-- RUPTURE OF SHELL ELEMENT NUMBER ',i10)
2111 1100
FORMAT(1x,
'-- RUPTURE OF SHELL ELEMENT :',i10,
' AT TIME :',g11.4)