You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/post_process/m_checker.fpp
+10-3Lines changed: 10 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ module m_checker
17
17
18
18
implicit none
19
19
20
-
private; public :: s_check_inputs
20
+
private; public :: s_check_inputs, s_check_inputs_fft
21
21
22
22
contains
23
23
@@ -32,7 +32,6 @@ contains
32
32
call s_check_inputs_flux_limiter
33
33
call s_check_inputs_volume_fraction
34
34
call s_check_inputs_vorticity
35
-
call s_check_inputs_fft
36
35
call s_check_inputs_qm
37
36
call s_check_inputs_liutex
38
37
call s_check_inputs_schlieren
@@ -112,11 +111,19 @@ contains
112
111
@:PROHIBIT(any(omega_wrt) .and. fd_order == dflt_int, "fd_order must be set for omega_wrt")
113
112
endsubroutine s_check_inputs_vorticity
114
113
115
-
!> Checks constraints on fft_wrt
114
+
!> Checks constraints on fft_wrt
116
115
impuresubroutines_check_inputs_fft
116
+
integer:: num_procs_x, num_procs_y, num_procs_z
117
+
117
118
@:PROHIBIT(fft_wrt .and. file_per_process, "Turn off file_per_process with fft_wrt")
118
119
@:PROHIBIT(fft_wrt .and. (n == 0.or. p == 0), "FFT WRT only in 3D")
119
120
@:PROHIBIT(fft_wrt .and. (MOD(m+1,2) == 1.or.MOD(n+1,2) == 1.or.MOD(p+1,2) == 1), "FFT WRT requires local dimensions divisible by 2")
121
+
num_procs_x = (m_glb +1)/(m +1)
122
+
num_procs_y = (n_glb +1)/(n +1)
123
+
num_procs_z = (p_glb +1)/(p +1)
124
+
@:PROHIBIT(fft_wrt .and. (MOD(m_glb+1,num_procs_y) /=0.or.MOD(m_glb+1,num_procs_z) /=0), "FFT WRT requires m_glb to be divisble by num_procs_y and num_procs_z")
125
+
@:PROHIBIT(fft_wrt .and. (MOD(n_glb+1,num_procs_y) /=0.or.MOD(n_glb+1,num_procs_z) /=0), "FFT WRT requires n_glb to be divisble by num_procs_y and num_procs_z")
126
+
@:PROHIBIT(fft_wrt .and. (MOD(p_glb+1,num_procs_y) /=0.or.MOD(p_glb+1,num_procs_z) /=0), "FFT WRT requires p_glb to be divisble by num_procs_y and num_procs_z")
0 commit comments