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# 187 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
261# 198 "/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# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
267# 220 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 226 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
271# 232 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
273# 234 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
274# 235 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
276# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
278# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
284# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
286# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
288# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
290# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
292# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
294# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
296# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
298# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
300# 7 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp" 2
305#ifndef MFC_POST_PROCESS
311 use m_mpi_proxy !< message passing interface (mpi) module proxy
330 real(wp),
parameter ::
pcr = 4.94e7_wp
331 real(wp),
parameter ::
tcr = 385.05_wp + 273.15_wp
332 real(wp),
parameter ::
mixm = 1.0e-8_wp
333 integer,
parameter ::
lp = 1
334 integer,
parameter ::
vp = 2
343# 48 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
344#if defined(MFC_OpenACC)
345# 48 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
347# 48 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
348#elif defined(MFC_OpenMP)
349# 48 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
351# 48 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
363 if (.not. (.false.))
then
364# 59 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
365 call s_mpi_abort(
"m_phase_change.fpp:59: "// &
366# 59 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
367 "Assertion failed: .false.. " &
368# 59 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
369 //
"s_relaxation_solver called but it currently does nothing")
370# 59 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
401 real(wp) :: ps, psov, pssl
402 real(wp) :: ts, tsov, tssl, tsatov, tsatsl
403 real(wp) :: rhoe, dyne, rhos
404 real(wp) :: rho,
rm, m1, m2,
mct
409# 100 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
410 real(wp),
dimension(num_fluids) :: p_infov, p_infpt, p_infsl, sk, hk, gk, ek, rhok
411# 102 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
415 integer :: i,
j,
k,
l
419# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
421# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
422#if defined(MFC_OpenACC)
423# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
425# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
426#elif defined(MFC_OpenMP)
427# 108 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
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"
443 rho = 0.0_wp; tvf = 0.0_wp
445# 114 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
446#if defined(MFC_OpenACC)
447# 114 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
449# 114 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
450#elif defined(MFC_OpenMP)
451# 114 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
453# 114 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
481# 140 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
482#if defined(MFC_OpenACC)
483# 140 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
485# 140 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
486#elif defined(MFC_OpenMP)
487# 140 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
489# 140 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
512 .and. (ps <
pcr) .and. (ts <
tcr))
then
528 call s_tsat(psov, tsatov, tsov)
541 call s_tsat(pssl, tsatsl, tssl)
544 if (tsov > tsatov)
then
558 elseif (tssl < tsatsl)
then
591# 240 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
592#if defined(MFC_OpenACC)
593# 240 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
595# 240 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
596#elif defined(MFC_OpenMP)
597# 240 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
599# 240 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
611 gk(i) = hk(i) - ts*sk(i)
614 rhok(i) = (ps +
ps_inf(i)) &
626# 265 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
627#if defined(MFC_OpenACC)
628# 265 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
630# 265 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
631#elif defined(MFC_OpenMP)
632# 265 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
634# 265 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
654# 283 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
656# 283 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
657#if defined(MFC_OpenACC)
658# 283 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
660# 283 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
661#elif defined(MFC_OpenMP)
662# 283 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
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"
687# 298 "/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# 300 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
708 integer,
intent(in) :: j, k, l, MFL
709 real(wp),
intent(out) :: pS
710 real(wp),
dimension(1:),
intent(out) :: p_infpT
711 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_cons_vf
712 real(wp),
intent(in) :: rhoe
713 real(wp),
intent(out) :: TS
714 real(wp) :: gp, gpp, hp, pO, mCP, mQ
715 real(wp) :: p_infpT_sum
720 mcp = 0.0_wp; mq = 0.0_wp; p_infpt_sum = 0._wp
722# 315 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
723#if defined(MFC_OpenACC)
724# 315 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
726# 315 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
727#elif defined(MFC_OpenMP)
728# 315 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
730# 315 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
734 p_infpt_sum = p_infpt_sum + abs(p_infpt(i))
738# 321 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
739#if defined(MFC_OpenACC)
740# 321 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
742# 321 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
743#elif defined(MFC_OpenMP)
744# 321 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
746# 321 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
754 mq = mq + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
qvs(i)
758# 340 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
761 if ((rhoe - mq - minval(p_infpt)) < 0.0_wp)
then
763 if ((mfl == 0) .or. (mfl == 1))
then
788 do while ((abs(ps - po) > palpha_eps) .and. (abs((ps - po)/po) > palpha_eps/1.e4_wp) .or. (ns == 0))
797 gpp = 0.0_wp; gp = 0.0_wp; hp = 0.0_wp
799# 379 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
800#if defined(MFC_OpenACC)
801# 379 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
803# 379 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
804#elif defined(MFC_OpenMP)
805# 379 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
807# 379 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
811 gp = gp + (
gs_min(i) - 1.0_wp)*q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
cvs(i) &
812 *(rhoe + ps - mq)/(mcp*(ps + p_infpt(i)))
814 gpp = gpp + (
gs_min(i) - 1.0_wp)*q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
cvs(i) &
815 *(p_infpt(i) - rhoe + mq)/(mcp*(ps + p_infpt(i))**2)
819 hp = 1.0_wp/(rhoe + ps - mq) + 1.0_wp/(ps + minval(p_infpt))
822 ps = po + ((1.0_wp - gp)/gpp)/(1.0_wp - (1.0_wp - gp + abs(1.0_wp - gp)) &
827 ts = (rhoe + ps - mq)/mcp
843# 413 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
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# 415 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
863 integer,
intent(in) :: j, k, l
864 real(wp),
intent(inout) :: pS
865 real(wp),
dimension(1:),
intent(in) :: p_infpT
866 real(wp),
intent(in) :: rhoe
867 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
868 real(wp),
intent(inout) :: TS
869# 425 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
870 real(wp),
dimension(num_fluids) :: p_infpTg
871# 427 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
872 real(wp),
dimension(2, 2) :: Jac, InvJac, TJac
873 real(wp),
dimension(2) :: R2D, DeltamP
875 real(wp) :: mCP, mCPD, mCVGP, mCVGP2, mQ, mQD
876 real(wp) :: ml, mT, dFdT, dTdm, dTdp
890 if (((ps < 0.0_wp) .and. ((q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) &
891 + q_cons_vf(
vp +
contxb - 1)%sf(j, k, l)) > ((rhoe &
893 ((ps >= 0.0_wp) .and. (ps < 1.0e-1_wp)))
then
905 r2d(1) = 0.0_wp; r2d(2) = 0.0_wp
906 deltamp(1) = 0.0_wp; deltamp(2) = 0.0_wp
907 do while (((sqrt(r2d(1)**2 + r2d(2)**2) > ptgalpha_eps) &
908 .and. ((sqrt(r2d(1)**2 + r2d(2)**2)/rhoe) > (ptgalpha_eps/1.e6_wp))) &
915 mcp = 0.0_wp; mcpd = 0.0_wp; mcvgp = 0.0_wp; mcvgp2 = 0.0_wp; mq = 0.0_wp; mqd = 0.0_wp
919# 473 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
920#if defined(MFC_OpenACC)
921# 473 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
923# 473 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
924#elif defined(MFC_OpenMP)
925# 473 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
927# 473 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
932 mcp = mcp + q_cons_vf(i +
contxb - 1)%sf(j, k, l) &
936 mq = mq + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
qvs(i)
940 if ((i /=
lp) .and. (i /=
vp))
then
942 mcvgp = mcvgp + q_cons_vf(i +
contxb - 1)%sf(j, k, l) &
945 mcvgp2 = mcvgp2 + q_cons_vf(i +
contxb - 1)%sf(j, k, l) &
948 mqd = mqd + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
qvs(i)
951 mcpd = mcpd + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
cvs(i) &
961 ml = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l)
964 mt = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) &
965 + q_cons_vf(
vp +
contxb - 1)%sf(j, k, l)
991 jac(1, 1) = dfdt*dtdm
994 jac(1, 2) = dfdt*dtdp + ts &
1022 invjac(1, 1) = jac(2, 2)
1023 invjac(1, 2) = -1.0_wp*jac(1, 2)
1024 invjac(2, 1) = -1.0_wp*jac(2, 1)
1025 invjac(2, 2) = jac(1, 1)
1028 tjac(1, 1) = jac(1, 1)
1029 tjac(1, 2) = jac(2, 1)
1030 tjac(2, 1) = jac(1, 2)
1031 tjac(2, 2) = jac(2, 2)
1034 invjac = invjac/(jac(1, 1)*jac(2, 2) - jac(1, 2)*jac(2, 1))
1037 deltamp = -1.0_wp*(matmul(invjac, r2d))
1041 q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) + om*deltamp(1)
1044 q_cons_vf(
vp +
contxb - 1)%sf(j, k, l) = q_cons_vf(
vp +
contxb - 1)%sf(j, k, l) - om*deltamp(1)
1047 ps = ps + om*deltamp(2)
1053 ml = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l)
1056 mt = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) &
1057 + q_cons_vf(
vp +
contxb - 1)%sf(j, k, l)
1072 r2d(2) = (rhoe + ps &
1083 ts = (rhoe + ps - mq)/mcp
1094 subroutine s_correct_partial_densities(MCT, q_cons_vf, rM, j, k, l)
1096# 640 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
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# 642 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1120 real(wp),
intent(inout) ::
rm
1121 integer,
intent(in) ::
j,
k,
l
1123 if (
rm < 0.0_wp)
then
1156 end subroutine s_correct_partial_densities
1163 elemental subroutine s_tsat(pSat, TSat, TSIn)
1165# 691 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
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# 693 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1185 real(wp),
intent(in) :: psat
1186 real(wp),
intent(out) :: tsat
1187 real(wp),
intent(in) :: tsin
1189 real(wp) :: dfdt, ft, om
1210 do while ((abs(ft) > ptgalpha_eps) .or. (ns == 0))
1229 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 post-process: domain geometry, equation of state, and output database setti...
integer num_fluids
Number of different fluids present in the flow.
integer relax_model
Phase change relaxation model.
integer model_eqns
Multicomponent flow model.
integer e_idx
Index of energy equation.
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 gather and scatter operations for distributing post-process grid and flow-variable data.
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).