Go to the documentation of this file.
59 integer,
allocatable :: iplg(:)
82 if(stat/=0)
CALL abort(
'rank allocation failure')
95 integer :: i, ierr, stat
96 integer :: sendRqst(nTasks), recvRqst(nTasks)
97 integer :: recvStat(MPI_STATUS_SIZE, nTasks), sendStat(MPI_STATUS_SIZE, nTasks)
98 integer IPglob, J, istat
109 call mpi_irecv(
rank(i)%np, 1,
itype, i-1, &
110 42,
comm, recvrqst(i), ierr)
111 if(ierr/=mpi_success)
then
115 recvrqst(i) = mpi_request_null
122 call mpi_isend(
np, 1,
itype, i-1, &
123 42,
comm, sendrqst(i), ierr)
124 if(ierr/=mpi_success)
then
128 sendrqst(i) = mpi_request_null
135 call mpi_waitall(ntasks, recvrqst, recvstat,ierr)
137 call mpi_waitall(ntasks, sendrqst, sendstat,ierr)
144 call mpi_irecv(
rank(i)%npa, 1,
itype, i-1, &
145 42,
comm, recvrqst(i), ierr)
146 if(ierr/=mpi_success)
then
150 recvrqst(i) = mpi_request_null
157 call mpi_isend(
npa, 1,
itype, i-1, &
158 42,
comm, sendrqst(i), ierr)
159 if(ierr/=mpi_success)
then
163 sendrqst(i) = mpi_request_null
170 call mpi_waitall(ntasks, recvrqst, recvstat,ierr)
172 call mpi_waitall(ntasks, sendrqst, sendstat,ierr)
177 if(
allocated(
rank(i)%iplg))
deallocate(
rank(i)%iplg)
178 allocate(
rank(i)%iplg(
rank(i)%npa), stat=stat)
179 if(stat/=0)
CALL abort(
'rank%iplg allocation failure')
188 42,
comm, recvrqst(i), ierr)
189 if(ierr/=mpi_success)
then
193 recvrqst(i) = mpi_request_null
201 42,
comm, sendrqst(i), ierr)
202 if(ierr/=mpi_success)
then
206 sendrqst(i) = mpi_request_null
213 call mpi_waitall(ntasks, recvrqst, recvstat,ierr)
215 call mpi_waitall(ntasks, sendrqst, sendstat,ierr)
222 ipglob=
rank(i)%iplg(j)
252 if(
allocated(
rank))
then
254 if(
allocated(
rank(i)%iplg))
deallocate(
rank(i)%iplg)
subroutine parallel_abort(string, error)
integer, dimension(:), allocatable, public ipgl_tot
subroutine, public initrankmodule()
allocate and exchange
type(t_rank), dimension(:), allocatable, public rank
Provides access to some information of all threads e.g.
subroutine exchangeiplg()
send iplg from this thread to every neighbor thread
integer, dimension(:), allocatable, public ipgl_to_proc
integer, dimension(:), allocatable, public iplg
Node local to global mapping.
Has some subroutine to make a nice error message.
integer, public npa
number of ghost + resident nodes this partition holds
integer, public np_global
number of nodes, global
integer, dimension(:), allocatable, public ipgl_npa
integer, save myrank
The thread id.
Has data that belong to nodes.
Provides access to some information of all threads e.g.
integer, public np
number of nodes, local
integer, save, public comm
MPI Communicator.
subroutine abort(string, line, file, errno)
print various error strings and exit.
subroutine, public finalizerankmodule()
integer, save itype
MPI Integer Type.
integer, save ntasks
Number of threads.