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# 8 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
324# 12 "/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)
1228 else if (
present(beta))
then
1229 call s_initialize_mpi_data(
q_cons_vf, beta=beta)
1234 write (file_loc,
'(I0,A)') t_step,
'.dat'
1235 file_loc = trim(
case_dir) //
'/restart_data' // trim(
mpiiofs) // trim(file_loc)
1236 inquire (file=trim(file_loc), exist=file_exist)
1237 if (file_exist .and.
proc_rank == 0)
then
1240 call mpi_file_open(mpi_comm_world, file_loc, ior(mpi_mode_wronly, mpi_mode_create),
mpi_info_int, ifile, ierr)
1242 data_size = (
m + 1)*(
n + 1)*(
p + 1)
1244 m_mok = int(
m_glb + 1, mpi_offset_kind)
1245 n_mok = int(
n_glb + 1, mpi_offset_kind)
1246 p_mok = int(
p_glb + 1, mpi_offset_kind)
1247 wp_mok = int(storage_size(0._stp)/8, mpi_offset_kind)
1248 mok = int(1._wp, mpi_offset_kind)
1249 str_mok = int(name_len, mpi_offset_kind)
1250 nvars_mok = int(alt_sys, mpi_offset_kind)
1254 var_mok = int(i, mpi_offset_kind)
1256 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1259 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1263 var_mok = int(i, mpi_offset_kind)
1265 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1268 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1273 var_mok = int(i, mpi_offset_kind)
1275 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1278 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1282 if (
present(beta))
then
1283 var_mok = int(
sys_size + 1, mpi_offset_kind)
1285 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1288 call mpi_file_write_all(ifile,
mpi_io_data%var(
sys_size + 1)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1291 call mpi_file_close(ifile, ierr)
1304 integer,
intent(in) :: time_step
1305 character(LEN=path_len + 2*name_len) :: file_path
1306 character(LEN=path_len + 2*name_len) :: t_step_dir
1308 write (t_step_dir,
'(A,I0,A,I0)') trim(
case_dir) //
'/p_all'
1309 write (t_step_dir,
'(a,i0,a,i0)') trim(
case_dir) //
'/p_all/p',
proc_rank,
'/', time_step
1310 write (file_path,
'(A,I0,A)') trim(t_step_dir) //
'/ib_data.dat'
1312 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
1315# 849 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1316#if defined(MFC_OpenACC)
1317# 849 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1319# 849 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1320#elif defined(MFC_OpenMP)
1321# 849 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1323# 849 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1332 integer,
intent(in) :: time_step
1335 character(LEN=path_len + 2*name_len) :: file_loc
1336 integer(kind=MPI_OFFSET_kind) :: disp
1337 integer(kind=MPI_OFFSET_kind) :: m_MOK, n_MOK, p_MOK
1338 integer(kind=MPI_OFFSET_kind) :: WP_MOK, var_MOK, MOK
1339 integer :: ifile, ierr, data_size
1340 integer,
dimension(MPI_STATUS_SIZE) :: status
1343# 867 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1344#if defined(MFC_OpenACC)
1345# 867 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1347# 867 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1348#elif defined(MFC_OpenMP)
1349# 867 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1351# 867 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1354 data_size = (
m + 1)*(
n + 1)*(
p + 1)
1355 m_mok = int(
m_glb + 1, mpi_offset_kind)
1356 n_mok = int(
n_glb + 1, mpi_offset_kind)
1357 p_mok = int(
p_glb + 1, mpi_offset_kind)
1358 wp_mok = int(storage_size(0._stp)/8, mpi_offset_kind)
1359 mok = int(1._wp, mpi_offset_kind)
1361 write (file_loc,
'(A)')
'ib.dat'
1362 file_loc = trim(
case_dir) //
'/restart_data' // trim(
mpiiofs) // trim(file_loc)
1363 call mpi_file_open(mpi_comm_world, file_loc, ior(mpi_mode_wronly, mpi_mode_create),
mpi_info_int, ifile, ierr)
1365 var_mok = int(
sys_size + 1, mpi_offset_kind)
1366 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1 + int(time_step/
t_step_save))
1367 if (time_step == 0) disp = 0
1370 call mpi_file_write_all(ifile,
mpi_io_ib_data%var%sf, data_size, mpi_integer, status, ierr)
1371 call mpi_file_close(ifile, ierr)
1379 integer,
intent(in) :: time_step
1382# 896 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1383#if defined(MFC_OpenACC)
1384# 896 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1386# 896 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1387#elif defined(MFC_OpenMP)
1388# 896 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1390# 896 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1404 integer,
intent(in) :: t_step
1407 character(LEN=path_len + 2*name_len) :: file_loc
1408 integer(kind=MPI_OFFSET_KIND) :: disp
1409 integer(kind=MPI_OFFSET_KIND) :: WP_MOK
1410 integer :: ifile, ierr
1411 integer,
dimension(MPI_STATUS_SIZE) :: status
1412 logical :: file_exist, dir_check
1413 integer :: i, ib_idx
1414 integer,
parameter :: NFIELDS_PER_IB = 20
1415 real(wp) :: ib_buf(NFIELDS_PER_IB)
1416 integer :: file_unit
1417 character(len=10) :: t_step_string
1420 integer :: ib_start, ib_end, nibs_per_rank, remainder
1422 wp_mok = int(storage_size(0._wp)/8, mpi_offset_kind)
1428 file_loc = trim(
case_dir) //
'/restart_data/lustre_' // trim(t_step_string)
1431 call s_mpi_barrier()
1434 write (file_loc,
'(A,I0,A,i7.7,A)')
'ib_state_', t_step,
'_',
proc_rank,
'.dat'
1435 file_loc = trim(
case_dir) //
'/restart_data/lustre_' // trim(t_step_string) //
'/' // trim(file_loc)
1437 inquire (file=trim(file_loc), exist=file_exist)
1438 if (file_exist)
then
1439 open (newunit=file_unit, file=trim(file_loc), form=
'unformatted', access=
'stream', status=
'replace')
1441 open (newunit=file_unit, file=trim(file_loc), form=
'unformatted', access=
'stream', status=
'new')
1448 ib_buf(2:4) =
patch_ib(ib_idx)%force(1:3)
1449 ib_buf(5:7) =
patch_ib(ib_idx)%torque(1:3)
1450 ib_buf(8:10) =
patch_ib(ib_idx)%vel(1:3)
1451 ib_buf(11:13) =
patch_ib(ib_idx)%angular_vel(1:3)
1452 ib_buf(14:16) =
patch_ib(ib_idx)%angles(1:3)
1453 ib_buf(17) =
patch_ib(ib_idx)%x_centroid
1454 ib_buf(18) =
patch_ib(ib_idx)%y_centroid
1455 ib_buf(19) =
patch_ib(ib_idx)%z_centroid
1456 ib_buf(20) =
patch_ib(ib_idx)%radius
1458 write (file_unit)
patch_ib(ib_idx)%gbl_patch_id
1459 write (file_unit) ib_buf
1467 call s_mpi_barrier()
1469 write (file_loc,
'(A,I0,A)')
'/restart_data/ib_state_', t_step,
'.dat'
1470 file_loc = trim(
case_dir) // trim(file_loc)
1472 inquire (file=trim(file_loc), exist=file_exist)
1473 if (file_exist .and.
proc_rank == 0)
then
1476 call s_mpi_barrier()
1478 call mpi_file_open(mpi_comm_world, file_loc, ior(mpi_mode_wronly, mpi_mode_create),
mpi_info_int, ifile, ierr)
1483 ib_buf(2:4) =
patch_ib(ib_idx)%force(1:3)
1484 ib_buf(5:7) =
patch_ib(ib_idx)%torque(1:3)
1485 ib_buf(8:10) =
patch_ib(ib_idx)%vel(1:3)
1486 ib_buf(11:13) =
patch_ib(ib_idx)%angular_vel(1:3)
1487 ib_buf(14:16) =
patch_ib(ib_idx)%angles(1:3)
1488 ib_buf(17) =
patch_ib(ib_idx)%x_centroid
1489 ib_buf(18) =
patch_ib(ib_idx)%y_centroid
1490 ib_buf(19) =
patch_ib(ib_idx)%z_centroid
1491 ib_buf(20) =
patch_ib(ib_idx)%radius
1494 disp = int(
patch_ib(ib_idx)%gbl_patch_id - 1, mpi_offset_kind)*int(nfields_per_ib, mpi_offset_kind)*wp_mok
1496 call mpi_file_write_at(ifile, disp, ib_buf, nfields_per_ib, mpi_p, status, ierr)
1499 call mpi_file_close(ifile, ierr)
1508 integer,
intent(in) :: t_step
1509 character(LEN=path_len + 2*name_len) :: file_loc
1510 integer :: i, ios, file_unit
1511 integer,
parameter :: NFIELDS_PER_IB = 20
1512 real(wp) :: ib_buf(NFIELDS_PER_IB)
1516 write (file_loc,
'(A,I0,A)')
'/restart_data/ib_state_', t_step,
'.dat'
1517 file_loc = trim(
case_dir) // trim(file_loc)
1519 open (newunit=file_unit, file=trim(file_loc), form=
'unformatted', access=
'stream', status=
'replace', iostat=ios)
1520 if (ios /= 0)
call s_mpi_abort(
'Cannot open IB state output file: ' // trim(file_loc))
1524 ib_buf(2:4) =
patch_ib(i)%force(1:3)
1525 ib_buf(5:7) =
patch_ib(i)%torque(1:3)
1526 ib_buf(8:10) =
patch_ib(i)%vel(1:3)
1527 ib_buf(11:13) =
patch_ib(i)%angular_vel(1:3)
1528 ib_buf(14:16) =
patch_ib(i)%angles(1:3)
1529 ib_buf(17) =
patch_ib(i)%x_centroid
1530 ib_buf(18) =
patch_ib(i)%y_centroid
1531 ib_buf(19) =
patch_ib(i)%z_centroid
1534 write (file_unit) ib_buf
1544 integer,
intent(in) :: time_step
1557 integer,
intent(in) :: t_step
1558 real(wp),
dimension(num_fluids, 5),
intent(in) :: c_mass_in
1560 real(wp) :: nondim_time
1565 nondim_time = real(t_step, wp)*
dt
1571 write (i + 120,
'(6X,4F24.12)') nondim_time, c_mass_in(i, 1), c_mass_in(i, 2), c_mass_in(i, 5)
1573 else if (
p == 0)
then
1575 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)
1579 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, &
1580 & 4), c_mass_in(i, 5)
1590 integer,
intent(in) :: t_step
1592 real(wp),
dimension(0:m,0:n,0:p),
intent(in) :: accel_mag
1593 real(wp),
dimension(-1:m) :: distx
1594 real(wp),
dimension(-1:n) :: disty
1595 real(wp),
dimension(-1:p) :: distz
1599 real(wp) :: lit_gamma, nbub
1601 real(wp),
dimension(num_vels) :: vel
1607 real(wp),
dimension(num_fluids) :: alpha
1612 real(wp) :: m00, m10, m01, m20, m02
1613 real(wp) :: varr, varv
1614 real(wp),
dimension(Nb) :: nr, r, nrdot, rdot
1617 real(wp) :: int_pres
1618 real(wp) :: max_pres
1619 real(wp),
dimension(2) :: re
1620 real(wp),
dimension(6) :: tau_e
1622 real(wp) :: dyn_p, t
1623 real(wp) :: damage_state
1624 integer :: i,
j,
k,
l, s, d
1625 real(wp) :: nondim_time
1628 real(wp) :: rad, thickness
1630 real(wp) :: rhoyks(1:num_species)
1640 nondim_time = real(t_step, wp)*
dt
1655 nr = 0._wp; r = 0._wp
1656 nrdot = 0._wp; rdot = 0._wp
1663 varr = 0._wp; varv = 0._wp
1668 damage_state = 0._wp
1674 if (distx(s) < 0._wp) distx(s) = 1000._wp
1676 j = minloc(distx, 1)
1682 do d = 1, num_species
1689 call s_convert_to_mixture_variables(
q_cons_vf,
j - 2,
k,
l, rho, gamma, pi_inf, qv, re, g_local, &
1698 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1703 g_local = g_local*max((1._wp - damage_state), 0._wp)
1707 & pi_inf, gamma, rho, qv, rhoyks(:), pres, t, &
1712 & dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t)
1736 nr3 = nr3 +
weight(s)*(nr(s)**3._wp)
1739 nbub = sqrt((4._wp*pi/3._wp)*nr3/alf)
1742 print *,
'In probe, nbub: ', nbub
1756 varr = m20 - m10**2._wp
1757 varv = m02 - m01**2._wp
1760 rdot(:) = nrdot(:)/nbub
1763 ptot = pres - ptilde
1770 accel = accel_mag(
j - 2,
k,
l)
1772 else if (
p == 0)
then
1774 do d = 1, num_species
1783 if (distx(s) < 0._wp) distx(s) = 1000._wp
1787 if (disty(s) < 0._wp) disty(s) = 1000._wp
1789 j = minloc(distx, 1)
1790 k = minloc(disty, 1)
1796 call s_convert_to_mixture_variables(
q_cons_vf,
j - 2,
k - 2,
l, rho, gamma, pi_inf, qv, re, g_local, &
1802 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1807 g_local = g_local*max((1._wp - damage_state), 0._wp)
1811 & dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t, &
1816 &
k - 2,
l), dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t)
1839 nr3 = nr3 +
weight(s)*(nr(s)**3._wp)
1842 nbub = sqrt((4._wp*pi/3._wp)*nr3/alf)
1846 rdot(:) = nrdot(:)/nbub
1850 & 0._wp, 0._wp, c, qv)
1859 if (distx(s) < 0._wp) distx(s) = 1000._wp
1863 if (disty(s) < 0._wp) disty(s) = 1000._wp
1867 if (distz(s) < 0._wp) distz(s) = 1000._wp
1869 j = minloc(distx, 1)
1870 k = minloc(disty, 1)
1871 l = minloc(distz, 1)
1883 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1886 do d = 1, num_species
1894 g_local = g_local*max((1._wp - damage_state), 0._wp)
1898 &
k - 2,
l - 2), dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t, &
1904 & rho, qv, rhoyks, pres, t)
1909 & 0._wp, 0._wp, c, qv)
1911 accel = accel_mag(
j - 2,
k - 2,
l - 2)
1917# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1919 call s_mpi_allreduce_sum(tmp, rho)
1920# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1922 call s_mpi_allreduce_sum(tmp, pres)
1923# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1925 call s_mpi_allreduce_sum(tmp, gamma)
1926# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1928 call s_mpi_allreduce_sum(tmp, pi_inf)
1929# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1931 call s_mpi_allreduce_sum(tmp, qv)
1932# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1934 call s_mpi_allreduce_sum(tmp, c)
1935# 1423 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1937 call s_mpi_allreduce_sum(tmp, accel)
1938# 1426 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1942 call s_mpi_allreduce_sum(tmp, vel(s))
1946# 1434 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1948 call s_mpi_allreduce_sum(tmp, alf)
1949# 1434 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1951 call s_mpi_allreduce_sum(tmp, alfgr)
1952# 1434 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1954 call s_mpi_allreduce_sum(tmp, nbub)
1955# 1434 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1957 call s_mpi_allreduce_sum(tmp, nr(1))
1958# 1434 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1960 call s_mpi_allreduce_sum(tmp, nrdot(1))
1961# 1434 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1963 call s_mpi_allreduce_sum(tmp, m00)
1964# 1434 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1966 call s_mpi_allreduce_sum(tmp, r(1))
1967# 1434 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1969 call s_mpi_allreduce_sum(tmp, rdot(1))
1970# 1434 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1972 call s_mpi_allreduce_sum(tmp, ptilde)
1973# 1434 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1975 call s_mpi_allreduce_sum(tmp, ptot)
1976# 1437 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1979# 1440 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1981 call s_mpi_allreduce_sum(tmp, varr)
1982# 1440 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1984 call s_mpi_allreduce_sum(tmp, varv)
1985# 1440 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1987 call s_mpi_allreduce_sum(tmp, m10)
1988# 1440 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1990 call s_mpi_allreduce_sum(tmp, m01)
1991# 1440 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1993 call s_mpi_allreduce_sum(tmp, m20)
1994# 1440 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1996 call s_mpi_allreduce_sum(tmp, m02)
1997# 1443 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2004 call s_mpi_allreduce_sum(tmp, tau_e(s))
2010 call s_mpi_allreduce_sum(tmp, damage_state)
2017 write (i + 30,
'(6x,f12.6,14f28.16)') nondim_time, rho, vel(1), pres, alf, r(1), rdot(1), nr(1), &
2018 & nrdot(1), varr, varv, m10, m01, m20, m02
2020 write (i + 30,
'(6x,f12.6,8f24.8)') nondim_time, rho, vel(1), pres, alf, r(1), rdot(1), nr(1), nrdot(1)
2025 &
'(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)') &
2026 & nondim_time, rho, vel(1), pres, alf, alfgr, nr(1), nrdot(1), r(1), rdot(1), ptilde, ptot
2029 &
'(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)') &
2031 & 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), &
2033 &
q_cons_vf(10)%sf(
j - 2, 0, 0), nbub, r(1), rdot(1)
2035 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8)') nondim_time, rho, vel(1), pres
2037 else if (
p == 0)
then
2039# 1485 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2040 write (i + 30,
'(6X,10F24.8)') nondim_time, rho, vel(1), vel(2), pres, alf, nr(1), nrdot(1), r(1), &
2042# 1488 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2044# 1490 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2045 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8,F24.8,' //
'F24.8,F24.8,F24.8)') nondim_time, rho, &
2046 & vel(1), vel(2), pres, tau_e(1), tau_e(2), tau_e(3)
2047# 1493 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2049 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8)') nondim_time, rho, vel(1), pres
2050 print *,
'time =', nondim_time,
'rho =', rho,
'pres =', pres
2053# 1499 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2055 &
'(6X,F12.6,F24.8,F24.8,F24.8,F24.8,' //
'F24.8,F24.8,F24.8,F24.8,F24.8,' //
'F24.8)') &
2056 & nondim_time, rho, vel(1), vel(2), vel(3), pres, gamma, pi_inf, qv, c, accel
2057# 1503 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2089 int_pres = int_pres + (pres - 1._wp)**2._wp
2092 int_pres = sqrt(int_pres/(1._wp*npts))
2096 call s_mpi_allreduce_sum(tmp, int_pres)
2101 write (i + 70,
'(6x,f12.6,f24.8)') nondim_time, int_pres
2105 else if (
p == 0)
then
2107 call s_mpi_abort(
'Incorrect number of integrals')
2123 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) < (rad - 0.5_wp*thickness)) trigger = .true.
2124 else if (i == 2)
then
2126 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) > (rad - 0.5_wp*thickness) .and. sqrt(
x_cb(
j)**2._wp &
2127 & +
y_cb(
k)**2._wp) < (rad + 0.5_wp*thickness)) trigger = .true.
2128 else if (i == 3)
then
2130 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) > (rad + 0.5_wp*thickness)) trigger = .true.
2152 int_pres = int_pres + abs(pres - 1._wp)
2153 max_pres = max(max_pres, abs(pres - 1._wp))
2159 int_pres = int_pres/(1._wp*npts)
2166 call s_mpi_allreduce_sum(tmp, int_pres)
2169 call s_mpi_allreduce_max(tmp, max_pres)
2174 write (i + 70,
'(6x,f12.6,f24.8,f24.8)') nondim_time, int_pres, max_pres
2186 real(wp) :: run_time
2188 write (3,
'(A)')
' '
2191 write (3,
'(A,F9.6)')
'ICFL Max: ',
icfl_max
2195 call cpu_time(run_time)
2198 write (3,
'(A,I0,A)')
'Run-time: ', int(anint(run_time)),
's'
2199 write (3,
'(A)')
' '
2229 integer :: i, m_ds, n_ds, p_ds
2233# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2235# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2236 use iso_fortran_env,
only: output_unit
2237# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2239# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2240 print *,
'm_data_output.fpp:1677: ',
'@:ALLOCATE(icfl_sf(0:m, 0:n, 0:p))'
2241# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2243# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2244 call flush (output_unit)
2245# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2247# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2249# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2251# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2253# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2255# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2256#if defined(MFC_OpenACC)
2257# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2259# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2260#elif defined(MFC_OpenMP)
2261# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2263# 1677 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2269# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2271# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2272 use iso_fortran_env,
only: output_unit
2273# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2275# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2276 print *,
'm_data_output.fpp:1681: ',
'@:ALLOCATE(vcfl_sf(0:m, 0:n, 0:p))'
2277# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2279# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2280 call flush (output_unit)
2281# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2283# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2285# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2286 allocate (
vcfl_sf(0:m, 0:n, 0:p))
2287# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2289# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2291# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2292#if defined(MFC_OpenACC)
2293# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2295# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2296#elif defined(MFC_OpenMP)
2297# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2299# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2302# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2304# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2305 use iso_fortran_env,
only: output_unit
2306# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2308# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2309 print *,
'm_data_output.fpp:1682: ',
'@:ALLOCATE(Rc_sf (0:m, 0:n, 0:p))'
2310# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2312# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2313 call flush (output_unit)
2314# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2316# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2318# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2319 allocate (
rc_sf(0:m, 0:n, 0:p))
2320# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2322# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2324# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2325#if defined(MFC_OpenACC)
2326# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2328# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2329#elif defined(MFC_OpenMP)
2330# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2332# 1682 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2342# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2344# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2345 use iso_fortran_env,
only: output_unit
2346# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2348# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2349 print *,
'm_data_output.fpp:1690: ',
'@:ALLOCATE(c_mass(num_fluids,5))'
2350# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2352# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2353 call flush (output_unit)
2354# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2356# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2358# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2359 allocate (
c_mass(num_fluids,5))
2360# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2362# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2364# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2365#if defined(MFC_OpenACC)
2366# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2368# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2369#elif defined(MFC_OpenMP)
2370# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2372# 1690 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2376 if (down_sample)
then
2377 m_ds = int((m + 1)/3) - 1
2378 n_ds = int((n + 1)/3) - 1
2379 p_ds = int((p + 1)/3) - 1
2383 allocate (
q_cons_temp_ds(i)%sf(-1:m_ds + 1,-1:n_ds + 1,-1:p_ds + 1))
2396# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2398# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2399 use iso_fortran_env,
only: output_unit
2400# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2402# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2403 print *,
'm_data_output.fpp:1712: ',
'@:DEALLOCATE(c_mass)'
2404# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2406# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2407 call flush (output_unit)
2408# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2410# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2412# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2414# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2415#if defined(MFC_OpenACC)
2416# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2418# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2419#elif defined(MFC_OpenMP)
2420# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2422# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2424# 1712 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2428 if (run_time_info)
then
2430# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2432# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2433 use iso_fortran_env,
only: output_unit
2434# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2436# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2437 print *,
'm_data_output.fpp:1716: ',
'@:DEALLOCATE(icfl_sf)'
2438# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2440# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2441 call flush (output_unit)
2442# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2444# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2446# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2448# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2449#if defined(MFC_OpenACC)
2450# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2452# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2453#elif defined(MFC_OpenMP)
2454# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2456# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2458# 1716 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2462# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2464# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2465 use iso_fortran_env,
only: output_unit
2466# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2468# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2469 print *,
'm_data_output.fpp:1718: ',
'@:DEALLOCATE(vcfl_sf, Rc_sf)'
2470# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2472# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2473 call flush (output_unit)
2474# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2476# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2478# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2480# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2481#if defined(MFC_OpenACC)
2482# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2484# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2485#elif defined(MFC_OpenMP)
2486# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2488# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2490# 1718 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2495 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.
type(int_bounds_info), dimension(1:3) idwint
real(wp), dimension(:), allocatable, target z_cb
logical, parameter chemistry
Chemistry modeling.
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
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, dimension(num_local_ibs_max) local_ib_patch_ids
lookup table of IBs in the local compute domain
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
integer num_vels
Number of velocity components (different from num_dims for mhd).
type(ib_patch_parameters), dimension(num_ib_patches_max_namelist) patch_ib
Immersed boundary patch parameters.
real(wp), dimension(:), allocatable qvs
real(wp), dimension(:), allocatable pi_infs
integer num_procs
Number of processors.
character(len=path_len) case_dir
type(integral_parameters), dimension(num_probes_max) integral
real(wp), dimension(:), allocatable, target y_cb
real(wp), dimension(:,:,:), allocatable ptil
Pressure modification.
logical elasticity
elasticity modeling, true for hyper or hypo
type(mpi_io_var), public mpi_io_data
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.
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).