File: N:\mfix\model\fldvar_mod.f

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