File: N:\mfix\model\get_philoss.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 SUBROUTINE GET_PHILOSS(PHI,DIFF,BC_PHI_W,BC_HW_PHI,BC_C_PHI,LOSS)
25
26
27
28
29
30
31
32
33 USE param
34 USE param1
35 USE physprop
36 USE geometry
37 USE fldvar
38 USE bc
39 USE indices
40 USE energy
41 USE compar
42 USE functions
43 IMPLICIT NONE
44
45
46
47
48
49
50
51
52 DOUBLE PRECISION Phi(DIMENSION_3)
53
54
55 DOUBLE PRECISION Diff(DIMENSION_3)
56
57
58 DOUBLE PRECISION BC_Phi_w(DIMENSION_BC)
59
60
61 DOUBLE PRECISION BC_hw_Phi(DIMENSION_BC)
62
63
64 DOUBLE PRECISION BC_C_Phi(DIMENSION_BC)
65
66
67 DOUBLE PRECISION LOSS
68
69
70 INTEGER L, I, J, K, IJK, IJKE, IJKW, IJKN, IJKS
71 INTEGER IJKT, IJKB
72
73
74 INTEGER I1, I2, J1, J2, K1, K2
75
76
77 = ZERO
78
79 DO L = 1, DIMENSION_BC
80 IF (BC_DEFINED(L)) THEN
81 IF (BC_TYPE_ENUM(L)==NO_SLIP_WALL .OR. BC_TYPE_ENUM(L)==FREE_SLIP_WALL&
82 .OR. BC_TYPE_ENUM(L)==PAR_SLIP_WALL) THEN
83 I1 = BC_I_W(L)
84 I2 = BC_I_E(L)
85 J1 = BC_J_S(L)
86 J2 = BC_J_N(L)
87 K1 = BC_K_B(L)
88 K2 = BC_K_T(L)
89 DO K = K1, K2
90 DO J = J1, J2
91 DO I = I1, I2
92 IF(.NOT.IS_ON_myPE_Owns(I,J,K)) CYCLE
93 IF (DEAD_CELL_AT(I,J,K)) CYCLE
94 = FUNIJK(I,J,K)
95 IF (FLUID_AT(EAST_OF(IJK))) THEN
96 IJKE = EAST_OF(IJK)
97 IF (BC_HW_PHI(L) == UNDEFINED) THEN
98 LOSS = LOSS + DIFF(IJKE)*AYZ(IJK)*(PHI(EAST_OF(&
99 IJKE))-PHI(IJKE))*ODX_E(IP1(I))
100 ELSE
101 LOSS = LOSS + DIFF(IJKE)*AYZ(IJK)*(BC_HW_PHI(L)*(&
102 PHI(IJKE)-BC_PHI_W(L))-BC_C_PHI(L))
103 ENDIF
104 ELSE IF (FLUID_AT(WEST_OF(IJK))) THEN
105 IJKW = WEST_OF(IJK)
106 IF (BC_HW_PHI(L) == UNDEFINED) THEN
107 LOSS = LOSS - DIFF(IJKW)*AYZ(IJKW)*(PHI(IJKW)-PHI&
108 (WEST_OF(IJKW)))*ODX_E(IM1(IM1(I)))
109 ELSE
110 LOSS = LOSS + DIFF(IJKW)*AYZ(IJKW)*(BC_HW_PHI(L)*&
111 (PHI(IJKW)-BC_PHI_W(L))-BC_C_PHI(L))
112 ENDIF
113 ELSE IF (FLUID_AT(NORTH_OF(IJK))) THEN
114 IJKN = NORTH_OF(IJK)
115 IF (BC_HW_PHI(L) == UNDEFINED) THEN
116 LOSS = LOSS + DIFF(IJKN)*AXZ(IJK)*(PHI(NORTH_OF(&
117 IJKN))-PHI(IJKN))*ODY_N(JP1(J))
118 ELSE
119 LOSS = LOSS + DIFF(IJKN)*AXZ(IJK)*(BC_HW_PHI(L)*(&
120 PHI(IJKN)-BC_PHI_W(L))-BC_C_PHI(L))
121 ENDIF
122 ELSE IF (FLUID_AT(SOUTH_OF(IJK))) THEN
123 IJKS = SOUTH_OF(IJK)
124 IF (BC_HW_PHI(L) == UNDEFINED) THEN
125 LOSS = LOSS + DIFF(IJKS)*AXZ(JM_OF(IJK))*(PHI(&
126 IJKS)-PHI(SOUTH_OF(IJKS)))*ODY_N(JM1(JM1(J)))
127 ELSE
128 LOSS = LOSS + DIFF(IJKS)*AXZ(JM_OF(IJK))*(&
129 BC_HW_PHI(L)*(PHI(IJKS)-BC_PHI_W(L))-BC_C_PHI(&
130 L))
131 ENDIF
132 ELSE IF (FLUID_AT(TOP_OF(IJK))) THEN
133 IJKT = TOP_OF(IJK)
134 IF (BC_HW_PHI(L) == UNDEFINED) THEN
135 LOSS = LOSS + DIFF(IJKT)*AXY(IJK)*(PHI(TOP_OF(&
136 IJKT))-PHI(IJKT))*OX(I)*ODZ_T(KP1(K))
137 ELSE
138 LOSS = LOSS + DIFF(IJKT)*AXY(IJK)*(BC_HW_PHI(L)*(&
139 PHI(IJKT)-BC_PHI_W(L))-BC_C_PHI(L))
140 ENDIF
141 ELSE IF (FLUID_AT(BOTTOM_OF(IJK))) THEN
142 IJKB = BOTTOM_OF(IJK)
143 IF (BC_HW_PHI(L) == UNDEFINED) THEN
144 LOSS = LOSS + DIFF(IJKB)*AXY(KM_OF(IJK))*(PHI(&
145 IJKB)-PHI(BOTTOM_OF(IJKB)))*OX(I)*ODZ_T(KM1(&
146 KM1(K)))
147 ELSE
148 LOSS = LOSS + DIFF(IJKB)*AXY(KM_OF(IJK))*(&
149 BC_HW_PHI(L)*(PHI(IJKB)-BC_PHI_W(L))-BC_C_PHI(&
150 L))
151 ENDIF
152 ENDIF
153 END DO
154 END DO
155 END DO
156 ENDIF
157 ENDIF
158 END DO
159 RETURN
160 END SUBROUTINE GET_PHILOSS
161
162
163
164