33 SUBROUTINE balph2(PM,ALPH1,ALPH2,VOLT,FILL,
34 . SIG1,EINT1,VOLO1,RHON1,FLUX1,FLU11,OFF1,
35 . SIG2,EINT2,VOLO2,RHON2,FLUX2,FLU12,OFF2,
36 . SIGT,EINTT,RHOT ,TEMPT,L_TEMP,
37 . BFRACT,L_BFRAC,PLAST,L_PLAS,VOLN, BULKT, L_BULK,NEL,
39 . D1, D2, D3, D4, D5, D6,
40 . D1S, D2S, D3S, D4S, D5S, D6S,
41 . MAT, NC1, NC2, NC3, NC4,
47#include "implicit_f.inc"
59#include "vect01_c.inc"
63 INTEGER L_TEMP, L_PLAS, L_BFRAC,L_BULK,NEL
64 INTEGER (*), NC1(*), NC2(*), (*), NC4(*)
66 . PM(NPROPM,*), ALPH1(*), ALPH2(*), VOLT(*), FILL(NUMNOD,*),
67 . SIG1(NEL,6), EINT1(*), VOLO1(*), RHON1(*), FLUX1(4,*), FLU11(*),
68 . OFF1(*), SIG2(NEL,6), EINT2(*), VOLO2(*), RHON2(*), FLUX2(4
73 . d1s(*), d2s(*), d3s(*), d4s(*), d5s(*), d6s(*),
74 . dalph1(*), dalph2(*)
80 . ALPH1N(MVSIZ), ALPH2N(MVSIZ), ALPN1,
81 . ALPN2, ALPN3, ALPN4, ALPD1, ALPD2, ALPD3, ALPD4, ALPD, ALPN,
82 . EPS, SOFF1, SOFF2, ALPHN, ALPHNN, C11, C12, , DA,
133 alpn1=
max(zero,fill(nc1(i),1))
134 alpn2=
max(zero,fill(nc2(i),1))
135 alpn3=
max(zero,fill(nc3(i),1))
136 alpn4=
max(zero,fill(nc4(i),1))
137 alpd1=abs(fill(nc1(i),1))
138 alpd2=abs(fill(nc2(i),1))
139 alpd3=abs(fill(nc3(i),1))
140 alpd4=abs(fill(nc4(i),1))
141 alpd=alpd1+alpd2+alpd3+alpd4
142 alpn=alpn1+alpn2+alpn3+alpn4
143 IF (alpd>em20) alph1n(i)=alpn/alpd
148 alpn1=
max(zero,fill(nc1(i),2))
149 alpn2=
max(zero,fill(nc2(i),2))
150 alpn3=
max(zero,fill(nc3(i),2))
151 alpn4=
max(zero,fill(nc4(i),2))
152 alpd1=abs(fill(nc1(i),2))
153 alpd2=abs(fill(nc2(i),2))
154 alpd3=abs(fill(nc3(i),2))
155 alpd4=abs(fill(nc4(i),2))
156 alpd=alpd1+alpd2+alpd3+alpd4
157 alpn=alpn1+alpn2+alpn3+alpn4
158 IF(alpd>em20)alph2n(i)=alpn/alpd
170 IF(alph1n(i)/=zero.AND.alph1n(i)/=one)
THEN
171 alphn=(volo1(i)-dt1*half*(flu11(i)
172 . +flux1(1,i)+flux1(2,i)+flux1(3,i)+flux1(4,i)))/voln(i)
173 alphnn=alphn*(one+(d1(i)+d2(i)+d3(i))*dt1)
174 IF((sig1(i,1)+sig1(i,2)+sig1(i,3))>zero)
THEN
175 alphn=
min(alphn,alphnn)
177 alphn=
max(alphn,alphnn)
179 IF(alphn<=zep99.AND.alphn>zero.AND.rhon1(i)<=zero)
THEN
180 IF(rhon1(i)/=zero)
THEN
182 WRITE(6,*)
' ***NEGATIVE RHO****ALPH1,RHON1'
183 WRITE(6,*)i+nft,alph1n(i),rhon1(i)
184#include "lockoff.inc"
189 dalph1(i)=alphn-alph1n(i)
190 alph1(i)=
min(one,alphn)
191 alph1(i)=
max(zero,alph1(i))
192 ELSEIF(alph1n(i)==one.AND.alph1(i)<zep999)
THEN
193 alphn=(volo1(i)-dt1*half*(flu11(i)
194 . +flux1(1,i)+flux1(2,i)+flux1(3,i)+flux1(4,i)))/voln
195 alphnn=alphn*(one+(d1(i)+d2(i)+d3(i))*dt1)
196 alphn=
max(alphn,alphnn,alph1(i))
197 IF(rhon1(i)<=zero)
THEN
201 alph1(i)=
min(one,alphn)
202 ELSEIF(alph1n(i)==zero.AND.alph1(i)>em3)
THEN
219 IF(alph1(i)==zero)
THEN
222 ELSEIF(alph1(i)==one)
THEN
231 IF(alph1(i)==zero)
THEN
232 fill(nc1(i),1)=
min(zero,fill(nc1(i),1))
233 fill(nc2(i),1)=
min(zero,fill(nc2(i),1))
234 fill(nc3(i),1)=
min(zero,fill(nc3(i),1))
235 fill(nc4(i),1)=
min(zero,fill(nc4(i),1))
236 ELSEIF(alph1(i)==one)
THEN
237 fill(nc1(i),1)=
max(zero,fill(nc1(i),1))
238 fill(nc2(i),1)=
max(zero,fill(nc2(i),1))
239 fill(nc3(i),1)=
max(zero,fill(nc3(i),1))
240 fill(nc4(i),1)=
max(zero,fill(nc4(i),1))
252 mx1=nint(pm(21,mat(i)))
254 mx2=nint(pm(22,mat(i)))
256 IF(alph1n(i)/=zero.AND.alph1n(i)/=one)
THEN
257 alphn=(volo1(i)-dt1*half*(flu11(i)
258 . +flux1(1,i)+flux1(2,i)+flux1(3,i)+flux1(4,i)))/voln(i)
259 alphnn=alphn*(one+(d1(i)+d2(i)+d3(i))*dt1)
260 IF((sig1(i,1)+sig1(i,2)+sig1(i,3))>zero)
THEN
261 alphn=
min(alphn,alphnn)
263 alphn=
max(alphn,alphnn)
265 IF(alphn<=zep99.AND.alphn>zero.AND.rhon1(i)<=zero)
THEN
266 IF(rhon1(i)/=zero)
THEN
268 WRITE(6,*)
' ***NEGATIVE RHO****ALPH1,RHON1'
269 WRITE(6,*)i+nft,alph1n(i),rhon1(i)
270#include "lockoff.inc"
275 dalph1(i)=alphn-alph1n(i)
276 alph1(i)=
min(one,alphn)
277 alph1(i)=
max(zero,alph1(i))
278 ELSEIF(alph1n(i)==one.AND.alph1(i)<zep999)
THEN
279 alphn=(volo1(i)-dt1*half*(flu11(i)
280 . +flux1(1,i)+flux1(2,i)+flux1(3,i)+flux1(4,i)))/voln(i)
281 alphnn=alphn*(one + (d1(i)+d2(i)+d3(i))*dt1)
283 IF(rhon1(i)<=zero)
THEN
287 alph1(i)=
min(one,alphn)
288 ELSEIF(alph1n(i)==zero.AND.alph1(i)>em3)
THEN
293 IF(alph2n(i)/=zero.AND.alph2n(i)/=one)
THEN
295 . +flux2(1,i)+flux2(2,i)+flux2(3,i)+flux2(4,i)))/voln(i)
296 alphnn=alphn*(one+(d1(i)+d2(i)+d3
297 IF((sig2(i,1)+sig2(i,2)+sig2(i,3))>one)
THEN
298 alphn=
min(alphn,alphnn)
300 alphn=
max(alphn,alphnn)
302 IF(alphn<=zep99.AND.alphn>zero.AND.rhon2(i)<=zero)
THEN
303 IF(rhon2(i)/=zero)
THEN
305 WRITE(6,*)
' ***NEGATIVE RHO****ALPH2,RHON2'
306 WRITE(6,*)i+nft,alph2n(i),rhon2(i)
307#include "lockoff.inc"
312 dalph2(i)=alphn-alph2n(i)
313 alph2(i)=
min(one,alphn)
314 alph2(i)=
max(zero,alph2(i))
315 ELSEIF(alph2n(i)==one.AND.alph2(i)<=zep999)
THEN
316 alphn=(volo2(i)-dt1*half*(flu12(i)
317 . +flux2(1,i)+flux2(2,i)+flux2(3,i)+flux2(4,i)))/voln(i)
319 alphn=
max(alphn,alphnn,alph2(i))
320 IF(rhon2(i)<=zero)
THEN
324 alph2(i)=
min(one,alphn)
325 ELSEIF(alph2n(i)==zero.AND.alph2(i)>em3)
THEN
330 alpht=alph1(i)+alph2(i)
332 da=(alpht-one)/(c11*alph2(i
333 alph1(i)=alph1(i)*(one -c12*da)
334 alph2(i)=alph2(i)*(one -c11*da)
335 dalph1(i)=dalph1(i)-c12*da
336 dalph2(i)=dalph2(i)-c11*da
359 IF(alph1(i)==zero)
THEN
362 ELSEIF(alph1(i)==one)
THEN
366 IF(alph2(i)==zero)
THEN
369 ELSEIF(alph2(i)==one)
THEN
378 IF(alph1(i)==zero)
THEN
379 fill(nc1(i),1)=
min(zero,fill(nc1(i),1))
380 fill(nc2(i),1)=
min(zero,fill(nc2(i),1))
381 fill(nc3(i),1)=
min(zero,fill(nc3(i),1))
382 fill(nc4(i),1)=
min(zero,fill(nc4(i),1))
383 ELSEIF(alph1(i)==one)
THEN
384 fill(nc1(i),1)=
max(zero,fill(nc1(i),1))
385 fill(nc2(i),1)=
max(zero,fill(nc2(i),1))
386 fill(nc3(i),1)=
max(zero,fill(nc3(i),
387 fill(nc4(i),1)=
max(zero,fill(nc4(i),1))
396 IF(alph2(i)==zero)
THEN
397 fill(nc1(i),2)=
min(zero,fill(nc1(i),2))
398 fill(nc2(i),2)=
min(zero,fill(nc2(i),2))
399 fill(nc3(i),2)=
min(zero,fill(nc3(i),2))
400 fill(nc4(i),2)=
min(zero,fill(nc4(i),2))
401 ELSEIF(alph2(i)==one)
THEN
402 fill(nc1(i),2)=
max(zero,fill(nc1(i),2))
403 fill(nc2(i),2)=
max(zero,fill(nc2(i),2))
404 fill(nc3(i),2)=
max(zero,fill(nc3(i),2))
405 fill(nc4(i),2)=
max(zero,fill(nc4(i),2))
subroutine balph2(pm, alph1, alph2, volt, fill, sig1, eint1, volo1, rhon1, flux1, flu11, off1, sig2, eint2, volo2, rhon2, flux2, flu12, off2, sigt, eintt, rhot, tempt, l_temp, bfract, l_bfrac, plast, l_plas, voln, bulkt, l_bulk, nel, aire, aires, d1, d2, d3, d4, d5, d6, d1s, d2s, d3s, d4s, d5s, d6s, mat, nc1, nc2, nc3, nc4, dalph1, dalph2)