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# 104 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
234# 119 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
236# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
238# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
240# 171 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242# 182 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
244# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
246# 204 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
250# 225 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
252# 236 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 246 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
256# 252 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
258# 258 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 264 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
262# 270 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
264# 272 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
265# 273 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
267# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
269# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
275# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
277# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
279# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
281# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
283# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
285# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
287# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
289# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
291# 6 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp" 2
292# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
298# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
301# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
302# 7 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp" 2
311 use m_mpi_proxy !< message passing interface (mpi) module proxy
348 real(wp),
allocatable,
dimension(:, :, :) ::
icfl_sf
349 real(wp),
allocatable,
dimension(:, :, :) ::
vcfl_sf
350 real(wp),
allocatable,
dimension(:, :, :) ::
ccfl_sf
351 real(wp),
allocatable,
dimension(:, :, :) ::
rc_sf
352 real(wp),
public,
allocatable,
dimension(:, :) ::
c_mass
354# 57 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
355#if defined(MFC_OpenACC)
356# 57 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
358# 57 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
359#elif defined(MFC_OpenMP)
360# 57 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
362# 57 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
370# 63 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
371#if defined(MFC_OpenACC)
372# 63 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
374# 63 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
375#elif defined(MFC_OpenMP)
376# 63 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
378# 63 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
381# 64 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
382#if defined(MFC_OpenACC)
383# 64 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
385# 64 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
386#elif defined(MFC_OpenMP)
387# 64 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
389# 64 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
414 dimension(sys_size), &
418 intent(inout) :: q_t_sf
421 dimension(sys_size), &
422 intent(inout) :: q_prim_vf
424 integer,
intent(in) :: t_step
427 intent(inout),
optional :: beta
430 dimension(1:num_dims, -1:1), &
431 intent(in) :: bc_type
449 character(LEN=name_len),
parameter :: file_name =
'run_time.inf'
452 character(LEN=path_len + name_len) :: file_path
455 character(LEN=8) :: file_date
459 file_path = trim(
case_dir)//
'/'//trim(file_name)
461 open (3, file=trim(file_path), &
465 write (3,
'(A)')
'Description: Stability information at '// &
466 'each time-step of the simulation. This'
467 write (3,
'(13X,A)')
'data is composed of the inviscid '// &
468 'Courant–Friedrichs–Lewy (ICFL)'
469 write (3,
'(13X,A)')
'number, the viscous CFL (VCFL) number, '// &
470 'the capillary CFL (CCFL)'
471 write (3,
'(13X,A)')
'number and the cell Reynolds (Rc) '// &
472 'number. Please note that only'
473 write (3,
'(13X,A)')
'those stability conditions pertinent '// &
474 'to the physics included in'
475 write (3,
'(13X,A)')
'the current computation are displayed.'
477 call date_and_time(date=file_date)
479 write (3,
'(A)')
'Date: '//file_date(5:6)//
'/'// &
480 file_date(7:8)//
'/'// &
483 write (3,
'(A)')
'';
write (3,
'(A)')
''
486 write (3,
'(13X,A9,13X,A10,13X,A10,13X,A10)', advance=
"no") &
487 trim(
'Time-step'), trim(
'dt'), trim(
'Time'), trim(
'ICFL Max')
490 write (3,
'(13X,A10,13X,A16)', advance=
"no") &
491 trim(
'VCFL Max'), trim(
'Rc Min')
502 character(len=path_len + 3*name_len) :: file_path
508 write (file_path,
'(A,I0,A)')
'/fluid', i,
'_com.dat'
509 file_path = trim(
case_dir)//trim(file_path)
512 open (i + 120, file=trim(file_path), &
517 write (i + 120,
'(A)')
' Non-Dimensional Time '// &
522 write (i + 120,
'(A)')
' Non-Dimensional Time '// &
528 write (i + 120,
'(A)')
' Non-Dimensional Time '// &
542 character(LEN=path_len + 3*name_len) :: file_path
546 logical :: file_exist
550 write (file_path,
'(A,I0,A)')
'/D/probe', i,
'_prim.dat'
551 file_path = trim(
case_dir)//trim(file_path)
555 inquire (file=trim(file_path), exist=file_exist)
558 open (i + 30, file=trim(file_path), &
563 open (i + 30, file=trim(file_path), &
571 write (file_path,
'(A,I0,A)')
'/D/integral', i,
'_prim.dat'
572 file_path = trim(
case_dir)//trim(file_path)
574 open (i + 70, file=trim(file_path), &
592 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
593 integer,
intent(in) :: t_step
596# 274 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
597 real(wp),
dimension(num_fluids) :: alpha
598 real(wp),
dimension(num_vels) :: vel
599# 277 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
607 real(wp),
dimension(2) :: re
612# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
614# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
615#if defined(MFC_OpenACC)
616# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
618# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
619#elif defined(MFC_OpenMP)
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"
630# 288 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
635 call s_compute_enthalpy(q_prim_vf, pres, rho, gamma, pi_inf, re, h, alpha, vel, vel_sum, qv,
j,
k,
l)
649# 305 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
651# 305 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
652#if defined(MFC_OpenACC)
653# 305 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
655# 305 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
656#elif defined(MFC_OpenMP)
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"
665# 305 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
674# 312 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
675#if defined(MFC_OpenACC)
676# 312 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
678# 312 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
679#elif defined(MFC_OpenMP)
680# 312 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
682# 312 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
687# 315 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
688#if defined(MFC_OpenACC)
689# 315 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
691# 315 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
692#elif defined(MFC_OpenMP)
693# 315 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
695# 315 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
707# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
709# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
710#if defined(MFC_OpenACC)
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"
717# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
718#elif defined(MFC_OpenMP)
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# 325 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
737# 328 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
740# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
742# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
743#if defined(MFC_OpenACC)
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"
752# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
753#elif defined(MFC_OpenMP)
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# 329 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
776# 333 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
782 call s_mpi_reduce_stability_criteria_extrema(
icfl_max_loc, &
804 write (3,
'(13X,I9,13X,F10.6,13X,F10.6,13X,F10.6)', advance=
"no") &
808 write (3,
'(13X,F10.6,13X,ES16.6)', advance=
"no") &
816 call s_mpi_abort(
'ICFL is NaN. Exiting.')
819 call s_mpi_abort(
'ICFL is greater than 1.0. Exiting.')
824 call s_mpi_abort(
'VCFL is NaN. Exiting.')
827 call s_mpi_abort(
'VCFL is greater than 1.0. Exiting.')
848 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
849 integer,
intent(in) :: t_step
851 type(
integer_field),
dimension(1:num_dims, -1:1),
intent(in) :: bc_type
853 character(LEN=path_len + 2*name_len) :: t_step_dir
856 character(LEN=path_len + 3*name_len) :: file_path
859 logical :: file_exist
862 character(LEN=15) :: fmt
864 integer :: i,
j,
k,
l, r
866 real(wp) :: gamma, lit_gamma, pi_inf, qv
869 write (t_step_dir,
'(A,I0,A,I0)') trim(
case_dir)//
'/p_all'
872 write (t_step_dir,
'(a,i0,a,i0)') trim(
case_dir)//
'/p_all/p', &
875 file_path = trim(t_step_dir)//
'/.'
881 file_path = trim(t_step_dir)//
'/x_cb.dat'
883 open (2, file=trim(file_path), &
884 form=
'unformatted', &
886 write (2)
x_cb(-1:
m);
close (2)
891 file_path = trim(t_step_dir)//
'/y_cb.dat'
893 open (2, file=trim(file_path), &
894 form=
'unformatted', &
896 write (2)
y_cb(-1:
n);
close (2)
900 file_path = trim(t_step_dir)//
'/z_cb.dat'
902 open (2, file=trim(file_path), &
903 form=
'unformatted', &
905 write (2)
z_cb(-1:
p);
close (2)
913 write (file_path,
'(A,I0,A)') trim(t_step_dir)//
'/q_cons_vf', &
916 open (2, file=trim(file_path), &
917 form=
'unformatted', &
926 write (file_path,
'(A,I0,A)') trim(t_step_dir)//
'/q_cons_vf', &
929 open (2, file=trim(file_path), &
930 form=
'unformatted', &
933 write (2) beta%sf(0:
m, 0:
n, 0:
p);
close (2)
939 write (file_path,
'(A,I0,A)') trim(t_step_dir)//
'/pb', &
940 sys_size + (i - 1)*nnode + r,
'.dat'
942 open (2, file=trim(file_path), &
943 form=
'unformatted', &
946 write (2)
pb_ts(1)%sf(0:
m, 0:
n, 0:
p, r, i);
close (2)
952 write (file_path,
'(A,I0,A)') trim(t_step_dir)//
'/mv', &
953 sys_size + (i - 1)*nnode + r,
'.dat'
955 open (2, file=trim(file_path), &
956 form=
'unformatted', &
959 write (2)
mv_ts(1)%sf(0:
m, 0:
n, 0:
p, r, i);
close (2)
988 write (t_step_dir,
'(A,I0,A,I0)') trim(
case_dir)//
'/D'
989 file_path = trim(t_step_dir)//
'/.'
991 inquire (file=trim(file_path), exist=file_exist)
999# 554 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1000#if defined(MFC_OpenACC)
1001# 554 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1003# 554 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1004#elif defined(MFC_OpenMP)
1005# 554 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1007# 554 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1012 q_prim_vf(
bubxb)%sf = 1._wp
1017 if (
n == 0 .and.
p == 0)
then
1021 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/prim.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1023 open (2, file=trim(file_path))
1029 write (2, fmt)
x_cb(
j), q_prim_vf(i)%sf(
j, 0, 0)
1037 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/cons.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1039 open (2, file=trim(file_path))
1049 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'
1051 open (2, file=trim(file_path))
1053 write (2, fmt)
x_cb(
j),
pb_ts(1)%sf(
j, 0, 0, r, i)
1060 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'
1062 open (2, file=trim(file_path))
1064 write (2, fmt)
x_cb(
j),
mv_ts(1)%sf(
j, 0, 0, r, i)
1079 if ((
n > 0) .and. (
p == 0))
then
1081 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/cons.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1082 open (2, file=trim(file_path))
1092 if (
present(beta))
then
1093 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/beta.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1094 open (2, file=trim(file_path))
1107 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'
1109 open (2, file=trim(file_path))
1120 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'
1122 open (2, file=trim(file_path))
1135 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/prim.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1137 open (2, file=trim(file_path))
1147 write (2, fmt)
x_cb(
j),
y_cb(
k), q_prim_vf(i)%sf(
j,
k, 0)
1166 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/cons.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1167 open (2, file=trim(file_path))
1180 if (
present(beta))
then
1181 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/beta.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1182 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)//
'/pres.', i,
'.', r,
'.',
proc_rank,
'.', t_step,
'.dat'
1200 open (2, file=trim(file_path))
1213 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'
1215 open (2, file=trim(file_path))
1230 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir)//
'/prim.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1232 open (2, file=trim(file_path))
1268 integer,
intent(in) :: t_step
1271 dimension(1:num_dims, -1:1), &
1272 intent(in) :: bc_type
1276 integer :: ifile, ierr, data_size
1277 integer,
dimension(MPI_STATUS_SIZE) :: status
1278 integer(kind=MPI_OFFSET_kind) :: disp
1279 integer(kind=MPI_OFFSET_kind) :: m_mok, n_mok, p_mok
1280 integer(kind=MPI_OFFSET_kind) :: wp_mok, var_mok, str_mok
1281 integer(kind=MPI_OFFSET_kind) :: nvars_mok
1282 integer(kind=MPI_OFFSET_kind) :: mok
1284 character(LEN=path_len + 2*name_len) :: file_loc
1285 logical :: file_exist, dir_check
1286 character(len=10) :: t_step_string
1293 integer :: m_ds, n_ds, p_ds
1294 integer :: m_glb_ds, n_glb_ds, p_glb_ds
1295 integer :: m_glb_save, n_glb_save, p_glb_save
1299 m_ds, n_ds, p_ds, m_glb_ds, n_glb_ds, p_glb_ds)
1302 if (
present(beta))
then
1324 file_loc = trim(
case_dir)//
'/restart_data/lustre_'//trim(t_step_string)
1326 if (dir_check .neqv. .true.)
then
1331 call s_mpi_barrier()
1338 write (file_loc,
'(I0,A,i7.7,A)') t_step,
'_',
proc_rank,
'.dat'
1339 file_loc = trim(
case_dir)//
'/restart_data/lustre_'//trim(t_step_string)//trim(
mpiiofs)//trim(file_loc)
1340 inquire (file=trim(file_loc), exist=file_exist)
1341 if (file_exist .and.
proc_rank == 0)
then
1344 call mpi_file_open(mpi_comm_self, file_loc, ior(mpi_mode_wronly, mpi_mode_create), &
1349 data_size = (m_ds + 3)*(n_ds + 3)*(p_ds + 3)
1350 m_glb_save = m_glb_ds + 1
1351 n_glb_save = n_glb_ds + 1
1352 p_glb_save = p_glb_ds + 1
1355 data_size = (
m + 1)*(
n + 1)*(
p + 1)
1356 m_glb_save =
m_glb + 1
1357 n_glb_save =
n_glb + 1
1358 p_glb_save =
p_glb + 1
1362 m_mok = int(m_glb_save + 1, mpi_offset_kind)
1363 n_mok = int(n_glb_save + 1, mpi_offset_kind)
1364 p_mok = int(p_glb_save + 1, mpi_offset_kind)
1365 wp_mok = int(8._wp, mpi_offset_kind)
1366 mok = int(1._wp, mpi_offset_kind)
1367 str_mok = int(name_len, mpi_offset_kind)
1368 nvars_mok = int(
sys_size, mpi_offset_kind)
1373 var_mok = int(i, mpi_offset_kind)
1375 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, &
1376 mpi_io_p, status, ierr)
1381 var_mok = int(i, mpi_offset_kind)
1383 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, &
1384 mpi_io_p, status, ierr)
1390 var_mok = int(i, mpi_offset_kind)
1392 call mpi_file_write_all(ifile,
q_cons_temp_ds(i)%sf, data_size*mpi_io_type, &
1393 mpi_io_p, status, ierr)
1397 var_mok = int(i, mpi_offset_kind)
1399 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, &
1400 mpi_io_p, status, ierr)
1405 call mpi_file_close(ifile, ierr)
1411 elseif (
present(beta))
then
1412 call s_initialize_mpi_data(
q_cons_vf, beta=beta)
1417 write (file_loc,
'(I0,A)') t_step,
'.dat'
1418 file_loc = trim(
case_dir)//
'/restart_data'//trim(
mpiiofs)//trim(file_loc)
1419 inquire (file=trim(file_loc), exist=file_exist)
1420 if (file_exist .and.
proc_rank == 0)
then
1423 call mpi_file_open(mpi_comm_world, file_loc, ior(mpi_mode_wronly, mpi_mode_create), &
1427 data_size = (
m + 1)*(
n + 1)*(
p + 1)
1430 m_mok = int(
m_glb + 1, mpi_offset_kind)
1431 n_mok = int(
n_glb + 1, mpi_offset_kind)
1432 p_mok = int(
p_glb + 1, mpi_offset_kind)
1433 wp_mok = int(8._wp, mpi_offset_kind)
1434 mok = int(1._wp, mpi_offset_kind)
1435 str_mok = int(name_len, mpi_offset_kind)
1436 nvars_mok = int(alt_sys, mpi_offset_kind)
1441 var_mok = int(i, mpi_offset_kind)
1444 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1446 call mpi_file_set_view(ifile, disp, mpi_p,
mpi_io_data%view(i), &
1448 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, &
1449 mpi_io_p, status, ierr)
1454 var_mok = int(i, mpi_offset_kind)
1457 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1459 call mpi_file_set_view(ifile, disp, mpi_p,
mpi_io_data%view(i), &
1461 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, &
1462 mpi_io_p, status, ierr)
1467 var_mok = int(i, mpi_offset_kind)
1470 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1472 call mpi_file_set_view(ifile, disp, mpi_p,
mpi_io_data%view(i), &
1474 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, &
1475 mpi_io_p, status, ierr)
1480 if (
present(beta))
then
1481 var_mok = int(
sys_size + 1, mpi_offset_kind)
1484 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1489 mpi_io_p, status, ierr)
1492 call mpi_file_close(ifile, ierr)
1520 integer,
intent(in) :: time_step
1521 character(LEN=path_len + 2*name_len) :: file_path
1522 character(LEN=path_len + 2*name_len) :: t_step_dir
1525 write (t_step_dir,
'(A,I0,A,I0)') trim(
case_dir)//
'/p_all'
1526 write (t_step_dir,
'(a,i0,a,i0)') trim(
case_dir)//
'/p_all/p', &
1528 write (file_path,
'(A,I0,A)') trim(t_step_dir)//
'/ib.dat'
1530 open (2, file=trim(file_path), &
1531 form=
'unformatted', &
1535# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1536#if defined(MFC_OpenACC)
1537# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1539# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1540#elif defined(MFC_OpenMP)
1541# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1543# 1080 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1552 integer,
intent(in) :: time_step
1556 character(LEN=path_len + 2*name_len) :: file_loc
1557 integer(kind=MPI_OFFSET_kind) :: disp
1558 integer(kind=MPI_OFFSET_kind) :: m_MOK, n_MOK, p_MOK
1559 integer(kind=MPI_OFFSET_kind) :: WP_MOK, var_MOK, MOK
1560 integer :: ifile, ierr, data_size
1561 integer,
dimension(MPI_STATUS_SIZE) :: status
1564# 1099 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1565#if defined(MFC_OpenACC)
1566# 1099 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1568# 1099 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1569#elif defined(MFC_OpenMP)
1570# 1099 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1572# 1099 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1576 data_size = (
m + 1)*(
n + 1)*(
p + 1)
1577 m_mok = int(
m_glb + 1, mpi_offset_kind)
1578 n_mok = int(
n_glb + 1, mpi_offset_kind)
1579 p_mok = int(
p_glb + 1, mpi_offset_kind)
1580 wp_mok = int(8._wp, mpi_offset_kind)
1581 mok = int(1._wp, mpi_offset_kind)
1583 write (file_loc,
'(A)')
'ib.dat'
1584 file_loc = trim(
case_dir)//
'/restart_data'//trim(
mpiiofs)//trim(file_loc)
1585 call mpi_file_open(mpi_comm_world, file_loc, ior(mpi_mode_wronly, mpi_mode_create), &
1588 var_mok = int(
sys_size + 1, mpi_offset_kind)
1589 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1 + int(time_step/
t_step_save))
1590 if (time_step == 0) disp = 0
1592 call mpi_file_set_view(ifile, disp, mpi_integer,
mpi_io_ib_data%view, &
1594 call mpi_file_write_all(ifile,
mpi_io_ib_data%var%sf, data_size, &
1595 mpi_integer, status, ierr)
1596 call mpi_file_close(ifile, ierr)
1605 integer,
intent(in) :: time_step
1621 integer,
intent(in) :: t_step
1622 real(wp),
dimension(num_fluids, 5),
intent(in) :: c_mass_in
1624 real(wp) :: nondim_time
1630 nondim_time = real(t_step, wp)*
dt
1636 write (i + 120,
'(6X,4F24.12)') &
1642 elseif (
p == 0)
then
1644 write (i + 120,
'(6X,5F24.12)') &
1653 write (i + 120,
'(6X,6F24.12)') &
1672 integer,
intent(in) :: t_step
1674 real(wp),
dimension(0:m, 0:n, 0:p),
intent(in) :: accel_mag
1676 real(wp),
dimension(-1:m) :: distx
1677 real(wp),
dimension(-1:n) :: disty
1678 real(wp),
dimension(-1:p) :: distz
1683 real(wp) :: lit_gamma, nbub
1685 real(wp),
dimension(num_vels) :: vel
1691 real(wp),
dimension(num_fluids) :: alpha
1696 real(wp) :: m00, m10, m01, m20, m11, m02
1697 real(wp) :: varr, varv
1698 real(wp),
dimension(Nb) :: nr, r, nrdot, rdot
1701 real(wp) :: int_pres
1702 real(wp) :: max_pres
1703 real(wp),
dimension(2) :: re
1704 real(wp),
dimension(6) :: tau_e
1706 real(wp) :: dyn_p, t
1707 real(wp) :: damage_state
1709 integer :: i,
j,
k,
l, s, d
1711 real(wp) :: nondim_time
1717 real(wp) :: rad, thickness
1720 real(wp) :: rhoyks(1:num_species)
1731 nondim_time = real(t_step, wp)*
dt
1747 nr = 0._wp; r = 0._wp
1748 nrdot = 0._wp; rdot = 0._wp
1756 varr = 0._wp; varv = 0._wp
1761 damage_state = 0._wp
1769 if (distx(s) < 0._wp) distx(s) = 1000._wp
1771 j = minloc(distx, 1)
1777 do d = 1, num_species
1785 rho, gamma, pi_inf, qv, &
1789 rho, gamma, pi_inf, qv)
1795 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1800 g_local = g_local*max((1._wp - damage_state), 0._wp)
1806 dyn_p, pi_inf, gamma, rho, qv, rhoyks(:), pres, t, &
1813 dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t)
1837 nr3 = nr3 +
weight(s)*(nr(s)**3._wp)
1840 nbub = sqrt((4._wp*pi/3._wp)*nr3/alf)
1843 print *,
'In probe, nbub: ', nbub
1859 varr = m20 - m10**2._wp
1860 varv = m02 - m01**2._wp
1863 rdot(:) = nrdot(:)/nbub
1866 ptot = pres - ptilde
1871 ((gamma + 1._wp)*pres + pi_inf)/rho, alpha, 0._wp, 0._wp, c, qv)
1873 accel = accel_mag(
j - 2,
k,
l)
1875 elseif (
p == 0)
then
1877 do d = 1, num_species
1886 if (distx(s) < 0._wp) distx(s) = 1000._wp
1890 if (disty(s) < 0._wp) disty(s) = 1000._wp
1892 j = minloc(distx, 1)
1893 k = minloc(disty, 1)
1900 rho, gamma, pi_inf, qv, &
1906 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1911 g_local = g_local*max((1._wp - damage_state), 0._wp)
1917 dyn_p, pi_inf, gamma, rho, qv, &
1926 dyn_p, pi_inf, gamma, rho, qv, &
1950 nr3 = nr3 +
weight(s)*(nr(s)**3._wp)
1953 nbub = sqrt((4._wp*pi/3._wp)*nr3/alf)
1957 rdot(:) = nrdot(:)/nbub
1961 ((gamma + 1._wp)*pres + pi_inf)/rho, alpha, 0._wp, 0._wp, c, qv)
1971 if (distx(s) < 0._wp) distx(s) = 1000._wp
1975 if (disty(s) < 0._wp) disty(s) = 1000._wp
1979 if (distz(s) < 0._wp) distz(s) = 1000._wp
1981 j = minloc(distx, 1)
1982 k = minloc(disty, 1)
1983 l = minloc(distz, 1)
1990 rho, gamma, pi_inf, qv, &
1996 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1999 do d = 1, num_species
2007 g_local = g_local*max((1._wp - damage_state), 0._wp)
2013 dyn_p, pi_inf, gamma, rho, qv, &
2020 dyn_p, pi_inf, gamma, rho, qv, &
2026 ((gamma + 1._wp)*pres + pi_inf)/rho, alpha, 0._wp, 0._wp, c, qv)
2028 accel = accel_mag(
j - 2,
k - 2,
l - 2)
2034# 1561 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2036 call s_mpi_allreduce_sum(tmp, rho)
2037# 1561 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2039 call s_mpi_allreduce_sum(tmp, pres)
2040# 1561 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2042 call s_mpi_allreduce_sum(tmp, gamma)
2043# 1561 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2045 call s_mpi_allreduce_sum(tmp, pi_inf)
2046# 1561 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2048 call s_mpi_allreduce_sum(tmp, qv)
2049# 1561 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2051 call s_mpi_allreduce_sum(tmp, c)
2052# 1561 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2054 call s_mpi_allreduce_sum(tmp, accel)
2055# 1564 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2059 call s_mpi_allreduce_sum(tmp, vel(s))
2063# 1572 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2065 call s_mpi_allreduce_sum(tmp, alf)
2066# 1572 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2068 call s_mpi_allreduce_sum(tmp, alfgr)
2069# 1572 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2071 call s_mpi_allreduce_sum(tmp, nbub)
2072# 1572 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2074 call s_mpi_allreduce_sum(tmp, nr(1))
2075# 1572 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2077 call s_mpi_allreduce_sum(tmp, nrdot(1))
2078# 1572 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2080 call s_mpi_allreduce_sum(tmp, m00)
2081# 1572 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2083 call s_mpi_allreduce_sum(tmp, r(1))
2084# 1572 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2086 call s_mpi_allreduce_sum(tmp, rdot(1))
2087# 1572 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2089 call s_mpi_allreduce_sum(tmp, ptilde)
2090# 1572 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2092 call s_mpi_allreduce_sum(tmp, ptot)
2093# 1575 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2096# 1578 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2098 call s_mpi_allreduce_sum(tmp, varr)
2099# 1578 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2101 call s_mpi_allreduce_sum(tmp, varv)
2102# 1578 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2104 call s_mpi_allreduce_sum(tmp, m10)
2105# 1578 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2107 call s_mpi_allreduce_sum(tmp, m01)
2108# 1578 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2110 call s_mpi_allreduce_sum(tmp, m20)
2111# 1578 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2113 call s_mpi_allreduce_sum(tmp, m02)
2114# 1581 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2121 call s_mpi_allreduce_sum(tmp, tau_e(s))
2127 call s_mpi_allreduce_sum(tmp, damage_state)
2134 write (i + 30,
'(6x,f12.6,14f28.16)') &
2151 write (i + 30,
'(6x,f12.6,8f24.8)') &
2165 write (i + 30,
'(6x,f12.6,f24.8,f24.8,f24.8,f24.8,f24.8,'// &
2166 'f24.8,f24.8,f24.8,f24.8,f24.8, f24.8)') &
2180 write (i + 30,
'(6x,f12.6,f24.8,f24.8,f24.8,f24.8,'// &
2181 'f24.8,f24.8,f24.8,f24.8,f24.8,f24.8,f24.8,f24.8,f24.8)') &
2197 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8)') &
2203 elseif (
p == 0)
then
2205# 1672 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2206 write (i + 30,
'(6X,10F24.8)') &
2217# 1684 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2219# 1686 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2220 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8,F24.8,'// &
2221 'F24.8,F24.8,F24.8)') &
2230# 1697 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2232 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8)') &
2237 print *,
'time =', nondim_time,
'rho =', rho,
'pres =', pres
2240# 1707 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2241 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8,F24.8,'// &
2242 'F24.8,F24.8,F24.8,F24.8,F24.8,'// &
2255# 1722 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2281 rho, gamma, pi_inf, qv, re)
2292 int_pres = int_pres + (pres - 1._wp)**2._wp
2295 int_pres = sqrt(int_pres/(1._wp*npts))
2299 call s_mpi_allreduce_sum(tmp, int_pres)
2304 write (i + 70,
'(6x,f12.6,f24.8)') &
2305 nondim_time, int_pres
2309 elseif (
p == 0)
then
2311 call s_mpi_abort(
'Incorrect number of integrals')
2327 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) < (rad - 0.5_wp*thickness)) &
2329 elseif (i == 2)
then
2331 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) > (rad - 0.5_wp*thickness) .and. &
2332 sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) < (rad + 0.5_wp*thickness)) &
2334 elseif (i == 3)
then
2336 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) > (rad + 0.5_wp*thickness)) &
2353 rho, gamma, pi_inf, qv, re)
2364 int_pres = int_pres + abs(pres - 1._wp)
2365 max_pres = max(max_pres, abs(pres - 1._wp))
2372 int_pres = int_pres/(1._wp*npts)
2379 call s_mpi_allreduce_sum(tmp, int_pres)
2382 call s_mpi_allreduce_max(tmp, max_pres)
2387 write (i + 70,
'(6x,f12.6,f24.8,f24.8)') &
2388 nondim_time, int_pres, max_pres
2404 real(wp) :: run_time
2407 write (3,
'(A)')
' '
2410 write (3,
'(A,F9.6)')
'ICFL Max: ',
icfl_max
2414 call cpu_time(run_time)
2417 write (3,
'(A,I0,A)')
'Run-time: ', int(anint(run_time)),
's'
2418 write (3,
'(A)')
' '
2449 integer :: i, m_ds, n_ds, p_ds
2454# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2456# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2457 use iso_fortran_env,
only: output_unit
2458# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2460# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2461 print *,
'm_data_output.fpp:1919: ',
'@:ALLOCATE(icfl_sf(0:m, 0:n, 0:p))'
2462# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2464# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2465 call flush (output_unit)
2466# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2468# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2470# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2472# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2474# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2476# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2477#if defined(MFC_OpenACC)
2478# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2480# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2481#elif defined(MFC_OpenMP)
2482# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2484# 1919 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2490# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2492# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2493 use iso_fortran_env,
only: output_unit
2494# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2496# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2497 print *,
'm_data_output.fpp:1923: ',
'@:ALLOCATE(vcfl_sf(0:m, 0:n, 0:p))'
2498# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2500# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2501 call flush (output_unit)
2502# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2504# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2506# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2507 allocate (
vcfl_sf(0:m, 0:n, 0:p))
2508# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2510# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2512# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2513#if defined(MFC_OpenACC)
2514# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2516# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2517#elif defined(MFC_OpenMP)
2518# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2520# 1923 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2523# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2525# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2526 use iso_fortran_env,
only: output_unit
2527# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2529# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2530 print *,
'm_data_output.fpp:1924: ',
'@:ALLOCATE(Rc_sf (0:m, 0:n, 0:p))'
2531# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2533# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2534 call flush (output_unit)
2535# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2537# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2539# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2540 allocate (
rc_sf(0:m, 0:n, 0:p))
2541# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2543# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2545# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2546#if defined(MFC_OpenACC)
2547# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2549# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2550#elif defined(MFC_OpenMP)
2551# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2553# 1924 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2563# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2565# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2566 use iso_fortran_env,
only: output_unit
2567# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2569# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2570 print *,
'm_data_output.fpp:1932: ',
'@:ALLOCATE(c_mass(num_fluids,5))'
2571# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2573# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2574 call flush (output_unit)
2575# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2577# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2579# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2580 allocate (
c_mass(num_fluids,5))
2581# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2583# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2585# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2586#if defined(MFC_OpenACC)
2587# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2589# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2590#elif defined(MFC_OpenMP)
2591# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2593# 1932 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2597 if (down_sample)
then
2598 m_ds = int((m + 1)/3) - 1
2599 n_ds = int((n + 1)/3) - 1
2600 p_ds = int((p + 1)/3) - 1
2604 allocate (
q_cons_temp_ds(i)%sf(-1:m_ds + 1, -1:n_ds + 1, -1:p_ds + 1))
2617# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2619# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2620 use iso_fortran_env,
only: output_unit
2621# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2623# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2624 print *,
'm_data_output.fpp:1954: ',
'@:DEALLOCATE(c_mass)'
2625# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2627# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2628 call flush (output_unit)
2629# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2631# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2633# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2635# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2636#if defined(MFC_OpenACC)
2637# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2639# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2640#elif defined(MFC_OpenMP)
2641# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2643# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2645# 1954 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2649 if (run_time_info)
then
2652# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2654# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2655 use iso_fortran_env,
only: output_unit
2656# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2658# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2659 print *,
'm_data_output.fpp:1959: ',
'@:DEALLOCATE(icfl_sf)'
2660# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2662# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2663 call flush (output_unit)
2664# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2666# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2668# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2670# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2671#if defined(MFC_OpenACC)
2672# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2674# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2675#elif defined(MFC_OpenMP)
2676# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2678# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2680# 1959 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2684# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2686# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2687 use iso_fortran_env,
only: output_unit
2688# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2690# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2691 print *,
'm_data_output.fpp:1961: ',
'@:DEALLOCATE(vcfl_sf, Rc_sf)'
2692# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2694# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2695 call flush (output_unit)
2696# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2698# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2700# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2702# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2703#if defined(MFC_OpenACC)
2704# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2706# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2707#elif defined(MFC_OpenMP)
2708# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2710# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2712# 1961 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2717 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
logical bubbles_lagrange
Lagrangian subgrid bubble model switch.
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).