1# 1 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
6# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
7# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
8# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
9# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
10# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
11# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
12# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
13# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
15# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
16# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
17# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
19# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
31# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
34# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
35# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
36# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
37# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
38# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
43# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
58# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
60# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
62# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
63# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
64# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
65# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
66# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
68# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
70# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
72# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
74# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 206 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 231 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
110# 242 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
112# 244 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
115# 284 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 294 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 304 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 313 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 330 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 340 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 347 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 353 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 359 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 365 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 371 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
137# 377 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
139# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
140# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
141# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
142# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
143# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
144# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
145# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
146# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
148# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
149# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
150# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
152# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
154# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
164# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
166# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
168# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
170# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
172# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
174# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
176# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
178# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
180# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
182# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
184# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
186# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206# 193 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 215 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 244 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 259 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 269 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 278 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 294 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 304 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
222# 311 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
224# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
227# 23 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
230# 43 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
233# 55 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
236# 112 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
239# 130 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242# 145 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
245# 164 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 193 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
251# 207 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 219 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
257# 231 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
260# 242 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
263# 254 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
266# 266 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
269# 275 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
272# 282 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
275# 289 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
278# 296 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
281# 303 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
283# 305 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
284# 306 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
286# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
288# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
293# 57 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
296# 77 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
299# 85 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
302# 109 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
305# 125 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
308# 150 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
310# 156 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
312# 163 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
314# 6 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp" 2
315# 1 "/home/runner/work/MFC/MFC/src/common/include/case.fpp" 1
321# 9 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
324# 14 "/home/runner/work/MFC/MFC/src/common/include/case.fpp"
325# 7 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp" 2
352 real(wp),
allocatable,
dimension(:,:,:) ::
icfl_sf
353 real(wp),
allocatable,
dimension(:,:,:) ::
vcfl_sf
354 real(wp),
allocatable,
dimension(:,:,:) ::
ccfl_sf
355 real(wp),
allocatable,
dimension(:,:,:) ::
rc_sf
356 real(wp),
public,
allocatable,
dimension(:,:) ::
c_mass
358# 38 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
359#if defined(MFC_OpenACC)
360# 38 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
362# 38 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
363#elif defined(MFC_OpenMP)
364# 38 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
366# 38 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
374# 44 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
375#if defined(MFC_OpenACC)
376# 44 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
378# 44 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
379#elif defined(MFC_OpenMP)
380# 44 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
382# 44 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
385# 45 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
386#if defined(MFC_OpenACC)
387# 45 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
389# 45 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
390#elif defined(MFC_OpenMP)
391# 45 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
393# 45 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
413 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
414 integer,
intent(in) :: t_step
416 type(
integer_field),
dimension(1:num_dims,-1:1),
intent(in) :: bc_type
429 character(LEN=name_len),
parameter :: file_name =
'run_time.inf'
430 character(LEN=path_len + name_len) :: file_path
431 character(LEN=8) :: file_date
433 file_path = trim(
case_dir) //
'/' // trim(file_name)
435 open (3, file=trim(file_path), form=
'formatted', status=
'replace')
437 write (3,
'(A)')
'Description: Stability information at ' //
'each time-step of the simulation. This'
438 write (3,
'(13X,A)')
'data is composed of the inviscid ' //
'Courant-Friedrichs-Lewy (ICFL)'
439 write (3,
'(13X,A)')
'number, the viscous CFL (VCFL) number, ' //
'the capillary CFL (CCFL)'
440 write (3,
'(13X,A)')
'number and the cell Reynolds (Rc) ' //
'number. Please note that only'
441 write (3,
'(13X,A)')
'those stability conditions pertinent ' //
'to the physics included in'
442 write (3,
'(13X,A)')
'the current computation are displayed.'
444 call date_and_time(date=file_date)
446 write (3,
'(A)')
'Date: ' // file_date(5:6) //
'/' // file_date(7:8) //
'/' // file_date(3:4)
448 write (3,
'(A)')
'';
write (3,
'(A)')
''
450 write (3,
'(13X,A9,13X,A10,13X,A10,13X,A10)', advance=
"no") trim(
'Time-step'), trim(
'dt'), trim(
'Time'), trim(
'ICFL Max')
453 write (3,
'(13X,A10,13X,A16)', advance=
"no") trim(
'VCFL Max'), trim(
'Rc Min')
463 character(len=path_len + 3*name_len) :: file_path
467 write (file_path,
'(A,I0,A)')
'/fluid', i,
'_com.dat'
468 file_path = trim(
case_dir) // trim(file_path)
469 open (i + 120, file=trim(file_path), form=
'formatted', position=
'append', status=
'unknown')
471 write (i + 120,
'(A)')
' Non-Dimensional Time ' //
' Total Mass ' //
' x-loc ' //
' Total Volume '
472 else if (
p == 0)
then
474 &
'(A)')
' Non-Dimensional Time ' //
' Total Mass ' //
' x-loc ' //
' y-loc ' &
475 & //
' Total Volume '
478 &
'(A)')
' Non-Dimensional Time ' //
' Total Mass ' //
' x-loc ' //
' y-loc ' //
' z-loc ' &
479 & //
' Total Volume '
488 character(LEN=path_len + 3*name_len) :: file_path
490 logical :: file_exist
493 write (file_path,
'(A,I0,A)')
'/D/probe', i,
'_prim.dat'
494 file_path = trim(
case_dir) // trim(file_path)
496 inquire (file=trim(file_path), exist=file_exist)
499 open (i + 30, file=trim(file_path), form=
'formatted', status=
'old', position=
'append')
501 open (i + 30, file=trim(file_path), form=
'formatted', status=
'unknown')
507 write (file_path,
'(A,I0,A)')
'/D/integral', i,
'_prim.dat'
508 file_path = trim(
case_dir) // trim(file_path)
510 open (i + 70, file=trim(file_path), form=
'formatted', position=
'append', status=
'unknown')
519 character(len=path_len + 2*name_len) :: file_loc
522 write (file_loc,
'(A)')
'ib_state.dat'
523 file_loc = trim(
case_dir) //
'/D/' // trim(file_loc)
524 open (newunit=
ib_state_unit, file=trim(file_loc), form=
'unformatted', access=
'stream', status=
'replace', iostat=ios)
525 if (ios /= 0)
call s_mpi_abort(
'Cannot open IB state output file: ' // trim(file_loc))
532 type(
scalar_field),
dimension(sys_size),
intent(in) :: q_prim_vf
533 integer,
intent(in) :: t_step
536# 191 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
537 real(wp),
dimension(num_fluids) :: alpha
538 real(wp),
dimension(num_vels) :: vel
539# 194 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
547 real(wp),
dimension(2) :: re
553# 206 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
555# 206 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
556#if defined(MFC_OpenACC)
557# 206 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
559# 206 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
560#elif defined(MFC_OpenMP)
561# 206 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
563# 206 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
565# 206 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
567# 206 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
569# 206 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
574 call s_compute_enthalpy(q_prim_vf, pres, rho, gamma, pi_inf, re, h, alpha, vel, vel_sum, qv,
j,
k,
l)
587# 222 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
588#if defined(MFC_OpenACC)
589# 222 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
591# 222 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
592#elif defined(MFC_OpenMP)
593# 222 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
595# 222 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
597# 222 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
602# 225 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
603#if defined(MFC_OpenACC)
604# 225 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
606# 225 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
607#elif defined(MFC_OpenMP)
608# 225 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
610# 225 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
615# 228 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
616#if defined(MFC_OpenACC)
617# 228 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
619# 228 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
620#elif defined(MFC_OpenMP)
621# 228 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
623# 228 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
635# 238 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
637# 238 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
638#if defined(MFC_OpenACC)
639# 238 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
641# 238 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
643# 238 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
645# 238 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
646#elif defined(MFC_OpenMP)
647# 238 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
649# 238 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
651# 238 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
653# 238 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
655# 238 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
657# 238 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
659# 238 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
661# 238 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
663# 241 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
666# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
668# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
669#if defined(MFC_OpenACC)
670# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
672# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
674# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
676# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
678# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
679#elif defined(MFC_OpenMP)
680# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
682# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
684# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
686# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
688# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
690# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
692# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
694# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
696# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
698# 242 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
700# 246 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
721 write (3,
'(13X,I9,13X,F10.6,13X,F10.6,13X,F10.6)', advance=
"no") t_step,
dt,
mytime,
icfl_max_glb
730 call s_mpi_abort(
'ICFL is NaN. Exiting.')
733 call s_mpi_abort(
'ICFL is greater than 1.0. Exiting.')
738 call s_mpi_abort(
'VCFL is NaN. Exiting.')
741 call s_mpi_abort(
'VCFL is greater than 1.0. Exiting.')
755 type(
scalar_field),
dimension(sys_size),
intent(inout) :: q_prim_vf
756 integer,
intent(in) :: t_step
758 type(
integer_field),
dimension(1:num_dims,-1:1),
intent(in) :: bc_type
759 character(LEN=path_len + 2*name_len) :: t_step_dir
760 character(LEN=path_len + 3*name_len) :: file_path
761 logical :: file_exist
762 character(LEN=15) :: fmt
763 integer :: i,
j,
k,
l, r
764 real(wp) :: gamma, lit_gamma, pi_inf, qv
766 write (t_step_dir,
'(A,I0,A,I0)') trim(
case_dir) //
'/p_all'
767 write (t_step_dir,
'(a,i0,a,i0)') trim(
case_dir) //
'/p_all/p',
proc_rank,
'/', t_step
769 file_path = trim(t_step_dir) //
'/.'
774 file_path = trim(t_step_dir) //
'/x_cb.dat'
776 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
777 write (2)
x_cb(-1:
m);
close (2)
780 file_path = trim(t_step_dir) //
'/y_cb.dat'
782 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
783 write (2)
y_cb(-1:
n);
close (2)
786 file_path = trim(t_step_dir) //
'/z_cb.dat'
788 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
789 write (2)
z_cb(-1:
p);
close (2)
794 write (file_path,
'(A,I0,A)') trim(t_step_dir) //
'/q_cons_vf', i,
'.dat'
796 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
804 write (file_path,
'(A,I0,A)') trim(t_step_dir) //
'/q_cons_vf',
sys_size + 1,
'.dat'
806 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
808 write (2) beta%sf(0:
m,0:
n,0:
p);
close (2)
814 write (file_path,
'(A,I0,A)') trim(t_step_dir) //
'/pb',
sys_size + (i - 1)*nnode + r,
'.dat'
816 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
818 write (2)
pb_ts(1)%sf(0:
m,0:
n,0:
p,r, i);
close (2)
824 write (file_path,
'(A,I0,A)') trim(t_step_dir) //
'/mv',
sys_size + (i - 1)*nnode + r,
'.dat'
826 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
828 write (2)
mv_ts(1)%sf(0:
m,0:
n,0:
p,r, i);
close (2)
849 write (t_step_dir,
'(A,I0,A,I0)') trim(
case_dir) //
'/D'
850 file_path = trim(t_step_dir) //
'/.'
852 inquire (file=trim(file_path), exist=file_exist)
860# 404 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
861#if defined(MFC_OpenACC)
862# 404 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
864# 404 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
865#elif defined(MFC_OpenMP)
866# 404 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
868# 404 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
873 q_prim_vf(
bubxb)%sf = 1._wp
877 if (
n == 0 .and.
p == 0)
then
880 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/prim.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
882 open (2, file=trim(file_path))
888 write (2, fmt)
x_cb(
j), q_prim_vf(i)%sf(
j, 0, 0)
896 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/cons.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
898 open (2, file=trim(file_path))
908 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/pres.', i,
'.', r,
'.',
proc_rank, &
909 &
'.', t_step,
'.dat'
911 open (2, file=trim(file_path))
920 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/mv.', i,
'.', r,
'.',
proc_rank, &
921 &
'.', t_step,
'.dat'
923 open (2, file=trim(file_path))
939 if ((
n > 0) .and. (
p == 0))
then
941 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/cons.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
942 open (2, file=trim(file_path))
952 if (
present(beta))
then
953 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/beta.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
954 open (2, file=trim(file_path))
967 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/pres.', i,
'.', r,
'.',
proc_rank, &
968 &
'.', t_step,
'.dat'
970 open (2, file=trim(file_path))
981 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/mv.', i,
'.', r,
'.',
proc_rank, &
982 &
'.', t_step,
'.dat'
984 open (2, file=trim(file_path))
997 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/prim.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
999 open (2, file=trim(file_path))
1007 write (2, fmt)
x_cb(
j),
y_cb(
k), q_prim_vf(i)%sf(
j,
k, 0)
1025 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/cons.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1026 open (2, file=trim(file_path))
1039 if (
present(beta))
then
1040 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/beta.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1041 open (2, file=trim(file_path))
1057 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/pres.', i,
'.', r,
'.',
proc_rank, &
1058 &
'.', t_step,
'.dat'
1060 open (2, file=trim(file_path))
1073 write (file_path,
'(A,I0,A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/mv.', i,
'.', r,
'.',
proc_rank, &
1074 &
'.', t_step,
'.dat'
1076 open (2, file=trim(file_path))
1091 write (file_path,
'(A,I0,A,I2.2,A,I6.6,A)') trim(t_step_dir) //
'/prim.', i,
'.',
proc_rank,
'.', t_step,
'.dat'
1093 open (2, file=trim(file_path))
1120 integer,
intent(in) :: t_step
1122 type(
integer_field),
dimension(1:num_dims,-1:1),
intent(in) :: bc_type
1125 integer :: ifile, ierr, data_size
1126 integer,
dimension(MPI_STATUS_SIZE) :: status
1127 integer(kind=MPI_OFFSET_kind) :: disp
1128 integer(kind=MPI_OFFSET_kind) :: m_mok, n_mok, p_mok
1129 integer(kind=MPI_OFFSET_kind) :: wp_mok, var_mok, str_mok
1130 integer(kind=MPI_OFFSET_kind) :: nvars_mok
1131 integer(kind=MPI_OFFSET_kind) :: mok
1132 character(LEN=path_len + 2*name_len) :: file_loc
1133 logical :: file_exist, dir_check
1134 character(len=10) :: t_step_string
1138 integer :: m_ds, n_ds, p_ds
1139 integer :: m_glb_ds, n_glb_ds, p_glb_ds
1140 integer :: m_glb_save, n_glb_save, p_glb_save
1146 if (
present(beta))
then
1166 file_loc = trim(
case_dir) //
'/restart_data/lustre_' // trim(t_step_string)
1168 if (dir_check .neqv. .true.)
then
1173 call s_mpi_barrier()
1178 write (file_loc,
'(I0,A,i7.7,A)') t_step,
'_',
proc_rank,
'.dat'
1179 file_loc = trim(
case_dir) //
'/restart_data/lustre_' // trim(t_step_string) // trim(
mpiiofs) // trim(file_loc)
1180 inquire (file=trim(file_loc), exist=file_exist)
1181 if (file_exist .and.
proc_rank == 0)
then
1184 call mpi_file_open(mpi_comm_self, file_loc, ior(mpi_mode_wronly, mpi_mode_create),
mpi_info_int, ifile, ierr)
1187 data_size = (m_ds + 3)*(n_ds + 3)*(p_ds + 3)
1188 m_glb_save = m_glb_ds + 1
1189 n_glb_save = n_glb_ds + 1
1190 p_glb_save = p_glb_ds + 1
1192 data_size = (
m + 1)*(
n + 1)*(
p + 1)
1193 m_glb_save =
m_glb + 1
1194 n_glb_save =
n_glb + 1
1195 p_glb_save =
p_glb + 1
1198 m_mok = int(m_glb_save + 1, mpi_offset_kind)
1199 n_mok = int(n_glb_save + 1, mpi_offset_kind)
1200 p_mok = int(p_glb_save + 1, mpi_offset_kind)
1201 wp_mok = int(storage_size(0._stp)/8, mpi_offset_kind)
1202 mok = int(1._wp, mpi_offset_kind)
1203 str_mok = int(name_len, mpi_offset_kind)
1204 nvars_mok = int(
sys_size, mpi_offset_kind)
1208 var_mok = int(i, mpi_offset_kind)
1210 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1214 var_mok = int(i, mpi_offset_kind)
1216 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1222 var_mok = int(i, mpi_offset_kind)
1224 call mpi_file_write_all(ifile,
q_cons_temp_ds(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1228 var_mok = int(i, mpi_offset_kind)
1230 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1235 call mpi_file_close(ifile, ierr)
1239 else if (
present(beta))
then
1240 call s_initialize_mpi_data(
q_cons_vf, beta=beta)
1245 write (file_loc,
'(I0,A)') t_step,
'.dat'
1246 file_loc = trim(
case_dir) //
'/restart_data' // trim(
mpiiofs) // trim(file_loc)
1247 inquire (file=trim(file_loc), exist=file_exist)
1248 if (file_exist .and.
proc_rank == 0)
then
1251 call mpi_file_open(mpi_comm_world, file_loc, ior(mpi_mode_wronly, mpi_mode_create),
mpi_info_int, ifile, ierr)
1253 data_size = (
m + 1)*(
n + 1)*(
p + 1)
1255 m_mok = int(
m_glb + 1, mpi_offset_kind)
1256 n_mok = int(
n_glb + 1, mpi_offset_kind)
1257 p_mok = int(
p_glb + 1, mpi_offset_kind)
1258 wp_mok = int(storage_size(0._stp)/8, mpi_offset_kind)
1259 mok = int(1._wp, mpi_offset_kind)
1260 str_mok = int(name_len, mpi_offset_kind)
1261 nvars_mok = int(alt_sys, mpi_offset_kind)
1265 var_mok = int(i, mpi_offset_kind)
1267 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1270 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1274 var_mok = int(i, mpi_offset_kind)
1276 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1279 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1284 var_mok = int(i, mpi_offset_kind)
1286 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1289 call mpi_file_write_all(ifile,
mpi_io_data%var(i)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1293 if (
present(beta))
then
1294 var_mok = int(
sys_size + 1, mpi_offset_kind)
1296 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1)
1299 call mpi_file_write_all(ifile,
mpi_io_data%var(
sys_size + 1)%sf, data_size*mpi_io_type, mpi_io_p, status, ierr)
1302 call mpi_file_close(ifile, ierr)
1315 integer,
intent(in) :: time_step
1316 character(LEN=path_len + 2*name_len) :: file_path
1317 character(LEN=path_len + 2*name_len) :: t_step_dir
1319 write (t_step_dir,
'(A,I0,A,I0)') trim(
case_dir) //
'/p_all'
1320 write (t_step_dir,
'(a,i0,a,i0)') trim(
case_dir) //
'/p_all/p',
proc_rank,
'/', time_step
1321 write (file_path,
'(A,I0,A)') trim(t_step_dir) //
'/ib_data.dat'
1323 open (2, file=trim(file_path), form=
'unformatted', status=
'new')
1326# 860 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1327#if defined(MFC_OpenACC)
1328# 860 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1330# 860 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1331#elif defined(MFC_OpenMP)
1332# 860 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1334# 860 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1343 integer,
intent(in) :: time_step
1346 character(LEN=path_len + 2*name_len) :: file_loc
1347 integer(kind=MPI_OFFSET_kind) :: disp
1348 integer(kind=MPI_OFFSET_kind) :: m_MOK, n_MOK, p_MOK
1349 integer(kind=MPI_OFFSET_kind) :: WP_MOK, var_MOK, MOK
1350 integer :: ifile, ierr, data_size
1351 integer,
dimension(MPI_STATUS_SIZE) :: status
1354# 878 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1355#if defined(MFC_OpenACC)
1356# 878 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1358# 878 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1359#elif defined(MFC_OpenMP)
1360# 878 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1362# 878 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1365 data_size = (
m + 1)*(
n + 1)*(
p + 1)
1366 m_mok = int(
m_glb + 1, mpi_offset_kind)
1367 n_mok = int(
n_glb + 1, mpi_offset_kind)
1368 p_mok = int(
p_glb + 1, mpi_offset_kind)
1369 wp_mok = int(storage_size(0._stp)/8, mpi_offset_kind)
1370 mok = int(1._wp, mpi_offset_kind)
1372 write (file_loc,
'(A)')
'ib.dat'
1373 file_loc = trim(
case_dir) //
'/restart_data' // trim(
mpiiofs) // trim(file_loc)
1374 call mpi_file_open(mpi_comm_world, file_loc, ior(mpi_mode_wronly, mpi_mode_create),
mpi_info_int, ifile, ierr)
1376 var_mok = int(
sys_size + 1, mpi_offset_kind)
1377 disp = m_mok*max(mok, n_mok)*max(mok, p_mok)*wp_mok*(var_mok - 1 + int(time_step/
t_step_save))
1378 if (time_step == 0) disp = 0
1381 call mpi_file_write_all(ifile,
mpi_io_ib_data%var%sf, data_size, mpi_integer, status, ierr)
1382 call mpi_file_close(ifile, ierr)
1390 integer,
intent(in) :: time_step
1415 integer,
intent(in) :: t_step
1416 real(wp),
dimension(num_fluids, 5),
intent(in) :: c_mass_in
1418 real(wp) :: nondim_time
1423 nondim_time = real(t_step, wp)*
dt
1429 write (i + 120,
'(6X,4F24.12)') nondim_time, c_mass_in(i, 1), c_mass_in(i, 2), c_mass_in(i, 5)
1431 else if (
p == 0)
then
1433 write (i + 120,
'(6X,5F24.12)') nondim_time, c_mass_in(i, 1), c_mass_in(i, 2), c_mass_in(i, 3), c_mass_in(i, 5)
1437 write (i + 120,
'(6X,6F24.12)') nondim_time, c_mass_in(i, 1), c_mass_in(i, 2), c_mass_in(i, 3), c_mass_in(i, &
1438 & 4), c_mass_in(i, 5)
1448 integer,
intent(in) :: t_step
1450 real(wp),
dimension(0:m,0:n,0:p),
intent(in) :: accel_mag
1451 real(wp),
dimension(-1:m) :: distx
1452 real(wp),
dimension(-1:n) :: disty
1453 real(wp),
dimension(-1:p) :: distz
1457 real(wp) :: lit_gamma, nbub
1459 real(wp),
dimension(num_vels) :: vel
1465 real(wp),
dimension(num_fluids) :: alpha
1470 real(wp) :: m00, m10, m01, m20, m11, m02
1471 real(wp) :: varr, varv
1472 real(wp),
dimension(Nb) :: nr, r, nrdot, rdot
1475 real(wp) :: int_pres
1476 real(wp) :: max_pres
1477 real(wp),
dimension(2) :: re
1478 real(wp),
dimension(6) :: tau_e
1480 real(wp) :: dyn_p, t
1481 real(wp) :: damage_state
1482 integer :: i,
j,
k,
l, s, d
1483 real(wp) :: nondim_time
1486 real(wp) :: rad, thickness
1488 real(wp) :: rhoyks(1:num_species)
1498 nondim_time = real(t_step, wp)*
dt
1513 nr = 0._wp; r = 0._wp
1514 nrdot = 0._wp; rdot = 0._wp
1522 varr = 0._wp; varv = 0._wp
1527 damage_state = 0._wp
1533 if (distx(s) < 0._wp) distx(s) = 1000._wp
1535 j = minloc(distx, 1)
1541 do d = 1, num_species
1548 call s_convert_to_mixture_variables(
q_cons_vf,
j - 2,
k,
l, rho, gamma, pi_inf, qv, re, g_local, &
1557 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1562 g_local = g_local*max((1._wp - damage_state), 0._wp)
1570 & pi_inf, gamma, rho, qv, rhoyks, pres, t)
1594 nr3 = nr3 +
weight(s)*(nr(s)**3._wp)
1597 nbub = sqrt((4._wp*pi/3._wp)*nr3/alf)
1600 print *,
'In probe, nbub: ', nbub
1616 varr = m20 - m10**2._wp
1617 varv = m02 - m01**2._wp
1620 rdot(:) = nrdot(:)/nbub
1623 ptot = pres - ptilde
1630 accel = accel_mag(
j - 2,
k,
l)
1632 else if (
p == 0)
then
1634 do d = 1, num_species
1643 if (distx(s) < 0._wp) distx(s) = 1000._wp
1647 if (disty(s) < 0._wp) disty(s) = 1000._wp
1649 j = minloc(distx, 1)
1650 k = minloc(disty, 1)
1656 call s_convert_to_mixture_variables(
q_cons_vf,
j - 2,
k - 2,
l, rho, gamma, pi_inf, qv, re, g_local, &
1662 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1667 g_local = g_local*max((1._wp - damage_state), 0._wp)
1671 & dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t, &
1676 & dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t)
1699 nr3 = nr3 +
weight(s)*(nr(s)**3._wp)
1702 nbub = sqrt((4._wp*pi/3._wp)*nr3/alf)
1706 rdot(:) = nrdot(:)/nbub
1710 & 0._wp, 0._wp, c, qv)
1719 if (distx(s) < 0._wp) distx(s) = 1000._wp
1723 if (disty(s) < 0._wp) disty(s) = 1000._wp
1727 if (distz(s) < 0._wp) distz(s) = 1000._wp
1729 j = minloc(distx, 1)
1730 k = minloc(disty, 1)
1731 l = minloc(distz, 1)
1743 dyn_p = 0.5_wp*rho*dot_product(vel, vel)
1746 do d = 1, num_species
1754 g_local = g_local*max((1._wp - damage_state), 0._wp)
1758 &
l - 2), dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t, &
1763 &
k - 2,
l - 2), dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t)
1768 & 0._wp, 0._wp, c, qv)
1770 accel = accel_mag(
j - 2,
k - 2,
l - 2)
1776# 1292 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1778 call s_mpi_allreduce_sum(tmp, rho)
1779# 1292 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1781 call s_mpi_allreduce_sum(tmp, pres)
1782# 1292 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1784 call s_mpi_allreduce_sum(tmp, gamma)
1785# 1292 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1787 call s_mpi_allreduce_sum(tmp, pi_inf)
1788# 1292 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1790 call s_mpi_allreduce_sum(tmp, qv)
1791# 1292 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1793 call s_mpi_allreduce_sum(tmp, c)
1794# 1292 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1796 call s_mpi_allreduce_sum(tmp, accel)
1797# 1295 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1801 call s_mpi_allreduce_sum(tmp, vel(s))
1805# 1303 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1807 call s_mpi_allreduce_sum(tmp, alf)
1808# 1303 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1810 call s_mpi_allreduce_sum(tmp, alfgr)
1811# 1303 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1813 call s_mpi_allreduce_sum(tmp, nbub)
1814# 1303 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1816 call s_mpi_allreduce_sum(tmp, nr(1))
1817# 1303 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1819 call s_mpi_allreduce_sum(tmp, nrdot(1))
1820# 1303 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1822 call s_mpi_allreduce_sum(tmp, m00)
1823# 1303 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1825 call s_mpi_allreduce_sum(tmp, r(1))
1826# 1303 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1828 call s_mpi_allreduce_sum(tmp, rdot(1))
1829# 1303 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1831 call s_mpi_allreduce_sum(tmp, ptilde)
1832# 1303 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1834 call s_mpi_allreduce_sum(tmp, ptot)
1835# 1306 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1838# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1840 call s_mpi_allreduce_sum(tmp, varr)
1841# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1843 call s_mpi_allreduce_sum(tmp, varv)
1844# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1846 call s_mpi_allreduce_sum(tmp, m10)
1847# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1849 call s_mpi_allreduce_sum(tmp, m01)
1850# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1852 call s_mpi_allreduce_sum(tmp, m20)
1853# 1309 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1855 call s_mpi_allreduce_sum(tmp, m02)
1856# 1312 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1863 call s_mpi_allreduce_sum(tmp, tau_e(s))
1869 call s_mpi_allreduce_sum(tmp, damage_state)
1876 write (i + 30,
'(6x,f12.6,14f28.16)') nondim_time, rho, vel(1), pres, alf, r(1), rdot(1), nr(1), &
1877 & nrdot(1), varr, varv, m10, m01, m20, m02
1879 write (i + 30,
'(6x,f12.6,8f24.8)') nondim_time, rho, vel(1), pres, alf, r(1), rdot(1), nr(1), nrdot(1)
1884 &
'(6x,f12.6,f24.8,f24.8,f24.8,f24.8,f24.8,' //
'f24.8,f24.8,f24.8,f24.8,f24.8, f24.8)') &
1885 & nondim_time, rho, vel(1), pres, alf, alfgr, nr(1), nrdot(1), r(1), rdot(1), ptilde, ptot
1888 &
'(6x,f12.6,f24.8,f24.8,f24.8,f24.8,' //
'f24.8,f24.8,f24.8,f24.8,f24.8,f24.8,f24.8,f24.8,f24.8)') &
1890 & 0, 0),
q_cons_vf(4)%sf(
j - 2, 0, 0),
q_cons_vf(5)%sf(
j - 2, 0, 0),
q_cons_vf(6)%sf(
j - 2, 0, 0), &
1892 &
q_cons_vf(10)%sf(
j - 2, 0, 0), nbub, r(1), rdot(1)
1894 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8)') nondim_time, rho, vel(1), pres
1896 else if (
p == 0)
then
1898# 1354 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1899 write (i + 30,
'(6X,10F24.8)') nondim_time, rho, vel(1), vel(2), pres, alf, nr(1), nrdot(1), r(1), &
1901# 1357 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1903# 1359 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1904 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8,F24.8,' //
'F24.8,F24.8,F24.8)') nondim_time, rho, &
1905 & vel(1), vel(2), pres, tau_e(1), tau_e(2), tau_e(3)
1906# 1362 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1908 write (i + 30,
'(6X,F12.6,F24.8,F24.8,F24.8)') nondim_time, rho, vel(1), pres
1909 print *,
'time =', nondim_time,
'rho =', rho,
'pres =', pres
1912# 1368 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1914 &
'(6X,F12.6,F24.8,F24.8,F24.8,F24.8,' //
'F24.8,F24.8,F24.8,F24.8,F24.8,' //
'F24.8)') &
1915 & nondim_time, rho, vel(1), vel(2), vel(3), pres, gamma, pi_inf, qv, c, accel
1916# 1372 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
1948 int_pres = int_pres + (pres - 1._wp)**2._wp
1951 int_pres = sqrt(int_pres/(1._wp*npts))
1955 call s_mpi_allreduce_sum(tmp, int_pres)
1960 write (i + 70,
'(6x,f12.6,f24.8)') nondim_time, int_pres
1964 else if (
p == 0)
then
1966 call s_mpi_abort(
'Incorrect number of integrals')
1982 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) < (rad - 0.5_wp*thickness)) trigger = .true.
1983 else if (i == 2)
then
1985 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) > (rad - 0.5_wp*thickness) .and. sqrt(
x_cb(
j)**2._wp &
1986 & +
y_cb(
k)**2._wp) < (rad + 0.5_wp*thickness)) trigger = .true.
1987 else if (i == 3)
then
1989 if (sqrt(
x_cb(
j)**2._wp +
y_cb(
k)**2._wp) > (rad + 0.5_wp*thickness)) trigger = .true.
2011 int_pres = int_pres + abs(pres - 1._wp)
2012 max_pres = max(max_pres, abs(pres - 1._wp))
2018 int_pres = int_pres/(1._wp*npts)
2025 call s_mpi_allreduce_sum(tmp, int_pres)
2028 call s_mpi_allreduce_max(tmp, max_pres)
2033 write (i + 70,
'(6x,f12.6,f24.8,f24.8)') nondim_time, int_pres, max_pres
2045 real(wp) :: run_time
2047 write (3,
'(A)')
' '
2050 write (3,
'(A,F9.6)')
'ICFL Max: ',
icfl_max
2054 call cpu_time(run_time)
2057 write (3,
'(A,I0,A)')
'Run-time: ', int(anint(run_time)),
's'
2058 write (3,
'(A)')
' '
2095 integer :: i, m_ds, n_ds, p_ds
2099# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2101# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2102 use iso_fortran_env,
only: output_unit
2103# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2105# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2106 print *,
'm_data_output.fpp:1553: ',
'@:ALLOCATE(icfl_sf(0:m, 0:n, 0:p))'
2107# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2109# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2110 call flush (output_unit)
2111# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2113# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2115# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2117# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2119# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2121# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2122#if defined(MFC_OpenACC)
2123# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2125# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2126#elif defined(MFC_OpenMP)
2127# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2129# 1553 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2135# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2137# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2138 use iso_fortran_env,
only: output_unit
2139# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2141# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2142 print *,
'm_data_output.fpp:1557: ',
'@:ALLOCATE(vcfl_sf(0:m, 0:n, 0:p))'
2143# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2145# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2146 call flush (output_unit)
2147# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2149# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2151# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2152 allocate (
vcfl_sf(0:m, 0:n, 0:p))
2153# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2155# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2157# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2158#if defined(MFC_OpenACC)
2159# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2161# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2162#elif defined(MFC_OpenMP)
2163# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2165# 1557 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2168# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2170# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2171 use iso_fortran_env,
only: output_unit
2172# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2174# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2175 print *,
'm_data_output.fpp:1558: ',
'@:ALLOCATE(Rc_sf (0:m, 0:n, 0:p))'
2176# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2178# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2179 call flush (output_unit)
2180# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2182# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2184# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2185 allocate (
rc_sf(0:m, 0:n, 0:p))
2186# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2188# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2190# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2191#if defined(MFC_OpenACC)
2192# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2194# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2195#elif defined(MFC_OpenMP)
2196# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2198# 1558 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2208# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2210# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2211 use iso_fortran_env,
only: output_unit
2212# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2214# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2215 print *,
'm_data_output.fpp:1566: ',
'@:ALLOCATE(c_mass(num_fluids,5))'
2216# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2218# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2219 call flush (output_unit)
2220# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2222# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2224# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2225 allocate (
c_mass(num_fluids,5))
2226# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2228# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2230# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2231#if defined(MFC_OpenACC)
2232# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2234# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2235#elif defined(MFC_OpenMP)
2236# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2238# 1566 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2242 if (down_sample)
then
2243 m_ds = int((m + 1)/3) - 1
2244 n_ds = int((n + 1)/3) - 1
2245 p_ds = int((p + 1)/3) - 1
2249 allocate (
q_cons_temp_ds(i)%sf(-1:m_ds + 1,-1:n_ds + 1,-1:p_ds + 1))
2262# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2264# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2265 use iso_fortran_env,
only: output_unit
2266# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2268# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2269 print *,
'm_data_output.fpp:1588: ',
'@:DEALLOCATE(c_mass)'
2270# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2272# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2273 call flush (output_unit)
2274# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2276# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2278# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2280# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2281#if defined(MFC_OpenACC)
2282# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2284# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2285#elif defined(MFC_OpenMP)
2286# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2288# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2290# 1588 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2294 if (run_time_info)
then
2296# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2298# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2299 use iso_fortran_env,
only: output_unit
2300# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2302# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2303 print *,
'm_data_output.fpp:1592: ',
'@:DEALLOCATE(icfl_sf)'
2304# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2306# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2307 call flush (output_unit)
2308# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2310# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2312# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2314# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2315#if defined(MFC_OpenACC)
2316# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2318# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2319#elif defined(MFC_OpenMP)
2320# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2322# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2324# 1592 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2328# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2330# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2331 use iso_fortran_env,
only: output_unit
2332# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2334# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2335 print *,
'm_data_output.fpp:1594: ',
'@:DEALLOCATE(vcfl_sf, Rc_sf)'
2336# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2338# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2339 call flush (output_unit)
2340# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2342# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2344# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2346# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2347#if defined(MFC_OpenACC)
2348# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2350# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2351#elif defined(MFC_OpenMP)
2352# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2354# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2356# 1594 "/home/runner/work/MFC/MFC/src/simulation/m_data_output.fpp"
2361 if (down_sample)
then
type(scalar_field), dimension(sys_size), intent(inout) q_cons_vf
Noncharacteristic and processor boundary condition application for ghost cells and buffer regions.
Platform-specific file and directory operations: create, delete, inquire, getcwd, and basename.
impure subroutine s_delete_directory(dir_name)
Recursively delete a directory using a platform-specific system command.
impure subroutine my_inquire(fileloc, dircheck)
Inquires on the existence of a directory.
impure subroutine s_create_directory(dir_name)
Create a directory and all its parents if it does not exist.
Writes solution data, run-time stability diagnostics (ICFL, VCFL, CCFL, Rc), and probe/center-of-mass...
real(wp), dimension(:,:), allocatable, public c_mass
real(wp), dimension(:,:,:), allocatable ccfl_sf
CCFL stability criterion.
impure subroutine, public s_open_probe_files
Open flow probe data files for writing.
impure subroutine, public s_write_ib_state_file()
Write IB state records to D/ib_state.dat (rank 0 only).
real(wp) rc_min
Rc criterion maximum.
real(wp) vcfl_max
VCFL criterion maximum.
real(wp), dimension(:,:,:), allocatable vcfl_sf
VCFL stability criterion.
impure subroutine, public s_write_probe_files(t_step, q_cons_vf, accel_mag)
Write flow probe data at the current time step.
real(wp) rc_min_glb
Rc stability extrema on local and global grids.
impure subroutine, public s_write_com_files(t_step, c_mass_in)
Write center-of-mass data at the current time step.
impure subroutine, public s_write_parallel_data_files(q_cons_vf, t_step, bc_type, beta)
Write grid and conservative variable data files in parallel via MPI I/O.
impure subroutine, public s_initialize_data_output_module
Initialize the data output module.
impure subroutine, public s_finalize_data_output_module
Module deallocation and/or disassociation procedures.
subroutine s_write_serial_ib_data(time_step)
Write immersed boundary marker data to a serial (per-processor) unformatted file.
impure subroutine, public s_close_run_time_information_file
Write footer with stability criteria extrema and run-time to the information file,...
real(wp) vcfl_max_glb
VCFL stability extrema on local and global grids.
integer ib_state_unit
I/O unit for IB state binary file.
impure subroutine, public s_write_data_files(q_cons_vf, q_t_sf, q_prim_vf, t_step, bc_type, beta)
Write data files. Dispatch subroutine that replaces procedure pointer.
impure subroutine, public s_write_serial_data_files(q_cons_vf, q_t_sf, q_prim_vf, t_step, bc_type, beta)
Write grid and conservative variable data files in serial format.
real(wp) ccfl_max_glb
CCFL stability extrema on local and global grids.
real(wp), dimension(:,:,:), allocatable rc_sf
Rc stability criterion.
impure subroutine, public s_open_ib_state_file
Open the immersed boundary state file for binary output.
impure subroutine, public s_close_probe_files
Closes probe files.
impure subroutine, public s_close_com_files()
Closes communication files.
real(wp) icfl_max_glb
ICFL stability extrema on local and global grids.
impure subroutine, public s_write_run_time_information(q_prim_vf, t_step)
Write stability criteria extrema to the run-time information file at the given time step.
impure subroutine, public s_open_run_time_information_file
Open the run-time information file and write the stability criteria table header.
real(wp) icfl_max
ICFL criterion maximum.
type(scalar_field), dimension(:), allocatable q_cons_temp_ds
subroutine s_write_parallel_ib_data(time_step)
Write immersed boundary marker data in parallel using MPI I/O.
impure subroutine, public s_close_ib_state_file
Close the immersed boundary state file.
real(wp), dimension(:,:,:), allocatable icfl_sf
ICFL stability criterion.
impure subroutine, public s_open_com_files()
Open center-of-mass data files for writing.
subroutine, public s_write_ib_data_file(time_step)
Dispatch immersed boundary data output to the serial or parallel writer.
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)
Introduce a rank-dependent busy-wait delay to stagger parallel file access and reduce I/O contention.
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Global parameters for the computational domain, fluid properties, and simulation algorithm configurat...
real(wp) mytime
Current simulation time.
logical bubbles_euler
Bubbles euler on/off.
logical cont_damage
Continuum damage modeling.
logical igr
Use information geometric regularization.
type(int_bounds_info), dimension(1:3) idwint
real(wp), dimension(:), allocatable, target z_cb
logical, parameter chemistry
Chemistry modeling.
type(ib_patch_parameters), dimension(num_patches_max) patch_ib
Immersed boundary patch parameters.
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 for case-optimization + GPU-kernel bug.
character(len=name_len) mpiiofs
type(vec3_dt), dimension(num_probes_max) probe
integer sys_size
Number of unknowns in system of eqns.
real(wp), dimension(:), allocatable weight
Simpson quadrature weights.
integer t_step_old
Existing IC/grid folder.
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
Stiffened gas EOS parameters and Reynolds numbers per fluid.
integer num_dims
Number of spatial dimensions.
type(pres_field), dimension(:), allocatable pb_ts
type(pres_field), dimension(:), allocatable mv_ts
logical bubbles_lagrange
Lagrangian subgrid bubble model switch.
integer num_vels
Number of velocity components (different from num_dims for mhd).
logical polytropic
Polytropic switch.
logical qbmm
Quadrature moment method.
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
real(wp), dimension(:,:,:), allocatable ptil
Pressure modification.
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)
Check if two floating point numbers of wp are within tolerance.
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
subroutine, public s_downsample_data(q_cons_vf, q_cons_temp, m_ds, n_ds, p_ds, m_glb_ds, n_glb_ds, p_glb_ds)
Downsample conservative variable fields by a factor of 3 in each direction using volume averaging.
elemental subroutine, public s_int_to_str(i, res)
Convert an integer to its trimmed string representation.
Ghost-node immersed boundary method: locates ghost/image points, computes interpolation coefficients,...
type(integer_field), public ib_markers
MPI halo exchange, domain decomposition, and buffer packing/unpacking for the simulation solver.
Simulation helper routines for enthalpy computation, CFL calculation, and stability checks.
subroutine, public s_compute_enthalpy(q_prim_vf, pres, rho, gamma, pi_inf, re, h, alpha, vel, vel_sum, qv, j, k, l)
Computes enthalpy.
subroutine, public s_compute_stability_from_dt(vel, c, rho, re_l, j, k, l, icfl_sf, vcfl_sf, rc_sf)
Computes stability criterion for a specified dt.
Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation.
subroutine s_compute_speed_of_sound(pres, rho, gamma, pi_inf, h, adv, vel_sum, c_c, c, qv)
Compute the speed of sound from thermodynamic state variables, supporting multiple equation-of-state ...
subroutine, public s_compute_pressure(energy, alf, dyn_p, pi_inf, gamma, rho, qv, rhoyks, pres, t, stress, mom, g, pres_mag)
Compute the pressure from the appropriate equation of state.
subroutine, public s_convert_conservative_to_primitive_variables(qk_cons_vf, q_t_sf, qk_prim_vf, ibounds)
Convert conserved variables (rho*alpha, rho*u, E, alpha) to primitives (rho, u, p,...
subroutine, public s_convert_to_mixture_variables(q_vf, i, j, k, rho, gamma, pi_inf, qv, re_k, g_k, g)
Dispatch to the s_convert_mixture_to_mixture_variables and s_convert_species_to_mixture_variables sub...
Derived type annexing an integer scalar field (SF).
Derived type annexing a scalar field (SF).