37 . IXS ,ALE_CONNECT ,V ,A ,
38 . W ,DFE ,FRHO0 ,ALPHA ,
39 . NC1 ,NC2 ,NC3 ,NC4 ,NC5 ,NC6 ,
40 . NC7 ,NC8 ,X1 ,X2 ,X3 ,X4 ,
41 . X5 ,X6 ,X7 ,X8 ,Y1 ,Y2 ,
42 . Y3 ,Y4 ,Y5 ,Y6 ,Y7 ,Y8 ,
43 . Z1 ,Z2 ,Z3 ,Z4 ,Z5 ,Z6 ,
44 . Z7 ,Z8 ,PHI1 ,PHI2 ,FLUX ,FLU1 ,
45 . VX1 ,VX2 ,VX3 ,VX4 ,VX5 ,VX6 ,
46 . VX7 ,VX8 ,VY1 ,VY2 ,VY3 ,VY4 ,
47 . VY5 ,VY6 ,VY7 ,VY8 ,VZ1 ,VZ2 ,
48 . VZ3 ,VZ4 ,VZ5 ,VZ6 ,VZ7 ,VZ8 ,
49 . VDX1 ,VDX2 ,VDX3 ,VDX4 ,VDX5 ,VDX6 ,
50 . VDX7 ,VDX8 ,VDY1 ,VDY2 ,VDY3 ,VDY4 ,
51 . VDY5 ,VDY6 ,VDY7 ,VDY8 ,VDZ1 ,VDZ2 ,
52 . VDZ3 ,VDZ4 ,VDZ5 ,VDZ6 ,VDZ7 ,VDZ8 ,
53 . VDX ,VDY ,VDZ ,VD2 ,
54 . LVX1 ,LVX2 ,LVX3 ,LVX4 ,LVX5 ,LVX6 ,
55 . LVX7 ,LVX8 ,LVY1 ,LVY2 ,LVY3 ,LVY4 ,
56 . LVY5 ,LVY6 ,LVY7 ,LVY8 ,LVZ1 ,LVZ2 ,
57 . LVZ3 ,LVZ4 ,LVZ5 ,LVZ6 ,LVZ7 ,LVZ8 ,
58 . POR ,ICONTACT ,IFOAM)
71#include "implicit_f.inc"
80#include "vect01_c.inc"
86 INTEGER NC1(*),NC2(*),NC3(*),NC4(*),NC5(*),NC6(*),NC7(*),NC8(*),IXS(NIXS,*),MAT(*),ICONTACT(*),IFOAM(*)
88 . V(3,NUMNOD),W(3,NUMNOD) ,FLUX(MVSIZ,6),
89 . PHI1(*),PHI2(*),A(3,NUMNOD),
90 . flu1(*) ,x1(*) ,x2(*) ,x3(*) ,x4(*) ,
91 . x5(*) ,x6(*) ,x7(*) ,x8(*) ,y1(*) ,y2(*) ,
92 . y3(*) ,y4(*) ,y5(*) ,y6(*) ,y7(*) ,y8(*) ,
93 . z1(*) ,z2(*) ,z3(*) ,z4(*) ,z5(*) ,z6(*) ,
95 . vx1(*) ,vx2(*) ,vx3(*) ,vx4(*) ,vx5(*) ,vx6(*) ,
96 . vx7(*) ,vx8(*) ,vy1(*) ,vy2(*) ,vy3(*) ,vy4(*) ,
97 . vy5(*) ,vy6(*) ,vy7(*) ,vy8(*) ,vz1(*) ,vz2(*) ,
98 . vz3(*) ,vz4(*) ,vz5(*) ,vz6(*) ,vz7(*) ,vz8(*) ,
99 . vdx1(*) ,vdx2(*) ,vdx3(*) ,vdx4(*) ,vdx5(*) ,vdx6(*) ,
100 . vdx7(*) ,vdx8(*) ,vdy1(*) ,vdy2(*) ,vdy3(*) ,vdy4(*) ,
101 . vdy5(*) ,vdy6(*) ,vdy7(*) ,vdy8(*) ,vdz1(*) ,vdz2(*) ,
102 . vdz3(*) ,vdz4(*) ,vdz5(*) ,vdz6(*) ,vdz7(*) ,vdz8(*),
103 . dfe(mvsiz,3), frho0(*),pm(npropm,nummat),
alpha(*),vdx(*),
104 . vdy(*), vdz(*),vd2(*),x(3,*),
105 . lvx1(*) ,lvx2(*) ,lvx3(*) ,lvx4(*) ,lvx5(*) ,lvx6(*) ,
106 . lvx7(*) ,lvx8(*) ,lvy1(*) ,lvy2(*) ,lvy3(*) ,lvy4(*) ,
107 . lvy5(*) ,lvy6(*) ,lvy7(*) ,lvy8(*) ,lvz1(*) ,lvz2(*) ,
108 . lvz3(*) ,lvz4(*) ,lvz5(*) ,lvz6(*) ,lvz7(*) ,lvz8(*),
111 TYPE(buf_mat_) :: MBUF
112 TYPE(t_ale_connectivity),
INTENT(IN) :: ALE_CONNECT
116 INTEGER J,IV,IE,MX,IAD2
117 my_real FAC, VFE(3),AFE(3),DTINV,RV,REXCH(MVSIZ,6), ALPHA0,RHOEXT(MVSIZ),EIEXT(MVSIZ),KK(MVSIZ)
120 INTEGER ICLOS,II,ICONGAS
160 vdx1(i)=v(1,nc1(i)) - w(1,nc1(i))
161 vdy1(i)=v(2,nc1(i)) - w(2,nc1(i))
162 vdz1(i)=v(3,nc1(i)) - w(3,nc1(i))
164 vdx2(i)=v(1,nc2(i)) - w(1,nc2(i))
165 vdy2(i)=v(2,nc2(i)) - w(2,nc2(i))
166 vdz2(i)=v(3,nc2(i)) - w(3,nc2(i))
168 vdx3(i)=v(1,nc3(i)) - w(1,nc3(i))
169 vdy3(i)=v(2,nc3(i)) - w(2,nc3(i))
170 vdz3(i)=v(3,nc3(i)) - w(3,nc3(i))
172 vdx4(i)=v(1,nc4(i)) - w(1,nc4(i))
173 vdy4(i)=v(2,nc4(i)) - w(2,nc4(i))
174 vdz4(i)=v(3,nc4(i)) - w(3,nc4(i))
176 vdx5(i)=v(1,nc5(i)) - w(1,nc5(i))
177 vdy5(i)=v(2,nc5(i)) - w(2,nc5(i))
178 vdz5(i)=v(3,nc5(i)) - w(3,nc5(i))
180 vdx6(i)=v(1,nc6(i)) - w(1,nc6(i))
181 vdy6(i)=v(2,nc6(i)) - w(2,nc6(i))
182 vdz6(i)=v(3,nc6(i)) - w(3,nc6(i))
184 vdx7(i)=v(1,nc7(i)) - w(1,nc7(i))
185 vdy7(i)=v(2,nc7(i)) - w(2,nc7(i))
186 vdz7(i)=v(3,nc7(i)) - w(3,nc7(i))
188 vdx8(i)=v(1,nc8(i)) - w(1,nc8(i))
189 vdy8(i)=v(2,nc8(i)) - w(2,nc8(i))
190 vdz8(i)=v(3,nc8(i)) - w(3,nc8(i))
222 iad2 = ale_connect%ee_connect%iad_connect(ie)
225 iv=ale_connect%ee_connect%connected(iad2 + j - 1)
235 icongas = nint(pm(201, mx))
238 rhoext(i) = pm(199, mx)
239 eiext(i) = pm(200, mx)
245 iclos = nint(pm(198, mat(1)))
246 IF(iclos == 2 .AND. intbag > 0 )
THEN
248 iad2 = ale_connect%ee_connect%iad_connect(i+nft)
249 ii=ale_connect%ee_connect%connected(iad2 + 1 - 1)
252 IF(icontact(nc1(i)) > 0)rexch(i,1)=rexch(i,1)-fourth*alpha0
253 IF(icontact(nc2(i)) > 0)rexch(i,1)=rexch(i,1)-fourth*alpha0
254 IF(icontact(nc3(i)) > 0)rexch(i,1)=rexch(i,1)-fourth*alpha0
255 IF(icontact(nc4(i)) > 0)rexch(i,1)=rexch(i,1)-fourth*alpha0
257 ii=ale_connect%ee_connect%connected(iad2 + 2 - 1)
260 IF(icontact(nc3(i)) > 0)rexch(i,2)=rexch(i,2)-fourth*alpha0
261 IF(icontact(nc4(i)) > 0)rexch(i,2)=rexch(i,2)-fourth*alpha0
262 IF(icontact(nc7(i)) > 0)rexch(i,2)=rexch(i,2)-fourth*alpha0
263 IF(icontact(nc8(i)) > 0)rexch(i,2)=rexch(i,2)-fourth*alpha0
265 ii=ale_connect%ee_connect%connected(iad2 + 3 - 1)
268 IF(icontact(nc5(i)) > 0)rexch(i,3)=rexch(i,3)-fourth*alpha0
269 IF(icontact(nc6(i)) > 0)rexch(i,3)=rexch(i,3)-fourth*alpha0
270 IF(icontact(nc7(i)) > 0)rexch(i,3)=rexch(i,3)-fourth*alpha0
271 IF(icontact(nc8(i)) > 0)rexch(i,3)=rexch(i,3)-fourth*alpha0
274 ii=ale_connect%ee_connect%connected(iad2 + 4 - 1)
277 IF(icontact(nc1(i)) > 0)rexch(i,4)=rexch(i,4)-fourth*alpha0
278 IF(icontact(nc2(i)) > 0)rexch(i,4)=rexch(i,4)-fourth*alpha0
279 IF(icontact(nc5(i)) > 0)rexch(i,4)=rexch(i,4)-fourth*alpha0
280 IF(icontact(nc6(i)) > 0)rexch(i,4)=rexch(i,4)-fourth*alpha0
282 ii=ale_connect%ee_connect%connected(iad2 + 5 - 1)
285 IF(icontact(nc2(i)) > 0)rexch(i,5)=rexch(i,5)-fourth*alpha0
286 IF(icontact(nc3(i)) > 0)rexch(i,5)=rexch(i,5)-fourth*alpha0
287 IF(icontact(nc6(i)) > 0)rexch(i,5)=rexch(i,5)-fourth*alpha0
288 IF(icontact(nc7(i)) > 0)rexch(i,5)=rexch(i,5)-fourth*alpha0
290 ii=ale_connect%ee_connect%connected(iad2 + 6 - 1)
293 IF(icontact(nc1(i)) > 0)rexch(i,6)=rexch(i,6)-fourth*alpha0
294 IF(icontact(nc4(i)) > 0)rexch(i,6)=rexch(i,6)-fourth*alpha0
295 IF(icontact(nc5(i)) > 0)rexch(i,6)=rexch(i,6)-fourth*alpha0
296 IF(icontact(nc8(i)) > 0)rexch(i,6)=rexch(i,6)-fourth*alpha0
308 iad2 = ale_connect%ee_connect%iad_connect(i + nft)
309 ii=ale_connect%ee_connect%connected(iad2 + 1 - 1)
348 ii=ale_connect%ee_connect%connected(iad2 + 2 - 1
387 ii=ale_connect%ee_connect%connected(iad2 + 3 - 1)
426 ii=ale_connect%ee_connect%connected(iad2 + 4 - 1)
465 ii=ale_connect%ee_connect%connected(iad2 + 5 - 1)
504 ii=ale_connect%ee_connect%connected(iad2 + 6 - 1)
543#include "lockoff.inc"
544 ELSEIF(iclos == 2 .AND. intbag > 0 )
THEN
547 iad2 = ale_connect%ee_connect%iad_connect(i + nft)
548 ii=ale_connect%ee_connect%connected(iad2 + 1 - 1)
549 IF(ii == 0 .AND. rexch(i,1) < em15 )
THEN
587 ii=ale_connect%ee_connect%connected(iad2 + 2 - 1)
588 IF(ii == 0 .AND. rexch(i,2) < em15)
THEN
625 ii=ale_connect%ee_connect%connected(iad2 + 3 - 1)
626 IF(ii == 0 .AND. rexch(i,3) < em15)
THEN
664 ii=ale_connect%ee_connect%connected(iad2 + 4 - 1)
665 IF(ii == 0 .AND. rexch(i,4) < em15)
THEN
702 ii=ale_connect%ee_connect%connected(iad2 + 5 - 1)
703 IF(ii == 0 .AND. rexch(i,5) < em15)
THEN
740 ii=ale_connect%ee_connect%connected(iad2 + 6 - 1)
741 IF(ii == 0 .AND. rexch(i,6) < em15)
THEN
779#include "lockoff.inc"
788 . x5 ,x6 ,x7 ,x8 ,y1 ,y2 ,y3 ,
789 . y4 ,y5 ,y6 ,y7 ,y8 ,z1 ,z2 ,
790 . z3 ,z4 ,z5 ,z6 ,z7 ,z8 ,
791 . vdx1,vdx2,vdx3,vdx4,vdx5,vdx6,vdx7,vdx8,
792 . vdy1,vdy2,vdy3,vdy4,vdy5,vdy6,vdy7,vdy8,
793 . vdz1,vdz2,vdz3,vdz4,vdz5,vdz6,vdz7,vdz8,
794 . flux,flu1,ale_connect,rexch )
796 IF(icongas == 0)
THEN
799 iad2 = ale_connect%ee_connect%iad_connect(i + nft)
800 ii=ale_connect%ee_connect%connected(iad2 + 1 - 1)
801 IF(ii == 0 .AND. flux(i,1) < zero )
THEN
839 ii=ale_connect%ee_connect%connected(iad2 + 2 - 1)
840 IF(ii == 0 .AND. flux(i,2) < zero)
THEN
877 ii=ale_connect%ee_connect%connected(iad2 + 3 - 1)
878 IF(ii == 0 .AND. flux(i,3) < zero)
THEN
916 ii=ale_connect%ee_connect%connected(iad2 + 4 - 1)
917 IF(ii == 0 .AND. flux(i,4) < zero)
THEN
954 ii=ale_connect%ee_connect%connected(iad2 + 5 - 1)
955 IF(ii == 0 .AND. flux(i,5) < zero)
THEN
992 ii=ale_connect%ee_connect%connected(iad2 + 6 - 1)
993 IF(ii == 0 .AND. flux(i,6) < zero)
THEN
1031#include "lockoff.inc"
1038 CALL aleconve(mbuf%VAR((nvar-1)*nel+1),flux ,flu1 ,phi1 ,ale_connect ,rhoext )
1040 CALL aleconve(mbuf%VAR((nvar-1)*nel+1),flux ,flu1 ,phi2 ,ale_connect ,eiext )
1046 taux = pm(196,mat(1))
1048 dtinv = dt1/
max(dt1*dt1, em20)
1052 frho0(i) =pm(192,mx)
1053 kk(i) = mbuf%VAR(21*nel + i)
1054 fac = one_over_8*(one -
alpha(i))/
max(em20,kk(i))
1056 vdx(i)=one_over_8*(vdx1(i)+vdx2(i)+vdx3(i)+vdx4(i)+vdx5(i)+vdx6(i)+vdx7(i)+vdx8(i))
1057 vdy(i)=one_over_8*(vdy1(i)+vdy2(i)+vdy3(i)+vdy4(i)+vdy5(i)+vdy6(i)+vdy7(i)+vdy8(i))
1058 vdz(i)=one_over_8*(vdz1(i)+vdz2(i)+vdz3(i)+vdz4(i)+vdz5(i)+vdz6(i)+vdz7(i)+vdz8(i))
1059 vd2(i)=(vdx(i)**2+vdy(i)**2+vdz(i)**2)
1061 vfe(1) = one_over_8*(vdx1(i) + vdx2(i) + vdx3(i) + vdx4(i) +vdx5(i) + vdx6(i) + vdx7(i) + vdx8(i))
1062 vfe(2) = one_over_8*(vdy1(i) + vdy2(i) + vdy3(i) + vdy4(i) +vdy5(i) + vdy6(i) + vdy7(i) + vdy8(i))
1063 vfe(3) = one_over_8*(vdz1(i) + vdz2(i) + vdz3(i) + vdz4(i) +vdz5(i) + vdz6(i) + vdz7(i) + vdz8(i))
1068 afe(1) = one_over_8*(a(1,nc1(i)) + a(1,nc2(i)) + a(1,nc3(i)) +
1069 . a(1,nc4(i)) + a(1,nc5(i)) + a(1,nc6(i)) + a(1,nc7(i)) + a(1,nc8(i)))
1071 afe(2) = one_over_8*(a(2,nc1(i)) + a(2,nc2(i)) + a(2,nc3(i)) +
1072 . a(2,nc4(i)) + a(2,nc5(i)) + a(2,nc6(i)) + a(2,nc7(i)) + a(2,nc8(i)))
1074 afe(3) = one_over_8*(a(3,nc1(i)) + a(3,nc2(i)) + a(3,nc3(i)) +
1075 . a(3,nc4(i)) + a(3,nc5(i)) + a(3,nc6(i)) + a(3,nc7(i)) + a(3,nc8(i)))
1077 dfe(i,1)=fac*(aa*vfe(1) + bb*abs(vfe(1))*vfe(1) + taux*afe(1))
1078 dfe(i,2)=fac*(aa*vfe(2) + bb*abs(vfe(2))*vfe(2) + taux*afe(2))
1079 dfe(i,3)=fac*(aa*vfe(3) + bb*abs(vfe(3))*vfe(3) + taux*afe(3))
subroutine aleflow(pm, mat, x, mbuf, nel, ixs, ale_connect, v, a, w, dfe, frho0, alpha, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, phi1, phi2, flux, flu1, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, vdx1, vdx2, vdx3, vdx4, vdx5, vdx6, vdx7, vdx8, vdy1, vdy2, vdy3, vdy4, vdy5, vdy6, vdy7, vdy8, vdz1, vdz2, vdz3, vdz4, vdz5, vdz6, vdz7, vdz8, vdx, vdy, vdz, vd2, lvx1, lvx2, lvx3, lvx4, lvx5, lvx6, lvx7, lvx8, lvy1, lvy2, lvy3, lvy4, lvy5, lvy6, lvy7, lvy8, lvz1, lvz2, lvz3, lvz4, lvz5, lvz6, lvz7, lvz8, por, icontact, ifoam)