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.
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.
integer model_eqns
Multicomponent flow model.
type(physical_parameters), dimension(num_fluids_max) fluid_pp
Stiffened gas EOS parameters and Reynolds numbers per fluid.
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.
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...
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).