File: /nfs/home/0/users/jenkins/mfix.git/model/dif_v_is.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 SUBROUTINE DIF_V_IS(DIF, A_M, B_M, M, IER)
22
23
24
25
26
27
28
29
30 USE param
31 USE param1
32 USE parallel
33 USE matrix
34 USE scales
35 USE constant
36 USE toleranc
37 USE run
38 USE physprop
39 USE fldvar
40 USE geometry
41 USE output
42 USE indices
43 USE is
44 USE compar
45 USE fun_avg
46 USE functions
47 IMPLICIT NONE
48
49
50
51
52
53
54
55
56
57 INTEGER IER
58
59
60 INTEGER L
61
62
63 INTEGER I, J, K, I1, I2, J1, J2, K1, K2, IJK,&
64 IJKE, IJKN, IJKT, IPJK, IJKP, IJKNE, IJKTN
65
66
67 INTEGER M
68
69
70 DOUBLE PRECISION Dif(DIMENSION_3)
71
72
73 DOUBLE PRECISION A_m(DIMENSION_3, -3:3, 0:DIMENSION_M)
74
75
76 DOUBLE PRECISION B_m(DIMENSION_3, 0:DIMENSION_M)
77
78
79 DOUBLE PRECISION D_f
80
81
82
83
84
85
86 DO L = 1, DIMENSION_IS
87 IF (IS_DEFINED(L)) THEN
88 I1 = IS_I_W(L)
89 I2 = IS_I_E(L)
90 J1 = IS_J_S(L)
91 J2 = IS_J_N(L)
92 K1 = IS_K_B(L)
93 K2 = IS_K_T(L)
94
95 IF (IS_PLANE(L) == 'E') THEN
96
97 DO K = K1, K2
98 DO J = J1, J2
99 DO I = I1, I2
100 IF (.NOT.IS_ON_myPE_plus2layers(I,J,K)) CYCLE
101 IF (DEAD_CELL_AT(I,J,K)) CYCLE
102 = FUNIJK(I,J,K)
103 IJKE = EAST_OF(IJK)
104 IJKN = NORTH_OF(IJK)
105 IJKNE = EAST_OF(IJKN)
106 IPJK = IP_OF(IJK)
107
108 = AVG_Y_H(AVG_X_H(DIF(IJK),DIF(IJKE),I),AVG_X_H(DIF&
109 (IJKN),DIF(IJKNE),I),J)*ODX_E(I)*AYZ_V(IJK)
110
111 (IJK,E,M) = A_M(IJK,E,M) - D_F
112 A_M(IPJK,W,M) = A_M(IPJK,W,M) - D_F
113 END DO
114 END DO
115 END DO
116 ELSE IF (IS_PLANE(L) == 'T') THEN
117 IF (DO_K) THEN
118 DO K = K1, K2
119 DO J = J1, J2
120 DO I = I1, I2
121 IF (.NOT.IS_ON_myPE_plus2layers(I,J,K)) CYCLE
122 IF (DEAD_CELL_AT(I,J,K)) CYCLE
123 = FUNIJK(I,J,K)
124 IJKN = NORTH_OF(IJK)
125 IJKT = TOP_OF(IJK)
126 IJKTN = NORTH_OF(IJKT)
127 IJKP = KP_OF(IJK)
128
129 = AVG_Y_H(AVG_Z_H(DIF(IJK),DIF(IJKT),K),AVG_Z_H(&
130 DIF(IJKN),DIF(IJKTN),K),J)*OX(I)*ODZ_T(K)*AXY_V(&
131 IJK)
132
133 (IJK,T,M) = A_M(IJK,T,M) - D_F
134 A_M(IJKP,B,M) = A_M(IJKP,B,M) - D_F
135 END DO
136 END DO
137 END DO
138 ENDIF
139 ENDIF
140 ENDIF
141 END DO
142 RETURN
143 END SUBROUTINE DIF_V_IS
144
145
146
147