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# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
36# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
37# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
38# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
41# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
45# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
62# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
64# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
66# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
67# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
68# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
69# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
70# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
72# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
74# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 126 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 156 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 197 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 211 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 236 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
114# 247 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
116# 249 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 260 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 310 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 320 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 356 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 366 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 373 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 379 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 385 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 391 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 397 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
141# 403 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
143# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
144# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
145# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
146# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
147# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
148# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
149# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
150# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
152# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
153# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
154# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
168# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
170# 167 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
172# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
174# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
176# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
178# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
180# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
182# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
184# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
186# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
226# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
228# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
230# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
233# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
236# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
239# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
287# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
289# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
290# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
292# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
294# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
299# 55 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
302# 75 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
305# 83 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
308# 107 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
311# 123 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314# 148 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
316# 154 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
318# 161 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
320# 6 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp" 2
321# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
327# 8 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
330# 12 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
331# 7 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp" 2
343 use m_thermochem,
only: num_species, get_temperature, get_pressure, gas_constant, get_mixture_molecular_weight, &
344 & get_mixture_energy_mass
356 real(wp),
allocatable,
dimension(:) ::
gs_vc
358 real(wp),
allocatable,
dimension(:,:) ::
res_vc
360# 34 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
361#if defined(MFC_OpenACC)
362# 34 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
364# 34 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
365#elif defined(MFC_OpenMP)
366# 34 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
368# 34 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
373# 37 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
374#if defined(MFC_OpenACC)
375# 37 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
377# 37 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
378#elif defined(MFC_OpenMP)
379# 37 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
381# 37 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
388# 42 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
389#if defined(MFC_OpenACC)
390# 42 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
392# 42 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
393#elif defined(MFC_OpenMP)
394# 42 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
396# 42 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
399 real(wp),
allocatable,
dimension(:,:,:),
public ::
rho_sf
400 real(wp),
allocatable,
dimension(:,:,:),
public ::
gamma_sf
401 real(wp),
allocatable,
dimension(:,:,:),
public ::
pi_inf_sf
402 real(wp),
allocatable,
dimension(:,:,:),
public ::
qv_sf
408 subroutine s_convert_to_mixture_variables(q_vf, i, j, k, rho, gamma, pi_inf, qv, Re_K, G_K, G)
410 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_vf
411 integer,
intent(in) :: i,
j,
k
412 real(wp),
intent(out),
target :: rho, gamma, pi_inf, qv
413 real(wp),
optional,
dimension(2),
intent(out) :: re_k
414 real(wp),
optional,
intent(out) :: g_k
415 real(wp),
optional,
dimension(num_fluids),
intent(in) :: g
420 call s_convert_species_to_mixture_variables(q_vf, i,
j,
k, rho, gamma, pi_inf, qv, re_k, g_k, g)
426 subroutine s_compute_pressure(energy, alf, dyn_p, pi_inf, gamma, rho, qv, rhoYks, pres, T, stress, mom, G, pres_mag)
429# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
431# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
433# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
435# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
437# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
439# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
441# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
443# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
445# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
447# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
449# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
451# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
453# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
455# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
457# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
459# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
461# 73 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
464 real(stp),
intent(in) :: energy, alf
465 real(wp),
intent(in) :: dyn_p
466 real(wp),
intent(in) :: pi_inf, gamma, rho, qv
467 real(wp),
intent(out) :: pres
468 real(wp),
intent(inout) :: t
469 real(stp),
intent(in),
optional :: stress, mom
470 real(wp),
intent(in),
optional :: g, pres_mag
473 real(wp),
dimension(1:num_species),
intent(in) :: rhoyks
474 real(wp),
dimension(1:num_species) :: y_rs
476 real(wp) :: e_per_kg, pdyn_per_kg
479# 91 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
485 pres = (energy - dyn_p - pi_inf - qv - pres_mag)/gamma
486 else if (bubbles_euler .neqv. .true.)
then
488 pres = (energy - dyn_p - pi_inf - qv)/gamma
491 pres = ((energy - dyn_p)/(1._wp - alf) - pi_inf - qv)/gamma
494 if (hypoelasticity .and.
present(g))
then
497 do s = eqn_idx%stress%beg, eqn_idx%stress%end
499 e_e = e_e + ((stress/rho)**2._wp)/(4._wp*g)
501 if (any(s == shear_indices))
then
502 e_e = e_e + ((stress/rho)**2._wp)/(4._wp*g)
507 pres = (energy - 0.5_wp*(mom**2._wp)/rho - pi_inf - qv - e_e)/gamma
509# 131 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
518 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_vf
519 integer,
intent(in) :: i,
j,
k
520 real(wp),
intent(out),
target :: rho
521 real(wp),
intent(out),
target :: gamma
522 real(wp),
intent(out),
target :: pi_inf
523 real(wp),
intent(out),
target :: qv
527 rho = q_vf(1)%sf(i,
j,
k)
528 gamma = q_vf(eqn_idx%gamma)%sf(i,
j,
k)
529 pi_inf = q_vf(eqn_idx%pi_inf)%sf(i,
j,
k)
533 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
580# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
582# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
584# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
586# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
588# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
590# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
592# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
594# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
596# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
598# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
600# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
602# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
604# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
606# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
608# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
610# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
612# 200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
615 real(wp),
intent(out) :: rho_k, gamma_k, pi_inf_k, qv_k
616# 207 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
617 real(wp),
dimension(num_fluids),
intent(inout) :: alpha_rho_k, alpha_k
618 real(wp),
optional,
dimension(num_fluids),
intent(in) :: g
619# 210 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
620 real(wp),
optional,
dimension(2),
intent(out) :: re_k
621 real(wp),
optional,
intent(out) :: g_k
622 real(wp) :: alpha_k_sum
630 if (
present(g_k)) g_k = 0._wp
633 if (num_fluids == 1 .and. bubbles_euler)
then
634 rho_k = alpha_rho_k(1)
636 pi_inf_k = pi_infs(1)
642 alpha_rho_k(i) = max(0._wp, alpha_rho_k(i))
643 alpha_k(i) = min(max(0._wp, alpha_k(i)), 1._wp)
644 alpha_k_sum = alpha_k_sum + alpha_k(i)
646 alpha_k = alpha_k/max(alpha_k_sum,
sgm_eps)
648 rho_k = 0._wp; gamma_k = 0._wp; pi_inf_k = 0._wp; qv_k = 0._wp
650 rho_k = rho_k + alpha_rho_k(i)
651 gamma_k = gamma_k + alpha_k(i)*gammas(i)
652 pi_inf_k = pi_inf_k + alpha_k(i)*pi_infs(i)
653 qv_k = qv_k + alpha_rho_k(i)*qvs(i)
657 if (
present(g_k))
then
661 g_k = g_k + alpha_k(i)*g(i)
663 g_k = max(0._wp, g_k)
666 if (viscous .and.
present(re_k))
then
670 if (re_size(i) > 0) re_k(i) = 0._wp
673 re_k(i) = alpha_k(re_idx(i,
j))/
res_vc(i,
j) + re_k(i)
676 re_k(i) = 1._wp/max(re_k(i),
sgm_eps)
684 & lagrange_beta_index)
687 logical,
optional,
intent(in) :: store_mixture_fields
688 logical,
optional,
intent(in) :: enforce_density_floor, preserve_qbmm_number
689 integer,
optional,
intent(in) :: lagrange_beta_index
690 logical :: allocate_mixture_fields
692 allocate_mixture_fields = .false.
693 if (
present(store_mixture_fields)) allocate_mixture_fields = store_mixture_fields
702# 291 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
703#if defined(MFC_OpenACC)
704# 291 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
706# 291 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
707#elif defined(MFC_OpenMP)
708# 291 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
710# 291 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
713# 292 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
714#if defined(MFC_OpenACC)
715# 292 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
717# 292 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
718#elif defined(MFC_OpenMP)
719# 292 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
721# 292 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
725# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
727# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
728 use iso_fortran_env,
only: output_unit
729# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
731# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
732 print *,
'm_variables_conversion.fpp:294: ',
'@:ALLOCATE(gammas (1:num_fluids))'
733# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
735# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
736 call flush (output_unit)
737# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
739# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
741# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
742 allocate (gammas(1:num_fluids))
743# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
745# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
747# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
748#if defined(MFC_OpenACC)
749# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
751# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
752#elif defined(MFC_OpenMP)
753# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
755# 294 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
758# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
760# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
761 use iso_fortran_env,
only: output_unit
762# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
764# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
765 print *,
'm_variables_conversion.fpp:295: ',
'@:ALLOCATE(gs_min (1:num_fluids))'
766# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
768# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
769 call flush (output_unit)
770# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
772# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
774# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
775 allocate (gs_min(1:num_fluids))
776# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
778# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
780# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
781#if defined(MFC_OpenACC)
782# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
784# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
785#elif defined(MFC_OpenMP)
786# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
788# 295 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
791# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
793# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
794 use iso_fortran_env,
only: output_unit
795# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
797# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
798 print *,
'm_variables_conversion.fpp:296: ',
'@:ALLOCATE(pi_infs(1:num_fluids))'
799# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
801# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
802 call flush (output_unit)
803# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
805# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
807# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
808 allocate (pi_infs(1:num_fluids))
809# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
811# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
813# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
814#if defined(MFC_OpenACC)
815# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
817# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
818#elif defined(MFC_OpenMP)
819# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
821# 296 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
824# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
826# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
827 use iso_fortran_env,
only: output_unit
828# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
830# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
831 print *,
'm_variables_conversion.fpp:297: ',
'@:ALLOCATE(ps_inf(1:num_fluids))'
832# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
834# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
835 call flush (output_unit)
836# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
838# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
840# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
841 allocate (ps_inf(1:num_fluids))
842# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
844# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
846# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
847#if defined(MFC_OpenACC)
848# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
850# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
851#elif defined(MFC_OpenMP)
852# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
854# 297 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
857# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
859# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
860 use iso_fortran_env,
only: output_unit
861# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
863# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
864 print *,
'm_variables_conversion.fpp:298: ',
'@:ALLOCATE(cvs (1:num_fluids))'
865# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
867# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
868 call flush (output_unit)
869# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
871# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
873# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
874 allocate (cvs(1:num_fluids))
875# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
877# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
879# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
880#if defined(MFC_OpenACC)
881# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
883# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
884#elif defined(MFC_OpenMP)
885# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
887# 298 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
890# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
892# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
893 use iso_fortran_env,
only: output_unit
894# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
896# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
897 print *,
'm_variables_conversion.fpp:299: ',
'@:ALLOCATE(qvs (1:num_fluids))'
898# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
900# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
901 call flush (output_unit)
902# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
904# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
906# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
907 allocate (qvs(1:num_fluids))
908# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
910# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
912# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
913#if defined(MFC_OpenACC)
914# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
916# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
917#elif defined(MFC_OpenMP)
918# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
920# 299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
923# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
925# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
926 use iso_fortran_env,
only: output_unit
927# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
929# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
930 print *,
'm_variables_conversion.fpp:300: ',
'@:ALLOCATE(qvps (1:num_fluids))'
931# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
933# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
934 call flush (output_unit)
935# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
937# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
939# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
940 allocate (qvps(1:num_fluids))
941# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
943# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
945# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
946#if defined(MFC_OpenACC)
947# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
949# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
950#elif defined(MFC_OpenMP)
951# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
953# 300 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
956# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
958# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
959 use iso_fortran_env,
only: output_unit
960# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
962# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
963 print *,
'm_variables_conversion.fpp:301: ',
'@:ALLOCATE(Gs_vc (1:num_fluids))'
964# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
966# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
967 call flush (output_unit)
968# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
970# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
972# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
973 allocate (
gs_vc(1:num_fluids))
974# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
976# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
978# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
979#if defined(MFC_OpenACC)
980# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
982# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
983#elif defined(MFC_OpenMP)
984# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
986# 301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
990 gammas(i) = fluid_pp(i)%gamma
991 gs_min(i) = 1.0_wp/gammas(i) + 1.0_wp
992 pi_infs(i) = fluid_pp(i)%pi_inf
993 gs_vc(i) = fluid_pp(i)%G
994 ps_inf(i) = pi_infs(i)/(1.0_wp + gammas(i))
995 cvs(i) = fluid_pp(i)%cv
996 qvs(i) = fluid_pp(i)%qv
997 qvps(i) = fluid_pp(i)%qvp
1000# 313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1001#if defined(MFC_OpenACC)
1002# 313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1004# 313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1005#elif defined(MFC_OpenMP)
1006# 313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1008# 313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1012# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1014# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1015 use iso_fortran_env,
only: output_unit
1016# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1018# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1019 print *,
'm_variables_conversion.fpp:315: ',
'@:ALLOCATE(Res_vc(1:2, 1:max(1, Re_size_max)))'
1020# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1022# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1023 call flush (output_unit)
1024# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1026# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1028# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1029 allocate (
res_vc(1:2, 1:max(1, re_size_max)))
1030# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1032# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1034# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1035#if defined(MFC_OpenACC)
1036# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1038# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1039#elif defined(MFC_OpenMP)
1040# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1042# 315 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1045 if (
allocated(re_idx))
then
1047 do j = 1, re_size(i)
1048 res_vc(i,
j) = fluid_pp(re_idx(i,
j))%Re(i)
1052# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1053#if defined(MFC_OpenACC)
1054# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1056# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1057#elif defined(MFC_OpenMP)
1058# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1060# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1064# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1065#if defined(MFC_OpenACC)
1066# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1068# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1069#elif defined(MFC_OpenMP)
1070# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1072# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1075 if (bubbles_euler)
then
1077# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1079# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1080 use iso_fortran_env,
only: output_unit
1081# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1083# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1084 print *,
'm_variables_conversion.fpp:328: ',
'@:ALLOCATE(bubrs_vc(1:nb))'
1085# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1087# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1088 call flush (output_unit)
1089# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1091# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1093# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1095# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1097# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1099# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1100#if defined(MFC_OpenACC)
1101# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1103# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1104#elif defined(MFC_OpenMP)
1105# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1107# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1113# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1114#if defined(MFC_OpenACC)
1115# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1117# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1118#elif defined(MFC_OpenMP)
1119# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1121# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1125 if (allocate_mixture_fields)
then
1129 allocate (
rho_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
1130 allocate (
gamma_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
1131 allocate (
pi_inf_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
1132 allocate (
qv_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
1134 allocate (
rho_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
1135 allocate (
gamma_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
1136 allocate (
pi_inf_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
1137 allocate (
qv_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
1140 allocate (
rho_sf(-buff_size:m + buff_size,0:0,0:0))
1141 allocate (
gamma_sf(-buff_size:m + buff_size,0:0,0:0))
1142 allocate (
pi_inf_sf(-buff_size:m + buff_size,0:0,0:0))
1143 allocate (
qv_sf(-buff_size:m + buff_size,0:0,0:0))
1152 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1153 real(stp),
dimension(idwint(1)%beg:,idwint(2)%beg:,idwint(3)%beg:,1:,1:),
intent(inout) :: mv
1154 integer :: i,
j,
k,
l
1155 real(wp) :: mu, sig, nbub_sc
1157 do l = idwint(3)%beg, idwint(3)%end
1158 do k = idwint(2)%beg, idwint(2)%end
1159 do j = idwint(1)%beg, idwint(1)%end
1160 nbub_sc = qk_cons_vf(eqn_idx%bub%beg)%sf(
j,
k,
l)
1163# 372 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1164#if defined(MFC_OpenACC)
1165# 372 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1167# 372 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1168#elif defined(MFC_OpenMP)
1169# 372 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1171# 372 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1174 mu = qk_cons_vf(eqn_idx%bub%beg + 1 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc
1175 sig = (qk_cons_vf(eqn_idx%bub%beg + 3 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc - mu**2)**0.5_wp
1177 mv(
j,
k,
l, 1, i) = (mass_v0(i))*(mu - sig)**(3._wp)/(r0(i)**(3._wp))
1178 mv(
j,
k,
l, 2, i) = (mass_v0(i))*(mu - sig)**(3._wp)/(r0(i)**(3._wp))
1179 mv(
j,
k,
l, 3, i) = (mass_v0(i))*(mu + sig)**(3._wp)/(r0(i)**(3._wp))
1180 mv(
j,
k,
l, 4, i) = (mass_v0(i))*(mu + sig)**(3._wp)/(r0(i)**(3._wp))
1191 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1192 real(stp),
dimension(idwint(1)%beg:,idwint(2)%beg:,idwint(3)%beg:,1:,1:),
intent(in) :: mv
1193 real(stp),
dimension(idwint(1)%beg:,idwint(2)%beg:,idwint(3)%beg:,1:,1:),
intent(inout) :: pb
1194 integer :: i,
j,
k,
l
1195 real(wp) :: mu, sig, nbub_sc
1197 do l = idwint(3)%beg, idwint(3)%end
1198 do k = idwint(2)%beg, idwint(2)%end
1199 do j = idwint(1)%beg, idwint(1)%end
1200 nbub_sc = qk_cons_vf(eqn_idx%bub%beg)%sf(
j,
k,
l)
1203# 402 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1204#if defined(MFC_OpenACC)
1205# 402 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1207# 402 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1208#elif defined(MFC_OpenMP)
1209# 402 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1211# 402 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1214 mu = qk_cons_vf(eqn_idx%bub%beg + 1 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc
1215 sig = (qk_cons_vf(eqn_idx%bub%beg + 3 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc - mu**2)**0.5_wp
1218 pb(
j,
k,
l, 1, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 1, &
1219 & i))/(mu - sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1220 pb(
j,
k,
l, 2, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 2, &
1221 & i))/(mu - sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1222 pb(
j,
k,
l, 3, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 3, &
1223 & i))/(mu + sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1224 pb(
j,
k,
l, 4, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 4, &
1225 & i))/(mu + sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1239 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1240 type(scalar_field),
intent(inout) :: q_t_sf
1241 type(scalar_field),
dimension(sys_size),
intent(inout) :: qk_prim_vf
1242 type(int_bounds_info),
dimension(1:3),
intent(in) :: ibounds
1244# 439 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1245 real(wp),
dimension(num_fluids) :: alpha_k, alpha_rho_k
1246 real(wp),
dimension(nb) :: nrtmp
1247 real(wp) :: rhoyks(1:num_species)
1248# 443 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1249 real(wp),
dimension(2) :: re_k
1250 real(wp) :: rho_k, gamma_k, pi_inf_k, qv_k, dyn_pres_k
1251 real(wp) :: vftmp, nbub_sc
1254 integer :: i,
j,
k,
l
1256 real(wp) :: pres_mag
1264 real(wp) :: f, dga_dw, dp_dw, df_dw
1268# 461 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1270# 461 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1271#if defined(MFC_OpenACC)
1272# 461 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1274# 461 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1276# 461 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1277#elif defined(MFC_OpenMP)
1278# 461 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1280# 461 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1282# 461 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1284# 461 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1286# 461 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1288# 461 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1290# 464 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1291 do l = ibounds(3)%beg, ibounds(3)%end
1292 do k = ibounds(2)%beg, ibounds(2)%end
1293 do j = ibounds(1)%beg, ibounds(1)%end
1310 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, &
1322 b(3) = qk_cons_vf(
eqn_idx%B%beg + 1)%sf(
j,
k,
l)
1325 b(2) = qk_cons_vf(
eqn_idx%B%beg + 1)%sf(
j,
k,
l)
1326 b(3) = qk_cons_vf(
eqn_idx%B%beg + 2)%sf(
j,
k,
l)
1328 b2 = b(1)**2 + b(2)**2 + b(3)**2
1332# 504 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1333#if defined(MFC_OpenACC)
1334# 504 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1336# 504 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1337#elif defined(MFC_OpenMP)
1338# 504 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1340# 504 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1343 m2 = m2 + qk_cons_vf(i)%sf(
j,
k,
l)**2
1348# 510 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1349#if defined(MFC_OpenACC)
1350# 510 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1352# 510 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1353#elif defined(MFC_OpenMP)
1354# 510 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1356# 510 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1359 s = s + qk_cons_vf(
eqn_idx%mom%beg + i - 1)%sf(
j,
k,
l)*b(i)
1366# 518 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1367#if defined(MFC_OpenACC)
1368# 518 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1370# 518 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1371#elif defined(MFC_OpenMP)
1372# 518 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1374# 518 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1377 d = d + qk_cons_vf(i)%sf(
j,
k,
l)
1383# 525 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1384#if defined(MFC_OpenACC)
1385# 525 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1387# 525 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1388#elif defined(MFC_OpenMP)
1389# 525 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1391# 525 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1393 do iter = 1, relativity_cons_to_prim_max_iter
1395 ga = (w + b2)*w/sqrt((w + b2)**2*w**2 - (m2*w**2 + s**2*(2*w + b2)))
1397 pres = (w - d*ga)/((gamma_k + 1)*ga**2)
1398 f = w - pres + (1 - 1/(2*ga**2))*b2 - s**2/(2*w**2) - e - d
1404 dga_dw = -ga**3*(2*s**2*(3*w**2 + 3*w*b2 + b2**2) + m2*w**2)/(2*w**3*(w + b2)**3)
1406 dp_dw = (ga*(1 + d*dga_dw) - 2*w*dga_dw)/((gamma_k + 1)*ga**3)
1407 df_dw = 1 - dp_dw + (b2/ga**3)*dga_dw + s**2/w**3
1411 if (abs(dw) < 1.e-12_wp*w)
exit
1415 ga = (w + b2)*w/sqrt((w + b2)**2*w**2 - (m2*w**2 + s**2*(2*w + b2)))
1416 qk_prim_vf(
eqn_idx%E)%sf(
j,
k,
l) = (w - d*ga)/((gamma_k + 1)*ga**2)
1420# 552 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1421#if defined(MFC_OpenACC)
1422# 552 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1424# 552 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1425#elif defined(MFC_OpenMP)
1426# 552 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1428# 552 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1431 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, &
1432 &
l) + (s/w)*b(i))/(w + b2)
1434 qk_prim_vf(1)%sf(
j,
k,
l) = d/ga
1437# 559 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1438#if defined(MFC_OpenACC)
1439# 559 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1441# 559 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1442#elif defined(MFC_OpenMP)
1443# 559 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1445# 559 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1448 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1458# 570 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1459#if defined(MFC_OpenACC)
1460# 570 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1462# 570 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1463#elif defined(MFC_OpenMP)
1464# 570 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1466# 570 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1469 rho_k = rho_k + max(0._wp, qk_cons_vf(i)%sf(
j,
k,
l))
1473# 575 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1474#if defined(MFC_OpenACC)
1475# 575 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1477# 575 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1478#elif defined(MFC_OpenMP)
1479# 575 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1481# 575 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1484 qk_prim_vf(i)%sf(
j,
k,
l) = rho_k
1488# 580 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1489#if defined(MFC_OpenACC)
1490# 580 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1492# 580 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1493#elif defined(MFC_OpenMP)
1494# 580 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1496# 580 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1499 qk_prim_vf(i)%sf(
j,
k,
l) = max(0._wp, qk_cons_vf(i)%sf(
j,
k,
l)/rho_k)
1504# 586 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1505#if defined(MFC_OpenACC)
1506# 586 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1508# 586 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1509#elif defined(MFC_OpenMP)
1510# 586 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1512# 586 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1515 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1523# 595 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1524#if defined(MFC_OpenACC)
1525# 595 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1527# 595 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1528#elif defined(MFC_OpenMP)
1529# 595 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1531# 595 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1534 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/rho_k
1535 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)
1540# 602 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1541#if defined(MFC_OpenACC)
1542# 602 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1544# 602 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1545#elif defined(MFC_OpenMP)
1546# 602 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1548# 602 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1550 do i = 1, num_species
1551 rhoyks(i) = qk_cons_vf(
eqn_idx%species%beg + i - 1)%sf(
j,
k,
l)
1554 t = q_t_sf%sf(
j,
k,
l)
1559 pres_mag = 0.5_wp*(
bx0**2 + qk_cons_vf(
eqn_idx%B%beg)%sf(
j,
k, &
1560 &
l)**2 + qk_cons_vf(
eqn_idx%B%beg + 1)%sf(
j,
k,
l)**2)
1562 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, &
1563 &
l)**2 + qk_cons_vf(
eqn_idx%B%beg + 2)%sf(
j,
k,
l)**2)
1570 & pi_inf_k, gamma_k, rho_k, qv_k, rhoyks, pres, t, pres_mag=pres_mag)
1575 q_t_sf%sf(
j,
k,
l) = t
1581# 633 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1582#if defined(MFC_OpenACC)
1583# 633 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1585# 633 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1586#elif defined(MFC_OpenMP)
1587# 633 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1589# 633 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1599 nbub_sc = qk_cons_vf(
eqn_idx%bub%beg)%sf(
j,
k,
l)
1603# 645 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1604#if defined(MFC_OpenACC)
1605# 645 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1607# 645 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1608#elif defined(MFC_OpenMP)
1609# 645 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1611# 645 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1614 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/nbub_sc
1625 call s_comp_n_from_cons(vftmp, nrtmp, nbub_sc, weight)
1629# 661 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1630#if defined(MFC_OpenACC)
1631# 661 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1633# 661 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1634#elif defined(MFC_OpenMP)
1635# 661 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1637# 661 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1640 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/nbub_sc
1647# 669 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1648#if defined(MFC_OpenACC)
1649# 669 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1651# 669 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1652#elif defined(MFC_OpenMP)
1653# 669 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1655# 669 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1658 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1664# 676 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1665#if defined(MFC_OpenACC)
1666# 676 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1668# 676 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1669#elif defined(MFC_OpenMP)
1670# 676 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1672# 676 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1675 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/rho_k
1682# 684 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1683#if defined(MFC_OpenACC)
1684# 684 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1686# 684 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1687#elif defined(MFC_OpenMP)
1688# 684 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1690# 684 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1694 if (g_k > verysmall)
then
1696 &
l)**2._wp)/max(4._wp*g_k, verysmall))/gamma_k
1700 &
k,
l)**2._wp)/max(4._wp*g_k, verysmall))/gamma_k
1708# 700 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1709#if defined(MFC_OpenACC)
1710# 700 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1712# 700 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1713#elif defined(MFC_OpenMP)
1714# 700 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1716# 700 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1719 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1737# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1738#if defined(MFC_OpenACC)
1739# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1741# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1742#elif defined(MFC_OpenMP)
1743# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1745# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1747# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1755 type(scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
1756 type(scalar_field),
dimension(sys_size),
intent(inout) ::
q_cons_vf
1764 real(wp) :: dyn_pres
1765 real(wp) :: nbub, r3tmp
1766 real(wp),
dimension(nb) :: rtmp
1768 real(wp),
dimension(2) :: re_k
1769 integer :: i,
j,
k,
l
1770 real(wp),
dimension(num_species) :: ys
1771 real(wp) :: e_mix, mix_mol_weight, t
1772 real(wp) :: pres_mag
1789 call s_convert_to_mixture_variables(q_prim_vf,
j,
k,
l, rho, gamma, pi_inf, qv, re_k, g, fluid_pp(:)%G)
1791 if (.not. igr .or. num_fluids > 1)
then
1793 do i = eqn_idx%adv%beg, eqn_idx%adv%end
1798 if (relativity)
then
1801 b(2) = q_prim_vf(eqn_idx%B%beg)%sf(
j,
k,
l)
1802 b(3) = q_prim_vf(eqn_idx%B%beg + 1)%sf(
j,
k,
l)
1804 b(1) = q_prim_vf(eqn_idx%B%beg)%sf(
j,
k,
l)
1805 b(2) = q_prim_vf(eqn_idx%B%beg + 1)%sf(
j,
k,
l)
1806 b(3) = q_prim_vf(eqn_idx%B%beg + 2)%sf(
j,
k,
l)
1810 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1811 v2 = v2 + q_prim_vf(i)%sf(
j,
k,
l)**2
1813 if (v2 >= 1._wp)
call s_mpi_abort(
'Error: v squared > 1 in s_convert_primitive_to_conservative_variables')
1815 ga = 1._wp/sqrt(1._wp - v2)
1817 h = 1._wp + (gamma + 1)*q_prim_vf(eqn_idx%E)%sf(
j,
k,
l)/rho
1820 do i = eqn_idx%B%beg, eqn_idx%B%end
1821 b2 = b2 + q_prim_vf(i)%sf(
j,
k,
l)**2
1823 if (n == 0) b2 = b2 + bx0**2
1827 vdotb = vdotb + q_prim_vf(eqn_idx%mom%beg + i - 1)%sf(
j,
k,
l)*b(i)
1830 do i = 1, eqn_idx%cont%end
1834 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1835 q_cons_vf(i)%sf(
j,
k,
l) = (rho*h*ga**2 + b2)*q_prim_vf(i)%sf(
j,
k, &
1836 &
l) - vdotb*b(i - eqn_idx%mom%beg + 1)
1839 q_cons_vf(eqn_idx%E)%sf(
j,
k,
l) = rho*h*ga**2 - q_prim_vf(eqn_idx%E)%sf(
j,
k, &
1840 &
l) + 0.5_wp*(b2 + v2*b2 - vdotb**2)
1842 do i = 1, eqn_idx%cont%end
1846 do i = eqn_idx%B%beg, eqn_idx%B%end
1854 do i = 1, eqn_idx%cont%end
1862 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1864 dyn_pres = dyn_pres +
q_cons_vf(i)%sf(
j,
k,
l)*q_prim_vf(i)%sf(
j,
k,
l)/2._wp
1869 do i = eqn_idx%species%beg, eqn_idx%species%end
1870 ys(i - eqn_idx%species%beg + 1) = q_prim_vf(i)%sf(
j,
k,
l)
1874 call get_mixture_molecular_weight(ys, mix_mol_weight)
1875 t = q_prim_vf(eqn_idx%E)%sf(
j,
k,
l)*mix_mol_weight/(gas_constant*rho)
1876 call get_mixture_energy_mass(t, ys, e_mix)
1878 q_cons_vf(eqn_idx%E)%sf(
j,
k,
l) = dyn_pres + rho*e_mix
1883 pres_mag = 0.5_wp*(bx0**2 + q_prim_vf(eqn_idx%B%beg)%sf(
j,
k, &
1884 &
l)**2 + q_prim_vf(eqn_idx%B%beg + 1)%sf(
j,
k,
l)**2)
1886 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, &
1887 &
k,
l)**2 + q_prim_vf(eqn_idx%B%beg + 2)%sf(
j,
k,
l)**2)
1890 q_cons_vf(eqn_idx%E)%sf(
j,
k,
l) = gamma*q_prim_vf(eqn_idx%E)%sf(
j,
k, &
1891 &
l) + dyn_pres + pres_mag + pi_inf + qv
1892 else if (bubbles_euler .neqv. .true.)
then
1894 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
1897 q_cons_vf(eqn_idx%E)%sf(
j,
k,
l) = dyn_pres + (1._wp - q_prim_vf(eqn_idx%alf)%sf(
j,
k, &
1898 &
l))*(gamma*q_prim_vf(eqn_idx%E)%sf(
j,
k,
l) + pi_inf)
1903 if (model_eqns == model_eqns_6eq)
then
1904 do i = 1, num_fluids
1906 &
l)*(gammas(i)*q_prim_vf(eqn_idx%E)%sf(
j,
k, &
1907 &
l) + pi_infs(i)) +
q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(
j,
k,
l)*qvs(i)
1911 if (bubbles_euler)
then
1914 rtmp(i) = q_prim_vf(qbmm_idx%rs(i))%sf(
j,
k,
l)
1917 if (.not. qbmm)
then
1920 nbub = q_prim_vf(eqn_idx%n)%sf(
j,
k,
l)
1922 call s_comp_n_from_prim(real(q_prim_vf(eqn_idx%alf)%sf(
j,
k,
l), kind=wp), rtmp, nbub, weight)
1928 r3tmp = r3tmp + weight(i)*0.5_wp*(rtmp(i) + sigr)**3._wp
1929 r3tmp = r3tmp + weight(i)*0.5_wp*(rtmp(i) - sigr)**3._wp
1932 nbub = 3._wp*q_prim_vf(eqn_idx%alf)%sf(
j,
k,
l)/(4._wp*pi*r3tmp)
1935 do i = eqn_idx%bub%beg, eqn_idx%bub%end
1941 do i = eqn_idx%B%beg, eqn_idx%B%end
1946 if (hypoelasticity)
then
1948 do i = eqn_idx%stress%beg, eqn_idx%stress%end
1953 if (hypoelasticity)
then
1954 if (cont_damage) g = g*max((1._wp - q_prim_vf(eqn_idx%damage)%sf(
j,
k,
l)), 0._wp)
1955 do i = eqn_idx%stress%beg, eqn_idx%stress%end
1957 if (g > verysmall)
then
1959 &
l)**2._wp)/max(4._wp*g, verysmall)
1961 if (any(i == shear_indices))
then
1963 &
l)**2._wp)/max(4._wp*g, verysmall)
1969 if (surface_tension)
then
1973 if (cont_damage)
q_cons_vf(eqn_idx%damage)%sf(
j,
k,
l) = q_prim_vf(eqn_idx%damage)%sf(
j,
k,
l)
1975 if (hyper_cleaning)
q_cons_vf(eqn_idx%psi)%sf(
j,
k,
l) = q_prim_vf(eqn_idx%psi)%sf(
j,
k,
l)
1984 & dir_flg_in, hll_u_interface_in)
1986 integer,
intent(in) :: s2b, s3b
1989 integer,
dimension(3),
intent(in) :: dir_idx_in
1990 real(wp),
dimension(3),
intent(in) :: dir_flg_in
1991 logical,
intent(in) :: hll_u_interface_in
1992 real(wp),
dimension(0:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:),
intent(in) :: qk_prim_vf
1993 real(wp),
dimension(0:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:),
intent(inout) :: fk_vf
1994 real(wp),
dimension(0:,idwbuff(2)%beg:,idwbuff(3)%beg:,eqn_idx%adv%beg:),
intent(inout) :: fk_src_vf
1995 type(int_bounds_info),
intent(in) :: is1, is2, is3
2000# 977 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2001 real(wp),
dimension(num_fluids) :: alpha_rho_k
2002 real(wp),
dimension(num_fluids) :: alpha_k
2003 real(wp),
dimension(num_vels) :: vel_k
2004 real(wp),
dimension(num_species) :: y_k
2005# 982 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2007 real(wp) :: vel_k_sum
2011 real(wp) :: pi_inf_k
2013 real(wp),
dimension(2) :: re_k
2015 real(wp) :: blkmod1_k, blkmod2_k, k_k
2016 real(wp) :: t_k, mix_mol_weight, r_gas
2017 integer :: i,
j,
k,
l
2024# 999 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2025#if defined(MFC_OpenACC)
2026# 999 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2028# 999 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2029#elif defined(MFC_OpenMP)
2030# 999 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2032# 999 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2038# 1003 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2040# 1003 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2041#if defined(MFC_OpenACC)
2042# 1003 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2044# 1003 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2046# 1003 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2048# 1003 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2049#elif defined(MFC_OpenMP)
2050# 1003 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2052# 1003 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2054# 1003 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2056# 1003 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2058# 1003 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2060# 1003 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2062# 1003 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2064# 1006 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2069# 1009 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2070#if defined(MFC_OpenACC)
2071# 1009 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2073# 1009 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2074#elif defined(MFC_OpenMP)
2075# 1009 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2077# 1009 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2079 do i = 1, eqn_idx%cont%end
2080 alpha_rho_k(i) = qk_prim_vf(
j,
k,
l, i)
2084# 1014 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2085#if defined(MFC_OpenACC)
2086# 1014 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2088# 1014 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2089#elif defined(MFC_OpenMP)
2090# 1014 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2092# 1014 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2094 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2095 alpha_k(i - eqn_idx%E) = qk_prim_vf(
j,
k,
l, i)
2099# 1019 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2100#if defined(MFC_OpenACC)
2101# 1019 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2103# 1019 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2104#elif defined(MFC_OpenMP)
2105# 1019 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2107# 1019 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2110 vel_k(i) = qk_prim_vf(
j,
k,
l, eqn_idx%cont%end + i)
2115# 1025 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2116#if defined(MFC_OpenACC)
2117# 1025 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2119# 1025 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2120#elif defined(MFC_OpenMP)
2121# 1025 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2123# 1025 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2126 vel_k_sum = vel_k_sum + vel_k(i)**2._wp
2129 pres_k = qk_prim_vf(
j,
k,
l, eqn_idx%E)
2130 if (hypoelasticity)
then
2142# 1042 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2143#if defined(MFC_OpenACC)
2144# 1042 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2146# 1042 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2147#elif defined(MFC_OpenMP)
2148# 1042 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2150# 1042 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2152 do i = eqn_idx%species%beg, eqn_idx%species%end
2153 y_k(i - eqn_idx%species%beg + 1) = qk_prim_vf(
j,
k,
l, i)
2156 call get_mixture_molecular_weight(y_k, mix_mol_weight)
2157 r_gas = gas_constant/mix_mol_weight
2158 t_k = pres_k/rho_k/r_gas
2159 call get_mixture_energy_mass(t_k, y_k, e_k)
2160 e_k = rho_k*e_k + 5.e-1_wp*rho_k*vel_k_sum
2163 e_k = gamma_k*pres_k + pi_inf_k + 5.e-1_wp*rho_k*vel_k_sum + qv_k
2168# 1058 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2169#if defined(MFC_OpenACC)
2170# 1058 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2172# 1058 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2173#elif defined(MFC_OpenMP)
2174# 1058 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2176# 1058 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2178 do i = 1, eqn_idx%cont%end
2179 fk_vf(
j,
k,
l, i) = alpha_rho_k(i)*vel_k(dir_idx_in(1))
2183# 1063 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2184#if defined(MFC_OpenACC)
2185# 1063 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2187# 1063 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2188#elif defined(MFC_OpenMP)
2189# 1063 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2191# 1063 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2195 & eqn_idx%cont%end + dir_idx_in(i)) = rho_k*vel_k(dir_idx_in(1))*vel_k(dir_idx_in(i)) &
2196 & + pres_k*dir_flg_in(dir_idx_in(i))
2200 fk_vf(
j,
k,
l, eqn_idx%E) = vel_k(dir_idx_in(1))*(e_k + pres_k)
2205# 1075 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2206#if defined(MFC_OpenACC)
2207# 1075 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2209# 1075 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2210#elif defined(MFC_OpenMP)
2211# 1075 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2213# 1075 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2215 do i = 1, num_species
2216 fk_vf(
j,
k,
l, i - 1 + eqn_idx%species%beg) = vel_k(dir_idx_in(1))*(rho_k*y_k(i))
2227 if (riemann_solver == riemann_solver_hlld)
then
2228 if (hypoelasticity)
then
2233# 1095 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2234 if (alt_soundspeed)
then
2235 blkmod1_k = ((gammas(1) + 1._wp)*pres_k + pi_infs(1))/gammas(1) + (4._wp/3._wp)*
gs_vc(1)
2236 blkmod2_k = ((gammas(2) + 1._wp)*pres_k + pi_infs(2))/gammas(2) + (4._wp/3._wp)*
gs_vc(2)
2237 k_k = alpha_k(1)*alpha_k(2)*(blkmod2_k - blkmod1_k)/(alpha_k(1)*blkmod2_k + alpha_k(2) &
2238 & *blkmod1_k + verysmall)
2240# 1102 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2242# 1102 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2243#if defined(MFC_OpenACC)
2244# 1102 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2246# 1102 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2247#elif defined(MFC_OpenMP)
2248# 1102 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2250# 1102 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2252 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2253 fk_vf(
j,
k,
l, i) = 0._wp
2254 fk_src_vf(
j,
k,
l, i) = 0._wp
2256 fk_vf(
j,
k,
l, eqn_idx%adv%beg) = -k_k*vel_k(dir_idx_in(1))
2257 fk_vf(
j,
k,
l, eqn_idx%adv%end) = k_k*vel_k(dir_idx_in(1))
2260# 1110 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2261#if defined(MFC_OpenACC)
2262# 1110 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2264# 1110 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2265#elif defined(MFC_OpenMP)
2266# 1110 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2268# 1110 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2270 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2271 fk_vf(
j,
k,
l, i) = 0._wp
2272 fk_src_vf(
j,
k,
l, i) = alpha_k(i - eqn_idx%E)
2275 else if (riemann_solver == riemann_solver_hll .and. .not. hll_u_interface_in)
then
2277# 1117 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2278#if defined(MFC_OpenACC)
2279# 1117 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2281# 1117 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2282#elif defined(MFC_OpenMP)
2283# 1117 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2285# 1117 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2287 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2288 fk_vf(
j,
k,
l, i) = 0._wp
2289 fk_src_vf(
j,
k,
l, i) = alpha_k(i - eqn_idx%E)
2294# 1124 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2295#if defined(MFC_OpenACC)
2296# 1124 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2298# 1124 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2299#elif defined(MFC_OpenMP)
2300# 1124 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2302# 1124 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2304 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2305 fk_vf(
j,
k,
l, i) = vel_k(dir_idx_in(1))*alpha_k(i - eqn_idx%E)
2309# 1129 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2310#if defined(MFC_OpenACC)
2311# 1129 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2313# 1129 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2314#elif defined(MFC_OpenMP)
2315# 1129 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2317# 1129 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2319 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2320 fk_src_vf(
j,
k,
l, i) = vel_k(dir_idx_in(1))
2327# 1137 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2328#if defined(MFC_OpenACC)
2329# 1137 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2331# 1137 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2332#elif defined(MFC_OpenMP)
2333# 1137 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2335# 1137 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2337# 1137 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2346# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2348# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2350# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2352# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2354# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2356# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2358# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2360# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2362# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2364# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2366# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2368# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2370# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2372# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2374# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2376# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2378# 1144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2380 type(scalar_field),
dimension(sys_size),
intent(in) :: q_vf
2381 integer,
intent(in) ::
k,
l, r
2382# 1150 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2383 real(wp),
dimension(num_fluids),
intent(out) :: alpha_rho_k, alpha_k
2384# 1152 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2386 real(wp) :: alpha_k_sum
2388 if (num_fluids == 1)
then
2389 alpha_rho_k(1) = q_vf(eqn_idx%cont%beg)%sf(
k,
l, r)
2390 if (igr .or. bubbles_euler)
then
2393 alpha_k(1) = q_vf(eqn_idx%adv%beg)%sf(
k,
l, r)
2397 do i = 1, num_fluids - 1
2398 alpha_rho_k(i) = q_vf(i)%sf(
k,
l, r)
2399 alpha_k(i) = q_vf(eqn_idx%adv%beg + i - 1)%sf(
k,
l, r)
2401 alpha_rho_k(num_fluids) = q_vf(num_fluids)%sf(
k,
l, r)
2402 alpha_k(num_fluids) = 1._wp - sum(alpha_k(1:num_fluids - 1))
2404 do i = 1, num_fluids
2405 alpha_rho_k(i) = q_vf(i)%sf(
k,
l, r)
2406 alpha_k(i) = q_vf(eqn_idx%adv%beg + i - 1)%sf(
k,
l, r)
2413 do i = 1, num_fluids
2414 alpha_rho_k(i) = max(0._wp, alpha_rho_k(i))
2415 alpha_k(i) = min(max(0._wp, alpha_k(i)), 1._wp)
2416 alpha_k_sum = alpha_k_sum + alpha_k(i)
2418 alpha_k = alpha_k/max(alpha_k_sum, 1.e-16_wp)
2421 if (num_fluids == 1 .and. bubbles_euler) alpha_k(1) = q_vf(eqn_idx%adv%beg)%sf(
k,
l, r)
2431# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2433# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2434 use iso_fortran_env,
only: output_unit
2435# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2437# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2438 print *,
'm_variables_conversion.fpp:1197: ',
'@:DEALLOCATE(gammas, gs_min, pi_infs, ps_inf, cvs, qvs, qvps, Gs_vc)'
2439# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2441# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2442 call flush (output_unit)
2443# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2445# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2447# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2449# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2450#if defined(MFC_OpenACC)
2451# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2453# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2454#elif defined(MFC_OpenMP)
2455# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2457# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2459# 1197 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2460 deallocate (gammas, gs_min, pi_infs, ps_inf, cvs, qvs, qvps,
gs_vc)
2463# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2465# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2466 use iso_fortran_env,
only: output_unit
2467# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2469# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2470 print *,
'm_variables_conversion.fpp:1199: ',
'@:DEALLOCATE(bubrs_vc)'
2471# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2473# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2474 call flush (output_unit)
2475# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2477# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2479# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2481# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2482#if defined(MFC_OpenACC)
2483# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2485# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2486#elif defined(MFC_OpenMP)
2487# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2489# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2491# 1199 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2494 if (
allocated(
res_vc))
then
2496# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2498# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2499 use iso_fortran_env,
only: output_unit
2500# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2502# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2503 print *,
'm_variables_conversion.fpp:1202: ',
'@:DEALLOCATE(Res_vc)'
2504# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2506# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2507 call flush (output_unit)
2508# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2510# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2512# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2514# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2515#if defined(MFC_OpenACC)
2516# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2518# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2519#elif defined(MFC_OpenMP)
2520# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2522# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2524# 1202 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2534# 1210 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2536# 1210 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2538# 1210 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2540# 1210 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2542# 1210 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2544# 1210 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2546# 1210 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2549 real(wp),
intent(in) :: pres
2550 real(wp),
intent(in) :: rho, gamma, pi_inf, qv
2551 real(wp),
intent(in) :: h
2552# 1218 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2553 real(wp),
dimension(num_fluids),
intent(in) :: adv
2554# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2555 real(wp),
intent(in) :: vel_sum
2556 real(wp),
intent(in) :: c_c
2557 real(wp),
intent(out) :: c
2558 real(wp) :: blkmod1, blkmod2
2562 if (avg_state == avg_state_roe .and. abs(c_c) > verysmall)
then
2563 c = sqrt(c_c - (gamma - 1.0_wp)*(vel_sum - h))
2565 c = sqrt((1.0_wp + 1.0_wp/gamma)*pres/rho)
2567 else if (relativity)
then
2568 c = sqrt((1._wp + 1._wp/gamma)*pres/rho/h)
2570 if (alt_soundspeed)
then
2571 blkmod1 = ((gammas(1) + 1._wp)*pres + pi_infs(1))/gammas(1)
2572 blkmod2 = ((gammas(2) + 1._wp)*pres + pi_infs(2))/gammas(2)
2573 c = (1._wp/(rho*(adv(1)/blkmod1 + adv(2)/blkmod2)))
2574 else if (model_eqns == model_eqns_6eq)
then
2577# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2578#if defined(MFC_OpenACC)
2579# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2581# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2582#elif defined(MFC_OpenMP)
2583# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2585# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2587 do q = 1, num_fluids
2588 c = c + adv(q)*gs_min(q)*(pres + pi_infs(q)/(gammas(q) + 1._wp))
2591 else if (model_eqns == model_eqns_5eq .and. bubbles_euler)
then
2594 if (mpp_lim .and. (num_fluids > 1))
then
2595 c = (1._wp/gamma + 1._wp)*(pres + pi_inf/(gamma + 1._wp))/rho
2597 c = (1._wp/gamma + 1._wp)*(pres + pi_inf/(gamma + 1._wp))/(rho*(1._wp - adv(num_fluids)))
2600 c = (h - 5.e-1*vel_sum - qv/rho)/gamma
2603 if (mixture_err .and. c < 0._wp)
then
2616# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2618# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2620# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2622# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2624# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2626# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2628# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2630# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2632# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2634# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2636# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2638# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2640# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2642# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2644# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2646# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2648# 1270 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2651 real(wp),
intent(in) :: b(3), rho, c
2652 real(wp),
intent(in) :: h
2653 real(wp),
intent(out) :: c_fast
2654 integer,
intent(in) :: norm
2655 real(wp) :: b2, term, disc
2659 if (.not. relativity)
then
2660 term = c**2 + b2/rho
2661 disc = term**2 - 4*c**2*(b(norm)**2/rho)
2664 term = (c**2*(b(norm)**2 + rho*h) + b2)/(rho*h + b2)
2665 disc = term**2 - 4*c**2*b(norm)**2/(rho*h + b2)
2669 if (disc < 0._wp)
then
2670 print *,
'rho, c, Bx, By, Bz, h, term, disc:', rho, c, b(1), b(2), b(3), h, term, disc
2674 call s_mpi_abort(
'Error: negative discriminant in s_compute_fast_magnetosonic_speed')
2679 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.
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.
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.
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.
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 ...
subroutine, public s_compute_pressure(energy, alf, dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t, stress, mom, g, pres_mag)
Compute the pressure from the appropriate equation of state.
subroutine, public s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, adv, vel_sum, c_c, c, qv)
Compute the speed of sound from thermodynamic state variables, supporting multiple equation-of-state ...
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,...
real(wp), dimension(:,:,:), allocatable, public qv_sf
Scalar liquid energy reference function.
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_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).