32
33
34
35#include "implicit_f.inc"
36
37
38
39#include "mvsiz_p.inc"
40#include "com01_c.inc"
41#include "com04_c.inc"
42#include "com08_c.inc"
43#include "vect01_c.inc"
44
45
46
47 INTEGER IFLG, IXQ(NIXQ, NUMELQ)
48 INTEGER,INTENT(IN) :: IOFF
49 my_real vtot(*), phi(*), flux(4,*), flu1(*), qmv(8,*), x(3,numnod)
50 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
51
52
53
54 INTEGER I, J,IE, IV, IAD2, LGTH
55 my_real vl(6,mvsiz), r1, r2, r3, r4
56
57
58
59 DO i=lft,llt
60 ie =nft+i
61 iad2 = ale_connect%ee_connect%iad_connect(ie)
62 lgth = ale_connect%ee_connect%iad_connect(ie+1) - iad2
63 DO j=1,lgth
64 iv = ale_connect%ee_connect%connected(iad2 + j - 1)
65 IF(iv > 0)THEN
66 vl(j,i)=phi(iv)*flux(j,i)
67 ELSEIF(iv == 0)THEN
68 vl(j,i)=phi(ie)*flux(j,i)
69 ELSE
70
71
72
73 vl(j,i) = phi(-iv+ioff) *flux(j,i)
74 ENDIF
75 ENDDO
76 ENDDO
77
78 DO i=lft,llt
79 ie =nft+i
80 vtot(i) = vtot(i) + half * dt1 * (- phi(ie)*flu1(i) - vl(1,i)-vl(2,i)-vl(3,i)-vl(4,i) )
81 vtot(i)=
max(em20,vtot(i))
82 ENDDO
83
84 IF(trimat > 0 .AND. iflg == 1)THEN
85 IF (n2d == 1) THEN
86 DO i=lft,llt
87 ie =nft+i
88 r1 = half * (x(2, ixq(2, ie)) + x(2, ixq(3, ie)))
89 r2 = half * (x(2, ixq(3, ie)) + x(2, ixq(4, ie)))
90 r3 = half * (x(2, ixq(4, ie)) + x(2, ixq(5, ie)))
91 r4 = half * (x(2, ixq(5, ie)) + x(2, ixq(2, ie)))
92
93 IF (r1 == zero) r1 = one
94 IF (r2 == zero) r2 = one
95 IF (r3 == zero) r3 = one
96 IF (r4 == zero) r4 = one
97
98 qmv(1,i) = qmv(1,i) - vl(1,i) / r1 - phi(ie)*qmv(5,i)
99 qmv(2,i) = qmv(2,i) - vl(2,i) / r2 - phi(ie)*qmv(6,i)
100 qmv(3,i) = qmv(3,i) - vl(3,i) / r3 - phi(ie)*qmv(7,i)
101 qmv(4,i) = qmv(4,i) - vl(4,i) / r4 - phi(ie)*qmv(8,i)
102 ENDDO
103 ELSE
104 DO i=lft,llt
105 ie =nft+i
106 qmv(1,i) = qmv(1,i) - vl(1,i) - phi(ie)*qmv(5,i)
107 qmv(2,i) = qmv(2,i) - vl(2,i) - phi(ie)*qmv(6,i)
108 qmv(3,i) = qmv(3,i) - vl(3,i) - phi(ie)*qmv(7,i)
109 qmv(4,i) = qmv(4,i) - vl(4,i) - phi(ie)*qmv(8,i)
110 ENDDO
111 ENDIF
112 ENDIF
113
114 RETURN