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# 76 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245# 91 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
247# 102 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
249# 115 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
253# 154 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
255# 165 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257# 176 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
259# 186 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
261# 197 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 208 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265# 218 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
267# 224 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 230 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
271# 236 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
273# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 244 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
276# 245 "/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
421# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
423# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
424#if defined(MFC_OpenACC)
425# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
427# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
428#elif defined(MFC_OpenMP)
429# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
431# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
433# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
435# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
437# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
439# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
445 rho = 0.0_wp; tvf = 0.0_wp
447# 114 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
448#if defined(MFC_OpenACC)
449# 114 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
451# 114 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
452#elif defined(MFC_OpenMP)
453# 114 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
455# 114 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
483# 140 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
484#if defined(MFC_OpenACC)
485# 140 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
487# 140 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
488#elif defined(MFC_OpenMP)
489# 140 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
491# 140 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
514 .and. (ps <
pcr) .and. (ts <
tcr))
then
530 call s_tsat(psov, tsatov, tsov)
543 call s_tsat(pssl, tsatsl, tssl)
546 if (tsov > tsatov)
then
560 elseif (tssl < tsatsl)
then
593# 240 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
594#if defined(MFC_OpenACC)
595# 240 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
597# 240 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
598#elif defined(MFC_OpenMP)
599# 240 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
601# 240 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
613 gk(i) = hk(i) - ts*sk(i)
616 rhok(i) = (ps +
ps_inf(i)) &
628# 265 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
629#if defined(MFC_OpenACC)
630# 265 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
632# 265 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
633#elif defined(MFC_OpenMP)
634# 265 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
636# 265 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
656# 283 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
658# 283 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
659#if defined(MFC_OpenACC)
660# 283 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
662# 283 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
663#elif defined(MFC_OpenMP)
664# 283 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
666# 283 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
668# 283 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
670# 283 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
672# 283 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
689# 298 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
691# 298 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
693# 298 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
695# 298 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
697# 298 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
699# 298 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
701# 298 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
703# 298 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
705# 298 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
707# 300 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
710 integer,
intent(in) :: j, k, l, MFL
711 real(wp),
intent(out) :: pS
712 real(wp),
dimension(1:),
intent(out) :: p_infpT
713 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_cons_vf
714 real(wp),
intent(in) :: rhoe
715 real(wp),
intent(out) :: TS
716 real(wp) :: gp, gpp, hp, pO, mCP, mQ
717 real(wp) :: p_infpT_sum
722 mcp = 0.0_wp; mq = 0.0_wp; p_infpt_sum = 0._wp
724# 315 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
725#if defined(MFC_OpenACC)
726# 315 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
728# 315 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
729#elif defined(MFC_OpenMP)
730# 315 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
732# 315 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
736 p_infpt_sum = p_infpt_sum + abs(p_infpt(i))
740# 321 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
741#if defined(MFC_OpenACC)
742# 321 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
744# 321 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
745#elif defined(MFC_OpenMP)
746# 321 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
748# 321 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
756 mq = mq + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
qvs(i)
760# 340 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
763 if ((rhoe - mq - minval(p_infpt)) < 0.0_wp)
then
765 if ((mfl == 0) .or. (mfl == 1))
then
790 do while ((abs(ps - po) >
palpha_eps) .and. (abs((ps - po)/po) >
palpha_eps/1.e4_wp) .or. (ns == 0))
799 gpp = 0.0_wp; gp = 0.0_wp; hp = 0.0_wp
801# 379 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
802#if defined(MFC_OpenACC)
803# 379 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
805# 379 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
806#elif defined(MFC_OpenMP)
807# 379 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
809# 379 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
813 gp = gp + (
gs_min(i) - 1.0_wp)*q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
cvs(i) &
814 *(rhoe + ps - mq)/(mcp*(ps + p_infpt(i)))
816 gpp = gpp + (
gs_min(i) - 1.0_wp)*q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
cvs(i) &
817 *(p_infpt(i) - rhoe + mq)/(mcp*(ps + p_infpt(i))**2)
821 hp = 1.0_wp/(rhoe + ps - mq) + 1.0_wp/(ps + minval(p_infpt))
824 ps = po + ((1.0_wp - gp)/gpp)/(1.0_wp - (1.0_wp - gp + abs(1.0_wp - gp)) &
829 ts = (rhoe + ps - mq)/mcp
845# 413 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
847# 413 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
849# 413 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
851# 413 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
853# 413 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
855# 413 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
857# 413 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
859# 413 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
861# 413 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
863# 415 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
865 integer,
intent(in) :: j, k, l
866 real(wp),
intent(inout) :: pS
867 real(wp),
dimension(1:),
intent(in) :: p_infpT
868 real(wp),
intent(in) :: rhoe
869 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
870 real(wp),
intent(inout) :: TS
871# 425 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
872 real(wp),
dimension(num_fluids) :: p_infpTg
873# 427 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
874 real(wp),
dimension(2, 2) :: Jac, InvJac, TJac
875 real(wp),
dimension(2) :: R2D, DeltamP
877 real(wp) :: mCP, mCPD, mCVGP, mCVGP2, mQ, mQD
878 real(wp) :: ml, mT, dFdT, dTdm, dTdp
892 if (((ps < 0.0_wp) .and. ((q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) &
893 + q_cons_vf(
vp +
contxb - 1)%sf(j, k, l)) > ((rhoe &
895 ((ps >= 0.0_wp) .and. (ps < 1.0e-1_wp)))
then
907 r2d(1) = 0.0_wp; r2d(2) = 0.0_wp
908 deltamp(1) = 0.0_wp; deltamp(2) = 0.0_wp
909 do while (((sqrt(r2d(1)**2 + r2d(2)**2) >
ptgalpha_eps) &
910 .and. ((sqrt(r2d(1)**2 + r2d(2)**2)/rhoe) > (
ptgalpha_eps/1.e6_wp))) &
917 mcp = 0.0_wp; mcpd = 0.0_wp; mcvgp = 0.0_wp; mcvgp2 = 0.0_wp; mq = 0.0_wp; mqd = 0.0_wp
921# 473 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
922#if defined(MFC_OpenACC)
923# 473 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
925# 473 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
926#elif defined(MFC_OpenMP)
927# 473 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
929# 473 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
934 mcp = mcp + q_cons_vf(i +
contxb - 1)%sf(j, k, l) &
938 mq = mq + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
qvs(i)
942 if ((i /=
lp) .and. (i /=
vp))
then
944 mcvgp = mcvgp + q_cons_vf(i +
contxb - 1)%sf(j, k, l) &
947 mcvgp2 = mcvgp2 + q_cons_vf(i +
contxb - 1)%sf(j, k, l) &
950 mqd = mqd + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
qvs(i)
953 mcpd = mcpd + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
cvs(i) &
963 ml = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l)
966 mt = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) &
967 + q_cons_vf(
vp +
contxb - 1)%sf(j, k, l)
993 jac(1, 1) = dfdt*dtdm
996 jac(1, 2) = dfdt*dtdp + ts &
1024 invjac(1, 1) = jac(2, 2)
1025 invjac(1, 2) = -1.0_wp*jac(1, 2)
1026 invjac(2, 1) = -1.0_wp*jac(2, 1)
1027 invjac(2, 2) = jac(1, 1)
1030 tjac(1, 1) = jac(1, 1)
1031 tjac(1, 2) = jac(2, 1)
1032 tjac(2, 1) = jac(1, 2)
1033 tjac(2, 2) = jac(2, 2)
1036 invjac = invjac/(jac(1, 1)*jac(2, 2) - jac(1, 2)*jac(2, 1))
1039 deltamp = -1.0_wp*(matmul(invjac, r2d))
1043 q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) + om*deltamp(1)
1046 q_cons_vf(
vp +
contxb - 1)%sf(j, k, l) = q_cons_vf(
vp +
contxb - 1)%sf(j, k, l) - om*deltamp(1)
1049 ps = ps + om*deltamp(2)
1055 ml = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l)
1058 mt = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) &
1059 + q_cons_vf(
vp +
contxb - 1)%sf(j, k, l)
1074 r2d(2) = (rhoe + ps &
1085 ts = (rhoe + ps - mq)/mcp
1096 subroutine s_correct_partial_densities(MCT, q_cons_vf, rM, j, k, l)
1098# 640 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1100# 640 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1102# 640 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1104# 640 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1106# 640 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1108# 640 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1110# 640 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1112# 640 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1114# 640 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1116# 642 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1122 real(wp),
intent(inout) ::
rm
1123 integer,
intent(in) ::
j,
k,
l
1125 if (
rm < 0.0_wp)
then
1158 end subroutine s_correct_partial_densities
1165 elemental subroutine s_tsat(pSat, TSat, TSIn)
1167# 691 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1169# 691 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1171# 691 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1173# 691 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1175# 691 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1177# 691 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1179# 691 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1181# 691 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1183# 691 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1185# 693 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1187 real(wp),
intent(in) :: psat
1188 real(wp),
intent(out) :: tsat
1189 real(wp),
intent(in) :: tsin
1191 real(wp) :: dfdt, ft, om
1231 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.
Defines global parameters for the computational domain, simulation algorithm, and initial conditions.
integer num_fluids
Number of different fluids present in the flow.
real(wp) ptgalpha_eps
trigger parameter for the pTg relaxation procedure, phase change model
integer relax_model
Relax Model.
integer model_eqns
Multicomponent flow model.
integer e_idx
Index of total energy equation.
real(wp) palpha_eps
trigger parameter for the p relaxation procedure, phase change model
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.
Broadcasts user inputs and decomposes the domain across MPI ranks for pre-processing.
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.
real(wp), dimension(:), allocatable, public ps_inf
real(wp), dimension(:), allocatable, public gs_min
real(wp), dimension(:), allocatable, public qvs
real(wp), dimension(:), allocatable, public cvs
real(wp), dimension(:), allocatable, public qvps
Derived type annexing a scalar field (SF).