File: N:\mfix\model\adjust_a_u_g.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 SUBROUTINE ADJUST_A_U_G(A_M, B_M)
22
23
24
25
26
27
28
29
30 USE param
31 USE param1
32 USE parallel
33 USE fldvar
34 USE geometry
35 USE run
36 USE indices
37 USE usr
38 USE compar
39 USE sendrecv
40 USE fun_avg
41 USE functions
42 IMPLICIT NONE
43
44
45
46
47
48
49
50
51 INTEGER I, IP, IJK, IJKE, IMJK
52
53
54 INTEGER M
55
56
57 DOUBLE PRECISION A_m(DIMENSION_3, -3:3, 0:DIMENSION_M)
58
59
60 DOUBLE PRECISION B_m(DIMENSION_3, 0:DIMENSION_M)
61
62
63 = 0
64 IF (.NOT.MOMENTUM_X_EQ(0)) RETURN
65
66
67 DO IJK = ijkstart3, ijkend3
68 IF (ABS(A_M(IJK,0,M)) < SMALL_NUMBER) THEN
69 A_M(IJK,east,M) = ZERO
70 A_M(IJK,west,M) = ZERO
71 A_M(IJK,north,M) = ZERO
72 A_M(IJK,south,M) = ZERO
73 A_M(IJK,top,M) = ZERO
74 A_M(IJK,bottom,M) = ZERO
75 A_M(IJK,0,M) = -ONE
76 IF (B_M(IJK,M) < ZERO) THEN
77 IJKE = EAST_OF(IJK)
78 IP = IP1(I_OF(IJK))
79 IF (ROP_G(IJKE)*AYZ_U(IJK) > SMALL_NUMBER) THEN
80 B_M(IJK,M) = SQRT((-B_M(IJK,M)/(ROP_G(IJKE)*AVG_X_E(ONE,ZERO,&
81 IP)*AYZ_U(IJK))))
82 ELSE
83 B_M(IJK,M) = ZERO
84 ENDIF
85 ELSE IF (B_M(IJK,M) > ZERO) THEN
86 I = I_OF(IJK)
87 IMJK = IM_OF(IJK)
88 IF (ROP_G(IJK)*AYZ_U(IMJK) > SMALL_NUMBER) THEN
89 B_M(IJK,M) = SQRT(B_M(IJK,M)/(ROP_G(IJK)*AVG_X_E(ZERO,ONE,I)*&
90 AYZ_U(IMJK)))
91 ELSE
92 B_M(IJK,M) = ZERO
93 ENDIF
94 ENDIF
95 ENDIF
96 END DO
97
98 RETURN
99 END SUBROUTINE ADJUST_A_U_G
100
101
102
103
104