Returns the pattern that the columns must be partitioned on: the nonlinear elements plus the linear (constant) elements. The linear elements must be included, since the function still depends on those variables: two columns that share a row through a linear element cannot be perturbed together.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(sparsity_pattern), | intent(in) | :: | me | |||
| integer, | intent(out), | dimension(:), allocatable | :: | irow |
rows of the elements |
|
| integer, | intent(out), | dimension(:), allocatable | :: | icol |
columns of the elements |
subroutine get_partition_pattern(me,irow,icol) implicit none class(sparsity_pattern),intent(in) :: me integer,dimension(:),allocatable,intent(out) :: irow !! rows of the elements integer,dimension(:),allocatable,intent(out) :: icol !! columns of the elements if (allocated(me%irow)) then irow = me%irow icol = me%icol else allocate(irow(0), icol(0)) end if if (me%linear_sparsity_computed .and. allocated(me%linear_irow)) then irow = [irow, me%linear_irow] icol = [icol, me%linear_icol] end if end subroutine get_partition_pattern