1# 1 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
2# 1 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 1
3# 1 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 1
4# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
5# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
6# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
7# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
8# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
9# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
11# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
12# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
13# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
15# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
17# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
19# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
21# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
23# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
25# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
27# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
29# 2 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
30# 1 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 1
31# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
32# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
33# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
34# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
35# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
36# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
38# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
39# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
40# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
42# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
44# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
46# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
48# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
50# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
52# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
54# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
56# 2 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp" 2
58# 4 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
59# 5 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
60# 6 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
61# 7 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
62# 8 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
64# 20 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
66# 43 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
68# 48 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
70# 53 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
72# 58 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
74# 63 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
76# 68 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
78# 76 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
80# 81 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
82# 86 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
84# 91 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
86# 96 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
88# 101 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
90# 106 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
92# 111 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
94# 116 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
96# 121 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
98# 151 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
100# 192 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
102# 207 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
104# 232 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
106# 243 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
108# 245 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
109# 255 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
111# 283 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
113# 293 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
115# 303 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
117# 312 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
119# 329 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
121# 339 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
123# 346 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
125# 352 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
127# 358 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
129# 364 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
131# 370 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
133# 376 "/home/runner/work/MFC/MFC/src/common/include/omp_macros.fpp"
135# 3 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
136# 1 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 1
137# 1 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp" 1
138# 2 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
139# 3 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
140# 4 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
141# 5 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
142# 6 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
144# 8 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
145# 9 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
146# 10 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
148# 17 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
150# 46 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
152# 58 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
154# 68 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
156# 98 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
158# 110 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
160# 120 "/home/runner/work/MFC/MFC/src/common/include/shared_parallel_macros.fpp"
162# 2 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp" 2
164# 7 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
166# 17 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
168# 22 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
170# 27 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
172# 32 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
174# 37 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
176# 42 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
178# 47 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
180# 52 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
182# 57 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
184# 62 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
186# 73 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
188# 78 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
190# 83 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
192# 88 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
194# 103 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
196# 131 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
198# 160 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
200# 175 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
202# 192 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
204# 213 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
206# 241 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
208# 256 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
210# 266 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
212# 275 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
214# 291 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
216# 301 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
218# 308 "/home/runner/work/MFC/MFC/src/common/include/acc_macros.fpp"
220# 4 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp" 2
222# 21 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
224# 37 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
226# 50 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
228# 76 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
230# 91 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
232# 102 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
234# 115 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
236# 143 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
238# 154 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
240# 165 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
242# 176 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
244# 187 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
246# 198 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
248# 208 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
250# 214 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
252# 220 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
254# 226 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
256# 232 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
258# 234 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
259# 235 "/home/runner/work/MFC/MFC/src/common/include/parallel_macros.fpp"
261# 2 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp" 2
263# 14 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
269# 63 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
271# 81 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
273# 88 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
275# 111 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
277# 127 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
279# 153 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
281# 159 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
283# 167 "/home/runner/work/MFC/MFC/src/common/include/macros.fpp"
285# 2 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp" 2
297 use,
intrinsic :: iso_c_binding
303 use m_mpi_proxy !< message passing interface (mpi) module proxy
312 use m_data_input !< procedures reading raw simulation data to fill
315 use m_data_output !< procedures that write the grid and chosen flow
328 use m_thermochem,
only: num_species, species_names
335 use mpi !< message passing interface (mpi) module
345 real(wp),
allocatable,
dimension(:, :, :) ::
en_real
346 real(wp),
allocatable,
dimension(:) ::
en
362 character(LEN=name_len) :: file_loc
365 logical :: file_check
372 character(len=1000) :: line
406 file_loc =
'post_process.inp'
407 inquire (file=trim(file_loc), exist=file_check)
412 open (1, file=trim(file_loc), form=
'formatted', &
413 status=
'old', action=
'read')
414 read (1, nml=user_inputs, iostat=iostatus)
416 if (iostatus /= 0)
then
418 read (1, fmt=
'(A)') line
419 print *,
'Invalid line in namelist: '//trim(line)
420 call s_mpi_abort(
'Invalid line in post_process.inp. It is '// &
421 'likely due to a datatype mismatch. Exiting.')
429 m = int((
m + 1)/3) - 1
430 n = int((
n + 1)/3) - 1
431 p = int((
p + 1)/3) - 1
449 call s_mpi_abort(
'File post_process.inp is missing. Exiting.')
460 character(LEN=len_trim(case_dir)) :: file_loc
474 if (dir_check .neqv. .true.)
then
475 call s_mpi_abort(
'Unsupported choice for the value of '// &
476 'case_dir. Exiting.')
487 integer,
intent(inout) :: t_step
490 print
'(" [", I3, "%] Saving ", I8, " of ", I0, " Time Avg = ", ES16.6, " Time/step = ", ES12.6, "")', &
494 print
'(" [", I3, "%] Saving ", I8, " of ", I0, " @ t_step = ", I8, " Time Avg = ", ES16.6, " Time/step = ", ES12.6, "")', &
522 integer,
intent(inout) :: t_step
523 character(LEN=name_len),
intent(inout) :: varname
524 real(wp),
intent(inout) :: pres, c, h
525 real(wp) :: theta1, theta2
526 real(wp),
dimension(-offset_x%beg:m + offset_x%end, &
-offset_y%beg:n + offset_y%end, &
-offset_z%beg:p + offset_z%end) :: liutex_mag
527 real(wp),
dimension(-offset_x%beg:m + offset_x%end, &
-offset_y%beg:n + offset_y%end, &
-offset_z%beg:p + offset_z%end, 3) :: liutex_axis
528 integer :: i,
j,
k,
l, kx, ky, kz, kf, j_glb, k_glb, l_glb
530 character(50) :: filename, dirname
531 logical :: file_exists, dir_exists
532 integer :: x_beg, x_end, y_beg, y_end, z_beg, z_end
592 q_sf(:, :, :) =
q_cons_vf(i)%sf(x_beg:x_end, y_beg:y_end, z_beg:z_end)
594 write (varname,
'(A,I0)')
'alpha_rho', i
596 write (varname,
'(A,I0)')
'rho', i
608 q_sf(:, :, :) =
rho_sf(x_beg:x_end, y_beg:y_end, z_beg:z_end)
609 write (varname,
'(A)')
'rho'
616 q_sf(:, :, :) =
q_prim_vf(1)%sf(x_beg:x_end, y_beg:y_end, z_beg:z_end)
617 write (varname,
'(A)')
'rho'
626 q_sf(:, :, :) =
q_cons_vf(1)%sf(x_beg:x_end, y_beg:y_end, z_beg:z_end)
627 write (varname,
'(A)')
'D'
637 write (varname,
'(A,I0)')
'mom', i
649 write (varname,
'(A,I0)')
'vel', i
659 do i = 1, num_species
662 write (varname,
'(A,A)')
'Y_', trim(species_names(i))
671 q_sf(:, :, :) =
q_t_sf%sf(x_beg:x_end, y_beg:y_end, z_beg:z_end)
672 write (varname,
'(A)')
'T'
685 write (varname,
'(A,I0)')
'flux', i
695 write (varname,
'(A)')
'E'
707 write (varname,
'(A,I0)')
'alpha_rho_e', i
766 if (j_glb >= (
m_glb + 1)/2)
then
767 kx = (j_glb - 1) - (
m_glb + 1)
772 if (k_glb >= (
n_glb + 1)/2)
then
773 ky = (k_glb - 1) - (
n_glb + 1)
778 if (l_glb >= (
p_glb + 1)/2)
then
779 kz = (l_glb - 1) - (
p_glb + 1)
784 kf = nint(sqrt(kx**2._wp + ky**2._wp + kz**2._wp)) + 1
793 call mpi_allreduce(mpi_in_place,
en,
nf, mpi_p, mpi_sum, mpi_comm_world,
ierr)
798 write (filename,
'(a,i0,a)')
'En_FFT_DATA/En_tot', t_step,
'.dat'
799 inquire (file=filename, exist=file_exists)
800 if (file_exists)
then
807 write (filename,
'(a,i0,a)')
'En_FFT_DATA/En_tot', t_step,
'.dat'
808 inquire (file=filename, exist=file_exists)
809 if (file_exists)
then
810 open (1, file=filename, position=
'append', status=
'old')
811 write (1, *)
en(kf), t_step
814 open (1, file=filename, status=
'new')
815 write (1, *)
en(kf), t_step
826 q_sf(:, :, :) =
q_prim_vf(i)%sf(x_beg:x_end, y_beg:y_end, z_beg:z_end)
830 if (i ==
b_idx%beg)
then
831 write (varname,
'(A)')
'By'
833 write (varname,
'(A)')
'Bz'
837 if (i ==
b_idx%beg)
then
838 write (varname,
'(A)')
'Bx'
839 elseif (i ==
b_idx%beg + 1)
then
840 write (varname,
'(A)')
'By'
842 write (varname,
'(A)')
'Bz'
856 write (varname,
'(A,I0)')
'tau', i
867 write (varname,
'(A,I0)')
'xi', i
876 write (varname,
'(A)')
'damage_state'
884 write (varname,
'(A)')
'psi'
893 write (varname,
'(A)')
'pres'
908 write (varname,
'(A,I0)')
'alpha', i
946 q_sf(:, :, :) =
gamma_sf(x_beg:x_end, y_beg:y_end, z_beg:z_end)
947 write (varname,
'(A)')
'gamma'
959 write (varname,
'(A)')
'heat_ratio'
970 q_sf(:, :, :) =
pi_inf_sf(x_beg:x_end, y_beg:y_end, z_beg:z_end)
971 write (varname,
'(A)')
'pi_inf'
983 write (varname,
'(A)')
'pres_inf'
1013 write (varname,
'(A)')
'c'
1026 write (varname,
'(A,I0)')
'omega', i
1035 varname =
'ib_markers'
1043 write (varname,
'(A)')
'qm'
1058 write (varname,
'(A)')
'liutex_mag'
1065 q_sf = liutex_axis(:, :, :, i)
1067 write (varname,
'(A,I0)')
'liutex_axis', i
1080 write (varname,
'(A)')
'schlieren'
1090 write (varname,
'(A,I0)')
'color_function'
1099 q_sf(:, :, :) =
q_cons_vf(i)%sf(x_beg:x_end, y_beg:y_end, z_beg:z_end)
1100 write (varname,
'(A,I0)')
'alpha', i -
e_idx
1111 write (varname,
'(A,I3.3)')
'nR', i
1119 write (varname,
'(A,I3.3)')
'nV', i
1127 write (varname,
'(A,I3.3)')
'nP', i
1135 write (varname,
'(A,I3.3)')
'nM', i
1144 write (varname,
'(A)')
'n'
1157 write (varname,
'(A)')
'voidFraction'
1177 complex(c_double_complex),
allocatable :: sendbuf(:), recvbuf(:)
1178 integer :: dest_rank, src_rank
1179 integer :: i,
j,
k,
l
1209 deallocate (sendbuf)
1210 deallocate (recvbuf)
1218 complex(c_double_complex),
allocatable :: sendbuf(:), recvbuf(:)
1219 integer :: dest_rank, src_rank
1250 deallocate (sendbuf)
1251 deallocate (recvbuf)
1261 integer :: size_n(1), inembed(1), onembed(1)
1303# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1305# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1306 use iso_fortran_env,
only: output_unit
1307# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1309# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1310 print *,
'm_start_up.fpp:1022: ',
'@:ALLOCATE(data_in(Nx*Nyloc*Nzloc))'
1311# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1313# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1314 call flush (output_unit)
1315# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1317# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1319# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1321# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1323# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1325# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1326#if defined(MFC_OpenACC)
1327# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1329# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1330#elif defined(MFC_OpenMP)
1331# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1333# 1022 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1336# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1338# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1339 use iso_fortran_env,
only: output_unit
1340# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1342# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1343 print *,
'm_start_up.fpp:1023: ',
'@:ALLOCATE(data_out(Nx*Nyloc*Nzloc))'
1344# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1346# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1347 call flush (output_unit)
1348# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1350# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1352# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1354# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1356# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1358# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1359#if defined(MFC_OpenACC)
1360# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1362# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1363#elif defined(MFC_OpenMP)
1364# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1366# 1023 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1370# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1372# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1373 use iso_fortran_env,
only: output_unit
1374# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1376# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1377 print *,
'm_start_up.fpp:1025: ',
'@:ALLOCATE(data_cmplx(Nx, Nyloc, Nzloc))'
1378# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1380# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1381 call flush (output_unit)
1382# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1384# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1386# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1388# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1390# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1392# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1393#if defined(MFC_OpenACC)
1394# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1396# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1397#elif defined(MFC_OpenMP)
1398# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1400# 1025 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1403# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1405# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1406 use iso_fortran_env,
only: output_unit
1407# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1409# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1410 print *,
'm_start_up.fpp:1026: ',
'@:ALLOCATE(data_cmplx_y(Nxloc, Ny, Nzloc))'
1411# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1413# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1414 call flush (output_unit)
1415# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1417# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1419# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1421# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1423# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1425# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1426#if defined(MFC_OpenACC)
1427# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1429# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1430#elif defined(MFC_OpenMP)
1431# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1433# 1026 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1436# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1438# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1439 use iso_fortran_env,
only: output_unit
1440# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1442# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1443 print *,
'm_start_up.fpp:1027: ',
'@:ALLOCATE(data_cmplx_z(Nxloc, Nyloc2, Nz))'
1444# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1446# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1447 call flush (output_unit)
1448# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1450# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1452# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1454# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1456# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1458# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1459#if defined(MFC_OpenACC)
1460# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1462# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1463#elif defined(MFC_OpenMP)
1464# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1466# 1027 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1470# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1472# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1473 use iso_fortran_env,
only: output_unit
1474# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1476# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1477 print *,
'm_start_up.fpp:1029: ',
'@:ALLOCATE(En_real(Nxloc, Nyloc2, Nz))'
1478# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1480# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1481 call flush (output_unit)
1482# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1484# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1486# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1488# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1490# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1492# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1493#if defined(MFC_OpenACC)
1494# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1496# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1497#elif defined(MFC_OpenMP)
1498# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1500# 1029 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1503# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1505# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1506 use iso_fortran_env,
only: output_unit
1507# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1509# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1510 print *,
'm_start_up.fpp:1030: ',
'@:ALLOCATE(En(Nf))'
1511# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1513# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1514 call flush (output_unit)
1515# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1517# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1519# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1521# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1523# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1525# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1526#if defined(MFC_OpenACC)
1527# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1529# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1530#elif defined(MFC_OpenMP)
1531# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1533# 1030 "/home/runner/work/MFC/MFC/src/post_process/m_start_up.fpp"
1543 fftw_forward, fftw_measure)
1552 fftw_forward, fftw_measure)
1561 fftw_forward, fftw_measure)
1563 call mpi_cart_create(mpi_comm_world, 3, (/
num_procs_x, &
1565 (/.true., .true., .true./), &
1654 num_dims = 1 + min(1, n) + min(1, p)
1658 call s_mpi_initialize()
1664 if (proc_rank == 0)
then
1665 call s_assign_default_values_to_user_inputs()
1669 print
'(" Post-processing a ", I0, "x", I0, "x", I0, " case on ", I0, " rank(s)")', m, n, p, num_procs
1675 call s_mpi_bcast_user_inputs()
1676 call s_initialize_parallel_io()
1677 call s_mpi_decompose_computational_domain()
1678 call s_check_inputs_fft()
1687 s_read_data_files => null()
1704 if (
allocated(
en))
deallocate (
en)
1717 call s_finalize_data_output_module()
1718 call s_finalize_derived_variables_module()
1719 call s_finalize_data_input_module()
1720 call s_finalize_variables_conversion_module()
1721 if (num_procs > 1)
then
1722 call s_finalize_mpi_proxy_module()
1723 call s_finalize_mpi_common_module()
1725 call s_finalize_global_parameters_module()
1728 call s_mpi_finalize()
Noncharacteristic and processor boundary condition application for ghost cells and buffer regions.
impure subroutine, public s_initialize_boundary_common_module()
Allocates and sets up boundary condition buffer arrays for all coordinate directions.
impure subroutine, public s_populate_variables_buffers(bc_type, q_prim_vf, pb_in, mv_in)
The purpose of this procedure is to populate the buffers of the primitive variables,...
subroutine, public s_populate_grid_variables_buffers
The purpose of this subroutine is to populate the buffers of the grid variables, which are constitute...
Shared input validation checks for grid dimensions and AMD GPU compiler limits.
impure subroutine, public s_check_inputs_common
Checks compatibility of parameters in the input file. Used by all three stages.
Validates post-process input parameters and output format consistency.
impure subroutine, public s_check_inputs
Checks compatibility of parameters in the input file. Used by the post_process stage.
Multi-species chemistry interface for thermodynamic properties, reaction rates, and transport coeffic...
subroutine s_compute_q_t_sf(q_t_sf, q_cons_vf, bounds)
Initializes the temperature field from conservative variables by inverting the energy equation.
Platform-specific file and directory operations: create, delete, inquire, getcwd, and basename.
impure subroutine s_delete_file(filepath)
Deletes a file at the given path 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 post-processed grid and flow-variable data to Silo-HDF5 or binary database files.
impure subroutine, public s_write_grid_to_formatted_database_file(t_step)
Write the computational grid (cell-boundary coordinates) to the formatted database slave and master f...
impure subroutine, public s_write_variable_to_formatted_database_file(varname, t_step)
Write a single flow variable field to the formatted database slave and master files for a given time ...
impure subroutine, public s_open_energy_data_file()
Open the energy data file for appending volume-integrated energy budget quantities.
impure subroutine, public s_open_intf_data_file()
Open the interface data file for appending extracted interface coordinates.
impure subroutine, public s_write_energy_data_file(q_prim_vf, q_cons_vf)
Compute volume-integrated kinetic, potential, and internal energies and write the energy budget to th...
impure subroutine, public s_write_lag_bubbles_to_formatted_database_file(t_step)
Read Lagrangian bubble restart data and write bubble positions and scalar fields to the Silo database...
impure subroutine, public s_write_intf_data_file(q_prim_vf)
Extract the volume-fraction interface contour from primitive fields and write the coordinates to the ...
impure subroutine, public s_initialize_data_output_module()
Allocate storage arrays, configure output directories, and count flow variables for formatted databas...
impure subroutine, public s_close_energy_data_file()
Close the energy data file.
impure subroutine, public s_close_formatted_database_file()
Close the formatted database slave file and, for the root process, the master file.
impure subroutine, public s_open_formatted_database_file(t_step)
Open (or create) the Silo-HDF5 or Binary formatted database slave and master files for a given time s...
impure subroutine, public s_close_intf_data_file()
Close the interface data file.
impure subroutine, public s_write_lag_bubbles_results_to_text(t_step)
Subroutine that writes the post processed results in the folder 'lag_bubbles_data'.
impure subroutine, public s_define_output_region
Compute the cell-index bounds for the user-specified partial output domain in each coordinate directi...
real(wp), dimension(:, :, :), allocatable, public q_sf
Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures.
Computes derived flow quantities (sound speed, vorticity, Schlieren, etc.) from conservative and prim...
real(wp), dimension(:, :), allocatable, public fd_coeff_z
real(wp), dimension(:, :), allocatable, public fd_coeff_y
impure subroutine, public s_derive_liutex(q_prim_vf, liutex_mag, liutex_axis)
This subroutine gets as inputs the primitive variables. From those inputs, it proceeds to calculate t...
subroutine, public s_derive_specific_heat_ratio(q_sf)
This subroutine receives as input the specific heat ratio function, gamma_sf, and derives from it the...
subroutine, public s_derive_liquid_stiffness(q_sf)
This subroutine admits as inputs the specific heat ratio function and the liquid stiffness function,...
impure subroutine, public s_initialize_derived_variables_module
Computation of parameters, allocation procedures, and/or any other tasks needed to properly setup the...
real(wp), dimension(:, :), allocatable, public fd_coeff_x
subroutine, public s_derive_vorticity_component(i, q_prim_vf, q_sf)
This subroutine receives as inputs the indicator of the component of the vorticity that should be out...
impure subroutine, public s_derive_numerical_schlieren_function(q_cons_vf, q_sf)
This subroutine gets as inputs the conservative variables and density. From those inputs,...
subroutine, public s_derive_flux_limiter(i, q_prim_vf, q_sf)
This subroutine derives the flux_limiter at cell boundary i+1/2. This is an approximation because the...
subroutine, public s_derive_qm(q_prim_vf, q_sf)
This subroutine gets as inputs the primitive variables. From those inputs, it proceeds to calculate t...
Finite difference operators for computing divergence of velocity fields.
subroutine s_compute_finite_difference_coefficients(q, s_cc, fd_coeff_s, local_buff_size, fd_number_in, fd_order_in, offset_s)
The purpose of this subroutine is to compute the finite- difference coefficients for the centered sch...
Global parameters for the post-process: domain geometry, equation of state, and output database setti...
logical cont_damage
Continuum damage modeling.
logical hypoelasticity
Turn hypoelasticity on.
integer thermal
1 = adiabatic, 2 = isotherm, 3 = transfer
integer avg_state
Average state evaluation method.
integer recon_type
Which type of reconstruction to use.
logical, parameter chemistry
Chemistry modeling.
integer beta_idx
Index of lagrange bubbles beta.
type(int_bounds_info) offset_y
type(int_bounds_info) mom_idx
Indexes of first & last momentum eqns.
real(wp), dimension(num_fluids_max) schlieren_alpha
Amplitude coefficients of the numerical Schlieren function that are used to adjust the intensity of n...
type(int_bounds_info) bc_z
integer num_fluids
Number of different fluids present in the flow.
logical, dimension(3) flux_wrt
real(wp), dimension(:), allocatable y_cc
type(int_bounds_info) stress_idx
Indices of elastic stresses.
integer proc_rank
Rank of the local processor.
logical mixture_err
Mixture error limiter.
logical output_partial_domain
Specify portion of domain to output for post-processing.
real(wp), dimension(:), allocatable adv
Advection variables.
integer n_idx
Index of number density.
type(int_bounds_info) z_output_idx
Indices of domain to output for post-processing.
type(bounds_info) x_output
integer muscl_order
Order of accuracy for the MUSCL reconstruction.
logical alt_soundspeed
Alternate sound speed.
integer relax_model
Phase change relaxation model.
logical, dimension(3) mom_wrt
type(int_bounds_info) cont_idx
Indexes of first & last continuity eqns.
integer fd_number
The finite-difference number is given by MAX(1, fd_order/2). Essentially, it is a measure of the half...
logical, dimension(num_fluids_max) alpha_wrt
logical, dimension(num_fluids_max) alpha_rho_wrt
type(int_bounds_info) b_idx
Indexes of first and last magnetic field eqns.
logical, dimension(num_fluids_max) alpha_rho_e_wrt
type(int_bounds_info), dimension(1:3) idwbuff
integer model_eqns
Multicomponent flow model.
integer buff_size
Number of cells in buffer region. For the variables which feature a buffer region,...
integer precision
Floating point precision of the database file(s).
logical hyperelasticity
Turn hyperelasticity on.
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....
type(bounds_info) z_output
Portion of domain to output for post-processing.
type(int_bounds_info) bc_y
type(int_bounds_info) x_output_idx
impure subroutine s_initialize_global_parameters_module
Computation of parameters, allocation procedures, and/or any other tasks needed to properly setup the...
real(wp), dimension(:), allocatable x_cc
integer fd_order
The order of the finite-difference (fd) approximations of the first-order derivatives that need to be...
type(int_bounds_info) bc_x
logical relax
phase change
integer t_step_save
Interval between consecutive time-step directory.
type(int_bounds_info) offset_x
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.
logical hyper_cleaning
Hyperbolic cleaning for MHD.
real(wp), dimension(:), allocatable z_cc
real(wp) bx0
Constant magnetic field in the x-direction (1D).
logical, dimension(3) omega_wrt
integer num_procs
Number of processors.
character(len=path_len) case_dir
Case folder location.
type(int_bounds_info) y_output_idx
type(int_bounds_info) adv_idx
Indexes of first & last advection eqns.
integer weno_order
Order of accuracy for the WENO reconstruction.
type(int_bounds_info) offset_z
logical mhd
Magnetohydrodynamics.
logical parallel_io
Format of the data files.
integer e_idx
Index of energy equation.
type(cell_num_bounds) cells_bounds
logical down_sample
down sampling of the database file(s)
logical file_per_process
output format
integer t_step_start
First time-step directory.
real(wp) wall_time_avg
Wall time measurements.
logical elasticity
elasticity modeling, true for hyper or hypo
integer c_idx
Index of color function.
logical mpp_lim
Maximum volume fraction limiter.
integer igr_order
IGR reconstruction order.
integer psi_idx
Index of hyperbolic cleaning state variable for MHD.
logical, dimension(3) vel_wrt
type(subgrid_bubble_physical_parameters) bub_pp
logical, dimension(1:num_species) chem_wrt_y
logical relativity
Relativity for RMHD.
integer num_ibs
Number of immersed boundaries.
integer t_step_stop
Last time-step directory.
type(bounds_info) y_output
Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions...
impure subroutine, public s_initialize_bubbles_model()
bubbles_euler + polytropic bubbles_euler + non-polytropic bubbles_lagrange + non-polytropic
MPI communication layer: domain decomposition, halo exchange, reductions, and parallel I/O setup.
impure subroutine s_mpi_abort(prnt, code)
The subroutine terminates the MPI execution environment.
impure subroutine s_initialize_mpi_common_module
The computation of parameters, the allocation of memory, the association of pointers and/or the execu...
MPI gather and scatter operations for distributing post-process grid and flow-variable data.
impure subroutine s_initialize_mpi_proxy_module
Computation of parameters, allocation procedures, and/or any other tasks needed to properly setup the...
Reads and validates user inputs, allocates variables, and configures MPI decomposition and I/O for po...
impure subroutine s_save_data(t_step, varname, pres, c, h)
Derive requested flow quantities from primitive variables and write them to the formatted database fi...
impure subroutine s_check_input_file
Checking that the user inputs make sense, i.e. that the individual choices are compatible with the co...
real(wp), dimension(:), allocatable en
subroutine s_mpi_fft_fwd
Perform a distributed forward 3-D FFT using pencil decomposition with FFTW and MPI transposes.
complex(c_double_complex), dimension(:, :, :), allocatable data_cmplx
impure subroutine s_initialize_mpi_domain
Set up the MPI environment, read and broadcast user inputs, and decompose the computational domain.
impure subroutine s_read_input_file
Reads the configuration file post_process.inp, in order to populate parameters in module m_global_par...
complex(c_double_complex), dimension(:), allocatable data_out
integer, dimension(2) cart2d13_coords
complex(c_double_complex), dimension(:), allocatable data_in
integer, dimension(3) cart3d_coords
impure subroutine s_perform_time_step(t_step)
Load grid and conservative data for a time step, fill ghost-cell buffers, and convert to primitive va...
complex(c_double_complex), dimension(:, :, :), allocatable data_cmplx_y
complex(c_double_complex), dimension(:, :, :), allocatable data_cmplx_z
subroutine s_mpi_transpose_x2y
Transpose 3-D complex data from x-pencil to y-pencil layout via MPI_Alltoall.
impure subroutine s_finalize_modules
Destroy FFTW plans, free MPI communicators, and finalize all post-process sub-modules.
subroutine s_mpi_transpose_y2z
Transpose 3-D complex data from y-pencil to z-pencil layout via MPI_Alltoall.
real(wp), dimension(:, :, :), allocatable en_real
impure subroutine s_initialize_modules
Initialize all post-process sub-modules, set up I/O pointers, and prepare FFTW plans and MPI communic...
integer, dimension(2) cart2d12_coords
Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation.
real(wp), dimension(:, :, :), allocatable, public pi_inf_sf
Scalar liquid stiffness function.
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...
real(wp), dimension(:, :, :), allocatable, public rho_sf
Scalar density function.
real(wp), dimension(:, :, :), allocatable, public qv_sf
Scalar liquid energy reference function.
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...
impure subroutine, public s_initialize_variables_conversion_module
The computation of parameters, the allocation of memory, the association of pointers and/or the execu...
real(wp), dimension(:, :, :), allocatable, public gamma_sf
Scalar sp. heat ratio function.