DCREATE_ILU_SDIA (a, ia, ndim, nz, p, ip, n)
a real*8 On entry, a two-dimensional array with dimensions ndim by nz containing the nonzero elements of the matrix A. On exit, a is unchanged. ia integer*4 On entry, a one-dimensional array of length at least nz, containing the distances of the diagonals from the main diagonal. On exit, ia is unchanged. ndim integer*4 On entry, the leading dimension of array A, as declared in the calling subprogram; ndim >= n. On exit, ndim is unchanged. nz integer*4 On entry, the number of diagonals stored in array A. On exit, nz is unchanged. p real*8 On entry, a two-dimensional array with dimensions ndim by nz. On exit, array P contains information used by the Incomplete Cholesky preconditioner. ip integer*4 On entry, a one-dimensional array of length at least nz. On exit, IP contains information for the Incomplete Cholesky preconditioner. n integer*4 On entry, the order of the matrix A. On exit, n is unchanged.
DCREATE_ILU_SDIA computes the information required by the Incomplete Cholesky preconditioner for a sparse matrix stored using the symmetric diagonal storage scheme. The arrays P and IP contain the real and integer information, respectively, for use by the preconditioner. If the lower triangular part of the matrix A is stored, the decomposition is L * transp(L), where L is a lower triangular matrix. If the upper triangular part is stored, the decomposition is transp(U)*U, where U is an upper triangular matrix. The routine DCREATE_ILU_SDIA is called prior to a call to one of the iterative solver routines with Incomplete Cholesky preconditioning.