DAPPLY_ILU_GENR_U (job, plu, iplu, jplu, nz, x, y, n)
job integer*4 On entry, defines the operation to be performed: job = 0 : y = inverse(U) * x job = 1 : y = inverse(transp(U)) * x where the incomplete factorization is calculated as L * U. L and U are lower and upper triangular matrices, respectively. On exit, job is unchanged. plu real*8 On entry, a one-dimensional array of length at least nz containing information used by the Incomplete LU preconditioner. On exit, plu is unchanged. iplu integer*4 On entry, a one-dimensional array of length at least n+1, containing the starting indices of each row in array PLU and JPLU. IPLU is identical to the array IA used in the storage of the matrix A. On exit, iplu is unchanged. jplu integer*4 On entry, a one dimensional array of length at least nz, containing the column values of each nonzero element of the matrix PLU, stored using the general storage by rows scheme. JPLU is identical to the array JA used in the storage of the matrix A in the general storage by rows scheme. On exit, jplu is unchanged. nz integer*4 On entry, the number of nonzero elements stored in array PLU. On exit, nz is unchanged. x real*8 On entry, a one-dimensional array of length at least n, containing the elements of vector x, accessed with unit increment. On exit, x is unchanged. y real*8 On entry, a one-dimensional array of length at least n. On exit, array Y is overwritten by the output vector y. The elements of array Y are accessed with unit increment. n integer*4 On entry, the order of the matrix A. On exit, n is unchanged.
DAPPLY_ILU_GENR_U applies the Incomplete LU preconditioner (upper triangular part) for a sparse matrix stored using the general storage by rows scheme. The input arrays, PLU, IPLU and JPLU, contain information for use by the routine. These arrays are generated by a call to the routine DCREATE_ILU_GENR prior to a call to one of the iterative solvers with Incomplete LU preconditioning. The information in the arrays IPLU and JPLU is identical to the information in the arrays IA and JA. Therefore, the routine DCREATE_ILU_GENR does not generate these arrays. Depending on the value of the input parameter job, DAPPLY_ILU_GENR_U operates on either the matrix or its transpose.