Converts virtual 1-D distribution to process and image
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nel | |||
integer, | intent(in), | DIMENSION(1:nel) | :: | vdist | ||
integer, | intent(in) | :: | nim | |||
integer, | intent(out), | DIMENSION(1:nel) | :: | pdist | ||
integer, | intent(out), | DIMENSION(1:nel) | :: | idist |
pure SUBROUTINE v_to_p_i_dist(nel, vdist, nim, pdist, idist)
!! Converts virtual 1-D distribution to process and image
INTEGER, INTENT(in) :: nel
INTEGER, DIMENSION(1:nel), INTENT(in) :: vdist
INTEGER, INTENT(in) :: nim
INTEGER, DIMENSION(1:nel), INTENT(out) :: pdist, idist
INTEGER :: i
DO i = 1, nel
pdist(i) = vdist(i)/nim
idist(i) = MOD(vdist(i), nim) + 1
END DO
END SUBROUTINE v_to_p_i_dist