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

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2     !                                                                      C
3     !  Module: fldvar                                                      C
4     !  Purpose: Common block containing field variables data               C
5     !                                                                      C
6     !  Author: M. Syamlal                                 Date: dd-mmm-yy  C
7     !  Reviewer:                                          Date: dd-mmm-yy  C
8     !                                                                      C
9     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
10           MODULE fldvar
11     
12     
13     ! Void fraction
14           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  EP_g
15     ! Store the void/volume fraction or value of 1 depending on setting of
16     ! governing equations
17           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  epg_jfac
18           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  epg_ifac
19           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  eps_ifac
20     
21     ! Previous-time-step value of Void fraction
22           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  EP_go
23     
24     ! Gas pressure
25           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  P_g
26     
27     ! Previous-time-step value of Gas pressure
28           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  P_go
29     
30     ! Gas density
31           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  RO_g
32     
33     ! Previous-time-step value of Gas density
34           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  RO_go
35     
36     ! Macroscopic gas density
37           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  ROP_g
38     
39     ! Previous-time-step value of macroscopic gas density
40           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  ROP_go
41     
42     
43     ! Solids phase densities
44           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: RO_S
45     
46     ! Previous-time-step value Solids phase densities
47           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: RO_So
48     
49     ! Macroscopic density of solids phases
50           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  ROP_s
51     
52     ! Previous-time-step value of macroscopic density of solids phases
53           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  ROP_so
54     
55     ! Macroscopic density of particle diameter
56           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  D_p
57     
58     ! Previous-time-step value of particle diameter
59           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  D_po
60     
61     ! Gas phase temperature
62           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  T_g
63     
64     ! Solids phase temperature
65           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  T_s
66     
67     ! Previous-time-step value of Gas phase temperature
68           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  T_go
69     
70     ! Previous-time-step value of Solids phase temperature
71           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  T_so
72     
73     ! Gas species mass fraction
74           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  X_g
75     
76     ! Solids species mass fraction
77           DOUBLE PRECISION, DIMENSION(:, :, :), ALLOCATABLE ::  X_s
78     
79     ! Previous-time-step value of Gas species mass fraction
80           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  X_go
81     
82     ! Previous-time-step value of Solids species mass fraction
83           DOUBLE PRECISION, DIMENSION(:, :, :), ALLOCATABLE ::  X_so
84     
85     ! x-component of gas velocity
86           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  U_g
87     
88     ! Previous-time-step value of x-component of gas velocity
89           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  U_go
90     
91     ! x-component of solids phase velocity
92           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  U_s
93     
94     ! Previous-time-step value of x-component of solids phase velocity
95           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  U_so
96     
97     ! y-component of gas velocity
98           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  V_g
99     
100     ! Previous time-step value of y-component of gas velocity
101           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  V_go
102     
103     ! y-component of solids phase velocity
104           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  V_s
105     
106     ! Previous time-step value of y-component of solids phase velocity
107           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  V_so
108     
109     ! z-component of gas velocity
110           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  W_g
111     
112     ! Previous time-step value of z-component of gas velocity
113           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  W_go
114     
115     ! z-component of solids phase velocity
116           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  W_s
117     
118     ! Previous time-step value of z-component of solids phase velocity
119           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  W_so
120     
121     ! Solids pressure as a result of granular motion
122           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  P_s
123     
124     ! Solids pressure as a result of granular motion
125     ! Collisional Contribution
126           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  P_s_c
127     
128     ! Solids pressure as a result of granular motion
129     ! Viscous Contribution
130           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  P_s_v
131     
132     ! Solids pressure as a result of granular motion
133     ! Frictional Contribution
134           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  P_s_f
135     
136     ! Solids pressure as a result of granular motion
137     ! Plastic Contribution
138           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  P_s_p
139     
140     ! Solids pressure that maintains EP_g >= EP_star
141           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  P_star
142     
143     ! Previous-time-step value of Solids pressure that maintains
144     ! EP_g >= EP_star
145           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  P_staro
146     
147     ! Granular temperature of mth phase
148           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  THETA_m
149     
150     ! Previous-time-step value of Granular temperature of mth phase
151           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  THETA_mo
152     
153     ! User-defined Scalars
154           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  Scalar
155     
156     ! Previous time-step value of User-defined Scalars
157           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE ::  Scalaro
158     
159     ! K and Epsilon for Gas turbulence
160           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  K_Turb_G
161           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  E_Turb_G
162     
163     ! Previous time-step value of K and Epsilon
164           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  K_Turb_Go
165           DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE ::  E_Turb_Go
166     
167     
168     !--------------------------------------------------------------------------> J.Musser TBR
169           DOUBLE PRECISION, DIMENSION(:, :, :), ALLOCATABLE :: EP_SS
170           DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: ERR_ARRAY
171     
172     
173           CONTAINS
174     
175     ! Function to calculate the solids phase M volume fraction.
176           DOUBLE PRECISION FUNCTION EP_s(IJK, xxM)
177           IMPLICIT NONE
178           INTEGER, INTENT(IN) :: IJK   ! spatial index
179           INTEGER, INTENT(IN) :: xxM   ! solids phase index
180           EP_s = ROP_s(IJK, xxM)/RO_S(IJK,xxM)
181           END FUNCTION
182     
183     
184     !!!HPF$ align EP_g(:) with TT(:)
185     !!!HPF$ align EP_go(:) with TT(:)
186     !!!HPF$ align P_g(:) with TT(:)
187     !!!HPF$ align P_go(:) with TT(:)
188     !!!HPF$ align RO_g(:) with TT(:)
189     !!!HPF$ align RO_go(:) with TT(:)
190     !!!HPF$ align ROP_g(:) with TT(:)
191     !!!HPF$ align ROP_go(:) with TT(:)
192     !!!HPF$ align D_p(:, *) with TT(:)
193     !!!HPF$ align D_po(:, *) with TT(:)
194     !!!HPF$ align ROP_s(:, *) with TT(:)
195     !!!HPF$ align ROP_so(:, *) with TT(:)
196     !!!HPF$ align T_g(:) with TT(:)
197     !!!HPF$ align T_s(:, *) with TT(:)
198     !!!HPF$ align T_go(:) with TT(:)
199     !!!HPF$ align T_so(:, *) with TT(:)
200     !!!HPF$ align X_g(:, *) with TT(:)
201     !!!HPF$ align X_s(:, *, *) with TT(:)
202     !!!HPF$ align X_go(:, *) with TT(:)
203     !!!HPF$ align X_so(:, *, *) with TT(:)
204     !!!HPF$ align U_g(:) with TT(:)
205     !!!HPF$ align U_go(:) with TT(:)
206     !!!HPF$ align U_s(:, *) with TT(:)
207     !!!HPF$ align U_so(:, *) with TT(:)
208     !!!HPF$ align V_g(:) with TT(:)
209     !!!HPF$ align V_go(:) with TT(:)
210     !!!HPF$ align V_s(:, *) with TT(:)
211     !!!HPF$ align V_so(:, *) with TT(:)
212     !!!HPF$ align W_g(:) with TT(:)
213     !!!HPF$ align W_go(:) with TT(:)
214     !!!HPF$ align W_s(:, *) with TT(:)
215     !!!HPF$ align W_so(:, *) with TT(:)
216     !!!HPF$ align P_s(:, *) with TT(:)
217     !!!HPF$ align P_s_c(:, *) with TT(:)
218     !!!HPF$ align P_star(:) with TT(:)
219     !!!HPF$ align P_staro(:) with TT(:)
220     !!!HPF$ align THETA_m(:, *) with TT(:)
221     !!!HPF$ align THETA_mo(:, *) with TT(:)
222     
223     
224           END MODULE fldvar
225