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# 8 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
15# 12 "/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# 145 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
47# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
48# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
49# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
51# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
53# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
55# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
57# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
59# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
61# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
63# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
65# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
67# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
69# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
71# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
73# 145 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
75# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
77# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
79# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
81# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
83# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
85# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
87# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
89# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
91# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
93# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
95# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
97# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
99# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
101# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
103# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
105# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
107# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
109# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
111# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
115# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 244 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
128# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
130# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
132# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
134# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
136# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
138# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
140# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
142# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
144# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
146# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
148# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
150# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
152# 377 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
154# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
155# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
156# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
157# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
159# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
161# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
163# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
165# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
167# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
169# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
171# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
173# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
175# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
177# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
179# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
181# 145 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
183# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
185# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
187# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
189# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
191# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
193# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
195# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
197# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
199# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
201# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
203# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
205# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
207# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
209# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
211# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
213# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
215# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
217# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
219# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
221# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
223# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
225# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
227# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
229# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
231# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
233# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
235# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
237# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
239# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
241# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
244# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
247# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
250# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
253# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
256# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
259# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
262# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
268# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
271# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
274# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
277# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
280# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
283# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
286# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
289# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
292# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
295# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
298# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
300# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
301# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
303# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
305# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
310# 57 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
313# 77 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
316# 85 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
319# 109 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
322# 125 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
325# 150 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
327# 156 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
329# 163 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
331# 7 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp" 2
336#ifndef MFC_POST_PROCESS
353 real(wp),
parameter ::
pcr = 4.94e7_wp
354 real(wp),
parameter ::
tcr = 385.05_wp + 273.15_wp
355 real(wp),
parameter ::
mixm = 1.0e-8_wp
356 integer,
parameter ::
lp = 1
357 integer,
parameter ::
vp = 2
366# 40 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
367#if defined(MFC_OpenACC)
368# 40 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
370# 40 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
371#elif defined(MFC_OpenMP)
372# 40 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
374# 40 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
385 if (.not. (.false.))
then
386# 50 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
387 call s_mpi_abort(
"m_phase_change.fpp:50: " //
"Assertion failed: .false.. " &
388# 50 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
389 & //
"s_relaxation_solver called but it currently does nothing")
390# 50 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
413 real(wp) :: ps, psov, pssl
414 real(wp) :: ts, tsov, tssl, tsatov, tsatsl
415 real(wp) :: rhoe, dyne, rhos
416 real(wp) :: rho,
rm, m1, m2,
mct
421# 83 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
422 real(wp),
dimension(num_fluids) :: p_infov, p_infpt, p_infsl, sk, hk, gk, ek, rhok
423# 85 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
427 integer :: i,
j,
k,
l
439# 99 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
441# 99 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
442#if defined(MFC_OpenACC)
443# 99 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
445# 99 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
447# 99 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
448#elif defined(MFC_OpenMP)
449# 99 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
451# 99 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
453# 99 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
455# 99 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
457# 99 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
459# 99 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
461# 101 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
465 rho = 0.0_wp; tvf = 0.0_wp
467# 105 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
468#if defined(MFC_OpenACC)
469# 105 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
471# 105 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
472#elif defined(MFC_OpenMP)
473# 105 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
475# 105 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
479 rho = rho +
q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(
j,
k,
l)
482 tvf = tvf +
q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(
j,
k,
l)
501# 129 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
502#if defined(MFC_OpenACC)
503# 129 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
505# 129 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
506#elif defined(MFC_OpenMP)
507# 129 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
509# 129 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
511 do i = eqn_idx%mom%beg, eqn_idx%mom%end
525 if ((relax_model == 6) .and. ((
q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(
j,
k, &
541 call s_tsat(psov, tsatov, tsov)
553 call s_tsat(pssl, tsatsl, tssl)
556 if (tsov > tsatov)
then
568 else if (tssl < tsatsl)
then
595# 213 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
596#if defined(MFC_OpenACC)
597# 213 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
599# 213 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
600#elif defined(MFC_OpenMP)
601# 213 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
603# 213 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
613 gk(i) = hk(i) - ts*sk(i)
625# 233 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
626#if defined(MFC_OpenACC)
627# 233 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
629# 233 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
630#elif defined(MFC_OpenMP)
631# 233 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
633# 233 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
646 rhos = rhos +
q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(
j,
k,
l)*sk(i)
652# 250 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
653#if defined(MFC_OpenACC)
654# 250 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
656# 250 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
657#elif defined(MFC_OpenMP)
658# 250 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
660# 250 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
662# 250 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
672# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
674# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
676# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
678# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
680# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
682# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
684# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
686# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
688# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
690# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
692# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
694# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
696# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
698# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
700# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
702# 258 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
704# 258 "/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
718 mcp = 0.0_wp; mq = 0.0_wp; p_infpt_sum = 0._wp
720# 272 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
721#if defined(MFC_OpenACC)
722# 272 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
724# 272 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
725#elif defined(MFC_OpenMP)
726# 272 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
728# 272 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
732 p_infpt_sum = p_infpt_sum + abs(p_infpt(i))
736# 278 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
737#if defined(MFC_OpenACC)
738# 278 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
740# 278 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
741#elif defined(MFC_OpenMP)
742# 278 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
744# 278 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
748 mcp = mcp + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*
cvs(i)*
gs_min(i)
751 mq = mq + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*
qvs(i)
754# 295 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
757 if ((rhoe - mq - minval(p_infpt)) < 0.0_wp)
then
758 if ((mfl == 0) .or. (mfl == 1))
then
780 do while ((abs(ps - po) > palpha_eps) .and. (abs((ps - po)/po) > palpha_eps/1.e4_wp) .or. (ns == 0))
788 gpp = 0.0_wp; gp = 0.0_wp; hp = 0.0_wp
790# 329 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
791#if defined(MFC_OpenACC)
792# 329 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
794# 329 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
795#elif defined(MFC_OpenMP)
796# 329 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
798# 329 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
801 gp = gp + (
gs_min(i) - 1.0_wp)*q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, &
802 & l)*
cvs(i)*(rhoe + ps - mq)/(mcp*(ps + p_infpt(i)))
804 gpp = gpp + (
gs_min(i) - 1.0_wp)*q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, &
805 & l)*
cvs(i)*(p_infpt(i) - rhoe + mq)/(mcp*(ps + p_infpt(i))**2)
808 hp = 1.0_wp/(rhoe + ps - mq) + 1.0_wp/(ps + minval(p_infpt))
811 ps = po + ((1.0_wp - gp)/gpp)/(1.0_wp - (1.0_wp - gp + abs(1.0_wp - gp))/(2.0_wp*gpp)*hp)
815 ts = (rhoe + ps - mq)/mcp
824# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
826# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
828# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
830# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
832# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
834# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
836# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
838# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
840# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
842# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
844# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
846# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
848# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
850# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
852# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
854# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
856# 353 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
859 integer,
intent(in) :: j, k, l
860 real(wp),
intent(inout) :: pS
861 real(wp),
dimension(1:),
intent(in) :: p_infpT
862 real(wp),
intent(in) :: rhoe
863 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
864 real(wp),
intent(inout) :: TS
865# 364 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
866 real(wp),
dimension(num_fluids) :: p_infpTg
867# 366 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
868 real(wp),
dimension(2, 2) :: Jac, InvJac, TJac
869 real(wp),
dimension(2) :: R2D, DeltamP
871 real(wp) :: mCP, mCPD, mCVGP, mCVGP2, mQ, mQD
872 real(wp) :: ml, mT, dFdT, dTdm, dTdp
884 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, &
893 r2d(1) = 0.0_wp; r2d(2) = 0.0_wp
894 deltamp(1) = 0.0_wp; deltamp(2) = 0.0_wp
895 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) &
902 mcp = 0.0_wp; mcpd = 0.0_wp; mcvgp = 0.0_wp; mcvgp2 = 0.0_wp; mq = 0.0_wp; mqd = 0.0_wp
906# 403 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
907#if defined(MFC_OpenACC)
908# 403 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
910# 403 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
911#elif defined(MFC_OpenMP)
912# 403 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
914# 403 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
918 mcp = mcp + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*
cvs(i)*
gs_min(i)
921 mq = mq + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*
qvs(i)
924 if ((i /=
lp) .and. (i /=
vp))
then
925 mcvgp = mcvgp + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*
cvs(i)*(
gs_min(i) - 1)/(ps +
ps_inf(i))
927 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)
929 mqd = mqd + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*
qvs(i)
932 mcpd = mcpd + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*
cvs(i)*
gs_min(i)
939 ml = q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(j, k, l)
942 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)
958 jac(1, 1) = dfdt*dtdm
979 invjac(1, 1) = jac(2, 2)
980 invjac(1, 2) = -1.0_wp*jac(1, 2)
981 invjac(2, 1) = -1.0_wp*jac(2, 1)
982 invjac(2, 2) = jac(1, 1)
985 tjac(1, 1) = jac(1, 1)
986 tjac(1, 2) = jac(2, 1)
987 tjac(2, 1) = jac(1, 2)
988 tjac(2, 2) = jac(2, 2)
991 invjac = invjac/(jac(1, 1)*jac(2, 2) - jac(1, 2)*jac(2, 1))
994 deltamp(1) = -1.0_wp*(invjac(1, 1)*r2d(1) + invjac(1, 2)*r2d(2))
995 deltamp(2) = -1.0_wp*(invjac(2, 1)*r2d(1) + invjac(2, 2)*r2d(2))
998 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)
1001 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)
1004 ps = ps + om*deltamp(2)
1010 ml = q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(j, k, l)
1013 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)
1029 ts = (rhoe + ps - mq)/mcp
1035 subroutine s_correct_partial_densities(MCT, q_cons_vf, rM, j, k, l)
1038# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1040# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1042# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1044# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1046# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1048# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1050# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1052# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1054# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1056# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1058# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1060# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1062# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1064# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1066# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1068# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1070# 525 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1077 real(wp),
intent(inout) ::
rm
1078 integer,
intent(in) ::
j,
k,
l
1080 if (
rm < 0.0_wp)
then
1095 if (
q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(
j,
k,
l) < 0.0_wp)
then
1099 else if (
q_cons_vf(
vp + eqn_idx%cont%beg - 1)%sf(
j,
k,
l) < 0.0_wp)
then
1105 end subroutine s_correct_partial_densities
1108 elemental subroutine s_tsat(pSat, TSat, TSIn)
1111# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1113# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1115# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1117# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1119# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1121# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1123# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1125# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1127# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1129# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1131# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1133# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1135# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1137# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1139# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1141# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1143# 564 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
1146 real(wp),
intent(in) :: psat
1147 real(wp),
intent(out) :: tsat
1148 real(wp),
intent(in) :: tsin
1149 real(wp) :: dfdt, ft, om
1171 do while ((abs(ft) > ptgalpha_eps) .or. (ns == 0))
1184 tsat = tsat - om*ft/dfdt
1186 if (abs(ft) <= ptgalpha_eps)
exit
type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf
real(wp), intent(inout) rm
real(wp), intent(out) mct
Compile-time constant parameters: default values, tolerances, and physical constants.
integer, parameter model_eqns_6eq
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...
real(wp), dimension(:), allocatable ps_inf
real(wp), dimension(:), allocatable cvs
real(wp), dimension(:), allocatable qvps
real(wp), dimension(:), allocatable qvs
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).