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
356 real(wp),
parameter ::
mixm = 1.0e-8_wp
357 integer,
parameter ::
lp = 1
358 integer,
parameter ::
vp = 2
369 if (.not. (.false.))
then
370# 44 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
371 call s_mpi_abort(
"m_phase_change.fpp:44: " //
"Assertion failed: .false.. " &
372# 44 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
373 & //
"s_relaxation_solver called but it currently does nothing")
374# 44 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
390 real(wp) :: rhoe, dyne, rhos
391 real(wp) :: rho,
rm, m1, m2,
mct
395# 67 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
396 real(wp),
dimension(num_fluids) :: p_infpt, sk, hk, gk, ek, rhok
397# 69 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
401 integer :: i,
j,
k,
l
413# 83 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
415# 83 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
416#if defined(MFC_OpenACC)
417# 83 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
419# 83 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
420#elif defined(MFC_OpenMP)
421# 83 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
423# 83 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
425# 83 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
427# 83 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
429# 83 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
431# 83 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
433# 85 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
437 rho = 0.0_wp; tvf = 0.0_wp
439# 89 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
440#if defined(MFC_OpenACC)
441# 89 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
443# 89 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
444#elif defined(MFC_OpenMP)
445# 89 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
447# 89 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
451 rho = rho +
q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(
j,
k,
l)
454 tvf = tvf +
q_cons_vf(i + eqn_idx%adv%beg - 1)%sf(
j,
k,
l)
473# 113 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
474#if defined(MFC_OpenACC)
475# 113 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
477# 113 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
478#elif defined(MFC_OpenMP)
479# 113 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
481# 113 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
483 do i = eqn_idx%mom%beg, eqn_idx%mom%end
497 if ((relax_model == 6) .and. ((
q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(
j,
k, &
515# 145 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
516#if defined(MFC_OpenACC)
517# 145 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
519# 145 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
520#elif defined(MFC_OpenMP)
521# 145 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
523# 145 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
533 gk(i) = hk(i) - ts*sk(i)
545# 165 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
546#if defined(MFC_OpenACC)
547# 165 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
549# 165 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
550#elif defined(MFC_OpenMP)
551# 165 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
553# 165 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
566 rhos = rhos +
q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(
j,
k,
l)*sk(i)
572# 182 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
573#if defined(MFC_OpenACC)
574# 182 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
576# 182 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
577#elif defined(MFC_OpenMP)
578# 182 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
580# 182 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
582# 182 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
592# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
594# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
596# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
598# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
600# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
602# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
604# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
606# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
608# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
610# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
612# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
614# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
616# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
618# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
620# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
622# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
624# 190 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
628 integer,
intent(in) :: j, k, l, MFL
629 real(wp),
intent(out) :: pS
630 real(wp),
dimension(1:),
intent(out) :: p_infpT
631 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_cons_vf
632 real(wp),
intent(in) :: rhoe
633 real(wp),
intent(out) :: TS
634 real(wp) :: gp, gpp, hp, pO, mCP, mQ
635 real(wp) :: p_infpT_sum
638 mcp = 0.0_wp; mq = 0.0_wp; p_infpt_sum = 0._wp
640# 204 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
641#if defined(MFC_OpenACC)
642# 204 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
644# 204 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
645#elif defined(MFC_OpenMP)
646# 204 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
648# 204 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
652 p_infpt_sum = p_infpt_sum + abs(p_infpt(i))
656# 210 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
657#if defined(MFC_OpenACC)
658# 210 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
660# 210 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
661#elif defined(MFC_OpenMP)
662# 210 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
664# 210 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
668 mcp = mcp + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*
cvs(i)*
gs_min(i)
671 mq = mq + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*
qvs(i)
674# 227 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
677 if ((rhoe - mq - minval(p_infpt)) < 0.0_wp)
then
678 if ((mfl == 0) .or. (mfl == 1))
then
701 do while ((abs(ps - po) > palpha_eps) .and. (abs(ps - po) > (palpha_eps/1.e4_wp)*abs(po)) .or. (ns == 0))
711 gpp = 0.0_wp; gp = 0.0_wp; hp = 0.0_wp
713# 264 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
714#if defined(MFC_OpenACC)
715# 264 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
717# 264 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
718#elif defined(MFC_OpenMP)
719# 264 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
721# 264 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
724 gp = gp + (
gs_min(i) - 1.0_wp)*q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, &
725 & l)*
cvs(i)*(rhoe + ps - mq)/(mcp*(ps + p_infpt(i)))
727 gpp = gpp + (
gs_min(i) - 1.0_wp)*q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, &
728 & l)*
cvs(i)*(p_infpt(i) - rhoe + mq)/(mcp*(ps + p_infpt(i))**2)
731 hp = 1.0_wp/(rhoe + ps - mq) + 1.0_wp/(ps + minval(p_infpt))
734 ps = po + ((1.0_wp - gp)/gpp)/(1.0_wp - (1.0_wp - gp + abs(1.0_wp - gp))/(2.0_wp*gpp)*hp)
738 ts = (rhoe + ps - mq)/mcp
745 subroutine s_compute_ptg_residual(ml, mT, pS, j, k, l, q_cons_vf, rhoe, R2D, TS, mCP, mQ, mCVGP, mCVGP2, mCPD)
748# 289 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
750# 289 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
752# 289 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
754# 289 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
756# 289 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
758# 289 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
760# 289 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
763 real(wp),
intent(in) :: ml, mT, pS, rhoe
764 integer,
intent(in) :: j, k, l
765 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_cons_vf
766 real(wp),
dimension(2),
intent(out) :: R2D
767 real(wp),
intent(out) :: TS, mCP, mQ, mCVGP, mCVGP2, mCPD
774 mcvgp = 0.0_wp; mcvgp2 = 0.0_wp; mcpd = 0.0_wp; mqd = 0.0_wp
776# 303 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
777#if defined(MFC_OpenACC)
778# 303 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
780# 303 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
781#elif defined(MFC_OpenMP)
782# 303 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
784# 303 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
787 if ((i /=
lp) .and. (i /=
vp))
then
788 mcp = mcp + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*
cvs(i)*
gs_min(i)
789 mq = mq + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*
qvs(i)
790 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))
791 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)
792 mqd = mqd + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*
qvs(i)
793 mcpd = mcpd + q_cons_vf(i + eqn_idx%cont%beg - 1)%sf(j, k, l)*
cvs(i)*
gs_min(i)
819# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
821# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
823# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
825# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
827# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
829# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
831# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
833# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
835# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
837# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
839# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
841# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
843# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
845# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
847# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
849# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
851# 336 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
854 integer,
intent(in) :: j, k, l
855 real(wp),
intent(inout) :: pS
856 real(wp),
intent(in) :: rhoe
857 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_cons_vf
858 real(wp),
intent(inout) :: TS
859 real(wp),
dimension(2, 2) :: Jac, InvJac
860 real(wp),
dimension(2) :: R2D, R2D_try, DeltamP
861 real(wp) :: mCP, mCPD, mCVGP, mCVGP2, mQ
862 real(wp) :: ml, ml_try, mT, pS_try, pmin, lambda, resnorm, resnorm_try
863 real(wp) :: dFdT, dTdm, dTdp, detJ
867 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)
868 ml = q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(j, k, l)
871 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, &
880 call s_compute_ptg_residual(ml, mt, ps, j, k, l, q_cons_vf, rhoe, r2d, ts, mcp, mq, mcvgp, mcvgp2, mcpd)
881 resnorm = sqrt(r2d(1)**2 + r2d(2)**2)
885 if ((resnorm <= ptgalpha_eps) .or. (resnorm <= (ptgalpha_eps/1.e6_wp)*rhoe))
exit
894 jac(1, 1) = dfdt*dtdm
909 detj = jac(1, 1)*jac(2, 2) - jac(1, 2)*jac(2, 1)
911 if (detj == 0.0_wp)
exit
913 invjac(1, 1) = jac(2, 2)/detj
914 invjac(1, 2) = -jac(1, 2)/detj
915 invjac(2, 1) = -jac(2, 1)/detj
916 invjac(2, 2) = jac(1, 1)/detj
918 deltamp(1) = -(invjac(1, 1)*r2d(1) + invjac(1, 2)*r2d(2))
919 deltamp(2) = -(invjac(2, 1)*r2d(1) + invjac(2, 2)*r2d(2))
925 ml_try = min(max(ml + lambda*deltamp(1), 0.0_wp), mt)
926 ps_try = max(ps + lambda*deltamp(2), pmin)
927 call s_compute_ptg_residual(ml_try, mt, ps_try, j, k, l, q_cons_vf, rhoe, r2d_try, ts, mcp, mq, mcvgp, mcvgp2, mcpd)
928 resnorm_try = sqrt(r2d_try(1)**2 + r2d_try(2)**2)
929 if ((resnorm_try < resnorm) .or. (ls ==
ptg_ls_max))
exit
930 lambda = 0.5_wp*lambda
934 ml = ml_try; ps = ps_try; r2d = r2d_try; resnorm = resnorm_try
938 q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(j, k, l) = ml
939 q_cons_vf(
vp + eqn_idx%cont%beg - 1)%sf(j, k, l) = mt - ml
941 ts = (rhoe + ps - mq)/mcp
947 subroutine s_correct_partial_densities(MCT, q_cons_vf, rM, j, k, l)
950# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
952# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
954# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
956# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
958# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
960# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
962# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
964# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
966# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
968# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
970# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
972# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
974# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
976# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
978# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
980# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
982# 433 "/home/runner/work/MFC/MFC/src/common/m_phase_change.fpp"
987 real(wp),
intent(out) ::
mct
989 real(wp),
intent(inout) ::
rm
990 integer,
intent(in) ::
j,
k,
l
992 if (
rm < 0.0_wp)
then
1007 if (
q_cons_vf(
lp + eqn_idx%cont%beg - 1)%sf(
j,
k,
l) < 0.0_wp)
then
1011 else if (
q_cons_vf(
vp + eqn_idx%cont%beg - 1)%sf(
j,
k,
l) < 0.0_wp)
then
1017 end subroutine s_correct_partial_densities
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.
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.
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].
subroutine s_compute_ptg_residual(ml, mt, ps, j, k, l, q_cons_vf, rhoe, r2d, ts, mcp, mq, mcvgp, mcvgp2, mcpd)
Evaluate the pTg-equilibrium residual R2D and temperature TS at a trial state (ml,...
integer, parameter ptg_ls_max
max backtracking-line-search halvings in the pTg solver
integer, parameter max_iter
max Newton iterations before accepting the last iterate
impure subroutine, public s_initialize_phasechange_module
Initialize the phase change module (no module-level state to set up; the pT/pTg relaxation solvers ar...
real(wp), parameter mixm
Mixture mass fraction threshold for triggering phase change.
subroutine s_infinite_ptg_relaxation_k(j, k, l, ps, rhoe, q_cons_vf, ts)
Apply pTg-equilibrium relaxation: a damped (backtracking line search) Newton solve for the reacting l...
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).