94 3 EINT, RHO, QOLD, VOL,
95 4 STRAIN, SIGL, GAMA, UVAR,
96 5 BUFMAT, TF, NPF, STIFN,
97 6 MAT, NGL, NUVAR, DT2T,
98 7 NELTST, ITYPTST, OFFG, GEO,
99 8 PID, EPSD, EL_TEMP, WXX,
100 9 WYY, WZZ, JSPH, MUMAX,
101 A SSP, AIRE, VOLN, VD2,
102 B DELTAX, VIS, D1, D2,
104 D PNEW, PSH, Q, SSP_EQ,
105 E DVOL, SOLD1, SOLD2, SOLD3,
106 F SOLD4, SOLD5, SOLD6, RX,
109 I IPLA, SIGY, DEFP, ISMSTR,
110 J MFXX, MFXY, MFXZ, MFYX,
111 K MFYY, MFYZ, MFZX, MFZY,
112 L MFZZ, IPM, ISORTH, FBUF,
113 M NFAIL, NPG, SIGDD, DXY,
114 N DYX, DYZ, DZY, DZX,
115 O DXZ, FR_WAV, ISROT, V,
117 Q JTHE, ET, MSSA, DMELS,
118 R IPTR, IPTS, IPTT, TABLE,
119 S FVD2, FDELTAX, FSSP, FQVIS,
120 T IPARG1, IGEO, SIGV,
121 U AL_IMP, SIGNOR, ISTRAIN, NG,
122 V ELBUF_TAB,VBUF, ILAY, VK,
123 W IPARG, BUFVOIS, VDX, VDY,
124 X VDZ, IHET, CONDE, ITASK,
125 Y IEXPAN, VOL_AVG, AMU, EPSTH3,
126 Z EPSTH, SVISC, NEL, ETOTSH,
127 1 ISELECT, TSTAR, MUOLD, AMU2,
128 2 DPDM, RHOREF, RHOSP, NLOC_DMG,
129 3 ITY, JTUR , MAT_ELEM, IDEL7NOK,SVIS,
130 4 DT , glob_therm,damp_buf,idamp_freq_range)
146 USE fail_lemaitre_s_mod
147 USE fail_spalling_s_mod
148 USE fail_composite_s_mod
152#include "implicit_f.inc"
156#include "usrplas_c.inc"
157#include "param_c.inc"
158#include "com04_c.inc"
159#include "com08_c.inc"
160#include "com01_c.inc"
161#include "userlib.inc"
162#include "impl1_c.inc"
163#include "timeri_c.inc"
164#include "scr18_c.inc"
168 TYPE(timer_),
INTENT(INOUT) :: TIMERS
169 INTEGER,
INTENT(IN) :: ITY
170 INTEGER,
INTENT(IN) :: JTUR
171 INTEGER,
INTENT(INOUT) :: IDEL7NOK
172 INTEGER LFT ,LLT ,NFT ,MTN, NUVAR,JCVT,ISORTH,NFAIL,NPG,
173 . j, jsph, ipla,ismstr,neltst, ityptst, nuvarr,ng,ilay,
174 . ix, jthe, isrot,istrain,iptr, ipts, iptt,ihet,iexpan,nel
175 INTEGER NPF(*),MAT(MVSIZ),NGL(MVSIZ),PID(MVSIZ),IPM(NPROPMI,*),
176 . iparg1(*),iparg(nparg,*),igeo(npropgi,*),itask,iselect
177 INTEGER,
INTENT(IN) :: IDAMP_FREQ_RANGE
183 . pm(npropm,*), gama(*),pnew(nel),varnl(nel),
184 . off(*), sig(nel,6), sigl(nel,6), strain(nel,6), eint(*),
185 . rho(*),qold(*), vol(*), bufmat(*), tf(*),vk(*),
186 . offg(*),stifn(*),geo(npropg,*),epsd(*),
187 . wxx(*), wyy(*), wzz(*), mumax(*), ssp(*),
188 . aire(*) ,voln(*) ,vd2(*) ,deltax(*),vis(*) ,
189 . sold1(mvsiz) ,sold2(mvsiz) ,sold3(mvsiz) ,
190 . sold4(mvsiz) ,sold5(mvsiz) ,sold6(mvsiz),
191 . d1(*) ,d2(*),d3(*),d4(*),d5(*),d6(*) ,psh(nel),
192 . q(*),ssp_eq(*),dvol(*),
193 . rx(mvsiz) ,ry(mvsiz) ,rz(mvsiz),
194 . sx(mvsiz) ,sy(mvsiz) ,sz(mvsiz) ,
195 . tx(mvsiz) ,ty(mvsiz) ,tz(mvsiz) , v(*), w(*),
196 . mfxx(*) ,mfxy(*) ,mfxz(*) ,mfyx(*) ,mfyy(*) ,mfyz(*) ,
197 . mfzx(*) ,mfzy(*) ,mfzz(*), fqvis(*),fssp(*),
198 . sigv(nel,6), sigy(*),defp(nel),
199 . dxy(*) ,dyx(*) ,dyz(*) ,dzy(*) ,dzx(*) ,dxz(*), sigdd(nel,6),
200 . fr_wav(*),x(*),et(*), mssa(*), dmels(*),fvd2(*),fdeltax(*),
201 . al_imp(mvsiz),signor(mvsiz,6),vdx(*),vdy(*),vdz(*),
202 . svisc(nel,6),amu(mvsiz),amu2(mvsiz),dpdm(mvsiz),vol_avg(mvsiz),epsth(nel),epsth3(mvsiz
203 . etotsh(nel,6),tstar(mvsiz),muold(nel),conde(*), rhoref(*), rhosp(*)
204 TARGET :: bufmat,deltax,varnl,defp
205 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
206 my_real,
DIMENSION(LLT) :: el_temp
207 my_real,
TARGET,
DIMENSION(NUVAR*LLT):: uvar
208 my_real,
TARGET,
DIMENSION(LLT):: scale1,initvarf
209 TYPE (BUF_FAIL_),
TARGET :: FBUF
210 TYPE (BUF_VISC_) :: VBUF
211 TYPE (TTABLE),
DIMENSION(NTABLE) :: TABLE
212 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
213 TYPE (NLOCAL_STR_) :: NLOC_DMG
214 TYPE (MAT_ELEM_) ,
INTENT(INOUT) :: MAT_ELEM
215 TYPE (DT_),
INTENT(IN) :: DT
216 TYPE (GLOB_THERM_) ,
INTENT(INOUT) :: GLOB_THERM
217 TYPE (BUF_DAMP_RANGE_) ,
INTENT(IN):: DAMP_BUF
221 INTEGER NV46, NUMEL, INLOC, JSMS
222 INTEGER I,NPAR,IADBUF,NFUNC,NUMTABL,NTABL_FAIL,ISRATE,SIZNUL,MX,IPG,NPTR,NPTS,
223 . IBID,IBIDON1,IBIDON2,IBIDON3,IBIDON4 ,N48,NIX,ILAW_USER,IGTYP,
224 . NVARF,NVARVIS,IR,IRUPT,IMAT,ISVIS,IVISC,NUVARV,ISEQ,IADRUPBUF,IDEV,VISCTYPE
226 .E1,E2,E3,E4,E5,E6,BID1,BID3,Q1,Q2,Q3,SS1,SS2,SS3,SS4,SS5,
227 .SS6,WXXF,WYYF,WZZF,P2,EPSP,DAV,ASRATE,C1(MVSIZ),
228 . EP1(MVSIZ),EP2(MVSIZ),EP3(MVSIZ),E7(MVSIZ),
229 . EP4(2*MVSIZ),EP5(2*MVSIZ),EP6(2*MVSIZ),EINC,
230 . S1(MVSIZ) ,S2() ,S3(MVSIZ) ,
231 . S4(2*MVSIZ) ,S5(2*MVSIZ) ,S6(2*MVSIZ),
232 . DE1(MVSIZ),DE2(MVSIZ),DE3(MVSIZ),
233 . DE4(2*MVSIZ),DE5(2*MVSIZ),DE6(2*MVSIZ),
234 . SO1(MVSIZ),SO2(MVSIZ),SO3(MVSIZ),
235 . SO4(2*MVSIZ),SO5(2*),SO6(2*MVSIZ),
236 .ES1(MVSIZ),ES2(MVSIZ),ES3(MVSIZ),ES4(MVSIZ),ES5(MVSIZ),ES6(MVSIZ),
237 .SV1(MVSIZ),SV2(MVSIZ),SV3(MVSIZ),SV4(MVSIZ),SV5(MVSIZ),SV6(MVSIZ)
244 my_real fpsxx(mvsiz),fpsyy(mvsiz),fpszz(mvsiz),fpsxy(mvsiz),
245 * fpsyz(mvsiz),fpszx(mvsiz),fpsyx(mvsiz),fpszy(mvsiz),
246 * fpsxz(mvsiz),bid_arr(mvsiz),
247 * upsxx(mvsiz),upsyy(mvsiz),upszz(mvsiz),upsxy(mvsiz),
248 * upsyz(mvsiz),upsxz(mvsiz)
252 my_real,
DIMENSION(NEL),
TARGET :: le_max
254 my_real,
DIMENSION(:),
POINTER :: uparam,uparamf,uvarf,dfmax,tdel,
255 . yldfac,dam,el_len,el_pla,damini
256 my_real,
DIMENSION(MVSIZ) :: el_bfrac,el_tb
257 INTEGER :: SIZBFRAC,SIZTB
258 TYPE(ULAWINTBUF) :: USERBUF
259 TYPE(L_BUFEL_) ,
POINTER :: LBUF, LBUF1, LBUF2
260 TYPE(g_bufel_) ,
POINTER :: GBUF
261 TYPE (FAIL_PARAM_),
POINTER :: FAILPARAM
262 LOGICAL :: LOGICAL_USERL_AVAIL
263 my_real USER_UELR(MVSIZ)
264 INTEGER,
DIMENSION(:) ,
POINTER :: ITABL_FAIL,IPARAMF
265 INTEGER,
DIMENSION(:) ,
POINTER :: FLD_IDX,FOFF,IFUNC,ITABLE
266 INTEGER :: DMG_FLAG,LF_DAMMX,NIPAR
267 my_real,
DIMENSION(:,:) ,
ALLOCATABLE :: ISMSTR10_FP
268 my_real ADDITIONAL_FLT_PARAMETERS(MVSIZ)
269 INTEGER ADDITIONAL_INT_PARAMETERS(MVSIZ),LENGTH
270 CHARACTER*256 MDS_LIBNAME
274 CHARACTER(LEN=NCHARLINE100)::IUSER_KEY
275 MY_REAL,
DIMENSION(NEL) :: OFF_OLD
277 => elbuf_tab(ng)%GBUF
278 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(iptr,ipts,iptt)
279 logical_userl_avail=.false.
280 IF(userl_avail>0) logical_userl_avail=.true.
281 nptr = elbuf_tab(ng)%NPTR
282 npts = elbuf_tab(ng)%NPTS
283 ipg = iptr + ((ipts-1) + (iptt-1)*npts)*nptr
285 IF ((igtyp == 20).OR.(igtyp == 21).OR.(igtyp == 22))
THEN
286 ipg = iptr + ((ipts-1) + (ilay-1)*npts)*nptr
288 iseq = elbuf_tab(ng)%BUFLY(ilay)%L_SEQ
290 dmg_flag = elbuf_tab(ng)%BUFLY(ilay)%L_DMGSCL
291 nvarvis = elbuf_tab(ng)%BUFLY(ilay)%NVAR_VISC
295 varnl(i) =
max(varnl(i),zero)
296 lbuf%PLANL(i) = lbuf%PLANL(i) + varnl(i)
297 lbuf%EPSDNL(i) = varnl(i)/
max(dt1,em20)
307 uparam => bufmat(iadbuf:iadbuf+npar-1)
308 ifunc => ipm(10+1:10+nfunc,mx)
309 itable => ipm(226+1:226+numtabl,mx)
328 ilaw_user = ipm(217, mx)
330 isvis = igeo(35,pid(1))
331 IF(impl_s >0.AND.idyna == 0) isvis = 0
335 IF (elbuf_tab(ng)%BUFLY(ilay)%L_PLA > 0)
THEN
336 defp0(lft:llt) = lbuf%PLA(lft:llt)
338 defp0(lft:llt) = zero
343 off_old(1:nel) = off(1:nel)
345 IF (gbuf%G_BFRAC > 0)
THEN
346 el_bfrac(1:nel) = elbuf_tab(ng)%GBUF%BFRAC(1:nel)
349 el_bfrac(1:nel) = zero
353 IF (gbuf%G_TB > 0)
THEN
354 el_tb(1:nel) = elbuf_tab(ng)%GBUF%TB(1:nel)
362 scale1(lft:llt) = one
363 yldfac => scale1(lft:llt)
364 IF ( elbuf_tab(ng)%BUFLY(ilay)%L_FAC_YLD > 0)
THEN
365 yldfac => lbuf%FAC_YLD(1:nel)
368 c1(1:mvsiz) = pm(32,mx)
369 rho0(1:mvsiz)= pm( 1,mx)
371 ep1(1:mvsiz) = d1(1:mvsiz)*off(1:mvsiz)
372 ep2(1:mvsiz) = d2(1:mvsiz)*off(1:mvsiz)
373 ep3(1:mvsiz) = d3(1:mvsiz)*off(1:mvsiz)
374 ep4(1:mvsiz) = d4(1:mvsiz)*off(1:mvsiz)
375 ep5(1:mvsiz) = d5(1:mvsiz)*off(1:mvsiz)
376 ep6(1:mvsiz) = d6(1:mvsiz)*off(1:mvsiz)
399 if (mat_elem%MAT_PARAM(mat(1))%IVISC == 3)
then
432 ELSEIF (isorth /= 0)
THEN
437 1 gama, r11, r12, r13,
438 2 r21, r22, r23, r31,
448 CALL mrotens(lft,llt,ep1,ep2,ep3,ep4,ep5,ep6,
452#include "vectorize.inc"
473 IF (mat_elem%MAT_PARAM(mat(1))%IVISC == 3)
THEN
474 CALL mrotens(lft,llt,svo1,svo2,svo3,svo4,svo5,svo6,
483#include "vectorize.inc"
499#include "vectorize.inc"
507 ss1=strain(i,1)-q1+q2
508 ss2=strain(i,2)+q1-q3
509 ss3=strain(i,3)-q2+q3
510 ss4=strain(i,4)+2.*wzzf*(strain(i,1)-strain(i,2))+
511 . wyyf*strain(i,5)-wxxf*strain(i,6)
512 ss5=strain(i,5)+2.*wxxf*(strain(i,2)-strain(i,3))+
513 . wzzf*strain(i,6)-wyyf*strain(i,4)
514 ss6=strain(i,6)+2.*wyyf*(strain(i,3)-strain(i,1))+
515 . wxxf*strain(i,4)-wzzf*strain(i,5)
525 IF (istrain > 0)
THEN
527 strain(i,1)= strain(i,1) + de1(i)
528 strain(i,2)= strain(i,2) + de2(i)
529 strain(i,3)= strain(i,3) + de3(i)
530 strain(i,4)= strain(i,4) + de4(i)
531 strain(i,5)= strain(i,5) + de5(i)
532 strain(i,6)= strain(i,6) + de6(i)
553 IF (ismstr == 10.OR.ismstr == 12)
THEN
557 IF (iselect > 0)
THEN
559 es1(i)=etotsh(i,1)*off(i)
560 es2(i)=etotsh(i,2)*off(i)
562 es4(i)=etotsh(i,4)*off(i)
563 es6(i)=etotsh(i,6)*off(i)
564 es5(i)=etotsh(i,5)*off(i)
568 mfxx(i) = off(i)*mfxx(i)
569 mfyy(i) = off(i)*mfyy(i)
570 mfzz(i) = off(i)*mfzz(i)
571 mfxy(i) = off(i)*mfxy(i)
572 mfyx(i) = off(i)*mfyx(i)
573 mfzx(i) = off(i)*mfzx(i)
574 mfxz(i) = off(i)*mfxz(i)
575 mfyz(i) = off(i)*mfyz(i)
576 mfzy(i) = off(i)*mfzy(i)
580 es1(i)=mfxx(i)*(two+mfxx(i))+
581 . mfxy(i)*mfxy(i)+mfxz(i)*mfxz(i)
582 es2(i)=mfyy(i)*(two+mfyy(i))+
583 . mfyx(i)*mfyx(i)+mfyz(i)*mfyz(i)
584 es3(i)=mfzz(i)*(two+mfzz(i))+
585 . mfzx(i)*mfzx(i)+mfzy(i)*mfzy(i)
586 es4(i)=mfxy(i)+mfyx(i)+mfxx(i)*mfyx(i)+
587 . mfxy(i)*mfyy(i)+mfxz(i)*mfyz(i)
588 es6(i)=mfxz(i)+mfzx(i)+mfxx(i)*mfzx(i)+
589 . mfxy(i)*mfzy(i)+mfxz(i)*mfzz(i)
590 es5(i)=mfzy(i)+mfyz(i)+mfzx(i)*mfyx(i)+
591 . mfzy(i)*mfyy(i)+mfzz(i)*mfyz(i)
595 IF(idtmin(1)==3.AND.ismstr == 12)
THEN
597 IF (offg(i) <=one) cycle
601 es4(i)=half*(mfxy(i)+mfyx(i))
602 es6(i)=half*(mfxz(i)+mfzx(i))
603 es5(i)=half*(mfzy(i)+mfyz(i))
609 IF (jcvt <= 0 .AND. isorth /= 0)
THEN
612 1 gama, r11, r12, r13,
613 2 r21, r22, r23, r31,
618 CALL mrotens(lft,llt,es1,es2,es3,es4,es5,es6,
629 ELSEIF (ismstr==11)
THEN
635 es4(i)=mfxy(i)+mfyx(i)
636 es6(i)=mfxz(i)+mfzx(i)
637 es5(i)=mfzy(i)+mfyz(i)
639 IF (jcvt == 0 .AND. isorth /= 0)
THEN
649 1 gama, r11, r12, r13,
650 2 r21, r22, r23, r31,
655 CALL mrotens(lft,llt,es1,es2,es3,es4,es5,es6,
677 strain(i,1)= strain(i,1)-epsth(i)
678 strain(i,2)= strain(i,2)-epsth(i)
679 strain(i,3)= strain(i,3)-epsth(i)
689 asrate =
min(one, pm(9,mx)*dt1)
699 IF (dmg_flag == 1)
THEN
701 so1(i) = so1(i)/
max(lbuf%DMGSCL(i),em20)
702 so2(i) = so2(i)/
max(lbuf%DMGSCL(i),em20)
703 so3(i) = so3(i)/
max(lbuf%DMGSCL(i),em20)
704 so4(i) = so4(i)/
max(lbuf%DMGSCL(i),em20)
705 so5(i) = so5(i)/
max(lbuf%DMGSCL(i),em20)
706 so6(i) = so6(i)/
max(lbuf%DMGSCL(i),em20)
709 ELSEIF (dmg_flag == 6)
THEN
711 so1(i) = so1(i)/
max(lbuf%DMGSCL(i+nel*(1-1)),em20)
713 so3(i) = so3(i)/
max(lbuf%DMGSCL(i+nel*(3-1)),em20)
714 so4(i) = so4(i)/
max(lbuf%DMGSCL(i+nel*(4-1)),em20)
715 so5(i) = so5(i)/
max(lbuf%DMGSCL(i+nel*(5-1)),em20)
716 so6(i) = so6(i)/
max(lbuf%DMGSCL(i+nel*(6-1)),em20)
725 IF (logical_userl_avail)
THEN
727 CALL eng_userlib_sigeps( mtn,
728 . llt ,npar,nuvar,nfunc,ifunc,
729 . npf ,tf ,tt_local,dt1,uparam,
730 . rho0,rho ,voln,eint,
731 . ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
732 . de1 ,de2 ,de3 ,de4 ,de5 ,de6 ,
733 . es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
734 . so1 ,so2 ,so3 ,so4 ,so5 ,so6 ,
735 . s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
736 . sv1 ,sv2 ,sv3 ,sv4 ,sv5 ,sv6 ,
737 . ssp ,vis ,uvar,off )
742 option=
'/MAT/LAW29 - SOLID '
743 size=len_trim(option)
744 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
750 IF(u_tagplas(i)/=0)
THEN
758 ELSEIF(mtn == 30)
THEN
760 IF (logical_userl_avail)
THEN
762 CALL eng_userlib_sigeps( mtn,
763 . llt ,npar,nuvar,nfunc,ifunc,
764 . npf ,tf ,tt_local,dt1,uparam,
765 . rho0,rho ,voln,eint,
766 . ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
767 . de1 ,de2 ,de3 ,de4 ,de5 ,de6 ,
768 . es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
769 . so1 ,so2 ,so3 ,so4 ,so5 ,so6 ,
770 . s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
771 . sv1 ,sv2 ,sv3 ,sv4 ,sv5 ,sv6 ,
772 . ssp ,vis ,uvar,off )
777 option=
'/MAT/LAW30 - SOLID '
778 size=len_trim(option)
779 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
785 IF(u_tagplas(i)/=0)
THEN
793 ELSEIF(mtn == 31)
THEN
795 IF (logical_userl_avail
THEN
797 CALL eng_userlib_sigeps( mtn,
798 . llt ,npar,nuvar,nfunc,ifunc,
799 . npf ,tf ,tt_local,dt1,uparam,
800 . rho0,rho ,voln,eint,
801 . ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
802 . de1 ,de2 ,de3 ,de4 ,de5 ,de6 ,
803 . es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
804 . so1 ,so2 ,so3 ,so4 ,so5 ,so6 ,
805 . s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
806 . sv1 ,sv2 ,sv3 ,sv4 ,sv5 ,sv6 ,
807 . ssp ,vis ,uvar,off )
812 option=
'/MAT/LAW31 - SOLID '
813 size=len_trim(option)
814 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
820 IF(u_tagplas(i)/=0)
THEN
829 ELSEIF(mtn == 99)
THEN
831 IF(logical_userl_avail)
THEN
833 IF (ismstr == 10)
THEN
835 fpsxx(i) = one+mfxx(i)
836 fpsyy(i) = one+mfyy(i)
837 fpszz(i) = one+mfzz(i)
839 fpsxy = mfxy(1:mvsiz)
840 fpsyz = mfyz(1:mvsiz)
841 fpsxz = mfxz(1:mvsiz)
842 fpsyx = mfyx(1:mvsiz)
843 fpszy = mfzy(1:mvsiz)
844 fpszx = mfzx(1:mvsiz)
848 IF (isorth /= 0)
THEN
850 1 gama, r11, r12, r13,
851 2 r21, r22, r23, r31,
866 1 llt ,fpsxx , fpsxy , fpsxz , fpsyx ,
867 2 fpsyy ,fpsyz , fpszx , fpszy , fpszz ,
868 3 upsxx ,upsyy , upszz , upsxy , upsyz ,
872 fpsxx(1:mvsiz) = zero
873 fpsyy(1:mvsiz) = zero
874 fpszz(1:mvsiz) = zero
875 fpsxy(1:mvsiz) = zero
876 fpsyz(1:mvsiz) = zero
877 fpsxz(1:mvsiz) = zero
878 fpsyx(1:mvsiz) = zero
879 fpszy(1:mvsiz) = zero
880 fpszx(1:mvsiz) = zero
881 upsxx(1:mvsiz) = zero
882 upsyy(1:mvsiz) = zero
883 upszz(1:mvsiz) = zero
884 upsxy(1:mvsiz) = zero
885 upsyz(1:mvsiz) = zero
886 upsxz(1:mvsiz) = zero
890 CALL eng_userlib_get_law_var(
891 * ncycle, imat,iptr, ipts,iptt,
892 * r11, r12, r13, r21, r22, r23, r31,
893 * r32, r33, so1, so2, so3, so4, so5,
894 * so6, ep1, ep2, ep3, ep4, ep5, ep6,
895 * es1, es2, es3, es4, es5, es6, de1,
896 * de2, de3, de4, de5, de6, rho0, s1,
897 * s2, s3, s4, s5, s6, sv1, sv2,
898 * sv3, sv4, sv5, sv6 )
900 IF (dlibtkvers >= 1301501260)
THEN
902 CALL eng_userlib_get_law_var_2(
903 * fpsxx ,mvsiz ,fpsyy ,mvsiz ,
904 * fpszz ,mvsiz ,fpsxy ,mvsiz ,fpsyz ,mvsiz ,fpszx ,mvsiz,
905 * fpsyx ,mvsiz ,fpszy ,mvsiz ,fpsxz ,mvsiz ,upsxx ,mvsiz,
906 * upsyy ,mvsiz ,upszz ,mvsiz ,upsxy ,mvsiz ,upsyz ,mvsiz,
907 * upsxz ,mvsiz ,el_temp,nel ,dvol ,mvsiz ,el_bfrac,sizbfrac,
908 * el_tb ,siztb ,bid_arr,siznul,bid_arr,siznul,bid_arr ,siznul,
909 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr ,siznul,
910 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr ,siznul,
911 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr ,siznul,
912 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr
913 * 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)
932 CALL eng_userlib_sigeps99(
933 * llt ,npar ,nuvar ,ilaw_user ,nfunc,
934 * ifunc ,npf ,tf ,tt_local ,dt1,
935 * uparam ,rho ,voln ,eint ,ngl ,
936 * ssp ,vis ,uvar ,off ,sigy ,
940 CALL eng_userlib_set_law_var(
941 * s1, s2, s3, s4, s5, s6,
942 * sv1, sv2, sv3,sv4, sv5, sv6,
945 IF(dlibtkvers >= 1301501260)
THEN
947 CALL eng_userlib_set_law_var_2(el_temp,nel,el_bfrac,sizbfrac,
948 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
949 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
950 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,
951 * bid_arr,siznul,bid_arr,siznul,bid_arr,siznul,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,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 )
973 IF (sizbfrac > 0)
THEN
975 elbuf_tab(ng)%GBUF%BFRAC(1:nel) = el_bfrac(1:nel)
985 option=
'/MAT/'//iuser_key//
' - SOLID'
986 size=len_trim(option)
987 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
993 ELSE IF (mtn == 200)
THEN
995 IF(mds_avail == 1 )
THEN
996 ALLOCATE(ismstr10_fp(15,nel))
1001 3 tz, r11, r21, r31,
1002 4 r12, r22, r32, r13
1006 IF (ismstr == 10)
THEN
1008 fpsxx(i) = one+mfxx(i)
1009 fpsyy(i) = one+mfyy(i)
1010 fpszz(i) = one+mfzz(i)
1012 fpsxy = mfxy(1:mvsiz)
1013 fpsyz = mfyz(1:mvsiz)
1014 fpsxz = mfxz(1:mvsiz)
1015 fpsyx = mfyx(1:mvsiz)
1016 fpszy = mfzy(1:mvsiz)
1017 fpszx = mfzx(1:mvsiz)
1030! ismstr10_fp( 9,1) = fpszx(1:mvsiz)
1038 IF (isorth /= 0)
THEN
1040 1 gama, r11, r12, r13,
1041 2 r21, r22, r23, r31,
1047 . ismstr10_fp(1,1),ismstr10_fp(2,1),ismstr10_fp(3,1),
1048 . ismstr10_fp(4,1),ismstr10_fp(5,1),ismstr10_fp(6,1),
1049 . ismstr10_fp(7,1),ismstr10_fp(8,1),ismstr10_fp(9,1),
1056 * ismstr10_fp( 1,1), ismstr10_fp( 4,1), ismstr10_fp( 6,1), ismstr10_fp( 7,1),
1057 * ismstr10_fp( 2,1), ismstr10_fp( 5,1), ismstr10_fp( 9,1), ismstr10_fp( 8,1),ismstr10_fp( 3,1),
1058 * ismstr10_fp(10,1), ismstr10_fp(11,1), ismstr10_fp(12,1), ismstr10_fp(13,1),ismstr10_fp(14,1),
1059 * ismstr10_fp(15,1) )
1062 ismstr10_fp( 1,1) = zero
1063 ismstr10_fp( 2,1) = zero
1064 ismstr10_fp( 3,1) = zero
1065 ismstr10_fp( 4,1) = zero
1066 ismstr10_fp( 5,1) = zero
1067 ismstr10_fp( 6,1) = zero
1068 ismstr10_fp( 7,1) = zero
1069 ismstr10_fp( 8,1) = zero
1070 ismstr10_fp( 9,1) = zero
1071 ismstr10_fp(10,1) = zero
1072 ismstr10_fp(11,1) = zero
1073 ismstr10_fp(12,1) = zero
1074 ismstr10_fp(13,1) = zero
1075 ismstr10_fp(14,1) = zero
1076 ismstr10_fp(15,1) = zero
1080 CALL eng_mds_sigeps_s( ncycle ,imat, ngl,nel ,
1081 * iptr , ipts , iptt , npar ,nuvar ,nfunc ,ifunc ,
1082 * npf , tf , tt , dt1 , uparam , uvar ,
1083 * rho0 , rho , voln , eint , el_temp , amu ,
1084 * ep1 , ep2 , ep3 , ep4 , ep5 , ep6 ,
1085 * de1 , de2 , de3 , de4 , de5 , de6 ,
1086 * es1 , es2 , es3 , es4 , es5 , es6 ,
1087 * so1 , so2 , so3 , so4 , so5 , so6 ,
1088 * s1 , s2 , s3 , s4 , s5 , s6 ,
1089 * sv1 , sv2 , sv3 , sv4 , sv5 , sv6 ,
1090 * ssp , vis , off , r11 , r12 , r13 ,
1091 * r21 , r22 , r23 , r31 , r32 , r33 ,
1092 * ismstr , ismstr10_fp ,defp , dpla , sigy ,
1093 * additional_flt_parameters, additional_int_parameters )
1096 CALL mds_userlib_name_get(mds_libname,length)
1097 CALL ancmsg(msgid=287,anmode=aninfo,
1098 . c1=mds_libname(1:length))
1106 IF ((itask==0).AND.(imon_mat==1))
CALL startime(timers,121)
1112 le_max(1:nel) = nloc_dmg%LE_MAX(mat(1))
1113 el_len => le_max(1:nel)
1116 el_len => deltax(1:nel)
1119 IF (elbuf_tab(ng)%BUFLY(ilay)%L_PLA > 0)
THEN
1123 dpla(i) =
max(varnl(i),zero)
1125 el_pla => lbuf%PLANL(1:nel)
1129 dpla(i) = defp(i) - defp0(i)
1131 el_pla => defp(1:nel)
1142 dav = (ep1(i)+ep2(i)+ep3(i))*third
1149 epsp1(i) =half*(e1**2+e2**2+e3**2) +e4**2+e5**2+e6**2
1150 epsp1(i) = sqrt(three*epsp1(i))*two_third
1155 IF (elbuf_tab(ng)%BUFLY(ilay)%L_PLA > 0)
THEN
1158 epsp1(i) = lbuf%EPSDNL(i)
1163 uvarf => fbuf%FLOC(ir)%VAR
1164 irupt = fbuf%FLOC(ir)%ILAWF
1165 nvarf = fbuf%FLOC(ir)%NVAR
1166 dfmax => fbuf%FLOC(ir)%DAMMX
1167 damini => fbuf%FLOC(ir)%DAMINI
1168 tdel => fbuf%FLOC(ir)%TDEL
1169 fld_idx => fbuf%FLOC(ir)%INDX
1170 foff => fbuf%FLOC(ir)%OFF
1171 dam => fbuf%FLOC(ir)%DAM
1172 lf_dammx = fbuf%FLOC(ir)%LF_DAMMX
1174 failparam => mat_elem%MAT_PARAM(mx)%FAIL(ir)
1175 npar = mat_elem%MAT_PARAM(mx)%FAIL(ir)%NUPARAM
1176 nipar = mat_elem%MAT_PARAM(mx)%FAIL(ir)%NIPARAM
1177 uparamf => mat_elem%MAT_PARAM(mx)%FAIL(ir)%UPARAM(1:npar)
1178 iparamf => mat_elem%MAT_PARAM(mx)%FAIL(ir)%IPARAM(1:nipar)
1179 nfunc = mat_elem%MAT_PARAM(mx)%FAIL(ir)%NFUNC
1180 ifunc => mat_elem%MAT_PARAM(mx)%FAIL(ir)%IFUNC(1:nfunc)
1181 ntabl_fail = mat_elem%MAT_PARAM(mx)%FAIL(ir)%NTABLE
1182 itabl_fail => mat_elem%MAT_PARAM(mx)%FAIL(ir)%TABLE(1:ntabl_fail)
1187 2 tt ,dt1 ,uparamf,ngl ,
1188 4 s1 ,s2 ,s3 ,s4 ,s5 ,s6,
1189 5 dpla,epsp1,tstar,uvarf,off,
1191 ELSEIF (irupt == 2)
THEN
1194 2 tt ,dt1 ,uparamf,ngl ,
1195 4 s1 ,s2 ,s3 ,s4 ,s5 ,s6,
1196 5 uvarf,off ,dfmax,tdel )
1197 ELSEIF (irupt == 3)
THEN
1200 2 tt ,dt1 ,uparamf,ngl ,
1201 4 s1 ,s2 ,s3 ,s4 ,s5 ,s6,
1202 5 dpla,uvarf,off,dfmax,tdel )
1203 ELSEIF (irupt == 4)
THEN
1205 IF (logical_userl_avail)
THEN
1206 user_uelr(1:llt)=gbuf%UELR(1:llt)
1209 CALL eng_userlib_flaw(irupt,llt ,npar,nuvarr,nfunc,ifunc,
1210 2 npf ,tf ,tt_local ,dt1 ,uparamf,
1211 3 ngl ,ibidon1,ibidon2,ibidon3 ,ibidon4,
1212 4 ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
1213 5 es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
1214 6 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1215 7 defp ,dpla,epsp1,uvarf,off ,
1216 8 deltax,voln,user_uelr,dfmax,bidon5)
1217 gbuf%UELR(1:llt) = user_uelr(1:llt)
1230 option=
'/FAIL/USER1 - SOLID '
1231 size=len_trim(option)
1232 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
1237 ELSEIF (irupt == 5)
THEN
1239 IF (logical_userl_avail)
THEN
1241 user_uelr(1:llt)=gbuf%UELR(1:llt)
1242 CALL eng_userlib_flaw(irupt,llt ,npar,nuvarr,nfunc,ifunc,
1243 2 npf ,tf ,tt_local ,dt1 ,uparamf,
1244 3 ngl ,ibidon1,ibidon2,ibidon3 ,ibidon4,
1245 4 ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
1246 5 es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
1247 6 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1248 7 defp ,dpla,epsp1,uvarf,off ,
1249 8 deltax,voln,user_uelr,dfmax,bidon5)
1250 gbuf%UELR(1:llt) = user_uelr(1:llt)
1256! 5 es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
1263 option=
'/FAIL/USER2 - SOLID '
1264 size=len_trim(option)
1265 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
1270 ELSEIF (irupt == 6)
THEN
1272 IF (logical_userl_avail)
THEN
1274 user_uelr(1:llt)=gbuf%UELR(1:llt)
1275 CALL eng_userlib_flaw(irupt,llt ,npar,nuvarr,nfunc,ifunc,
1276 2 npf ,tf ,tt_local ,dt1 ,uparamf,
1277 3 ngl ,ibidon1,ibidon2,ibidon3 ,ibidon4,
1278 4 ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
1279 5 es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
1280 6 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1281 7 defp ,dpla,epsp1,uvarf,off ,
1282 8 deltax,voln,user_uelr,dfmax,bidon5)
1283 gbuf%UELR(1:llt) = user_uelr(1:llt)
1296 option=
'/FAIL/USER3 - SOLID '
1297 size=len_trim(option)
1298 CALL ancmsg(msgid=257,c1=option(1:size),anmode=aninfo)
1303 ELSEIF (irupt == 7)
THEN
1304 ELSEIF (irupt == 8)
THEN
1306 CALL fail_spalling_s(llt ,npar,
1308 4 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1309 5 dpla,epsp1,tstar,off ,
1310 6 lf_dammx ,dfmax,tdel ,offg ,
1311 7 nipar ,iparamf,mvsiz)
1312 ELSEIF (irupt == 9)
THEN
1315 2 tt ,dt1 ,uparamf,ngl ,
1316 4 s1 ,s2 ,s3 ,s4 ,s5 ,s6,
1317 5 dpla,defp,uvarf,off ,dfmax,
1319 ELSEIF (irupt == 10)
THEN
1322 2 npf ,tf ,tt ,dt1 ,uparamf,
1323 3 ngl ,deltax ,tstar ,ismstr,
1324 4 es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
1325 5 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1326 6 epsp1,uvarf,off ,dfmax,tdel ,
1327 7 mfxx ,mfxy ,mfxz ,mfyx ,mfyy ,mfyz ,
1328 8 mfzx ,mfzy ,mfzz ,lbuf%DMGSCL)
1329 ELSEIF (irupt == 11)
THEN
1332 1 nel ,npar ,nvarf ,nfunc ,ifunc ,npf ,
1333 2 tf ,tt ,dt1 ,uparamf ,ngl ,epsp1 ,
1334 3 uvarf ,off ,dfmax ,tdel ,lbuf%DMGSCL,
1335 4 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1336 5 de1 ,de2 ,de3 ,de4 ,de5 ,de6 )
1337 ELSEIF (irupt == 13)
THEN
1340 1 nel ,npar ,nvarf ,uparamf ,uvarf ,
1341 2 tt ,ipg ,ilay ,npg ,ngl ,
1342 3 lbuf%DMGSCL,dfmax ,off ,lbuf%OFF ,gbuf%NOFF,
1343 4 s1 ,s2 ,s3 ,s4 ,s6 ,
1345 ELSEIF(irupt == 14)
THEN
1348 epsp1(i) =
max(abs(ep1(i)),abs(ep2(i)),abs(ep3(i)),em20)
1351 1 nel ,nvarf ,ilay ,npg ,tt ,
1352 2 dt1 ,uparamf ,ngl ,off ,gbuf%NOFF,
1353 3 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1354 4 uvarf ,npar ,dfmax ,tdel ,epsp1 ,lf_dammx )
1355 ELSEIF(irupt == 16)
THEN
1358 1 nel ,nvarf ,ilay ,npg ,tt ,
1359 2 dt1 ,uparamf ,ngl ,off ,gbuf%NOFF,
1360 3 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1361 4 uvarf ,npar ,dfmax ,lf_dammx ,tdel )
1362 ELSEIF (irupt == 23)
THEN
1365 1 llt ,nvarf ,npf ,tf ,tt ,
1366 2 uparamf ,ngl ,el_len ,
1367 3 s1 ,s2 ,s3 ,s4 ,s5 ,s6,
1368 4 dpla ,epsp1 ,tstar ,uvarf ,ntabl_fail,itabl_fail,
1369 5 off ,table ,dfmax ,tdel ,nfunc ,ifunc )
1370 ELSEIF (irupt == 24)
THEN
1373 1 llt ,npar ,nvarf ,nfunc ,ifunc ,
1374 2 npf ,tf ,tt ,dt1 ,uparamf ,ismstr ,
1375 3 ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
1376 4 es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
1377 5 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1378 6 uvarf ,off ,ipg ,ngl ,dfmax ,tdel ,
1379 7 gbuf%UELR,npg ,deltax ,lf_dammx )
1380 ELSEIF (irupt == 27)
THEN
1384 2 dt1 ,uparamf ,ngl ,
1385 3 s1 ,s2 ,s3 ,s4 ,s5 ,s6,
1386 4 defp ,dpla ,epsp1 ,uvarf ,
1387 5 off ,dfmax ,tdel )
1388 ELSEIF (irupt == 29)
THEN
1391 1 llt ,nfunc ,ifunc ,npf ,tf ,
1392 2 tt ,ngl ,uparamf ,
1393 3 es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
1394 4 off ,dfmax ,tdel ,deltax ,
1396 ELSEIF (irupt == 30)
THEN
1399 1 llt ,npar ,nvarf ,nfunc ,ifunc ,el_len ,
1400 2 npf ,tf ,tt ,uparamf ,tdel ,
1401 3 ngl ,dpla ,uvarf ,off ,dfmax ,lbuf%DMGSCL,
1402 4 s1 ,s2 ,s3 ,s4 ,s5 ,s6 )
1403 ELSEIF (irupt == 33)
THEN
1406 1 llt ,npar ,nvarf ,
1407 2 tt ,dt1 ,uparamf ,ngl ,
1409 4 s5 ,s6 ,uvarf ,off ,
1411 ELSEIF (irupt == 34)
THEN
1414 1 tt ,dt1 ,uparamf ,ngl ,
1415 3 ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
1416 4 es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
1417 5 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1418 6 defp ,dpla ,epsp ,uvarf ,off ,
1420 ELSEIF (irupt == 36)
THEN
1423 . llt ,npar ,nvarf ,tt ,dt1 ,uparamf,
1424 . es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
1425 . s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1426 . uvarf ,off ,ngl ,dfmax ,ismstr )
1428 ELSEIF (irupt == 37)
THEN
1431 1 llt ,nvarf ,npf ,tf ,tt ,
1432 2 uparamf ,ngl ,el_len ,
1433 3 s1 ,s2 ,s3 ,s4 ,s5 ,s6,
1434 4 defp ,dpla ,epsp1 ,tstar ,uvarf ,
1435 5 off ,dfmax ,tdel ,
1438 ELSEIF (irupt == 38)
THEN
1441 1 llt ,npar ,nvarf ,nfunc ,ifunc ,
1442 2 npf ,tf ,tt ,dt1 ,uparamf ,
1443 3 ngl ,dpla ,epsp1 ,uvarf ,off ,
1444 4 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1445 5 dfmax ,tdel ,el_len )
1447 ELSEIF (irupt == 39)
THEN
1450 1 llt ,npar ,nvarf ,nfunc ,ifunc ,lbuf%OFF ,
1451 2 npf ,tf ,tt ,dt1 ,uparamf ,ipg ,
1452 3 ngl ,gbuf%DT ,epsp1 ,uvarf ,off ,npg ,
1453 4 es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
1454 5 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1455 6 el_temp ,voln ,dfmax ,tdel ,deltax ,table ,
1456 7 ir ,elbuf_tab(ng),ilay ,ntabl_fail,itabl_fail,lf_dammx,
1459 ELSEIF (irupt == 40)
THEN
1462 1 llt ,npar ,nvarf ,tt ,dt1 ,uparamf ,
1463 2 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1464 3 ngl ,dpla ,uvarf ,off ,dfmax ,tdel )
1466 ELSEIF (irupt == 41)
THEN
1469 1 llt ,npar ,nvarf ,nfunc ,ifunc ,
1470 2 npf ,table ,tf ,tt ,uparamf ,
1471 3 ngl ,el_len ,dpla ,epsp1 ,uvarf ,
1472 5 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1473 6 el_temp ,off ,dfmax ,tdel ,lbuf%DMGSCL,
1474 7 gbuf%UELR,ipg ,npg ,lbuf%OFF ,ntabl_fail,itabl_fail,
1477 ELSEIF (irupt == 42)
THEN
1480 1 nel ,npar ,nvarf ,
1481 2 table ,ntabl_fail,itabl_fail,tt ,uparamf ,
1482 3 ngl ,el_len ,dpla ,epsp1 ,uvarf ,
1483 5 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1484 6 el_pla ,el_temp ,sigy ,off ,dfmax ,
1485 7 tdel ,lbuf%DMGSCL,gbuf%UELR,ipg ,npg ,
1486 8 lbuf%OFF ,damini ,gbuf%VOL ,inloc )
1488 ELSEIF (irupt == 43)
THEN
1491 1 nel ,uparamf ,npar ,uvarf ,nvarf ,
1492 2 tt ,ngl ,ipg ,dpla ,tdel ,
1493 3 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1494 4 dfmax ,nfunc ,ifunc ,el_len ,off ,
1495 5 npf ,tf ,gbuf%UELR,npg ,lbuf%OFF)
1496 ELSEIF (irupt == 44)
THEN
1499 1 nel ,nvarf ,ipg ,ilay ,npg ,tt ,
1500 2 dt1 ,uparamf ,ngl ,off ,lbuf%OFF ,gbuf%NOFF,
1501 3 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1502 4 uvarf ,npar ,dfmax ,lf_dammx ,tdel ,lbuf%DMGSCL)
1504 ELSEIF (irupt == 45)
THEN
1507 1 nel ,nvarf ,ipg ,ilay ,npg ,tt ,
1508 2 dt1 ,uparamf ,ngl ,off ,lbuf%OFF ,gbuf%NOFF,
1509 3 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1510 4 uvarf ,npar ,dfmax ,lf_dammx ,tdel ,lbuf%DMGSCL)
1512 ELSEIF (irupt == 46)
THEN
1515 1 nel ,nvarf ,ipg ,ilay ,npg ,tt ,
1516 2 dt1 ,uparamf ,ngl ,off ,lbuf%OFF ,gbuf%NOFF,
1517 3 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1518 4 uvarf ,npar ,dfmax ,lf_dammx ,tdel ,lbuf%DMGSCL)
1520 ELSEIF (irupt == 47)
THEN
1523 1 nel ,nvarf ,ipg ,ilay ,npg ,tt ,
1524 2 dt1 ,uparamf ,ngl ,off ,lbuf%OFF ,gbuf%NOFF,
1525 3 es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
1526 4 uvarf ,npar ,dfmax ,lf_dammx ,tdel ,lbuf%DMGSCL)
1528 ELSEIF (irupt == 48)
THEN
1531 1 nel ,npar ,nvarf ,uparamf ,uvarf ,ngl ,
1532 2 npg ,ipg ,ilay ,off ,lbuf%OFF ,gbuf%NOFF,
1533 3 de1 ,de2 ,de3 ,de4 ,de5 ,de6 ,
1534 5 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1535 6 tt ,tdel ,dfmax ,deltax ,lbuf%DMGSCL)
1537 ELSEIF (irupt == 50)
THEN
1539 CALL fail_lemaitre_s(
1540 1 nel ,npar ,uparamf ,tt,ngl,mat_elem%MAT_PARAM(mx),
1541 2 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1542 3 dpla ,el_pla ,lbuf%OFF ,off ,dfmax ,tdel ,
1543 4 nipar ,iparamf ,lbuf%DMGSCL,gbuf%NOFF,npg )
1545 ELSEIF (irupt == 51)
THEN
1547 CALL fail_composite_s(
1548 1 nel ,failparam,nvarf ,uvarf ,tt ,ngl ,
1549 2 ipg ,ilay ,npg ,tdel ,off ,lbuf%OFF ,
1550 3 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1551 4 lbuf%DMGSCL,lf_dammx,dfmax ,gbuf%NOFF)
1556 IF ((itask==0).AND.(imon_mat==1))
CALL stoptime(timers,121)
1560 IF ((mat_elem%MAT_PARAM(mat(1))%IVISC > 0).OR.(idamp_freq_range > 0))
THEN
1561 CALL viscmain(mat_elem%MAT_PARAM(mat(1))%VISC ,nel ,
1562 . nvarvis ,vbuf%VAR,rho0
1563 . ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
1564 . de1 ,de2 ,de3 ,de4 ,de5 ,de6 ,
1565 . svo1 ,svo2 ,svo3 ,svo4 ,svo5 ,svo6 ,
1566 . sv1 ,sv2 ,sv3 ,sv4 ,sv5 ,sv6 ,
1567 . mfxx ,mfxy ,mfxz ,mfyx ,mfyy ,mfyz ,
1569 . s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
1570 . damp_buf,idamp_freq_range,mvsiz,et,mat_elem%MAT_PARAM(imat)%YOUNG,
1571 . mat_elem%MAT_PARAM(imat)%SHEAR,mat_elem%MAT_PARAM(mat(1))%IVISC)
1578 CALL nsvisul(llt ,off ,rho ,geo ,
1579 2 pid ,ssp ,aire ,voln ,ep1 ,
1580 3 ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
1581 4 sv1 ,sv2 ,sv3 ,sv4 ,sv5 ,
1582 5 sv6 ,s3 ,es3 ,rho0 ,rhoref )
1588 IF ((off_old(i) > zero) .AND. (off(i) == zero))
THEN
1596 IF (dmg_flag == 1)
THEN
1598 s1(i) = s1(i)*lbuf%DMGSCL(i)
1599 s2(i) = s2(i)*lbuf%DMGSCL(i)
1600 s3(i) = s3(i)*lbuf%DMGSCL(i)
1601 s4(i) = s4(i)*lbuf%DMGSCL(i)
1602 s5(i) = s5(i)*lbuf%DMGSCL(i)
1603 s6(i) = s6(i)*lbuf%DMGSCL(i)
1606 ELSEIF (dmg_flag == 6)
THEN
1608 s1(i) = s1(i)*lbuf%DMGSCL(i+nel*(1-1))
1609 s2(i) = s2(i)*lbuf%DMGSCL(i+nel*(2-1))
1610 s3(i) = s3(i)*lbuf%DMGSCL(i+nel*(3-1))
1611 s4(i) = s4(i)*lbuf%DMGSCL(i+nel*(4-1))
1612 s5(i) = s5(i)*lbuf%DMGSCL(i+nel*(5-1))
1613 s6(i) = s6(i)*lbuf%DMGSCL(i+nel*(6-1))
1617 IF (isorth /= 0)
THEN
1620 sigl(i,1) = s1(i)*off(i)
1621 sigl(i,2) = s2(i)*off(i)
1622 sigl(i,3) = s3(i)*off(i)
1623 sigl(i,4) = s4(i)*off(i)
1624 sigl(i,5) = s5(i)*off(i)
1625 sigl(i,6) = s6(i)*off(i)
1626 sv1(i) = sv1(i)*off(i)
1627 sv2(i) = sv2(i)*off(i)
1628 sv3(i) = sv3(i)*off(i)
1629 sv4(i) = sv4(i)*off(i)
1630 sv5(i) = sv5(i)*off(i)
1631 sv6(i) = sv6(i)*off(i)
1635 & s1 ,s2 ,s3 , s4 ,s5 ,s6 ,
1640 & sv1 ,sv2 ,sv3 , sv4 ,sv5 ,sv6 ,
1646 sv1(i) = sv1(i)*off(i)
1647 sv2(i) = sv2(i)*off(i)
1648 sv3(i) = sv3(i)*off(i)
1649 sv4(i) = sv4(i)*off(i)
1650 sv5(i) = sv5(i)*off(i)
1651 sv6(i) = sv6(i)*off(i)
1657 sig(i,1) = s1(i)*off(i)
1658 sig(i,2) = s2(i)*off(i)
1659 sig(i,3) = s3(i)*off(i)
1660 sig(i,4) = s4(i)*off(i)
1661 sig(i,5) = s5(i)*off(i)
1662 sig(i,6) = s6(i)*off(i)
1663 svis(i,1) = sv1(i)*off(i)
1664 svis(i,2) = sv2(i)*off(i)
1665 svis(i,3) = sv3(i)*off(i)
1666 svis(i,4) = sv4(i)*off(i)
1667 svis(i,5) = sv5(i)*off(i)
1668 svis(i,6) = sv6(i)*off(i)
1673 visctype = mat_elem%MAT_PARAM(mat(1))%IVISC
1674 IF (isvis > 0 .OR. visctype == 1 .OR. visctype == 3)
THEN
1676 sigv(i,1) = svis(i,1)
1677 sigv(i,2) = svis(i,2)
1678 sigv(i,3) = svis(i,3)
1679 sigv(i,4) = svis(i,4)
1680 sigv(i,5) = svis(i,5)
1681 sigv(i,6) = svis(i,6)
1684 IF (mat_elem%MAT_PARAM(mat(1))%IVISC > 0)
THEN
1686 svisc(i,1) = svis(i,1)
1687 svisc(i,2) = svis(i,2)
1688 svisc(i,3) = svis(i,3)
1689 svisc(i,4) = svis(i,4)
1690 svisc(i,5) = svis(i,5)
1691 svisc(i,6) = svis(i,6)
1697 IF (elbuf_tab(ng)%BUFLY(ilay)%L_PLA > 0)
THEN
1700 IF (off(i) == one)
THEN
1713 IF (ssp(i) == zero) ssp(i)=sqrt(c1(i)/rho0(i))
1722 1 pm, off, rho, bid1,
1723 2 el_temp, ssp, bid3, stifn,
1724 3 dt2t, neltst, ityptst, aire,
1725 4 offg, geo, pid, voln,
1726 5 vd2, deltax, vis, d1,
1727 6 d2, d3, pnew, psh,
1728 7 mat, ngl, q, ssp_eq,
1729 8 vol, mssa, dmels, igeo,
1730 9 facq0, conde, gbuf%DT, gbuf%G_DT,
1731 a ipm, rhoref, rhosp, nel,
1732 b ity, ismstr, jtur, jthe,
1733 c jsms, npg , glob_therm)
1737 1 pm, off, rho, bid1,
1738 2 el_temp, bid3, stifn, dt2t,
1739 3 neltst, ityptst, offg, geo,
1740 4 pid, mumax, ssp, voln,
1741 5 vd2, deltax, vis, d1,
1742 6 d2, d3, pnew, psh,
1743 7 mat, ngl, q, ssp_eq,
1744 8 gbuf%G_DT,gbuf%DT, nel, ity,
1749 p2 = -(sold1(i)+sig(i,1)+sold2(i)+sig(i,2)+sold3(i)+sig(i,3))* third
1750 e1 = d1(i)*(sold1(i)+sig(i,1) + p2+two*svis(i,1))
1751 e2 = d2(i)*(sold2(i)+sig(i,2) + p2+two*svis(i,2))
1752 e3 = d3(i)*(sold3(i)+sig(i,3) + p2+two*svis(i,3))
1753 e4 = d4(i)*(sold4(i)+sig(i,4) + two*svis(i,4))
1754 e5 = d5(i)*(sold5(i)+sig(i,5) + two*svis(i,5))
1755 e6 = d6(i)*(sold6(i)+sig(i,6) + two*svis(i,6))
1756 einc = vol_avg(i)*dt1 * (e1+e2+e3+e4+e5+e6+e7(i))
1757 . - dvol(i)*(q(i) + qold(i) + p2)
1758 eint(i) = eint(i) + off(i)*einc*half
1760 qold(lft:llt) = q(lft:llt)