10 bind(c, name=
'neko_comm_wrapper_init')
11 integer,
value :: fcomm
19 #ifdef HAVE_MPI_PARAM_DTYPE
39 logical :: initialized
40 integer :: provided, nthrds
46 call mpi_initialized(initialized, ierr)
55 if (.not.initialized)
then
56 if (nthrds .gt. 1)
then
57 call mpi_init_thread(mpi_thread_multiple, provided, ierr)
58 if (provided .ne. mpi_thread_multiple)
then
61 call neko_error(
'Invalid thread support provided by MPI')
63 call mpi_init_thread(mpi_thread_serialized, provided, ierr)
64 if (provided .ne. mpi_thread_serialized)
then
65 call neko_error(
'Invalid thread support provided by MPI')
74 #ifndef HAVE_MPI_PARAM_DTYPE
82 call mpi_comm_rank(mpi_comm_world,
pe_rank, ierr)
86 call mpi_comm_dup(mpi_comm_world,
neko_comm, ierr)
102 call mpi_finalize(ierr)
type(mpi_comm) neko_comm
MPI communicator.
type(mpi_datatype) mpi_real_precision
MPI type for working precision of REAL types.
integer pe_size
MPI size of communicator.
type(mpi_datatype) mpi_extra_precision
integer, parameter neko_bcknd_device