Cyclic partition of the work of a dispersion calculation.
Parts are zero based. Every unit of work is assigned to exactly one part, summing the energy and derivative contributions of all parts reproduces the complete result. An absent partition owns all of the work.
type :: work_partition private !> Zero-based index of this part integer :: part = 0 !> Total number of parts integer :: nparts = 1 end type work_partition