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# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 244 "/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# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 377 "/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# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 311 "/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
227# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
230# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
233# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
236# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
239# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
283# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
286# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
288# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
293# 57 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
296# 77 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
299# 85 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
302# 109 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
305# 125 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
308# 150 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
310# 156 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
312# 163 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314# 6 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp" 2
315# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
321# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
324# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
325# 7 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp" 2
335 use m_thermochem,
only: num_species, get_temperature, get_pressure, gas_constant, get_mixture_molecular_weight, &
336 & get_mixture_energy_mass
353#ifndef MFC_PRE_PROCESS
360#ifndef MFC_SIMULATION
363# 43 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
364#if defined(MFC_OpenACC)
365# 43 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
367# 43 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
368#elif defined(MFC_OpenMP)
369# 43 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
371# 43 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
375 real(wp),
allocatable,
dimension(:) ::
gs_vc
377 real(wp),
allocatable,
dimension(:,:) ::
res_vc
379# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
380#if defined(MFC_OpenACC)
381# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
383# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
384#elif defined(MFC_OpenMP)
385# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
387# 49 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
392# 52 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
393#if defined(MFC_OpenACC)
394# 52 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
396# 52 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
397#elif defined(MFC_OpenMP)
398# 52 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
400# 52 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
403 real(wp),
allocatable,
dimension(:,:,:),
public ::
rho_sf
404 real(wp),
allocatable,
dimension(:,:,:),
public ::
gamma_sf
405 real(wp),
allocatable,
dimension(:,:,:),
public ::
pi_inf_sf
406 real(wp),
allocatable,
dimension(:,:,:),
public ::
qv_sf
412 subroutine s_convert_to_mixture_variables(q_vf, i, j, k, rho, gamma, pi_inf, qv, Re_K, G_K, G)
414 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_vf
415 integer,
intent(in) :: i,
j,
k
416 real(wp),
intent(out),
target :: rho, gamma, pi_inf, qv
417 real(wp),
optional,
dimension(2),
intent(out) :: re_k
418 real(wp),
optional,
intent(out) :: g_k
419 real(wp),
optional,
dimension(num_fluids),
intent(in) :: g
424 call s_convert_species_to_mixture_variables(q_vf, i,
j,
k, rho, gamma, pi_inf, qv, re_k, g_k, g)
430 subroutine s_compute_pressure(energy, alf, dyn_p, pi_inf, gamma, rho, qv, rhoYks, pres, T, stress, mom, G, pres_mag)
433# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
435# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
437# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
439# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
441# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
443# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
445# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
447# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
449# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
451# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
453# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
455# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
457# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
459# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
461# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
463# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
465# 83 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
468 real(stp),
intent(in) :: energy, alf
469 real(wp),
intent(in) :: dyn_p
470 real(wp),
intent(in) :: pi_inf, gamma, rho, qv
471 real(wp),
intent(out) :: pres
472 real(wp),
intent(inout) :: t
473 real(stp),
intent(in),
optional :: stress, mom
474 real(wp),
intent(in),
optional :: g, pres_mag
477 real(wp),
dimension(1:num_species),
intent(in) :: rhoyks
478 real(wp),
dimension(1:num_species) :: y_rs
480 real(wp) :: e_per_kg, pdyn_per_kg
483# 101 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
489 pres = (energy - dyn_p - pi_inf - qv - pres_mag)/gamma
492 pres = (energy - dyn_p - pi_inf - qv)/gamma
495 pres = ((energy - dyn_p)/(1._wp - alf) - pi_inf - qv)/gamma
498 pres = (
pref + pi_inf)*(energy/(
rhoref*(1 - alf)))**(1/gamma + 1) - pi_inf
506 e_e = e_e + ((stress/rho)**2._wp)/(4._wp*g)
509 e_e = e_e + ((stress/rho)**2._wp)/(4._wp*g)
514 pres = (energy - 0.5_wp*(mom**2._wp)/rho - pi_inf - qv - e_e)/gamma
516# 144 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
525 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_vf
526 integer,
intent(in) :: i,
j,
k
527 real(wp),
intent(out),
target :: rho
528 real(wp),
intent(out),
target :: gamma
529 real(wp),
intent(out),
target :: pi_inf
530 real(wp),
intent(out),
target :: qv
534 rho = q_vf(1)%sf(i,
j,
k)
540#ifdef MFC_POST_PROCESS
552 subroutine s_convert_species_to_mixture_variables(q_vf, k, l, r, rho, gamma, pi_inf, qv, Re_K, G_K, G)
554 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_vf
555 integer,
intent(in) ::
k,
l, r
556 real(wp),
intent(out),
target :: rho
557 real(wp),
intent(out),
target :: gamma
558 real(wp),
intent(out),
target :: pi_inf
559 real(wp),
intent(out),
target :: qv
560 real(wp),
optional,
dimension(2),
intent(out) :: re_k
561 real(wp),
optional,
intent(out) :: g_k
562 real(wp),
dimension(num_fluids) :: alpha_rho_k, alpha_k
563 real(wp),
optional,
dimension(num_fluids),
intent(in) :: g
577 rho = 0._wp; gamma = 0._wp; pi_inf = 0._wp; qv = 0._wp
579 rho = rho + alpha_rho_k(i)
580 gamma = gamma + alpha_k(i)*
gammas(i)
581 pi_inf = pi_inf + alpha_k(i)*
pi_infs(i)
582 qv = qv + alpha_rho_k(i)*
qvs(i)
590 re_k(i) = dflt_real;
if (re_size(i) > 0) re_k(i) = 0._wp
593 re_k(i) = alpha_k(re_idx(i,
j))/
fluid_pp(re_idx(i,
j))%Re(i) + re_k(i)
596 re_k(i) = 1._wp/max(re_k(i), sgm_eps)
601 if (
present(g_k))
then
604 g_k = g_k + alpha_k(i)*g(i)
606 g_k = max(0._wp, g_k)
610#ifdef MFC_POST_PROCESS
623# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
625# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
627# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
629# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
631# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
633# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
635# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
637# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
639# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
641# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
643# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
645# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
647# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
649# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
651# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
653# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
655# 249 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
658 real(wp),
intent(out) :: rho_k, gamma_k, pi_inf_k, qv_k
659# 256 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
660 real(wp),
dimension(num_fluids),
intent(inout) :: alpha_rho_k, alpha_k
661 real(wp),
optional,
dimension(num_fluids),
intent(in) :: g
662# 259 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
663 real(wp),
dimension(2),
intent(out) :: re_k
664 real(wp),
optional,
intent(out) :: g_k
665 real(wp) :: alpha_k_sum
670 rho_k = alpha_rho_k(1)
678 alpha_rho_k(i) = max(0._wp, alpha_rho_k(i))
679 alpha_k(i) = min(max(0._wp, alpha_k(i)), 1._wp)
680 alpha_k_sum = alpha_k_sum + alpha_k(i)
682 alpha_k = alpha_k/max(alpha_k_sum, sgm_eps)
684 rho_k = 0._wp; gamma_k = 0._wp; pi_inf_k = 0._wp; qv_k = 0._wp
686 rho_k = rho_k + alpha_rho_k(i)
687 gamma_k = gamma_k + alpha_k(i)*
gammas(i)
688 pi_inf_k = pi_inf_k + alpha_k(i)*
pi_infs(i)
689 qv_k = qv_k + alpha_rho_k(i)*
qvs(i)
693 if (
present(g_k))
then
697 g_k = g_k + alpha_k(i)*g(i)
699 g_k = max(0._wp, g_k)
706 if (re_size(i) > 0) re_k(i) = 0._wp
709 re_k(i) = alpha_k(re_idx(i,
j))/
res_vc(i,
j) + re_k(i)
712 re_k(i) = 1._wp/max(re_k(i), sgm_eps)
725# 320 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
726#if defined(MFC_OpenACC)
727# 320 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
729# 320 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
730#elif defined(MFC_OpenMP)
731# 320 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
733# 320 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
737# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
739# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
740 use iso_fortran_env,
only: output_unit
741# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
743# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
744 print *,
'm_variables_conversion.fpp:322: ',
'@:ALLOCATE(gammas (1:num_fluids))'
745# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
747# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
748 call flush (output_unit)
749# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
751# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
753# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
755# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
757# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
759# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
760#if defined(MFC_OpenACC)
761# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
763# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
764#elif defined(MFC_OpenMP)
765# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
767# 322 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
770# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
772# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
773 use iso_fortran_env,
only: output_unit
774# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
776# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
777 print *,
'm_variables_conversion.fpp:323: ',
'@:ALLOCATE(gs_min (1:num_fluids))'
778# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
780# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
781 call flush (output_unit)
782# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
784# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
786# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
787 allocate (
gs_min(1:num_fluids))
788# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
790# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
792# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
793#if defined(MFC_OpenACC)
794# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
796# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
797#elif defined(MFC_OpenMP)
798# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
800# 323 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
803# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
805# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
806 use iso_fortran_env,
only: output_unit
807# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
809# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
810 print *,
'm_variables_conversion.fpp:324: ',
'@:ALLOCATE(pi_infs(1:num_fluids))'
811# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
813# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
814 call flush (output_unit)
815# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
817# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
819# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
820 allocate (
pi_infs(1:num_fluids))
821# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
823# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
825# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
826#if defined(MFC_OpenACC)
827# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
829# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
830#elif defined(MFC_OpenMP)
831# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
833# 324 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
836# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
838# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
839 use iso_fortran_env,
only: output_unit
840# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
842# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
843 print *,
'm_variables_conversion.fpp:325: ',
'@:ALLOCATE(ps_inf(1:num_fluids))'
844# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
846# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
847 call flush (output_unit)
848# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
850# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
852# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
853 allocate (
ps_inf(1:num_fluids))
854# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
856# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
858# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
859#if defined(MFC_OpenACC)
860# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
862# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
863#elif defined(MFC_OpenMP)
864# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
866# 325 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
869# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
871# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
872 use iso_fortran_env,
only: output_unit
873# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
875# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
876 print *,
'm_variables_conversion.fpp:326: ',
'@:ALLOCATE(cvs (1:num_fluids))'
877# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
879# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
880 call flush (output_unit)
881# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
883# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
885# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
886 allocate (
cvs(1:num_fluids))
887# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
889# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
891# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
892#if defined(MFC_OpenACC)
893# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
895# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
896#elif defined(MFC_OpenMP)
897# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
899# 326 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
902# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
904# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
905 use iso_fortran_env,
only: output_unit
906# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
908# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
909 print *,
'm_variables_conversion.fpp:327: ',
'@:ALLOCATE(qvs (1:num_fluids))'
910# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
912# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
913 call flush (output_unit)
914# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
916# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
918# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
919 allocate (
qvs(1:num_fluids))
920# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
922# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
924# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
925#if defined(MFC_OpenACC)
926# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
928# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
929#elif defined(MFC_OpenMP)
930# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
932# 327 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
935# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
937# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
938 use iso_fortran_env,
only: output_unit
939# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
941# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
942 print *,
'm_variables_conversion.fpp:328: ',
'@:ALLOCATE(qvps (1:num_fluids))'
943# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
945# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
946 call flush (output_unit)
947# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
949# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
951# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
952 allocate (
qvps(1:num_fluids))
953# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
955# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
957# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
958#if defined(MFC_OpenACC)
959# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
961# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
962#elif defined(MFC_OpenMP)
963# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
965# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
968# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
970# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
971 use iso_fortran_env,
only: output_unit
972# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
974# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
975 print *,
'm_variables_conversion.fpp:329: ',
'@:ALLOCATE(Gs_vc (1:num_fluids))'
976# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
978# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
979 call flush (output_unit)
980# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
982# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
984# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
985 allocate (
gs_vc(1:num_fluids))
986# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
988# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
990# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
991#if defined(MFC_OpenACC)
992# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
994# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
995#elif defined(MFC_OpenMP)
996# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
998# 329 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1001 do i = 1, num_fluids
1002 gammas(i) = fluid_pp(i)%gamma
1004 pi_infs(i) = fluid_pp(i)%pi_inf
1005 gs_vc(i) = fluid_pp(i)%G
1007 cvs(i) = fluid_pp(i)%cv
1008 qvs(i) = fluid_pp(i)%qv
1009 qvps(i) = fluid_pp(i)%qvp
1012# 341 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1013#if defined(MFC_OpenACC)
1014# 341 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1016# 341 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1017#elif defined(MFC_OpenMP)
1018# 341 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1020# 341 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1023#ifdef MFC_SIMULATION
1026# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1028# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1029 use iso_fortran_env,
only: output_unit
1030# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1032# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1033 print *,
'm_variables_conversion.fpp:345: ',
'@:ALLOCATE(Res_vc(1:2, 1:Re_size_max))'
1034# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1036# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1037 call flush (output_unit)
1038# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1040# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1042# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1043 allocate (
res_vc(1:2, 1:re_size_max))
1044# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1046# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1048# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1049#if defined(MFC_OpenACC)
1050# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1052# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1053#elif defined(MFC_OpenMP)
1054# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1056# 345 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1059 do j = 1, re_size(i)
1060 res_vc(i,
j) = fluid_pp(re_idx(i,
j))%Re(i)
1065# 352 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1066#if defined(MFC_OpenACC)
1067# 352 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1069# 352 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1070#elif defined(MFC_OpenMP)
1071# 352 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1073# 352 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1078 if (bubbles_euler)
then
1080# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1082# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1083 use iso_fortran_env,
only: output_unit
1084# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1086# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1087 print *,
'm_variables_conversion.fpp:357: ',
'@:ALLOCATE(bubrs_vc(1:nb))'
1088# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1090# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1091 call flush (output_unit)
1092# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1094# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1096# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1098# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1100# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1102# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1103#if defined(MFC_OpenACC)
1104# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1106# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1107#elif defined(MFC_OpenMP)
1108# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1110# 357 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1116# 361 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1117#if defined(MFC_OpenACC)
1118# 361 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1120# 361 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1121#elif defined(MFC_OpenMP)
1122# 361 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1124# 361 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1128#ifdef MFC_POST_PROCESS
1135 allocate (
rho_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
1136 allocate (
gamma_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
1137 allocate (
pi_inf_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
1138 allocate (
qv_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
1142 allocate (
rho_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
1143 allocate (
gamma_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
1144 allocate (
pi_inf_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
1145 allocate (
qv_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
1150 allocate (
rho_sf(-buff_size:m + buff_size,0:0,0:0))
1151 allocate (
gamma_sf(-buff_size:m + buff_size,0:0,0:0))
1152 allocate (
pi_inf_sf(-buff_size:m + buff_size,0:0,0:0))
1153 allocate (
qv_sf(-buff_size:m + buff_size,0:0,0:0))
1162 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1163 real(stp),
dimension(idwint(1)%beg:,idwint(2)%beg:,idwint(3)%beg:,1:,1:),
intent(inout) :: mv
1164 integer :: i,
j,
k,
l
1165 real(wp) :: mu, sig, nbub_sc
1167 do l = idwint(3)%beg, idwint(3)%end
1168 do k = idwint(2)%beg, idwint(2)%end
1169 do j = idwint(1)%beg, idwint(1)%end
1170 nbub_sc = qk_cons_vf(bubxb)%sf(
j,
k,
l)
1173# 408 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1174#if defined(MFC_OpenACC)
1175# 408 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1177# 408 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1178#elif defined(MFC_OpenMP)
1179# 408 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1181# 408 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1184 mu = qk_cons_vf(bubxb + 1 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc
1185 sig = (qk_cons_vf(bubxb + 3 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc - mu**2)**0.5_wp
1187 mv(
j,
k,
l, 1, i) = (mass_v0(i))*(mu - sig)**(3._wp)/(r0(i)**(3._wp))
1188 mv(
j,
k,
l, 2, i) = (mass_v0(i))*(mu - sig)**(3._wp)/(r0(i)**(3._wp))
1189 mv(
j,
k,
l, 3, i) = (mass_v0(i))*(mu + sig)**(3._wp)/(r0(i)**(3._wp))
1190 mv(
j,
k,
l, 4, i) = (mass_v0(i))*(mu + sig)**(3._wp)/(r0(i)**(3._wp))
1201 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1202 real(stp),
dimension(idwint(1)%beg:,idwint(2)%beg:,idwint(3)%beg:,1:,1:),
intent(in) :: mv
1203 real(stp),
dimension(idwint(1)%beg:,idwint(2)%beg:,idwint(3)%beg:,1:,1:),
intent(inout) :: pb
1204 integer :: i,
j,
k,
l
1205 real(wp) :: mu, sig, nbub_sc
1207 do l = idwint(3)%beg, idwint(3)%end
1208 do k = idwint(2)%beg, idwint(2)%end
1209 do j = idwint(1)%beg, idwint(1)%end
1210 nbub_sc = qk_cons_vf(bubxb)%sf(
j,
k,
l)
1213# 438 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1214#if defined(MFC_OpenACC)
1215# 438 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1217# 438 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1218#elif defined(MFC_OpenMP)
1219# 438 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1221# 438 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1224 mu = qk_cons_vf(bubxb + 1 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc
1225 sig = (qk_cons_vf(bubxb + 3 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc - mu**2)**0.5_wp
1228 pb(
j,
k,
l, 1, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 1, &
1229 & i))/(mu - sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1230 pb(
j,
k,
l, 2, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 2, &
1231 & i))/(mu - sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1232 pb(
j,
k,
l, 3, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 3, &
1233 & i))/(mu + sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1234 pb(
j,
k,
l, 4, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 4, &
1235 & i))/(mu + sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1247 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1248 type(scalar_field),
intent(inout) :: q_t_sf
1249 type(scalar_field),
dimension(sys_size),
intent(inout) :: qk_prim_vf
1250 type(int_bounds_info),
dimension(1:3),
intent(in) :: ibounds
1252# 473 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1253 real(wp),
dimension(num_fluids) :: alpha_k, alpha_rho_k
1254 real(wp),
dimension(nb) :: nrtmp
1255 real(wp) :: rhoyks(1:num_species)
1256# 477 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1257 real(wp),
dimension(2) :: re_k
1258 real(wp) :: rho_k, gamma_k, pi_inf_k, qv_k, dyn_pres_k
1259 real(wp) :: vftmp, nbub_sc
1262 integer :: i,
j,
k,
l
1264 real(wp) :: pres_mag
1272 real(wp) :: f, dga_dw, dp_dw, df_dw
1276# 495 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1278# 495 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1279#if defined(MFC_OpenACC)
1280# 495 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1282# 495 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1283#elif defined(MFC_OpenMP)
1284# 495 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1286# 495 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1288# 495 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1290# 495 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1292# 495 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1294# 498 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1295 do l = ibounds(3)%beg, ibounds(3)%end
1296 do k = ibounds(2)%beg, ibounds(2)%end
1297 do j = ibounds(1)%beg, ibounds(1)%end
1302 if (model_eqns /= 4)
then
1303#ifdef MFC_SIMULATION
1305 if (elasticity)
then
1314 if (elasticity)
then
1315 call s_convert_to_mixture_variables(qk_cons_vf,
j,
k,
l, rho_k, gamma_k, pi_inf_k, qv_k, re_k, g_k, &
1324 if (relativity)
then
1327 b(2) = qk_cons_vf(b_idx%beg)%sf(
j,
k,
l)
1328 b(3) = qk_cons_vf(b_idx%beg + 1)%sf(
j,
k,
l)
1330 b(1) = qk_cons_vf(b_idx%beg)%sf(
j,
k,
l)
1331 b(2) = qk_cons_vf(b_idx%beg + 1)%sf(
j,
k,
l)
1332 b(3) = qk_cons_vf(b_idx%beg + 2)%sf(
j,
k,
l)
1334 b2 = b(1)**2 + b(2)**2 + b(3)**2
1338# 540 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1339#if defined(MFC_OpenACC)
1340# 540 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1342# 540 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1343#elif defined(MFC_OpenMP)
1344# 540 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1346# 540 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1349 m2 = m2 + qk_cons_vf(i)%sf(
j,
k,
l)**2
1354# 546 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1355#if defined(MFC_OpenACC)
1356# 546 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1358# 546 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1359#elif defined(MFC_OpenMP)
1360# 546 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1362# 546 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1365 s = s + qk_cons_vf(momxb + i - 1)%sf(
j,
k,
l)*b(i)
1368 e = qk_cons_vf(e_idx)%sf(
j,
k,
l)
1372# 554 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1373#if defined(MFC_OpenACC)
1374# 554 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1376# 554 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1377#elif defined(MFC_OpenMP)
1378# 554 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1380# 554 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1383 d = d + qk_cons_vf(i)%sf(
j,
k,
l)
1389# 561 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1390#if defined(MFC_OpenACC)
1391# 561 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1393# 561 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1394#elif defined(MFC_OpenMP)
1395# 561 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1397# 561 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1399 do iter = 1, relativity_cons_to_prim_max_iter
1401 ga = (w + b2)*w/sqrt((w + b2)**2*w**2 - (m2*w**2 + s**2*(2*w + b2)))
1403 pres = (w - d*ga)/((gamma_k + 1)*ga**2)
1404 f = w - pres + (1 - 1/(2*ga**2))*b2 - s**2/(2*w**2) - e - d
1410 dga_dw = -ga**3*(2*s**2*(3*w**2 + 3*w*b2 + b2**2) + m2*w**2)/(2*w**3*(w + b2)**3)
1412 dp_dw = (ga*(1 + d*dga_dw) - 2*w*dga_dw)/((gamma_k + 1)*ga**3)
1413 df_dw = 1 - dp_dw + (b2/ga**3)*dga_dw + s**2/w**3
1417 if (abs(dw) < 1.e-12_wp*w)
exit
1421 ga = (w + b2)*w/sqrt((w + b2)**2*w**2 - (m2*w**2 + s**2*(2*w + b2)))
1422 qk_prim_vf(e_idx)%sf(
j,
k,
l) = (w - d*ga)/((gamma_k + 1)*ga**2)
1426# 588 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1427#if defined(MFC_OpenACC)
1428# 588 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1430# 588 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1431#elif defined(MFC_OpenMP)
1432# 588 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1434# 588 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1437 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)
1439 qk_prim_vf(1)%sf(
j,
k,
l) = d/ga
1442# 594 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1443#if defined(MFC_OpenACC)
1444# 594 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1446# 594 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1447#elif defined(MFC_OpenMP)
1448# 594 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1450# 594 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1452 do i = b_idx%beg, b_idx%end
1453 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1463# 605 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1464#if defined(MFC_OpenACC)
1465# 605 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1467# 605 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1468#elif defined(MFC_OpenMP)
1469# 605 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1471# 605 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1473 do i = chemxb, chemxe
1474 rho_k = rho_k + max(0._wp, qk_cons_vf(i)%sf(
j,
k,
l))
1478# 610 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1479#if defined(MFC_OpenACC)
1480# 610 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1482# 610 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1483#elif defined(MFC_OpenMP)
1484# 610 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1486# 610 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1489 qk_prim_vf(i)%sf(
j,
k,
l) = rho_k
1493# 615 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1494#if defined(MFC_OpenACC)
1495# 615 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1497# 615 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1498#elif defined(MFC_OpenMP)
1499# 615 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1501# 615 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1503 do i = chemxb, chemxe
1504 qk_prim_vf(i)%sf(
j,
k,
l) = max(0._wp, qk_cons_vf(i)%sf(
j,
k,
l)/rho_k)
1509# 621 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1510#if defined(MFC_OpenACC)
1511# 621 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1513# 621 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1514#elif defined(MFC_OpenMP)
1515# 621 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1517# 621 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1520 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1524#ifdef MFC_SIMULATION
1525 rho_k = max(rho_k, sgm_eps)
1530# 632 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1531#if defined(MFC_OpenACC)
1532# 632 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1534# 632 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1535#elif defined(MFC_OpenMP)
1536# 632 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1538# 632 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1541 if (model_eqns /= 4)
then
1542 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/rho_k
1543 dyn_pres_k = dyn_pres_k + 5.e-1_wp*qk_cons_vf(i)%sf(
j,
k,
l)*qk_prim_vf(i)%sf(
j,
k,
l)
1546 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/qk_cons_vf(1)%sf(
j,
k,
l)
1552# 644 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1553#if defined(MFC_OpenACC)
1554# 644 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1556# 644 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1557#elif defined(MFC_OpenMP)
1558# 644 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1560# 644 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1562 do i = 1, num_species
1563 rhoyks(i) = qk_cons_vf(chemxb + i - 1)%sf(
j,
k,
l)
1566 t = q_t_sf%sf(
j,
k,
l)
1571 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, &
1574 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, &
1575 &
l)**2 + qk_cons_vf(b_idx%beg + 2)%sf(
j,
k,
l)**2)
1582 & gamma_k, rho_k, qv_k, rhoyks, pres, t, pres_mag=pres_mag)
1584 qk_prim_vf(e_idx)%sf(
j,
k,
l) = pres
1587 q_t_sf%sf(
j,
k,
l) = t
1590 if (bubbles_euler)
then
1593# 675 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1594#if defined(MFC_OpenACC)
1595# 675 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1597# 675 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1598#elif defined(MFC_OpenMP)
1599# 675 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1601# 675 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1607 vftmp = qk_cons_vf(alf_idx)%sf(
j,
k,
l)
1611 nbub_sc = qk_cons_vf(bubxb)%sf(
j,
k,
l)
1615# 687 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1616#if defined(MFC_OpenACC)
1617# 687 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1619# 687 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1620#elif defined(MFC_OpenMP)
1621# 687 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1623# 687 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1626 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/nbub_sc
1629#ifdef MFC_SIMULATION
1630 qk_prim_vf(bubxb)%sf(
j,
k,
l) = qk_cons_vf(bubxb)%sf(
j,
k,
l)
1634 qk_prim_vf(n_idx)%sf(
j,
k,
l) = qk_cons_vf(n_idx)%sf(
j,
k,
l)
1635 nbub_sc = qk_prim_vf(n_idx)%sf(
j,
k,
l)
1637 call s_comp_n_from_cons(vftmp, nrtmp, nbub_sc, weight)
1641# 703 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1642#if defined(MFC_OpenACC)
1643# 703 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1645# 703 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1646#elif defined(MFC_OpenMP)
1647# 703 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1649# 703 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1652 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/nbub_sc
1659# 711 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1660#if defined(MFC_OpenACC)
1661# 711 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1663# 711 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1664#elif defined(MFC_OpenMP)
1665# 711 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1667# 711 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1669 do i = b_idx%beg, b_idx%end
1670 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1674 if (elasticity)
then
1676# 718 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1677#if defined(MFC_OpenACC)
1678# 718 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1680# 718 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1681#elif defined(MFC_OpenMP)
1682# 718 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1684# 718 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1687 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/rho_k
1691 if (hypoelasticity)
then
1692 if (cont_damage) g_k = g_k*max((1._wp - qk_cons_vf(damage_idx)%sf(
j,
k,
l)), 0._wp)
1694# 726 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1695#if defined(MFC_OpenACC)
1696# 726 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1698# 726 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1699#elif defined(MFC_OpenMP)
1700# 726 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1702# 726 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1706 if (g_k > verysmall)
then
1707 qk_prim_vf(e_idx)%sf(
j,
k,
l) = qk_prim_vf(e_idx)%sf(
j,
k,
l) - ((qk_prim_vf(i)%sf(
j,
k, &
1708 &
l)**2._wp)/(4._wp*g_k))/gamma_k
1710 if (any(i == shear_indices))
then
1711 qk_prim_vf(e_idx)%sf(
j,
k,
l) = qk_prim_vf(e_idx)%sf(
j,
k,
l) - ((qk_prim_vf(i)%sf(
j,
k, &
1712 &
l)**2._wp)/(4._wp*g_k))/gamma_k
1718 if (hyperelasticity)
then
1720# 742 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1721#if defined(MFC_OpenACC)
1722# 742 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1724# 742 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1725#elif defined(MFC_OpenMP)
1726# 742 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1728# 742 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1731 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/rho_k
1735 if (.not. igr .or. num_fluids > 1)
then
1737# 749 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1738#if defined(MFC_OpenACC)
1739# 749 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1741# 749 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1742#elif defined(MFC_OpenMP)
1743# 749 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1745# 749 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1748 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1752 if (surface_tension)
then
1753 qk_prim_vf(c_idx)%sf(
j,
k,
l) = qk_cons_vf(c_idx)%sf(
j,
k,
l)
1756 if (cont_damage) qk_prim_vf(damage_idx)%sf(
j,
k,
l) = qk_cons_vf(damage_idx)%sf(
j,
k,
l)
1758 if (hyper_cleaning) qk_prim_vf(psi_idx)%sf(
j,
k,
l) = qk_cons_vf(psi_idx)%sf(
j,
k,
l)
1759#ifdef MFC_POST_PROCESS
1760 if (bubbles_lagrange) qk_prim_vf(beta_idx)%sf(
j,
k,
l) = qk_cons_vf(beta_idx)%sf(
j,
k,
l)
1766# 768 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1767#if defined(MFC_OpenACC)
1768# 768 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1770# 768 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1771#elif defined(MFC_OpenMP)
1772# 768 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1774# 768 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1776# 768 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1784 type(scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
1785 type(scalar_field),
dimension(sys_size),
intent(inout) ::
q_cons_vf
1793 real(wp) :: dyn_pres
1794 real(wp) :: nbub, r3tmp
1795 real(wp),
dimension(nb) :: rtmp
1797 real(wp),
dimension(2) :: re_k
1798 integer :: i,
j,
k,
l
1799 real(wp),
dimension(num_species) :: ys
1800 real(wp) :: e_mix, mix_mol_weight, t
1801 real(wp) :: pres_mag
1813#ifndef MFC_SIMULATION
1819 call s_convert_to_mixture_variables(q_prim_vf,
j,
k,
l, rho, gamma, pi_inf, qv, re_k, g, fluid_pp(:)%G)
1821 if (.not. igr .or. num_fluids > 1)
then
1823 do i = adv_idx%beg, adv_idx%end
1828 if (relativity)
then
1831 b(2) = q_prim_vf(b_idx%beg)%sf(
j,
k,
l)
1832 b(3) = q_prim_vf(b_idx%beg + 1)%sf(
j,
k,
l)
1834 b(1) = q_prim_vf(b_idx%beg)%sf(
j,
k,
l)
1835 b(2) = q_prim_vf(b_idx%beg + 1)%sf(
j,
k,
l)
1836 b(3) = q_prim_vf(b_idx%beg + 2)%sf(
j,
k,
l)
1841 v2 = v2 + q_prim_vf(i)%sf(
j,
k,
l)**2
1843 if (v2 >= 1._wp)
call s_mpi_abort(
'Error: v squared > 1 in s_convert_primitive_to_conservative_variables')
1845 ga = 1._wp/sqrt(1._wp - v2)
1847 h = 1._wp + (gamma + 1)*q_prim_vf(e_idx)%sf(
j,
k,
l)/rho
1850 do i = b_idx%beg, b_idx%end
1851 b2 = b2 + q_prim_vf(i)%sf(
j,
k,
l)**2
1853 if (n == 0) b2 = b2 + bx0**2
1857 vdotb = vdotb + q_prim_vf(momxb + i - 1)%sf(
j,
k,
l)*b(i)
1865 q_cons_vf(i)%sf(
j,
k,
l) = (rho*h*ga**2 + b2)*q_prim_vf(i)%sf(
j,
k,
l) - vdotb*b(i - momxb + 1)
1868 q_cons_vf(e_idx)%sf(
j,
k,
l) = rho*h*ga**2 - q_prim_vf(e_idx)%sf(
j,
k,
l) + 0.5_wp*(b2 + v2*b2 - vdotb**2)
1874 do i = b_idx%beg, b_idx%end
1892 dyn_pres = dyn_pres +
q_cons_vf(i)%sf(
j,
k,
l)*q_prim_vf(i)%sf(
j,
k,
l)/2._wp
1897 do i = chemxb, chemxe
1898 ys(i - chemxb + 1) = q_prim_vf(i)%sf(
j,
k,
l)
1902 call get_mixture_molecular_weight(ys, mix_mol_weight)
1903 t = q_prim_vf(e_idx)%sf(
j,
k,
l)*mix_mol_weight/(gas_constant*rho)
1904 call get_mixture_energy_mass(t, ys, e_mix)
1911 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, &
1914 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, &
1915 &
l)**2 + q_prim_vf(b_idx%beg + 2)%sf(
j,
k,
l)**2)
1918 q_cons_vf(e_idx)%sf(
j,
k,
l) = gamma*q_prim_vf(e_idx)%sf(
j,
k,
l) + dyn_pres + pres_mag + pi_inf + qv
1919 else if ((model_eqns /= 4) .and. (bubbles_euler .neqv. .true.))
then
1921 q_cons_vf(e_idx)%sf(
j,
k,
l) = gamma*q_prim_vf(e_idx)%sf(
j,
k,
l) + dyn_pres + pi_inf + qv
1922 else if ((model_eqns /= 4) .and. (bubbles_euler))
then
1924 q_cons_vf(e_idx)%sf(
j,
k,
l) = dyn_pres + (1._wp - q_prim_vf(alf_idx)%sf(
j,
k, &
1925 &
l))*(gamma*q_prim_vf(e_idx)%sf(
j,
k,
l) + pi_inf)
1933 if (model_eqns == 3)
then
1934 do i = 1, num_fluids
1936 &
l)*(
gammas(i)*q_prim_vf(e_idx)%sf(
j,
k, &
1941 if (bubbles_euler)
then
1944 rtmp(i) = q_prim_vf(bub_idx%rs(i))%sf(
j,
k,
l)
1947 if (.not. qbmm)
then
1950 nbub = q_prim_vf(n_idx)%sf(
j,
k,
l)
1952 call s_comp_n_from_prim(real(q_prim_vf(alf_idx)%sf(
j,
k,
l), kind=wp), rtmp, nbub, weight)
1958 r3tmp = r3tmp + weight(i)*0.5_wp*(rtmp(i) + sigr)**3._wp
1959 r3tmp = r3tmp + weight(i)*0.5_wp*(rtmp(i) - sigr)**3._wp
1962 nbub = 3._wp*q_prim_vf(alf_idx)%sf(
j,
k,
l)/(4._wp*pi*r3tmp)
1965 do i = bub_idx%beg, bub_idx%end
1971 do i = b_idx%beg, b_idx%end
1976 if (elasticity)
then
1983 if (hypoelasticity)
then
1984 if (cont_damage) g = g*max((1._wp - q_prim_vf(damage_idx)%sf(
j,
k,
l)), 0._wp)
1987 if (g > verysmall)
then
1989 &
l)**2._wp)/(4._wp*g)
1991 if (any(i == shear_indices))
then
1993 &
l)**2._wp)/(4._wp*g)
2000 if (hyperelasticity)
then
2007 if (surface_tension)
then
2011 if (cont_damage)
q_cons_vf(damage_idx)%sf(
j,
k,
l) = q_prim_vf(damage_idx)%sf(
j,
k,
l)
2013 if (hyper_cleaning)
q_cons_vf(psi_idx)%sf(
j,
k,
l) = q_prim_vf(psi_idx)%sf(
j,
k,
l)
2018 if (proc_rank == 0)
then
2019 call s_mpi_abort(
'Conversion from primitive to ' //
'conservative variables not ' //
'implemented. Exiting.')
2028 integer,
intent(in) :: s2b, s3b
2029 real(wp),
dimension(0:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:),
intent(in) :: qk_prim_vf
2030 real(wp),
dimension(0:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:),
intent(inout) :: fk_vf
2031 real(wp),
dimension(0:,idwbuff(2)%beg:,idwbuff(3)%beg:,advxb:),
intent(inout) :: fk_src_vf
2032 type(int_bounds_info),
intent(in) :: is1, is2, is3
2037# 1034 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2038 real(wp),
dimension(num_fluids) :: alpha_rho_k
2039 real(wp),
dimension(num_fluids) :: alpha_k
2040 real(wp),
dimension(num_vels) :: vel_k
2041 real(wp),
dimension(num_species) :: y_k
2042# 1039 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2044 real(wp) :: vel_k_sum
2048 real(wp) :: pi_inf_k
2050 real(wp),
dimension(2) :: re_k
2052 real(wp) :: t_k, mix_mol_weight, r_gas
2053 integer :: i,
j,
k,
l
2060# 1055 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2061#if defined(MFC_OpenACC)
2062# 1055 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2064# 1055 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2065#elif defined(MFC_OpenMP)
2066# 1055 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2068# 1055 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2073#ifdef MFC_SIMULATION
2075# 1060 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2077# 1060 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2078#if defined(MFC_OpenACC)
2079# 1060 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2081# 1060 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2082#elif defined(MFC_OpenMP)
2083# 1060 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2085# 1060 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2087# 1060 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2089# 1060 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2091# 1060 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2093# 1062 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2098# 1065 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2099#if defined(MFC_OpenACC)
2100# 1065 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2102# 1065 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2103#elif defined(MFC_OpenMP)
2104# 1065 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2106# 1065 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2109 alpha_rho_k(i) = qk_prim_vf(
j,
k,
l, i)
2113# 1070 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2114#if defined(MFC_OpenACC)
2115# 1070 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2117# 1070 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2118#elif defined(MFC_OpenMP)
2119# 1070 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2121# 1070 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2124 alpha_k(i - e_idx) = qk_prim_vf(
j,
k,
l, i)
2128# 1075 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2129#if defined(MFC_OpenACC)
2130# 1075 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2132# 1075 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2133#elif defined(MFC_OpenMP)
2134# 1075 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2136# 1075 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2139 vel_k(i) = qk_prim_vf(
j,
k,
l, contxe + i)
2144# 1081 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2145#if defined(MFC_OpenACC)
2146# 1081 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2148# 1081 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2149#elif defined(MFC_OpenMP)
2150# 1081 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2152# 1081 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2155 vel_k_sum = vel_k_sum + vel_k(i)**2._wp
2158 pres_k = qk_prim_vf(
j,
k,
l, e_idx)
2159 if (elasticity)
then
2170# 1097 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2171#if defined(MFC_OpenACC)
2172# 1097 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2174# 1097 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2175#elif defined(MFC_OpenMP)
2176# 1097 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2178# 1097 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2180 do i = chemxb, chemxe
2181 y_k(i - chemxb + 1) = qk_prim_vf(
j,
k,
l, i)
2184 call get_mixture_molecular_weight(y_k, mix_mol_weight)
2185 r_gas = gas_constant/mix_mol_weight
2186 t_k = pres_k/rho_k/r_gas
2187 call get_mixture_energy_mass(t_k, y_k, e_k)
2188 e_k = rho_k*e_k + 5.e-1_wp*rho_k*vel_k_sum
2191 e_k = gamma_k*pres_k + pi_inf_k + 5.e-1_wp*rho_k*vel_k_sum + qv_k
2196# 1113 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2197#if defined(MFC_OpenACC)
2198# 1113 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2200# 1113 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2201#elif defined(MFC_OpenMP)
2202# 1113 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2204# 1113 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2207 fk_vf(
j,
k,
l, i) = alpha_rho_k(i)*vel_k(dir_idx(1))
2211# 1118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2212#if defined(MFC_OpenACC)
2213# 1118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2215# 1118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2216#elif defined(MFC_OpenMP)
2217# 1118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2219# 1118 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2222 fk_vf(
j,
k,
l, contxe + dir_idx(i)) = rho_k*vel_k(dir_idx(1))*vel_k(dir_idx(i)) + pres_k*dir_flg(dir_idx(i))
2226 fk_vf(
j,
k,
l, e_idx) = vel_k(dir_idx(1))*(e_k + pres_k)
2231# 1128 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2232#if defined(MFC_OpenACC)
2233# 1128 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2235# 1128 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2236#elif defined(MFC_OpenMP)
2237# 1128 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2239# 1128 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2241 do i = 1, num_species
2242 fk_vf(
j,
k,
l, i - 1 + chemxb) = vel_k(dir_idx(1))*(rho_k*y_k(i))
2246 if (riemann_solver == 1 .or. riemann_solver == 4)
then
2248# 1135 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2249#if defined(MFC_OpenACC)
2250# 1135 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2252# 1135 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2253#elif defined(MFC_OpenMP)
2254# 1135 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2256# 1135 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2259 fk_vf(
j,
k,
l, i) = 0._wp
2260 fk_src_vf(
j,
k,
l, i) = alpha_k(i - e_idx)
2265# 1142 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2266#if defined(MFC_OpenACC)
2267# 1142 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2269# 1142 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2270#elif defined(MFC_OpenMP)
2271# 1142 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2273# 1142 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2276 fk_vf(
j,
k,
l, i) = vel_k(dir_idx(1))*alpha_k(i - e_idx)
2280# 1147 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2281#if defined(MFC_OpenACC)
2282# 1147 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2284# 1147 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2285#elif defined(MFC_OpenMP)
2286# 1147 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2288# 1147 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2291 fk_src_vf(
j,
k,
l, i) = vel_k(dir_idx(1))
2298# 1155 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2299#if defined(MFC_OpenACC)
2300# 1155 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2302# 1155 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2303#elif defined(MFC_OpenMP)
2304# 1155 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2306# 1155 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2308# 1155 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2318# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2320# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2322# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2324# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2326# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2328# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2330# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2332# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2334# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2336# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2338# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2340# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2342# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2344# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2346# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2348# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2350# 1163 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2352 type(scalar_field),
dimension(sys_size),
intent(in) :: q_vf
2353 integer,
intent(in) ::
k,
l, r
2354# 1169 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2355 real(wp),
dimension(num_fluids),
intent(out) :: alpha_rho_k, alpha_k
2356# 1171 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2358 real(wp) :: alpha_k_sum
2360 if (num_fluids == 1)
then
2361 alpha_rho_k(1) = q_vf(contxb)%sf(
k,
l, r)
2362 if (igr .or. bubbles_euler)
then
2365 alpha_k(1) = q_vf(advxb)%sf(
k,
l, r)
2369 do i = 1, num_fluids - 1
2370 alpha_rho_k(i) = q_vf(i)%sf(
k,
l, r)
2371 alpha_k(i) = q_vf(advxb + i - 1)%sf(
k,
l, r)
2373 alpha_rho_k(num_fluids) = q_vf(num_fluids)%sf(
k,
l, r)
2374 alpha_k(num_fluids) = 1._wp - sum(alpha_k(1:num_fluids - 1))
2376 do i = 1, num_fluids
2377 alpha_rho_k(i) = q_vf(i)%sf(
k,
l, r)
2378 alpha_k(i) = q_vf(advxb + i - 1)%sf(
k,
l, r)
2385 do i = 1, num_fluids
2386 alpha_rho_k(i) = max(0._wp, alpha_rho_k(i))
2387 alpha_k(i) = min(max(0._wp, alpha_k(i)), 1._wp)
2388 alpha_k_sum = alpha_k_sum + alpha_k(i)
2390 alpha_k = alpha_k/max(alpha_k_sum, 1.e-16_wp)
2393 if (num_fluids == 1 .and. bubbles_euler) alpha_k(1) = q_vf(advxb)%sf(
k,
l, r)
2401#ifdef MFC_POST_PROCESS
2405#ifdef MFC_SIMULATION
2407# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2409# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2410 use iso_fortran_env,
only: output_unit
2411# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2413# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2414 print *,
'm_variables_conversion.fpp:1220: ',
'@:DEALLOCATE(gammas, gs_min, pi_infs, ps_inf, cvs, qvs, qvps, Gs_vc)'
2415# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2417# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2418 call flush (output_unit)
2419# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2421# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2423# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2425# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2426#if defined(MFC_OpenACC)
2427# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2429# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2430#elif defined(MFC_OpenMP)
2431# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2433# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2435# 1220 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2437 if (bubbles_euler)
then
2439# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2441# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2442 use iso_fortran_env,
only: output_unit
2443# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2445# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2446 print *,
'm_variables_conversion.fpp:1222: ',
'@:DEALLOCATE(bubrs_vc)'
2447# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2449# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2450 call flush (output_unit)
2451# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2453# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2455# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2457# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2458#if defined(MFC_OpenACC)
2459# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2461# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2462#elif defined(MFC_OpenMP)
2463# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2465# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2467# 1222 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2472# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2474# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2475 use iso_fortran_env,
only: output_unit
2476# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2478# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2479 print *,
'm_variables_conversion.fpp:1225: ',
'@:DEALLOCATE(gammas, gs_min, pi_infs, ps_inf, cvs, qvs, qvps, Gs_vc)'
2480# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2482# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2483 call flush (output_unit)
2484# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2486# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2488# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2490# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2491#if defined(MFC_OpenACC)
2492# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2494# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2495#elif defined(MFC_OpenMP)
2496# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2498# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2500# 1225 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2502 if (bubbles_euler)
then
2504# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2506# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2507 use iso_fortran_env,
only: output_unit
2508# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2510# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2511 print *,
'm_variables_conversion.fpp:1227: ',
'@:DEALLOCATE(bubrs_vc)'
2512# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2514# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2515 call flush (output_unit)
2516# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2518# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2520# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2522# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2523#if defined(MFC_OpenACC)
2524# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2526# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2527#elif defined(MFC_OpenMP)
2528# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2530# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2532# 1227 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2539#ifndef MFC_PRE_PROCESS
2544# 1237 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2546# 1237 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2548# 1237 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2550# 1237 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2552# 1237 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2554# 1237 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2556# 1237 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2559 real(wp),
intent(in) :: pres
2560 real(wp),
intent(in) :: rho, gamma, pi_inf, qv
2561 real(wp),
intent(in) :: H
2562# 1245 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2563 real(wp),
dimension(num_fluids),
intent(in) :: adv
2564# 1247 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2565 real(wp),
intent(in) :: vel_sum
2566 real(wp),
intent(in) :: c_c
2567 real(wp),
intent(out) :: c
2568 real(wp) :: blkmod1, blkmod2
2572 if (avg_state == 1 .and. abs(c_c) > verysmall)
then
2573 c = sqrt(c_c - (gamma - 1.0_wp)*(vel_sum - h))
2575 c = sqrt((1.0_wp + 1.0_wp/gamma)*pres/rho)
2577 else if (relativity)
then
2578 c = sqrt((1._wp + 1._wp/gamma)*pres/rho/h)
2580 if (alt_soundspeed)
then
2583 c = (1._wp/(rho*(adv(1)/blkmod1 + adv(2)/blkmod2)))
2584 else if (model_eqns == 3)
then
2587# 1268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2588#if defined(MFC_OpenACC)
2589# 1268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2591# 1268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2592#elif defined(MFC_OpenMP)
2593# 1268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2595# 1268 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2597 do q = 1, num_fluids
2601 else if (((model_eqns == 4) .or. (model_eqns == 2 .and. bubbles_euler)))
then
2604 if (mpp_lim .and. (num_fluids > 1))
then
2605 c = (1._wp/gamma + 1._wp)*(pres + pi_inf/(gamma + 1._wp))/rho
2607 c = (1._wp/gamma + 1._wp)*(pres + pi_inf/(gamma + 1._wp))/(rho*(1._wp - adv(num_fluids)))
2610 c = (h - 5.e-1*vel_sum - qv/rho)/gamma
2613 if (mixture_err .and. c < 0._wp)
then
2623#ifndef MFC_PRE_PROCESS
2628# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2630# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2632# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2634# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2636# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2638# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2640# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2642# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2644# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2646# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2648# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2650# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2652# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2654# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2656# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2658# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2660# 1299 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2663 real(wp),
intent(in) :: B(3), rho, c
2664 real(wp),
intent(in) :: h
2665 real(wp),
intent(out) :: c_fast
2666 integer,
intent(in) :: norm
2667 real(wp) :: B2, term, disc
2671 if (.not. relativity)
then
2672 term = c**2 + b2/rho
2673 disc = term**2 - 4*c**2*(b(norm)**2/rho)
2676 term = (c**2*(b(norm)**2 + rho*h) + b2)/(rho*h + b2)
2677 disc = term**2 - 4*c**2*b(norm)**2/(rho*h + b2)
2681 if (disc < 0._wp)
then
2682 print *,
'rho, c, Bx, By, Bz, h, term, disc:', rho, c, b(1), b(2), b(3), h, term, disc
2683 call s_mpi_abort(
'Error: negative discriminant in s_compute_fast_magnetosonic_speed')
2687 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
Stiffened gas EOS parameters and Reynolds numbers per fluid.
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)
Compute the fast magnetosonic wave speed from the sound speed, density, and magnetic field components...
subroutine, public s_convert_primitive_to_flux_variables(qk_prim_vf, fk_vf, fk_src_vf, is1, is2, is3, s2b, s3b)
Convert primitive variables to Eulerian flux variables.
real(wp), dimension(:), allocatable, public gammas
real(wp), dimension(:), allocatable, public ps_inf
subroutine, public s_compute_species_fraction(q_vf, k, l, r, alpha_rho_k, alpha_k)
Compute partial densities and volume fractions.
subroutine s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, adv, vel_sum, c_c, c, qv)
Compute the speed of sound from thermodynamic state variables, supporting multiple equation-of-state ...
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)
Initialize bubble mass-vapor values at quadrature nodes from the conserved moment statistics.
subroutine, public s_initialize_pb(qk_cons_vf, mv, pb)
Initialize bubble internal pressures at quadrature nodes using isothermal relations from the Preston ...
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)
Compute the pressure from the appropriate equation of state.
impure subroutine, public s_convert_primitive_to_conservative_variables(q_prim_vf, q_cons_vf)
Convert primitives (rho, u, p, alpha) to conserved variables (rho*alpha, rho*u, E,...
real(wp), dimension(:), allocatable, public qvps
subroutine, public s_convert_conservative_to_primitive_variables(qk_cons_vf, q_t_sf, qk_prim_vf, ibounds)
Convert conserved variables (rho*alpha, rho*u, E, alpha) to primitives (rho, u, p,...
impure subroutine, public s_initialize_variables_conversion_module
Initialize the variables conversion module.
subroutine, public s_convert_species_to_mixture_variables(q_vf, k, l, r, rho, gamma, pi_inf, qv, re_k, g_k, g)
Convert species volume fractions and partial densities to mixture density, gamma, pi_inf,...
real(wp), dimension(:,:,:), allocatable, public qv_sf
Scalar liquid energy reference function.
subroutine, public s_convert_mixture_to_mixture_variables(q_vf, i, j, k, rho, gamma, pi_inf, qv)
Convert mixture variables to density, gamma, pi_inf, and qv for the gamma/pi_inf model....
real(wp), dimension(:,:,:), allocatable, public pi_inf_sf
Scalar liquid stiffness function.
real(wp), dimension(:,:,:), allocatable, public gamma_sf
Scalar sp. heat ratio function.
real(wp), dimension(:,:,:), allocatable, public rho_sf
Scalar density 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()
Deallocate 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).