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

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     
162