MFIX  2016-1
vf_gs_z.f
Go to the documentation of this file.
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)
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 
double precision, dimension(:), allocatable vol_w
Definition: geometry_mod.f:242
integer ijkend3
Definition: compar_mod.f:80
integer dimension_lm
Definition: param1_mod.f:13
integer dimension_3
Definition: param_mod.f:11
double precision, dimension(:,:), allocatable f_ss
Definition: drag_mod.f:17
Definition: drag_mod.f:11
integer, dimension(:), allocatable k_of
Definition: indices_mod.f:47
integer mmax
Definition: physprop_mod.f:19
subroutine vf_ss_z(VXF_SS)
Definition: vf_gs_z.f:100
Definition: param_mod.f:2
integer ijkstart3
Definition: compar_mod.f:80
subroutine vf_gs_z(VXF_GS)
Definition: vf_gs_z.f:19
double precision, dimension(:,:), allocatable f_gs
Definition: drag_mod.f:14
integer smax
Definition: physprop_mod.f:22
integer dimension_m
Definition: param_mod.f:18
double precision, parameter zero
Definition: param1_mod.f:27