Skip to content

Commit 4df57f7

Browse files
njanssontimfelle
andauthored
Cleanup module use (#2049)
More cleanup of `use` statements, including changing legacy types to tbp, and making `comm` private (rendering #1706 redundant) --------- Co-authored-by: Tim Felle Olsen <timfelle@hotmail.com> Co-authored-by: Tim Felle Olsen <tife@dtu.dk>
1 parent a55418d commit 4df57f7

28 files changed

+205
-185
lines changed

.github/workflows/check_nvidia.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,16 @@ jobs:
125125
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${{ github.workspace }}/install/lib" >> $GITHUB_ENV
126126
git apply patches/nvhpc_bge.patch
127127
./regen.sh
128-
./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --prefix=${{ github.workspace }}/install
128+
./configure FC=${FC} CC=${CC} FCFLAGS="-O3" --enable-real=${RP} --prefix=${{ github.workspace }}/install
129129
make -j${{ steps.setup-env.outputs.nproc }} install
130130
131+
131132
- name: Build (CUDA backend)
132133
if: matrix.backend == 'cuda'
133134
run: |
134135
git apply patches/nvhpc_bge.patch
135136
./regen.sh
136-
./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/${NVARCH}/${NVVER}/cuda/
137+
./configure FC=${FC} CC=${CC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/${NVARCH}/${NVVER}/cuda/
137138
make -j${{ steps.setup-env.outputs.nproc }}
138139
139140
# - name: Integration tests
@@ -154,7 +155,7 @@ jobs:
154155
tar xf neko-*.tar.gz -C releng
155156
cd releng/neko-*
156157
patch -u src/common/signal.f90 -i patches/nvhpc_bge.patch
157-
./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP}
158+
./configure FC=${FC} CC=${CC} FCFLAGS="-O3" --enable-real=${RP}
158159
make -j $(nproc)
159160
160161
- name: Dist (CUDA backend)
@@ -166,7 +167,7 @@ jobs:
166167
tar xf neko-*.tar.gz -C releng
167168
cd releng/neko-*
168169
patch -u src/common/signal.f90 -i patches/nvhpc_bge.patch
169-
./configure FC=${FC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/${NVARCH}/${NVVER}/cuda/
170+
./configure FC=${FC} CC=${CC} FCFLAGS="-O3" --enable-real=${RP} --with-cuda=/opt/nvidia/hpc_sdk/${NVARCH}/${NVVER}/cuda/
170171
make -j $(nproc)
171172
172173
# - name: Archive integration test report

.github/workflows/develop.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ jobs:
161161
format_status: ${{ needs.formatting.result }}
162162
gnu_status: ${{ needs.GNU.result }}
163163
inel_status: ${{ needs.Intel.result }}
164-
nvidia_status: ${{ needs.Nvidia.result }}
164+
# nvidia_status: ${{ needs.Nvidia.result }}
165165
# reframe_status: ${{ needs.ReFrame.result }}
166166

167167
steps:
@@ -194,10 +194,10 @@ jobs:
194194
success=false
195195
fi
196196
197-
if [ "$nvidia_status" != "success" ]; then
198-
fail+=("\t- NVIDIA check: $nvidia_status")
199-
success=false
200-
fi
197+
# if [ "$nvidia_status" != "success" ]; then
198+
# fail+=("\t- NVIDIA check: $nvidia_status")
199+
# success=false
200+
# fi
201201
202202
if [ "$success" = false ]; then
203203
>&2 echo "The following checks failed:"

examples/poisson/driver.f90

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
program poisson
22
use neko
33
use ax_poisson
4+
use mpi_f08
45
implicit none
56

67
character(len=NEKO_FNAME_LEN) :: fname, lxchar, iterchar
@@ -97,6 +98,7 @@ subroutine set_timer_flop_cnt(iset, nelt, nx1, niter, n, ksp_mon)
9798
use comm
9899
use krylov
99100
use num_types
101+
use mpi_f08
100102
implicit none
101103

102104
integer :: iset

src/.depends

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ common/time_state.lo : common/time_state.f90 common/json_utils.lo common/checkpo
2121
common/json_utils.lo : common/json_utils.f90 common/utils.lo config/num_types.lo
2222
common/mask.lo : common/mask.f90 common/utils.lo math/bcknd/device/device_math.lo device/device.lo config/neko_config.lo
2323
common/system.lo : common/system.f90
24-
common/runtime_statistics.lo : common/runtime_statistics.f90 comm/comm.lo math/matrix.lo io/file.lo common/json_utils.lo config/num_types.lo adt/tuple.lo adt/stack.lo common/log.lo
24+
common/runtime_statistics.lo : common/runtime_statistics.f90 comm/comm.lo common/utils.lo math/matrix.lo io/file.lo common/json_utils.lo config/num_types.lo adt/tuple.lo adt/stack.lo common/log.lo
2525
common/user_access_singleton.lo : common/user_access_singleton.f90 case.lo
2626
math/mxm_wrapper.lo : math/mxm_wrapper.F90 common/utils.lo config/num_types.lo
2727
sem/speclib.lo : sem/speclib.f90 common/utils.lo math/math.lo config/num_types.lo
@@ -31,8 +31,8 @@ math/math.lo : math/math.f90 comm/comm.lo config/num_types.lo
3131
math/mathops.lo : math/mathops.f90 config/num_types.lo
3232
math/fast3d.lo : math/fast3d.f90 math/math.lo sem/speclib.lo config/num_types.lo
3333
sem/space.lo : sem/space.f90 math/math.lo math/mxm_wrapper.lo math/tensor.lo math/fast3d.lo common/utils.lo device/device.lo sem/speclib.lo config/num_types.lo config/neko_config.lo
34-
sem/map_1d.lo : sem/map_1d.f90 comm/mpi_types.lo math/math.lo common/utils.lo math/vector.lo math/matrix.lo field/field_list.lo sem/coef.lo comm/comm.lo device/device.lo mesh/mesh.lo gs/gather_scatter.lo sem/dofmap.lo sem/space.lo config/num_types.lo
35-
sem/map_2d.lo : sem/map_2d.f90 io/fld_file_data.lo config/neko_config.lo comm/comm.lo device/device.lo field/field.lo math/math.lo common/utils.lo math/vector.lo sem/coef.lo field/field_list.lo mesh/mesh.lo gs/gather_scatter.lo sem/map_1d.lo sem/dofmap.lo config/num_types.lo
34+
sem/map_1d.lo : sem/map_1d.f90 math/math.lo common/utils.lo math/vector.lo math/matrix.lo field/field_list.lo sem/coef.lo comm/comm.lo device/device.lo mesh/mesh.lo gs/gather_scatter.lo sem/dofmap.lo sem/space.lo config/num_types.lo config/neko_config.lo
35+
sem/map_2d.lo : sem/map_2d.f90 io/fld_file_data.lo comm/comm.lo device/device.lo field/field.lo math/math.lo common/utils.lo math/vector.lo sem/coef.lo field/field_list.lo mesh/mesh.lo gs/gather_scatter.lo sem/map_1d.lo sem/dofmap.lo config/num_types.lo config/neko_config.lo
3636
sem/dofmap.lo : sem/dofmap.f90 mesh/hex.lo mesh/quad.lo mesh/element.lo math/math.lo device/device.lo math/tensor.lo math/fast3d.lo common/utils.lo config/num_types.lo adt/tuple.lo sem/space.lo mesh/mesh.lo config/neko_config.lo
3737
sem/coef.lo : sem/coef.f90 device/device.lo math/mxm_wrapper.lo sem/bcknd/device/device_coef.lo math/bcknd/device/device_math.lo mesh/mesh.lo math/math.lo sem/space.lo sem/dofmap.lo config/num_types.lo config/neko_config.lo gs/gs_ops.lo gs/gather_scatter.lo
3838
sem/cpr.lo : sem/cpr.f90 math/mxm_wrapper.lo sem/dofmap.lo common/log.lo sem/coef.lo mesh/mesh.lo math/tensor.lo math/math.lo sem/space.lo field/field.lo config/num_types.lo
@@ -104,7 +104,7 @@ math/operators.lo : math/operators.f90 comm/comm.lo field/scratch_registry.lo ma
104104
math/bcknd/cpu/opr_cpu.lo : math/bcknd/cpu/opr_cpu.f90 math/mathops.lo sem/interpolation.lo gs/gather_scatter.lo field/field.lo math/math.lo sem/coef.lo sem/space.lo config/num_types.lo
105105
math/bcknd/sx/opr_sx.lo : math/bcknd/sx/opr_sx.f90 math/mathops.lo field/field.lo math/math.lo sem/coef.lo sem/space.lo config/num_types.lo sem/interpolation.lo gs/gather_scatter.lo
106106
math/bcknd/xsmm/opr_xsmm.lo : math/bcknd/xsmm/opr_xsmm.F90 math/mathops.lo gs/gather_scatter.lo sem/interpolation.lo field/field.lo mesh/mesh.lo math/math.lo sem/coef.lo sem/space.lo math/mxm_wrapper.lo config/num_types.lo
107-
math/bcknd/device/opr_device.lo : math/bcknd/device/opr_device.F90 comm/comm.lo math/bcknd/device/device_mathops.lo math/bcknd/device/device_math.lo common/utils.lo field/field.lo sem/coef.lo sem/space.lo device/device.lo config/num_types.lo gs/gather_scatter.lo
107+
math/bcknd/device/opr_device.lo : math/bcknd/device/opr_device.F90 math/bcknd/device/device_mathops.lo math/bcknd/device/device_math.lo common/utils.lo field/field.lo sem/coef.lo sem/space.lo device/device.lo config/num_types.lo gs/gather_scatter.lo
108108
math/tensor.lo : math/tensor.f90 device/device.lo config/neko_config.lo math/mxm_wrapper.lo config/num_types.lo math/bcknd/device/tensor_device.lo math/bcknd/sx/tensor_sx.lo math/bcknd/cpu/tensor_cpu.lo math/bcknd/xsmm/tensor_xsmm.lo
109109
math/bcknd/cpu/tensor_cpu.lo : math/bcknd/cpu/tensor_cpu.f90 math/mxm_wrapper.lo config/num_types.lo
110110
math/bcknd/sx/tensor_sx.lo : math/bcknd/sx/tensor_sx.f90 math/mxm_wrapper.lo config/num_types.lo
@@ -145,7 +145,7 @@ io/chkp_output.lo : io/chkp_output.f90 config/num_types.lo io/output.lo common/c
145145
io/mean_flow_output.lo : io/mean_flow_output.f90 io/output.lo device/device.lo config/num_types.lo fluid/mean_flow.lo
146146
io/fluid_stats_output.lo : io/fluid_stats_output.f90 math/matrix.lo io/output.lo device/device.lo io/fld_file_data.lo sem/map_2d.lo sem/map_1d.lo config/num_types.lo config/neko_config.lo fluid/fluid_stats.lo
147147
io/mean_sqr_flow_output.lo : io/mean_sqr_flow_output.f90 io/output.lo config/num_types.lo fluid/mean_sqr_flow.lo
148-
io/data_streamer.lo : io/data_streamer.F90 config/neko_config.lo comm/mpi_types.lo comm/comm.lo device/device.lo common/utils.lo sem/coef.lo field/field.lo config/num_types.lo
148+
io/data_streamer.lo : io/data_streamer.F90 comm/comm.lo common/utils.lo sem/coef.lo field/field.lo config/num_types.lo
149149
io/output_controller.lo : io/output_controller.f90 common/time_based_controller.lo config/num_types.lo common/profiler.lo common/utils.lo common/log.lo common/time_state.lo comm/comm.lo io/fld_file.lo io/output.lo
150150
common/global_interpolation.lo : common/global_interpolation.F90 common/structs.lo comm/mpi_types.lo math/math.lo comm/comm.lo device/device.lo sem/local_interpolation.lo common/utils.lo common/log.lo mesh/mesh.lo sem/dofmap.lo sem/space.lo config/num_types.lo config/neko_config.lo
151151
common/profiler.lo : common/profiler.F90 common/runtime_statistics.lo common/craypat.lo device/hip/roctx.lo device/cuda/nvtx.lo device/device.lo config/neko_config.lo
@@ -172,7 +172,7 @@ krylov/precon_fctry.lo : krylov/precon_fctry.f90 config/neko_config.lo common/ut
172172
krylov/krylov_fctry.lo : krylov/krylov_fctry.f90 config/neko_config.lo common/utils.lo krylov/precon.lo config/num_types.lo krylov/bcknd/device/gmres_device.lo krylov/bcknd/sx/gmres_sx.lo krylov/bcknd/device/cheby_device.lo krylov/bcknd/cpu/cheby.lo krylov/bcknd/cpu/gmres.lo krylov/bcknd/cpu/bicgstab.lo krylov/bcknd/device/fusedcg_cpld_device.lo krylov/bcknd/device/fusedcg_device.lo krylov/bcknd/device/pipecg_device.lo krylov/bcknd/sx/pipecg_sx.lo krylov/bcknd/cpu/pipecg.lo krylov/bcknd/cpu/cacg.lo krylov/bcknd/device/cg_device.lo krylov/bcknd/cpu/cg_coupled.lo krylov/bcknd/sx/cg_sx.lo krylov/bcknd/cpu/cg.lo krylov/krylov.lo
173173
krylov/bcknd/cpu/cg.lo : krylov/bcknd/cpu/cg.f90 comm/comm.lo math/math.lo bc/bc_list.lo gs/gather_scatter.lo sem/coef.lo field/field.lo math/ax.lo krylov/precon.lo krylov/krylov.lo config/num_types.lo config/neko_config.lo
174174
krylov/bcknd/cpu/cacg.lo : krylov/bcknd/cpu/cacg.f90 math/mxm_wrapper.lo comm/comm.lo common/utils.lo math/math.lo bc/bc_list.lo gs/gather_scatter.lo sem/coef.lo field/field.lo math/ax.lo krylov/precon.lo krylov/krylov.lo config/neko_config.lo config/num_types.lo
175-
krylov/bcknd/cpu/cheby.lo : krylov/bcknd/cpu/cheby.f90 comm/comm.lo math/math.lo math/schwarz.lo bc/bc_list.lo gs/gather_scatter.lo sem/space.lo mesh/mesh.lo sem/coef.lo field/field.lo config/num_types.lo math/ax.lo krylov/precon.lo krylov/krylov.lo
175+
krylov/bcknd/cpu/cheby.lo : krylov/bcknd/cpu/cheby.f90 math/math.lo math/schwarz.lo bc/bc_list.lo gs/gather_scatter.lo sem/space.lo mesh/mesh.lo sem/coef.lo field/field.lo config/num_types.lo math/ax.lo krylov/precon.lo krylov/krylov.lo
176176
krylov/bcknd/cpu/pipecg.lo : krylov/bcknd/cpu/pipecg.f90 comm/comm.lo math/math.lo bc/bc_list.lo gs/gather_scatter.lo sem/coef.lo field/field.lo config/num_types.lo math/ax.lo krylov/precon.lo krylov/krylov.lo config/neko_config.lo
177177
krylov/bcknd/cpu/bicgstab.lo : krylov/bcknd/cpu/bicgstab.f90 common/utils.lo math/math.lo bc/bc_list.lo gs/gather_scatter.lo sem/coef.lo field/field.lo math/ax.lo krylov/precon.lo krylov/krylov.lo config/num_types.lo
178178
krylov/bcknd/cpu/gmres.lo : krylov/bcknd/cpu/gmres.f90 comm/comm.lo config/neko_config.lo math/math.lo bc/bc_list.lo gs/gather_scatter.lo sem/coef.lo field/field.lo config/num_types.lo math/ax.lo krylov/precon.lo krylov/krylov.lo
@@ -222,7 +222,7 @@ fluid/fluid_aux.lo : fluid/fluid_aux.f90 common/time_state.lo common/utils.lo co
222222
fluid/fluid_pnpn.lo : fluid/fluid_pnpn.f90 bc/dong_outflow.lo bc/field_dirichlet_vector.lo bc/blasius.lo bc/field_dirichlet.lo bc/inflow.lo comm/comm.lo common/time_state.lo math/operators.lo io/file.lo bc/bc.lo math/field_math.lo common/utils.lo bc/zero_dirichlet.lo bc/bc_list.lo math/mathops.lo config/neko_config.lo gs/gs_ops.lo common/time_step_controller.lo common/user_intf.lo mesh/mesh.lo common/checkpoint.lo bc/non_normal.lo bc/facet_normal.lo bc/wall_model_bc.lo bc/shear_stress.lo bc/dirichlet.lo field/field.lo math/ax.lo common/json_utils.lo common/profiler.lo fluid/advection.lo device/device.lo common/projection_vel.lo common/projection.lo fluid/fluid_aux.lo math/bcknd/device/device_mathops.lo fluid/fluid_scheme_incompressible.lo fluid/fluid_volflow.lo common/rhs_maker.lo fluid/pnpn_res.lo krylov/krylov.lo config/num_types.lo common/log.lo field/field_registry.lo bc/symmetry.lo sem/coef.lo
223223
fluid/fluid_base_fctry.lo : fluid/fluid_base_fctry.f90 common/utils.lo fluid/fluid_scheme_compressible_euler.lo fluid/fluid_pnpn.lo fluid/fluid_scheme_base.lo
224224
fluid/fluid_pnpn_bc_fctry.lo : fluid/fluid_pnpn_bc_fctry.f90 bc/field_dirichlet_vector.lo bc/non_normal.lo bc/symmetry.lo bc/dong_outflow.lo bc/dirichlet.lo bc/blasius.lo bc/inflow.lo bc/field_dirichlet.lo common/utils.lo common/user_intf.lo fluid/fluid_pnpn.lo
225-
fluid/euler_bc_fctry.lo : fluid/euler_bc_fctry.f90 bc/field_dirichlet_vector.lo bc/non_normal.lo bc/symmetry.lo bc/dong_outflow.lo bc/blasius.lo bc/zero_dirichlet.lo bc/inflow.lo bc/dirichlet.lo bc/field_dirichlet.lo common/utils.lo fluid/fluid_scheme_compressible_euler.lo
225+
fluid/euler_bc_fctry.lo : fluid/euler_bc_fctry.f90 bc/symmetry.lo bc/zero_dirichlet.lo bc/inflow.lo bc/dirichlet.lo bc/field_dirichlet.lo fluid/fluid_scheme_compressible_euler.lo
226226
fluid/fluid_volflow.lo : fluid/fluid_volflow.f90 comm/comm.lo math/ax.lo bc/bc_list.lo field/scratch_registry.lo common/json_utils.lo gs/gather_scatter.lo math/bcknd/device/device_mathops.lo math/bcknd/device/device_math.lo config/neko_config.lo math/math.lo time_schemes/time_scheme_controller.lo sem/coef.lo field/field.lo sem/dofmap.lo krylov/precon.lo krylov/krylov.lo math/mathops.lo config/num_types.lo math/operators.lo
227227
fluid/pnpn_res.lo : fluid/pnpn_res.f90 config/num_types.lo mesh/mesh.lo sem/space.lo bc/facet_normal.lo sem/coef.lo field/field.lo math/ax.lo gs/gather_scatter.lo
228228
fluid/pnpn_res_fctry.lo : fluid/pnpn_res_fctry.f90 fluid/bcknd/sx/pnpn_res_sx.lo fluid/bcknd/cpu/pnpn_res_cpu.lo fluid/bcknd/device/pnpn_res_device.lo config/neko_config.lo fluid/pnpn_res.lo
@@ -261,7 +261,7 @@ common/projection.lo : common/projection.f90 comm/comm.lo common/time_step_contr
261261
common/projection_vel.lo : common/projection_vel.f90 common/projection.lo common/time_step_controller.lo common/profiler.lo math/bcknd/device/device_math.lo device/device.lo config/neko_config.lo gs/gather_scatter.lo bc/bc_list.lo math/ax.lo sem/coef.lo math/math.lo config/num_types.lo
262262
common/bcknd/device/device_projection.lo : common/bcknd/device/device_projection.F90 common/utils.lo config/num_types.lo
263263
comm/parmetis.lo : comm/parmetis.F90 mesh/mesh.lo field/mesh_field.lo config/num_types.lo common/utils.lo mesh/point.lo comm/comm.lo
264-
comm/redist.lo : comm/redist.f90 mesh/element.lo mesh/facet_zone.lo io/format/nmsh.lo mesh/mesh.lo comm/comm.lo mesh/curve.lo adt/stack.lo mesh/point.lo adt/htable.lo comm/mpi_types.lo field/mesh_field.lo
264+
comm/redist.lo : comm/redist.f90 common/utils.lo mesh/element.lo mesh/facet_zone.lo io/format/nmsh.lo mesh/mesh.lo comm/comm.lo mesh/curve.lo adt/stack.lo mesh/point.lo adt/htable.lo comm/mpi_types.lo field/mesh_field.lo
265265
krylov/pc_hsmg.lo : krylov/pc_hsmg.f90 common/log.lo bc/zero_dirichlet.lo multigrid/tree_amg_multigrid.lo krylov/krylov.lo common/json_utils.lo mesh/mesh.lo sem/coef.lo field/field.lo sem/dofmap.lo sem/space.lo common/profiler.lo math/bcknd/device/device_math.lo device/device.lo krylov/bcknd/device/pc_jacobi_device.lo krylov/bcknd/sx/pc_jacobi_sx.lo krylov/bcknd/cpu/pc_jacobi.lo math/schwarz.lo bc/dirichlet.lo bc/bc_list.lo bc/bc.lo sem/interpolation.lo gs/gather_scatter.lo math/ax.lo krylov/precon.lo common/utils.lo math/math.lo config/num_types.lo config/neko_config.lo
266266
common/signal.lo : common/signal.f90 common/utils.lo
267267
common/jobctrl.lo : common/jobctrl.f90 common/log.lo comm/comm.lo common/utils.lo common/signal.lo config/num_types.lo

src/bc/bc.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ module bc
4545
use stack, only : stack_i4t2_t
4646
use tuple, only : tuple_i4_t
4747
use field, only : field_t
48-
use gather_scatter
48+
use gather_scatter, only : GS_OP_ADD
4949
use math, only : relcmp
5050
use utils, only : neko_error, linear_index, split_string
5151
use, intrinsic :: iso_c_binding, only : c_ptr, C_NULL_PTR
@@ -523,7 +523,7 @@ subroutine bc_finalize_base(this, only_facets)
523523
HOST_TO_DEVICE, sync=.true.)
524524
end if
525525
!Check if some point that was not zeroed was zeroed on another element
526-
call this%coef%gs_h%op(test_field,GS_OP_ADD)
526+
call this%coef%gs_h%op(test_field, GS_OP_ADD)
527527
if (NEKO_BCKND_DEVICE .eq. 1) then
528528
call device_memcpy(test_field%x, test_field%x_d, n, &
529529
DEVICE_TO_HOST, sync=.true.)

src/comm/comm.F90.in

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
module comm
2-
use mpi_f08
2+
use mpi_f08, only : MPI_COMM, MPI_Datatype, MPI_Initialized, MPI_init_thread, &
3+
MPI_Init, MPI_THREAD_MULTIPLE, MPI_THREAD_SERIALIZED, MPI_Comm_rank, &
4+
MPI_Comm_split, MPI_Comm_dup, MPI_Barrier, MPI_Comm_free, MPI_FInalize, &
5+
MPI_COMM_WORLD, MPI_DOUBLE_PRECISION, MPI_REAL
36
use utils, only : neko_error
47
use neko_config
58
!$ use omp_lib
69
implicit none
10+
private
711

812
interface
913
subroutine neko_comm_wrapper_init(fcomm) &
@@ -35,32 +39,34 @@ module comm
3539

3640

3741
!> MPI communicator
38-
type(MPI_Comm) :: NEKO_COMM
39-
type(MPI_Comm) :: NEKO_GLOBAL_COMM
42+
type(MPI_Comm), public :: NEKO_COMM
43+
type(MPI_Comm), public :: NEKO_GLOBAL_COMM
4044

4145
!> MPI type for working precision of REAL types
4246
#ifdef HAVE_MPI_PARAM_DTYPE
43-
type(MPI_Datatype), parameter :: MPI_REAL_PRECISION = @NEKO_MPI_REAL_TYPE@
44-
type(MPI_Datatype), parameter :: MPI_EXTRA_PRECISION = @NEKO_MPI_XREAL_TYPE@
47+
type(MPI_Datatype), public, parameter :: MPI_REAL_PRECISION = @NEKO_MPI_REAL_TYPE@
48+
type(MPI_Datatype), public, parameter :: MPI_EXTRA_PRECISION = @NEKO_MPI_XREAL_TYPE@
4549
#else
46-
type(MPI_Datatype) :: MPI_REAL_PRECISION
47-
type(MPI_Datatype) :: MPI_EXTRA_PRECISION
50+
type(MPI_Datatype), public :: MPI_REAL_PRECISION
51+
type(MPI_Datatype), public :: MPI_EXTRA_PRECISION
4852
#endif
4953

5054
!> MPI rank
51-
integer :: pe_rank
55+
integer, public :: pe_rank
5256

5357
!> MPI size of communicator
54-
integer :: pe_size
58+
integer, public :: pe_size
5559

5660
!> I/O node
57-
logical :: nio
61+
logical, public :: nio
5862

5963
!> Global MPI rank
60-
integer :: global_pe_rank
64+
integer, public :: global_pe_rank
6165

6266
!> Global MPI size of communicator
63-
integer :: global_pe_size
67+
integer, public :: global_pe_size
68+
69+
public :: comm_init, comm_free
6470

6571
contains
6672
subroutine comm_init

src/comm/redist.f90

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
! Copyright (c) 2021, The Neko Authors
1+
! Copyright (c) 2021-2025, The Neko Authors
22
! All rights reserved.
33
!
44
! Redistribution and use in source and binary forms, with or without
@@ -33,17 +33,20 @@
3333
!> Redistribution routines
3434
module redist
3535
use mesh_field, only : mesh_fld_t, mesh_field_init, mesh_field_free
36-
use neko_mpi_types
37-
use mpi_f08
36+
use neko_mpi_types, only : MPI_NMSH_ZONE, MPI_NMSH_HEX, &
37+
MPI_NMSH_CURVE
38+
use mpi_f08, only : MPI_Status, MPI_Allreduce, MPI_Sendrecv, &
39+
MPI_Get_count, MPI_INTEGER, MPI_MAX, MPI_IN_PLACE
3840
use htable, only : htable_i4_t
3941
use point, only : point_t
4042
use stack, only : stack_i4_t, stack_nh_t, stack_nc_t, stack_nz_t
4143
use curve, only : curve_t
42-
use comm
44+
use comm, only : pe_size, pe_rank, NEKO_COMM
4345
use mesh, only : mesh_t, NEKO_MSH_MAX_ZLBLS
4446
use nmsh, only : nmsh_hex_t, nmsh_zone_t, nmsh_curve_el_t
4547
use facet_zone, only : facet_zone_t, facet_zone_periodic_t
4648
use element, only : element_t
49+
use utils, only : neko_error
4750
implicit none
4851
private
4952

0 commit comments

Comments
 (0)