1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
6# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
7# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
8# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
9# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
10# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
11# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
12# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
13# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
15# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
16# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
17# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
19# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
34# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
35# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
36# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
38# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
62# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
63# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
64# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
65# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
66# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
68# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
70# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
72# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
74# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 244 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
115# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 377 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
140# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
141# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
142# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
143# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
144# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
145# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
146# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
148# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
149# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
150# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
152# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
154# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
168# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
170# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
172# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
174# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
176# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
178# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
180# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
182# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
184# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
186# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
227# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
230# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
233# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
236# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
239# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
283# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
286# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
288# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
293# 57 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
296# 77 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
299# 85 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
302# 109 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
305# 125 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
308# 150 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
310# 156 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
312# 163 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314# 6 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp" 2
315# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
321# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
324# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
325# 7 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp" 2
350 real(wp),
allocatable,
dimension(:,:,:) ::
icfl_sf
351 real(wp),
allocatable,
dimension(:,:,:) ::
vcfl_sf
352 real(wp),
allocatable,
dimension(:,:,:) ::
rc_sf
353 real(wp),
public,
allocatable,
dimension(:,:) ::
c_mass
355# 35 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
356#if defined(MFC_OpenACC)
357# 35 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
359# 35 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
360#elif defined(MFC_OpenMP)
361# 35 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
363# 35 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
370# 40 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
371#if defined(MFC_OpenACC)
372# 40 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
374# 40 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
375#elif defined(MFC_OpenMP)
376# 40 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
378# 40 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
381# 41 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
382#if defined(MFC_OpenACC)
383# 41 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
385# 41 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
386#elif defined(MFC_OpenMP)
387# 41 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
389# 41 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
408 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
409 integer,
intent(in) :: t_step
411 type(
integer_field),
dimension(1:num_dims,-1:1),
intent(in) :: bc_type
424 character(LEN=name_len),
parameter :: file_name =
'run_time.inf'
425 character(LEN=path_len + name_len) :: file_path
426 character(LEN=8) :: file_date
428 file_path = trim(
case_dir) //
'/' // trim(file_name)
430 open (3, file=trim(file_path), form=
'formatted', status=
'replace')
432 write (3,
'(A)')
'Description: Stability information at ' //
'each time-step of the simulation. This'
433 write (3,
'(13X,A)')
'data is composed of the inviscid ' //
'Courant-Friedrichs-Lewy (ICFL)'
434 write (3,
'(13X,A)')
'number, the viscous CFL (VCFL) number, ' //
'the capillary CFL (CCFL)'
435 write (3,
'(13X,A)')
'number and the cell Reynolds (Rc) ' //
'number. Please note that only'
436 write (3,
'(13X,A)')
'those stability conditions pertinent ' //
'to the physics included in'
437 write (3,
'(13X,A)')
'the current computation are displayed.'
439 call date_and_time(date=file_date)
441 write (3,
'(A)')
'Date: ' // file_date(5:6) //
'/' // file_date(7:8) //
'/' // file_date(3:4)
443 write (3,
'(A)')
'';
write (3,
'(A)')
''
445 write (3,
'(13X,A9,13X,A10,13X,A10,13X,A10)', advance=
"no") trim(
'Time-step'), trim(
'dt'), trim(
'Time'), trim(
'ICFL Max')
448 write (3,
'(13X,A10,13X,A16)', advance=
"no") trim(
'VCFL Max'), trim(
'Rc Min')
458 character(len=path_len + 3*name_len) :: file_path
462 write (file_path,
'(A,I0,A)')
'/fluid', i,
'_com.dat'
463 file_path = trim(
case_dir) // trim(file_path)
464 open (i + 120, file=trim(file_path), form=
'formatted', position=
'append', status=
'unknown')
466 write (i + 120,
'(A)')
' Non-Dimensional Time ' //
' Total Mass ' //
' x-loc ' //
' Total Volume '
467 else if (
p == 0)
then
469 &
'(A)')
' Non-Dimensional Time ' //
' Total Mass ' //
' x-loc ' //
' y-loc ' &
470 & //
' Total Volume '
473 &
'(A)')
' Non-Dimensional Time ' //
' Total Mass ' //
' x-loc ' //
' y-loc ' //
' z-loc ' &
474 & //
' Total Volume '
483 character(LEN=path_len + 3*name_len) :: file_path
485 logical :: file_exist
488 write (file_path,
'(A,I0,A)')
'/D/probe', i,
'_prim.dat'
489 file_path = trim(
case_dir) // trim(file_path)
491 inquire (file=trim(file_path), exist=file_exist)
494 open (i + 30, file=trim(file_path), form=
'formatted', status=
'old', position=
'append')
496 open (i + 30, file=trim(file_path), form=
'formatted', status=
'unknown')
502 write (file_path,
'(A,I0,A)')
'/D/integral', i,
'_prim.dat'
503 file_path = trim(
case_dir) // trim(file_path)
505 open (i + 70, file=trim(file_path), form=
'formatted', position=
'append', status=
'unknown')
514 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
515 integer,
intent(in) :: t_step
518# 173 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
519 real(wp),
dimension(num_fluids) :: alpha
520 real(wp),
dimension(num_vels) :: vel
521# 176 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
529 real(wp),
dimension(2) :: re
535# 188 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
537# 188 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
538#if defined(MFC_OpenACC)
539# 188 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
541# 188 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
542#elif defined(MFC_OpenMP)
543# 188 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
545# 188 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
547# 188 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
549# 188 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
551# 188 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
556 call s_compute_enthalpy(q_prim_vf, pres, rho, gamma, pi_inf, re, h, alpha, vel, vel_sum, qv,
j,
k,
l)
569# 204 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
570#if defined(MFC_OpenACC)
571# 204 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
573# 204 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
574#elif defined(MFC_OpenMP)
575# 204 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
577# 204 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
579# 204 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
584# 207 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
585#if defined(MFC_OpenACC)
586# 207 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
588# 207 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
589#elif defined(MFC_OpenMP)
590# 207 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
592# 207 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
597# 210 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
598#if defined(MFC_OpenACC)
599# 210 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
601# 210 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
602#elif defined(MFC_OpenMP)
603# 210 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
605# 210 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
617# 220 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
619# 220 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
620#if defined(MFC_OpenACC)
621# 220 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
623# 220 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
625# 220 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
627# 220 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
628#elif defined(MFC_OpenMP)
629# 220 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
631# 220 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
633# 220 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
635# 220 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
637# 220 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
639# 220 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
641# 220 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
643# 220 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
645# 223 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
648# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
650# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
651#if defined(MFC_OpenACC)
652# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
654# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
656# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
658# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
660# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
661#elif defined(MFC_OpenMP)
662# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
664# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
666# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
668# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
670# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
672# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
674# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
676# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
678# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
680# 224 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
682# 228 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
703 write (3,
'(13X,I9,13X,F10.6,13X,F10.6,13X,F10.6)', advance=
"no") t_step,
dt,
mytime,
icfl_max_glb
712 call s_mpi_abort(
'ICFL is NaN. Exiting.')
715 call s_mpi_abort(
'ICFL is greater than 1.0. Exiting.')
720 call s_mpi_abort(
'VCFL is NaN. Exiting.')
723 call s_mpi_abort(
'VCFL is greater than 1.0. Exiting.')
737 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
738 integer,
intent(in) :: t_step
740 type(
integer_field),
dimension(1:num_dims,-1:1),
intent(in) :: bc_type
741 character(LEN=path_len + 2*name_len) :: t_step_dir
742 character(LEN=path_len + 3*name_len) :: file_path
743 logical :: file_exist
744 character(LEN=15) :: fmt
745 integer :: i,
j,
k,
l, r
746 real(wp) :: gamma, lit_gamma, pi_inf, qv
748 write (t_step_dir,
'(A,I0,A,I0)') trim(
case_dir) //
'/p_all'
749 write (t_step_dir,
'(a,i0,a,i0)') trim(
case_dir) //
'/p_all/p',
proc_rank,
'/', t_step
751 file_path = trim(t_step_dir) //
'/.'
756 file_path = trim(t_step_dir) //
'/x_cb.dat'
758 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
759 write (2)
x_cb(-1:
m);
close (2)
762 file_path = trim(t_step_dir) //
'/y_cb.dat'
764 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
765 write (2)
y_cb(-1:
n);
close (2)
768 file_path = trim(t_step_dir) //
'/z_cb.dat'
770 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
771 write (2)
z_cb(-1:
p);
close (2)
776 write (file_path,
'(A,I0,A)') trim(t_step_dir) //
'/q_cons_vf', i,
'.dat'
778 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
786 write (file_path,
'(A,I0,A)') trim(t_step_dir) //
'/q_cons_vf',
sys_size + 1,
'.dat'
788 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
790 write (2) beta%sf(0:
m,0:
n,0:
p);
close (2)
796 write (file_path,
'(A,I0,A)') trim(t_step_dir) //
'/pb',
sys_size + (i - 1)*nnode + r,
'.dat'
798 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
800 write (2)
pb_ts(1)%sf(0:
m,0:
n,0:
p,r, i);
close (2)
806 write (file_path,
'(A,I0,A)') trim(t_step_dir) //
'/mv',
sys_size + (i - 1)*nnode + r,
'.dat'
808 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
810 write (2)
mv_ts(1)%sf(0:
m,0:
n,0:
p,r, i);
close (2)
831 write (t_step_dir,
'(A,I0,A,I0)') trim(
case_dir) //
'/D'
832 file_path = trim(t_step_dir) //
'/.'
834 inquire (file=trim(file_path), exist=file_exist)
842# 386 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
843#if defined(MFC_OpenACC)
844# 386 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
846# 386 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
847#elif defined(MFC_OpenMP)
848# 386 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
850# 386 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
856 q_prim_vf(
eqn_idx%bub%beg)%sf = 1._wp
860 if (
n == 0 .and.
p == 0)
then
863 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/prim.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
865 open (2, file=trim(file_path))
871 write (2, fmt)
x_cb(
j), q_prim_vf(i)%sf(
j, 0, 0)
879 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/cons.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
881 open (2, file=trim(file_path))
891 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/pres.', i,
'.', r,
'.',
proc_rank, &
892 &
'.', t_step,
'.dat'
894 open (2, file=trim(file_path))
903 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/mv.', i,
'.', r,
'.',
proc_rank, &
904 &
'.', t_step,
'.dat'
906 open (2, file=trim(file_path))
922 if ((
n > 0) .and. (
p == 0))
then
924 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/cons.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
925 open (2, file=trim(file_path))
935 if (
present(beta))
then
936 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/beta.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
937 open (2, file=trim(file_path))
950 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/pres.', i,
'.', r,
'.',
proc_rank, &
951 &
'.', t_step,
'.dat'
953 open (2, file=trim(file_path))
964 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/mv.', i,
'.', r,
'.',
proc_rank, &
965 &
'.', t_step,
'.dat'
967 open (2, file=trim(file_path))
980 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/prim.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
982 open (2, file=trim(file_path))
987 & .and. (i <=
eqn_idx%adv%end)))
then
990 write (2, fmt)
x_cb(
j),
y_cb(
k), q_prim_vf(i)%sf(
j,
k, 0)
1008 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/cons.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1009 open (2, file=trim(file_path))
1022 if (
present(beta))
then
1023 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/beta.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1024 open (2, file=trim(file_path))
1040 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/pres.', i,
'.', r,
'.',
proc_rank, &
1041 &
'.', t_step,
'.dat'
1043 open (2, file=trim(file_path))
1056 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/mv.', i,
'.', r,
'.',
proc_rank, &
1057 &
'.', t_step,
'.dat'
1059 open (2, file=trim(file_path))
1074 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/prim.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1076 open (2, file=trim(file_path))
1082 & .and. (i <=
eqn_idx%adv%end)) .or. ((i >=
eqn_idx%species%beg) &
1083 & .and. (i <=
eqn_idx%species%end)))
then
1104 integer,
intent(in) :: t_step
1106 type(
integer_field),
dimension(1:num_dims,-1:1),
intent(in) :: bc_type
1110 integer :: ifile, ierr, data_size
1111 integer,
dimension(MPI_STATUS_SIZE) :: status
1112 integer(kind=MPI_OFFSET_kind) :: disp
1113 integer(kind=MPI_OFFSET_kind) :: m_mok, n_mok, p_mok
1114 integer(kind=MPI_OFFSET_kind) :: wp_mok, var_mok, str_mok
1115 integer(kind=MPI_OFFSET_kind) :: nvars_mok
1116 integer(kind=MPI_OFFSET_kind) :: mok
1117 character(LEN=path_len + 2*name_len) :: file_loc
1118 logical :: file_exist, dir_check
1119 character(len=10) :: t_step_string
1123 integer :: m_ds, n_ds, p_ds
1124 integer :: m_glb_ds, n_glb_ds, p_glb_ds
1125 integer :: m_glb_save, n_glb_save, p_glb_save
1131 if (
present(beta))
then
1151 file_loc = trim(
case_dir) //
'/restart_data/lustre_' // trim(t_step_string)
1153 if (dir_check .neqv. .true.)
then
1158 call s_mpi_barrier()
1163 write (file_loc,
'(I0,A,i7.7,A)') t_step,
'_',
proc_rank,
'.dat'
1164 file_loc = trim(
case_dir) //
'/restart_data/lustre_' // trim(t_step_string) // trim(
mpiiofs) // trim(file_loc)
1165 inquire (file=trim(file_loc), exist=file_exist)
1166 if (file_exist .and.
proc_rank == 0)
then
1169 call mpi_file_open(mpi_comm_self, file_loc, ior(mpi_mode_wronly, mpi_mode_create),
mpi_info_int, ifile, ierr)
1172 data_size = (m_ds + 3)*(n_ds + 3)*(p_ds + 3)
1173 m_glb_save = m_glb_ds + 1
1174 n_glb_save = n_glb_ds + 1
1175 p_glb_save = p_glb_ds + 1
1177 data_size = (
m + 1)*(
n + 1)*(
p + 1)
1178 m_glb_save =
m_glb + 1
1179 n_glb_save =
n_glb + 1
1180 p_glb_save =
p_glb + 1
1183 m_mok = int(m_glb_save + 1, mpi_offset_kind)
1184 n_mok = int(n_glb_save + 1, mpi_offset_kind)
1185 p_mok = int(p_glb_save + 1, mpi_offset_kind)
1186 wp_mok = int(storage_size(0._stp)/8, mpi_offset_kind)
1187 mok = int(1._wp, mpi_offset_kind)
1188 str_mok = int(name_len, mpi_offset_kind)
1189 nvars_mok = int(
sys_size, mpi_offset_kind)
1193 var_mok = int(i, mpi_offset_kind)
1195 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1199 var_mok = int(i, mpi_offset_kind)
1201 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1207 var_mok = int(i, mpi_offset_kind)
1209 call mpi_file_write_all(ifile,
q_cons_temp_ds(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1213 var_mok = int(i, mpi_offset_kind)
1215 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1220 call mpi_file_close(ifile, ierr)
1224 else if (
present(beta))
then
1225 call s_initialize_mpi_data(
q_cons_vf, beta=beta)
1230 write (file_loc,
'(I0,A)') t_step,
'.dat'
1231 file_loc = trim(
case_dir) //
'/restart_data' // trim(
mpiiofs) // trim(file_loc)
1232 inquire (file=trim(file_loc), exist=file_exist)
1233 if (file_exist .and.
proc_rank == 0)
then
1236 call mpi_file_open(mpi_comm_world, file_loc, ior(mpi_mode_wronly, mpi_mode_create),
mpi_info_int, ifile, ierr)
1238 data_size = (
m + 1)*(
n + 1)*(
p + 1)
1240 m_mok = int(
m_glb + 1, mpi_offset_kind)
1241 n_mok = int(
n_glb + 1, mpi_offset_kind)
1242 p_mok = int(
p_glb + 1, mpi_offset_kind)
1243 wp_mok = int(storage_size(0._stp)/8, mpi_offset_kind)
1244 mok = int(1._wp, mpi_offset_kind)
1245 str_mok = int(name_len, mpi_offset_kind)
1246 nvars_mok = int(alt_sys, mpi_offset_kind)
1250 var_mok = int(i, mpi_offset_kind)
1252 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1255 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1259 var_mok = int(i, mpi_offset_kind)
1261 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1264 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1269 var_mok = int(i, mpi_offset_kind)
1271 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1274 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1278 if (
present(beta))
then
1279 var_mok = int(
sys_size + 1, mpi_offset_kind)
1281 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1284 call mpi_file_write_all(ifile,
mpi_io_data%var(
sys_size + 1)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1287 call mpi_file_close(ifile, ierr)
1300 integer,
intent(in) :: time_step
1301 character(LEN=path_len + 2*name_len) :: file_path
1302 character(LEN=path_len + 2*name_len) :: t_step_dir
1304 write (t_step_dir,
'(A,I0,A,I0)') trim(
case_dir) //
'/p_all'
1305 write (t_step_dir,
'(a,i0,a,i0)') trim(
case_dir) //
'/p_all/p',
proc_rank,
'/', time_step
1306 write (file_path,
'(A,I0,A)') trim(t_step_dir) //
'/ib_data.dat'
1308 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
1311# 845 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1312#if defined(MFC_OpenACC)
1313# 845 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1315# 845 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1316#elif defined(MFC_OpenMP)
1317# 845 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1319# 845 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1328 integer,
intent(in) :: time_step
1331 character(LEN=path_len + 2*name_len) :: file_loc
1332 integer(kind=MPI_OFFSET_kind) :: disp
1333 integer(kind=MPI_OFFSET_kind) :: m_MOK, n_MOK, p_MOK
1334 integer(kind=MPI_OFFSET_kind) :: WP_MOK, var_MOK, MOK
1335 integer :: ifile, ierr, data_size
1336 integer,
dimension(MPI_STATUS_SIZE) :: status
1339# 863 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1340#if defined(MFC_OpenACC)
1341# 863 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1343# 863 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1344#elif defined(MFC_OpenMP)
1345# 863 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1347# 863 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1350 data_size = (
m + 1)*(
n + 1)*(
p + 1)
1351 m_mok = int(
m_glb + 1, mpi_offset_kind)
1352 n_mok = int(
n_glb + 1, mpi_offset_kind)
1353 p_mok = int(
p_glb + 1, mpi_offset_kind)
1354 wp_mok = int(storage_size(0._stp)/8, mpi_offset_kind)
1355 mok = int(1._wp, mpi_offset_kind)
1357 write (file_loc,
'(A)')
'ib.dat'
1358 file_loc = trim(
case_dir) //
'/restart_data' // trim(
mpiiofs) // trim(file_loc)
1359 call mpi_file_open(mpi_comm_world, file_loc, ior(mpi_mode_wronly, mpi_mode_create),
mpi_info_int, ifile, ierr)
1361 var_mok = int(
sys_size + 1, mpi_offset_kind)
1362 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1 + int(time_step/
t_step_save))
1363 if (time_step == 0) disp = 0
1366 call mpi_file_write_all(ifile,
mpi_io_ib_data%var%sf, data_size, mpi_integer, status, ierr)
1367 call mpi_file_close(ifile, ierr)
1375 integer,
intent(in) :: time_step
1388 integer,
intent(in) :: t_step
1391 character(LEN=path_len + 2*name_len) :: file_loc
1392 integer(kind=MPI_OFFSET_KIND) :: disp
1393 integer(kind=MPI_OFFSET_KIND) :: WP_MOK
1394 integer :: ifile, ierr
1395 integer,
dimension(MPI_STATUS_SIZE) :: status
1396 logical :: file_exist
1398 integer,
parameter :: NFIELDS_PER_IB = 20
1399 real(wp) :: ib_buf(NFIELDS_PER_IB)
1402 integer :: ib_start, ib_end, nibs_per_rank, remainder
1404 wp_mok = int(storage_size(0._wp)/8, mpi_offset_kind)
1409 call s_mpi_barrier()
1417 ib_start =
proc_rank*(nibs_per_rank + 1) + 1
1418 ib_end = ib_start + nibs_per_rank
1420 ib_start = remainder*(nibs_per_rank + 1) + (
proc_rank - remainder)*nibs_per_rank + 1
1421 ib_end = ib_start + nibs_per_rank - 1
1424 write (file_loc,
'(A,I0,A)')
'/restart_data/ib_state_', t_step,
'.dat'
1425 file_loc = trim(
case_dir) // trim(file_loc)
1427 inquire (file=trim(file_loc), exist=file_exist)
1428 if (file_exist .and.
proc_rank == 0)
then
1431 call s_mpi_barrier()
1433 call mpi_file_open(mpi_comm_world, file_loc, ior(mpi_mode_wronly, mpi_mode_create),
mpi_info_int, ifile, ierr)
1435 do i = ib_start, ib_end
1437 ib_buf(2:4) =
patch_ib(i)%force(1:3)
1438 ib_buf(5:7) =
patch_ib(i)%torque(1:3)
1439 ib_buf(8:10) =
patch_ib(i)%vel(1:3)
1440 ib_buf(11:13) =
patch_ib(i)%angular_vel(1:3)
1441 ib_buf(14:16) =
patch_ib(i)%angles(1:3)
1442 ib_buf(17) =
patch_ib(i)%x_centroid
1443 ib_buf(18) =
patch_ib(i)%y_centroid
1444 ib_buf(19) =
patch_ib(i)%z_centroid
1448 disp = int(i - 1, mpi_offset_kind)*int(nfields_per_ib, mpi_offset_kind)*wp_mok
1450 call mpi_file_write_at(ifile, disp, ib_buf, nfields_per_ib, mpi_p, status, ierr)
1453 call mpi_file_close(ifile, ierr)
1461 integer,
intent(in) :: t_step
1462 character(LEN=path_len + 2*name_len) :: file_loc
1463 integer :: i, ios, file_unit
1464 integer,
parameter :: NFIELDS_PER_IB = 20
1465 real(wp) :: ib_buf(NFIELDS_PER_IB)
1469 write (file_loc,
'(A,I0,A)')
'/restart_data/ib_state_', t_step,
'.dat'
1470 file_loc = trim(
case_dir) // trim(file_loc)
1472 open (newunit=file_unit, file=trim(file_loc), form=
'unformatted', access=
'stream', status=
'replace', iostat=ios)
1473 if (ios /= 0)
call s_mpi_abort(
'Cannot open IB state output file: ' // trim(file_loc))
1477 ib_buf(2:4) =
patch_ib(i)%force(1:3)
1478 ib_buf(5:7) =
patch_ib(i)%torque(1:3)
1479 ib_buf(8:10) =
patch_ib(i)%vel(1:3)
1480 ib_buf(11:13) =
patch_ib(i)%angular_vel(1:3)
1481 ib_buf(14:16) =
patch_ib(i)%angles(1:3)
1482 ib_buf(17) =
patch_ib(i)%x_centroid
1483 ib_buf(18) =
patch_ib(i)%y_centroid
1484 ib_buf(19) =
patch_ib(i)%z_centroid
1487 write (file_unit) ib_buf
1497 integer,
intent(in) :: time_step
1510 integer,
intent(in) :: t_step
1511 real(wp),
dimension(num_fluids, 5),
intent(in) :: c_mass_in
1513 real(wp) :: nondim_time
1518 nondim_time = real(t_step, wp)*
dt
1524 write (i + 120,
'(6X,4F24.12)') nondim_time, c_mass_in(i, 1), c_mass_in(i, 2), c_mass_in(i, 5)
1526 else if (
p == 0)
then
1528 write (i + 120,
'(6X,5F24.12)') nondim_time, c_mass_in(i, 1), c_mass_in(i, 2), c_mass_in(i, 3), c_mass_in(i, 5)
1532 write (i + 120,
'(6X,6F24.12)') nondim_time, c_mass_in(i, 1), c_mass_in(i, 2), c_mass_in(i, 3), c_mass_in(i, &
1533 & 4), c_mass_in(i, 5)
1543 integer,
intent(in) :: t_step
1545 real(wp),
dimension(0:m,0:n,0:p),
intent(in) :: accel_mag
1546 real(wp),
dimension(-1:m) :: distx
1547 real(wp),
dimension(-1:n) :: disty
1548 real(wp),
dimension(-1:p) :: distz
1552 real(wp) :: lit_gamma, nbub
1554 real(wp),
dimension(num_vels) :: vel
1560 real(wp),
dimension(num_fluids) :: alpha
1565 real(wp) :: m00, m10, m01, m20, m02
1566 real(wp) :: varr, varv
1567 real(wp),
dimension(Nb) :: nr, r, nrdot, rdot
1570 real(wp) :: int_pres
1571 real(wp) :: max_pres
1572 real(wp),
dimension(2) :: re
1573 real(wp),
dimension(6) :: tau_e
1575 real(wp) :: dyn_p, t
1576 real(wp) :: damage_state
1577 integer :: i,
j,
k,
l, s, d
1578 real(wp) :: nondim_time
1581 real(wp) :: rad, thickness
1583 real(wp) :: rhoyks(1:num_species)
1593 nondim_time = real(t_step, wp)*
dt
1608 nr = 0._wp; r = 0._wp
1609 nrdot = 0._wp; rdot = 0._wp
1616 varr = 0._wp; varv = 0._wp
1621 damage_state = 0._wp
1627 if (distx(s) < 0._wp) distx(s) = 1000._wp
1629 j = minloc(distx, 1)
1635 do d = 1, num_species
1642 call s_convert_to_mixture_variables(
q_cons_vf,
j - 2,
k,
l, rho, gamma, pi_inf, qv, re, g_local, &
1651 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1656 g_local = g_local*max((1._wp - damage_state), 0._wp)
1660 & pi_inf, gamma, rho, qv, rhoyks(:), pres, t, &
1665 & dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t)
1689 nr3 = nr3 +
weight(s)*(nr(s)**3._wp)
1692 nbub = sqrt((4._wp*pi/3._wp)*nr3/alf)
1695 print *,
'In probe, nbub: ', nbub
1709 varr = m20 - m10**2._wp
1710 varv = m02 - m01**2._wp
1713 rdot(:) = nrdot(:)/nbub
1716 ptot = pres - ptilde
1723 accel = accel_mag(
j - 2,
k,
l)
1725 else if (
p == 0)
then
1727 do d = 1, num_species
1736 if (distx(s) < 0._wp) distx(s) = 1000._wp
1740 if (disty(s) < 0._wp) disty(s) = 1000._wp
1742 j = minloc(distx, 1)
1743 k = minloc(disty, 1)
1749 call s_convert_to_mixture_variables(
q_cons_vf,
j - 2,
k - 2,
l, rho, gamma, pi_inf, qv, re, g_local, &
1755 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1760 g_local = g_local*max((1._wp - damage_state), 0._wp)
1764 & dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t, &
1769 &
k - 2,
l), dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t)
1792 nr3 = nr3 +
weight(s)*(nr(s)**3._wp)
1795 nbub = sqrt((4._wp*pi/3._wp)*nr3/alf)
1799 rdot(:) = nrdot(:)/nbub
1803 & 0._wp, 0._wp, c, qv)
1812 if (distx(s) < 0._wp) distx(s) = 1000._wp
1816 if (disty(s) < 0._wp) disty(s) = 1000._wp
1820 if (distz(s) < 0._wp) distz(s) = 1000._wp
1822 j = minloc(distx, 1)
1823 k = minloc(disty, 1)
1824 l = minloc(distz, 1)
1836 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1839 do d = 1, num_species
1847 g_local = g_local*max((1._wp - damage_state), 0._wp)
1851 &
k - 2,
l - 2), dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t, &
1857 & rho, qv, rhoyks, pres, t)
1862 & 0._wp, 0._wp, c, qv)
1864 accel = accel_mag(
j - 2,
k - 2,
l - 2)
1870# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1872 call s_mpi_allreduce_sum(tmp, rho)
1873# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1875 call s_mpi_allreduce_sum(tmp, pres)
1876# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1878 call s_mpi_allreduce_sum(tmp, gamma)
1879# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1881 call s_mpi_allreduce_sum(tmp, pi_inf)
1882# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1884 call s_mpi_allreduce_sum(tmp, qv)
1885# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1887 call s_mpi_allreduce_sum(tmp, c)
1888# 1386 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1890 call s_mpi_allreduce_sum(tmp, accel)
1891# 1389 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1895 call s_mpi_allreduce_sum(tmp, vel(s))
1899# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1901 call s_mpi_allreduce_sum(tmp, alf)
1902# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1904 call s_mpi_allreduce_sum(tmp, alfgr)
1905# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1907 call s_mpi_allreduce_sum(tmp, nbub)
1908# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1910 call s_mpi_allreduce_sum(tmp, nr(1))
1911# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1913 call s_mpi_allreduce_sum(tmp, nrdot(1))
1914# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1916 call s_mpi_allreduce_sum(tmp, m00)
1917# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1919 call s_mpi_allreduce_sum(tmp, r(1))
1920# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1922 call s_mpi_allreduce_sum(tmp, rdot(1))
1923# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1925 call s_mpi_allreduce_sum(tmp, ptilde)
1926# 1397 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1928 call s_mpi_allreduce_sum(tmp, ptot)
1929# 1400 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1932# 1403 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1934 call s_mpi_allreduce_sum(tmp, varr)
1935# 1403 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1937 call s_mpi_allreduce_sum(tmp, varv)
1938# 1403 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1940 call s_mpi_allreduce_sum(tmp, m10)
1941# 1403 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1943 call s_mpi_allreduce_sum(tmp, m01)
1944# 1403 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1946 call s_mpi_allreduce_sum(tmp, m20)
1947# 1403 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1949 call s_mpi_allreduce_sum(tmp, m02)
1950# 1406 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1957 call s_mpi_allreduce_sum(tmp, tau_e(s))
1963 call s_mpi_allreduce_sum(tmp, damage_state)
1970 write (i + 30,
'(6x,f12.6,14f28.16)') nondim_time, rho, vel(1), pres, alf, r(1), rdot(1), nr(1), &
1971 & nrdot(1), varr, varv, m10, m01, m20, m02
1973 write (i + 30,
'(6x,f12.6,8f24.8)') nondim_time, rho, vel(1), pres, alf, r(1), rdot(1), nr(1), nrdot(1)
1978 &
'(6x,f12.6,f24.8,f24.8,f24.8,f24.8,f24.8,' //
'f24.8,f24.8,f24.8,f24.8,f24.8, f24.8)') &
1979 & nondim_time, rho, vel(1), pres, alf, alfgr, nr(1), nrdot(1), r(1), rdot(1), ptilde, ptot
1982 &
'(6x,f12.6,f24.8,f24.8,f24.8,f24.8,' //
'f24.8,f24.8,f24.8,f24.8,f24.8,f24.8,f24.8,f24.8,f24.8)') &
1984 & 0, 0),
q_cons_vf(4)%sf(
j - 2, 0, 0),
q_cons_vf(5)%sf(
j - 2, 0, 0),
q_cons_vf(6)%sf(
j - 2, 0, 0), &
1986 &
q_cons_vf(10)%sf(
j - 2, 0, 0), nbub, r(1), rdot(1)
1988 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8)') nondim_time, rho, vel(1), pres
1990 else if (
p == 0)
then
1992# 1448 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1993 write (i + 30,
'(6X,10F24.8)') nondim_time, rho, vel(1), vel(2), pres, alf, nr(1), nrdot(1), r(1), &
1995# 1451 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1997# 1453 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1998 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8,F24.8,' //
'F24.8,F24.8,F24.8)') nondim_time, rho, &
1999 & vel(1), vel(2), pres, tau_e(1), tau_e(2), tau_e(3)
2000# 1456 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2002 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8)') nondim_time, rho, vel(1), pres
2003 print *,
'time =', nondim_time,
'rho =', rho,
'pres =', pres
2006# 1462 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2008 &
'(6X,F12.6,F24.8,F24.8,F24.8,F24.8,' //
'F24.8,F24.8,F24.8,F24.8,F24.8,' //
'F24.8)') &
2009 & nondim_time, rho, vel(1), vel(2), vel(3), pres, gamma, pi_inf, qv, c, accel
2010# 1466 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2042 int_pres = int_pres + (pres - 1._wp)**2._wp
2045 int_pres = sqrt(int_pres/(1._wp*npts))
2049 call s_mpi_allreduce_sum(tmp, int_pres)
2054 write (i + 70,
'(6x,f12.6,f24.8)') nondim_time, int_pres
2058 else if (
p == 0)
then
2060 call s_mpi_abort(
'Incorrect number of integrals')
2076 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) < (rad - 0.5_wp*thickness)) trigger = .true.
2077 else if (i == 2)
then
2079 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) > (rad - 0.5_wp*thickness) .and. sqrt(
x_cb(
j)**2._wp &
2080 & +
y_cb(
k)**2._wp) < (rad + 0.5_wp*thickness)) trigger = .true.
2081 else if (i == 3)
then
2083 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) > (rad + 0.5_wp*thickness)) trigger = .true.
2105 int_pres = int_pres + abs(pres - 1._wp)
2106 max_pres = max(max_pres, abs(pres - 1._wp))
2112 int_pres = int_pres/(1._wp*npts)
2119 call s_mpi_allreduce_sum(tmp, int_pres)
2122 call s_mpi_allreduce_max(tmp, max_pres)
2127 write (i + 70,
'(6x,f12.6,f24.8,f24.8)') nondim_time, int_pres, max_pres
2139 real(wp) :: run_time
2141 write (3,
'(A)')
' '
2144 write (3,
'(A,F9.6)')
'ICFL Max: ',
icfl_max
2148 call cpu_time(run_time)
2151 write (3,
'(A,I0,A)')
'Run-time: ', int(anint(run_time)),
's'
2152 write (3,
'(A)')
' '
2182 integer :: i, m_ds, n_ds, p_ds
2186# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2188# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2189 use iso_fortran_env,
only: output_unit
2190# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2192# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2193 print *,
'm_data_output.fpp:1640: ',
'@:ALLOCATE(icfl_sf(0:m, 0:n, 0:p))'
2194# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2196# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2197 call flush (output_unit)
2198# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2200# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2202# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2204# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2206# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2208# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2209#if defined(MFC_OpenACC)
2210# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2212# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2213#elif defined(MFC_OpenMP)
2214# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2216# 1640 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2222# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2224# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2225 use iso_fortran_env,
only: output_unit
2226# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2228# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2229 print *,
'm_data_output.fpp:1644: ',
'@:ALLOCATE(vcfl_sf(0:m, 0:n, 0:p))'
2230# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2232# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2233 call flush (output_unit)
2234# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2236# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2238# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2239 allocate (
vcfl_sf(0:m, 0:n, 0:p))
2240# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2242# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2244# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2245#if defined(MFC_OpenACC)
2246# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2248# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2249#elif defined(MFC_OpenMP)
2250# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2252# 1644 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2255# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2257# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2258 use iso_fortran_env,
only: output_unit
2259# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2261# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2262 print *,
'm_data_output.fpp:1645: ',
'@:ALLOCATE(Rc_sf (0:m, 0:n, 0:p))'
2263# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2265# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2266 call flush (output_unit)
2267# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2269# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2271# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2272 allocate (
rc_sf(0:m, 0:n, 0:p))
2273# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2275# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2277# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2278#if defined(MFC_OpenACC)
2279# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2281# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2282#elif defined(MFC_OpenMP)
2283# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2285# 1645 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2295# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2297# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2298 use iso_fortran_env,
only: output_unit
2299# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2301# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2302 print *,
'm_data_output.fpp:1653: ',
'@:ALLOCATE(c_mass(num_fluids,5))'
2303# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2305# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2306 call flush (output_unit)
2307# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2309# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2311# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2312 allocate (
c_mass(num_fluids,5))
2313# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2315# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2317# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2318#if defined(MFC_OpenACC)
2319# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2321# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2322#elif defined(MFC_OpenMP)
2323# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2325# 1653 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2329 if (down_sample)
then
2330 m_ds = int((m + 1)/3) - 1
2331 n_ds = int((n + 1)/3) - 1
2332 p_ds = int((p + 1)/3) - 1
2336 allocate (
q_cons_temp_ds(i)%sf(-1:m_ds + 1,-1:n_ds + 1,-1:p_ds + 1))
2349# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2351# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2352 use iso_fortran_env,
only: output_unit
2353# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2355# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2356 print *,
'm_data_output.fpp:1675: ',
'@:DEALLOCATE(c_mass)'
2357# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2359# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2360 call flush (output_unit)
2361# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2363# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2365# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2367# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2368#if defined(MFC_OpenACC)
2369# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2371# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2372#elif defined(MFC_OpenMP)
2373# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2375# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2377# 1675 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2381 if (run_time_info)
then
2383# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2385# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2386 use iso_fortran_env,
only: output_unit
2387# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2389# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2390 print *,
'm_data_output.fpp:1679: ',
'@:DEALLOCATE(icfl_sf)'
2391# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2393# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2394 call flush (output_unit)
2395# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2397# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2399# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2401# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2402#if defined(MFC_OpenACC)
2403# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2405# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2406#elif defined(MFC_OpenMP)
2407# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2409# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2411# 1679 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2415# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2417# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2418 use iso_fortran_env,
only: output_unit
2419# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2421# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2422 print *,
'm_data_output.fpp:1681: ',
'@:DEALLOCATE(vcfl_sf, Rc_sf)'
2423# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2425# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2426 call flush (output_unit)
2427# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2429# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2431# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2433# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2434#if defined(MFC_OpenACC)
2435# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2437# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2438#elif defined(MFC_OpenMP)
2439# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2441# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2443# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2448 if (down_sample)
then
type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf
Noncharacteristic and processor boundary condition application for ghost cells and buffer regions.
Platform-specific file and directory operations: create, delete, inquire, getcwd, and basename.
impure subroutine s_delete_directory(dir_name)
Recursively delete a directory using a platform-specific system command.
impure subroutine my_inquire(fileloc, dircheck)
Inquires on the existence of a directory.
impure subroutine s_create_directory(dir_name)
Create a directory and all its parents if it does not exist.
Writes solution data, run-time stability diagnostics (ICFL, VCFL, CCFL, Rc), and probe/center-of-mass...
real(wp), dimension(:,:), allocatable, public c_mass
impure subroutine, public s_open_probe_files
Open flow probe data files for writing.
real(wp) rc_min
Rc criterion maximum.
real(wp) vcfl_max
VCFL criterion maximum.
real(wp), dimension(:,:,:), allocatable vcfl_sf
VCFL stability criterion.
impure subroutine, public s_write_probe_files(t_step, q_cons_vf, accel_mag)
Write flow probe data at the current time step.
subroutine s_write_parallel_ib_state(t_step)
Writes the IB state information out to file.
real(wp) rc_min_glb
Rc stability extrema on local and global grids.
impure subroutine, public s_write_com_files(t_step, c_mass_in)
Write center-of-mass data at the current time step.
impure subroutine, public s_initialize_data_output_module
Initialize the data output module.
impure subroutine, public s_finalize_data_output_module
Module deallocation and/or disassociation procedures.
subroutine s_write_serial_ib_state(t_step)
Write IB state data to a per-timestep serial (unformatted) file.
subroutine s_write_serial_ib_data(time_step)
Write immersed boundary marker data to a serial (per-processor) unformatted file.
impure subroutine, public s_close_run_time_information_file
Write footer with stability criteria extrema and run-time to the information file,...
real(wp) vcfl_max_glb
VCFL stability extrema on local and global grids.
impure subroutine, public s_write_data_files(q_cons_vf, q_t_sf, q_prim_vf, t_step, bc_type, beta)
Write data files. Dispatch subroutine that replaces procedure pointer.
impure subroutine, public s_write_serial_data_files(q_cons_vf, q_t_sf, q_prim_vf, t_step, bc_type, beta)
Write grid and conservative variable data files in serial format.
real(wp), dimension(:,:,:), allocatable rc_sf
Rc stability criterion.
impure subroutine, public s_close_probe_files
Closes probe files.
impure subroutine, public s_close_com_files()
Closes communication files.
real(wp) icfl_max_glb
ICFL stability extrema on local and global grids.
impure subroutine, public s_write_run_time_information(q_prim_vf, t_step)
Write stability criteria extrema to the run-time information file at the given time step.
impure subroutine, public s_open_run_time_information_file
Open the run-time information file and write the stability criteria table header.
real(wp) icfl_max
ICFL criterion maximum.
impure subroutine, public s_write_parallel_data_files(q_cons_vf, t_step, bc_type, beta, q_t_sf)
Write grid and conservative variable data files in parallel via MPI I/O.
impure subroutine, public s_write_ib_state_file(time_step)
Writes IB state records to restart_data/ib_state.dat. Must be called only on rank 0.
type(scalar_field), dimension(:), allocatable q_cons_temp_ds
subroutine s_write_parallel_ib_data(time_step)
Write immersed boundary marker data in parallel using MPI I/O.
real(wp), dimension(:,:,:), allocatable icfl_sf
ICFL stability criterion.
impure subroutine, public s_open_com_files()
Open center-of-mass data files for writing.
subroutine, public s_write_ib_data_file(time_step)
Dispatch immersed boundary data output to the serial or parallel writer.
Rank-staggered file access delays to prevent I/O contention on parallel file systems.
impure subroutine, public delayfileaccess(processrank)
Introduce a rank-dependent busy-wait delay to stagger parallel file access and reduce I/O contention.
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) mytime
Current simulation time.
logical bubbles_euler
Bubbles euler on/off.
logical cont_damage
Continuum damage modeling.
logical igr
Use information geometric regularization.
type(int_bounds_info), dimension(1:3) idwint
real(wp), dimension(:), allocatable, target z_cb
logical, parameter chemistry
Chemistry modeling.
integer num_fluids
number of fluids in the simulation
type(qbmm_idx_info) qbmm_idx
QBMM moment index mappings (allocatable; GPU-managed separately).
integer proc_rank
Rank of the local processor.
type(mpi_io_ib_var), public mpi_io_ib_data
logical dummy
AMDFlang workaround for case-optimization + GPU-kernel bug.
character(len=name_len) mpiiofs
type(vec3_dt), dimension(num_probes_max) probe
integer sys_size
Number of unknowns in system of eqns.
real(wp), dimension(:), allocatable weight
Simpson quadrature weights.
integer t_step_old
Existing IC/grid folder.
logical viscous
Viscous effects.
logical run_time_info
Run-time output flag.
integer model_eqns
Multicomponent flow model.
integer precision
Precision of output files.
type(physical_parameters), dimension(num_fluids_max) fluid_pp
Stiffened gas EOS parameters and Reynolds numbers per fluid.
integer num_dims
Number of spatial dimensions.
type(pres_field), dimension(:), allocatable pb_ts
type(pres_field), dimension(:), allocatable mv_ts
logical bubbles_lagrange
Lagrangian subgrid bubble model switch.
integer num_vels
Number of velocity components (different from num_dims for mhd).
logical polytropic
Polytropic switch.
logical qbmm
Quadrature moment method.
real(wp), dimension(:), allocatable qvs
real(wp), dimension(:), allocatable pi_infs
logical adv_n
Solve the number density equation and compute alpha from number density.
integer num_procs
Number of processors.
character(len=path_len) case_dir
Case folder location.
logical parallel_io
Format of the data files.
type(integral_parameters), dimension(num_probes_max) integral
real(wp), dimension(:), allocatable, target y_cb
real(wp), dimension(:,:,:), allocatable ptil
Pressure modification.
logical down_sample
down sample the output files
logical file_per_process
shared file or not when using parallel io
logical elasticity
elasticity modeling, true for hyper or hypo
integer nb
Number of eq. bubble sizes.
type(mpi_io_var), public mpi_io_data
real(wp) dt
Size of the time-step.
integer time_stepper
Time-stepper algorithm.
real(wp), dimension(:), allocatable gammas
real(wp), dimension(:), allocatable gs_min
type(eqn_idx_info) eqn_idx
All conserved-variable equation index ranges and scalars.
type(ib_patch_parameters), dimension(num_ib_patches_max) patch_ib
Immersed boundary patch parameters.
real(wp), dimension(:), allocatable, target x_cb
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.
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
subroutine, public s_downsample_data(q_cons_vf, q_cons_temp, m_ds, n_ds, p_ds, m_glb_ds, n_glb_ds, p_glb_ds)
Downsample conservative variable fields by a factor of 3 in each direction using volume averaging.
elemental subroutine, public s_int_to_str(i, res)
Convert an integer to its trimmed string representation.
Ghost-node immersed boundary method: locates ghost/image points, computes interpolation coefficients,...
type(integer_field), public ib_markers
MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.
Simulation helper routines for enthalpy computation, CFL calculation, and stability checks.
subroutine, public s_compute_enthalpy(q_prim_vf, pres, rho, gamma, pi_inf, re, h, alpha, vel, vel_sum, qv, j, k, l)
Computes enthalpy.
subroutine, public s_compute_stability_from_dt(vel, c, rho, re_l, j, k, l, icfl_sf, vcfl_sf, rc_sf)
Computes stability criterion for a specified dt.
Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation.
subroutine s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, adv, vel_sum, c_c, c, qv)
Compute the speed of sound from thermodynamic state variables, supporting multiple equation-of-state ...
subroutine, public s_compute_pressure(energy, alf, dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t, stress, mom, g, pres_mag)
Compute the pressure from the appropriate equation of state.
subroutine, public s_convert_conservative_to_primitive_variables(qk_cons_vf, q_t_sf, qk_prim_vf, ibounds)
Convert conserved variables (rho*alpha, rho*u, E, alpha) to primitives (rho, u, p,...
subroutine, public s_convert_to_mixture_variables(q_vf, i, j, k, rho, gamma, pi_inf, qv, re_k, g_k, g)
Dispatch to the s_convert_mixture_to_mixture_variables and s_convert_species_to_mixture_variables sub...
Derived type annexing an integer scalar field (SF).
Derived type annexing a scalar field (SF).