File: RELATIVE:/../../../mfix.git/model/des/dif_phi_source_des.f
1
2
3
4
5
6
7
8
9
10
11
12 SUBROUTINE DIF_PHI_SOURCE_DES(PHI, M, A_M, B_M, lDT)
13
14
15
16
17 USE param
18 USE param1
19 USE parallel
20 USE matrix
21 USE scales
22 USE physprop
23 USE fldvar
24 USE rxns
25 USE run
26 USE toleranc
27 USE geometry
28 USE indices
29 USE compar
30 USE fun_avg
31 USE functions
32
33 IMPLICIT NONE
34
35
36
37
38 DOUBLE PRECISION :: S_C
39
40 DOUBLE PRECISION, INTENT(IN) :: Phi(DIMENSION_3)
41
42 INTEGER, INTENT(IN) :: M
43
44 DOUBLE PRECISION, INTENT(INOUT) :: A_m(DIMENSION_3, -3:3, 0:DIMENSION_M)
45
46 DOUBLE PRECISION, INTENT(INOUT) :: B_m(DIMENSION_3, 0:DIMENSION_M)
47
48 DOUBLE PRECISION, INTENT(IN) :: lDT
49
50
51
52
53 INTEGER :: IJK
54
55 DOUBLE PRECISION :: APO
56 DOUBLE PRECISION :: lOoDT
57
58
59
60 = 1.0d0/lDT
61
62 DO IJK = IJKSTART3, IJKEND3
63
64 IF (FLUID_AT(IJK)) THEN
65
66 APO = VOL(IJK)*lOoDT
67
68
69 (IJK,0,M) = -(A_M(IJK,E,M)+A_M(IJK,W,M)+&
70 A_M(IJK,N,M)+A_M(IJK,S,M)+&
71 A_M(IJK,T,M)+A_M(IJK,B,M)+ APO)
72
73 S_C = APO*PHI(IJK)
74
75 IF(B_M(IJK,M) < S_C .OR. PHI(IJK) == ZERO) THEN
76 B_M(IJK,M) = B_M(IJK,M) - S_C
77 ELSE
78 A_M(IJK,0,M) = A_M(IJK,0,M) - B_M(IJK,M)/PHI(IJK)
79 B_M(IJK,M) = -S_C
80 ENDIF
81
82 ENDIF
83 ENDDO
84
85
86 RETURN
87 END SUBROUTINE DIF_PHI_SOURCE_DES
88