1# 1 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
6# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
7# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
8# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
9# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
10# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
11# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
12# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
13# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
15# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
16# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
17# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
19# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
20# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
40# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
41# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
42# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
49# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
66# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
68# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
70# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
72# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
74# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
75# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
77# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 126 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114# 156 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116# 197 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
118# 211 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
120# 236 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
122# 247 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124# 249 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 260 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 310 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 320 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 356 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 366 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 373 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141# 379 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143# 385 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
145# 391 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
147# 397 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
149# 403 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
151# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
152# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
153# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
154# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
155# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
157# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164# 15 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
165# 16 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168# 24 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170# 53 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172# 65 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
174# 75 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
176# 105 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
178# 117 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
180# 127 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
182# 174 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
184# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
186# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
232# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
234# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
236# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
238# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
240# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
242# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
245# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
293# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
296# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
299# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
301# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
302# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
304# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
306# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
311# 52 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314# 72 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
317# 80 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
320# 104 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
323# 120 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
326# 145 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
328# 151 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
330# 158 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
332# 6 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp" 2
333# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
339# 8 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
342# 12 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
343# 7 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp" 2
356 use m_thermochem,
only: num_species, get_temperature, get_pressure, gas_constant, get_mixture_molecular_weight, &
357 & get_mixture_energy_mass
370 real(wp),
allocatable,
dimension(:) ::
gs_vc
372 real(wp),
allocatable,
dimension(:,:) ::
res_vc
374# 36 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
375#if defined(MFC_OpenACC)
376# 36 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
378# 36 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
379#elif defined(MFC_OpenMP)
380# 36 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
382# 36 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
387# 39 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
388#if defined(MFC_OpenACC)
389# 39 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
391# 39 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
392#elif defined(MFC_OpenMP)
393# 39 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
395# 39 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
402# 44 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
403#if defined(MFC_OpenACC)
404# 44 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
406# 44 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
407#elif defined(MFC_OpenMP)
408# 44 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
410# 44 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
413 real(wp),
allocatable,
dimension(:,:,:),
public ::
rho_sf
414 real(wp),
allocatable,
dimension(:,:,:),
public ::
gamma_sf
415 real(wp),
allocatable,
dimension(:,:,:),
public ::
pi_inf_sf
421 subroutine s_convert_to_mixture_variables(q_vf, i, j, k, rho, gamma, pi_inf, qv, Re_K, G_K, G)
423 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_vf
424 integer,
intent(in) :: i,
j,
k
425 real(wp),
intent(out),
target :: rho, gamma, pi_inf, qv
426 real(wp),
optional,
dimension(2),
intent(out) :: re_k
427 real(wp),
optional,
intent(out) :: g_k
428 real(wp),
optional,
dimension(num_fluids),
intent(in) :: g
433 call s_convert_species_to_mixture_variables(q_vf, i,
j,
k, rho, gamma, pi_inf, qv, re_k, g_k, g)
439 subroutine s_compute_pressure(energy, alf, dyn_p, pi_inf, gamma, rho, qv, rhoYks, pres, T, E_e_in, pres_mag)
442# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
444# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
446# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
448# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
450# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
452# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
454# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
456# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
458# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
460# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
462# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
464# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
466# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
468# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
470# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
472# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
474# 74 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
477 real(stp),
intent(in) :: energy, alf
478 real(wp),
intent(in) :: dyn_p
479 real(wp),
intent(in) :: pi_inf, gamma, rho, qv
480 real(wp),
intent(out) :: pres
481 real(wp),
intent(inout) :: t
482 real(wp),
intent(in),
optional :: e_e_in, pres_mag
485 real(wp),
dimension(1:num_species),
intent(in) :: rhoyks
486 real(wp),
dimension(1:num_species) :: y_rs
488 real(wp) :: e_per_kg, pdyn_per_kg
490# 90 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
495 e_int = energy - dyn_p - pres_mag
496 else if (bubbles_euler .neqv. .true.)
then
498 e_int = energy - dyn_p
501 e_int = (energy - dyn_p - qv)/(1._wp - alf) + qv
504 if (hypoelasticity .and.
present(e_e_in))
then
506 e_int = energy - dyn_p - e_e_in
510# 120 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
519 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_vf
520 integer,
intent(in) :: i,
j,
k
521 real(wp),
intent(out),
target :: rho
522 real(wp),
intent(out),
target :: gamma
523 real(wp),
intent(out),
target :: pi_inf
524 real(wp),
intent(out),
target :: qv
528 rho = q_vf(1)%sf(i,
j,
k)
529 gamma = q_vf(eqn_idx%gamma)%sf(i,
j,
k)
530 pi_inf = q_vf(eqn_idx%pi_inf)%sf(i,
j,
k)
534 if (
allocated(
rho_sf))
then
545 subroutine s_convert_species_to_mixture_variables(q_vf, k, l, r, rho, gamma, pi_inf, qv, Re_K, G_K, G)
547 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_vf
548 integer,
intent(in) ::
k,
l, r
549 real(wp),
intent(out),
target :: rho
550 real(wp),
intent(out),
target :: gamma
551 real(wp),
intent(out),
target :: pi_inf
552 real(wp),
intent(out),
target :: qv
553 real(wp),
optional,
dimension(2),
intent(out) :: re_k
554 real(wp),
optional,
intent(out) :: g_k
555 real(wp),
dimension(num_fluids) :: alpha_rho_k, alpha_k
556 real(wp),
optional,
dimension(num_fluids),
intent(in) :: g
567 if (
allocated(
rho_sf))
then
579# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
581# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
583# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
585# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
587# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
589# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
591# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
593# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
595# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
597# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
599# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
601# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
603# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
605# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
607# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
609# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
611# 187 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
614 real(wp),
intent(out) :: rho_k, gamma_k, pi_inf_k, qv_k
615# 194 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
616 real(wp),
dimension(num_fluids),
intent(inout) :: alpha_rho_k, alpha_k
617 real(wp),
optional,
dimension(num_fluids),
intent(in) :: g
618# 197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
619 real(wp),
optional,
dimension(2),
intent(out) :: re_k
620 real(wp),
optional,
intent(out) :: g_k
621 real(wp) :: alpha_k_sum
629 if (
present(g_k)) g_k = 0._wp
635 alpha_rho_k(i) = max(0._wp, alpha_rho_k(i))
636 alpha_k(i) = min(max(0._wp, alpha_k(i)), 1._wp)
637 alpha_k_sum = alpha_k_sum + alpha_k(i)
639 alpha_k = alpha_k/max(alpha_k_sum,
sgm_eps)
643 if (
present(g_k))
then
647 g_k = g_k + alpha_k(i)*g(i)
649 g_k = max(0._wp, g_k)
652 if (viscous .and.
present(re_k))
then
656 if (re_size(i) > 0) re_k(i) = 0._wp
659 re_k(i) = alpha_k(re_idx(i,
j))/
res_vc(i,
j) + re_k(i)
662 re_k(i) = 1._wp/max(re_k(i),
sgm_eps)
670 & lagrange_beta_index)
673 logical,
optional,
intent(in) :: store_mixture_fields
674 logical,
optional,
intent(in) :: enforce_density_floor, preserve_qbmm_number
675 integer,
optional,
intent(in) :: lagrange_beta_index
676 logical :: allocate_mixture_fields
678 allocate_mixture_fields = .false.
679 if (
present(store_mixture_fields)) allocate_mixture_fields = store_mixture_fields
688# 265 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
689#if defined(MFC_OpenACC)
690# 265 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
692# 265 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
693#elif defined(MFC_OpenMP)
694# 265 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
696# 265 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
699# 266 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
700#if defined(MFC_OpenACC)
701# 266 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
703# 266 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
704#elif defined(MFC_OpenMP)
705# 266 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
707# 266 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
711# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
713# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
714 use iso_fortran_env,
only: output_unit
715# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
717# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
718 print *,
'm_variables_conversion.fpp:268: ',
'@:ALLOCATE(Gs_vc (1:num_fluids))'
719# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
721# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
722 call flush (output_unit)
723# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
725# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
727# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
728 allocate (
gs_vc(1:num_fluids))
729# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
731# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
733# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
734#if defined(MFC_OpenACC)
735# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
737# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
738#elif defined(MFC_OpenMP)
739# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
741# 268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
744# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
746# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
747 use iso_fortran_env,
only: output_unit
748# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
750# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
751 print *,
'm_variables_conversion.fpp:269: ',
'@:ALLOCATE(fluid_k_therm(1:num_fluids))'
752# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
754# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
755 call flush (output_unit)
756# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
758# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
760# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
761 allocate (fluid_k_therm(1:num_fluids))
762# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
764# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
766# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
767#if defined(MFC_OpenACC)
768# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
770# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
771#elif defined(MFC_OpenMP)
772# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
774# 269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
778 gs_vc(i) = fluid_pp(i)%G
779 fluid_k_therm(i) = fluid_pp(i)%k_therm
782# 275 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
783#if defined(MFC_OpenACC)
784# 275 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
786# 275 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
787#elif defined(MFC_OpenMP)
788# 275 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
790# 275 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
794# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
796# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
797 use iso_fortran_env,
only: output_unit
798# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
800# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
801 print *,
'm_variables_conversion.fpp:277: ',
'@:ALLOCATE(Res_vc(1:2, 1:max(1, Re_size_max)))'
802# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
804# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
805 call flush (output_unit)
806# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
808# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
810# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
811 allocate (
res_vc(1:2, 1:max(1, re_size_max)))
812# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
814# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
816# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
817#if defined(MFC_OpenACC)
818# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
820# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
821#elif defined(MFC_OpenMP)
822# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
824# 277 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
827 if (
allocated(re_idx))
then
830 res_vc(i,
j) = fluid_pp(re_idx(i,
j))%Re(i)
834# 285 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
835#if defined(MFC_OpenACC)
836# 285 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
838# 285 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
839#elif defined(MFC_OpenMP)
840# 285 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
842# 285 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
846# 287 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
847#if defined(MFC_OpenACC)
848# 287 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
850# 287 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
851#elif defined(MFC_OpenMP)
852# 287 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
854# 287 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
857 if (bubbles_euler)
then
859# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
861# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
862 use iso_fortran_env,
only: output_unit
863# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
865# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
866 print *,
'm_variables_conversion.fpp:290: ',
'@:ALLOCATE(bubrs_vc(1:nb))'
867# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
869# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
870 call flush (output_unit)
871# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
873# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
875# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
877# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
879# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
881# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
882#if defined(MFC_OpenACC)
883# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
885# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
886#elif defined(MFC_OpenMP)
887# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
889# 290 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
895# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
896#if defined(MFC_OpenACC)
897# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
899# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
900#elif defined(MFC_OpenMP)
901# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
903# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
907 if (allocate_mixture_fields)
then
911 allocate (
rho_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
912 allocate (
gamma_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
913 allocate (
pi_inf_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
915 allocate (
rho_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
916 allocate (
gamma_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
917 allocate (
pi_inf_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
920 allocate (
rho_sf(-buff_size:m + buff_size,0:0,0:0))
921 allocate (
gamma_sf(-buff_size:m + buff_size,0:0,0:0))
922 allocate (
pi_inf_sf(-buff_size:m + buff_size,0:0,0:0))
931 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
932 real(stp),
dimension(idwint(1)%beg:,idwint(2)%beg:,idwint(3)%beg:,1:,1:),
intent(inout) :: mv
933 integer :: i,
j,
k,
l
934 real(wp) :: mu, sig, nbub_sc
936 do l = idwint(3)%beg, idwint(3)%end
937 do k = idwint(2)%beg, idwint(2)%end
938 do j = idwint(1)%beg, idwint(1)%end
939 nbub_sc = qk_cons_vf(eqn_idx%bub%beg)%sf(
j,
k,
l)
942# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
943#if defined(MFC_OpenACC)
944# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
946# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
947#elif defined(MFC_OpenMP)
948# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
950# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
953 mu = qk_cons_vf(eqn_idx%bub%beg + 1 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc
954 sig = (qk_cons_vf(eqn_idx%bub%beg + 3 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc - mu**2)**0.5_wp
956 mv(
j,
k,
l, 1, i) = (mass_v0(i))*(mu - sig)**(3._wp)/(r0(i)**(3._wp))
957 mv(
j,
k,
l, 2, i) = (mass_v0(i))*(mu - sig)**(3._wp)/(r0(i)**(3._wp))
958 mv(
j,
k,
l, 3, i) = (mass_v0(i))*(mu + sig)**(3._wp)/(r0(i)**(3._wp))
959 mv(
j,
k,
l, 4, i) = (mass_v0(i))*(mu + sig)**(3._wp)/(r0(i)**(3._wp))
970 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
971 real(stp),
dimension(idwint(1)%beg:,idwint(2)%beg:,idwint(3)%beg:,1:,1:),
intent(in) :: mv
972 real(stp),
dimension(idwint(1)%beg:,idwint(2)%beg:,idwint(3)%beg:,1:,1:),
intent(inout) :: pb
973 integer :: i,
j,
k,
l
974 real(wp) :: mu, sig, nbub_sc
976 do l = idwint(3)%beg, idwint(3)%end
977 do k = idwint(2)%beg, idwint(2)%end
978 do j = idwint(1)%beg, idwint(1)%end
979 nbub_sc = qk_cons_vf(eqn_idx%bub%beg)%sf(
j,
k,
l)
982# 361 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
983#if defined(MFC_OpenACC)
984# 361 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
986# 361 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
987#elif defined(MFC_OpenMP)
988# 361 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
990# 361 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
993 mu = qk_cons_vf(eqn_idx%bub%beg + 1 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc
994 sig = (qk_cons_vf(eqn_idx%bub%beg + 3 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc - mu**2)**0.5_wp
997 pb(
j,
k,
l, 1, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 1, &
998 & i))/(mu - sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
999 pb(
j,
k,
l, 2, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 2, &
1000 & i))/(mu - sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1001 pb(
j,
k,
l, 3, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 3, &
1002 & i))/(mu + sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1003 pb(
j,
k,
l, 4, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 4, &
1004 & i))/(mu + sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1018 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1019 type(scalar_field),
intent(inout) :: q_t_sf
1020 type(scalar_field),
dimension(sys_size),
intent(inout) :: qk_prim_vf
1021 type(int_bounds_info),
dimension(1:3),
intent(in) :: ibounds
1023# 398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1024 real(wp),
dimension(num_fluids) :: alpha_k, alpha_rho_k
1025 real(wp),
dimension(nb) :: nrtmp
1026 real(wp) :: rhoyks(1:num_species)
1027# 402 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1028 real(wp),
dimension(2) :: re_k
1029 real(wp) :: rho_k, gamma_k, pi_inf_k, qv_k, dyn_pres_k
1030 real(wp) :: vftmp, nbub_sc
1032 real(wp) :: solid_partial_density
1034 integer :: i,
j,
k,
l
1036 real(wp) :: pres_mag
1044 real(wp) :: f, dga_dw, dp_dw, df_dw
1048# 421 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1050# 421 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1051#if defined(MFC_OpenACC)
1052# 421 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1054# 421 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1056# 421 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1057#elif defined(MFC_OpenMP)
1058# 421 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1060# 421 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1062# 421 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1064# 421 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1066# 421 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1068# 421 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1070# 421 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1072# 424 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1073 do l = ibounds(3)%beg, ibounds(3)%end
1074 do k = ibounds(2)%beg, ibounds(2)%end
1075 do j = ibounds(1)%beg, ibounds(1)%end
1092 call s_convert_to_mixture_variables(qk_cons_vf,
j,
k,
l, rho_k, gamma_k, pi_inf_k, qv_k, re_k, g_k, &
1104 b(3) = qk_cons_vf(
eqn_idx%B%beg + 1)%sf(
j,
k,
l)
1107 b(2) = qk_cons_vf(
eqn_idx%B%beg + 1)%sf(
j,
k,
l)
1108 b(3) = qk_cons_vf(
eqn_idx%B%beg + 2)%sf(
j,
k,
l)
1110 b2 = b(1)**2 + b(2)**2 + b(3)**2
1114# 464 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1115#if defined(MFC_OpenACC)
1116# 464 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1118# 464 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1119#elif defined(MFC_OpenMP)
1120# 464 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1122# 464 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1125 m2 = m2 + qk_cons_vf(i)%sf(
j,
k,
l)**2
1130# 470 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1131#if defined(MFC_OpenACC)
1132# 470 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1134# 470 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1135#elif defined(MFC_OpenMP)
1136# 470 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1138# 470 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1141 s = s + qk_cons_vf(
eqn_idx%mom%beg + i - 1)%sf(
j,
k,
l)*b(i)
1148# 478 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1149#if defined(MFC_OpenACC)
1150# 478 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1152# 478 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1153#elif defined(MFC_OpenMP)
1154# 478 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1156# 478 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1159 d = d + qk_cons_vf(i)%sf(
j,
k,
l)
1165# 485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1166#if defined(MFC_OpenACC)
1167# 485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1169# 485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1170#elif defined(MFC_OpenMP)
1171# 485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1173# 485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1175 do iter = 1, relativity_cons_to_prim_max_iter
1177 ga = (w + b2)*w/sqrt((w + b2)**2*w**2 - (m2*w**2 + s**2*(2*w + b2)))
1179 pres = (w - d*ga)/((gamma_k + 1)*ga**2)
1180 f = w - pres + (1 - 1/(2*ga**2))*b2 - s**2/(2*w**2) - e - d
1186 dga_dw = -ga**3*(2*s**2*(3*w**2 + 3*w*b2 + b2**2) + m2*w**2)/(2*w**3*(w + b2)**3)
1188 dp_dw = (ga*(1 + d*dga_dw) - 2*w*dga_dw)/((gamma_k + 1)*ga**3)
1189 df_dw = 1 - dp_dw + (b2/ga**3)*dga_dw + s**2/w**3
1193 if (abs(dw) < 1.e-12_wp*w)
exit
1197 ga = (w + b2)*w/sqrt((w + b2)**2*w**2 - (m2*w**2 + s**2*(2*w + b2)))
1198 qk_prim_vf(
eqn_idx%E)%sf(
j,
k,
l) = (w - d*ga)/((gamma_k + 1)*ga**2)
1202# 512 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1203#if defined(MFC_OpenACC)
1204# 512 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1206# 512 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1207#elif defined(MFC_OpenMP)
1208# 512 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1210# 512 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1213 qk_prim_vf(
eqn_idx%mom%beg + i - 1)%sf(
j,
k,
l) = (qk_cons_vf(
eqn_idx%mom%beg + i - 1)%sf(
j,
k, &
1214 &
l) + (s/w)*b(i))/(w + b2)
1216 qk_prim_vf(1)%sf(
j,
k,
l) = d/ga
1219# 519 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1220#if defined(MFC_OpenACC)
1221# 519 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1223# 519 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1224#elif defined(MFC_OpenMP)
1225# 519 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1227# 519 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1230 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1240# 530 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1241#if defined(MFC_OpenACC)
1242# 530 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1244# 530 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1245#elif defined(MFC_OpenMP)
1246# 530 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1248# 530 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1251 rho_k = rho_k + max(0._wp, qk_cons_vf(i)%sf(
j,
k,
l))
1255# 535 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1256#if defined(MFC_OpenACC)
1257# 535 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1259# 535 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1260#elif defined(MFC_OpenMP)
1261# 535 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1263# 535 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1266 qk_prim_vf(i)%sf(
j,
k,
l) = rho_k
1270# 540 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1271#if defined(MFC_OpenACC)
1272# 540 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1274# 540 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1275#elif defined(MFC_OpenMP)
1276# 540 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1278# 540 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1281 qk_prim_vf(i)%sf(
j,
k,
l) = max(0._wp, qk_cons_vf(i)%sf(
j,
k,
l)/rho_k)
1286# 546 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1287#if defined(MFC_OpenACC)
1288# 546 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1290# 546 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1291#elif defined(MFC_OpenMP)
1292# 546 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1294# 546 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1297 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1305# 555 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1306#if defined(MFC_OpenACC)
1307# 555 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1309# 555 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1310#elif defined(MFC_OpenMP)
1311# 555 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1313# 555 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1316 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/rho_k
1317 dyn_pres_k = dyn_pres_k + 5.e-1_wp*qk_cons_vf(i)%sf(
j,
k,
l)*qk_prim_vf(i)%sf(
j,
k,
l)
1322# 562 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1323#if defined(MFC_OpenACC)
1324# 562 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1326# 562 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1327#elif defined(MFC_OpenMP)
1328# 562 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1330# 562 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1332 do i = 1, num_species
1333 rhoyks(i) = qk_cons_vf(
eqn_idx%species%beg + i - 1)%sf(
j,
k,
l)
1336 t = q_t_sf%sf(
j,
k,
l)
1341 pres_mag = 0.5_wp*(
bx0**2 + qk_cons_vf(
eqn_idx%B%beg)%sf(
j,
k, &
1342 &
l)**2 + qk_cons_vf(
eqn_idx%B%beg + 1)%sf(
j,
k,
l)**2)
1344 pres_mag = 0.5_wp*(qk_cons_vf(
eqn_idx%B%beg)%sf(
j,
k,
l)**2 + qk_cons_vf(
eqn_idx%B%beg + 1)%sf(
j,
k, &
1345 &
l)**2 + qk_cons_vf(
eqn_idx%B%beg + 2)%sf(
j,
k,
l)**2)
1352 & pi_inf_k, gamma_k, rho_k, qv_k, rhoyks, pres, t, pres_mag=pres_mag)
1357 q_t_sf%sf(
j,
k,
l) = t
1359 q_t_sf%sf(
j,
k,
l) = f_mixture_temperature(alpha_rho_k, pres, gamma_k, pi_inf_k)
1365# 595 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1366#if defined(MFC_OpenACC)
1367# 595 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1369# 595 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1370#elif defined(MFC_OpenMP)
1371# 595 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1373# 595 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1383 nbub_sc = qk_cons_vf(
eqn_idx%bub%beg)%sf(
j,
k,
l)
1387# 607 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1388#if defined(MFC_OpenACC)
1389# 607 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1391# 607 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1392#elif defined(MFC_OpenMP)
1393# 607 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1395# 607 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1398 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/nbub_sc
1409 call s_comp_n_from_cons(vftmp, nrtmp, nbub_sc, weight)
1413# 623 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1414#if defined(MFC_OpenACC)
1415# 623 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1417# 623 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1418#elif defined(MFC_OpenMP)
1419# 623 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1421# 623 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1424 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/nbub_sc
1431# 631 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1432#if defined(MFC_OpenACC)
1433# 631 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1435# 631 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1436#elif defined(MFC_OpenMP)
1437# 631 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1439# 631 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1442 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1448# 638 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1449#if defined(MFC_OpenACC)
1450# 638 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1452# 638 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1453#elif defined(MFC_OpenMP)
1454# 638 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1456# 638 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1459 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/rho_k
1465 solid_partial_density = 0._wp
1467# 647 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1468#if defined(MFC_OpenACC)
1469# 647 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1471# 647 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1472#elif defined(MFC_OpenMP)
1473# 647 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1475# 647 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1478 if (
gs_vc(i) > verysmall)
then
1479 solid_partial_density = solid_partial_density + qk_cons_vf(
eqn_idx%cont%beg + i - 1)%sf(
j,
k,
l)
1483 &
l)/max(solid_partial_density, verysmall), 0._wp), 1._wp)
1489# 659 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1490#if defined(MFC_OpenACC)
1491# 659 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1493# 659 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1494#elif defined(MFC_OpenMP)
1495# 659 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1497# 659 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1508# 668 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1509#if defined(MFC_OpenACC)
1510# 668 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1512# 668 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1513#elif defined(MFC_OpenMP)
1514# 668 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1516# 668 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1519 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1535# 685 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1536#if defined(MFC_OpenACC)
1537# 685 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1539# 685 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1540#elif defined(MFC_OpenMP)
1541# 685 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1543# 685 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1545# 685 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1553 type(scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
1554 type(scalar_field),
dimension(sys_size),
intent(inout) ::
q_cons_vf
1561 real(wp) :: pres_i, alpha_i, alpha_rho_i, e_i
1563 real(wp) :: dyn_pres
1564 real(wp) :: nbub, r3tmp
1565 real(wp),
dimension(nb) :: rtmp
1567 real(wp) :: solid_partial_density
1568 real(wp),
dimension(2) :: re_k
1569 integer :: i,
j,
k,
l
1570 real(wp),
dimension(num_species) :: ys
1571 real(wp) :: e_mix, mix_mol_weight, t
1572 real(wp) :: pres_mag
1589 call s_convert_to_mixture_variables(q_prim_vf,
j,
k,
l, rho, gamma, pi_inf, qv, re_k, g, fluid_pp(:)%G)
1591 if (.not. igr .or. num_fluids > 1)
then
1593 do i = eqn_idx%adv%beg, eqn_idx%adv%end
1598 if (relativity)
then
1601 b(2) = q_prim_vf(eqn_idx%B%beg)%sf(
j,
k,
l)
1602 b(3) = q_prim_vf(eqn_idx%B%beg + 1)%sf(
j,
k,
l)
1604 b(1) = q_prim_vf(eqn_idx%B%beg)%sf(
j,
k,
l)
1605 b(2) = q_prim_vf(eqn_idx%B%beg + 1)%sf(
j,
k,
l)
1606 b(3) = q_prim_vf(eqn_idx%B%beg + 2)%sf(
j,
k,
l)
1610 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1611 v2 = v2 + q_prim_vf(i)%sf(
j,
k,
l)**2
1613 if (v2 >= 1._wp)
call s_mpi_abort(
'Error: v squared > 1 in s_convert_primitive_to_conservative_variables')
1615 ga = 1._wp/sqrt(1._wp - v2)
1617 h = 1._wp + (gamma + 1)*q_prim_vf(eqn_idx%E)%sf(
j,
k,
l)/rho
1620 do i = eqn_idx%B%beg, eqn_idx%B%end
1621 b2 = b2 + q_prim_vf(i)%sf(
j,
k,
l)**2
1623 if (n == 0) b2 = b2 + bx0**2
1627 vdotb = vdotb + q_prim_vf(eqn_idx%mom%beg + i - 1)%sf(
j,
k,
l)*b(i)
1630 do i = 1, eqn_idx%cont%end
1634 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1635 q_cons_vf(i)%sf(
j,
k,
l) = (rho*h*ga**2 + b2)*q_prim_vf(i)%sf(
j,
k, &
1636 &
l) - vdotb*b(i - eqn_idx%mom%beg + 1)
1639 q_cons_vf(eqn_idx%E)%sf(
j,
k,
l) = rho*h*ga**2 - q_prim_vf(eqn_idx%E)%sf(
j,
k, &
1640 &
l) + 0.5_wp*(b2 + v2*b2 - vdotb**2)
1642 do i = 1, eqn_idx%cont%end
1646 do i = eqn_idx%B%beg, eqn_idx%B%end
1654 do i = 1, eqn_idx%cont%end
1662 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1664 dyn_pres = dyn_pres +
q_cons_vf(i)%sf(
j,
k,
l)*q_prim_vf(i)%sf(
j,
k,
l)/2._wp
1669 do i = eqn_idx%species%beg, eqn_idx%species%end
1670 ys(i - eqn_idx%species%beg + 1) = q_prim_vf(i)%sf(
j,
k,
l)
1674 call get_mixture_molecular_weight(ys, mix_mol_weight)
1675 t = q_prim_vf(eqn_idx%E)%sf(
j,
k,
l)*mix_mol_weight/(gas_constant*rho)
1676 call get_mixture_energy_mass(t, ys, e_mix)
1678 q_cons_vf(eqn_idx%E)%sf(
j,
k,
l) = dyn_pres + rho*e_mix
1683 pres_mag = 0.5_wp*(bx0**2 + q_prim_vf(eqn_idx%B%beg)%sf(
j,
k, &
1684 &
l)**2 + q_prim_vf(eqn_idx%B%beg + 1)%sf(
j,
k,
l)**2)
1686 pres_mag = 0.5_wp*(q_prim_vf(eqn_idx%B%beg)%sf(
j,
k,
l)**2 + q_prim_vf(eqn_idx%B%beg + 1)%sf(
j, &
1687 &
k,
l)**2 + q_prim_vf(eqn_idx%B%beg + 2)%sf(
j,
k,
l)**2)
1690 q_cons_vf(eqn_idx%E)%sf(
j,
k,
l) = gamma*q_prim_vf(eqn_idx%E)%sf(
j,
k, &
1691 &
l) + dyn_pres + pres_mag + pi_inf + qv
1692 else if (bubbles_euler .neqv. .true.)
then
1694 q_cons_vf(eqn_idx%E)%sf(
j,
k,
l) = gamma*q_prim_vf(eqn_idx%E)%sf(
j,
k,
l) + dyn_pres + pi_inf + qv
1697 q_cons_vf(eqn_idx%E)%sf(
j,
k,
l) = dyn_pres + (1._wp - q_prim_vf(eqn_idx%alf)%sf(
j,
k, &
1698 &
l))*(gamma*q_prim_vf(eqn_idx%E)%sf(
j,
k,
l) + pi_inf) + qv
1703 if (model_eqns == model_eqns_6eq)
then
1704 do i = 1, num_fluids
1705 pres_i = q_prim_vf(eqn_idx%E)%sf(
j,
k,
l)
1706 alpha_i =
q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(
j,
k,
l)
1707 alpha_rho_i =
q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(
j,
k,
l)
1708 call s_phase_internal_energy(pres_i, alpha_i, alpha_rho_i, i, e_i)
1709 q_cons_vf(i + eqn_idx%int_en%beg - 1)%sf(
j,
k,
l) = e_i
1713 if (bubbles_euler)
then
1716 rtmp(i) = q_prim_vf(qbmm_idx%rs(i))%sf(
j,
k,
l)
1719 if (.not. qbmm)
then
1722 nbub = q_prim_vf(eqn_idx%n)%sf(
j,
k,
l)
1724 call s_comp_n_from_prim(real(q_prim_vf(eqn_idx%alf)%sf(
j,
k,
l), kind=wp), rtmp, nbub, weight)
1730 r3tmp = r3tmp + weight(i)*0.5_wp*(rtmp(i) + sigr)**3._wp
1731 r3tmp = r3tmp + weight(i)*0.5_wp*(rtmp(i) - sigr)**3._wp
1734 nbub = 3._wp*q_prim_vf(eqn_idx%alf)%sf(
j,
k,
l)/(4._wp*pi*r3tmp)
1737 do i = eqn_idx%bub%beg, eqn_idx%bub%end
1743 do i = eqn_idx%B%beg, eqn_idx%B%end
1748 if (hypoelasticity)
then
1750 do i = eqn_idx%stress%beg, eqn_idx%stress%end
1755 if (hypoelasticity)
then
1757 do i = eqn_idx%stress%beg, eqn_idx%stress%end
1759 if (g > verysmall)
then
1761 &
l)**2._wp)/max(4._wp*g, verysmall)
1763 if (any(i == shear_indices))
then
1765 &
l)**2._wp)/max(4._wp*g, verysmall)
1771 if (surface_tension)
then
1775 if (cont_damage)
then
1777 solid_partial_density = 0._wp
1778 do i = 1, num_fluids
1779 if (fluid_pp(i)%G > verysmall)
then
1780 solid_partial_density = solid_partial_density + q_prim_vf(eqn_idx%cont%beg + i - 1)%sf(
j,
k,
l)
1783 q_cons_vf(eqn_idx%damage)%sf(
j,
k,
l) = solid_partial_density*q_prim_vf(eqn_idx%damage)%sf(
j,
k,
l)
1786 if (hyper_cleaning)
q_cons_vf(eqn_idx%psi)%sf(
j,
k,
l) = q_prim_vf(eqn_idx%psi)%sf(
j,
k,
l)
1795 & dir_flg_in, hll_u_interface_in)
1797 integer,
intent(in) :: s2b, s3b
1800 integer,
dimension(3),
intent(in) :: dir_idx_in
1801 real(wp),
dimension(3),
intent(in) :: dir_flg_in
1802 logical,
intent(in) :: hll_u_interface_in
1803 real(wp),
dimension(0:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:),
intent(in) :: qk_prim_vf
1804 real(wp),
dimension(0:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:),
intent(inout) :: fk_vf
1805 real(wp),
dimension(0:,idwbuff(2)%beg:,idwbuff(3)%beg:,eqn_idx%adv%beg:),
intent(inout) :: fk_src_vf
1806 type(int_bounds_info),
intent(in) :: is1, is2, is3
1811# 956 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1812 real(wp),
dimension(num_fluids) :: alpha_rho_k
1813 real(wp),
dimension(num_fluids) :: alpha_k
1814 real(wp),
dimension(num_vels) :: vel_k
1815 real(wp),
dimension(num_species) :: y_k
1816# 961 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1818 real(wp) :: vel_k_sum
1822 real(wp) :: pi_inf_k
1824 real(wp),
dimension(2) :: re_k
1826 real(wp) :: blkmod1_k, blkmod2_k, k_k
1827 real(wp) :: t_k, mix_mol_weight, r_gas
1828 integer :: i,
j,
k,
l
1835# 978 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1836#if defined(MFC_OpenACC)
1837# 978 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1839# 978 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1840#elif defined(MFC_OpenMP)
1841# 978 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1843# 978 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1849# 982 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1851# 982 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1852#if defined(MFC_OpenACC)
1853# 982 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1855# 982 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1857# 982 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1859# 982 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1860#elif defined(MFC_OpenMP)
1861# 982 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1863# 982 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1865# 982 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1867# 982 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1869# 982 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1871# 982 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1873# 982 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1875# 985 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1880# 988 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1881#if defined(MFC_OpenACC)
1882# 988 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1884# 988 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1885#elif defined(MFC_OpenMP)
1886# 988 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1888# 988 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1890 do i = 1, eqn_idx%cont%end
1891 alpha_rho_k(i) = qk_prim_vf(
j,
k,
l, i)
1895# 993 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1896#if defined(MFC_OpenACC)
1897# 993 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1899# 993 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1900#elif defined(MFC_OpenMP)
1901# 993 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1903# 993 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1905 do i = eqn_idx%adv%beg, eqn_idx%adv%end
1906 alpha_k(i - eqn_idx%E) = qk_prim_vf(
j,
k,
l, i)
1910# 998 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1911#if defined(MFC_OpenACC)
1912# 998 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1914# 998 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1915#elif defined(MFC_OpenMP)
1916# 998 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1918# 998 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1921 vel_k(i) = qk_prim_vf(
j,
k,
l, eqn_idx%cont%end + i)
1926# 1004 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1927#if defined(MFC_OpenACC)
1928# 1004 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1930# 1004 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1931#elif defined(MFC_OpenMP)
1932# 1004 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1934# 1004 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1937 vel_k_sum = vel_k_sum + vel_k(i)**2._wp
1940 pres_k = qk_prim_vf(
j,
k,
l, eqn_idx%E)
1941 if (hypoelasticity)
then
1953# 1021 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1954#if defined(MFC_OpenACC)
1955# 1021 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1957# 1021 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1958#elif defined(MFC_OpenMP)
1959# 1021 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1961# 1021 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1963 do i = eqn_idx%species%beg, eqn_idx%species%end
1964 y_k(i - eqn_idx%species%beg + 1) = qk_prim_vf(
j,
k,
l, i)
1967 call get_mixture_molecular_weight(y_k, mix_mol_weight)
1968 r_gas = gas_constant/mix_mol_weight
1969 t_k = pres_k/rho_k/r_gas
1970 call get_mixture_energy_mass(t_k, y_k, e_k)
1971 e_k = rho_k*e_k + 5.e-1_wp*rho_k*vel_k_sum
1974 e_k = gamma_k*pres_k + pi_inf_k + 5.e-1_wp*rho_k*vel_k_sum + qv_k
1979# 1037 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1980#if defined(MFC_OpenACC)
1981# 1037 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1983# 1037 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1984#elif defined(MFC_OpenMP)
1985# 1037 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1987# 1037 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1989 do i = 1, eqn_idx%cont%end
1990 fk_vf(
j,
k,
l, i) = alpha_rho_k(i)*vel_k(dir_idx_in(1))
1994# 1042 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1995#if defined(MFC_OpenACC)
1996# 1042 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1998# 1042 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1999#elif defined(MFC_OpenMP)
2000# 1042 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2002# 1042 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2006 & eqn_idx%cont%end + dir_idx_in(i)) = rho_k*vel_k(dir_idx_in(1))*vel_k(dir_idx_in(i)) &
2007 & + pres_k*dir_flg_in(dir_idx_in(i))
2011 fk_vf(
j,
k,
l, eqn_idx%E) = vel_k(dir_idx_in(1))*(e_k + pres_k)
2016# 1054 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2017#if defined(MFC_OpenACC)
2018# 1054 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2020# 1054 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2021#elif defined(MFC_OpenMP)
2022# 1054 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2024# 1054 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2026 do i = 1, num_species
2027 fk_vf(
j,
k,
l, i - 1 + eqn_idx%species%beg) = vel_k(dir_idx_in(1))*(rho_k*y_k(i))
2038 if (riemann_solver == riemann_solver_hlld)
then
2039 if (hypoelasticity)
then
2044# 1074 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2045 if (alt_soundspeed)
then
2046 blkmod1_k = f_bulk_modulus(pres_k, gammas(1), pi_infs(1)) + (4._wp/3._wp)*
gs_vc(1)
2047 blkmod2_k = f_bulk_modulus(pres_k, gammas(2), pi_infs(2)) + (4._wp/3._wp)*
gs_vc(2)
2048 k_k = alpha_k(1)*alpha_k(2)*(blkmod2_k - blkmod1_k)/(alpha_k(1)*blkmod2_k + alpha_k(2) &
2049 & *blkmod1_k + verysmall)
2051# 1081 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2053# 1081 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2054#if defined(MFC_OpenACC)
2055# 1081 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2057# 1081 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2058#elif defined(MFC_OpenMP)
2059# 1081 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2061# 1081 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2063 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2064 fk_vf(
j,
k,
l, i) = 0._wp
2065 fk_src_vf(
j,
k,
l, i) = 0._wp
2067 fk_vf(
j,
k,
l, eqn_idx%adv%beg) = -k_k*vel_k(dir_idx_in(1))
2068 fk_vf(
j,
k,
l, eqn_idx%adv%end) = k_k*vel_k(dir_idx_in(1))
2071# 1089 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2072#if defined(MFC_OpenACC)
2073# 1089 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2075# 1089 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2076#elif defined(MFC_OpenMP)
2077# 1089 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2079# 1089 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2081 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2082 fk_vf(
j,
k,
l, i) = 0._wp
2083 fk_src_vf(
j,
k,
l, i) = alpha_k(i - eqn_idx%E)
2086 else if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface_in)
then
2088# 1096 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2089#if defined(MFC_OpenACC)
2090# 1096 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2092# 1096 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2093#elif defined(MFC_OpenMP)
2094# 1096 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2096# 1096 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2098 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2099 fk_vf(
j,
k,
l, i) = 0._wp
2100 fk_src_vf(
j,
k,
l, i) = alpha_k(i - eqn_idx%E)
2105# 1103 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2106#if defined(MFC_OpenACC)
2107# 1103 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2109# 1103 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2110#elif defined(MFC_OpenMP)
2111# 1103 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2113# 1103 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2115 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2116 fk_vf(
j,
k,
l, i) = vel_k(dir_idx_in(1))*alpha_k(i - eqn_idx%E)
2120# 1108 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2121#if defined(MFC_OpenACC)
2122# 1108 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2124# 1108 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2125#elif defined(MFC_OpenMP)
2126# 1108 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2128# 1108 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2130 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2131 fk_src_vf(
j,
k,
l, i) = vel_k(dir_idx_in(1))
2138# 1116 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2139#if defined(MFC_OpenACC)
2140# 1116 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2142# 1116 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2143#elif defined(MFC_OpenMP)
2144# 1116 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2146# 1116 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2148# 1116 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2157# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2159# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2161# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2163# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2165# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2167# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2169# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2171# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2173# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2175# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2177# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2179# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2181# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2183# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2185# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2187# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2189# 1123 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2191 type(scalar_field),
dimension(sys_size),
intent(in) :: q_vf
2192 integer,
intent(in) ::
k,
l, r
2193# 1129 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2194 real(wp),
dimension(num_fluids),
intent(out) :: alpha_rho_k, alpha_k
2195# 1131 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2197 real(wp) :: alpha_k_sum
2199 if (num_fluids == 1)
then
2200 alpha_rho_k(1) = q_vf(eqn_idx%cont%beg)%sf(
k,
l, r)
2201 if (igr .or. bubbles_euler)
then
2204 alpha_k(1) = q_vf(eqn_idx%adv%beg)%sf(
k,
l, r)
2208 do i = 1, num_fluids - 1
2209 alpha_rho_k(i) = q_vf(i)%sf(
k,
l, r)
2210 alpha_k(i) = q_vf(eqn_idx%adv%beg + i - 1)%sf(
k,
l, r)
2212 alpha_rho_k(num_fluids) = q_vf(num_fluids)%sf(
k,
l, r)
2213 alpha_k(num_fluids) = 1._wp - sum(alpha_k(1:num_fluids - 1))
2215 do i = 1, num_fluids
2216 alpha_rho_k(i) = q_vf(i)%sf(
k,
l, r)
2217 alpha_k(i) = q_vf(eqn_idx%adv%beg + i - 1)%sf(
k,
l, r)
2224 do i = 1, num_fluids
2225 alpha_rho_k(i) = max(0._wp, alpha_rho_k(i))
2226 alpha_k(i) = min(max(0._wp, alpha_k(i)), 1._wp)
2227 alpha_k_sum = alpha_k_sum + alpha_k(i)
2229 alpha_k = alpha_k/max(alpha_k_sum, 1.e-16_wp)
2232 if (num_fluids == 1 .and. bubbles_euler) alpha_k(1) = q_vf(eqn_idx%adv%beg)%sf(
k,
l, r)
2242# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2244# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2245 use iso_fortran_env,
only: output_unit
2246# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2248# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2249 print *,
'm_variables_conversion.fpp:1176: ',
'@:DEALLOCATE(Gs_vc, fluid_k_therm)'
2250# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2252# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2253 call flush (output_unit)
2254# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2256# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2258# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2260# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2261#if defined(MFC_OpenACC)
2262# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2264# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2265#elif defined(MFC_OpenMP)
2266# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2268# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2270# 1176 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2271 deallocate (
gs_vc, fluid_k_therm)
2274# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2276# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2277 use iso_fortran_env,
only: output_unit
2278# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2280# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2281 print *,
'm_variables_conversion.fpp:1178: ',
'@:DEALLOCATE(bubrs_vc)'
2282# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2284# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2285 call flush (output_unit)
2286# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2288# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2290# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2292# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2293#if defined(MFC_OpenACC)
2294# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2296# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2297#elif defined(MFC_OpenMP)
2298# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2300# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2302# 1178 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2305 if (
allocated(
res_vc))
then
2307# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2309# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2310 use iso_fortran_env,
only: output_unit
2311# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2313# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2314 print *,
'm_variables_conversion.fpp:1181: ',
'@:DEALLOCATE(Res_vc)'
2315# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2317# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2318 call flush (output_unit)
2319# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2321# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2323# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2325# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2326#if defined(MFC_OpenACC)
2327# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2329# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2330#elif defined(MFC_OpenMP)
2331# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2333# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2335# 1181 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2346# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2348# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2350# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2352# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2354# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2356# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2358# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2360# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2362# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2364# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2366# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2368# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2370# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2372# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2374# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2376# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2378# 1190 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2381# 1195 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2382 real(wp),
dimension(num_fluids),
intent(in) :: alpha_rho_k, alpha_k
2383# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2384 real(wp),
intent(in) :: pres, vel_sum
2385 real(wp),
intent(out) :: e
2386 real(wp) :: rho, gamma, pi_inf, qv
2388 call s_compute_mixture_coefficients(alpha_rho_k, alpha_k, rho, gamma, pi_inf, qv)
2392 e = gamma*pres + pi_inf
2393 if (bubbles_euler) e = e*(1._wp - alpha_k(num_fluids))
2394 e = e + qv + 5.e-1_wp*rho*vel_sum
2403# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2405# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2407# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2409# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2411# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2413# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2415# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2417# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2419# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2421# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2423# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2425# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2427# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2429# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2431# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2433# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2435# 1215 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2438 real(wp),
intent(in) :: tau, g
2439 logical,
intent(in) :: is_shear
2443 if (g > verysmall)
then
2444 de = (tau*tau)/max(4._wp*g, verysmall)
2445 if (is_shear) de = de + (tau*tau)/max(4._wp*g, verysmall)
2453 type(scalar_field),
dimension(sys_size),
intent(in) ::
q_cons_vf
2454 integer,
intent(in) ::
j,
k,
l
2455 real(wp),
intent(in) :: rho, g
2460 do s = eqn_idx%stress%beg, eqn_idx%stress%end
2470# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2472# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2474# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2476# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2478# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2480# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2482# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2484# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2486# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2488# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2490# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2492# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2494# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2496# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2498# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2500# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2502# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2505 real(wp),
intent(in) :: b(3), rho, c
2506 real(wp),
intent(in) :: h
2507 real(wp),
intent(out) :: c_fast
2508 integer,
intent(in) :: norm
2509 real(wp) :: b2, term, disc
2513 if (.not. relativity)
then
2514 term = c**2 + b2/rho
2515 disc = term**2 - 4*c**2*(b(norm)**2/rho)
2518 term = (c**2*(b(norm)**2 + rho*h) + b2)/(rho*h + b2)
2519 disc = term**2 - 4*c**2*b(norm)**2/(rho*h + b2)
2523 if (disc < 0._wp)
then
2524 print *,
'rho, c, Bx, By, Bz, h, term, disc:', rho, c, b(1), b(2), b(3), h, term, disc
2528 call s_mpi_abort(
'Error: negative discriminant in s_compute_fast_magnetosonic_speed')
2533 c_fast = sqrt(0.5_wp*(term + sqrt(disc)))
type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf
Compile-time constant parameters: default values, tolerances, and physical constants.
integer, parameter model_eqns_5eq
integer, parameter avg_state_roe
integer, parameter riemann_solver_hll
integer, parameter riemann_solver_hlld
real(wp), parameter sgm_eps
Segmentation tolerance.
real(wp), parameter dflt_real
Default real value.
integer, parameter model_eqns_6eq
integer, parameter model_eqns_gamma_law
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Equations of state in Gamma/Pi form, rho e = Gamma(rho) p + Pi(rho).
subroutine, public s_compute_speed_of_sound_avg(pres, rho, gamma, pi_inf, qv, vel_sum, h, c_c, adv, c, alpha_rho)
Speed of sound of an interface-averaged state. An average of two states is not a state - its enthalpy...
subroutine, public s_compute_mixture_coefficients_dt(dalpha_rho_dt, dadv_dt, alpha_rho, adv, drho_dt, dgamma_dt, dpi_inf_dt, dqv_dt)
Time derivative of the mixture coefficients, mirroring s_compute_mixture_coefficients.
subroutine, public s_compute_mixture_coefficients(alpha_rho_k, alpha_k, rho_k, gamma_k, pi_inf_k, qv_k)
Mixture coefficients of one state. Under bubbles_euler with num_fluids == 1 the sole advection slot a...
real(wp) function, public f_pressure(e_int, gamma, pi_inf, qv)
Pressure of a stiffened gas from its internal energy density - the inverse of s_compute_energy....
subroutine, public s_compute_speed_of_sound(pres, rho, gamma, pi_inf, adv, c, alpha_rho)
Speed of sound of a thermodynamic state. Enthalpy is not an argument: for a real state H,...
Shared global parameters and equation-index setup for all three executables. Each per-target m_global...
type(physical_parameters), dimension(num_fluids_max) fluid_pp
Per-fluid stiffened-gas EOS parameters, Reynolds numbers, and shear modulus.
logical heat_conduction
any_state_dependent_eos is declared with the case-optimization block above: a parameter when the case...
type(eqn_idx_info) eqn_idx
All conserved-variable equation index ranges and scalars.
logical, parameter chemistry
integer, dimension(3) shear_indices
Indices of the stress components that represent shear stress.
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
Basic floating-point utilities: approximate equality, default detection, and coordinate bounds.
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.
Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation.
real(wp) function, public f_elastic_energy(tau, g, is_shear)
Elastic strain energy of one stress component, doubled for a shear component: the tensor stores it on...
subroutine, public s_compute_species_fraction(q_vf, k, l, r, alpha_rho_k, alpha_k)
Compute partial densities and volume fractions.
real(wp), dimension(:,:), allocatable res_vc
impure subroutine, public s_finalize_variables_conversion_module()
Deallocate fluid property arrays and post-processing fields allocated during module initialization.
real(wp) function, public f_hypoelastic_energy(q_cons_vf, j, k, l, rho, g)
Hypoelastic strain energy at one cell, summed over the stress components.
subroutine, public s_initialize_mv(qk_cons_vf, mv)
Initialize bubble mass-vapor values at quadrature nodes from the conserved moment statistics.
subroutine, public s_initialize_pb(qk_cons_vf, mv, pb)
Initialize bubble internal pressures at quadrature nodes using isothermal relations from the Preston ...
impure subroutine, public s_convert_primitive_to_conservative_variables(q_prim_vf, q_cons_vf)
Convert primitives (rho, u, p, alpha) to conserved variables (rho*alpha, rho*u, E,...
subroutine, public s_convert_conservative_to_primitive_variables(qk_cons_vf, q_t_sf, qk_prim_vf, ibounds)
Convert conserved variables (rho*alpha, rho*u, E, alpha) to primitives (rho, u, p,...
subroutine, public s_convert_species_to_mixture_variables(q_vf, k, l, r, rho, gamma, pi_inf, qv, re_k, g_k, g)
Convert species volume fractions and partial densities to mixture density, gamma, pi_inf,...
subroutine, public s_compute_pressure(energy, alf, dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t, e_e_in, pres_mag)
Compute the pressure from the appropriate equation of state.
subroutine, public s_convert_mixture_to_mixture_variables(q_vf, i, j, k, rho, gamma, pi_inf, qv)
Convert mixture variables to density, gamma, pi_inf, and qv for the gamma/pi_inf model....
real(wp), dimension(:,:,:), allocatable, public pi_inf_sf
Scalar liquid stiffness function.
subroutine, public s_compute_energy(pres, alpha_rho_k, alpha_k, vel_sum, e)
Total energy per unit volume, thermodynamic terms only. Callers add magnetic and elastic energy,...
subroutine, public s_convert_primitive_to_flux_variables(qk_prim_vf, fk_vf, fk_src_vf, is1, is2, is3, s2b, s3b, dir_idx_in, dir_flg_in, hll_u_interface_in)
Convert primitive variables to Eulerian flux variables.
subroutine, public s_compute_fast_magnetosonic_speed(rho, c, b, norm, c_fast, h)
Compute the fast magnetosonic wave speed from the sound speed, density, and magnetic field components...
real(wp), dimension(:,:,:), allocatable, public gamma_sf
Scalar sp. heat ratio function.
impure subroutine, public s_initialize_variables_conversion_module(store_mixture_fields, enforce_density_floor, preserve_qbmm_number, lagrange_beta_index)
Initialize the variables conversion module.
real(wp), dimension(:,:,:), allocatable, public rho_sf
Scalar density function.
integer, dimension(:), allocatable bubrs_vc
real(wp), dimension(:), allocatable gs_vc
subroutine, public s_convert_species_to_mixture_variables_kernel(rho_k, gamma_k, pi_inf_k, qv_k, alpha_k, alpha_rho_k, re_k, g_k, g)
Host- and device-callable conversion kernel for species and mixture variables.
logical enforce_density_floor_vc
subroutine, public s_convert_to_mixture_variables(q_vf, i, j, k, rho, gamma, pi_inf, qv, re_k, g_k, g)
Dispatch to the s_convert_mixture_to_mixture_variables and s_convert_species_to_mixture_variables sub...
integer lagrange_beta_index_vc
logical preserve_qbmm_number_vc
Derived type annexing a scalar field (SF).