48 1 PM, VOLO, RHON, EINT,
49 2 DIVDE, FLUX, FLU1, VOLN,
50 3 DVOL, NGL, MAT, OFF,
51 4 IS_MAT_BCS,TAG22, VOLDP, VOL0DP,
52 5 AMU, OFFG, NEL, MTN,
53 6 JALE, ISMSTR, JEUL, JLAG)
63#include
"implicit_f.inc"
83 INTEGER,
INTENT(IN) :: NEL
84 INTEGER,
INTENT(IN) :: MTN
85 INTEGER,
INTENT(IN) :: JALE
86 INTEGER,
INTENT(IN) :: ISMSTR
87 INTEGER,
INTENT(IN) :: JEUL
88 INTEGER,
INTENT(IN) :: JLAG
89 INTEGER NGL(*), MAT(*), IS_MAT_BCS, IB,NIN,MCELL
91 my_real pm(npropm,nummat),volo(*), rhon(*),eint(*),flux(6,*), flu1(*),
92 . voln(*), dvol(*),divde(*),off(*),tag22(*),amu(*) ,offg(*)
93 DOUBLE PRECISION VOLDP(*),VOL0DP(*),DVDP
97 my_real :: rho0,dvv, e0,vavg,rv,rvp,rhon_old(mvsiz),ddvol,rhoref
98 INTEGER :: I, J,COUNT,LIST(MVSIZ),II, MX
102 rhon_old(1:nel)=rhon(1:nel)
104 IF(
ale%GLOBAL%INCOMP==1 .AND. jeul+jale==1)
THEN
110 rhon(i) = rhon(i)-dvv*rho0
111 vavg = half*(voln(i)+volo(i))
113 eint(i) = eint(i)*volo(i)-e0*dvv*vavg
122 volo(1:nel)=voln(1:nel)
123 ELSEIF(ismstr==1)
THEN
125 IF(offg(i)>one) volo(i)=voln(i)
129 IF (impl_s>0.AND.iline>0)
THEN
132 eint(i) = eint(i)*voln(i)
137 IF(offg(i)==zero.AND.voln(i)==one) voln(i)=volo(i)
138 dvol(i) = voln(i)-(rho0/rhon(i))*volo(i)
140 eint(i) = eint(i)*volo(i)
144 IF(offg(i)==zero.AND.voln(i)==one) voln(i)=volo(i)
145 dvol(i) = voln(i)-(rhon(i+nel)/rhon(i))*volo(i)
146 rhon(i) = rhon(i+nel)*(volo(i)/voln(i))
147 eint(i) = eint(i)*volo(i)
153 rhon(i) = rhon(i)/voln(i)
154 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))
159 rhon(i) = rhon(i)/voln(i)
160 dvol(i) = half*dt1*(flu1(i)+flux(1,i)+flux(2,i)+flux(3,i)+flux(4,i)+flux(5,i)+flux(6,i))
173 dvol(i) = dt1 * ddvol
175 rhon(i) = rhon(i) * voln(i) /
brick_list(nin,ib)%vnew_scell
179 dvol(i) = dvol(i) + voln(i)-volo(i)
194 IF(is_mat_bcs== 1)cycle
195 IF(rhon(i)> zero)cycle
196 IF(off(i)== zero )cycle
203 CALL ancmsg(msgid=167,anmode=aninfo,i1=ngl(i),r1=rhon
208 IF (ismdisp>0.OR.ismstr==11)
THEN
214 rhon(i) = rhon_old(i) - rhon(i)*dvdp
215 rhon(i) =
max(rhon(i),em30)
218 ELSEIF ((ismstr<=4.OR.ismstr==12).AND.jlag>0)
THEN
223 rhon(i) = rhon_old(i) - rhoref*dvdp
224 rhon(i) =
max(rhon(i),em30)
226 IF (ismstr==12) amu(i) =rhon(i)/rhoref - one
231 IF((
ale%GLOBAL%INCOMP/=1 .OR. (jeul+jale)/=1).AND.jlag/=0.AND.n2d==0
232 . .AND.impl_s==0.AND.ismstr/=1.AND.ismstr/=3.AND.ismstr/=11)
THEN
237 dvdp = divde(i)*(volo(i)/voln(i))
238 vol0dp(i)=vol0dp(i)-dvdp*voldp(i)
239 ELSEIF(offg(i)==zero)
THEN
242 dvdp = voldp(i)-(rho0/rhon_old(i))*vol0dp(i)
244 rhon(i) = rho0*(vol0dp(i)/voldp(i))
247 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 scforc3(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, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nel, icp, icsig, nvc, ipm, istrain, temp, fthe, fthesky, iexpan, igeo, gresav, grth, igrth, mssa, dmels, table, xdp, voln, condn, condnsky, itask, ioutprt, mat_elem, h3d_strain, dt, snpc, stf, sbufmat, svis, nsvois, idtmins, iresp, idel7ng, idel7nok, maxfunc, imon_mat, userl_avail, glob_therm, impl_s, idyna, sensors)
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)