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# 207 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 232 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 243 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 245 "/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# 283 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 293 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 303 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 312 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 329 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 346 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 358 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 364 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 370 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 376 "/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# 192 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 213 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 241 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 256 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 266 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 275 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 291 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 301 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 308 "/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
226# 21 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
228# 37 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
230# 50 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
232# 76 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
234# 91 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
236# 102 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
238# 115 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
240# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242# 154 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
244# 165 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
246# 176 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 187 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
250# 198 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
252# 208 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
256# 220 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
258# 226 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 232 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
262# 234 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 235 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
267# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
273# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
275# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
277# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
279# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
281# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
283# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
285# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
287# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
289# 6 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp" 2
290# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
296# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
299# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
300# 7 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp" 2
309 use m_mpi_proxy !< message passing interface (mpi) module proxy
346 real(wp),
allocatable,
dimension(:, :, :) ::
icfl_sf
347 real(wp),
allocatable,
dimension(:, :, :) ::
vcfl_sf
348 real(wp),
allocatable,
dimension(:, :, :) ::
ccfl_sf
349 real(wp),
allocatable,
dimension(:, :, :) ::
rc_sf
350 real(wp),
public,
allocatable,
dimension(:, :) ::
c_mass
352# 57 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
353#if defined(MFC_OpenACC)
354# 57 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
356# 57 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
357#elif defined(MFC_OpenMP)
358# 57 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
360# 57 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
368# 63 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
369#if defined(MFC_OpenACC)
370# 63 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
372# 63 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
373#elif defined(MFC_OpenMP)
374# 63 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
376# 63 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
379# 64 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
380#if defined(MFC_OpenACC)
381# 64 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
383# 64 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
384#elif defined(MFC_OpenMP)
385# 64 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
387# 64 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
412 dimension(sys_size), &
416 intent(inout) :: q_t_sf
419 dimension(sys_size), &
420 intent(inout) :: q_prim_vf
422 integer,
intent(in) :: t_step
425 intent(inout),
optional :: beta
428 dimension(1:num_dims, -1:1), &
429 intent(in) :: bc_type
447 character(LEN=name_len),
parameter :: file_name =
'run_time.inf'
450 character(LEN=path_len + name_len) :: file_path
453 character(LEN=8) :: file_date
457 file_path = trim(
case_dir)//
'/'//trim(file_name)
459 open (3, file=trim(file_path), &
463 write (3,
'(A)')
'Description: Stability information at '// &
464 'each time-step of the simulation. This'
465 write (3,
'(13X,A)')
'data is composed of the inviscid '// &
466 'Courant–Friedrichs–Lewy (ICFL)'
467 write (3,
'(13X,A)')
'number, the viscous CFL (VCFL) number, '// &
468 'the capillary CFL (CCFL)'
469 write (3,
'(13X,A)')
'number and the cell Reynolds (Rc) '// &
470 'number. Please note that only'
471 write (3,
'(13X,A)')
'those stability conditions pertinent '// &
472 'to the physics included in'
473 write (3,
'(13X,A)')
'the current computation are displayed.'
475 call date_and_time(date=file_date)
477 write (3,
'(A)')
'Date: '//file_date(5:6)//
'/'// &
478 file_date(7:8)//
'/'// &
481 write (3,
'(A)')
'';
write (3,
'(A)')
''
484 write (3,
'(13X,A9,13X,A10,13X,A10,13X,A10)', advance=
"no") &
485 trim(
'Time-step'), trim(
'dt'), trim(
'Time'), trim(
'ICFL Max')
488 write (3,
'(13X,A10,13X,A16)', advance=
"no") &
489 trim(
'VCFL Max'), trim(
'Rc Min')
500 character(len=path_len + 3*name_len) :: file_path
506 write (file_path,
'(A,I0,A)')
'/fluid', i,
'_com.dat'
507 file_path = trim(
case_dir)//trim(file_path)
510 open (i + 120, file=trim(file_path), &
515 write (i + 120,
'(A)')
' Non-Dimensional Time '// &
520 write (i + 120,
'(A)')
' Non-Dimensional Time '// &
526 write (i + 120,
'(A)')
' Non-Dimensional Time '// &
540 character(LEN=path_len + 3*name_len) :: file_path
544 logical :: file_exist
548 write (file_path,
'(A,I0,A)')
'/D/probe', i,
'_prim.dat'
549 file_path = trim(
case_dir)//trim(file_path)
553 inquire (file=trim(file_path), exist=file_exist)
556 open (i + 30, file=trim(file_path), &
561 open (i + 30, file=trim(file_path), &
569 write (file_path,
'(A,I0,A)')
'/D/integral', i,
'_prim.dat'
570 file_path = trim(
case_dir)//trim(file_path)
572 open (i + 70, file=trim(file_path), &
590 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
591 integer,
intent(in) :: t_step
594# 274 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
595 real(wp),
dimension(num_fluids) :: alpha
596 real(wp),
dimension(num_vels) :: vel
597# 277 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
605 real(wp),
dimension(2) :: re
610# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
612# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
613#if defined(MFC_OpenACC)
614# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
616# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
617#elif defined(MFC_OpenMP)
618# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
620# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
622# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
624# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
626# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
628# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
633 call s_compute_enthalpy(q_prim_vf, pres, rho, gamma, pi_inf, re, h, alpha, vel, vel_sum, qv,
j,
k,
l)
647# 305 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
649# 305 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
650#if defined(MFC_OpenACC)
651# 305 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
653# 305 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
654#elif defined(MFC_OpenMP)
655# 305 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
657# 305 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
659# 305 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
661# 305 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
663# 305 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
672# 312 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
673#if defined(MFC_OpenACC)
674# 312 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
676# 312 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
677#elif defined(MFC_OpenMP)
678# 312 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
680# 312 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
685# 315 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
686#if defined(MFC_OpenACC)
687# 315 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
689# 315 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
690#elif defined(MFC_OpenMP)
691# 315 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
693# 315 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
705# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
707# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
708#if defined(MFC_OpenACC)
709# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
711# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
713# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
715# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
716#elif defined(MFC_OpenMP)
717# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
719# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
721# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
723# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
725# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
727# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
729# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
731# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
733# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
735# 328 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
738# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
740# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
741#if defined(MFC_OpenACC)
742# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
744# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
746# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
748# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
750# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
751#elif defined(MFC_OpenMP)
752# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
754# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
756# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
758# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
760# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
762# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
764# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
766# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
768# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
770# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
772# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
774# 333 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
780 call s_mpi_reduce_stability_criteria_extrema(
icfl_max_loc, &
802 write (3,
'(13X,I9,13X,F10.6,13X,F10.6,13X,F10.6)', advance=
"no") &
806 write (3,
'(13X,F10.6,13X,ES16.6)', advance=
"no") &
814 call s_mpi_abort(
'ICFL is NaN. Exiting.')
817 call s_mpi_abort(
'ICFL is greater than 1.0. Exiting.')
822 call s_mpi_abort(
'VCFL is NaN. Exiting.')
825 call s_mpi_abort(
'VCFL is greater than 1.0. Exiting.')
846 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
847 integer,
intent(in) :: t_step
849 type(
integer_field),
dimension(1:num_dims, -1:1),
intent(in) :: bc_type
851 character(LEN=path_len + 2*name_len) :: t_step_dir
854 character(LEN=path_len + 3*name_len) :: file_path
857 logical :: file_exist
860 character(LEN=15) :: fmt
862 integer :: i,
j,
k,
l, r
864 real(wp) :: gamma, lit_gamma, pi_inf, qv
867 write (t_step_dir,
'(A,I0,A,I0)') trim(
case_dir)//
'/p_all'
870 write (t_step_dir,
'(a,i0,a,i0)') trim(
case_dir)//
'/p_all/p', &
873 file_path = trim(t_step_dir)//
'/.'
879 file_path = trim(t_step_dir)//
'/x_cb.dat'
881 open (2, file=trim(file_path), &
882 form=
'unformatted', &
884 write (2)
x_cb(-1:
m);
close (2)
889 file_path = trim(t_step_dir)//
'/y_cb.dat'
891 open (2, file=trim(file_path), &
892 form=
'unformatted', &
894 write (2)
y_cb(-1:
n);
close (2)
898 file_path = trim(t_step_dir)//
'/z_cb.dat'
900 open (2, file=trim(file_path), &
901 form=
'unformatted', &
903 write (2)
z_cb(-1:
p);
close (2)
911 write (file_path,
'(A,I0,A)') trim(t_step_dir)//
'/q_cons_vf', &
914 open (2, file=trim(file_path), &
915 form=
'unformatted', &
924 write (file_path,
'(A,I0,A)') trim(t_step_dir)//
'/pb', &
925 sys_size + (i - 1)*nnode + r,
'.dat'
927 open (2, file=trim(file_path), &
928 form=
'unformatted', &
931 write (2)
pb_ts(1)%sf(0:
m, 0:
n, 0:
p, r, i);
close (2)
937 write (file_path,
'(A,I0,A)') trim(t_step_dir)//
'/mv', &
938 sys_size + (i - 1)*nnode + r,
'.dat'
940 open (2, file=trim(file_path), &
941 form=
'unformatted', &
944 write (2)
mv_ts(1)%sf(0:
m, 0:
n, 0:
p, r, i);
close (2)
973 write (t_step_dir,
'(A,I0,A,I0)') trim(
case_dir)//
'/D'
974 file_path = trim(t_step_dir)//
'/.'
976 inquire (file=trim(file_path), exist=file_exist)
984# 541 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
985#if defined(MFC_OpenACC)
986# 541 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
988# 541 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
989#elif defined(MFC_OpenMP)
990# 541 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
992# 541 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
997 q_prim_vf(
bubxb)%sf = 1._wp
1002 if (
n == 0 .and.
p == 0)
then
1006 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/prim.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1008 open (2, file=trim(file_path))
1014 write (2, fmt)
x_cb(
j), q_prim_vf(i)%sf(
j, 0, 0)
1022 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/cons.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1024 open (2, file=trim(file_path))
1034 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/pres.', i,
'.', r,
'.',
proc_rank,
'.', t_step,
'.dat'
1036 open (2, file=trim(file_path))
1038 write (2, fmt)
x_cb(
j),
pb_ts(1)%sf(
j, 0, 0, r, i)
1045 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/mv.', i,
'.', r,
'.',
proc_rank,
'.', t_step,
'.dat'
1047 open (2, file=trim(file_path))
1049 write (2, fmt)
x_cb(
j),
mv_ts(1)%sf(
j, 0, 0, r, i)
1064 if ((
n > 0) .and. (
p == 0))
then
1066 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/cons.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1067 open (2, file=trim(file_path))
1077 if (
present(beta))
then
1078 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/beta.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1079 open (2, file=trim(file_path))
1092 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/pres.', i,
'.', r,
'.',
proc_rank,
'.', t_step,
'.dat'
1094 open (2, file=trim(file_path))
1105 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/mv.', i,
'.', r,
'.',
proc_rank,
'.', t_step,
'.dat'
1107 open (2, file=trim(file_path))
1120 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/prim.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1122 open (2, file=trim(file_path))
1132 write (2, fmt)
x_cb(
j),
y_cb(
k), q_prim_vf(i)%sf(
j,
k, 0)
1151 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/cons.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1152 open (2, file=trim(file_path))
1165 if (
present(beta))
then
1166 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/beta.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1167 open (2, file=trim(file_path))
1183 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/pres.', i,
'.', r,
'.',
proc_rank,
'.', t_step,
'.dat'
1185 open (2, file=trim(file_path))
1198 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/mv.', i,
'.', r,
'.',
proc_rank,
'.', t_step,
'.dat'
1200 open (2, file=trim(file_path))
1215 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/prim.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1217 open (2, file=trim(file_path))
1253 integer,
intent(in) :: t_step
1256 dimension(1:num_dims, -1:1), &
1257 intent(in) :: bc_type
1261 integer :: ifile, ierr, data_size
1262 integer,
dimension(MPI_STATUS_SIZE) :: status
1263 integer(kind=MPI_OFFSET_kind) :: disp
1264 integer(kind=MPI_OFFSET_kind) :: m_mok, n_mok, p_mok
1265 integer(kind=MPI_OFFSET_kind) :: wp_mok, var_mok, str_mok
1266 integer(kind=MPI_OFFSET_kind) :: nvars_mok
1267 integer(kind=MPI_OFFSET_kind) :: mok
1269 character(LEN=path_len + 2*name_len) :: file_loc
1270 logical :: file_exist, dir_check
1271 character(len=10) :: t_step_string
1278 integer :: m_ds, n_ds, p_ds
1279 integer :: m_glb_ds, n_glb_ds, p_glb_ds
1280 integer :: m_glb_save, n_glb_save, p_glb_save
1284 m_ds, n_ds, p_ds, m_glb_ds, n_glb_ds, p_glb_ds)
1287 if (
present(beta))
then
1309 file_loc = trim(
case_dir)//
'/restart_data/lustre_'//trim(t_step_string)
1311 if (dir_check .neqv. .true.)
then
1316 call s_mpi_barrier()
1323 write (file_loc,
'(I0,A,i7.7,A)') t_step,
'_',
proc_rank,
'.dat'
1324 file_loc = trim(
case_dir)//
'/restart_data/lustre_'//trim(t_step_string)//trim(
mpiiofs)//trim(file_loc)
1325 inquire (file=trim(file_loc), exist=file_exist)
1326 if (file_exist .and.
proc_rank == 0)
then
1329 call mpi_file_open(mpi_comm_self, file_loc, ior(mpi_mode_wronly, mpi_mode_create), &
1334 data_size = (m_ds + 3)*(n_ds + 3)*(p_ds + 3)
1335 m_glb_save = m_glb_ds + 1
1336 n_glb_save = n_glb_ds + 1
1337 p_glb_save = p_glb_ds + 1
1340 data_size = (
m + 1)*(
n + 1)*(
p + 1)
1341 m_glb_save =
m_glb + 1
1342 n_glb_save =
n_glb + 1
1343 p_glb_save =
p_glb + 1
1347 m_mok = int(m_glb_save + 1, mpi_offset_kind)
1348 n_mok = int(n_glb_save + 1, mpi_offset_kind)
1349 p_mok = int(p_glb_save + 1, mpi_offset_kind)
1350 wp_mok = int(8._wp, mpi_offset_kind)
1351 mok = int(1._wp, mpi_offset_kind)
1352 str_mok = int(name_len, mpi_offset_kind)
1353 nvars_mok = int(
sys_size, mpi_offset_kind)
1358 var_mok = int(i, mpi_offset_kind)
1360 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, &
1361 mpi_io_p, status, ierr)
1366 var_mok = int(i, mpi_offset_kind)
1368 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, &
1369 mpi_io_p, status, ierr)
1375 var_mok = int(i, mpi_offset_kind)
1377 call mpi_file_write_all(ifile,
q_cons_temp_ds(i)%sf, data_size*mpi_io_type, &
1378 mpi_io_p, status, ierr)
1382 var_mok = int(i, mpi_offset_kind)
1384 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, &
1385 mpi_io_p, status, ierr)
1390 call mpi_file_close(ifile, ierr)
1396 elseif (
present(beta))
then
1397 call s_initialize_mpi_data(
q_cons_vf, beta=beta)
1402 write (file_loc,
'(I0,A)') t_step,
'.dat'
1403 file_loc = trim(
case_dir)//
'/restart_data'//trim(
mpiiofs)//trim(file_loc)
1404 inquire (file=trim(file_loc), exist=file_exist)
1405 if (file_exist .and.
proc_rank == 0)
then
1408 call mpi_file_open(mpi_comm_world, file_loc, ior(mpi_mode_wronly, mpi_mode_create), &
1412 data_size = (
m + 1)*(
n + 1)*(
p + 1)
1415 m_mok = int(
m_glb + 1, mpi_offset_kind)
1416 n_mok = int(
n_glb + 1, mpi_offset_kind)
1417 p_mok = int(
p_glb + 1, mpi_offset_kind)
1418 wp_mok = int(8._wp, mpi_offset_kind)
1419 mok = int(1._wp, mpi_offset_kind)
1420 str_mok = int(name_len, mpi_offset_kind)
1421 nvars_mok = int(alt_sys, mpi_offset_kind)
1426 var_mok = int(i, mpi_offset_kind)
1429 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1431 call mpi_file_set_view(ifile, disp, mpi_p,
mpi_io_data%view(i), &
1433 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, &
1434 mpi_io_p, status, ierr)
1439 var_mok = int(i, mpi_offset_kind)
1442 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1444 call mpi_file_set_view(ifile, disp, mpi_p,
mpi_io_data%view(i), &
1446 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, &
1447 mpi_io_p, status, ierr)
1452 var_mok = int(i, mpi_offset_kind)
1455 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1457 call mpi_file_set_view(ifile, disp, mpi_p,
mpi_io_data%view(i), &
1459 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, &
1460 mpi_io_p, status, ierr)
1465 if (
present(beta))
then
1466 var_mok = int(
sys_size + 1, mpi_offset_kind)
1469 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1474 mpi_io_p, status, ierr)
1477 call mpi_file_close(ifile, ierr)
1505 integer,
intent(in) :: time_step
1506 character(LEN=path_len + 2*name_len) :: file_path
1507 character(LEN=path_len + 2*name_len) :: t_step_dir
1510 write (t_step_dir,
'(A,I0,A,I0)') trim(
case_dir)//
'/p_all'
1511 write (t_step_dir,
'(a,i0,a,i0)') trim(
case_dir)//
'/p_all/p', &
1513 write (file_path,
'(A,I0,A)') trim(t_step_dir)//
'/ib.dat'
1515 open (2, file=trim(file_path), &
1516 form=
'unformatted', &
1526 integer,
intent(in) :: time_step
1530 character(LEN=path_len + 2*name_len) :: file_loc
1531 integer(kind=MPI_OFFSET_kind) :: disp
1532 integer(kind=MPI_OFFSET_kind) :: m_MOK, n_MOK, p_MOK
1533 integer(kind=MPI_OFFSET_kind) :: WP_MOK, var_MOK, MOK
1534 integer :: ifile, ierr, data_size
1535 integer,
dimension(MPI_STATUS_SIZE) :: status
1538 data_size = (
m + 1)*(
n + 1)*(
p + 1)
1539 m_mok = int(
m_glb + 1, mpi_offset_kind)
1540 n_mok = int(
n_glb + 1, mpi_offset_kind)
1541 p_mok = int(
p_glb + 1, mpi_offset_kind)
1542 wp_mok = int(8._wp, mpi_offset_kind)
1543 mok = int(1._wp, mpi_offset_kind)
1545 write (file_loc,
'(A)')
'ib.dat'
1546 file_loc = trim(
case_dir)//
'/restart_data'//trim(
mpiiofs)//trim(file_loc)
1547 call mpi_file_open(mpi_comm_world, file_loc, ior(mpi_mode_wronly, mpi_mode_create), &
1550 var_mok = int(
sys_size + 1, mpi_offset_kind)
1551 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1 + int(time_step/
t_step_save))
1552 if (time_step == 0) disp = 0
1554 call mpi_file_set_view(ifile, disp, mpi_integer,
mpi_io_ib_data%view, &
1556 call mpi_file_write_all(ifile,
mpi_io_ib_data%var%sf, data_size, &
1557 mpi_integer, status, ierr)
1558 call mpi_file_close(ifile, ierr)
1567 integer,
intent(in) :: time_step
1583 integer,
intent(in) :: t_step
1584 real(wp),
dimension(num_fluids, 5),
intent(in) :: c_mass_in
1586 real(wp) :: nondim_time
1592 nondim_time = real(t_step, wp)*
dt
1598 write (i + 120,
'(6X,4F24.12)') &
1604 elseif (
p == 0)
then
1606 write (i + 120,
'(6X,5F24.12)') &
1615 write (i + 120,
'(6X,6F24.12)') &
1634 integer,
intent(in) :: t_step
1636 real(wp),
dimension(0:m, 0:n, 0:p),
intent(in) :: accel_mag
1638 real(wp),
dimension(-1:m) :: distx
1639 real(wp),
dimension(-1:n) :: disty
1640 real(wp),
dimension(-1:p) :: distz
1645 real(wp) :: lit_gamma, nbub
1647 real(wp),
dimension(num_vels) :: vel
1653 real(wp),
dimension(num_fluids) :: alpha
1658 real(wp) :: m00, m10, m01, m20, m11, m02
1659 real(wp) :: varr, varv
1660 real(wp),
dimension(Nb) :: nr, r, nrdot, rdot
1663 real(wp) :: int_pres
1664 real(wp) :: max_pres
1665 real(wp),
dimension(2) :: re
1666 real(wp),
dimension(6) :: tau_e
1668 real(wp) :: dyn_p, t
1669 real(wp) :: damage_state
1671 integer :: i,
j,
k,
l, s, d
1673 real(wp) :: nondim_time
1679 real(wp) :: rad, thickness
1682 real(wp) :: rhoyks(1:num_species)
1693 nondim_time = real(t_step, wp)*
dt
1709 nr = 0._wp; r = 0._wp
1710 nrdot = 0._wp; rdot = 0._wp
1718 varr = 0._wp; varv = 0._wp
1723 damage_state = 0._wp
1731 if (distx(s) < 0._wp) distx(s) = 1000._wp
1733 j = minloc(distx, 1)
1739 do d = 1, num_species
1747 rho, gamma, pi_inf, qv, &
1751 rho, gamma, pi_inf, qv)
1757 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1762 g_local = g_local*max((1._wp - damage_state), 0._wp)
1768 dyn_p, pi_inf, gamma, rho, qv, rhoyks(:), pres, t, &
1775 dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t)
1799 nr3 = nr3 +
weight(s)*(nr(s)**3._wp)
1802 nbub = sqrt((4._wp*pi/3._wp)*nr3/alf)
1805 print *,
'In probe, nbub: ', nbub
1821 varr = m20 - m10**2._wp
1822 varv = m02 - m01**2._wp
1825 rdot(:) = nrdot(:)/nbub
1828 ptot = pres - ptilde
1833 ((gamma + 1._wp)*pres + pi_inf)/rho, alpha, 0._wp, 0._wp, c, qv)
1835 accel = accel_mag(
j - 2,
k,
l)
1837 elseif (
p == 0)
then
1839 do d = 1, num_species
1848 if (distx(s) < 0._wp) distx(s) = 1000._wp
1852 if (disty(s) < 0._wp) disty(s) = 1000._wp
1854 j = minloc(distx, 1)
1855 k = minloc(disty, 1)
1862 rho, gamma, pi_inf, qv, &
1868 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1873 g_local = g_local*max((1._wp - damage_state), 0._wp)
1879 dyn_p, pi_inf, gamma, rho, qv, &
1888 dyn_p, pi_inf, gamma, rho, qv, &
1912 nr3 = nr3 +
weight(s)*(nr(s)**3._wp)
1915 nbub = sqrt((4._wp*pi/3._wp)*nr3/alf)
1919 rdot(:) = nrdot(:)/nbub
1923 ((gamma + 1._wp)*pres + pi_inf)/rho, alpha, 0._wp, 0._wp, c, qv)
1933 if (distx(s) < 0._wp) distx(s) = 1000._wp
1937 if (disty(s) < 0._wp) disty(s) = 1000._wp
1941 if (distz(s) < 0._wp) distz(s) = 1000._wp
1943 j = minloc(distx, 1)
1944 k = minloc(disty, 1)
1945 l = minloc(distz, 1)
1952 rho, gamma, pi_inf, qv, &
1958 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1961 do d = 1, num_species
1969 g_local = g_local*max((1._wp - damage_state), 0._wp)
1975 dyn_p, pi_inf, gamma, rho, qv, &
1982 dyn_p, pi_inf, gamma, rho, qv, &
1988 ((gamma + 1._wp)*pres + pi_inf)/rho, alpha, 0._wp, 0._wp, c, qv)
1990 accel = accel_mag(
j - 2,
k - 2,
l - 2)
1996# 1545 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1998 call s_mpi_allreduce_sum(tmp, rho)
1999# 1545 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2001 call s_mpi_allreduce_sum(tmp, pres)
2002# 1545 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2004 call s_mpi_allreduce_sum(tmp, gamma)
2005# 1545 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2007 call s_mpi_allreduce_sum(tmp, pi_inf)
2008# 1545 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2010 call s_mpi_allreduce_sum(tmp, qv)
2011# 1545 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2013 call s_mpi_allreduce_sum(tmp, c)
2014# 1545 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2016 call s_mpi_allreduce_sum(tmp, accel)
2017# 1548 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2021 call s_mpi_allreduce_sum(tmp, vel(s))
2025# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2027 call s_mpi_allreduce_sum(tmp, alf)
2028# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2030 call s_mpi_allreduce_sum(tmp, alfgr)
2031# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2033 call s_mpi_allreduce_sum(tmp, nbub)
2034# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2036 call s_mpi_allreduce_sum(tmp, nr(1))
2037# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2039 call s_mpi_allreduce_sum(tmp, nrdot(1))
2040# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2042 call s_mpi_allreduce_sum(tmp, m00)
2043# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2045 call s_mpi_allreduce_sum(tmp, r(1))
2046# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2048 call s_mpi_allreduce_sum(tmp, rdot(1))
2049# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2051 call s_mpi_allreduce_sum(tmp, ptilde)
2052# 1556 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2054 call s_mpi_allreduce_sum(tmp, ptot)
2055# 1559 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2058# 1562 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2060 call s_mpi_allreduce_sum(tmp, varr)
2061# 1562 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2063 call s_mpi_allreduce_sum(tmp, varv)
2064# 1562 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2066 call s_mpi_allreduce_sum(tmp, m10)
2067# 1562 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2069 call s_mpi_allreduce_sum(tmp, m01)
2070# 1562 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2072 call s_mpi_allreduce_sum(tmp, m20)
2073# 1562 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2075 call s_mpi_allreduce_sum(tmp, m02)
2076# 1565 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2083 call s_mpi_allreduce_sum(tmp, tau_e(s))
2089 call s_mpi_allreduce_sum(tmp, damage_state)
2096 write (i + 30,
'(6x,f12.6,14f28.16)') &
2113 write (i + 30,
'(6x,f12.6,8f24.8)') &
2127 write (i + 30,
'(6x,f12.6,f24.8,f24.8,f24.8,f24.8,f24.8,'// &
2128 'f24.8,f24.8,f24.8,f24.8,f24.8, f24.8)') &
2142 write (i + 30,
'(6x,f12.6,f24.8,f24.8,f24.8,f24.8,'// &
2143 'f24.8,f24.8,f24.8,f24.8,f24.8,f24.8,f24.8,f24.8,f24.8)') &
2159 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8)') &
2165 elseif (
p == 0)
then
2167# 1656 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2168 write (i + 30,
'(6X,10F24.8)') &
2179# 1668 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2181# 1670 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2182 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8,F24.8,'// &
2183 'F24.8,F24.8,F24.8)') &
2192# 1681 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2194 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8)') &
2199 print *,
'time =', nondim_time,
'rho =', rho,
'pres =', pres
2202# 1691 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2203 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8,F24.8,'// &
2204 'F24.8,F24.8,F24.8,F24.8,F24.8,'// &
2217# 1706 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2243 rho, gamma, pi_inf, qv, re)
2254 int_pres = int_pres + (pres - 1._wp)**2._wp
2257 int_pres = sqrt(int_pres/(1._wp*npts))
2261 call s_mpi_allreduce_sum(tmp, int_pres)
2266 write (i + 70,
'(6x,f12.6,f24.8)') &
2267 nondim_time, int_pres
2271 elseif (
p == 0)
then
2273 call s_mpi_abort(
'Incorrect number of integrals')
2289 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) < (rad - 0.5_wp*thickness)) &
2291 elseif (i == 2)
then
2293 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) > (rad - 0.5_wp*thickness) .and. &
2294 sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) < (rad + 0.5_wp*thickness)) &
2296 elseif (i == 3)
then
2298 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) > (rad + 0.5_wp*thickness)) &
2315 rho, gamma, pi_inf, qv, re)
2326 int_pres = int_pres + abs(pres - 1._wp)
2327 max_pres = max(max_pres, abs(pres - 1._wp))
2334 int_pres = int_pres/(1._wp*npts)
2341 call s_mpi_allreduce_sum(tmp, int_pres)
2344 call s_mpi_allreduce_max(tmp, max_pres)
2349 write (i + 70,
'(6x,f12.6,f24.8,f24.8)') &
2350 nondim_time, int_pres, max_pres
2366 real(wp) :: run_time
2369 write (3,
'(A)')
' '
2372 write (3,
'(A,F9.6)')
'ICFL Max: ',
icfl_max
2376 call cpu_time(run_time)
2379 write (3,
'(A,I0,A)')
'Run-time: ', int(anint(run_time)),
's'
2380 write (3,
'(A)')
' '
2411 integer :: i, m_ds, n_ds, p_ds
2416# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2418# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2419 use iso_fortran_env,
only: output_unit
2420# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2422# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2423 print *,
'm_data_output.fpp:1903: ',
'@:ALLOCATE(icfl_sf(0:m, 0:n, 0:p))'
2424# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2426# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2427 call flush (output_unit)
2428# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2430# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2432# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2434# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2436# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2438# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2439#if defined(MFC_OpenACC)
2440# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2442# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2443#elif defined(MFC_OpenMP)
2444# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2446# 1903 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2452# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2454# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2455 use iso_fortran_env,
only: output_unit
2456# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2458# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2459 print *,
'm_data_output.fpp:1907: ',
'@:ALLOCATE(vcfl_sf(0:m, 0:n, 0:p))'
2460# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2462# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2463 call flush (output_unit)
2464# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2466# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2468# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2469 allocate (
vcfl_sf(0:m, 0:n, 0:p))
2470# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2472# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2474# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2475#if defined(MFC_OpenACC)
2476# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2478# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2479#elif defined(MFC_OpenMP)
2480# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2482# 1907 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2485# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2487# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2488 use iso_fortran_env,
only: output_unit
2489# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2491# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2492 print *,
'm_data_output.fpp:1908: ',
'@:ALLOCATE(Rc_sf (0:m, 0:n, 0:p))'
2493# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2495# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2496 call flush (output_unit)
2497# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2499# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2501# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2502 allocate (
rc_sf(0:m, 0:n, 0:p))
2503# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2505# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2507# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2508#if defined(MFC_OpenACC)
2509# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2511# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2512#elif defined(MFC_OpenMP)
2513# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2515# 1908 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2525# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2527# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2528 use iso_fortran_env,
only: output_unit
2529# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2531# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2532 print *,
'm_data_output.fpp:1916: ',
'@:ALLOCATE(c_mass(num_fluids,5))'
2533# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2535# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2536 call flush (output_unit)
2537# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2539# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2541# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2542 allocate (
c_mass(num_fluids,5))
2543# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2545# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2547# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2548#if defined(MFC_OpenACC)
2549# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2551# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2552#elif defined(MFC_OpenMP)
2553# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2555# 1916 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2559 if (down_sample)
then
2560 m_ds = int((m + 1)/3) - 1
2561 n_ds = int((n + 1)/3) - 1
2562 p_ds = int((p + 1)/3) - 1
2566 allocate (
q_cons_temp_ds(i)%sf(-1:m_ds + 1, -1:n_ds + 1, -1:p_ds + 1))
2579# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2581# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2582 use iso_fortran_env,
only: output_unit
2583# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2585# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2586 print *,
'm_data_output.fpp:1938: ',
'@:DEALLOCATE(c_mass)'
2587# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2589# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2590 call flush (output_unit)
2591# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2593# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2595# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2597# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2598#if defined(MFC_OpenACC)
2599# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2601# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2602#elif defined(MFC_OpenMP)
2603# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2605# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2607# 1938 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2611 if (run_time_info)
then
2614# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2616# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2617 use iso_fortran_env,
only: output_unit
2618# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2620# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2621 print *,
'm_data_output.fpp:1943: ',
'@:DEALLOCATE(icfl_sf)'
2622# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2624# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2625 call flush (output_unit)
2626# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2628# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2630# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2632# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2633#if defined(MFC_OpenACC)
2634# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2636# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2637#elif defined(MFC_OpenMP)
2638# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2640# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2642# 1943 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2646# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2648# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2649 use iso_fortran_env,
only: output_unit
2650# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2652# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2653 print *,
'm_data_output.fpp:1945: ',
'@:DEALLOCATE(vcfl_sf, Rc_sf)'
2654# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2656# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2657 call flush (output_unit)
2658# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2660# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2662# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2664# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2665#if defined(MFC_OpenACC)
2666# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2668# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2669#elif defined(MFC_OpenMP)
2670# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2672# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2674# 1945 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2679 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 deletes 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)
Creates 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 rc_sf
Rc stability criterion.
impure subroutine, public s_open_probe_files
This opens a formatted data file where the root processor can write out flow probe information.
real(wp) rc_min
Rc criterion maximum.
real(wp) vcfl_max
VCFL criterion maximum.
impure subroutine, public s_write_probe_files(t_step, q_cons_vf, accel_mag)
This writes a formatted data file for the flow probe information.
real(wp) rc_min_glb
Rc stability extrema on local and global grids.
real(wp), dimension(:, :, :), allocatable icfl_sf
ICFL stability criterion.
impure subroutine, public s_write_com_files(t_step, c_mass_in)
This writes a formatted data file where the root processor can write out the CoM information.
impure subroutine, public s_write_parallel_data_files(q_cons_vf, t_step, bc_type, beta)
The goal of this subroutine is to output the grid and conservative variables data files for given tim...
impure subroutine, public s_initialize_data_output_module
The computation of parameters, the allocation of memory, the association of pointers and/or the execu...
real(wp), dimension(:, :, :), allocatable ccfl_sf
CCFL stability criterion.
impure subroutine, public s_finalize_data_output_module
Module deallocation and/or disassociation procedures.
real(wp), dimension(:, :), allocatable, public c_mass
subroutine s_write_serial_ib_data(time_step)
Writes immersed boundary marker data to a serial (per-processor) unformatted file.
impure subroutine, public s_close_run_time_information_file
The goal of this subroutine is to write to the run-time information file basic footer information app...
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)
The goal of this subroutine is to output the grid and conservative variables data files for given tim...
real(wp) ccfl_max_glb
CCFL stability extrema on local and global grids.
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)
The goal of the procedure is to output to the run-time information file the stability criteria extrem...
impure subroutine, public s_open_run_time_information_file
The purpose of this subroutine is to open a new or pre- existing run-time information file and append...
real(wp) icfl_max
ICFL criterion maximum.
type(scalar_field), dimension(:), allocatable q_cons_temp_ds
subroutine s_write_parallel_ib_data(time_step)
Writes immersed boundary marker data in parallel using MPI I/O.
impure subroutine, public s_open_com_files()
This opens a formatted data file where the root processor can write out the CoM information.
subroutine, public s_write_ib_data_file(time_step)
Dispatches immersed boundary data output to the serial or parallel writer.
real(wp), dimension(:, :, :), allocatable vcfl_sf
VCFL stability criterion.
real(wp) ccfl_max
CCFL criterion maximum.
Rank-staggered file access delays to prevent I/O contention on parallel file systems.
impure subroutine, public delayfileaccess(processrank)
Introduces 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.
type(int_bounds_info) mom_idx
Indexes of first & last momentum eqns.
integer num_fluids
number of fluids in the simulation
type(int_bounds_info) stress_idx
Indexes of first and last shear stress eqns.
integer proc_rank
Rank of the local processor.
integer n_idx
Index of number density.
type(mpi_io_ib_var), public mpi_io_ib_data
logical dummy
AMDFlang workaround: keep a dummy logical to avoid a compiler case-optimization bug when a parameter+...
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.
type(int_bounds_info) cont_idx
Indexes of first & last continuity eqns.
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
Database of the physical parameters of each of the fluids that is present in the flow....
integer num_dims
Number of spatial dimensions.
type(pres_field), dimension(:), allocatable pb_ts
type(pres_field), dimension(:), allocatable mv_ts
real(wp), dimension(:, :, :), allocatable ptil
Pressure modification.
integer num_vels
Number of velocity components (different from num_dims for mhd).
logical polytropic
Polytropic switch.
logical qbmm
Quadrature moment method.
type(bub_bounds_info) bub_idx
Indexes of first & last bubble variable eqns.
integer damage_idx
Index of damage state variable (D) for continuum damage model.
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.
type(int_bounds_info) adv_idx
Indexes of first & last advection eqns.
logical parallel_io
Format of the data files.
type(integral_parameters), dimension(num_probes_max) integral
real(wp), dimension(:), allocatable, target y_cb
integer e_idx
Index of energy equation.
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
integer alf_idx
Index of void fraction.
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)
This procedure checks 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)
Downsamples conservative variable fields by a factor of 3 in each direction using volume averaging.
elemental subroutine, public s_int_to_str(i, res)
Converts 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)
Computes 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)
This procedure conditionally calculates the appropriate pressure.
subroutine, public s_convert_conservative_to_primitive_variables(qk_cons_vf, q_t_sf, qk_prim_vf, ibounds)
The following procedure handles the conversion between the conservative variables and the primitive v...
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).