MFIX  2016-1
vavg_u_g.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2 ! C
3 ! Module name: VAVG_U_g C
4 ! Purpose: Volume average U_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_u_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 U_g*EP_g for entire volume
58  DOUBLE PRECISION SUM_U_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_u_g = zero
66  sum_vol = zero
67 
68 
69 !!!!$omp parallel do private(IJK) reduction(+:SUM_VOL,SUM_U_G)
70  DO ijk = ijkstart3, ijkend3
71  IF(.NOT.is_on_mype_wobnd(i_of(ijk), j_of(ijk), k_of(ijk))) cycle
72  IF (fluid_at(ijk)) THEN
73  sum_vol = sum_vol + vol_u(ijk)
74  sum_u_g = sum_u_g + u_g(ijk)*ep_g(ijk)*vol_u(ijk)
75  ENDIF
76  END DO
77 
78  CALL global_all_sum(sum_vol)
79  CALL global_all_sum(sum_u_g)
80 
81  vavg_u_g = sum_u_g/sum_vol
82 !
83 ! uncomment the following lines to enable trapping NaN's.
84 ! IF( mfix_isnan(VAVG_U_G) ) THEN
85 ! write(*,*) VAVG_U_G, ' NaN being caught in VAVG_U_G.f '
86 ! AUTOMATIC_RESTART = .TRUE.
87 ! ENDIF
88 !
89  RETURN
90  END FUNCTION vavg_u_g
91 
92 
93 
94  DOUBLE PRECISION FUNCTION vavg_flux_u_g ()
95 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98
96 !...Switches: -xf
97 !
98 !-----------------------------------------------
99 ! M o d u l e s
100 !-----------------------------------------------
101  USE param
102  USE param1
103  USE parallel
104  USE run
105  USE fldvar
106  USE bc
107  USE geometry
108  USE physprop
109  USE indices
110  USE compar
111  USE mpi_utility
112  USE mflux
113  USE functions
114 
115  IMPLICIT NONE
116 !-----------------------------------------------
117 ! G l o b a l P a r a m e t e r s
118 !-----------------------------------------------
119 !-----------------------------------------------
120 ! L o c a l P a r a m e t e r s
121 !-----------------------------------------------
122 !-----------------------------------------------
123 ! L o c a l V a r i a b l e s
124 !-----------------------------------------------
125 !
126 ! Indices
127  INTEGER IJK
128 !
129 ! Integral of U_g*ROP_g*Area
130  DOUBLE PRECISION SUM_U_g
131 !
132 ! Total area of computational cells
133  DOUBLE PRECISION SUM_AREA
134 
135 ! Integrate the velocity values for the whole domain,
136 !
137  sum_u_g = zero
138  sum_area = zero
139 
140 
141 !!!!$omp parallel do private(IJK) reduction(+:SUM_AREA,SUM_U_G)
142  DO ijk = ijkstart3, ijkend3
143  IF(.NOT.is_on_mype_wobnd(i_of(ijk), j_of(ijk), k_of(ijk))) cycle
144  IF (fluid_at(ijk)) THEN
145  IF(.NOT.added_mass) THEN
146  sum_u_g = sum_u_g + flux_ge(ijk)
147  ELSE
148  sum_u_g = sum_u_g + flux_gse(ijk)
149  ENDIF
150  sum_area = sum_area + ayz(ijk)
151  ENDIF
152  END DO
153 
154  CALL global_all_sum(sum_area)
155  CALL global_all_sum(sum_u_g)
156 
157  vavg_flux_u_g = sum_u_g/sum_area
158 !
159  RETURN
160  END FUNCTION vavg_flux_u_g
161 
double precision, dimension(:), allocatable flux_ge
Definition: mflux_mod.f:13
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
logical added_mass
Definition: run_mod.f:91
double precision function vavg_flux_u_g()
Definition: vavg_u_g.f:95
double precision, dimension(:), allocatable ayz
Definition: geometry_mod.f:206
integer, dimension(:), allocatable k_of
Definition: indices_mod.f:47
double precision, dimension(:), allocatable flux_gse
Definition: mflux_mod.f:28
integer, dimension(:), allocatable j_of
Definition: indices_mod.f:46
Definition: run_mod.f:13
double precision function vavg_u_g()
Definition: vavg_u_g.f:24
Definition: param_mod.f:2
integer ijkstart3
Definition: compar_mod.f:80
double precision, dimension(:), allocatable u_g
Definition: fldvar_mod.f:87
double precision, dimension(:), allocatable vol_u
Definition: geometry_mod.f:224
logical function mfix_isnan(x)
Definition: utilities_mod.f:14
double precision, parameter zero
Definition: param1_mod.f:27
Definition: bc_mod.f:23