File: /nfs/home/0/users/jenkins/mfix.git/model/dif_u_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_U_IS(DIF, A_M, B_M, M)
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 INTEGER L
57
58
59 INTEGER I, J, K, I1, I2, J1, J2, K1, K2, IJK,&
60 IJKE, IJKN, IJKT, IJPK, IJKP, IJKNE, IJKTE
61
62
63 INTEGER M
64
65
66 DOUBLE PRECISION Dif(DIMENSION_3)
67
68
69 DOUBLE PRECISION A_m(DIMENSION_3, -3:3, 0:DIMENSION_M)
70
71
72 DOUBLE PRECISION B_m(DIMENSION_3, 0:DIMENSION_M)
73
74
75 DOUBLE PRECISION D_f
76
77
78
79
80 DO L = 1, DIMENSION_IS
81 IF (IS_DEFINED(L)) THEN
82 I1 = IS_I_W(L)
83 I2 = IS_I_E(L)
84 J1 = IS_J_S(L)
85 J2 = IS_J_N(L)
86 K1 = IS_K_B(L)
87 K2 = IS_K_T(L)
88
89 IF(I1.LE.IEND2) I1 = MAX(I1, ISTART2)
90 IF(J1.LE.JEND2) J1 = MAX(J1, JSTART2)
91 IF(K1.LE.KEND2) K1 = MAX(K1, KSTART2)
92 IF(I2.GE.ISTART2) I2 = MIN(I2, IEND2)
93 IF(J2.GE.JSTART2) J2 = MIN(J2, JEND2)
94 IF(K2.GE.KSTART2) K2 = MIN(K2, KEND2)
95
96 IF (IS_PLANE(L) == 'N') THEN
97
98 DO K = K1, K2
99 DO J = J1, J2
100 DO I = I1, I2
101 IF (.NOT.IS_ON_myPE_plus2layers(I,J,K)) CYCLE
102 IF (DEAD_CELL_AT(I,J,K)) CYCLE
103 = FUNIJK(I,J,K)
104 IJKE = EAST_OF(IJK)
105 IJKN = NORTH_OF(IJK)
106 IJKNE = EAST_OF(IJKN)
107 IJPK = JP_OF(IJK)
108
109 = AVG_X_H(AVG_Y_H(DIF(IJK),DIF(IJKN),J),AVG_Y_H(DIF&
110 (IJKE),DIF(IJKNE),J),I)*ODY_N(J)*AXZ_U(IJK)
111
112 (IJK,N,M) = A_M(IJK,N,M) - D_F
113 A_M(IJPK,S,M) = A_M(IJPK,S,M) - D_F
114 END DO
115 END DO
116 END DO
117 ELSE IF (IS_PLANE(L) == 'T') THEN
118 IF (DO_K) THEN
119 DO K = K1, K2
120 DO J = J1, J2
121 DO I = I1, I2
122 IF (.NOT.IS_ON_myPE_plus2layers(I,J,K)) CYCLE
123 IF (DEAD_CELL_AT(I,J,K)) CYCLE
124 = FUNIJK(I,J,K)
125 IJKE = EAST_OF(IJK)
126 IJKT = TOP_OF(IJK)
127 IJKTE = EAST_OF(IJKT)
128 IJKP = KP_OF(IJK)
129
130 = AVG_X_H(AVG_Z_H(DIF(IJK),DIF(IJKT),K),AVG_Z_H(&
131 DIF(IJKE),DIF(IJKTE),K),I)*OX_E(I)*ODZ_T(K)*AXY_U&
132 (IJK)
133
134 (IJK,T,M) = A_M(IJK,T,M) - D_F
135 A_M(IJKP,B,M) = A_M(IJKP,B,M) - D_F
136 END DO
137 END DO
138 END DO
139 ENDIF
140 ENDIF
141 ENDIF
142 END DO
143
144
145 RETURN
146 END SUBROUTINE DIF_U_IS
147
148
149
150
151