163 integer,
intent(in) :: nit,nunits,startpoint
164 integer,
allocatable,
intent(out) :: scheduling(:),looping(:,:)
165 integer :: i,nitcpu,resto
166 if (nit<=nunits)
then 167 write(*,*)
myrank,
": spredwork(): nit<=nunits" 168 write(*,*) nit,nunits
171 if (
allocated(scheduling) )
deallocate(scheduling)
172 if (
allocated(looping))
deallocate(looping)
173 allocate(scheduling(nunits),looping(nunits,2))
177 scheduling(:) = nitcpu
178 resto = mod(nit,nunits)
181 scheduling(1:resto) = scheduling(1:resto) + 1
182 looping(1,:) = [startpoint,startpoint+scheduling(1)-1]
184 looping(i,1) = sum(scheduling(1:i-1)) + startpoint
185 looping(i,2) = sum(scheduling(1:i)) + startpoint - 1
integer, public, protected myrank