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# 104 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
234# 119 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
236# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
238# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
240# 171 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242# 182 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
244# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
246# 204 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
250# 225 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
252# 236 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 246 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
256# 252 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
258# 258 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 264 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
262# 270 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
264# 272 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265# 273 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
267# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
269# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
275# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
277# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
279# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
281# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
283# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
285# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
287# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
289# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
291# 6 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp" 2
292# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
298# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
301# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
302# 7 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp" 2
311 use m_mpi_proxy !< message passing interface (mpi) module proxy
317 use m_thermochem,
only: &
318 num_species, get_temperature, get_pressure, gas_constant, &
319 get_mixture_molecular_weight, get_mixture_energy_mass
336#ifndef MFC_PRE_PROCESS
343#ifndef MFC_SIMULATION
346# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
347#if defined(MFC_OpenACC)
348# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
350# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
351#elif defined(MFC_OpenMP)
352# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
354# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
358 real(wp),
allocatable,
dimension(:) ::
gs_vc
360 real(wp),
allocatable,
dimension(:, :) ::
res_vc
362# 55 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
363#if defined(MFC_OpenACC)
364# 55 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
366# 55 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
367#elif defined(MFC_OpenMP)
368# 55 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
370# 55 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
375# 58 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
376#if defined(MFC_OpenACC)
377# 58 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
379# 58 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
380#elif defined(MFC_OpenMP)
381# 58 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
383# 58 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
386 real(wp),
allocatable,
dimension(:, :, :),
public ::
rho_sf
387 real(wp),
allocatable,
dimension(:, :, :),
public ::
gamma_sf
388 real(wp),
allocatable,
dimension(:, :, :),
public ::
pi_inf_sf
389 real(wp),
allocatable,
dimension(:, :, :),
public ::
qv_sf
408 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
419 rho, gamma, pi_inf, qv)
423 rho, gamma, pi_inf, qv, re_k, g_k, g)
443 subroutine s_compute_pressure(energy, alf, dyn_p, pi_inf, gamma, rho, qv, rhoYks, pres, T, stress, mom, G, pres_mag)
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# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
463# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
465# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
467# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
469# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
471# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
473# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
475# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
477# 118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
479# 120 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
481 real(stp),
intent(in) :: energy, alf
482 real(wp),
intent(in) :: dyn_p
483 real(wp),
intent(in) :: pi_inf, gamma, rho, qv
484 real(wp),
intent(out) :: pres
485 real(wp),
intent(inout) :: t
486 real(stp),
intent(in),
optional :: stress, mom
487 real(wp),
intent(in),
optional :: g, pres_mag
490 real(wp),
dimension(1:num_species),
intent(in) :: rhoyks
491 real(wp),
dimension(1:num_species) :: y_rs
493 real(wp) :: e_per_kg, pdyn_per_kg
498# 139 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
503 pres = (energy - dyn_p - pi_inf - qv - pres_mag)/gamma
505 pres = (energy - dyn_p - pi_inf - qv)/gamma
507 pres = ((energy - dyn_p)/(1._wp - alf) - pi_inf - qv)/gamma
509 pres = (
pref + pi_inf)* &
512 )**(1/gamma + 1) - pi_inf
520 e_e = e_e + ((stress/rho)**2._wp)/(4._wp*g)
523 e_e = e_e + ((stress/rho)**2._wp)/(4._wp*g)
530 0.5_wp*(mom**2._wp)/rho - &
536# 188 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
554 rho, gamma, pi_inf, qv)
556 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_vf
557 integer,
intent(in) :: i,
j,
k
559 real(wp),
intent(out),
target :: rho
560 real(wp),
intent(out),
target :: gamma
561 real(wp),
intent(out),
target :: pi_inf
562 real(wp),
intent(out),
target :: qv
566 rho = q_vf(1)%sf(i,
j,
k)
572#ifdef MFC_POST_PROCESS
598 gamma, pi_inf, qv, Re_K, G_K, G)
600 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_vf
602 integer,
intent(in) ::
k,
l, r
604 real(wp),
intent(out),
target :: rho
605 real(wp),
intent(out),
target :: gamma
606 real(wp),
intent(out),
target :: pi_inf
607 real(wp),
intent(out),
target :: qv
609 real(wp),
optional,
dimension(2),
intent(out) :: re_k
610 real(wp),
optional,
intent(out) :: g_k
611 real(wp),
dimension(num_fluids) :: alpha_rho_k, alpha_k
612 real(wp),
optional,
dimension(num_fluids),
intent(in) :: g
629 rho = 0._wp; gamma = 0._wp; pi_inf = 0._wp; qv = 0._wp
631 rho = rho + alpha_rho_k(i)
632 gamma = gamma + alpha_k(i)*
gammas(i)
633 pi_inf = pi_inf + alpha_k(i)*
pi_infs(i)
634 qv = qv + alpha_rho_k(i)*
qvs(i)
642 re_k(i) = dflt_real;
if (re_size(i) > 0) re_k(i) = 0._wp
645 re_k(i) = alpha_k(re_idx(i,
j))/
fluid_pp(re_idx(i,
j))%Re(i) &
649 re_k(i) = 1._wp/max(re_k(i), sgm_eps)
654 if (
present(g_k))
then
657 g_k = g_k + alpha_k(i)*g(i)
659 g_k = max(0._wp, g_k)
663#ifdef MFC_POST_PROCESS
674 gamma_K, pi_inf_K, qv_K, &
675 alpha_K, alpha_rho_K, Re_K, &
678# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
680# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
682# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
684# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
686# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
688# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
690# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
692# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
694# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
696# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
698# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
700# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
702# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
704# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
706# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
708# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
710# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
712# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
714 real(wp),
intent(out) :: rho_k, gamma_k, pi_inf_k, qv_k
715# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
716 real(wp),
dimension(num_fluids),
intent(inout) :: alpha_rho_k, alpha_k
717 real(wp),
optional,
dimension(num_fluids),
intent(in) :: g
718# 339 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
719 real(wp),
dimension(2),
intent(out) :: re_k
720 real(wp),
optional,
intent(out) :: g_k
721 real(wp) :: alpha_k_sum
731 rho_k = alpha_rho_k(1)
739 alpha_rho_k(i) = max(0._wp, alpha_rho_k(i))
740 alpha_k(i) = min(max(0._wp, alpha_k(i)), 1._wp)
741 alpha_k_sum = alpha_k_sum + alpha_k(i)
743 alpha_k = alpha_k/max(alpha_k_sum, sgm_eps)
745 rho_k = 0._wp; gamma_k = 0._wp; pi_inf_k = 0._wp; qv_k = 0._wp
747 rho_k = rho_k + alpha_rho_k(i)
748 gamma_k = gamma_k + alpha_k(i)*
gammas(i)
749 pi_inf_k = pi_inf_k + alpha_k(i)*
pi_infs(i)
750 qv_k = qv_k + alpha_rho_k(i)*
qvs(i)
754 if (
present(g_k))
then
759 g_k = g_k + alpha_k(i)*g(i)
761 g_k = max(0._wp, g_k)
768 if (re_size(i) > 0) re_k(i) = 0._wp
771 re_k(i) = alpha_k(re_idx(i,
j))/
res_vc(i,
j) &
775 re_k(i) = 1._wp/max(re_k(i), sgm_eps)
790# 409 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
791#if defined(MFC_OpenACC)
792# 409 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
794# 409 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
795#elif defined(MFC_OpenMP)
796# 409 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
798# 409 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
802# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
804# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
805 use iso_fortran_env,
only: output_unit
806# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
808# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
809 print *,
'm_variables_conversion.fpp:411: ',
'@:ALLOCATE(gammas (1:num_fluids))'
810# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
812# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
813 call flush (output_unit)
814# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
816# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
818# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
820# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
822# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
824# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
825#if defined(MFC_OpenACC)
826# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
828# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
829#elif defined(MFC_OpenMP)
830# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
832# 411 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
835# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
837# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
838 use iso_fortran_env,
only: output_unit
839# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
841# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
842 print *,
'm_variables_conversion.fpp:412: ',
'@:ALLOCATE(gs_min (1:num_fluids))'
843# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
845# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
846 call flush (output_unit)
847# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
849# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
851# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
852 allocate (
gs_min(1:num_fluids))
853# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
855# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
857# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
858#if defined(MFC_OpenACC)
859# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
861# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
862#elif defined(MFC_OpenMP)
863# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
865# 412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
868# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
870# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
871 use iso_fortran_env,
only: output_unit
872# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
874# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
875 print *,
'm_variables_conversion.fpp:413: ',
'@:ALLOCATE(pi_infs(1:num_fluids))'
876# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
878# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
879 call flush (output_unit)
880# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
882# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
884# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
885 allocate (
pi_infs(1:num_fluids))
886# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
888# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
890# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
891#if defined(MFC_OpenACC)
892# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
894# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
895#elif defined(MFC_OpenMP)
896# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
898# 413 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
901# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
903# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
904 use iso_fortran_env,
only: output_unit
905# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
907# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
908 print *,
'm_variables_conversion.fpp:414: ',
'@:ALLOCATE(ps_inf(1:num_fluids))'
909# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
911# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
912 call flush (output_unit)
913# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
915# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
917# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
918 allocate (
ps_inf(1:num_fluids))
919# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
921# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
923# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
924#if defined(MFC_OpenACC)
925# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
927# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
928#elif defined(MFC_OpenMP)
929# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
931# 414 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
934# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
936# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
937 use iso_fortran_env,
only: output_unit
938# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
940# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
941 print *,
'm_variables_conversion.fpp:415: ',
'@:ALLOCATE(cvs (1:num_fluids))'
942# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
944# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
945 call flush (output_unit)
946# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
948# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
950# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
951 allocate (
cvs(1:num_fluids))
952# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
954# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
956# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
957#if defined(MFC_OpenACC)
958# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
960# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
961#elif defined(MFC_OpenMP)
962# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
964# 415 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
967# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
969# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
970 use iso_fortran_env,
only: output_unit
971# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
973# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
974 print *,
'm_variables_conversion.fpp:416: ',
'@:ALLOCATE(qvs (1:num_fluids))'
975# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
977# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
978 call flush (output_unit)
979# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
981# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
983# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
984 allocate (
qvs(1:num_fluids))
985# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
987# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
989# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
990#if defined(MFC_OpenACC)
991# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
993# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
994#elif defined(MFC_OpenMP)
995# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
997# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1000# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1002# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1003 use iso_fortran_env,
only: output_unit
1004# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1006# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1007 print *,
'm_variables_conversion.fpp:417: ',
'@:ALLOCATE(qvps (1:num_fluids))'
1008# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1010# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1011 call flush (output_unit)
1012# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1014# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1016# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1017 allocate (
qvps(1:num_fluids))
1018# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1020# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1022# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1023#if defined(MFC_OpenACC)
1024# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1026# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1027#elif defined(MFC_OpenMP)
1028# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1030# 417 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1033# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1035# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1036 use iso_fortran_env,
only: output_unit
1037# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1039# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1040 print *,
'm_variables_conversion.fpp:418: ',
'@:ALLOCATE(Gs_vc (1:num_fluids))'
1041# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1043# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1044 call flush (output_unit)
1045# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1047# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1049# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1050 allocate (
gs_vc(1:num_fluids))
1051# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1053# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1055# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1056#if defined(MFC_OpenACC)
1057# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1059# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1060#elif defined(MFC_OpenMP)
1061# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1063# 418 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1066 do i = 1, num_fluids
1067 gammas(i) = fluid_pp(i)%gamma
1069 pi_infs(i) = fluid_pp(i)%pi_inf
1070 gs_vc(i) = fluid_pp(i)%G
1072 cvs(i) = fluid_pp(i)%cv
1073 qvs(i) = fluid_pp(i)%qv
1074 qvps(i) = fluid_pp(i)%qvp
1077# 430 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1078#if defined(MFC_OpenACC)
1079# 430 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1081# 430 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1082#elif defined(MFC_OpenMP)
1083# 430 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1085# 430 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1088#ifdef MFC_SIMULATION
1092# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1094# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1095 use iso_fortran_env,
only: output_unit
1096# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1098# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1099 print *,
'm_variables_conversion.fpp:435: ',
'@:ALLOCATE(Res_vc(1:2, 1:Re_size_max))'
1100# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1102# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1103 call flush (output_unit)
1104# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1106# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1108# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1109 allocate (
res_vc(1:2, 1:re_size_max))
1110# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1112# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1114# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1115#if defined(MFC_OpenACC)
1116# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1118# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1119#elif defined(MFC_OpenMP)
1120# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1122# 435 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1125 do j = 1, re_size(i)
1126 res_vc(i,
j) = fluid_pp(re_idx(i,
j))%Re(i)
1131# 442 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1132#if defined(MFC_OpenACC)
1133# 442 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1135# 442 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1136#elif defined(MFC_OpenMP)
1137# 442 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1139# 442 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1144 if (bubbles_euler)
then
1146# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1148# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1149 use iso_fortran_env,
only: output_unit
1150# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1152# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1153 print *,
'm_variables_conversion.fpp:447: ',
'@:ALLOCATE(bubrs_vc(1:nb))'
1154# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1156# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1157 call flush (output_unit)
1158# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1160# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1162# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1164# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1166# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1168# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1169#if defined(MFC_OpenACC)
1170# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1172# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1173#elif defined(MFC_OpenMP)
1174# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1176# 447 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1182# 451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1183#if defined(MFC_OpenACC)
1184# 451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1186# 451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1187#elif defined(MFC_OpenMP)
1188# 451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1190# 451 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1194#ifdef MFC_POST_PROCESS
1204 allocate (
rho_sf(-buff_size:m + buff_size, &
1205 -buff_size:n + buff_size, &
1206 -buff_size:p + buff_size))
1207 allocate (
gamma_sf(-buff_size:m + buff_size, &
1208 -buff_size:n + buff_size, &
1209 -buff_size:p + buff_size))
1210 allocate (
pi_inf_sf(-buff_size:m + buff_size, &
1211 -buff_size:n + buff_size, &
1212 -buff_size:p + buff_size))
1213 allocate (
qv_sf(-buff_size:m + buff_size, &
1214 -buff_size:n + buff_size, &
1215 -buff_size:p + buff_size))
1220 allocate (
rho_sf(-buff_size:m + buff_size, &
1221 -buff_size:n + buff_size, &
1223 allocate (
gamma_sf(-buff_size:m + buff_size, &
1224 -buff_size:n + buff_size, &
1226 allocate (
pi_inf_sf(-buff_size:m + buff_size, &
1227 -buff_size:n + buff_size, &
1229 allocate (
qv_sf(-buff_size:m + buff_size, &
1230 -buff_size:n + buff_size, &
1237 allocate (
rho_sf(-buff_size:m + buff_size, &
1240 allocate (
gamma_sf(-buff_size:m + buff_size, &
1243 allocate (
pi_inf_sf(-buff_size:m + buff_size, &
1246 allocate (
qv_sf(-buff_size:m + buff_size, &
1258 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1260 real(stp),
dimension(idwint(1)%beg:, idwint(2)%beg:, idwint(3)%beg:, 1:, 1:),
intent(inout) :: mv
1262 integer :: i,
j,
k,
l
1263 real(wp) :: mu, sig, nbub_sc
1265 do l = idwint(3)%beg, idwint(3)%end
1266 do k = idwint(2)%beg, idwint(2)%end
1267 do j = idwint(1)%beg, idwint(1)%end
1269 nbub_sc = qk_cons_vf(bubxb)%sf(
j,
k,
l)
1272# 531 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1273#if defined(MFC_OpenACC)
1274# 531 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1276# 531 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1277#elif defined(MFC_OpenMP)
1278# 531 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1280# 531 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1283 mu = qk_cons_vf(bubxb + 1 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc
1284 sig = (qk_cons_vf(bubxb + 3 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc - mu**2)**0.5_wp
1286 mv(
j,
k,
l, 1, i) = (mass_v0(i))*(mu - sig)**(3._wp)/(r0(i)**(3._wp))
1287 mv(
j,
k,
l, 2, i) = (mass_v0(i))*(mu - sig)**(3._wp)/(r0(i)**(3._wp))
1288 mv(
j,
k,
l, 3, i) = (mass_v0(i))*(mu + sig)**(3._wp)/(r0(i)**(3._wp))
1289 mv(
j,
k,
l, 4, i) = (mass_v0(i))*(mu + sig)**(3._wp)/(r0(i)**(3._wp))
1300 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1302 real(stp),
dimension(idwint(1)%beg:, idwint(2)%beg:, idwint(3)%beg:, 1:, 1:),
intent(in) :: mv
1303 real(stp),
dimension(idwint(1)%beg:, idwint(2)%beg:, idwint(3)%beg:, 1:, 1:),
intent(inout) :: pb
1305 integer :: i,
j,
k,
l
1306 real(wp) :: mu, sig, nbub_sc
1308 do l = idwint(3)%beg, idwint(3)%end
1309 do k = idwint(2)%beg, idwint(2)%end
1310 do j = idwint(1)%beg, idwint(1)%end
1312 nbub_sc = qk_cons_vf(bubxb)%sf(
j,
k,
l)
1315# 564 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1316#if defined(MFC_OpenACC)
1317# 564 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1319# 564 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1320#elif defined(MFC_OpenMP)
1321# 564 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1323# 564 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1326 mu = qk_cons_vf(bubxb + 1 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc
1327 sig = (qk_cons_vf(bubxb + 3 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc - mu**2)**0.5_wp
1330 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))
1331 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))
1332 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))
1333 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))
1352 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1353 type(scalar_field),
intent(inout) :: q_t_sf
1354 type(scalar_field),
dimension(sys_size),
intent(inout) :: qk_prim_vf
1355 type(int_bounds_info),
dimension(1:3),
intent(in) :: ibounds
1356# 601 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1357 real(wp),
dimension(num_fluids) :: alpha_k, alpha_rho_k
1358 real(wp),
dimension(nb) :: nrtmp
1359 real(wp) :: rhoyks(1:num_species)
1360# 605 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1361 real(wp),
dimension(2) :: re_k
1362 real(wp) :: rho_k, gamma_k, pi_inf_k, qv_k, dyn_pres_k
1364 real(wp) :: vftmp, nbub_sc
1370 integer :: i,
j,
k,
l
1373 real(wp) :: pres_mag
1382 real(wp) :: f, dga_dw, dp_dw, df_dw
1386# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1388# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1389#if defined(MFC_OpenACC)
1390# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1392# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1393#elif defined(MFC_OpenMP)
1394# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1396# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1398# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1400# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1402# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1404# 629 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1406 do l = ibounds(3)%beg, ibounds(3)%end
1407 do k = ibounds(2)%beg, ibounds(2)%end
1408 do j = ibounds(1)%beg, ibounds(1)%end
1413 if (model_eqns /= 4)
then
1414#ifdef MFC_SIMULATION
1416 if (elasticity)
then
1418 alpha_rho_k, re_k, g_k,
gs_vc)
1421 alpha_k, alpha_rho_k, re_k)
1425 if (elasticity)
then
1427 rho_k, gamma_k, pi_inf_k, qv_k, re_k, g_k, fluid_pp(:)%G)
1430 rho_k, gamma_k, pi_inf_k, qv_k)
1435 if (relativity)
then
1438 b(2) = qk_cons_vf(b_idx%beg)%sf(
j,
k,
l)
1439 b(3) = qk_cons_vf(b_idx%beg + 1)%sf(
j,
k,
l)
1441 b(1) = qk_cons_vf(b_idx%beg)%sf(
j,
k,
l)
1442 b(2) = qk_cons_vf(b_idx%beg + 1)%sf(
j,
k,
l)
1443 b(3) = qk_cons_vf(b_idx%beg + 2)%sf(
j,
k,
l)
1445 b2 = b(1)**2 + b(2)**2 + b(3)**2
1449# 672 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1450#if defined(MFC_OpenACC)
1451# 672 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1453# 672 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1454#elif defined(MFC_OpenMP)
1455# 672 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1457# 672 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1460 m2 = m2 + qk_cons_vf(i)%sf(
j,
k,
l)**2
1465# 678 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1466#if defined(MFC_OpenACC)
1467# 678 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1469# 678 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1470#elif defined(MFC_OpenMP)
1471# 678 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1473# 678 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1476 s = s + qk_cons_vf(momxb + i - 1)%sf(
j,
k,
l)*b(i)
1479 e = qk_cons_vf(e_idx)%sf(
j,
k,
l)
1483# 686 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1484#if defined(MFC_OpenACC)
1485# 686 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1487# 686 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1488#elif defined(MFC_OpenMP)
1489# 686 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1491# 686 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1494 d = d + qk_cons_vf(i)%sf(
j,
k,
l)
1500# 693 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1501#if defined(MFC_OpenACC)
1502# 693 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1504# 693 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1505#elif defined(MFC_OpenMP)
1506# 693 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1508# 693 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1510 do iter = 1, relativity_cons_to_prim_max_iter
1511 ga = (w + b2)*w/sqrt((w + b2)**2*w**2 - (m2*w**2 + s**2*(2*w + b2)))
1512 pres = (w - d*ga)/((gamma_k + 1)*ga**2)
1513 f = w - pres + (1 - 1/(2*ga**2))*b2 - s**2/(2*w**2) - e - d
1520 dga_dw = -ga**3*(2*s**2*(3*w**2 + 3*w*b2 + b2**2) + m2*w**2)/(2*w**3*(w + b2)**3)
1522 dp_dw = (ga*(1 + d*dga_dw) - 2*w*dga_dw)/((gamma_k + 1)*ga**3)
1523 df_dw = 1 - dp_dw + (b2/ga**3)*dga_dw + s**2/w**3
1527 if (abs(dw) < 1.e-12_wp*w)
exit
1531 ga = (w + b2)*w/sqrt((w + b2)**2*w**2 - (m2*w**2 + s**2*(2*w + b2)))
1532 qk_prim_vf(e_idx)%sf(
j,
k,
l) = (w - d*ga)/((gamma_k + 1)*ga**2)
1536# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1537#if defined(MFC_OpenACC)
1538# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1540# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1541#elif defined(MFC_OpenMP)
1542# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1544# 719 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1547 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)
1549 qk_prim_vf(1)%sf(
j,
k,
l) = d/ga
1552# 725 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1553#if defined(MFC_OpenACC)
1554# 725 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1556# 725 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1557#elif defined(MFC_OpenMP)
1558# 725 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1560# 725 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1562 do i = b_idx%beg, b_idx%end
1563 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1572# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1573#if defined(MFC_OpenACC)
1574# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1576# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1577#elif defined(MFC_OpenMP)
1578# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1580# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1582 do i = chemxb, chemxe
1583 rho_k = rho_k + max(0._wp, qk_cons_vf(i)%sf(
j,
k,
l))
1587# 740 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1588#if defined(MFC_OpenACC)
1589# 740 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1591# 740 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1592#elif defined(MFC_OpenMP)
1593# 740 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1595# 740 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1598 qk_prim_vf(i)%sf(
j,
k,
l) = rho_k
1602# 745 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1603#if defined(MFC_OpenACC)
1604# 745 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1606# 745 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1607#elif defined(MFC_OpenMP)
1608# 745 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1610# 745 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1612 do i = chemxb, chemxe
1613 qk_prim_vf(i)%sf(
j,
k,
l) = max(0._wp, qk_cons_vf(i)%sf(
j,
k,
l)/rho_k)
1617# 750 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1618#if defined(MFC_OpenACC)
1619# 750 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1621# 750 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1622#elif defined(MFC_OpenMP)
1623# 750 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1625# 750 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1628 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1632#ifdef MFC_SIMULATION
1633 rho_k = max(rho_k, sgm_eps)
1637# 760 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1638#if defined(MFC_OpenACC)
1639# 760 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1641# 760 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1642#elif defined(MFC_OpenMP)
1643# 760 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1645# 760 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1648 if (model_eqns /= 4)
then
1649 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l) &
1651 dyn_pres_k = dyn_pres_k + 5.e-1_wp*qk_cons_vf(i)%sf(
j,
k,
l) &
1652 *qk_prim_vf(i)%sf(
j,
k,
l)
1654 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l) &
1655 /qk_cons_vf(1)%sf(
j,
k,
l)
1661# 774 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1662#if defined(MFC_OpenACC)
1663# 774 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1665# 774 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1666#elif defined(MFC_OpenMP)
1667# 774 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1669# 774 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1671 do i = 1, num_species
1672 rhoyks(i) = qk_cons_vf(chemxb + i - 1)%sf(
j,
k,
l)
1675 t = q_t_sf%sf(
j,
k,
l)
1680 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)
1682 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)
1689 qk_cons_vf(alf_idx)%sf(
j,
k,
l), &
1690 dyn_pres_k, pi_inf_k, gamma_k, rho_k, &
1691 qv_k, rhoyks, pres, t, pres_mag=pres_mag)
1693 qk_prim_vf(e_idx)%sf(
j,
k,
l) = pres
1696 q_t_sf%sf(
j,
k,
l) = t
1699 if (bubbles_euler)
then
1701# 804 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1702#if defined(MFC_OpenACC)
1703# 804 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1705# 804 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1706#elif defined(MFC_OpenMP)
1707# 804 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1709# 804 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1715 vftmp = qk_cons_vf(alf_idx)%sf(
j,
k,
l)
1719 nbub_sc = qk_cons_vf(bubxb)%sf(
j,
k,
l)
1723# 816 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1724#if defined(MFC_OpenACC)
1725# 816 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1727# 816 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1728#elif defined(MFC_OpenMP)
1729# 816 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1731# 816 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1734 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/nbub_sc
1737#ifdef MFC_SIMULATION
1738 qk_prim_vf(bubxb)%sf(
j,
k,
l) = qk_cons_vf(bubxb)%sf(
j,
k,
l)
1743 qk_prim_vf(n_idx)%sf(
j,
k,
l) = qk_cons_vf(n_idx)%sf(
j,
k,
l)
1744 nbub_sc = qk_prim_vf(n_idx)%sf(
j,
k,
l)
1746 call s_comp_n_from_cons(vftmp, nrtmp, nbub_sc, weight)
1750# 833 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1751#if defined(MFC_OpenACC)
1752# 833 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1754# 833 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1755#elif defined(MFC_OpenMP)
1756# 833 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1758# 833 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1761 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/nbub_sc
1768# 841 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1769#if defined(MFC_OpenACC)
1770# 841 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1772# 841 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1773#elif defined(MFC_OpenMP)
1774# 841 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1776# 841 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1778 do i = b_idx%beg, b_idx%end
1779 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1783 if (elasticity)
then
1785# 848 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1786#if defined(MFC_OpenACC)
1787# 848 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1789# 848 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1790#elif defined(MFC_OpenMP)
1791# 848 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1793# 848 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1796 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/rho_k
1800 if (hypoelasticity)
then
1801 if (cont_damage) g_k = g_k*max((1._wp - qk_cons_vf(damage_idx)%sf(
j,
k,
l)), 0._wp)
1803# 856 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1804#if defined(MFC_OpenACC)
1805# 856 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1807# 856 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1808#elif defined(MFC_OpenMP)
1809# 856 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1811# 856 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1815 if (g_k > verysmall)
then
1816 qk_prim_vf(e_idx)%sf(
j,
k,
l) = qk_prim_vf(e_idx)%sf(
j,
k,
l) - &
1817 ((qk_prim_vf(i)%sf(
j,
k,
l)**2._wp)/(4._wp*g_k))/gamma_k
1819 if (any(i == shear_indices))
then
1820 qk_prim_vf(e_idx)%sf(
j,
k,
l) = qk_prim_vf(e_idx)%sf(
j,
k,
l) - &
1821 ((qk_prim_vf(i)%sf(
j,
k,
l)**2._wp)/(4._wp*g_k))/gamma_k
1827 if (hyperelasticity)
then
1829# 872 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1830#if defined(MFC_OpenACC)
1831# 872 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1833# 872 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1834#elif defined(MFC_OpenMP)
1835# 872 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1837# 872 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1840 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/rho_k
1844 if (.not. igr .or. num_fluids > 1)
then
1846# 879 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1847#if defined(MFC_OpenACC)
1848# 879 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1850# 879 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1851#elif defined(MFC_OpenMP)
1852# 879 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1854# 879 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1857 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1861 if (surface_tension)
then
1862 qk_prim_vf(c_idx)%sf(
j,
k,
l) = qk_cons_vf(c_idx)%sf(
j,
k,
l)
1865 if (cont_damage) qk_prim_vf(damage_idx)%sf(
j,
k,
l) = qk_cons_vf(damage_idx)%sf(
j,
k,
l)
1867 if (hyper_cleaning) qk_prim_vf(psi_idx)%sf(
j,
k,
l) = qk_cons_vf(psi_idx)%sf(
j,
k,
l)
1868#ifdef MFC_POST_PROCESS
1869 if (bubbles_lagrange) qk_prim_vf(beta_idx)%sf(
j,
k,
l) = qk_cons_vf(beta_idx)%sf(
j,
k,
l)
1876# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1878# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1879#if defined(MFC_OpenACC)
1880# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1882# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1883#elif defined(MFC_OpenMP)
1884# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1886# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1888# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1890# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1892# 899 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1904 type(scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
1905 type(scalar_field),
dimension(sys_size),
intent(inout) ::
q_cons_vf
1914 real(wp) :: dyn_pres
1915 real(wp) :: nbub, r3tmp
1916 real(wp),
dimension(nb) :: rtmp
1918 real(wp),
dimension(2) :: re_k
1920 integer :: i,
j,
k,
l
1922 real(wp),
dimension(num_species) :: ys
1923 real(wp) :: e_mix, mix_mol_weight, t
1924 real(wp) :: pres_mag
1937#ifndef MFC_SIMULATION
1946 rho, gamma, pi_inf, qv, re_k, g, fluid_pp(:)%G)
1948 if (.not. igr .or. num_fluids > 1)
then
1950 do i = adv_idx%beg, adv_idx%end
1955 if (relativity)
then
1959 b(2) = q_prim_vf(b_idx%beg)%sf(
j,
k,
l)
1960 b(3) = q_prim_vf(b_idx%beg + 1)%sf(
j,
k,
l)
1962 b(1) = q_prim_vf(b_idx%beg)%sf(
j,
k,
l)
1963 b(2) = q_prim_vf(b_idx%beg + 1)%sf(
j,
k,
l)
1964 b(3) = q_prim_vf(b_idx%beg + 2)%sf(
j,
k,
l)
1969 v2 = v2 + q_prim_vf(i)%sf(
j,
k,
l)**2
1971 if (v2 >= 1._wp)
call s_mpi_abort(
'Error: v squared > 1 in s_convert_primitive_to_conservative_variables')
1973 ga = 1._wp/sqrt(1._wp - v2)
1975 h = 1._wp + (gamma + 1)*q_prim_vf(e_idx)%sf(
j,
k,
l)/rho
1978 do i = b_idx%beg, b_idx%end
1979 b2 = b2 + q_prim_vf(i)%sf(
j,
k,
l)**2
1981 if (n == 0) b2 = b2 + bx0**2
1985 vdotb = vdotb + q_prim_vf(momxb + i - 1)%sf(
j,
k,
l)*b(i)
1993 q_cons_vf(i)%sf(
j,
k,
l) = (rho*h*ga**2 + b2)*q_prim_vf(i)%sf(
j,
k,
l) &
1994 - vdotb*b(i - momxb + 1)
1997 q_cons_vf(e_idx)%sf(
j,
k,
l) = rho*h*ga**2 - q_prim_vf(e_idx)%sf(
j,
k,
l) &
1998 + 0.5_wp*(b2 + v2*b2 - vdotb**2)
2004 do i = b_idx%beg, b_idx%end
2025 q_prim_vf(i)%sf(
j,
k,
l)/2._wp
2029 do i = chemxb, chemxe
2030 ys(i - chemxb + 1) = q_prim_vf(i)%sf(
j,
k,
l)
2034 call get_mixture_molecular_weight(ys, mix_mol_weight)
2035 t = q_prim_vf(e_idx)%sf(
j,
k,
l)*mix_mol_weight/(gas_constant*rho)
2036 call get_mixture_energy_mass(t, ys, e_mix)
2039 dyn_pres + rho*e_mix
2044 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)
2046 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)
2049 gamma*q_prim_vf(e_idx)%sf(
j,
k,
l) + dyn_pres + pres_mag &
2051 elseif ((model_eqns /= 4) .and. (bubbles_euler .neqv. .true.))
then
2054 gamma*q_prim_vf(e_idx)%sf(
j,
k,
l) + dyn_pres + pi_inf + qv
2055 else if ((model_eqns /= 4) .and. (bubbles_euler))
then
2058 (1._wp - q_prim_vf(alf_idx)%sf(
j,
k,
l))* &
2059 (gamma*q_prim_vf(e_idx)%sf(
j,
k,
l) + pi_inf)
2067 if (model_eqns == 3)
then
2068 do i = 1, num_fluids
2076 if (bubbles_euler)
then
2079 rtmp(i) = q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l)
2082 if (.not. qbmm)
then
2085 nbub = q_prim_vf(n_idx)%sf(
j,
k,
l)
2087 call s_comp_n_from_prim(real(q_prim_vf(alf_idx)%sf(
j,
k,
l), kind=wp), rtmp, nbub, weight)
2093 r3tmp = r3tmp + weight(i)*0.5_wp*(rtmp(i) + sigr)**3._wp
2094 r3tmp = r3tmp + weight(i)*0.5_wp*(rtmp(i) - sigr)**3._wp
2097 nbub = 3._wp*q_prim_vf(alf_idx)%sf(
j,
k,
l)/(4._wp*pi*r3tmp)
2100 do i = bub_idx%beg, bub_idx%end
2106 do i = b_idx%beg, b_idx%end
2111 if (elasticity)
then
2119 if (hypoelasticity)
then
2120 if (cont_damage) g = g*max((1._wp - q_prim_vf(damage_idx)%sf(
j,
k,
l)), 0._wp)
2123 if (g > verysmall)
then
2125 (q_prim_vf(i)%sf(
j,
k,
l)**2._wp)/(4._wp*g)
2127 if (any(i == shear_indices))
then
2129 (q_prim_vf(i)%sf(
j,
k,
l)**2._wp)/(4._wp*g)
2136 if (hyperelasticity)
then
2143 if (surface_tension)
then
2147 if (cont_damage)
q_cons_vf(damage_idx)%sf(
j,
k,
l) = q_prim_vf(damage_idx)%sf(
j,
k,
l)
2149 if (hyper_cleaning)
q_cons_vf(psi_idx)%sf(
j,
k,
l) = q_prim_vf(psi_idx)%sf(
j,
k,
l)
2155 if (proc_rank == 0)
then
2156 call s_mpi_abort(
'Conversion from primitive to '// &
2157 'conservative variables not '// &
2158 'implemented. Exiting.')
2176 is1, is2, is3, s2b, s3b)
2178 integer,
intent(in) :: s2b, s3b
2179 real(wp),
dimension(0:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:),
intent(in) :: qk_prim_vf
2180 real(wp),
dimension(0:, idwbuff(2)%beg:, idwbuff(3)%beg:, 1:),
intent(inout) :: fk_vf
2181 real(wp),
dimension(0:, idwbuff(2)%beg:, idwbuff(3)%beg:, advxb:),
intent(inout) :: fk_src_vf
2183 type(int_bounds_info),
intent(in) :: is1, is2, is3
2188# 1200 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2189 real(wp),
dimension(num_fluids) :: alpha_rho_k
2190 real(wp),
dimension(num_fluids) :: alpha_k
2191 real(wp),
dimension(num_vels) :: vel_k
2192 real(wp),
dimension(num_species) :: y_k
2193# 1205 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2195 real(wp) :: vel_k_sum
2199 real(wp) :: pi_inf_k
2201 real(wp),
dimension(2) :: re_k
2203 real(wp) :: t_k, mix_mol_weight, r_gas
2205 integer :: i,
j,
k,
l
2212# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2213#if defined(MFC_OpenACC)
2214# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2216# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2217#elif defined(MFC_OpenMP)
2218# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2220# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2225#ifdef MFC_SIMULATION
2227# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2229# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2230#if defined(MFC_OpenACC)
2231# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2233# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2234#elif defined(MFC_OpenMP)
2235# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2237# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2239# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2241# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2243# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2245# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2252# 1232 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2253#if defined(MFC_OpenACC)
2254# 1232 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2256# 1232 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2257#elif defined(MFC_OpenMP)
2258# 1232 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2260# 1232 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2263 alpha_rho_k(i) = qk_prim_vf(
j,
k,
l, i)
2267# 1237 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2268#if defined(MFC_OpenACC)
2269# 1237 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2271# 1237 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2272#elif defined(MFC_OpenMP)
2273# 1237 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2275# 1237 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2278 alpha_k(i - e_idx) = qk_prim_vf(
j,
k,
l, i)
2282# 1242 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2283#if defined(MFC_OpenACC)
2284# 1242 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2286# 1242 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2287#elif defined(MFC_OpenMP)
2288# 1242 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2290# 1242 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2293 vel_k(i) = qk_prim_vf(
j,
k,
l, contxe + i)
2298# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2299#if defined(MFC_OpenACC)
2300# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2302# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2303#elif defined(MFC_OpenMP)
2304# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2306# 1248 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2309 vel_k_sum = vel_k_sum + vel_k(i)**2._wp
2312 pres_k = qk_prim_vf(
j,
k,
l, e_idx)
2313 if (elasticity)
then
2315 alpha_k, alpha_rho_k, re_k, &
2319 alpha_k, alpha_rho_k, re_k)
2326# 1266 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2327#if defined(MFC_OpenACC)
2328# 1266 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2330# 1266 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2331#elif defined(MFC_OpenMP)
2332# 1266 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2334# 1266 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2336 do i = chemxb, chemxe
2337 y_k(i - chemxb + 1) = qk_prim_vf(
j,
k,
l, i)
2340 call get_mixture_molecular_weight(y_k, mix_mol_weight)
2341 r_gas = gas_constant/mix_mol_weight
2342 t_k = pres_k/rho_k/r_gas
2343 call get_mixture_energy_mass(t_k, y_k, e_k)
2344 e_k = rho_k*e_k + 5.e-1_wp*rho_k*vel_k_sum
2347 e_k = gamma_k*pres_k + pi_inf_k &
2348 + 5.e-1_wp*rho_k*vel_k_sum + qv_k
2353# 1283 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2354#if defined(MFC_OpenACC)
2355# 1283 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2357# 1283 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2358#elif defined(MFC_OpenMP)
2359# 1283 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2361# 1283 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2364 fk_vf(
j,
k,
l, i) = alpha_rho_k(i)*vel_k(dir_idx(1))
2368# 1288 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2369#if defined(MFC_OpenACC)
2370# 1288 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2372# 1288 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2373#elif defined(MFC_OpenMP)
2374# 1288 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2376# 1288 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2379 fk_vf(
j,
k,
l, contxe + dir_idx(i)) = &
2380 rho_k*vel_k(dir_idx(1)) &
2381 *vel_k(dir_idx(i)) &
2382 + pres_k*dir_flg(dir_idx(i))
2386 fk_vf(
j,
k,
l, e_idx) = vel_k(dir_idx(1))*(e_k + pres_k)
2391# 1301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2392#if defined(MFC_OpenACC)
2393# 1301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2395# 1301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2396#elif defined(MFC_OpenMP)
2397# 1301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2399# 1301 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2401 do i = 1, num_species
2402 fk_vf(
j,
k,
l, i - 1 + chemxb) = vel_k(dir_idx(1))*(rho_k*y_k(i))
2406 if (riemann_solver == 1 .or. riemann_solver == 4)
then
2408# 1308 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2409#if defined(MFC_OpenACC)
2410# 1308 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2412# 1308 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2413#elif defined(MFC_OpenMP)
2414# 1308 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2416# 1308 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2419 fk_vf(
j,
k,
l, i) = 0._wp
2420 fk_src_vf(
j,
k,
l, i) = alpha_k(i - e_idx)
2426# 1316 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2427#if defined(MFC_OpenACC)
2428# 1316 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2430# 1316 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2431#elif defined(MFC_OpenMP)
2432# 1316 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2434# 1316 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2437 fk_vf(
j,
k,
l, i) = vel_k(dir_idx(1))*alpha_k(i - e_idx)
2441# 1321 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2442#if defined(MFC_OpenACC)
2443# 1321 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2445# 1321 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2446#elif defined(MFC_OpenMP)
2447# 1321 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2449# 1321 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2452 fk_src_vf(
j,
k,
l, i) = vel_k(dir_idx(1))
2461# 1331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2463# 1331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2464#if defined(MFC_OpenACC)
2465# 1331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2467# 1331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2468#elif defined(MFC_OpenMP)
2469# 1331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2471# 1331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2473# 1331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2475# 1331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2477# 1331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2485# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2487# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2489# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2491# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2493# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2495# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2497# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2499# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2501# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2503# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2505# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2507# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2509# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2511# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2513# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2515# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2517# 1337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2519# 1339 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2520 type(scalar_field),
dimension(sys_size),
intent(in) :: q_vf
2521 integer,
intent(in) ::
k,
l, r
2522# 1344 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2523 real(wp),
dimension(num_fluids),
intent(out) :: alpha_rho_k, alpha_k
2524# 1346 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2526 real(wp) :: alpha_k_sum
2528 if (num_fluids == 1)
then
2529 alpha_rho_k(1) = q_vf(contxb)%sf(
k,
l, r)
2530 if (igr .or. bubbles_euler)
then
2533 alpha_k(1) = q_vf(advxb)%sf(
k,
l, r)
2537 do i = 1, num_fluids - 1
2538 alpha_rho_k(i) = q_vf(i)%sf(
k,
l, r)
2539 alpha_k(i) = q_vf(advxb + i - 1)%sf(
k,
l, r)
2541 alpha_rho_k(num_fluids) = q_vf(num_fluids)%sf(
k,
l, r)
2542 alpha_k(num_fluids) = 1._wp - sum(alpha_k(1:num_fluids - 1))
2544 do i = 1, num_fluids
2545 alpha_rho_k(i) = q_vf(i)%sf(
k,
l, r)
2546 alpha_k(i) = q_vf(advxb + i - 1)%sf(
k,
l, r)
2553 do i = 1, num_fluids
2554 alpha_rho_k(i) = max(0._wp, alpha_rho_k(i))
2555 alpha_k(i) = min(max(0._wp, alpha_k(i)), 1._wp)
2556 alpha_k_sum = alpha_k_sum + alpha_k(i)
2558 alpha_k = alpha_k/max(alpha_k_sum, 1.e-16_wp)
2561 if (num_fluids == 1 .and. bubbles_euler) alpha_k(1) = q_vf(advxb)%sf(
k,
l, r)
2570#ifdef MFC_POST_PROCESS
2574#ifdef MFC_SIMULATION
2576# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2578# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2579 use iso_fortran_env,
only: output_unit
2580# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2582# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2583 print *,
'm_variables_conversion.fpp:1396: ',
'@:DEALLOCATE(gammas, gs_min, pi_infs, ps_inf, cvs, qvs, qvps, Gs_vc)'
2584# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2586# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2587 call flush (output_unit)
2588# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2590# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2592# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2594# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2595#if defined(MFC_OpenACC)
2596# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2598# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2599#elif defined(MFC_OpenMP)
2600# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2602# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2604# 1396 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2606 if (bubbles_euler)
then
2608# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2610# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2611 use iso_fortran_env,
only: output_unit
2612# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2614# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2615 print *,
'm_variables_conversion.fpp:1398: ',
'@:DEALLOCATE(bubrs_vc)'
2616# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2618# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2619 call flush (output_unit)
2620# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2622# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2624# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2626# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2627#if defined(MFC_OpenACC)
2628# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2630# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2631#elif defined(MFC_OpenMP)
2632# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2634# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2636# 1398 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2641# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2643# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2644 use iso_fortran_env,
only: output_unit
2645# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2647# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2648 print *,
'm_variables_conversion.fpp:1401: ',
'@:DEALLOCATE(gammas, gs_min, pi_infs, ps_inf, cvs, qvs, qvps, Gs_vc)'
2649# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2651# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2652 call flush (output_unit)
2653# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2655# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2657# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2659# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2660#if defined(MFC_OpenACC)
2661# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2663# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2664#elif defined(MFC_OpenMP)
2665# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2667# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2669# 1401 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2671 if (bubbles_euler)
then
2673# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2675# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2676 use iso_fortran_env,
only: output_unit
2677# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2679# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2680 print *,
'm_variables_conversion.fpp:1403: ',
'@:DEALLOCATE(bubrs_vc)'
2681# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2683# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2684 call flush (output_unit)
2685# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2687# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2689# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2691# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2692#if defined(MFC_OpenACC)
2693# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2695# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2696#elif defined(MFC_OpenMP)
2697# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2699# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2701# 1403 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2708#ifndef MFC_PRE_PROCESS
2712# 1412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2714# 1412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2716# 1412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2718# 1412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2720# 1412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2722# 1412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2724# 1412 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2727 real(wp),
intent(in) :: pres
2728 real(wp),
intent(in) :: rho, gamma, pi_inf, qv
2729 real(wp),
intent(in) :: H
2730# 1420 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2731 real(wp),
dimension(num_fluids),
intent(in) :: adv
2732# 1422 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2733 real(wp),
intent(in) :: vel_sum
2734 real(wp),
intent(in) :: c_c
2735 real(wp),
intent(out) :: c
2737 real(wp) :: blkmod1, blkmod2
2742 if (avg_state == 1 .and. abs(c_c) > verysmall)
then
2743 c = sqrt(c_c - (gamma - 1.0_wp)*(vel_sum - h))
2745 c = sqrt((1.0_wp + 1.0_wp/gamma)*pres/rho)
2747 elseif (relativity)
then
2749 c = sqrt((1._wp + 1._wp/gamma)*pres/rho/h)
2751 if (alt_soundspeed)
then
2752 blkmod1 = ((
gammas(1) + 1._wp)*pres + &
2754 blkmod2 = ((
gammas(2) + 1._wp)*pres + &
2756 c = (1._wp/(rho*(adv(1)/blkmod1 + adv(2)/blkmod2)))
2757 elseif (model_eqns == 3)
then
2760# 1448 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2761#if defined(MFC_OpenACC)
2762# 1448 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2764# 1448 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2765#elif defined(MFC_OpenMP)
2766# 1448 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2768# 1448 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2770 do q = 1, num_fluids
2771 c = c + adv(q)*
gs_min(q)* &
2775 elseif (((model_eqns == 4) .or. (model_eqns == 2 .and. bubbles_euler)))
then
2778 if (mpp_lim .and. (num_fluids > 1))
then
2779 c = (1._wp/gamma + 1._wp)* &
2780 (pres + pi_inf/(gamma + 1._wp))/rho
2783 (1._wp/gamma + 1._wp)* &
2784 (pres + pi_inf/(gamma + 1._wp))/ &
2785 (rho*(1._wp - adv(num_fluids)))
2788 c = (h - 5.e-1*vel_sum - qv/rho)/gamma
2791 if (mixture_err .and. c < 0._wp)
then
2800#ifndef MFC_PRE_PROCESS
2804# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2806# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2808# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2810# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2812# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2814# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2816# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2818# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2820# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2822# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2824# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2826# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2828# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2830# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2832# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2834# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2836# 1482 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2838# 1484 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2840 real(wp),
intent(in) :: B(3), rho, c
2841 real(wp),
intent(in) :: h
2842 real(wp),
intent(out) :: c_fast
2843 integer,
intent(in) :: norm
2845 real(wp) :: B2, term, disc
2849 if (.not. relativity)
then
2850 term = c**2 + b2/rho
2851 disc = term**2 - 4*c**2*(b(norm)**2/rho)
2854 term = (c**2*(b(norm)**2 + rho*h) + b2)/(rho*h + b2)
2855 disc = term**2 - 4*c**2*b(norm)**2/(rho*h + b2)
2859 if (disc < 0._wp)
then
2860 print *,
'rho, c, Bx, By, Bz, h, term, disc:', rho, c, b(1), b(2), b(3), h, term, disc
2861 call s_mpi_abort(
'Error: negative discriminant in s_compute_fast_magnetosonic_speed')
2865 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).