49 1 PM, VOLO, RHON, EINT,
50 2 DIVDE, FLUX, FLU1, VOLN,
51 3 DVOL, NGL, MAT, OFF,
52 4 IS_MAT_BCS,TAG22, VOLDP, VOL0DP,
53 5 AMU, OFFG, NEL, MTN,
54 6 JALE, ISMSTR, JEUL, JLAG)
64#include "implicit_f.inc"
84 INTEGER,
INTENT(IN) :: NEL
85 INTEGER,
INTENT(IN) :: MTN
86 INTEGER,
INTENT(IN) :: JALE
87 INTEGER,
INTENT(IN) :: ISMSTR
88 INTEGER,
INTENT(IN) :: JEUL
89 INTEGER,
INTENT(IN) :: JLAG
90 INTEGER NGL(*), MAT(*), IS_MAT_BCS, IB,NIN,MCELL
92 my_real pm(npropm,nummat),volo(*), rhon(*),eint(*),flux(6,*), flu1(*),
93 . voln(*), dvol(*),divde(*),off(*),tag22(*),amu(*) ,offg(*)
94 DOUBLE PRECISION VOLDP(*),VOL0DP(*),DVDP
98 my_real :: rho0,dvv, e0,vavg,rhon_old(mvsiz),ddvol,rhoref
99 INTEGER :: I,COUNT,LIST(MVSIZ),II, MX
103 rhon_old(1:nel)=rhon(1:nel)
105 IF(
ale%GLOBAL%INCOMP==1 .AND. jeul+jale==1)
THEN
111 rhon(i) = rhon(i)-dvv*rho0
112 vavg = half*(voln(i)+volo(i))
114 eint(i) = eint(i)*volo(i)-e0*dvv*vavg
123 volo(1:nel)=voln(1:nel)
124 ELSEIF(ismstr==1)
THEN
126 IF(offg(i)>one) volo(i)=voln(i)
130 IF (impl_s>0.AND.iline>0)
THEN
133 eint(i) = eint(i)*voln(i)
138 IF(offg(i)==zero.AND.voln(i)==one) voln(i)=volo(i)
139 dvol(i) = voln(i)-(rho0/rhon(i))*volo(i)
140 rhon(i) = rho0*(volo(i)/voln(i))
141 eint(i) = eint(i)*volo(i)
145 IF(offg(i)==zero.AND.voln(i)==one) voln(i)=volo(i)
146 dvol(i) = voln(i)-(rhon(i+nel)/rhon(i))*volo(i)
147 rhon(i) = rhon(i+nel)*(volo(i)/voln(i))
148 eint(i) = eint(i)*volo(i)
154 rhon(i) = rhon(i)/voln(i)
155 dvol(i) = voln(i)-volo(i)+half*dt1*(flu1(i)+flux(1,i)+flux(2,i)+flux(3,i)+flux(4,i)+flux(5,i)+flux(6,i))
160 rhon(i) = rhon(i)/voln(i)
161 dvol(i) = half*dt1*(flu1(i)+flux(1,i)+flux(2,i)+flux(3,i)+flux(4,i)+flux(5,i)+flux(6,i))
174 dvol(i) = dt1 * ddvol
176 rhon(i) = rhon(i) * voln(i) /
brick_list(nin,ib)%vnew_scell
180 dvol(i) = dvol(i) + voln(i)-volo(i)
195 IF(is_mat_bcs== 1)cycle
196 IF(rhon(i)> zero)cycle
197 IF(off(i)== zero )cycle
204 CALL ancmsg(msgid=167,anmode=aninfo,i1=ngl(i),r1=rhon(i))
209 IF (ismdisp>0.OR.ismstr==11)
THEN
215 rhon(i) = rhon_old(i) - rhon(i)*dvdp
216 rhon(i) =
max(rhon(i),em30)
219 ELSEIF ((ismstr<=4.OR.ismstr==12).AND.jlag>0)
THEN
224 rhon(i) = rhon_old(i) - rhoref*dvdp
225 rhon(i) =
max(rhon(i),em30)
227 IF (ismstr==12) amu(i) =rhon(i)/rhoref - one
232 IF((
ale%GLOBAL%INCOMP/=1 .OR. (jeul+jale)/=1).AND.jlag/=0.AND.n2d==0
233 . .AND.impl_s==0.AND.ismstr/=1.AND.ismstr/=3.AND.ismstr/=11)
THEN
238 dvdp = divde(i)*(volo(i)/voln(i))
239 vol0dp(i)=vol0dp(i)-dvdp*voldp(i)
240 ELSEIF(offg(i)==zero)
THEN
243 dvdp = voldp(i)-(rho0/rhon_old(i))*vol0dp(i)
245 rhon(i) = rho0*(vol0dp(i)/voldp(i))
248 amu(1:nel) = vol0dp(1:nel)/voldp(1:nel) - one
subroutine srho3(pm, volo, rhon, eint, divde, flux, flu1, voln, dvol, ngl, mat, off, is_mat_bcs, tag22, voldp, vol0dp, amu, offg, nel, mtn, jale, ismstr, jeul, jlag)
subroutine s10forc3(timers, output, elbuf_tab, ng, pm, geo, ixs, x, a, v, ms, w, flux, flu1, veul, fv, ale_connect, iparg, tf, npf, bufmat, partsav, nloc_dmg, dt2t, neltst, ityptst, stifn, fsky, iads, offset, eani, iparts, ixs10, iads10, nel, fx, fy, fz, ar, vr, dr, ipm, istrain, isolnod, itask, temp, fthe, fthesky, iexpan, stifr, d, gresav, grth, igrth, table, mssa, dmels, igeo, xdp, voln, condn, condnsky, sfem_nodvar, itagdn, sensors, ioutprt, mat_elem, h3d_strain, dt, idel7nok, snpc, stf, sbufmat, svis, nsvois, idtmins, idel7ng, maxfunc, userl_avail, glob_therm, impl_s, idyna, s_sfem_nodvar)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)