1# 1 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
6# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
12# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
15# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
16# 6 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp" 2
17# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
18# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
19# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
20# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
22# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
24# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
26# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
28# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
30# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
32# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
34# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
36# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
38# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
45# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
46# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
47# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
49# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
59# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
61# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
63# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
65# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
67# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
69# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
71# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
73# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
74# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
75# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
77# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
79# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
81# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
83# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
85# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
87# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
89# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
91# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
93# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
95# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
97# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
99# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
101# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
103# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
105# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
107# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
109# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
111# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
115# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 207 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 232 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 243 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 245 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
124# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
126# 283 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128# 293 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130# 303 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
132# 312 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
134# 329 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
138# 346 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
140# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
142# 358 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
144# 364 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
146# 370 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
148# 376 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
150# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
151# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
152# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
153# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
154# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
155# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
157# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
159# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
163# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
165# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
167# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
169# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
171# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
173# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
175# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
177# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
179# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
181# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
183# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
185# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
187# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
189# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
191# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
193# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
195# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
197# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
199# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
201# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
203# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
205# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
207# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
209# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
211# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
213# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
215# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
217# 192 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
219# 213 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
221# 241 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
223# 256 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
225# 266 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
227# 275 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
229# 291 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
231# 301 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
233# 308 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
235# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
237# 21 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
239# 37 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
241# 50 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
243# 104 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245# 119 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
247# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
249# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251# 171 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
253# 182 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
255# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257# 204 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
259# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
261# 225 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 236 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265# 246 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
267# 252 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 258 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
271# 264 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
273# 270 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 272 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
276# 273 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
280# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
286# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
288# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
290# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
292# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
294# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
296# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
298# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
300# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
302# 7 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp" 2
307#ifndef MFC_POST_PROCESS
313 use m_mpi_proxy !< message passing interface (mpi) module proxy
332 real(wp),
parameter ::
pcr = 4.94e7_wp
333 real(wp),
parameter ::
tcr = 385.05_wp + 273.15_wp
334 real(wp),
parameter ::
mixm = 1.0e-8_wp
335 integer,
parameter ::
lp = 1
336 integer,
parameter ::
vp = 2
345# 48 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
346#if defined(MFC_OpenACC)
347# 48 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
349# 48 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
350#elif defined(MFC_OpenMP)
351# 48 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
353# 48 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
365 if (.not. (.false.))
then
366# 59 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
367 call s_mpi_abort(
"m_phase_change.fpp:59: "// &
368# 59 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
369 "Assertion failed: .false.. " &
370# 59 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
371 //
"s_relaxation_solver called but it currently does nothing")
372# 59 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
403 real(wp) :: ps, psov, pssl
404 real(wp) :: ts, tsov, tssl, tsatov, tsatsl
405 real(wp) :: rhoe, dyne, rhos
406 real(wp) :: rho,
rm, m1, m2,
mct
411# 100 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
412 real(wp),
dimension(num_fluids) :: p_infov, p_infpt, p_infsl, sk, hk, gk, ek, rhok
413# 102 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
417 integer :: i,
j,
k,
l
431# 118 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
433# 118 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
434#if defined(MFC_OpenACC)
435# 118 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
437# 118 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
438#elif defined(MFC_OpenMP)
439# 118 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
441# 118 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
443# 118 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
445# 118 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
447# 118 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
449# 118 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
455 rho = 0.0_wp; tvf = 0.0_wp
457# 124 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
458#if defined(MFC_OpenACC)
459# 124 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
461# 124 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
462#elif defined(MFC_OpenMP)
463# 124 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
465# 124 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
493# 150 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
494#if defined(MFC_OpenACC)
495# 150 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
497# 150 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
498#elif defined(MFC_OpenMP)
499# 150 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
501# 150 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
524 .and. (ps <
pcr) .and. (ts <
tcr))
then
540 call s_tsat(psov, tsatov, tsov)
553 call s_tsat(pssl, tsatsl, tssl)
556 if (tsov > tsatov)
then
570 elseif (tssl < tsatsl)
then
603# 250 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
604#if defined(MFC_OpenACC)
605# 250 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
607# 250 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
608#elif defined(MFC_OpenMP)
609# 250 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
611# 250 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
623 gk(i) = hk(i) - ts*sk(i)
626 rhok(i) = (ps +
ps_inf(i)) &
638# 275 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
639#if defined(MFC_OpenACC)
640# 275 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
642# 275 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
643#elif defined(MFC_OpenMP)
644# 275 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
646# 275 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
666# 293 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
668# 293 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
669#if defined(MFC_OpenACC)
670# 293 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
672# 293 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
673#elif defined(MFC_OpenMP)
674# 293 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
676# 293 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
678# 293 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
680# 293 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
682# 293 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
699# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
701# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
703# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
705# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
707# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
709# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
711# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
713# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
715# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
717# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
719# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
721# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
723# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
725# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
727# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
729# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
731# 308 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
733# 310 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
736 integer,
intent(in) :: j, k, l, MFL
737 real(wp),
intent(out) :: pS
738 real(wp),
dimension(1:),
intent(out) :: p_infpT
739 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_cons_vf
740 real(wp),
intent(in) :: rhoe
741 real(wp),
intent(out) :: TS
742 real(wp) :: gp, gpp, hp, pO, mCP, mQ
743 real(wp) :: p_infpT_sum
748 mcp = 0.0_wp; mq = 0.0_wp; p_infpt_sum = 0._wp
750# 325 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
751#if defined(MFC_OpenACC)
752# 325 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
754# 325 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
755#elif defined(MFC_OpenMP)
756# 325 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
758# 325 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
762 p_infpt_sum = p_infpt_sum + abs(p_infpt(i))
766# 331 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
767#if defined(MFC_OpenACC)
768# 331 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
770# 331 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
771#elif defined(MFC_OpenMP)
772# 331 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
774# 331 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
782 mq = mq + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
qvs(i)
786# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
789 if ((rhoe - mq - minval(p_infpt)) < 0.0_wp)
then
791 if ((mfl == 0) .or. (mfl == 1))
then
816 do while ((abs(ps - po) >
palpha_eps) .and. (abs((ps - po)/po) >
palpha_eps/1.e4_wp) .or. (ns == 0))
825 gpp = 0.0_wp; gp = 0.0_wp; hp = 0.0_wp
827# 389 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
828#if defined(MFC_OpenACC)
829# 389 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
831# 389 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
832#elif defined(MFC_OpenMP)
833# 389 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
835# 389 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
839 gp = gp + (
gs_min(i) - 1.0_wp)*q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
cvs(i) &
840 *(rhoe + ps - mq)/(mcp*(ps + p_infpt(i)))
842 gpp = gpp + (
gs_min(i) - 1.0_wp)*q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
cvs(i) &
843 *(p_infpt(i) - rhoe + mq)/(mcp*(ps + p_infpt(i))**2)
847 hp = 1.0_wp/(rhoe + ps - mq) + 1.0_wp/(ps + minval(p_infpt))
850 ps = po + ((1.0_wp - gp)/gpp)/(1.0_wp - (1.0_wp - gp + abs(1.0_wp - gp)) &
855 ts = (rhoe + ps - mq)/mcp
871# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
873# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
875# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
877# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
879# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
881# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
883# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
885# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
887# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
889# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
891# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
893# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
895# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
897# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
899# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
901# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
903# 423 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
905# 425 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
907 integer,
intent(in) :: j, k, l
908 real(wp),
intent(inout) :: pS
909 real(wp),
dimension(1:),
intent(in) :: p_infpT
910 real(wp),
intent(in) :: rhoe
911 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
912 real(wp),
intent(inout) :: TS
913# 435 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
914 real(wp),
dimension(num_fluids) :: p_infpTg
915# 437 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
916 real(wp),
dimension(2, 2) :: Jac, InvJac, TJac
917 real(wp),
dimension(2) :: R2D, DeltamP
919 real(wp) :: mCP, mCPD, mCVGP, mCVGP2, mQ, mQD
920 real(wp) :: ml, mT, dFdT, dTdm, dTdp
934 if (((ps < 0.0_wp) .and. ((q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) &
935 + q_cons_vf(
vp +
contxb - 1)%sf(j, k, l)) > ((rhoe &
937 ((ps >= 0.0_wp) .and. (ps < 1.0e-1_wp)))
then
949 r2d(1) = 0.0_wp; r2d(2) = 0.0_wp
950 deltamp(1) = 0.0_wp; deltamp(2) = 0.0_wp
951 do while (((sqrt(r2d(1)**2 + r2d(2)**2) >
ptgalpha_eps) &
952 .and. ((sqrt(r2d(1)**2 + r2d(2)**2)/rhoe) > (
ptgalpha_eps/1.e6_wp))) &
959 mcp = 0.0_wp; mcpd = 0.0_wp; mcvgp = 0.0_wp; mcvgp2 = 0.0_wp; mq = 0.0_wp; mqd = 0.0_wp
963# 483 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
964#if defined(MFC_OpenACC)
965# 483 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
967# 483 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
968#elif defined(MFC_OpenMP)
969# 483 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
971# 483 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
976 mcp = mcp + q_cons_vf(i +
contxb - 1)%sf(j, k, l) &
980 mq = mq + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
qvs(i)
984 if ((i /=
lp) .and. (i /=
vp))
then
986 mcvgp = mcvgp + q_cons_vf(i +
contxb - 1)%sf(j, k, l) &
989 mcvgp2 = mcvgp2 + q_cons_vf(i +
contxb - 1)%sf(j, k, l) &
992 mqd = mqd + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
qvs(i)
995 mcpd = mcpd + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
cvs(i) &
1005 ml = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l)
1008 mt = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) &
1009 + q_cons_vf(
vp +
contxb - 1)%sf(j, k, l)
1035 jac(1, 1) = dfdt*dtdm
1038 jac(1, 2) = dfdt*dtdp + ts &
1066 invjac(1, 1) = jac(2, 2)
1067 invjac(1, 2) = -1.0_wp*jac(1, 2)
1068 invjac(2, 1) = -1.0_wp*jac(2, 1)
1069 invjac(2, 2) = jac(1, 1)
1072 tjac(1, 1) = jac(1, 1)
1073 tjac(1, 2) = jac(2, 1)
1074 tjac(2, 1) = jac(1, 2)
1075 tjac(2, 2) = jac(2, 2)
1078 invjac = invjac/(jac(1, 1)*jac(2, 2) - jac(1, 2)*jac(2, 1))
1081 deltamp(1) = -1.0_wp*(invjac(1, 1)*r2d(1) + invjac(1, 2)*r2d(2))
1082 deltamp(2) = -1.0_wp*(invjac(2, 1)*r2d(1) + invjac(2, 2)*r2d(2))
1086 q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) + om*deltamp(1)
1089 q_cons_vf(
vp +
contxb - 1)%sf(j, k, l) = q_cons_vf(
vp +
contxb - 1)%sf(j, k, l) - om*deltamp(1)
1092 ps = ps + om*deltamp(2)
1098 ml = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l)
1101 mt = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) &
1102 + q_cons_vf(
vp +
contxb - 1)%sf(j, k, l)
1117 r2d(2) = (rhoe + ps &
1128 ts = (rhoe + ps - mq)/mcp
1139 subroutine s_correct_partial_densities(MCT, q_cons_vf, rM, j, k, l)
1141# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1143# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1145# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1147# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1149# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1151# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1153# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1155# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1157# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1159# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1161# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1163# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1165# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1167# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1169# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1171# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1173# 651 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1175# 653 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1181 real(wp),
intent(inout) ::
rm
1182 integer,
intent(in) ::
j,
k,
l
1184 if (
rm < 0.0_wp)
then
1217 end subroutine s_correct_partial_densities
1224 elemental subroutine s_tsat(pSat, TSat, TSIn)
1226# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1228# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1230# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1232# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1234# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1236# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1238# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1240# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1242# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1244# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1246# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1248# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1250# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1252# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1254# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1256# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1258# 702 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1260# 704 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1262 real(wp),
intent(in) :: psat
1263 real(wp),
intent(out) :: tsat
1264 real(wp),
intent(in) :: tsin
1266 real(wp) :: dfdt, ft, om
1312 tsat = tsat - om*ft/dfdt
type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf
real(wp), intent(inout) rm
real(wp), intent(out) mct
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
integer num_fluids
number of fluids in the simulation
real(wp) ptgalpha_eps
trigger parameter for the pTg relaxation procedure, phase change model
integer relax_model
Relaxation model.
integer model_eqns
Multicomponent flow model.
real(wp), dimension(:), allocatable ps_inf
real(wp), dimension(:), allocatable cvs
real(wp), dimension(:), allocatable qvps
real(wp), dimension(:), allocatable qvs
integer e_idx
Index of energy equation.
real(wp) palpha_eps
trigger parameter for the p relaxation procedure, phase change model
real(wp), dimension(:), allocatable gs_min
Basic floating-point utilities: approximate equality, default detection, and coordinate bounds.
logical elemental function, public f_approx_equal(a, b, tol_input)
This procedure checks if two floating point numbers of wp are within tolerance.
MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.
Phase transition relaxation solvers for liquid-vapor flows with cavitation and boiling.
impure subroutine, public s_finalize_relaxation_solver_module
This subroutine finalizes the phase change module.
subroutine, public s_infinite_relaxation_k(q_cons_vf)
This subroutine is created to activate either the pT- (N fluids) or the pTg-equilibrium (2 fluids for...
elemental subroutine s_tsat(psat, tsat, tsin)
This auxiliary subroutine finds the Saturation temperature for a given saturation pressure through a ...
integer, parameter vp
index for the vapor phase of the reacting fluid
integer, parameter lp
index for the liquid phase of the reacting fluid
subroutine s_infinite_pt_relaxation_k(j, k, l, mfl, ps, p_infpt, q_cons_vf, rhoe, ts)
This auxiliary subroutine is created to activate the pT-equilibrium for N fluids.
impure subroutine, public s_relaxation_solver(q_cons_vf)
This subroutine should dispatch to the correct relaxation solver based some parameter....
real(wp), parameter tcr
Critical water temperature.
integer, parameter max_iter
max # of iterations
impure subroutine, public s_initialize_phasechange_module
The purpose of this subroutine is to initialize the phase change module by setting the parameters nee...
real(wp), parameter mixm
threshold for 'mixture cell'. If Y < mixM, phase change does not happen
subroutine s_infinite_ptg_relaxation_k(j, k, l, ps, p_infpt, rhoe, q_cons_vf, ts)
This auxiliary subroutine is created to activate the pTg-equilibrium for N fluids under pT and 2 flui...
real(wp), parameter pcr
Critical water pressure.
Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation.
Derived type annexing a scalar field (SF).