auto_get_start_count Subroutine

public subroutine auto_get_start_count(rank, nioprocs, block_dims, start, count, bsize, data_dims)

Uses

@brief subroutine that, given a global grid, VDC blocksize, and max # of nioprocs, will automatically create an VDC optimized IO decomposition that uses the most possible IO tasks POST-EFFECTS:
Each MPI Task is now either and IO task or a computational task. IO tasks have nonzero start/counts @param[in] rank int rank of the current MPI task @param[inout] nioprocs int represents the max possible # of IO procs, @algorithm will try to get as close as possible to this # and return it in nioprocs @param[in] blockdims int(3) global grid dimensions represented as VDC blocks @param[out] start int(3) iostart for the current MPI task @param[out] count int(3) iocount for the current MPI task @param[in] bsize int(3) VDC block size

Arguments

Type IntentOptional Attributes Name
integer(kind=i4), intent(in) :: rank
integer(kind=i4), intent(inout) :: nioprocs
real(kind=r4), intent(in), dimension(:) :: block_dims
integer(kind=PIO_OFFSET), intent(out) :: start(3)
integer(kind=PIO_OFFSET), intent(out) :: count(3)
integer(kind=i4), intent(in), dimension(:) :: bsize
integer(kind=i4), intent(in), dimension(:) :: data_dims