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# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
34# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
35# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
36# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
38# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
62# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
63# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
64# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
65# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
66# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
68# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
70# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
72# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
74# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 207 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 232 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 243 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 245 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
115# 283 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 293 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 303 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 312 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 329 "/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# 346 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 358 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 364 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 370 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 376 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
140# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
141# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
142# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
143# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
144# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
145# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
146# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
148# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
149# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
150# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
152# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
154# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
168# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
170# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
172# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
174# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
176# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
178# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
180# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
182# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
184# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
186# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206# 192 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 213 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 241 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 256 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 266 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 275 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 291 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 301 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 308 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
226# 21 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
228# 37 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
230# 50 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
232# 76 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
234# 91 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
236# 102 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
238# 115 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
240# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242# 154 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
244# 165 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
246# 176 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 187 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
250# 198 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
252# 208 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
256# 220 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
258# 226 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 232 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
262# 234 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 235 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
267# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
273# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
275# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
277# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
279# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
281# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
283# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
285# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
287# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
289# 6 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp" 2
290# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
296# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
299# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
300# 7 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp" 2
309 use m_mpi_proxy !< message passing interface (mpi) module proxy
315 use m_thermochem,
only: &
316 num_species, get_temperature, get_pressure, gas_constant, &
317 get_mixture_molecular_weight, get_mixture_energy_mass
334#ifndef MFC_PRE_PROCESS
341#ifndef MFC_SIMULATION
344# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
345#if defined(MFC_OpenACC)
346# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
348# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
349#elif defined(MFC_OpenMP)
350# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
352# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
356 real(wp),
allocatable,
dimension(:) ::
gs_vc
358 real(wp),
allocatable,
dimension(:, :) ::
res_vc
360# 55 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
361#if defined(MFC_OpenACC)
362# 55 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
364# 55 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
365#elif defined(MFC_OpenMP)
366# 55 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
368# 55 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
373# 58 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
374#if defined(MFC_OpenACC)
375# 58 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
377# 58 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
378#elif defined(MFC_OpenMP)
379# 58 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
381# 58 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
384 real(wp),
allocatable,
dimension(:, :, :),
public ::
rho_sf
385 real(wp),
allocatable,
dimension(:, :, :),
public ::
gamma_sf
386 real(wp),
allocatable,
dimension(:, :, :),
public ::
pi_inf_sf
387 real(wp),
allocatable,
dimension(:, :, :),
public ::
qv_sf
406 rho, gamma, pi_inf, qv, Re_K, G_K, G)
408 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_vf
409 integer,
intent(in) :: i,
j,
k
410 real(wp),
intent(out),
target :: rho, gamma, pi_inf, qv
411 real(wp),
optional,
dimension(2),
intent(out) :: re_k
412 real(wp),
optional,
intent(out) :: g_k
413 real(wp),
optional,
dimension(num_fluids),
intent(in) :: g
417 rho, gamma, pi_inf, qv)
421 rho, gamma, pi_inf, qv, re_k, g_k, g)
441 subroutine s_compute_pressure(energy, alf, dyn_p, pi_inf, gamma, rho, qv, rhoYks, pres, T, stress, mom, G, pres_mag)
443# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
445# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
447# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
449# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
451# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
453# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
455# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
457# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
459# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
461# 120 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
463 real(stp),
intent(in) :: energy, alf
464 real(wp),
intent(in) :: dyn_p
465 real(wp),
intent(in) :: pi_inf, gamma, rho, qv
466 real(wp),
intent(out) :: pres
467 real(wp),
intent(inout) :: t
468 real(stp),
intent(in),
optional :: stress, mom
469 real(wp),
intent(in),
optional :: g, pres_mag
472 real(wp),
dimension(1:num_species),
intent(in) :: rhoyks
473 real(wp),
dimension(1:num_species) :: y_rs
475 real(wp) :: e_per_kg, pdyn_per_kg
480# 139 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
485 pres = (energy - dyn_p - pi_inf - qv - pres_mag)/gamma
487 pres = (energy - dyn_p - pi_inf - qv)/gamma
489 pres = ((energy - dyn_p)/(1._wp - alf) - pi_inf - qv)/gamma
491 pres = (
pref + pi_inf)* &
494 )**(1/gamma + 1) - pi_inf
502 e_e = e_e + ((stress/rho)**2._wp)/(4._wp*g)
505 e_e = e_e + ((stress/rho)**2._wp)/(4._wp*g)
512 0.5_wp*(mom**2._wp)/rho - &
518# 188 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
536 rho, gamma, pi_inf, qv)
538 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_vf
539 integer,
intent(in) :: i,
j,
k
541 real(wp),
intent(out),
target :: rho
542 real(wp),
intent(out),
target :: gamma
543 real(wp),
intent(out),
target :: pi_inf
544 real(wp),
intent(out),
target :: qv
548 rho = q_vf(1)%sf(i,
j,
k)
554#ifdef MFC_POST_PROCESS
580 gamma, pi_inf, qv, Re_K, G_K, G)
582 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_vf
584 integer,
intent(in) ::
k,
l, r
586 real(wp),
intent(out),
target :: rho
587 real(wp),
intent(out),
target :: gamma
588 real(wp),
intent(out),
target :: pi_inf
589 real(wp),
intent(out),
target :: qv
591 real(wp),
optional,
dimension(2),
intent(out) :: re_k
592 real(wp),
optional,
intent(out) :: g_k
593 real(wp),
dimension(num_fluids) :: alpha_rho_k, alpha_k
594 real(wp),
optional,
dimension(num_fluids),
intent(in) :: g
611 rho = 0._wp; gamma = 0._wp; pi_inf = 0._wp; qv = 0._wp
613 rho = rho + alpha_rho_k(i)
614 gamma = gamma + alpha_k(i)*
gammas(i)
615 pi_inf = pi_inf + alpha_k(i)*
pi_infs(i)
616 qv = qv + alpha_rho_k(i)*
qvs(i)
624 re_k(i) = dflt_real;
if (re_size(i) > 0) re_k(i) = 0._wp
627 re_k(i) = alpha_k(re_idx(i,
j))/
fluid_pp(re_idx(i,
j))%Re(i) &
631 re_k(i) = 1._wp/max(re_k(i), sgm_eps)
636 if (
present(g_k))
then
639 g_k = g_k + alpha_k(i)*g(i)
641 g_k = max(0._wp, g_k)
645#ifdef MFC_POST_PROCESS
656 gamma_K, pi_inf_K, qv_K, &
657 alpha_K, alpha_rho_K, Re_K, &
660# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
662# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
664# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
666# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
668# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
670# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
672# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
674# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
676# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
678# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
680 real(wp),
intent(out) :: rho_k, gamma_k, pi_inf_k, qv_k
681# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
682 real(wp),
dimension(num_fluids),
intent(inout) :: alpha_rho_k, alpha_k
683 real(wp),
optional,
dimension(num_fluids),
intent(in) :: g
684# 339 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
685 real(wp),
dimension(2),
intent(out) :: re_k
686 real(wp),
optional,
intent(out) :: g_k
687 real(wp) :: alpha_k_sum
697 rho_k = alpha_rho_k(1)
705 alpha_rho_k(i) = max(0._wp, alpha_rho_k(i))
706 alpha_k(i) = min(max(0._wp, alpha_k(i)), 1._wp)
707 alpha_k_sum = alpha_k_sum + alpha_k(i)
709 alpha_k = alpha_k/max(alpha_k_sum, sgm_eps)
711 rho_k = 0._wp; gamma_k = 0._wp; pi_inf_k = 0._wp; qv_k = 0._wp
713 rho_k = rho_k + alpha_rho_k(i)
714 gamma_k = gamma_k + alpha_k(i)*
gammas(i)
715 pi_inf_k = pi_inf_k + alpha_k(i)*
pi_infs(i)
716 qv_k = qv_k + alpha_rho_k(i)*
qvs(i)
720 if (
present(g_k))
then
725 g_k = g_k + alpha_k(i)*g(i)
727 g_k = max(0._wp, g_k)
734 if (re_size(i) > 0) re_k(i) = 0._wp
737 re_k(i) = alpha_k(re_idx(i,
j))/
res_vc(i,
j) &
741 re_k(i) = 1._wp/max(re_k(i), sgm_eps)
756# 409 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
757#if defined(MFC_OpenACC)
758# 409 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
760# 409 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
761#elif defined(MFC_OpenMP)
762# 409 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
764# 409 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
768# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
770# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
771 use iso_fortran_env,
only: output_unit
772# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
774# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
775 print *,
'm_variables_conversion.fpp:411: ',
'@:ALLOCATE(gammas (1:num_fluids))'
776# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
778# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
779 call flush (output_unit)
780# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
782# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
784# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
786# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
788# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
790# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
791#if defined(MFC_OpenACC)
792# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
794# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
795#elif defined(MFC_OpenMP)
796# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
798# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
801# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
803# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
804 use iso_fortran_env,
only: output_unit
805# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
807# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
808 print *,
'm_variables_conversion.fpp:412: ',
'@:ALLOCATE(gs_min (1:num_fluids))'
809# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
811# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
812 call flush (output_unit)
813# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
815# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
817# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
818 allocate (
gs_min(1:num_fluids))
819# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
821# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
823# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
824#if defined(MFC_OpenACC)
825# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
827# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
828#elif defined(MFC_OpenMP)
829# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
831# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
834# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
836# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
837 use iso_fortran_env,
only: output_unit
838# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
840# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
841 print *,
'm_variables_conversion.fpp:413: ',
'@:ALLOCATE(pi_infs(1:num_fluids))'
842# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
844# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
845 call flush (output_unit)
846# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
848# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
850# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
851 allocate (
pi_infs(1:num_fluids))
852# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
854# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
856# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
857#if defined(MFC_OpenACC)
858# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
860# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
861#elif defined(MFC_OpenMP)
862# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
864# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
867# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
869# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
870 use iso_fortran_env,
only: output_unit
871# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
873# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
874 print *,
'm_variables_conversion.fpp:414: ',
'@:ALLOCATE(ps_inf(1:num_fluids))'
875# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
877# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
878 call flush (output_unit)
879# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
881# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
883# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
884 allocate (
ps_inf(1:num_fluids))
885# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
887# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
889# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
890#if defined(MFC_OpenACC)
891# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
893# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
894#elif defined(MFC_OpenMP)
895# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
897# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
900# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
902# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
903 use iso_fortran_env,
only: output_unit
904# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
906# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
907 print *,
'm_variables_conversion.fpp:415: ',
'@:ALLOCATE(cvs (1:num_fluids))'
908# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
910# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
911 call flush (output_unit)
912# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
914# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
916# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
917 allocate (
cvs(1:num_fluids))
918# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
920# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
922# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
923#if defined(MFC_OpenACC)
924# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
926# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
927#elif defined(MFC_OpenMP)
928# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
930# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
933# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
935# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
936 use iso_fortran_env,
only: output_unit
937# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
939# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
940 print *,
'm_variables_conversion.fpp:416: ',
'@:ALLOCATE(qvs (1:num_fluids))'
941# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
943# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
944 call flush (output_unit)
945# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
947# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
949# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
950 allocate (
qvs(1:num_fluids))
951# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
953# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
955# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
956#if defined(MFC_OpenACC)
957# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
959# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
960#elif defined(MFC_OpenMP)
961# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
963# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
966# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
968# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
969 use iso_fortran_env,
only: output_unit
970# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
972# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
973 print *,
'm_variables_conversion.fpp:417: ',
'@:ALLOCATE(qvps (1:num_fluids))'
974# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
976# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
977 call flush (output_unit)
978# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
980# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
982# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
983 allocate (
qvps(1:num_fluids))
984# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
986# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
988# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
989#if defined(MFC_OpenACC)
990# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
992# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
993#elif defined(MFC_OpenMP)
994# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
996# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
999# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1001# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1002 use iso_fortran_env,
only: output_unit
1003# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1005# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1006 print *,
'm_variables_conversion.fpp:418: ',
'@:ALLOCATE(Gs_vc (1:num_fluids))'
1007# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1009# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1010 call flush (output_unit)
1011# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1013# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1015# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1016 allocate (
gs_vc(1:num_fluids))
1017# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1019# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1021# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1022#if defined(MFC_OpenACC)
1023# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1025# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1026#elif defined(MFC_OpenMP)
1027# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1029# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1032 do i = 1, num_fluids
1033 gammas(i) = fluid_pp(i)%gamma
1035 pi_infs(i) = fluid_pp(i)%pi_inf
1036 gs_vc(i) = fluid_pp(i)%G
1038 cvs(i) = fluid_pp(i)%cv
1039 qvs(i) = fluid_pp(i)%qv
1040 qvps(i) = fluid_pp(i)%qvp
1043# 430 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1044#if defined(MFC_OpenACC)
1045# 430 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1047# 430 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1048#elif defined(MFC_OpenMP)
1049# 430 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1051# 430 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1054#ifdef MFC_SIMULATION
1058# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1060# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1061 use iso_fortran_env,
only: output_unit
1062# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1064# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1065 print *,
'm_variables_conversion.fpp:435: ',
'@:ALLOCATE(Res_vc(1:2, 1:Re_size_max))'
1066# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1068# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1069 call flush (output_unit)
1070# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1072# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1074# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1075 allocate (
res_vc(1:2, 1:re_size_max))
1076# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1078# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1080# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1081#if defined(MFC_OpenACC)
1082# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1084# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1085#elif defined(MFC_OpenMP)
1086# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1088# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1091 do j = 1, re_size(i)
1092 res_vc(i,
j) = fluid_pp(re_idx(i,
j))%Re(i)
1097# 442 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1098#if defined(MFC_OpenACC)
1099# 442 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1101# 442 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1102#elif defined(MFC_OpenMP)
1103# 442 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1105# 442 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1110 if (bubbles_euler)
then
1112# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1114# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1115 use iso_fortran_env,
only: output_unit
1116# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1118# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1119 print *,
'm_variables_conversion.fpp:447: ',
'@:ALLOCATE(bubrs_vc(1:nb))'
1120# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1122# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1123 call flush (output_unit)
1124# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1126# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1128# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1130# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1132# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1134# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1135#if defined(MFC_OpenACC)
1136# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1138# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1139#elif defined(MFC_OpenMP)
1140# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1142# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1148# 451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1149#if defined(MFC_OpenACC)
1150# 451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1152# 451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1153#elif defined(MFC_OpenMP)
1154# 451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1156# 451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1160#ifdef MFC_POST_PROCESS
1170 allocate (
rho_sf(-buff_size:m + buff_size, &
1171 -buff_size:n + buff_size, &
1172 -buff_size:p + buff_size))
1173 allocate (
gamma_sf(-buff_size:m + buff_size, &
1174 -buff_size:n + buff_size, &
1175 -buff_size:p + buff_size))
1176 allocate (
pi_inf_sf(-buff_size:m + buff_size, &
1177 -buff_size:n + buff_size, &
1178 -buff_size:p + buff_size))
1179 allocate (
qv_sf(-buff_size:m + buff_size, &
1180 -buff_size:n + buff_size, &
1181 -buff_size:p + buff_size))
1186 allocate (
rho_sf(-buff_size:m + buff_size, &
1187 -buff_size:n + buff_size, &
1189 allocate (
gamma_sf(-buff_size:m + buff_size, &
1190 -buff_size:n + buff_size, &
1192 allocate (
pi_inf_sf(-buff_size:m + buff_size, &
1193 -buff_size:n + buff_size, &
1195 allocate (
qv_sf(-buff_size:m + buff_size, &
1196 -buff_size:n + buff_size, &
1203 allocate (
rho_sf(-buff_size:m + buff_size, &
1206 allocate (
gamma_sf(-buff_size:m + buff_size, &
1209 allocate (
pi_inf_sf(-buff_size:m + buff_size, &
1212 allocate (
qv_sf(-buff_size:m + buff_size, &
1224 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1226 real(stp),
dimension(idwint(1)%beg:, idwint(2)%beg:, idwint(3)%beg:, 1:, 1:),
intent(inout) :: mv
1228 integer :: i,
j,
k,
l
1229 real(wp) :: mu, sig, nbub_sc
1231 do l = idwint(3)%beg, idwint(3)%end
1232 do k = idwint(2)%beg, idwint(2)%end
1233 do j = idwint(1)%beg, idwint(1)%end
1235 nbub_sc = qk_cons_vf(bubxb)%sf(
j,
k,
l)
1238# 531 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1239#if defined(MFC_OpenACC)
1240# 531 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1242# 531 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1243#elif defined(MFC_OpenMP)
1244# 531 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1246# 531 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1249 mu = qk_cons_vf(bubxb + 1 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc
1250 sig = (qk_cons_vf(bubxb + 3 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc - mu**2)**0.5_wp
1252 mv(
j,
k,
l, 1, i) = (mass_v0(i))*(mu - sig)**(3._wp)/(r0(i)**(3._wp))
1253 mv(
j,
k,
l, 2, i) = (mass_v0(i))*(mu - sig)**(3._wp)/(r0(i)**(3._wp))
1254 mv(
j,
k,
l, 3, i) = (mass_v0(i))*(mu + sig)**(3._wp)/(r0(i)**(3._wp))
1255 mv(
j,
k,
l, 4, i) = (mass_v0(i))*(mu + sig)**(3._wp)/(r0(i)**(3._wp))
1266 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1268 real(stp),
dimension(idwint(1)%beg:, idwint(2)%beg:, idwint(3)%beg:, 1:, 1:),
intent(in) :: mv
1269 real(stp),
dimension(idwint(1)%beg:, idwint(2)%beg:, idwint(3)%beg:, 1:, 1:),
intent(inout) :: pb
1271 integer :: i,
j,
k,
l
1272 real(wp) :: mu, sig, nbub_sc
1274 do l = idwint(3)%beg, idwint(3)%end
1275 do k = idwint(2)%beg, idwint(2)%end
1276 do j = idwint(1)%beg, idwint(1)%end
1278 nbub_sc = qk_cons_vf(bubxb)%sf(
j,
k,
l)
1281# 564 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1282#if defined(MFC_OpenACC)
1283# 564 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1285# 564 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1286#elif defined(MFC_OpenMP)
1287# 564 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1289# 564 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1292 mu = qk_cons_vf(bubxb + 1 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc
1293 sig = (qk_cons_vf(bubxb + 3 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc - mu**2)**0.5_wp
1296 pb(
j,
k,
l, 1, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 1, i))/(mu - sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1297 pb(
j,
k,
l, 2, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 2, i))/(mu - sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1298 pb(
j,
k,
l, 3, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 3, i))/(mu + sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1299 pb(
j,
k,
l, 4, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 4, i))/(mu + sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1318 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1319 type(scalar_field),
intent(inout) :: q_t_sf
1320 type(scalar_field),
dimension(sys_size),
intent(inout) :: qk_prim_vf
1321 type(int_bounds_info),
dimension(1:3),
intent(in) :: ibounds
1322# 601 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1323 real(wp),
dimension(num_fluids) :: alpha_k, alpha_rho_k
1324 real(wp),
dimension(nb) :: nrtmp
1325 real(wp) :: rhoyks(1:num_species)
1326# 605 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1327 real(wp),
dimension(2) :: re_k
1328 real(wp) :: rho_k, gamma_k, pi_inf_k, qv_k, dyn_pres_k
1330 real(wp) :: vftmp, nbub_sc
1336 integer :: i,
j,
k,
l
1339 real(wp) :: pres_mag
1348 real(wp) :: f, dga_dw, dp_dw, df_dw
1352# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1354# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1355#if defined(MFC_OpenACC)
1356# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1358# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1359#elif defined(MFC_OpenMP)
1360# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1362# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1364# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1366# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1368# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1370# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1372 do l = ibounds(3)%beg, ibounds(3)%end
1373 do k = ibounds(2)%beg, ibounds(2)%end
1374 do j = ibounds(1)%beg, ibounds(1)%end
1379 if (model_eqns /= 4)
then
1380#ifdef MFC_SIMULATION
1382 if (elasticity)
then
1384 alpha_rho_k, re_k, g_k,
gs_vc)
1387 alpha_k, alpha_rho_k, re_k)
1391 if (elasticity)
then
1393 rho_k, gamma_k, pi_inf_k, qv_k, re_k, g_k, fluid_pp(:)%G)
1396 rho_k, gamma_k, pi_inf_k, qv_k)
1401 if (relativity)
then
1404 b(2) = qk_cons_vf(b_idx%beg)%sf(
j,
k,
l)
1405 b(3) = qk_cons_vf(b_idx%beg + 1)%sf(
j,
k,
l)
1407 b(1) = qk_cons_vf(b_idx%beg)%sf(
j,
k,
l)
1408 b(2) = qk_cons_vf(b_idx%beg + 1)%sf(
j,
k,
l)
1409 b(3) = qk_cons_vf(b_idx%beg + 2)%sf(
j,
k,
l)
1411 b2 = b(1)**2 + b(2)**2 + b(3)**2
1415# 672 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1416#if defined(MFC_OpenACC)
1417# 672 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1419# 672 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1420#elif defined(MFC_OpenMP)
1421# 672 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1423# 672 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1426 m2 = m2 + qk_cons_vf(i)%sf(
j,
k,
l)**2
1431# 678 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1432#if defined(MFC_OpenACC)
1433# 678 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1435# 678 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1436#elif defined(MFC_OpenMP)
1437# 678 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1439# 678 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1442 s = s + qk_cons_vf(momxb + i - 1)%sf(
j,
k,
l)*b(i)
1445 e = qk_cons_vf(e_idx)%sf(
j,
k,
l)
1449# 686 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1450#if defined(MFC_OpenACC)
1451# 686 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1453# 686 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1454#elif defined(MFC_OpenMP)
1455# 686 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1457# 686 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1460 d = d + qk_cons_vf(i)%sf(
j,
k,
l)
1466# 693 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1467#if defined(MFC_OpenACC)
1468# 693 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1470# 693 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1471#elif defined(MFC_OpenMP)
1472# 693 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1474# 693 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1476 do iter = 1, relativity_cons_to_prim_max_iter
1477 ga = (w + b2)*w/sqrt((w + b2)**2*w**2 - (m2*w**2 + s**2*(2*w + b2)))
1478 pres = (w - d*ga)/((gamma_k + 1)*ga**2)
1479 f = w - pres + (1 - 1/(2*ga**2))*b2 - s**2/(2*w**2) - e - d
1486 dga_dw = -ga**3*(2*s**2*(3*w**2 + 3*w*b2 + b2**2) + m2*w**2)/(2*w**3*(w + b2)**3)
1488 dp_dw = (ga*(1 + d*dga_dw) - 2*w*dga_dw)/((gamma_k + 1)*ga**3)
1489 df_dw = 1 - dp_dw + (b2/ga**3)*dga_dw + s**2/w**3
1493 if (abs(dw) < 1.e-12_wp*w)
exit
1497 ga = (w + b2)*w/sqrt((w + b2)**2*w**2 - (m2*w**2 + s**2*(2*w + b2)))
1498 qk_prim_vf(e_idx)%sf(
j,
k,
l) = (w - d*ga)/((gamma_k + 1)*ga**2)
1502# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1503#if defined(MFC_OpenACC)
1504# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1506# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1507#elif defined(MFC_OpenMP)
1508# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1510# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1513 qk_prim_vf(momxb + i - 1)%sf(
j,
k,
l) = (qk_cons_vf(momxb + i - 1)%sf(
j,
k,
l) + (s/w)*b(i))/(w + b2)
1515 qk_prim_vf(1)%sf(
j,
k,
l) = d/ga
1518# 725 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1519#if defined(MFC_OpenACC)
1520# 725 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1522# 725 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1523#elif defined(MFC_OpenMP)
1524# 725 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1526# 725 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1528 do i = b_idx%beg, b_idx%end
1529 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1538# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1539#if defined(MFC_OpenACC)
1540# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1542# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1543#elif defined(MFC_OpenMP)
1544# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1546# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1548 do i = chemxb, chemxe
1549 rho_k = rho_k + max(0._wp, qk_cons_vf(i)%sf(
j,
k,
l))
1553# 740 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1554#if defined(MFC_OpenACC)
1555# 740 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1557# 740 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1558#elif defined(MFC_OpenMP)
1559# 740 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1561# 740 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1564 qk_prim_vf(i)%sf(
j,
k,
l) = rho_k
1568# 745 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1569#if defined(MFC_OpenACC)
1570# 745 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1572# 745 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1573#elif defined(MFC_OpenMP)
1574# 745 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1576# 745 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1578 do i = chemxb, chemxe
1579 qk_prim_vf(i)%sf(
j,
k,
l) = max(0._wp, qk_cons_vf(i)%sf(
j,
k,
l)/rho_k)
1583# 750 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1584#if defined(MFC_OpenACC)
1585# 750 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1587# 750 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1588#elif defined(MFC_OpenMP)
1589# 750 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1591# 750 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1594 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1598#ifdef MFC_SIMULATION
1599 rho_k = max(rho_k, sgm_eps)
1603# 760 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1604#if defined(MFC_OpenACC)
1605# 760 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1607# 760 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1608#elif defined(MFC_OpenMP)
1609# 760 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1611# 760 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1614 if (model_eqns /= 4)
then
1615 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l) &
1617 dyn_pres_k = dyn_pres_k + 5.e-1_wp*qk_cons_vf(i)%sf(
j,
k,
l) &
1618 *qk_prim_vf(i)%sf(
j,
k,
l)
1620 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l) &
1621 /qk_cons_vf(1)%sf(
j,
k,
l)
1627# 774 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1628#if defined(MFC_OpenACC)
1629# 774 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1631# 774 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1632#elif defined(MFC_OpenMP)
1633# 774 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1635# 774 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1637 do i = 1, num_species
1638 rhoyks(i) = qk_cons_vf(chemxb + i - 1)%sf(
j,
k,
l)
1641 t = q_t_sf%sf(
j,
k,
l)
1646 pres_mag = 0.5_wp*(bx0**2 + qk_cons_vf(b_idx%beg)%sf(
j,
k,
l)**2 + qk_cons_vf(b_idx%beg + 1)%sf(
j,
k,
l)**2)
1648 pres_mag = 0.5_wp*(qk_cons_vf(b_idx%beg)%sf(
j,
k,
l)**2 + qk_cons_vf(b_idx%beg + 1)%sf(
j,
k,
l)**2 + qk_cons_vf(b_idx%beg + 2)%sf(
j,
k,
l)**2)
1655 qk_cons_vf(alf_idx)%sf(
j,
k,
l), &
1656 dyn_pres_k, pi_inf_k, gamma_k, rho_k, &
1657 qv_k, rhoyks, pres, t, pres_mag=pres_mag)
1659 qk_prim_vf(e_idx)%sf(
j,
k,
l) = pres
1662 q_t_sf%sf(
j,
k,
l) = t
1665 if (bubbles_euler)
then
1667# 804 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1668#if defined(MFC_OpenACC)
1669# 804 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1671# 804 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1672#elif defined(MFC_OpenMP)
1673# 804 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1675# 804 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1681 vftmp = qk_cons_vf(alf_idx)%sf(
j,
k,
l)
1685 nbub_sc = qk_cons_vf(bubxb)%sf(
j,
k,
l)
1689# 816 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1690#if defined(MFC_OpenACC)
1691# 816 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1693# 816 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1694#elif defined(MFC_OpenMP)
1695# 816 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1697# 816 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1700 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/nbub_sc
1703#ifdef MFC_SIMULATION
1704 qk_prim_vf(bubxb)%sf(
j,
k,
l) = qk_cons_vf(bubxb)%sf(
j,
k,
l)
1709 qk_prim_vf(n_idx)%sf(
j,
k,
l) = qk_cons_vf(n_idx)%sf(
j,
k,
l)
1710 nbub_sc = qk_prim_vf(n_idx)%sf(
j,
k,
l)
1712 call s_comp_n_from_cons(vftmp, nrtmp, nbub_sc, weight)
1716# 833 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1717#if defined(MFC_OpenACC)
1718# 833 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1720# 833 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1721#elif defined(MFC_OpenMP)
1722# 833 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1724# 833 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1727 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/nbub_sc
1734# 841 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1735#if defined(MFC_OpenACC)
1736# 841 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1738# 841 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1739#elif defined(MFC_OpenMP)
1740# 841 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1742# 841 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1744 do i = b_idx%beg, b_idx%end
1745 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1749 if (elasticity)
then
1751# 848 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1752#if defined(MFC_OpenACC)
1753# 848 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1755# 848 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1756#elif defined(MFC_OpenMP)
1757# 848 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1759# 848 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1762 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/rho_k
1766 if (hypoelasticity)
then
1768# 855 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1769#if defined(MFC_OpenACC)
1770# 855 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1772# 855 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1773#elif defined(MFC_OpenMP)
1774# 855 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1776# 855 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1780 if (g_k > verysmall)
then
1781 if (cont_damage) g_k = g_k*max((1._wp - qk_cons_vf(damage_idx)%sf(
j,
k,
l)), 0._wp)
1782 qk_prim_vf(e_idx)%sf(
j,
k,
l) = qk_prim_vf(e_idx)%sf(
j,
k,
l) - &
1783 ((qk_prim_vf(i)%sf(
j,
k,
l)**2._wp)/(4._wp*g_k))/gamma_k
1785 if (any(i == shear_indices))
then
1786 qk_prim_vf(e_idx)%sf(
j,
k,
l) = qk_prim_vf(e_idx)%sf(
j,
k,
l) - &
1787 ((qk_prim_vf(i)%sf(
j,
k,
l)**2._wp)/(4._wp*g_k))/gamma_k
1793 if (hyperelasticity)
then
1795# 872 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1796#if defined(MFC_OpenACC)
1797# 872 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1799# 872 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1800#elif defined(MFC_OpenMP)
1801# 872 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1803# 872 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1806 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/rho_k
1810 if (.not. igr .or. num_fluids > 1)
then
1812# 879 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1813#if defined(MFC_OpenACC)
1814# 879 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1816# 879 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1817#elif defined(MFC_OpenMP)
1818# 879 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1820# 879 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1823 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1827 if (surface_tension)
then
1828 qk_prim_vf(c_idx)%sf(
j,
k,
l) = qk_cons_vf(c_idx)%sf(
j,
k,
l)
1831 if (cont_damage) qk_prim_vf(damage_idx)%sf(
j,
k,
l) = qk_cons_vf(damage_idx)%sf(
j,
k,
l)
1833 if (hyper_cleaning) qk_prim_vf(psi_idx)%sf(
j,
k,
l) = qk_cons_vf(psi_idx)%sf(
j,
k,
l)
1834#ifdef MFC_POST_PROCESS
1835 if (bubbles_lagrange) qk_prim_vf(beta_idx)%sf(
j,
k,
l) = qk_cons_vf(beta_idx)%sf(
j,
k,
l)
1842# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1844# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1845#if defined(MFC_OpenACC)
1846# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1848# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1849#elif defined(MFC_OpenMP)
1850# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1852# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1854# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1856# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1858# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1870 type(scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
1871 type(scalar_field),
dimension(sys_size),
intent(inout) ::
q_cons_vf
1880 real(wp) :: dyn_pres
1881 real(wp) :: nbub, r3tmp
1882 real(wp),
dimension(nb) :: rtmp
1884 real(wp),
dimension(2) :: re_k
1886 integer :: i,
j,
k,
l
1888 real(wp),
dimension(num_species) :: ys
1889 real(wp) :: e_mix, mix_mol_weight, t
1890 real(wp) :: pres_mag
1903#ifndef MFC_SIMULATION
1912 rho, gamma, pi_inf, qv, re_k, g, fluid_pp(:)%G)
1914 if (.not. igr .or. num_fluids > 1)
then
1916 do i = adv_idx%beg, adv_idx%end
1921 if (relativity)
then
1925 b(2) = q_prim_vf(b_idx%beg)%sf(
j,
k,
l)
1926 b(3) = q_prim_vf(b_idx%beg + 1)%sf(
j,
k,
l)
1928 b(1) = q_prim_vf(b_idx%beg)%sf(
j,
k,
l)
1929 b(2) = q_prim_vf(b_idx%beg + 1)%sf(
j,
k,
l)
1930 b(3) = q_prim_vf(b_idx%beg + 2)%sf(
j,
k,
l)
1935 v2 = v2 + q_prim_vf(i)%sf(
j,
k,
l)**2
1937 if (v2 >= 1._wp)
call s_mpi_abort(
'Error: v squared > 1 in s_convert_primitive_to_conservative_variables')
1939 ga = 1._wp/sqrt(1._wp - v2)
1941 h = 1._wp + (gamma + 1)*q_prim_vf(e_idx)%sf(
j,
k,
l)/rho
1944 do i = b_idx%beg, b_idx%end
1945 b2 = b2 + q_prim_vf(i)%sf(
j,
k,
l)**2
1947 if (n == 0) b2 = b2 + bx0**2
1951 vdotb = vdotb + q_prim_vf(momxb + i - 1)%sf(
j,
k,
l)*b(i)
1959 q_cons_vf(i)%sf(
j,
k,
l) = (rho*h*ga**2 + b2)*q_prim_vf(i)%sf(
j,
k,
l) &
1960 - vdotb*b(i - momxb + 1)
1963 q_cons_vf(e_idx)%sf(
j,
k,
l) = rho*h*ga**2 - q_prim_vf(e_idx)%sf(
j,
k,
l) &
1964 + 0.5_wp*(b2 + v2*b2 - vdotb**2)
1970 do i = b_idx%beg, b_idx%end
1991 q_prim_vf(i)%sf(
j,
k,
l)/2._wp
1995 do i = chemxb, chemxe
1996 ys(i - chemxb + 1) = q_prim_vf(i)%sf(
j,
k,
l)
2000 call get_mixture_molecular_weight(ys, mix_mol_weight)
2001 t = q_prim_vf(e_idx)%sf(
j,
k,
l)*mix_mol_weight/(gas_constant*rho)
2002 call get_mixture_energy_mass(t, ys, e_mix)
2005 dyn_pres + rho*e_mix
2010 pres_mag = 0.5_wp*(bx0**2 + q_prim_vf(b_idx%beg)%sf(
j,
k,
l)**2 + q_prim_vf(b_idx%beg + 1)%sf(
j,
k,
l)**2)
2012 pres_mag = 0.5_wp*(q_prim_vf(b_idx%beg)%sf(
j,
k,
l)**2 + q_prim_vf(b_idx%beg + 1)%sf(
j,
k,
l)**2 + q_prim_vf(b_idx%beg + 2)%sf(
j,
k,
l)**2)
2015 gamma*q_prim_vf(e_idx)%sf(
j,
k,
l) + dyn_pres + pres_mag &
2017 elseif ((model_eqns /= 4) .and. (bubbles_euler .neqv. .true.))
then
2020 gamma*q_prim_vf(e_idx)%sf(
j,
k,
l) + dyn_pres + pi_inf + qv
2021 else if ((model_eqns /= 4) .and. (bubbles_euler))
then
2024 (1._wp - q_prim_vf(alf_idx)%sf(
j,
k,
l))* &
2025 (gamma*q_prim_vf(e_idx)%sf(
j,
k,
l) + pi_inf)
2033 if (model_eqns == 3)
then
2034 do i = 1, num_fluids
2042 if (bubbles_euler)
then
2045 rtmp(i) = q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l)
2048 if (.not. qbmm)
then
2051 nbub = q_prim_vf(n_idx)%sf(
j,
k,
l)
2053 call s_comp_n_from_prim(real(q_prim_vf(alf_idx)%sf(
j,
k,
l), kind=wp), rtmp, nbub, weight)
2059 r3tmp = r3tmp + weight(i)*0.5_wp*(rtmp(i) + sigr)**3._wp
2060 r3tmp = r3tmp + weight(i)*0.5_wp*(rtmp(i) - sigr)**3._wp
2063 nbub = 3._wp*q_prim_vf(alf_idx)%sf(
j,
k,
l)/(4._wp*pi*r3tmp)
2066 if (
j == 0 .and.
k == 0 .and.
l == 0) print *,
'In convert, nbub:', nbub
2068 do i = bub_idx%beg, bub_idx%end
2074 do i = b_idx%beg, b_idx%end
2079 if (elasticity)
then
2087 if (hypoelasticity)
then
2090 if (g > verysmall)
then
2091 if (cont_damage) g = g*max((1._wp - q_prim_vf(damage_idx)%sf(
j,
k,
l)), 0._wp)
2094 (q_prim_vf(i)%sf(
j,
k,
l)**2._wp)/(4._wp*g)
2096 if (any(i == shear_indices))
then
2098 (q_prim_vf(i)%sf(
j,
k,
l)**2._wp)/(4._wp*g)
2105 if (hyperelasticity)
then
2112 if (surface_tension)
then
2116 if (cont_damage)
q_cons_vf(damage_idx)%sf(
j,
k,
l) = q_prim_vf(damage_idx)%sf(
j,
k,
l)
2118 if (hyper_cleaning)
q_cons_vf(psi_idx)%sf(
j,
k,
l) = q_prim_vf(psi_idx)%sf(
j,
k,
l)
2124 if (proc_rank == 0)
then
2125 call s_mpi_abort(
'Conversion from primitive to '// &
2126 'conservative variables not '// &
2127 'implemented. Exiting.')
2145 is1, is2, is3, s2b, s3b)
2147 integer,
intent(in) :: s2b, s3b
2148 real(wp),
dimension(0:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:),
intent(in) :: qk_prim_vf
2149 real(wp),
dimension(0:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:),
intent(inout) :: fk_vf
2150 real(wp),
dimension(0:, idwbuff(2)%beg:, idwbuff(3)%beg:, advxb:),
intent(inout) :: fk_src_vf
2152 type(int_bounds_info),
intent(in) :: is1, is2, is3
2157# 1203 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2158 real(wp),
dimension(num_fluids) :: alpha_rho_k
2159 real(wp),
dimension(num_fluids) :: alpha_k
2160 real(wp),
dimension(num_vels) :: vel_k
2161 real(wp),
dimension(num_species) :: y_k
2162# 1208 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2164 real(wp) :: vel_k_sum
2168 real(wp) :: pi_inf_k
2170 real(wp),
dimension(2) :: re_k
2172 real(wp) :: t_k, mix_mol_weight, r_gas
2174 integer :: i,
j,
k,
l
2181# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2182#if defined(MFC_OpenACC)
2183# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2185# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2186#elif defined(MFC_OpenMP)
2187# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2189# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2194#ifdef MFC_SIMULATION
2196# 1230 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2198# 1230 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2199#if defined(MFC_OpenACC)
2200# 1230 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2202# 1230 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2203#elif defined(MFC_OpenMP)
2204# 1230 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2206# 1230 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2208# 1230 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2210# 1230 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2212# 1230 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2214# 1230 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2221# 1235 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2222#if defined(MFC_OpenACC)
2223# 1235 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2225# 1235 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2226#elif defined(MFC_OpenMP)
2227# 1235 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2229# 1235 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2232 alpha_rho_k(i) = qk_prim_vf(
j,
k,
l, i)
2236# 1240 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2237#if defined(MFC_OpenACC)
2238# 1240 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2240# 1240 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2241#elif defined(MFC_OpenMP)
2242# 1240 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2244# 1240 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2247 alpha_k(i - e_idx) = qk_prim_vf(
j,
k,
l, i)
2251# 1245 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2252#if defined(MFC_OpenACC)
2253# 1245 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2255# 1245 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2256#elif defined(MFC_OpenMP)
2257# 1245 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2259# 1245 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2262 vel_k(i) = qk_prim_vf(
j,
k,
l, contxe + i)
2267# 1251 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2268#if defined(MFC_OpenACC)
2269# 1251 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2271# 1251 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2272#elif defined(MFC_OpenMP)
2273# 1251 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2275# 1251 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2278 vel_k_sum = vel_k_sum + vel_k(i)**2._wp
2281 pres_k = qk_prim_vf(
j,
k,
l, e_idx)
2282 if (elasticity)
then
2284 alpha_k, alpha_rho_k, re_k, &
2288 alpha_k, alpha_rho_k, re_k)
2295# 1269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2296#if defined(MFC_OpenACC)
2297# 1269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2299# 1269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2300#elif defined(MFC_OpenMP)
2301# 1269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2303# 1269 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2305 do i = chemxb, chemxe
2306 y_k(i - chemxb + 1) = qk_prim_vf(
j,
k,
l, i)
2309 call get_mixture_molecular_weight(y_k, mix_mol_weight)
2310 r_gas = gas_constant/mix_mol_weight
2311 t_k = pres_k/rho_k/r_gas
2312 call get_mixture_energy_mass(t_k, y_k, e_k)
2313 e_k = rho_k*e_k + 5.e-1_wp*rho_k*vel_k_sum
2316 e_k = gamma_k*pres_k + pi_inf_k &
2317 + 5.e-1_wp*rho_k*vel_k_sum + qv_k
2322# 1286 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2323#if defined(MFC_OpenACC)
2324# 1286 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2326# 1286 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2327#elif defined(MFC_OpenMP)
2328# 1286 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2330# 1286 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2333 fk_vf(
j,
k,
l, i) = alpha_rho_k(i)*vel_k(dir_idx(1))
2337# 1291 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2338#if defined(MFC_OpenACC)
2339# 1291 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2341# 1291 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2342#elif defined(MFC_OpenMP)
2343# 1291 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2345# 1291 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2348 fk_vf(
j,
k,
l, contxe + dir_idx(i)) = &
2349 rho_k*vel_k(dir_idx(1)) &
2350 *vel_k(dir_idx(i)) &
2351 + pres_k*dir_flg(dir_idx(i))
2355 fk_vf(
j,
k,
l, e_idx) = vel_k(dir_idx(1))*(e_k + pres_k)
2360# 1304 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2361#if defined(MFC_OpenACC)
2362# 1304 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2364# 1304 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2365#elif defined(MFC_OpenMP)
2366# 1304 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2368# 1304 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2370 do i = 1, num_species
2371 fk_vf(
j,
k,
l, i - 1 + chemxb) = vel_k(dir_idx(1))*(rho_k*y_k(i))
2375 if (riemann_solver == 1 .or. riemann_solver == 4)
then
2377# 1311 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2378#if defined(MFC_OpenACC)
2379# 1311 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2381# 1311 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2382#elif defined(MFC_OpenMP)
2383# 1311 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2385# 1311 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2388 fk_vf(
j,
k,
l, i) = 0._wp
2389 fk_src_vf(
j,
k,
l, i) = alpha_k(i - e_idx)
2395# 1319 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2396#if defined(MFC_OpenACC)
2397# 1319 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2399# 1319 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2400#elif defined(MFC_OpenMP)
2401# 1319 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2403# 1319 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2406 fk_vf(
j,
k,
l, i) = vel_k(dir_idx(1))*alpha_k(i - e_idx)
2410# 1324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2411#if defined(MFC_OpenACC)
2412# 1324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2414# 1324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2415#elif defined(MFC_OpenMP)
2416# 1324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2418# 1324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2421 fk_src_vf(
j,
k,
l, i) = vel_k(dir_idx(1))
2430# 1334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2432# 1334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2433#if defined(MFC_OpenACC)
2434# 1334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2436# 1334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2437#elif defined(MFC_OpenMP)
2438# 1334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2440# 1334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2442# 1334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2444# 1334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2446# 1334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2454# 1340 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2456# 1340 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2458# 1340 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2460# 1340 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2462# 1340 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2464# 1340 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2466# 1340 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2468# 1340 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2470# 1340 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2472# 1342 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2473 type(scalar_field),
dimension(sys_size),
intent(in) :: q_vf
2474 integer,
intent(in) ::
k,
l, r
2475# 1347 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2476 real(wp),
dimension(num_fluids),
intent(out) :: alpha_rho_k, alpha_k
2477# 1349 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2479 real(wp) :: alpha_k_sum
2481 if (num_fluids == 1)
then
2482 alpha_rho_k(1) = q_vf(contxb)%sf(
k,
l, r)
2483 if (igr .or. bubbles_euler)
then
2486 alpha_k(1) = q_vf(advxb)%sf(
k,
l, r)
2490 do i = 1, num_fluids - 1
2491 alpha_rho_k(i) = q_vf(i)%sf(
k,
l, r)
2492 alpha_k(i) = q_vf(advxb + i - 1)%sf(
k,
l, r)
2494 alpha_rho_k(num_fluids) = q_vf(num_fluids)%sf(
k,
l, r)
2495 alpha_k(num_fluids) = 1._wp - sum(alpha_k(1:num_fluids - 1))
2497 do i = 1, num_fluids
2498 alpha_rho_k(i) = q_vf(i)%sf(
k,
l, r)
2499 alpha_k(i) = q_vf(advxb + i - 1)%sf(
k,
l, r)
2506 do i = 1, num_fluids
2507 alpha_rho_k(i) = max(0._wp, alpha_rho_k(i))
2508 alpha_k(i) = min(max(0._wp, alpha_k(i)), 1._wp)
2509 alpha_k_sum = alpha_k_sum + alpha_k(i)
2511 alpha_k = alpha_k/max(alpha_k_sum, 1.e-16_wp)
2514 if (num_fluids == 1 .and. bubbles_euler) alpha_k(1) = q_vf(advxb)%sf(
k,
l, r)
2523#ifdef MFC_POST_PROCESS
2527#ifdef MFC_SIMULATION
2529# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2531# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2532 use iso_fortran_env,
only: output_unit
2533# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2535# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2536 print *,
'm_variables_conversion.fpp:1399: ',
'@:DEALLOCATE(gammas, gs_min, pi_infs, ps_inf, cvs, qvs, qvps, Gs_vc)'
2537# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2539# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2540 call flush (output_unit)
2541# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2543# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2545# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2547# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2548#if defined(MFC_OpenACC)
2549# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2551# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2552#elif defined(MFC_OpenMP)
2553# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2555# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2557# 1399 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2559 if (bubbles_euler)
then
2561# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2563# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2564 use iso_fortran_env,
only: output_unit
2565# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2567# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2568 print *,
'm_variables_conversion.fpp:1401: ',
'@:DEALLOCATE(bubrs_vc)'
2569# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2571# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2572 call flush (output_unit)
2573# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2575# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2577# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2579# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2580#if defined(MFC_OpenACC)
2581# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2583# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2584#elif defined(MFC_OpenMP)
2585# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2587# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2589# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2594# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2596# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2597 use iso_fortran_env,
only: output_unit
2598# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2600# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2601 print *,
'm_variables_conversion.fpp:1404: ',
'@:DEALLOCATE(gammas, gs_min, pi_infs, ps_inf, cvs, qvs, qvps, Gs_vc)'
2602# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2604# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2605 call flush (output_unit)
2606# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2608# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2610# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2612# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2613#if defined(MFC_OpenACC)
2614# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2616# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2617#elif defined(MFC_OpenMP)
2618# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2620# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2622# 1404 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2624 if (bubbles_euler)
then
2626# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2628# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2629 use iso_fortran_env,
only: output_unit
2630# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2632# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2633 print *,
'm_variables_conversion.fpp:1406: ',
'@:DEALLOCATE(bubrs_vc)'
2634# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2636# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2637 call flush (output_unit)
2638# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2640# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2642# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2644# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2645#if defined(MFC_OpenACC)
2646# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2648# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2649#elif defined(MFC_OpenMP)
2650# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2652# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2654# 1406 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2661#ifndef MFC_PRE_PROCESS
2665# 1415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2667# 1415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2669# 1415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2671# 1415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2673# 1415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2675# 1415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2677# 1415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2680 real(wp),
intent(in) :: pres
2681 real(wp),
intent(in) :: rho, gamma, pi_inf, qv
2682 real(wp),
intent(in) :: H
2683# 1423 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2684 real(wp),
dimension(num_fluids),
intent(in) :: adv
2685# 1425 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2686 real(wp),
intent(in) :: vel_sum
2687 real(wp),
intent(in) :: c_c
2688 real(wp),
intent(out) :: c
2690 real(wp) :: blkmod1, blkmod2
2695 if (avg_state == 1 .and. abs(c_c) > verysmall)
then
2696 c = sqrt(c_c - (gamma - 1.0_wp)*(vel_sum - h))
2698 c = sqrt((1.0_wp + 1.0_wp/gamma)*pres/rho)
2700 elseif (relativity)
then
2702 c = sqrt((1._wp + 1._wp/gamma)*pres/rho/h)
2704 if (alt_soundspeed)
then
2705 blkmod1 = ((
gammas(1) + 1._wp)*pres + &
2707 blkmod2 = ((
gammas(2) + 1._wp)*pres + &
2709 c = (1._wp/(rho*(adv(1)/blkmod1 + adv(2)/blkmod2)))
2710 elseif (model_eqns == 3)
then
2713# 1451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2714#if defined(MFC_OpenACC)
2715# 1451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2717# 1451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2718#elif defined(MFC_OpenMP)
2719# 1451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2721# 1451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2723 do q = 1, num_fluids
2724 c = c + adv(q)*
gs_min(q)* &
2728 elseif (((model_eqns == 4) .or. (model_eqns == 2 .and. bubbles_euler)))
then
2731 if (mpp_lim .and. (num_fluids > 1))
then
2732 c = (1._wp/gamma + 1._wp)* &
2733 (pres + pi_inf/(gamma + 1._wp))/rho
2736 (1._wp/gamma + 1._wp)* &
2737 (pres + pi_inf/(gamma + 1._wp))/ &
2738 (rho*(1._wp - adv(num_fluids)))
2741 c = (h - 5.e-1*vel_sum - qv/rho)/gamma
2744 if (mixture_err .and. c < 0._wp)
then
2753#ifndef MFC_PRE_PROCESS
2757# 1485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2759# 1485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2761# 1485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2763# 1485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2765# 1485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2767# 1485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2769# 1485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2771# 1485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2773# 1485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2775# 1487 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2777 real(wp),
intent(in) :: B(3), rho, c
2778 real(wp),
intent(in) :: h
2779 real(wp),
intent(out) :: c_fast
2780 integer,
intent(in) :: norm
2782 real(wp) :: B2, term, disc
2786 if (.not. relativity)
then
2787 term = c**2 + b2/rho
2788 disc = term**2 - 4*c**2*(b(norm)**2/rho)
2791 term = (c**2*(b(norm)**2 + rho*h) + b2)/(rho*h + b2)
2792 disc = term**2 - 4*c**2*b(norm)**2/(rho*h + b2)
2796 if (disc < 0._wp)
then
2797 print *,
'rho, c, Bx, By, Bz, h, term, disc:', rho, c, b(1), b(2), b(3), h, term, disc
2798 call s_mpi_abort(
'Error: negative discriminant in s_compute_fast_magnetosonic_speed')
2802 c_fast = sqrt(0.5_wp*(term + sqrt(disc)))
type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Defines global parameters for the computational domain, simulation algorithm, and initial conditions.
logical hypoelasticity
activate hypoelasticity
integer num_fluids
Number of different fluids present in the flow.
type(int_bounds_info) stress_idx
Indexes of elastic shear stress eqns.
integer gamma_idx
Index of specific heat ratio func. eqn.
integer model_eqns
Multicomponent flow model.
type(physical_parameters), dimension(num_fluids_max) fluid_pp
Database of the physical parameters of each of the fluids that is present in the flow....
integer pi_inf_idx
Index of liquid stiffness func. eqn.
real(wp) pref
Reference parameters for Tait EOS.
logical mhd
Magnetohydrodynamics.
integer, dimension(3) shear_indices
Indices of the stress components that represent shear stress.
logical mpp_lim
Alpha limiter.
Basic floating-point utilities: approximate equality, default detection, and coordinate bounds.
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
Broadcasts user inputs and decomposes the domain across MPI ranks for pre-processing.
Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation.
subroutine s_compute_fast_magnetosonic_speed(rho, c, b, norm, c_fast, h)
Computes the fast magnetosonic wave speed from the sound speed, density, and magnetic field component...
subroutine, public s_convert_primitive_to_flux_variables(qk_prim_vf, fk_vf, fk_src_vf, is1, is2, is3, s2b, s3b)
The following subroutine handles the conversion between the primitive variables and the Eulerian flux...
real(wp), dimension(:), allocatable, public gammas
real(wp), dimension(:, :, :), allocatable, public pi_inf_sf
Scalar liquid stiffness function.
real(wp), dimension(:), allocatable, public ps_inf
subroutine, public s_compute_species_fraction(q_vf, k, l, r, alpha_rho_k, alpha_k)
This subroutine computes partial densities and volume fractions.
subroutine s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, adv, vel_sum, c_c, c, qv)
Computes the speed of sound from thermodynamic state variables, supporting multiple equation-of-state...
real(wp), dimension(:), allocatable, public gs_min
real(wp), dimension(:), allocatable, public qvs
real(wp), dimension(:, :), allocatable res_vc
subroutine, public s_initialize_mv(qk_cons_vf, mv)
Initializes bubble mass-vapor values at quadrature nodes from the conserved moment statistics.
subroutine, public s_initialize_pb(qk_cons_vf, mv, pb)
Initializes bubble internal pressures at quadrature nodes using isothermal relations from the Preston...
real(wp), dimension(:, :, :), allocatable, public rho_sf
Scalar density function.
real(wp), dimension(:), allocatable, public cvs
subroutine, public s_compute_pressure(energy, alf, dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t, stress, mom, g, pres_mag)
This procedure conditionally calculates the appropriate pressure.
real(wp), dimension(:, :, :), allocatable, public qv_sf
Scalar liquid energy reference function.
impure subroutine, public s_convert_primitive_to_conservative_variables(q_prim_vf, q_cons_vf)
The following procedure handles the conversion between the primitive variables and the conservative v...
real(wp), dimension(:), allocatable, public qvps
subroutine, public s_convert_conservative_to_primitive_variables(qk_cons_vf, q_t_sf, qk_prim_vf, ibounds)
The following procedure handles the conversion between the conservative variables and the primitive v...
impure subroutine, public s_initialize_variables_conversion_module
The computation of parameters, the allocation of memory, the association of pointers and/or the execu...
subroutine, public s_convert_species_to_mixture_variables(q_vf, k, l, r, rho, gamma, pi_inf, qv, re_k, g_k, g)
This subroutine is designed for the volume fraction model and provided a set of either conservative o...
subroutine, public s_convert_mixture_to_mixture_variables(q_vf, i, j, k, rho, gamma, pi_inf, qv)
This subroutine is designed for the gamma/pi_inf model and provided a set of either conservative or p...
real(wp), dimension(:, :, :), allocatable, public gamma_sf
Scalar sp. heat ratio function.
real(wp), dimension(:), allocatable, public pi_infs
integer, dimension(:), allocatable bubrs_vc
real(wp), dimension(:), allocatable gs_vc
impure subroutine s_finalize_variables_conversion_module()
Deallocates fluid property arrays and post-processing fields allocated during module initialization.
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...
subroutine, public s_convert_species_to_mixture_variables_acc(rho_k, gamma_k, pi_inf_k, qv_k, alpha_k, alpha_rho_k, re_k, g_k, g)
GPU-accelerated conversion of species volume fractions and partial densities to mixture density,...
Derived type annexing a scalar field (SF).