parallel_merge_populations Subroutine

public subroutine parallel_merge_populations(pop)

Update neutral population

Arguments

TypeIntentOptionalAttributesName
type(NeutralPopulation), intent(inout) :: pop

Neutral Population


Calls

proc~~parallel_merge_populations~~CallsGraph proc~parallel_merge_populations parallel_merge_populations interface~parallel_sum parallel_sum proc~parallel_merge_populations->interface~parallel_sum proc~ind2sub ind2sub proc~parallel_merge_populations->proc~ind2sub proc~parallel_merge_reservoirs parallel_merge_reservoirs proc~parallel_merge_populations->proc~parallel_merge_reservoirs proc~parallel_sum_d1 parallel_sum_d1 interface~parallel_sum->proc~parallel_sum_d1 proc~parallel_sum_i2 parallel_sum_i2 interface~parallel_sum->proc~parallel_sum_i2 proc~parallel_sum_i3 parallel_sum_i3 interface~parallel_sum->proc~parallel_sum_i3 proc~parallel_sum_d2 parallel_sum_d2 interface~parallel_sum->proc~parallel_sum_d2 proc~parallel_sum_d4 parallel_sum_d4 interface~parallel_sum->proc~parallel_sum_d4 proc~parallel_sum_d5 parallel_sum_d5 interface~parallel_sum->proc~parallel_sum_d5 proc~parallel_sum_i1 parallel_sum_i1 interface~parallel_sum->proc~parallel_sum_i1 proc~parallel_sum_i0 parallel_sum_i0 interface~parallel_sum->proc~parallel_sum_i0 proc~parallel_sum_d3 parallel_sum_d3 interface~parallel_sum->proc~parallel_sum_d3 proc~parallel_sum_d0 parallel_sum_d0 interface~parallel_sum->proc~parallel_sum_d0 proc~parallel_merge_reservoirs->interface~parallel_sum proc~my_rank my_rank proc~parallel_merge_reservoirs->proc~my_rank proc~num_ranks num_ranks proc~parallel_merge_reservoirs->proc~num_ranks proc~merge_reservoirs merge_reservoirs proc~parallel_merge_reservoirs->proc~merge_reservoirs proc~init_reservoir init_reservoir proc~parallel_merge_reservoirs->proc~init_reservoir proc~parallel_sum_d1->proc~parallel_sum_d1 mpi_allreduce mpi_allreduce proc~parallel_sum_d1->mpi_allreduce proc~parallel_sum_i2->proc~parallel_sum_i1 proc~parallel_sum_i2->mpi_allreduce proc~parallel_sum_i3->proc~parallel_sum_i1 proc~parallel_sum_i3->mpi_allreduce proc~merge_reservoirs->proc~init_reservoir proc~update_reservoir update_reservoir proc~merge_reservoirs->proc~update_reservoir float float proc~merge_reservoirs->float interface~randu randu proc~merge_reservoirs->interface~randu proc~init_reservoir->interface~randu proc~parallel_sum_d2->proc~parallel_sum_d1 proc~parallel_sum_d2->mpi_allreduce proc~parallel_sum_d4->proc~parallel_sum_d1 proc~parallel_sum_d4->mpi_allreduce proc~parallel_sum_d5->proc~parallel_sum_d1 proc~parallel_sum_d5->mpi_allreduce proc~parallel_sum_i1->proc~parallel_sum_i1 proc~parallel_sum_i1->mpi_allreduce proc~parallel_sum_i0->mpi_allreduce proc~parallel_sum_d3->proc~parallel_sum_d1 proc~parallel_sum_d3->mpi_allreduce proc~parallel_sum_d0->mpi_allreduce proc~update_reservoir->proc~init_reservoir proc~update_reservoir->interface~randu interface~randind randind proc~update_reservoir->interface~randind

Called by

proc~~parallel_merge_populations~~CalledByGraph proc~parallel_merge_populations parallel_merge_populations proc~ndmc ndmc proc~ndmc->proc~parallel_merge_populations proc~halo halo proc~halo->proc~parallel_merge_populations proc~dcx dcx proc~dcx->proc~parallel_merge_populations program~fidasim fidasim program~fidasim->proc~ndmc program~fidasim->proc~halo program~fidasim->proc~dcx

Contents


Source Code

subroutine parallel_merge_populations(pop)
    !+Update neutral population
    type(NeutralPopulation), intent(inout)   :: pop
        !+ Neutral Population

    integer :: i, j, k, ic, ind(3)

    call parallel_sum(pop%dens)
    do ic=1,beam_grid%ngrid
        call ind2sub(beam_grid%dims,ic,ind)
        i = ind(1) ; j = ind(2) ; k = ind(3)
        call parallel_merge_reservoirs(pop%res(i,j,k))
    enddo

end subroutine parallel_merge_populations