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)
536 pi_inf = q_vf(
eqn_idx%pi_inf)%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
673 if (
present(g_k)) g_k = 0._wp
678 rho_k = alpha_rho_k(1)
686 alpha_rho_k(i) = max(0._wp, alpha_rho_k(i))
687 alpha_k(i) = min(max(0._wp, alpha_k(i)), 1._wp)
688 alpha_k_sum = alpha_k_sum + alpha_k(i)
690 alpha_k = alpha_k/max(alpha_k_sum, sgm_eps)
692 rho_k = 0._wp; gamma_k = 0._wp; pi_inf_k = 0._wp; qv_k = 0._wp
694 rho_k = rho_k + alpha_rho_k(i)
695 gamma_k = gamma_k + alpha_k(i)*
gammas(i)
696 pi_inf_k = pi_inf_k + alpha_k(i)*
pi_infs(i)
697 qv_k = qv_k + alpha_rho_k(i)*
qvs(i)
701 if (
present(g_k))
then
705 g_k = g_k + alpha_k(i)*
g(i)
707 g_k = max(0._wp, g_k)
714 if (re_size(i) > 0) re_k(i) = 0._wp
717 re_k(i) = alpha_k(re_idx(i,
j))/
res_vc(i,
j) + re_k(i)
720 re_k(i) = 1._wp/max(re_k(i), sgm_eps)
733# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
734#if defined(MFC_OpenACC)
735# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
737# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
738#elif defined(MFC_OpenMP)
739# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
741# 328 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
745# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
747# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
748 use iso_fortran_env,
only: output_unit
749# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
751# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
752 print *,
'm_variables_conversion.fpp:330: ',
'@:ALLOCATE(gammas (1:num_fluids))'
753# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
755# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
756 call flush (output_unit)
757# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
759# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
761# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
763# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
765# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
767# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
768#if defined(MFC_OpenACC)
769# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
771# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
772#elif defined(MFC_OpenMP)
773# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
775# 330 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
778# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
780# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
781 use iso_fortran_env,
only: output_unit
782# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
784# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
785 print *,
'm_variables_conversion.fpp:331: ',
'@:ALLOCATE(gs_min (1:num_fluids))'
786# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
788# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
789 call flush (output_unit)
790# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
792# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
794# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
795 allocate (
gs_min(1:num_fluids))
796# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
798# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
800# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
801#if defined(MFC_OpenACC)
802# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
804# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
805#elif defined(MFC_OpenMP)
806# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
808# 331 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
811# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
813# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
814 use iso_fortran_env,
only: output_unit
815# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
817# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
818 print *,
'm_variables_conversion.fpp:332: ',
'@:ALLOCATE(pi_infs(1:num_fluids))'
819# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
821# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
822 call flush (output_unit)
823# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
825# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
827# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
828 allocate (
pi_infs(1:num_fluids))
829# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
831# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
833# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
834#if defined(MFC_OpenACC)
835# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
837# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
838#elif defined(MFC_OpenMP)
839# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
841# 332 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
844# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
846# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
847 use iso_fortran_env,
only: output_unit
848# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
850# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
851 print *,
'm_variables_conversion.fpp:333: ',
'@:ALLOCATE(ps_inf(1:num_fluids))'
852# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
854# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
855 call flush (output_unit)
856# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
858# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
860# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
861 allocate (
ps_inf(1:num_fluids))
862# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
864# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
866# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
867#if defined(MFC_OpenACC)
868# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
870# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
871#elif defined(MFC_OpenMP)
872# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
874# 333 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
877# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
879# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
880 use iso_fortran_env,
only: output_unit
881# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
883# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
884 print *,
'm_variables_conversion.fpp:334: ',
'@:ALLOCATE(cvs (1:num_fluids))'
885# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
887# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
888 call flush (output_unit)
889# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
891# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
893# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
894 allocate (
cvs(1:num_fluids))
895# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
897# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
899# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
900#if defined(MFC_OpenACC)
901# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
903# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
904#elif defined(MFC_OpenMP)
905# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
907# 334 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
910# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
912# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
913 use iso_fortran_env,
only: output_unit
914# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
916# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
917 print *,
'm_variables_conversion.fpp:335: ',
'@:ALLOCATE(qvs (1:num_fluids))'
918# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
920# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
921 call flush (output_unit)
922# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
924# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
926# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
927 allocate (
qvs(1:num_fluids))
928# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
930# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
932# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
933#if defined(MFC_OpenACC)
934# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
936# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
937#elif defined(MFC_OpenMP)
938# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
940# 335 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
943# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
945# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
946 use iso_fortran_env,
only: output_unit
947# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
949# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
950 print *,
'm_variables_conversion.fpp:336: ',
'@:ALLOCATE(qvps (1:num_fluids))'
951# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
953# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
954 call flush (output_unit)
955# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
957# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
959# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
960 allocate (
qvps(1:num_fluids))
961# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
963# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
965# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
966#if defined(MFC_OpenACC)
967# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
969# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
970#elif defined(MFC_OpenMP)
971# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
973# 336 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
976# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
978# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
979 use iso_fortran_env,
only: output_unit
980# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
982# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
983 print *,
'm_variables_conversion.fpp:337: ',
'@:ALLOCATE(Gs_vc (1:num_fluids))'
984# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
986# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
987 call flush (output_unit)
988# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
990# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
992# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
993 allocate (
gs_vc(1:num_fluids))
994# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
996# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
998# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
999#if defined(MFC_OpenACC)
1000# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1002# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1003#elif defined(MFC_OpenMP)
1004# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1006# 337 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1009 do i = 1, num_fluids
1010 gammas(i) = fluid_pp(i)%gamma
1012 pi_infs(i) = fluid_pp(i)%pi_inf
1013 gs_vc(i) = fluid_pp(i)%G
1015 cvs(i) = fluid_pp(i)%cv
1016 qvs(i) = fluid_pp(i)%qv
1017 qvps(i) = fluid_pp(i)%qvp
1020# 349 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1021#if defined(MFC_OpenACC)
1022# 349 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1024# 349 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1025#elif defined(MFC_OpenMP)
1026# 349 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1028# 349 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1031#ifdef MFC_SIMULATION
1034# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1036# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1037 use iso_fortran_env,
only: output_unit
1038# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1040# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1041 print *,
'm_variables_conversion.fpp:353: ',
'@:ALLOCATE(Res_vc(1:2, 1:Re_size_max))'
1042# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1044# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1045 call flush (output_unit)
1046# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1048# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1050# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1051 allocate (
res_vc(1:2, 1:re_size_max))
1052# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1054# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1056# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1057#if defined(MFC_OpenACC)
1058# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1060# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1061#elif defined(MFC_OpenMP)
1062# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1064# 353 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1067 do j = 1, re_size(i)
1068 res_vc(i,
j) = fluid_pp(re_idx(i,
j))%Re(i)
1073# 360 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1074#if defined(MFC_OpenACC)
1075# 360 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1077# 360 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1078#elif defined(MFC_OpenMP)
1079# 360 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1081# 360 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1086 if (bubbles_euler)
then
1088# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1090# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1091 use iso_fortran_env,
only: output_unit
1092# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1094# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1095 print *,
'm_variables_conversion.fpp:365: ',
'@:ALLOCATE(bubrs_vc(1:nb))'
1096# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1098# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1099 call flush (output_unit)
1100# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1102# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1104# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1106# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1108# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1110# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1111#if defined(MFC_OpenACC)
1112# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1114# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1115#elif defined(MFC_OpenMP)
1116# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1118# 365 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1124# 369 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1125#if defined(MFC_OpenACC)
1126# 369 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1128# 369 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1129#elif defined(MFC_OpenMP)
1130# 369 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1132# 369 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1136#ifdef MFC_POST_PROCESS
1143 allocate (
rho_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
1144 allocate (
gamma_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
1145 allocate (
pi_inf_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
1146 allocate (
qv_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,-buff_size:p + buff_size))
1150 allocate (
rho_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
1151 allocate (
gamma_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
1152 allocate (
pi_inf_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
1153 allocate (
qv_sf(-buff_size:m + buff_size,-buff_size:n + buff_size,0:0))
1158 allocate (
rho_sf(-buff_size:m + buff_size,0:0,0:0))
1159 allocate (
gamma_sf(-buff_size:m + buff_size,0:0,0:0))
1160 allocate (
pi_inf_sf(-buff_size:m + buff_size,0:0,0:0))
1161 allocate (
qv_sf(-buff_size:m + buff_size,0:0,0:0))
1170 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1171 real(stp),
dimension(idwint(1)%beg:,idwint(2)%beg:,idwint(3)%beg:,1:,1:),
intent(inout) :: mv
1172 integer :: i,
j,
k,
l
1173 real(wp) :: mu, sig, nbub_sc
1175 do l = idwint(3)%beg, idwint(3)%end
1176 do k = idwint(2)%beg, idwint(2)%end
1177 do j = idwint(1)%beg, idwint(1)%end
1178 nbub_sc = qk_cons_vf(eqn_idx%bub%beg)%sf(
j,
k,
l)
1181# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1182#if defined(MFC_OpenACC)
1183# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1185# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1186#elif defined(MFC_OpenMP)
1187# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1189# 416 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1192 mu = qk_cons_vf(eqn_idx%bub%beg + 1 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc
1193 sig = (qk_cons_vf(eqn_idx%bub%beg + 3 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc - mu**2)**0.5_wp
1195 mv(
j,
k,
l, 1, i) = (mass_v0(i))*(mu - sig)**(3._wp)/(r0(i)**(3._wp))
1196 mv(
j,
k,
l, 2, i) = (mass_v0(i))*(mu - sig)**(3._wp)/(r0(i)**(3._wp))
1197 mv(
j,
k,
l, 3, i) = (mass_v0(i))*(mu + sig)**(3._wp)/(r0(i)**(3._wp))
1198 mv(
j,
k,
l, 4, i) = (mass_v0(i))*(mu + sig)**(3._wp)/(r0(i)**(3._wp))
1209 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1210 real(stp),
dimension(idwint(1)%beg:,idwint(2)%beg:,idwint(3)%beg:,1:,1:),
intent(in) :: mv
1211 real(stp),
dimension(idwint(1)%beg:,idwint(2)%beg:,idwint(3)%beg:,1:,1:),
intent(inout) :: pb
1212 integer :: i,
j,
k,
l
1213 real(wp) :: mu, sig, nbub_sc
1215 do l = idwint(3)%beg, idwint(3)%end
1216 do k = idwint(2)%beg, idwint(2)%end
1217 do j = idwint(1)%beg, idwint(1)%end
1218 nbub_sc = qk_cons_vf(eqn_idx%bub%beg)%sf(
j,
k,
l)
1221# 446 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1222#if defined(MFC_OpenACC)
1223# 446 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1225# 446 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1226#elif defined(MFC_OpenMP)
1227# 446 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1229# 446 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1232 mu = qk_cons_vf(eqn_idx%bub%beg + 1 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc
1233 sig = (qk_cons_vf(eqn_idx%bub%beg + 3 + (i - 1)*nmom)%sf(
j,
k,
l)/nbub_sc - mu**2)**0.5_wp
1236 pb(
j,
k,
l, 1, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 1, &
1237 & i))/(mu - sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1238 pb(
j,
k,
l, 2, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 2, &
1239 & i))/(mu - sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1240 pb(
j,
k,
l, 3, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 3, &
1241 & i))/(mu + sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1242 pb(
j,
k,
l, 4, i) = (pb0(i))*(r0(i)**(3._wp))*(mass_g0(i) + mv(
j,
k,
l, 4, &
1243 & i))/(mu + sig)**(3._wp)/(mass_g0(i) + mass_v0(i))
1255 type(scalar_field),
dimension(sys_size),
intent(in) :: qk_cons_vf
1256 type(scalar_field),
intent(inout) :: q_t_sf
1257 type(scalar_field),
dimension(sys_size),
intent(inout) :: qk_prim_vf
1258 type(int_bounds_info),
dimension(1:3),
intent(in) :: ibounds
1260# 481 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1261 real(wp),
dimension(num_fluids) :: alpha_k, alpha_rho_k
1262 real(wp),
dimension(nb) :: nrtmp
1263 real(wp) :: rhoyks(1:num_species)
1264# 485 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1265 real(wp),
dimension(2) :: re_k
1266 real(wp) :: rho_k, gamma_k, pi_inf_k, qv_k, dyn_pres_k
1267 real(wp) :: vftmp, nbub_sc
1270 integer :: i,
j,
k,
l
1272 real(wp) :: pres_mag
1280 real(wp) :: f, dga_dw, dp_dw, df_dw
1284# 503 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1286# 503 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1287#if defined(MFC_OpenACC)
1288# 503 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1290# 503 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1291#elif defined(MFC_OpenMP)
1292# 503 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1294# 503 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1296# 503 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1298# 503 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1300# 503 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1302# 506 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1303 do l = ibounds(3)%beg, ibounds(3)%end
1304 do k = ibounds(2)%beg, ibounds(2)%end
1305 do j = ibounds(1)%beg, ibounds(1)%end
1310 if (model_eqns /= 4)
then
1311#ifdef MFC_SIMULATION
1313 if (elasticity)
then
1322 if (elasticity)
then
1323 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, &
1332 if (relativity)
then
1335 b(2) = qk_cons_vf(eqn_idx%B%beg)%sf(
j,
k,
l)
1336 b(3) = qk_cons_vf(eqn_idx%B%beg + 1)%sf(
j,
k,
l)
1338 b(1) = qk_cons_vf(eqn_idx%B%beg)%sf(
j,
k,
l)
1339 b(2) = qk_cons_vf(eqn_idx%B%beg + 1)%sf(
j,
k,
l)
1340 b(3) = qk_cons_vf(eqn_idx%B%beg + 2)%sf(
j,
k,
l)
1342 b2 = b(1)**2 + b(2)**2 + b(3)**2
1346# 548 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1347#if defined(MFC_OpenACC)
1348# 548 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1350# 548 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1351#elif defined(MFC_OpenMP)
1352# 548 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1354# 548 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1356 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1357 m2 = m2 + qk_cons_vf(i)%sf(
j,
k,
l)**2
1362# 554 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1363#if defined(MFC_OpenACC)
1364# 554 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1366# 554 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1367#elif defined(MFC_OpenMP)
1368# 554 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1370# 554 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1373 s = s + qk_cons_vf(eqn_idx%mom%beg + i - 1)%sf(
j,
k,
l)*b(i)
1376 e = qk_cons_vf(eqn_idx%E)%sf(
j,
k,
l)
1380# 562 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1381#if defined(MFC_OpenACC)
1382# 562 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1384# 562 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1385#elif defined(MFC_OpenMP)
1386# 562 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1388# 562 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1390 do i = 1, eqn_idx%cont%end
1391 d = d + qk_cons_vf(i)%sf(
j,
k,
l)
1397# 569 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1398#if defined(MFC_OpenACC)
1399# 569 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1401# 569 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1402#elif defined(MFC_OpenMP)
1403# 569 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1405# 569 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1407 do iter = 1, relativity_cons_to_prim_max_iter
1409 ga = (w + b2)*w/sqrt((w + b2)**2*w**2 - (m2*w**2 + s**2*(2*w + b2)))
1411 pres = (w - d*ga)/((gamma_k + 1)*ga**2)
1412 f = w - pres + (1 - 1/(2*ga**2))*b2 - s**2/(2*w**2) - e - d
1418 dga_dw = -ga**3*(2*s**2*(3*w**2 + 3*w*b2 + b2**2) + m2*w**2)/(2*w**3*(w + b2)**3)
1420 dp_dw = (ga*(1 + d*dga_dw) - 2*w*dga_dw)/((gamma_k + 1)*ga**3)
1421 df_dw = 1 - dp_dw + (b2/ga**3)*dga_dw + s**2/w**3
1425 if (abs(dw) < 1.e-12_wp*w)
exit
1429 ga = (w + b2)*w/sqrt((w + b2)**2*w**2 - (m2*w**2 + s**2*(2*w + b2)))
1430 qk_prim_vf(eqn_idx%E)%sf(
j,
k,
l) = (w - d*ga)/((gamma_k + 1)*ga**2)
1434# 596 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1435#if defined(MFC_OpenACC)
1436# 596 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1438# 596 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1439#elif defined(MFC_OpenMP)
1440# 596 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1442# 596 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1445 qk_prim_vf(eqn_idx%mom%beg + i - 1)%sf(
j,
k,
l) = (qk_cons_vf(eqn_idx%mom%beg + i - 1)%sf(
j,
k, &
1446 &
l) + (s/w)*b(i))/(w + b2)
1448 qk_prim_vf(1)%sf(
j,
k,
l) = d/ga
1451# 603 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1452#if defined(MFC_OpenACC)
1453# 603 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1455# 603 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1456#elif defined(MFC_OpenMP)
1457# 603 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1459# 603 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1461 do i = eqn_idx%B%beg, eqn_idx%B%end
1462 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1472# 614 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1473#if defined(MFC_OpenACC)
1474# 614 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1476# 614 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1477#elif defined(MFC_OpenMP)
1478# 614 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1480# 614 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1482 do i = eqn_idx%species%beg, eqn_idx%species%end
1483 rho_k = rho_k + max(0._wp, qk_cons_vf(i)%sf(
j,
k,
l))
1487# 619 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1488#if defined(MFC_OpenACC)
1489# 619 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1491# 619 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1492#elif defined(MFC_OpenMP)
1493# 619 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1495# 619 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1497 do i = 1, eqn_idx%cont%end
1498 qk_prim_vf(i)%sf(
j,
k,
l) = rho_k
1502# 624 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1503#if defined(MFC_OpenACC)
1504# 624 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1506# 624 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1507#elif defined(MFC_OpenMP)
1508# 624 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1510# 624 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1512 do i = eqn_idx%species%beg, eqn_idx%species%end
1513 qk_prim_vf(i)%sf(
j,
k,
l) = max(0._wp, qk_cons_vf(i)%sf(
j,
k,
l)/rho_k)
1518# 630 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1519#if defined(MFC_OpenACC)
1520# 630 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1522# 630 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1523#elif defined(MFC_OpenMP)
1524# 630 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1526# 630 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1528 do i = 1, eqn_idx%cont%end
1529 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1533#ifdef MFC_SIMULATION
1534 rho_k = max(rho_k, sgm_eps)
1539# 641 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1540#if defined(MFC_OpenACC)
1541# 641 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1543# 641 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1544#elif defined(MFC_OpenMP)
1545# 641 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1547# 641 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1549 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1550 if (model_eqns /= 4)
then
1551 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/rho_k
1552 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)
1555 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/qk_cons_vf(1)%sf(
j,
k,
l)
1561# 653 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1562#if defined(MFC_OpenACC)
1563# 653 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1565# 653 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1566#elif defined(MFC_OpenMP)
1567# 653 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1569# 653 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1571 do i = 1, num_species
1572 rhoyks(i) = qk_cons_vf(eqn_idx%species%beg + i - 1)%sf(
j,
k,
l)
1575 t = q_t_sf%sf(
j,
k,
l)
1580 pres_mag = 0.5_wp*(bx0**2 + qk_cons_vf(eqn_idx%B%beg)%sf(
j,
k, &
1581 &
l)**2 + qk_cons_vf(eqn_idx%B%beg + 1)%sf(
j,
k,
l)**2)
1583 pres_mag = 0.5_wp*(qk_cons_vf(eqn_idx%B%beg)%sf(
j,
k,
l)**2 + qk_cons_vf(eqn_idx%B%beg + 1)%sf(
j,
k, &
1584 &
l)**2 + qk_cons_vf(eqn_idx%B%beg + 2)%sf(
j,
k,
l)**2)
1591 & pi_inf_k, gamma_k, rho_k, qv_k, rhoyks, pres, t, pres_mag=pres_mag)
1593 qk_prim_vf(eqn_idx%E)%sf(
j,
k,
l) = pres
1596 q_t_sf%sf(
j,
k,
l) = t
1599 if (bubbles_euler)
then
1602# 684 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1603#if defined(MFC_OpenACC)
1604# 684 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1606# 684 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1607#elif defined(MFC_OpenMP)
1608# 684 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1610# 684 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1616 vftmp = qk_cons_vf(eqn_idx%alf)%sf(
j,
k,
l)
1620 nbub_sc = qk_cons_vf(eqn_idx%bub%beg)%sf(
j,
k,
l)
1624# 696 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1625#if defined(MFC_OpenACC)
1626# 696 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1628# 696 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1629#elif defined(MFC_OpenMP)
1630# 696 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1632# 696 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1634 do i = eqn_idx%bub%beg, eqn_idx%bub%end
1635 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/nbub_sc
1638#ifdef MFC_SIMULATION
1639 qk_prim_vf(eqn_idx%bub%beg)%sf(
j,
k,
l) = qk_cons_vf(eqn_idx%bub%beg)%sf(
j,
k,
l)
1643 qk_prim_vf(eqn_idx%n)%sf(
j,
k,
l) = qk_cons_vf(eqn_idx%n)%sf(
j,
k,
l)
1644 nbub_sc = qk_prim_vf(eqn_idx%n)%sf(
j,
k,
l)
1646 call s_comp_n_from_cons(vftmp, nrtmp, nbub_sc, weight)
1650# 712 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1651#if defined(MFC_OpenACC)
1652# 712 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1654# 712 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1655#elif defined(MFC_OpenMP)
1656# 712 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1658# 712 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1660 do i = eqn_idx%bub%beg, eqn_idx%bub%end
1661 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/nbub_sc
1668# 720 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1669#if defined(MFC_OpenACC)
1670# 720 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1672# 720 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1673#elif defined(MFC_OpenMP)
1674# 720 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1676# 720 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1678 do i = eqn_idx%B%beg, eqn_idx%B%end
1679 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1683 if (elasticity)
then
1685# 727 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1686#if defined(MFC_OpenACC)
1687# 727 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1689# 727 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1690#elif defined(MFC_OpenMP)
1691# 727 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1693# 727 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1695 do i = eqn_idx%stress%beg, eqn_idx%stress%end
1696 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/rho_k
1700 if (hypoelasticity)
then
1701 if (cont_damage) g_k = g_k*max((1._wp - qk_cons_vf(eqn_idx%damage)%sf(
j,
k,
l)), 0._wp)
1703# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1704#if defined(MFC_OpenACC)
1705# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1707# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1708#elif defined(MFC_OpenMP)
1709# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1711# 735 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1713 do i = eqn_idx%stress%beg, eqn_idx%stress%end
1715 if (g_k > verysmall)
then
1716 qk_prim_vf(eqn_idx%E)%sf(
j,
k,
l) = qk_prim_vf(eqn_idx%E)%sf(
j,
k,
l) - ((qk_prim_vf(i)%sf(
j,
k, &
1717 &
l)**2._wp)/(4._wp*g_k))/gamma_k
1719 if (any(i == shear_indices))
then
1720 qk_prim_vf(eqn_idx%E)%sf(
j,
k,
l) = qk_prim_vf(eqn_idx%E)%sf(
j,
k,
l) - ((qk_prim_vf(i)%sf(
j, &
1721 &
k,
l)**2._wp)/(4._wp*g_k))/gamma_k
1727 if (hyperelasticity)
then
1729# 751 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1730#if defined(MFC_OpenACC)
1731# 751 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1733# 751 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1734#elif defined(MFC_OpenMP)
1735# 751 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1737# 751 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1739 do i = eqn_idx%xi%beg, eqn_idx%xi%end
1740 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)/rho_k
1744 if (.not. igr .or. num_fluids > 1)
then
1746# 758 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1747#if defined(MFC_OpenACC)
1748# 758 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1750# 758 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1751#elif defined(MFC_OpenMP)
1752# 758 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1754# 758 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1756 do i = eqn_idx%adv%beg, eqn_idx%adv%end
1757 qk_prim_vf(i)%sf(
j,
k,
l) = qk_cons_vf(i)%sf(
j,
k,
l)
1761 if (surface_tension)
then
1762 qk_prim_vf(eqn_idx%c)%sf(
j,
k,
l) = qk_cons_vf(eqn_idx%c)%sf(
j,
k,
l)
1765 if (cont_damage) qk_prim_vf(eqn_idx%damage)%sf(
j,
k,
l) = qk_cons_vf(eqn_idx%damage)%sf(
j,
k,
l)
1767 if (hyper_cleaning) qk_prim_vf(eqn_idx%psi)%sf(
j,
k,
l) = qk_cons_vf(eqn_idx%psi)%sf(
j,
k,
l)
1768#ifdef MFC_POST_PROCESS
1769 if (bubbles_lagrange) qk_prim_vf(beta_idx)%sf(
j,
k,
l) = qk_cons_vf(beta_idx)%sf(
j,
k,
l)
1775# 777 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1776#if defined(MFC_OpenACC)
1777# 777 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1779# 777 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1780#elif defined(MFC_OpenMP)
1781# 777 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1783# 777 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1785# 777 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
1793 type(scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
1794 type(scalar_field),
dimension(sys_size),
intent(inout) ::
q_cons_vf
1802 real(wp) :: dyn_pres
1803 real(wp) :: nbub, r3tmp
1804 real(wp),
dimension(nb) :: rtmp
1806 real(wp),
dimension(2) :: re_k
1807 integer :: i,
j,
k,
l
1808 real(wp),
dimension(num_species) :: ys
1809 real(wp) :: e_mix, mix_mol_weight, t
1810 real(wp) :: pres_mag
1822#ifndef MFC_SIMULATION
1828 call s_convert_to_mixture_variables(q_prim_vf,
j,
k,
l, rho, gamma, pi_inf, qv, re_k, g, fluid_pp(:)%G)
1830 if (.not. igr .or. num_fluids > 1)
then
1832 do i = eqn_idx%adv%beg, eqn_idx%adv%end
1837 if (relativity)
then
1840 b(2) = q_prim_vf(eqn_idx%B%beg)%sf(
j,
k,
l)
1841 b(3) = q_prim_vf(eqn_idx%B%beg + 1)%sf(
j,
k,
l)
1843 b(1) = q_prim_vf(eqn_idx%B%beg)%sf(
j,
k,
l)
1844 b(2) = q_prim_vf(eqn_idx%B%beg + 1)%sf(
j,
k,
l)
1845 b(3) = q_prim_vf(eqn_idx%B%beg + 2)%sf(
j,
k,
l)
1849 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1850 v2 = v2 + q_prim_vf(i)%sf(
j,
k,
l)**2
1852 if (v2 >= 1._wp)
call s_mpi_abort(
'Error: v squared > 1 in s_convert_primitive_to_conservative_variables')
1854 ga = 1._wp/sqrt(1._wp - v2)
1856 h = 1._wp + (gamma + 1)*q_prim_vf(eqn_idx%E)%sf(
j,
k,
l)/rho
1859 do i = eqn_idx%B%beg, eqn_idx%B%end
1860 b2 = b2 + q_prim_vf(i)%sf(
j,
k,
l)**2
1862 if (n == 0) b2 = b2 + bx0**2
1866 vdotb = vdotb + q_prim_vf(eqn_idx%mom%beg + i - 1)%sf(
j,
k,
l)*b(i)
1869 do i = 1, eqn_idx%cont%end
1873 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1874 q_cons_vf(i)%sf(
j,
k,
l) = (rho*h*ga**2 + b2)*q_prim_vf(i)%sf(
j,
k, &
1875 &
l) - vdotb*b(i - eqn_idx%mom%beg + 1)
1878 q_cons_vf(eqn_idx%E)%sf(
j,
k,
l) = rho*h*ga**2 - q_prim_vf(eqn_idx%E)%sf(
j,
k, &
1879 &
l) + 0.5_wp*(b2 + v2*b2 - vdotb**2)
1881 do i = 1, eqn_idx%cont%end
1885 do i = eqn_idx%B%beg, eqn_idx%B%end
1893 do i = 1, eqn_idx%cont%end
1901 do i = eqn_idx%mom%beg, eqn_idx%mom%end
1903 dyn_pres = dyn_pres +
q_cons_vf(i)%sf(
j,
k,
l)*q_prim_vf(i)%sf(
j,
k,
l)/2._wp
1908 do i = eqn_idx%species%beg, eqn_idx%species%end
1909 ys(i - eqn_idx%species%beg + 1) = q_prim_vf(i)%sf(
j,
k,
l)
1913 call get_mixture_molecular_weight(ys, mix_mol_weight)
1914 t = q_prim_vf(eqn_idx%E)%sf(
j,
k,
l)*mix_mol_weight/(gas_constant*rho)
1915 call get_mixture_energy_mass(t, ys, e_mix)
1917 q_cons_vf(eqn_idx%E)%sf(
j,
k,
l) = dyn_pres + rho*e_mix
1922 pres_mag = 0.5_wp*(bx0**2 + q_prim_vf(eqn_idx%B%beg)%sf(
j,
k, &
1923 &
l)**2 + q_prim_vf(eqn_idx%B%beg + 1)%sf(
j,
k,
l)**2)
1925 pres_mag = 0.5_wp*(q_prim_vf(eqn_idx%B%beg)%sf(
j,
k,
l)**2 + q_prim_vf(eqn_idx%B%beg + 1)%sf(
j, &
1926 &
k,
l)**2 + q_prim_vf(eqn_idx%B%beg + 2)%sf(
j,
k,
l)**2)
1929 q_cons_vf(eqn_idx%E)%sf(
j,
k,
l) = gamma*q_prim_vf(eqn_idx%E)%sf(
j,
k, &
1930 &
l) + dyn_pres + pres_mag + pi_inf + qv
1931 else if ((model_eqns /= 4) .and. (bubbles_euler .neqv. .true.))
then
1933 q_cons_vf(eqn_idx%E)%sf(
j,
k,
l) = gamma*q_prim_vf(eqn_idx%E)%sf(
j,
k,
l) + dyn_pres + pi_inf + qv
1934 else if ((model_eqns /= 4) .and. (bubbles_euler))
then
1936 q_cons_vf(eqn_idx%E)%sf(
j,
k,
l) = dyn_pres + (1._wp - q_prim_vf(eqn_idx%alf)%sf(
j,
k, &
1937 &
l))*(gamma*q_prim_vf(eqn_idx%E)%sf(
j,
k,
l) + pi_inf)
1945 if (model_eqns == 3)
then
1946 do i = 1, num_fluids
1948 &
l)*(
gammas(i)*q_prim_vf(eqn_idx%E)%sf(
j,
k, &
1953 if (bubbles_euler)
then
1956 rtmp(i) = q_prim_vf(qbmm_idx%rs(i))%sf(
j,
k,
l)
1959 if (.not. qbmm)
then
1962 nbub = q_prim_vf(eqn_idx%n)%sf(
j,
k,
l)
1964 call s_comp_n_from_prim(real(q_prim_vf(eqn_idx%alf)%sf(
j,
k,
l), kind=wp), rtmp, nbub, weight)
1970 r3tmp = r3tmp + weight(i)*0.5_wp*(rtmp(i) + sigr)**3._wp
1971 r3tmp = r3tmp + weight(i)*0.5_wp*(rtmp(i) - sigr)**3._wp
1974 nbub = 3._wp*q_prim_vf(eqn_idx%alf)%sf(
j,
k,
l)/(4._wp*pi*r3tmp)
1977 do i = eqn_idx%bub%beg, eqn_idx%bub%end
1983 do i = eqn_idx%B%beg, eqn_idx%B%end
1988 if (elasticity)
then
1990 do i = eqn_idx%stress%beg, eqn_idx%stress%end
1995 if (hypoelasticity)
then
1996 if (cont_damage) g = g*max((1._wp - q_prim_vf(eqn_idx%damage)%sf(
j,
k,
l)), 0._wp)
1997 do i = eqn_idx%stress%beg, eqn_idx%stress%end
1999 if (g > verysmall)
then
2001 &
l)**2._wp)/(4._wp*g)
2003 if (any(i == shear_indices))
then
2005 &
l)**2._wp)/(4._wp*g)
2012 if (hyperelasticity)
then
2014 do i = eqn_idx%xi%beg, eqn_idx%xi%end
2019 if (surface_tension)
then
2023 if (cont_damage)
q_cons_vf(eqn_idx%damage)%sf(
j,
k,
l) = q_prim_vf(eqn_idx%damage)%sf(
j,
k,
l)
2025 if (hyper_cleaning)
q_cons_vf(eqn_idx%psi)%sf(
j,
k,
l) = q_prim_vf(eqn_idx%psi)%sf(
j,
k,
l)
2030 if (proc_rank == 0)
then
2031 call s_mpi_abort(
'Conversion from primitive to ' //
'conservative variables not ' //
'implemented. Exiting.')
2040 integer,
intent(in) :: s2b, s3b
2041 real(wp),
dimension(0:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:),
intent(in) :: qk_prim_vf
2042 real(wp),
dimension(0:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:),
intent(inout) :: fk_vf
2043 real(wp),
dimension(0:,idwbuff(2)%beg:,idwbuff(3)%beg:,eqn_idx%adv%beg:),
intent(inout) :: fk_src_vf
2044 type(int_bounds_info),
intent(in) :: is1, is2, is3
2049# 1046 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2050 real(wp),
dimension(num_fluids) :: alpha_rho_k
2051 real(wp),
dimension(num_fluids) :: alpha_k
2052 real(wp),
dimension(num_vels) :: vel_k
2053 real(wp),
dimension(num_species) :: y_k
2054# 1051 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2056 real(wp) :: vel_k_sum
2060 real(wp) :: pi_inf_k
2062 real(wp),
dimension(2) :: re_k
2064 real(wp) :: t_k, mix_mol_weight, r_gas
2065 integer :: i,
j,
k,
l
2072# 1067 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2073#if defined(MFC_OpenACC)
2074# 1067 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2076# 1067 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2077#elif defined(MFC_OpenMP)
2078# 1067 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2080# 1067 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2085#ifdef MFC_SIMULATION
2087# 1072 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2089# 1072 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2090#if defined(MFC_OpenACC)
2091# 1072 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2093# 1072 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2094#elif defined(MFC_OpenMP)
2095# 1072 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2097# 1072 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2099# 1072 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2101# 1072 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2103# 1072 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2105# 1074 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2110# 1077 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2111#if defined(MFC_OpenACC)
2112# 1077 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2114# 1077 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2115#elif defined(MFC_OpenMP)
2116# 1077 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2118# 1077 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2120 do i = 1, eqn_idx%cont%end
2121 alpha_rho_k(i) = qk_prim_vf(
j,
k,
l, i)
2125# 1082 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2126#if defined(MFC_OpenACC)
2127# 1082 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2129# 1082 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2130#elif defined(MFC_OpenMP)
2131# 1082 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2133# 1082 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2135 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2136 alpha_k(i - eqn_idx%E) = qk_prim_vf(
j,
k,
l, i)
2140# 1087 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2141#if defined(MFC_OpenACC)
2142# 1087 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2144# 1087 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2145#elif defined(MFC_OpenMP)
2146# 1087 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2148# 1087 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2151 vel_k(i) = qk_prim_vf(
j,
k,
l, eqn_idx%cont%end + i)
2156# 1093 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2157#if defined(MFC_OpenACC)
2158# 1093 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2160# 1093 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2161#elif defined(MFC_OpenMP)
2162# 1093 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2164# 1093 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2167 vel_k_sum = vel_k_sum + vel_k(i)**2._wp
2170 pres_k = qk_prim_vf(
j,
k,
l, eqn_idx%E)
2171 if (elasticity)
then
2182# 1109 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2183#if defined(MFC_OpenACC)
2184# 1109 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2186# 1109 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2187#elif defined(MFC_OpenMP)
2188# 1109 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2190# 1109 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2192 do i = eqn_idx%species%beg, eqn_idx%species%end
2193 y_k(i - eqn_idx%species%beg + 1) = qk_prim_vf(
j,
k,
l, i)
2196 call get_mixture_molecular_weight(y_k, mix_mol_weight)
2197 r_gas = gas_constant/mix_mol_weight
2198 t_k = pres_k/rho_k/r_gas
2199 call get_mixture_energy_mass(t_k, y_k, e_k)
2200 e_k = rho_k*e_k + 5.e-1_wp*rho_k*vel_k_sum
2203 e_k = gamma_k*pres_k + pi_inf_k + 5.e-1_wp*rho_k*vel_k_sum + qv_k
2208# 1125 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2209#if defined(MFC_OpenACC)
2210# 1125 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2212# 1125 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2213#elif defined(MFC_OpenMP)
2214# 1125 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2216# 1125 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2218 do i = 1, eqn_idx%cont%end
2219 fk_vf(
j,
k,
l, i) = alpha_rho_k(i)*vel_k(dir_idx(1))
2223# 1130 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2224#if defined(MFC_OpenACC)
2225# 1130 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2227# 1130 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2228#elif defined(MFC_OpenMP)
2229# 1130 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2231# 1130 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2235 & eqn_idx%cont%end + dir_idx(i)) = rho_k*vel_k(dir_idx(1))*vel_k(dir_idx(i)) &
2236 & + pres_k*dir_flg(dir_idx(i))
2240 fk_vf(
j,
k,
l, eqn_idx%E) = vel_k(dir_idx(1))*(e_k + pres_k)
2245# 1142 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2246#if defined(MFC_OpenACC)
2247# 1142 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2249# 1142 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2250#elif defined(MFC_OpenMP)
2251# 1142 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2253# 1142 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2255 do i = 1, num_species
2256 fk_vf(
j,
k,
l, i - 1 + eqn_idx%species%beg) = vel_k(dir_idx(1))*(rho_k*y_k(i))
2260 if (riemann_solver == 1 .or. riemann_solver == 4)
then
2262# 1149 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2263#if defined(MFC_OpenACC)
2264# 1149 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2266# 1149 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2267#elif defined(MFC_OpenMP)
2268# 1149 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2270# 1149 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2272 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2273 fk_vf(
j,
k,
l, i) = 0._wp
2274 fk_src_vf(
j,
k,
l, i) = alpha_k(i - eqn_idx%E)
2279# 1156 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2280#if defined(MFC_OpenACC)
2281# 1156 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2283# 1156 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2284#elif defined(MFC_OpenMP)
2285# 1156 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2287# 1156 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2289 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2290 fk_vf(
j,
k,
l, i) = vel_k(dir_idx(1))*alpha_k(i - eqn_idx%E)
2294# 1161 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2295#if defined(MFC_OpenACC)
2296# 1161 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2298# 1161 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2299#elif defined(MFC_OpenMP)
2300# 1161 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2302# 1161 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2304 do i = eqn_idx%adv%beg, eqn_idx%adv%end
2305 fk_src_vf(
j,
k,
l, i) = vel_k(dir_idx(1))
2312# 1169 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2313#if defined(MFC_OpenACC)
2314# 1169 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2316# 1169 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2317#elif defined(MFC_OpenMP)
2318# 1169 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2320# 1169 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2322# 1169 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2332# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2334# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2336# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2338# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2340# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2342# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2344# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2346# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2348# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2350# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2352# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2354# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2356# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2358# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2360# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2362# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2364# 1177 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2366 type(scalar_field),
dimension(sys_size),
intent(in) :: q_vf
2367 integer,
intent(in) ::
k,
l, r
2368# 1183 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2369 real(wp),
dimension(num_fluids),
intent(out) :: alpha_rho_k, alpha_k
2370# 1185 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2372 real(wp) :: alpha_k_sum
2374 if (num_fluids == 1)
then
2375 alpha_rho_k(1) = q_vf(eqn_idx%cont%beg)%sf(
k,
l, r)
2376 if (igr .or. bubbles_euler)
then
2379 alpha_k(1) = q_vf(eqn_idx%adv%beg)%sf(
k,
l, r)
2383 do i = 1, num_fluids - 1
2384 alpha_rho_k(i) = q_vf(i)%sf(
k,
l, r)
2385 alpha_k(i) = q_vf(eqn_idx%adv%beg + i - 1)%sf(
k,
l, r)
2387 alpha_rho_k(num_fluids) = q_vf(num_fluids)%sf(
k,
l, r)
2388 alpha_k(num_fluids) = 1._wp - sum(alpha_k(1:num_fluids - 1))
2390 do i = 1, num_fluids
2391 alpha_rho_k(i) = q_vf(i)%sf(
k,
l, r)
2392 alpha_k(i) = q_vf(eqn_idx%adv%beg + i - 1)%sf(
k,
l, r)
2399 do i = 1, num_fluids
2400 alpha_rho_k(i) = max(0._wp, alpha_rho_k(i))
2401 alpha_k(i) = min(max(0._wp, alpha_k(i)), 1._wp)
2402 alpha_k_sum = alpha_k_sum + alpha_k(i)
2404 alpha_k = alpha_k/max(alpha_k_sum, 1.e-16_wp)
2407 if (num_fluids == 1 .and. bubbles_euler) alpha_k(1) = q_vf(eqn_idx%adv%beg)%sf(
k,
l, r)
2415#ifdef MFC_POST_PROCESS
2419#ifdef MFC_SIMULATION
2421# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2423# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2424 use iso_fortran_env,
only: output_unit
2425# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2427# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2428 print *,
'm_variables_conversion.fpp:1234: ',
'@:DEALLOCATE(gammas, gs_min, pi_infs, ps_inf, cvs, qvs, qvps, Gs_vc)'
2429# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2431# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2432 call flush (output_unit)
2433# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2435# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2437# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2439# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2440#if defined(MFC_OpenACC)
2441# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2443# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2444#elif defined(MFC_OpenMP)
2445# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2447# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2449# 1234 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2451 if (bubbles_euler)
then
2453# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2455# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2456 use iso_fortran_env,
only: output_unit
2457# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2459# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2460 print *,
'm_variables_conversion.fpp:1236: ',
'@:DEALLOCATE(bubrs_vc)'
2461# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2463# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2464 call flush (output_unit)
2465# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2467# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2469# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2471# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2472#if defined(MFC_OpenACC)
2473# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2475# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2476#elif defined(MFC_OpenMP)
2477# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2479# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2481# 1236 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2486# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2488# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2489 use iso_fortran_env,
only: output_unit
2490# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2492# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2493 print *,
'm_variables_conversion.fpp:1239: ',
'@:DEALLOCATE(gammas, gs_min, pi_infs, ps_inf, cvs, qvs, qvps, Gs_vc)'
2494# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2496# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2497 call flush (output_unit)
2498# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2500# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2502# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2504# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2505#if defined(MFC_OpenACC)
2506# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2508# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2509#elif defined(MFC_OpenMP)
2510# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2512# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2514# 1239 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2516 if (bubbles_euler)
then
2518# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2520# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2521 use iso_fortran_env,
only: output_unit
2522# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2524# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2525 print *,
'm_variables_conversion.fpp:1241: ',
'@:DEALLOCATE(bubrs_vc)'
2526# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2528# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2529 call flush (output_unit)
2530# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2532# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2534# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2536# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2537#if defined(MFC_OpenACC)
2538# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2540# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2541#elif defined(MFC_OpenMP)
2542# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2544# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2546# 1241 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2553#ifndef MFC_PRE_PROCESS
2558# 1251 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2560# 1251 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2562# 1251 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2564# 1251 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2566# 1251 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2568# 1251 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2570# 1251 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2573 real(wp),
intent(in) :: pres
2574 real(wp),
intent(in) :: rho, gamma, pi_inf, qv
2575 real(wp),
intent(in) :: H
2576# 1259 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2577 real(wp),
dimension(num_fluids),
intent(in) :: adv
2578# 1261 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2579 real(wp),
intent(in) :: vel_sum
2580 real(wp),
intent(in) :: c_c
2581 real(wp),
intent(out) :: c
2582 real(wp) :: blkmod1, blkmod2
2586 if (avg_state == 1 .and. abs(c_c) > verysmall)
then
2587 c = sqrt(c_c - (gamma - 1.0_wp)*(vel_sum - h))
2589 c = sqrt((1.0_wp + 1.0_wp/gamma)*pres/rho)
2591 else if (relativity)
then
2592 c = sqrt((1._wp + 1._wp/gamma)*pres/rho/h)
2594 if (alt_soundspeed)
then
2597 c = (1._wp/(rho*(adv(1)/blkmod1 + adv(2)/blkmod2)))
2598 else if (model_eqns == 3)
then
2601# 1282 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2602#if defined(MFC_OpenACC)
2603# 1282 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2605# 1282 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2606#elif defined(MFC_OpenMP)
2607# 1282 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2609# 1282 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2611 do q = 1, num_fluids
2615 else if (((model_eqns == 4) .or. (model_eqns == 2 .and. bubbles_euler)))
then
2618 if (mpp_lim .and. (num_fluids > 1))
then
2619 c = (1._wp/gamma + 1._wp)*(pres + pi_inf/(gamma + 1._wp))/rho
2621 c = (1._wp/gamma + 1._wp)*(pres + pi_inf/(gamma + 1._wp))/(rho*(1._wp - adv(num_fluids)))
2624 c = (h - 5.e-1*vel_sum - qv/rho)/gamma
2627 if (mixture_err .and. c < 0._wp)
then
2637#ifndef MFC_PRE_PROCESS
2642# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2644# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2646# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2648# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2650# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2652# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2654# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2656# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2658# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2660# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2662# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2664# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2666# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2668# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2670# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2672# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2674# 1313 "/home/runner/work/MFC/MFC/src/common/m_variables_conversion.fpp"
2677 real(wp),
intent(in) :: B(3), rho, c
2678 real(wp),
intent(in) :: h
2679 real(wp),
intent(out) :: c_fast
2680 integer,
intent(in) :: norm
2681 real(wp) :: B2, term, disc
2685 if (.not. relativity)
then
2686 term = c**2 + b2/rho
2687 disc = term**2 - 4*c**2*(b(norm)**2/rho)
2690 term = (c**2*(b(norm)**2 + rho*h) + b2)/(rho*h + b2)
2691 disc = term**2 - 4*c**2*b(norm)**2/(rho*h + b2)
2695 if (disc < 0._wp)
then
2696 print *,
'rho, c, Bx, By, Bz, h, term, disc:', rho, c, b(1), b(2), b(3), h, term, disc
2697 call s_mpi_abort(
'Error: negative discriminant in s_compute_fast_magnetosonic_speed')
2701 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.
Global parameters for the post-process: domain geometry, equation of state, and output database setti...
logical hypoelasticity
Turn hypoelasticity on.
integer num_fluids
Number of different fluids present in the flow.
integer model_eqns
Multicomponent flow model.
type(physical_parameters), dimension(num_fluids_max) fluid_pp
Stiffened gas EOS parameters and Reynolds numbers per fluid.
logical mhd
Magnetohydrodynamics.
integer, dimension(3) shear_indices
Indices of the stress components that represent shear stress.
logical mpp_lim
Maximum volume fraction limiter.
type(eqn_idx_info) eqn_idx
All conserved-variable equation index ranges and scalars.
Basic floating-point utilities: approximate equality, default detection, and coordinate bounds.
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
MPI gather and scatter operations for distributing post-process grid and flow-variable data.
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).