Skip to content

Commit 3c387d1

Browse files
committed
refactor: populate grid_axis%min_spacing in simulation and post_process
After reading grid data from files, compute and store min_spacing on each axis in both serial and parallel paths. Matches the pre_process pattern so min_spacing is consistent across all three executables.
1 parent 7f2cd02 commit 3c387d1

2 files changed

Lines changed: 24 additions & 0 deletions

File tree

src/post_process/m_data_input.f90

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,12 +216,18 @@ impure subroutine s_read_serial_data_files(t_step)
216216
! assumed-shape re-mapping shifts the read by that many slots and leaves the last interior cells uninitialized - corrupting
217217
! downstream ghost-cell extrapolation.
218218
call s_read_grid_data_direction(t_step_dir, 'x', x%cb(-1:m), x%spacing(0:m), x%cc(0:m), m)
219+
x%min_spacing = minval(x%spacing(0:m))
220+
if (num_procs > 1) call s_mpi_reduce_min(x%min_spacing)
219221

220222
if (n > 0) then
221223
call s_read_grid_data_direction(t_step_dir, 'y', y%cb(-1:n), y%spacing(0:n), y%cc(0:n), n)
224+
y%min_spacing = minval(y%spacing(0:n))
225+
if (num_procs > 1) call s_mpi_reduce_min(y%min_spacing)
222226

223227
if (p > 0) then
224228
call s_read_grid_data_direction(t_step_dir, 'z', z%cb(-1:p), z%spacing(0:p), z%cc(0:p), p)
229+
z%min_spacing = minval(z%spacing(0:p))
230+
if (num_procs > 1) call s_mpi_reduce_min(z%min_spacing)
225231
end if
226232
end if
227233

@@ -299,6 +305,8 @@ impure subroutine s_read_parallel_data_files(t_step)
299305
x%cb(-1:m) = x_cb_glb((start_idx(1) - 1):(start_idx(1) + m))
300306
x%spacing(0:m) = x%cb(0:m) - x%cb(-1:m - 1)
301307
x%cc(0:m) = x%cb(-1:m - 1) + x%spacing(0:m)/2._wp
308+
x%min_spacing = minval(x%spacing(0:m))
309+
if (num_procs > 1) call s_mpi_reduce_min(x%min_spacing)
302310

303311
if (n > 0) then
304312
file_loc = trim(case_dir) // '/restart_data' // trim(mpiiofs) // 'y_cb.dat'
@@ -323,6 +331,8 @@ impure subroutine s_read_parallel_data_files(t_step)
323331
y%cb(-1:n) = y_cb_glb((start_idx(2) - 1):(start_idx(2) + n))
324332
y%spacing(0:n) = y%cb(0:n) - y%cb(-1:n - 1)
325333
y%cc(0:n) = y%cb(-1:n - 1) + y%spacing(0:n)/2._wp
334+
y%min_spacing = minval(y%spacing(0:n))
335+
if (num_procs > 1) call s_mpi_reduce_min(y%min_spacing)
326336

327337
if (p > 0) then
328338
file_loc = trim(case_dir) // '/restart_data' // trim(mpiiofs) // 'z_cb.dat'
@@ -347,6 +357,8 @@ impure subroutine s_read_parallel_data_files(t_step)
347357
z%cb(-1:p) = z_cb_glb((start_idx(3) - 1):(start_idx(3) + p))
348358
z%spacing(0:p) = z%cb(0:p) - z%cb(-1:p - 1)
349359
z%cc(0:p) = z%cb(-1:p - 1) + z%spacing(0:p)/2._wp
360+
z%min_spacing = minval(z%spacing(0:p))
361+
if (num_procs > 1) call s_mpi_reduce_min(z%min_spacing)
350362
end if
351363
end if
352364

src/simulation/m_start_up.fpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,8 @@ contains
210210

211211
x%spacing(0:m) = x%cb(0:m) - x%cb(-1:m - 1)
212212
x%cc(0:m) = x%cb(-1:m - 1) + x%spacing(0:m)/2._wp
213+
x%min_spacing = minval(x%spacing(0:m))
214+
if (num_procs > 1) call s_mpi_reduce_min(x%min_spacing)
213215

214216
if (ib) then
215217
do i = 1, num_ibs
@@ -234,6 +236,8 @@ contains
234236

235237
y%spacing(0:n) = y%cb(0:n) - y%cb(-1:n - 1)
236238
y%cc(0:n) = y%cb(-1:n - 1) + y%spacing(0:n)/2._wp
239+
y%min_spacing = minval(y%spacing(0:n))
240+
if (num_procs > 1) call s_mpi_reduce_min(y%min_spacing)
237241
end if
238242

239243
if (p > 0) then
@@ -250,6 +254,8 @@ contains
250254

251255
z%spacing(0:p) = z%cb(0:p) - z%cb(-1:p - 1)
252256
z%cc(0:p) = z%cb(-1:p - 1) + z%spacing(0:p)/2._wp
257+
z%min_spacing = minval(z%spacing(0:p))
258+
if (num_procs > 1) call s_mpi_reduce_min(z%min_spacing)
253259
end if
254260

255261
do i = 1, sys_size
@@ -347,6 +353,8 @@ contains
347353
x%cb(-1:m) = x_cb_glb((start_idx(1) - 1):(start_idx(1) + m))
348354
x%spacing(0:m) = x%cb(0:m) - x%cb(-1:m - 1)
349355
x%cc(0:m) = x%cb(-1:m - 1) + x%spacing(0:m)/2._wp
356+
x%min_spacing = minval(x%spacing(0:m))
357+
if (num_procs > 1) call s_mpi_reduce_min(x%min_spacing)
350358

351359
if (ib) then
352360
do i = 1, num_ibs
@@ -374,6 +382,8 @@ contains
374382
y%cb(-1:n) = y_cb_glb((start_idx(2) - 1):(start_idx(2) + n))
375383
y%spacing(0:n) = y%cb(0:n) - y%cb(-1:n - 1)
376384
y%cc(0:n) = y%cb(-1:n - 1) + y%spacing(0:n)/2._wp
385+
y%min_spacing = minval(y%spacing(0:n))
386+
if (num_procs > 1) call s_mpi_reduce_min(y%min_spacing)
377387

378388
if (p > 0) then
379389
file_loc = trim(case_dir) // '/restart_data' // trim(mpiiofs) // 'z_cb.dat'
@@ -391,6 +401,8 @@ contains
391401
z%cb(-1:p) = z_cb_glb((start_idx(3) - 1):(start_idx(3) + p))
392402
z%spacing(0:p) = z%cb(0:p) - z%cb(-1:p - 1)
393403
z%cc(0:p) = z%cb(-1:p - 1) + z%spacing(0:p)/2._wp
404+
z%min_spacing = minval(z%spacing(0:p))
405+
if (num_procs > 1) call s_mpi_reduce_min(z%min_spacing)
394406
end if
395407
end if
396408

0 commit comments

Comments
 (0)