File: RELATIVE:/../../../mfix.git/model/vf_gs_z.f

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2     !                                                                      C
3     !  Subroutine: VF_gs_Z                                                 C
4     !  Purpose: Calculate the average drag coefficient at i, j, k+1/2 and  C
5     !           multiply with W-momentum cell volume.                      C
6     !                                                                      C
7     !  Author: M. Syamlal                                 Date: 17-JUN-96  C
8     !  Reviewer:                                          Date:            C
9     !                                                                      C
10     !  Literature/Document References:                                     C
11     !                                                                      C
12     !  Variables referenced:                                               C
13     !  Variables modified:                                                 C
14     !  Local variables:                                                    C
15     !                                                                      C
16     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
17     
18           SUBROUTINE VF_GS_Z(VXF_GS)
19     
20     !-----------------------------------------------
21     ! Modules
22     !-----------------------------------------------
23           USE param
24           USE param1
25           USE geometry
26           USE indices
27           USE physprop
28           USE compar
29           USE drag
30           USE discretelement
31           USE fun_avg
32           USE functions
33     
34           IMPLICIT NONE
35     !-----------------------------------------------
36     ! Dummy arguments
37     !-----------------------------------------------
38     ! Volume x Drag
39           DOUBLE PRECISION, INTENT(OUT) :: VxF_gs(DIMENSION_3, DIMENSION_M)
40     !-----------------------------------------------
41     ! Local variables
42     !-----------------------------------------------
43     ! Indices
44           INTEGER :: K, IJK, IJKT
45     ! Index of continuum solids phases
46           INTEGER :: M
47     !-----------------------------------------------
48     
49     
50           DO M = 1, SMAX
51              DO IJK = ijkstart3, ijkend3
52                 IF(IP_AT_T(IJK)) THEN
53                    VXF_GS(IJK,M) = ZERO
54                 ELSE
55                    K = K_OF(IJK)
56                    IJKT = TOP_OF(IJK)
57                    VXF_GS(IJK,M) = VOL_W(IJK) *                            &
58                       AVG_Z(F_GS(IJK,M),F_GS(IJKT,M),K)
59                 ENDIF
60              ENDDO
61           ENDDO
62     
63     
64           IF(DISCRETE_ELEMENT .AND. .NOT.DES_ONEWAY_COUPLED) THEN
65              DO IJK = ijkstart3, ijkend3
66                 IF (IP_AT_T(IJK)) THEN
67                    VXF_GDS(IJK) = ZERO
68                 ELSE
69                    K = K_OF(IJK)
70                    IJKT = TOP_OF(IJK)
71                    VXF_GDS(IJK) = VOL_W(IJK) *                             &
72                       AVG_Z(F_GDS(IJK),F_GDS(IJKT),K)
73                 ENDIF
74              ENDDO
75           ENDIF
76     
77     
78           RETURN
79           END SUBROUTINE VF_GS_Z
80     
81     
82     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
83     !                                                                      C
84     !  Subroutine: VF_SS_Z                                                 C
85     !  Purpose: Calculate the average Solid-Solid drag coefficient at      C
86     !           i, j, k+1/2 and multiply with W-momentum cell volume.      C
87     !                                                                      C
88     !  Author: S. Dartevelle, LANL                        Date: 28-FEB-04  C
89     !  Reviewer:                                          Date:            C
90     !                                                                      C
91     !  Literature/Document References:                                     C
92     !                                                                      C
93     !  Variables referenced:                                               C
94     !  Variables modified:                                                 C
95     !  Local variables:                                                    C
96     !                                                                      C
97     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
98     
99           SUBROUTINE VF_SS_Z(VXF_SS)
100     
101     !-----------------------------------------------
102     ! Modules
103     !-----------------------------------------------
104           USE param
105           USE param1
106           USE geometry
107           USE indices
108           USE physprop
109           USE compar
110           USE drag
111           USE discretelement
112           USE fun_avg
113           USE functions
114     
115           IMPLICIT NONE
116     !-----------------------------------------------
117     ! Dummy arguments
118     !-----------------------------------------------
119     ! Volume x Drag
120           DOUBLE PRECISION, INTENT(OUT) :: VxF_SS(DIMENSION_3, DIMENSION_LM)
121     !-----------------------------------------------
122     ! Local variables
123     !-----------------------------------------------
124     ! Indices
125           INTEGER :: K, IJK, IJKT
126     ! Index of continuum solids phases
127           INTEGER :: L, M, LM
128     !-----------------------------------------------
129     
130     ! initialize every call
131           VXF_SS(:,:) = ZERO
132     
133           DO M = 1, MMAX
134              DO L = 1, MMAX
135                 LM = FUNLM(L,M)
136                 IF (L .NE. M) THEN
137                    DO IJK = ijkstart3, ijkend3
138                       IF(IP_AT_T(IJK)) THEN
139                          VXF_SS(IJK,LM) = ZERO
140                       ELSE     !Impermeable wall
141                          K = K_OF(IJK)
142                          IJKT = TOP_OF(IJK)
143                          VXF_SS(IJK,LM) = AVG_Z(F_SS(IJK,LM),F_SS(IJKT,LM),K)*VOL_W(IJK)
144                       ENDIF
145                    ENDDO
146                 ENDIF
147              ENDDO   ! end do loop (l=1,mmax)
148           ENDDO   ! end do loop (m=1,mmax)
149     
150           IF (DES_CONTINUUM_HYBRID) THEN
151              DO M = 1, MMAX
152                 DO IJK = ijkstart3, ijkend3
153                    IF(IP_AT_T(IJK)) THEN
154                       VXF_SDS(IJK,M) = ZERO
155                    ELSE
156                       K = K_OF(IJK)
157                       IJKT = TOP_OF(IJK)
158                       VXF_SDS(IJK,M) = AVG_Z(F_SDS(IJK,M),F_SDS(IJKT,M),K)*VOL_W(IJK)
159                    ENDIF
160                 ENDDO      ! end do loop (ijk=ijkstart3,ijkend3)
161              ENDDO   ! end do loop (m=1,mmax)
162           ENDIF   ! end if (discrete_element and des_continuum_hybrid)
163     
164           RETURN
165           END SUBROUTINE VF_SS_Z
166     
167     
168