31 SUBROUTINE amulf2(FILL,DFILL,FLUX,FLU1,VOL,ALE_CONNECT,ALPV,
32 . FLUX1, FLUX2, FLUX3, FLUX4, UPW,
38#include "implicit_f.inc"
46#include "vect01_c.inc"
52 . fill(numnod,*), dfill(numnod,*), flux(4,*), flu1(*), vol(*),
53 . alpv(2,*), flux1(*), flux2(*), flux3(*), flux4(*), upw(*)
54 INTEGER NC1(*), NC2(*), NC3(*), NC4(*)
55 TYPE(t_ale_connectivity),
INTENT(IN) :: ALE_CONNECT
59 INTEGER JM, I, II, JJ, IAD2
61 . flub1(mvsiz), flub2(mvsiz),
62 . flub3(mvsiz), flub4(mvsiz), alpn1, alpn2, alpn3, alpn4, alpd1,
63 . alpd2, alpd3, alpd4, alp1, calp1, alpd, alph, alp2, calp2
69 iad2 = ale_connect%ee_connect%iad_connect(ii)
70 alpn1=
max(zero,fill(nc1(i),jm))
71 . +
max(zero,fill(nc1(i),jm)-dfill(nc1(i),jm))
72 alpn2=
max(zero,fill(nc2(i),jm))
73 . +
max(zero,fill(nc2(i),jm)-dfill(nc2(i
74 alpn3=
max(zero,fill(nc3(i),jm))
75 . +
max(zero,fill(nc3(i),jm)-dfill(nc3(i),jm))
76 alpn4=
max(zero,fill(nc4(i),jm))
77 . +
max(zero,fill(nc4(i),jm)-dfill(nc4(i),jm))
78 alpd1=abs(fill(nc1(i),jm))
79 . +abs(fill(nc1(i),jm)-dfill(nc1(i),jm))
80 alpd2=abs(fill(nc2(i),jm))
81 . +abs(fill(nc2(i),jm)-dfill(nc2(i),jm))
82 alpd3=abs(fill(nc3(i),jm))
83 . +abs(fill(nc3(i),jm)-dfill(nc3(i),jm))
84 alpd4=abs(fill(nc4(i),jm))
85 . +abs(fill(nc4(i),jm)-dfill(nc4(i),jm))
87 alp1 =alpv(jm,ii) *vol(ii)
88 calp1=(one -alpv(jm,ii))*vol(ii)
94 alph=(alpn1+alpn2)/alpd
96 flub1(i)=flux1(i)*alph
97 IF(flux1(i)>=zero)
THEN
99 flub1(i)=
min(flub1(i),alp1)
101 jj=ale_connect%ee_connect%connected(iad2 + 1 - 1)
103 alp2 =alpv(jm,jj) *vol(jj)
104 calp2=(one - alpv(jm,jj))*vol(jj)
105 flub1(i)=-
max(-flub1(i),-flux1(i)-calp2)
106 flub1(i)=-
min(-flub1(i),alp2)
113 alph=(alpn2+alpn3)/alpd
115 flub2(i)=flux2(i)*alph
116 IF(flux2(i)>=zero)
THEN
117 flub2(i)=
max(flub2(i),flux2(i)-calp1)
118 flub2(i)=
min(flub2(i),alp1)
120 jj=ale_connect%ee_connect%connected(iad2 + 2 - 1)
122 alp2 =alpv(jm,jj) *vol(jj)
123 calp2=(one-alpv(jm,jj))*vol(jj)
124 flub2(i)=-
max(-flub2(i),-flux2(i)-calp2)
125 flub2(i)=-
min(-flub2(i),alp2)
132 alph=(alpn3+alpn4)/alpd
134 flub3(i)=flux3(i)*alph
135 IF(flux3(i)>=zero)
THEN
136 flub3(i)=
max(flub3(i),flux3(i)-calp1)
137 flub3(i)=
min(flub3(i),alp1)
139 jj=ale_connect%ee_connect%connected(iad2 + 3 - 1)
141 alp2 =alpv(jm,jj) *vol(jj)
142 calp2=(one-alpv(jm,jj))*vol(jj)
143 flub3(i)=-
max(-flub3(i),-flux3(i)-calp2)
144 flub3(i)=-
min(-flub3(i),alp2)
151 alph=(alpn4+alpn1)/alpd
153 flub4(i)=flux4(i)*alph
154 IF(flux4(i)>=zero)
THEN
155 flub4(i)=
max(flub4(i),flux4(i)-calp1)
156 flub4(i)=
min(flub4(i),alp1)
158 jj=ale_connect%ee_connect%connected(iad2 + 4 - 1)
160 alp2 =alpv(jm,jj) *vol(jj)
161 calp2=(one-alpv(jm,jj))*vol(jj)
162 flub4(i)=-
max(-flub4(i),-flux4(i)-calp2)
163 flub4(i)=-
min(-flub4(i),alp2)
170 flux(1,ii)=flub1(i)-upw(i)*abs(flub1(i))
171 flux(2,ii)=flub2(i)-upw(i)*abs(flub2(i))
172 flux(3,ii)=flub3(i)-upw(i)*abs(flub3(i))
173 flux(4,ii)=flub4(i)-upw(i)*abs(flub4(i))
175 flu1(ii) =flub1(i)+upw(i)*abs(flub1(i))
176 . +flub2(i)+upw(i)*abs(flub2(i))
177 . +flub3(i)+upw(i)*abs(flub3(i))
178 . +flub4(i)+upw(i)*abs(flub4(i))