Initializes the radiation MPI context by duplicating a parent communicator.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(radiation_mpi_t), | intent(inout) | :: | rad |
The radiation context to initialize. |
||
| type(MPI_Comm), | intent(in) | :: | comm_parent |
The parent communicator (usually MPI_COMM_WORLD). |
||
| integer, | intent(in), | optional | :: | n_tasks |
Optional total number of tasks to decompose immediately. |
subroutine radiation_mpi_initialize(rad, comm_parent, n_tasks) type(radiation_mpi_t), intent(inout) :: rad type(MPI_Comm), intent(in) :: comm_parent integer, intent(in), optional :: n_tasks integer :: ierr call radiation_mpi_finalize(rad) call MPI_Comm_dup(comm_parent, rad%comm, ierr) call check_mpi(ierr, 'MPI_Comm_dup radiation') call MPI_Comm_rank(rad%comm, rad%rank, ierr) call check_mpi(ierr, 'MPI_Comm_rank radiation') call MPI_Comm_size(rad%comm, rad%nprocs, ierr) call check_mpi(ierr, 'MPI_Comm_size radiation') if (present(n_tasks)) then call radiation_task_bounds(rad, n_tasks) end if end subroutine radiation_mpi_initialize