MFIX  2016-1
vavg_w_g.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2 ! C
3 ! Module name: VAVG_W_g C
4 ! Purpose: Calculate volume averaged W_g C
5 ! C
6 ! Author: M. Syamlal Date: 28-APR-94 C
7 ! Reviewer: Date: dd-mmm-yy C
8 ! C
9 ! Revision Number: C
10 ! Purpose: C
11 ! Author: Date: dd-mmm-yy C
12 ! Reviewer: Date: dd-mmm-yy C
13 ! C
14 ! Literature/Document References: C
15 ! C
16 ! Variables referenced: C
17 ! Variables modified: C
18 ! C
19 ! Local variables: C
20 ! C
21 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
22 !
23  DOUBLE PRECISION FUNCTION vavg_w_g ()
24 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98
25 !...Switches: -xf
26 !
27 !-----------------------------------------------
28 ! M o d u l e s
29 !-----------------------------------------------
30  USE bc
31  USE compar
32  USE fldvar
33  USE functions
34  USE geometry
35  USE indices
36  USE mpi_utility
37  USE parallel
38  USE param
39  USE param1
40  USE physprop
41  USE run
42  USE utilities, ONLY: mfix_isnan
43  IMPLICIT NONE
44 !-----------------------------------------------
45 ! G l o b a l P a r a m e t e r s
46 !-----------------------------------------------
47 !-----------------------------------------------
48 ! L o c a l P a r a m e t e r s
49 !-----------------------------------------------
50 !-----------------------------------------------
51 ! L o c a l V a r i a b l e s
52 !-----------------------------------------------
53 !
54 ! Indices
55  INTEGER IJK
56 !
57 ! Integral of W_g*EP_g for entire volume
58  DOUBLE PRECISION SUM_W_g
59 !
60 ! Total volume of computational cells
61  DOUBLE PRECISION SUM_VOL
62 
63 ! Integrate the velocity values for the whole domain,
64 !
65  sum_w_g = zero
66  sum_vol = zero
67 
68 !!!!$omp parallel do private(IJK) reduction(+:SUM_VOL,SUM_W_G)
69  DO ijk = ijkstart3, ijkend3
70  IF(.NOT.is_on_mype_wobnd(i_of(ijk), j_of(ijk), k_of(ijk))) cycle
71  IF (fluid_at(ijk)) THEN
72  sum_vol = sum_vol + vol_w(ijk)
73  sum_w_g = sum_w_g + w_g(ijk)*ep_g(ijk)*vol_w(ijk)
74  ENDIF
75  END DO
76 
77  CALL global_all_sum(sum_vol)
78  CALL global_all_sum(sum_w_g)
79  vavg_w_g = sum_w_g/sum_vol
80 !
81 ! uncomment the following lines to enable trapping NaN's.
82 ! IF( mfix_isnan(VAVG_W_G) ) THEN
83 ! write(*,*) VAVG_W_G, ' NaN being caught in VAVG_W_G.f '
84 ! AUTOMATIC_RESTART = .TRUE.
85 ! ENDIF
86 !
87  RETURN
88  END FUNCTION vavg_w_g
89 
90 
91 
92  DOUBLE PRECISION FUNCTION vavg_flux_w_g ()
93 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98
94 !...Switches: -xf
95 !
96 !-----------------------------------------------
97 ! M o d u l e s
98 !-----------------------------------------------
99  USE param
100  USE param1
101  USE parallel
102  USE run
103  USE fldvar
104  USE bc
105  USE geometry
106  USE physprop
107  USE indices
108  USE compar
109  USE mpi_utility
110  USE mflux
111  USE functions
112  IMPLICIT NONE
113 !-----------------------------------------------
114 ! G l o b a l P a r a m e t e r s
115 !-----------------------------------------------
116 !-----------------------------------------------
117 ! L o c a l P a r a m e t e r s
118 !-----------------------------------------------
119 !-----------------------------------------------
120 ! L o c a l V a r i a b l e s
121 !-----------------------------------------------
122 !
123 ! Indices
124  INTEGER IJK
125 !
126 ! Integral of W_g*EP_g for entire volume
127  DOUBLE PRECISION SUM_W_g
128 !
129 ! Total volume of computational cells
130  DOUBLE PRECISION SUM_AREA
131 !
132 !-----------------------------------------------
133 !
134 ! Integrate the velocity values for the whole domain,
135 !
136  sum_w_g = zero
137  sum_area = zero
138 
139 !!!!$omp parallel do private(IJK) reduction(+:SUM_AREA,SUM_W_G)
140  DO ijk = ijkstart3, ijkend3
141  IF(.NOT.is_on_mype_wobnd(i_of(ijk), j_of(ijk), k_of(ijk))) cycle
142  IF (fluid_at(ijk)) THEN
143  IF(.NOT.added_mass) THEN
144  sum_w_g = sum_w_g + flux_gt(ijk)
145  ELSE
146  sum_w_g = sum_w_g + flux_gst(ijk)
147  ENDIF
148  sum_area = sum_area + axy(ijk)
149  ENDIF
150  END DO
151 
152  CALL global_all_sum(sum_area)
153  CALL global_all_sum(sum_w_g)
154  vavg_flux_w_g = sum_w_g/sum_area
155 !
156  RETURN
157  END FUNCTION vavg_flux_w_g
double precision, dimension(:), allocatable vol_w
Definition: geometry_mod.f:242
integer, dimension(:), allocatable i_of
Definition: indices_mod.f:45
integer ijkend3
Definition: compar_mod.f:80
double precision, dimension(:), allocatable ep_g
Definition: fldvar_mod.f:15
double precision, dimension(:), allocatable flux_gst
Definition: mflux_mod.f:32
double precision, dimension(:), allocatable axy
Definition: geometry_mod.f:210
logical added_mass
Definition: run_mod.f:91
double precision function vavg_flux_w_g()
Definition: vavg_w_g.f:93
integer, dimension(:), allocatable k_of
Definition: indices_mod.f:47
integer, dimension(:), allocatable j_of
Definition: indices_mod.f:46
double precision, dimension(:), allocatable w_g
Definition: fldvar_mod.f:111
Definition: run_mod.f:13
Definition: param_mod.f:2
double precision, dimension(:), allocatable flux_gt
Definition: mflux_mod.f:17
integer ijkstart3
Definition: compar_mod.f:80
logical function mfix_isnan(x)
Definition: utilities_mod.f:14
double precision function vavg_w_g()
Definition: vavg_w_g.f:24
double precision, parameter zero
Definition: param1_mod.f:27
Definition: bc_mod.f:23