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"
641# 249 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
642#if defined(MFC_OpenACC)
643# 249 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
645# 249 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
646#elif defined(MFC_OpenMP)
647# 249 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
649# 249 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
651# 249 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
661# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
663# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
665# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
667# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
669# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
671# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
673# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
675# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
677# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
679# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
681# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
683# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
685# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
687# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
689# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
691# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
693# 257 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
697 integer,
intent(in) :: j, k, l, MFL
698 real(wp),
intent(out) :: pS
699 real(wp),
dimension(1:),
intent(out) :: p_infpT
700 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_cons_vf
701 real(wp),
intent(in) :: rhoe
702 real(wp),
intent(out) :: TS
703 real(wp) :: gp, gpp, hp, pO, mCP, mQ
704 real(wp) :: p_infpT_sum
707 mcp = 0.0_wp; mq = 0.0_wp; p_infpt_sum = 0._wp
709# 271 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
710#if defined(MFC_OpenACC)
711# 271 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
713# 271 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
714#elif defined(MFC_OpenMP)
715# 271 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
717# 271 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
721 p_infpt_sum = p_infpt_sum + abs(p_infpt(i))
725# 277 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
726#if defined(MFC_OpenACC)
727# 277 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
729# 277 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
730#elif defined(MFC_OpenMP)
731# 277 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
733# 277 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
737 mcp = mcp + q_cons_vf(i +
eqn_idx%cont%beg - 1)%sf(j, k, l)*
cvs(i)*
gs_min(i)
740 mq = mq + q_cons_vf(i +
eqn_idx%cont%beg - 1)%sf(j, k, l)*
qvs(i)
743# 294 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
746 if ((rhoe - mq - minval(p_infpt)) < 0.0_wp)
then
747 if ((mfl == 0) .or. (mfl == 1))
then
769 do while ((abs(ps - po) >
palpha_eps) .and. (abs((ps - po)/po) >
palpha_eps/1.e4_wp) .or. (ns == 0))
777 gpp = 0.0_wp; gp = 0.0_wp; hp = 0.0_wp
779# 328 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
780#if defined(MFC_OpenACC)
781# 328 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
783# 328 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
784#elif defined(MFC_OpenMP)
785# 328 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
787# 328 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
790 gp = gp + (
gs_min(i) - 1.0_wp)*q_cons_vf(i +
eqn_idx%cont%beg - 1)%sf(j, k, &
791 & l)*
cvs(i)*(rhoe + ps - mq)/(mcp*(ps + p_infpt(i)))
793 gpp = gpp + (
gs_min(i) - 1.0_wp)*q_cons_vf(i +
eqn_idx%cont%beg - 1)%sf(j, k, &
794 & l)*
cvs(i)*(p_infpt(i) - rhoe + mq)/(mcp*(ps + p_infpt(i))**2)
797 hp = 1.0_wp/(rhoe + ps - mq) + 1.0_wp/(ps + minval(p_infpt))
800 ps = po + ((1.0_wp - gp)/gpp)/(1.0_wp - (1.0_wp - gp + abs(1.0_wp - gp))/(2.0_wp*gpp)*hp)
804 ts = (rhoe + ps - mq)/mcp
813# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
815# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
817# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
819# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
821# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
823# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
825# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
827# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
829# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
831# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
833# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
835# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
837# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
839# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
841# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
843# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
845# 352 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
848 integer,
intent(in) :: j, k, l
849 real(wp),
intent(inout) :: pS
850 real(wp),
dimension(1:),
intent(in) :: p_infpT
851 real(wp),
intent(in) :: rhoe
852 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
853 real(wp),
intent(inout) :: TS
854# 363 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
855 real(wp),
dimension(num_fluids) :: p_infpTg
856# 365 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
857 real(wp),
dimension(2, 2) :: Jac, InvJac, TJac
858 real(wp),
dimension(2) :: R2D, DeltamP
860 real(wp) :: mCP, mCPD, mCVGP, mCVGP2, mQ, mQD
861 real(wp) :: ml, mT, dFdT, dTdm, dTdp
873 if (((ps < 0.0_wp) .and. ((q_cons_vf(
lp +
eqn_idx%cont%beg - 1)%sf(j, k, l) + q_cons_vf(
vp +
eqn_idx%cont%beg - 1)%sf(j, &
882 r2d(1) = 0.0_wp; r2d(2) = 0.0_wp
883 deltamp(1) = 0.0_wp; deltamp(2) = 0.0_wp
884 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) &
891 mcp = 0.0_wp; mcpd = 0.0_wp; mcvgp = 0.0_wp; mcvgp2 = 0.0_wp; mq = 0.0_wp; mqd = 0.0_wp
895# 402 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
896#if defined(MFC_OpenACC)
897# 402 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
899# 402 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
900#elif defined(MFC_OpenMP)
901# 402 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
903# 402 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
907 mcp = mcp + q_cons_vf(i +
eqn_idx%cont%beg - 1)%sf(j, k, l)*
cvs(i)*
gs_min(i)
910 mq = mq + q_cons_vf(i +
eqn_idx%cont%beg - 1)%sf(j, k, l)*
qvs(i)
913 if ((i /=
lp) .and. (i /=
vp))
then
916 mcvgp2 = mcvgp2 + q_cons_vf(i +
eqn_idx%cont%beg - 1)%sf(j, k, l)*
cvs(i)*(
gs_min(i) - 1)/((ps +
ps_inf(i))**2)
918 mqd = mqd + q_cons_vf(i +
eqn_idx%cont%beg - 1)%sf(j, k, l)*
qvs(i)
921 mcpd = mcpd + q_cons_vf(i +
eqn_idx%cont%beg - 1)%sf(j, k, l)*
cvs(i)*
gs_min(i)
928 ml = q_cons_vf(
lp +
eqn_idx%cont%beg - 1)%sf(j, k, l)
931 mt = q_cons_vf(
lp +
eqn_idx%cont%beg - 1)%sf(j, k, l) + q_cons_vf(
vp +
eqn_idx%cont%beg - 1)%sf(j, k, l)
947 jac(1, 1) = dfdt*dtdm
968 invjac(1, 1) = jac(2, 2)
969 invjac(1, 2) = -1.0_wp*jac(1, 2)
970 invjac(2, 1) = -1.0_wp*jac(2, 1)
971 invjac(2, 2) = jac(1, 1)
974 tjac(1, 1) = jac(1, 1)
975 tjac(1, 2) = jac(2, 1)
976 tjac(2, 1) = jac(1, 2)
977 tjac(2, 2) = jac(2, 2)
980 invjac = invjac/(jac(1, 1)*jac(2, 2) - jac(1, 2)*jac(2, 1))
983 deltamp(1) = -1.0_wp*(invjac(1, 1)*r2d(1) + invjac(1, 2)*r2d(2))
984 deltamp(2) = -1.0_wp*(invjac(2, 1)*r2d(1) + invjac(2, 2)*r2d(2))
987 q_cons_vf(
lp +
eqn_idx%cont%beg - 1)%sf(j, k, l) = q_cons_vf(
lp +
eqn_idx%cont%beg - 1)%sf(j, k, l) + om*deltamp(1)
990 q_cons_vf(
vp +
eqn_idx%cont%beg - 1)%sf(j, k, l) = q_cons_vf(
vp +
eqn_idx%cont%beg - 1)%sf(j, k, l) - om*deltamp(1)
993 ps = ps + om*deltamp(2)
999 ml = q_cons_vf(
lp +
eqn_idx%cont%beg - 1)%sf(j, k, l)
1002 mt = q_cons_vf(
lp +
eqn_idx%cont%beg - 1)%sf(j, k, l) + q_cons_vf(
vp +
eqn_idx%cont%beg - 1)%sf(j, k, l)
1018 ts = (rhoe + ps - mq)/mcp
1024 subroutine s_correct_partial_densities(MCT, q_cons_vf, rM, j, k, l)
1027# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1029# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1031# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1033# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1035# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1037# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1039# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1041# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1043# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1045# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1047# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1049# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1051# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1053# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1055# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1057# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1059# 524 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1066 real(wp),
intent(inout) ::
rm
1067 integer,
intent(in) ::
j,
k,
l
1069 if (
rm < 0.0_wp)
then
1094 end subroutine s_correct_partial_densities
1097 elemental subroutine s_tsat(pSat, TSat, TSIn)
1100# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1102# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1104# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1106# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1108# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1110# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1112# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1114# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1116# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1118# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1120# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1122# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1124# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1126# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1128# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1130# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1132# 563 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1135 real(wp),
intent(in) :: psat
1136 real(wp),
intent(out) :: tsat
1137 real(wp),
intent(in) :: tsin
1138 real(wp) :: dfdt, ft, om
1173 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
real(wp) palpha_eps
trigger parameter for the p relaxation procedure, phase change model
real(wp), dimension(:), allocatable gs_min
type(eqn_idx_info) eqn_idx
All conserved-variable equation index ranges and scalars.
Basic floating-point utilities: approximate equality, default detection, and coordinate bounds.
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).