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# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 244 "/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# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
132# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
134# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
138# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
140# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
142# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
144# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
146# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
148# 377 "/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# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
219# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
221# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
223# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
225# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
227# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
229# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
231# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
233# 311 "/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
238# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
241# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
244# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
247# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
250# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
253# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
256# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
259# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
262# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
268# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
271# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
274# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
277# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
280# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
283# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
286# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
289# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
292# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
294# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
295# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
297# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
299# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
304# 57 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
307# 77 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
310# 85 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
313# 109 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
316# 125 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
319# 150 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
321# 156 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
323# 163 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
325# 7 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp" 2
330#ifndef MFC_POST_PROCESS
346 real(wp),
parameter ::
pcr = 4.94e7_wp
347 real(wp),
parameter ::
tcr = 385.05_wp + 273.15_wp
348 real(wp),
parameter ::
mixm = 1.0e-8_wp
349 integer,
parameter ::
lp = 1
350 integer,
parameter ::
vp = 2
359# 39 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
360#if defined(MFC_OpenACC)
361# 39 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
363# 39 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
364#elif defined(MFC_OpenMP)
365# 39 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
367# 39 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
378 if (.not. (.false.))
then
379# 49 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
380 call s_mpi_abort(
"m_phase_change.fpp:49: " //
"Assertion failed: .false.. " &
381# 49 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
382 & //
"s_relaxation_solver called but it currently does nothing")
383# 49 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
406 real(wp) :: ps, psov, pssl
407 real(wp) :: ts, tsov, tssl, tsatov, tsatsl
408 real(wp) :: rhoe, dyne, rhos
409 real(wp) :: rho,
rm, m1, m2,
mct
414# 82 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
415 real(wp),
dimension(num_fluids) :: p_infov, p_infpt, p_infsl, sk, hk, gk, ek, rhok
416# 84 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
420 integer :: i,
j,
k,
l
432# 98 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
434# 98 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
435#if defined(MFC_OpenACC)
436# 98 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
438# 98 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
439#elif defined(MFC_OpenMP)
440# 98 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
442# 98 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
444# 98 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
446# 98 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
448# 98 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
450# 100 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
454 rho = 0.0_wp; tvf = 0.0_wp
456# 104 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
457#if defined(MFC_OpenACC)
458# 104 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
460# 104 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
461#elif defined(MFC_OpenMP)
462# 104 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
464# 104 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
490# 128 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
491#if defined(MFC_OpenACC)
492# 128 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
494# 128 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
495#elif defined(MFC_OpenMP)
496# 128 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
498# 128 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
530 call s_tsat(psov, tsatov, tsov)
542 call s_tsat(pssl, tsatsl, tssl)
545 if (tsov > tsatov)
then
557 else if (tssl < tsatsl)
then
584# 212 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
585#if defined(MFC_OpenACC)
586# 212 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
588# 212 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
589#elif defined(MFC_OpenMP)
590# 212 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
592# 212 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
602 gk(i) = hk(i) - ts*sk(i)
614# 232 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
615#if defined(MFC_OpenACC)
616# 232 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
618# 232 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
619#elif defined(MFC_OpenMP)
620# 232 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
622# 232 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
640# 248 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
641#if defined(MFC_OpenACC)
642# 248 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
644# 248 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
645#elif defined(MFC_OpenMP)
646# 248 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
648# 248 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
650# 248 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
660# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
662# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
664# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
666# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
668# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
670# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
672# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
674# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
676# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
678# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
680# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
682# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
684# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
686# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
688# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
690# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
692# 256 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
696 integer,
intent(in) :: j, k, l, MFL
697 real(wp),
intent(out) :: pS
698 real(wp),
dimension(1:),
intent(out) :: p_infpT
699 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_cons_vf
700 real(wp),
intent(in) :: rhoe
701 real(wp),
intent(out) :: TS
702 real(wp) :: gp, gpp, hp, pO, mCP, mQ
703 real(wp) :: p_infpT_sum
706 mcp = 0.0_wp; mq = 0.0_wp; p_infpt_sum = 0._wp
708# 270 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
709#if defined(MFC_OpenACC)
710# 270 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
712# 270 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
713#elif defined(MFC_OpenMP)
714# 270 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
716# 270 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
720 p_infpt_sum = p_infpt_sum + abs(p_infpt(i))
724# 276 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
725#if defined(MFC_OpenACC)
726# 276 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
728# 276 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
729#elif defined(MFC_OpenMP)
730# 276 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
732# 276 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
739 mq = mq + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
qvs(i)
742# 293 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
745 if ((rhoe - mq - minval(p_infpt)) < 0.0_wp)
then
746 if ((mfl == 0) .or. (mfl == 1))
then
768 do while ((abs(ps - po) >
palpha_eps) .and. (abs((ps - po)/po) >
palpha_eps/1.e4_wp) .or. (ns == 0))
776 gpp = 0.0_wp; gp = 0.0_wp; hp = 0.0_wp
778# 327 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
779#if defined(MFC_OpenACC)
780# 327 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
782# 327 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
783#elif defined(MFC_OpenMP)
784# 327 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
786# 327 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
789 gp = gp + (
gs_min(i) - 1.0_wp)*q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
cvs(i)*(rhoe + ps - mq)/(mcp*(ps + p_infpt(i)))
791 gpp = gpp + (
gs_min(i) - 1.0_wp)*q_cons_vf(i +
contxb - 1)%sf(j, k, &
792 & l)*
cvs(i)*(p_infpt(i) - rhoe + mq)/(mcp*(ps + p_infpt(i))**2)
795 hp = 1.0_wp/(rhoe + ps - mq) + 1.0_wp/(ps + minval(p_infpt))
798 ps = po + ((1.0_wp - gp)/gpp)/(1.0_wp - (1.0_wp - gp + abs(1.0_wp - gp))/(2.0_wp*gpp)*hp)
802 ts = (rhoe + ps - mq)/mcp
811# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
813# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
815# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
817# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
819# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
821# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
823# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
825# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
827# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
829# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
831# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
833# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
835# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
837# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
839# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
841# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
843# 350 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
846 integer,
intent(in) :: j, k, l
847 real(wp),
intent(inout) :: pS
848 real(wp),
dimension(1:),
intent(in) :: p_infpT
849 real(wp),
intent(in) :: rhoe
850 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
851 real(wp),
intent(inout) :: TS
852# 361 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
853 real(wp),
dimension(num_fluids) :: p_infpTg
854# 363 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
855 real(wp),
dimension(2, 2) :: Jac, InvJac, TJac
856 real(wp),
dimension(2) :: R2D, DeltamP
858 real(wp) :: mCP, mCPD, mCVGP, mCVGP2, mQ, mQD
859 real(wp) :: ml, mT, dFdT, dTdm, dTdp
871 if (((ps < 0.0_wp) .and. ((q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) + q_cons_vf(
vp +
contxb - 1)%sf(j, k, &
879 r2d(1) = 0.0_wp; r2d(2) = 0.0_wp
880 deltamp(1) = 0.0_wp; deltamp(2) = 0.0_wp
881 do while (((sqrt(r2d(1)**2 + r2d(2)**2) >
ptgalpha_eps) .and. ((sqrt(r2d(1)**2 + r2d(2)**2)/rhoe) > (
ptgalpha_eps/1.e6_wp) &
888 mcp = 0.0_wp; mcpd = 0.0_wp; mcvgp = 0.0_wp; mcvgp2 = 0.0_wp; mq = 0.0_wp; mqd = 0.0_wp
892# 399 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
893#if defined(MFC_OpenACC)
894# 399 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
896# 399 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
897#elif defined(MFC_OpenMP)
898# 399 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
900# 399 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
907 mq = mq + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
qvs(i)
910 if ((i /=
lp) .and. (i /=
vp))
then
915 mqd = mqd + q_cons_vf(i +
contxb - 1)%sf(j, k, l)*
qvs(i)
925 ml = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l)
928 mt = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) + q_cons_vf(
vp +
contxb - 1)%sf(j, k, l)
944 jac(1, 1) = dfdt*dtdm
965 invjac(1, 1) = jac(2, 2)
966 invjac(1, 2) = -1.0_wp*jac(1, 2)
967 invjac(2, 1) = -1.0_wp*jac(2, 1)
968 invjac(2, 2) = jac(1, 1)
971 tjac(1, 1) = jac(1, 1)
972 tjac(1, 2) = jac(2, 1)
973 tjac(2, 1) = jac(1, 2)
974 tjac(2, 2) = jac(2, 2)
977 invjac = invjac/(jac(1, 1)*jac(2, 2) - jac(1, 2)*jac(2, 1))
980 deltamp(1) = -1.0_wp*(invjac(1, 1)*r2d(1) + invjac(1, 2)*r2d(2))
981 deltamp(2) = -1.0_wp*(invjac(2, 1)*r2d(1) + invjac(2, 2)*r2d(2))
984 q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) + om*deltamp(1)
987 q_cons_vf(
vp +
contxb - 1)%sf(j, k, l) = q_cons_vf(
vp +
contxb - 1)%sf(j, k, l) - om*deltamp(1)
990 ps = ps + om*deltamp(2)
996 ml = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l)
999 mt = q_cons_vf(
lp +
contxb - 1)%sf(j, k, l) + q_cons_vf(
vp +
contxb - 1)%sf(j, k, l)
1015 ts = (rhoe + ps - mq)/mcp
1021 subroutine s_correct_partial_densities(MCT, q_cons_vf, rM, j, k, l)
1024# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1026# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1028# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1030# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1032# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1034# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1036# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1038# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1040# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1042# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1044# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1046# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1048# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1050# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1052# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1054# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1056# 521 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1063 real(wp),
intent(inout) ::
rm
1064 integer,
intent(in) ::
j,
k,
l
1066 if (
rm < 0.0_wp)
then
1068 &
l) >= -1.0_wp*
mixm))
then
1091 end subroutine s_correct_partial_densities
1094 elemental subroutine s_tsat(pSat, TSat, TSIn)
1097# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1099# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1101# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1103# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1105# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1107# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1109# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1111# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1113# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1115# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1117# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1119# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1121# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1123# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1125# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1127# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1129# 560 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1132 real(wp),
intent(in) :: psat
1133 real(wp),
intent(out) :: tsat
1134 real(wp),
intent(in) :: tsin
1135 real(wp) :: dfdt, ft, om
1170 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)
Check 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
Finalize the phase change module.
subroutine, public s_infinite_relaxation_k(q_cons_vf)
Apply pT- or pTg-equilibrium relaxation with mass depletion based on the incoming state conditions.
elemental subroutine s_tsat(psat, tsat, tsin)
Find the saturation temperature for a given saturation pressure using a Newton solver.
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)
Apply pT-equilibrium relaxation for N fluids.
impure subroutine, public s_relaxation_solver(q_cons_vf)
Dispatch to the correct relaxation solver. Replaces the procedure pointer, which CCE is breaking on.
real(wp), parameter tcr
Critical temperature of water [K].
integer, parameter max_iter
max # of iterations
impure subroutine, public s_initialize_phasechange_module
Initialize the phase change module by setting saturation curve coefficients for pT- or pTg-equilibriu...
real(wp), parameter mixm
Mixture mass fraction threshold for triggering phase change.
subroutine s_infinite_ptg_relaxation_k(j, k, l, ps, p_infpt, rhoe, q_cons_vf, ts)
Apply pTg-equilibrium relaxation for N fluids under pT and 2 fluids under pTg-equilibrium....
real(wp), parameter pcr
Critical pressure of water [Pa].
Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation.
Derived type annexing a scalar field (SF).