A SuperLU wrapper
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=4), | private, | parameter | :: | I4 | = | 4 | |
integer(kind=4), | private, | parameter | :: | R4 | = | 4 | |
integer(kind=4), | private, | parameter | :: | R8 | = | 8 |
enumerator | :: | NOTRANS | = | 0 | |
enumerator | :: | TRANS | = | 1 | |
enumerator | :: | CONJ | = | 2 |
enumerator | :: | DOFACT | = | 0 | |
enumerator | :: | SAMEPATTERN | = | 1 | |
enumerator | :: | SAMEPATTERN_SAMEROWPERM | = | 2 | |
enumerator | :: | FACTORED | = | 3 |
enumerator | :: | SLU_NC | = | 0 | column-wise, no supernode |
enumerator | :: | SLU_NCP | = | 1 | column-wise, column-permuted, no supernode |
enumerator | :: | SLU_NR | = | 2 | row-wize, no supernode |
enumerator | :: | SLU_SC | = | 3 | column-wise, supernode |
enumerator | :: | SLU_SCP | = | 4 | supernode, column-wise, permuted |
enumerator | :: | SLU_SR | = | 5 | row-wise, supernode |
enumerator | :: | SLU_DN | = | 6 | Fortran style column-wise storage for dense matrix |
enumerator | :: | SLU_NR_loc | = | 7 | distributed compressed row format |
enumerator | :: | SLU_S | = | 0 | single |
enumerator | :: | SLU_D | = | 1 | double |
enumerator | :: | SLU_C | = | 2 | single complex |
enumerator | :: | SLU_Z | = | 3 | double complex |
enumerator | :: | SLU_GE | = | 0 | general |
enumerator | :: | SLU_TRLU | = | 1 | lower triangular, unit diagonal |
enumerator | :: | SLU_TRUU | = | 2 | upper triangular, unit diagonal |
enumerator | :: | SLU_TRL | = | 3 | lower triangular |
enumerator | :: | SLU_TRU | = | 4 | upper triangular |
enumerator | :: | SLU_SYL | = | 5 | symmetric, store lower half |
enumerator | :: | SLU_SYU | = | 6 | symmetric, store upper half |
enumerator | :: | SLU_HEL | = | 7 | Hermitian, store lower half |
enumerator | :: | SLU_HEU | = | 8 | Hermitian, store upper half |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SUPERMATRIX), | intent(in) | :: | A |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SUPERMATRIX), | intent(in) | :: | A |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SUPERMATRIX), | intent(in) | :: | A |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SUPERMATRIX), | intent(in) | :: | A |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SUPERLUSTAT_T), | intent(out) | :: | stat |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SUPERLUSTAT_T), | intent(in) | :: | stat |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SUPERMATRIX), | intent(out) | :: | A | |||
integer(kind=C_INT), | intent(in), | value | :: | m | ||
integer(kind=C_INT), | intent(in), | value | :: | n | ||
integer(kind=C_INT), | intent(in), | value | :: | nnz | ||
real(kind=C_DOUBLE), | intent(in) | :: | nzval(*) | |||
integer(kind=C_INT), | intent(in) | :: | rowind(*) | |||
integer(kind=C_INT), | intent(in) | :: | colptr(*) | |||
integer(kind=C_INT), | intent(in), | value | :: | stype | ||
integer(kind=C_INT), | intent(in), | value | :: | dtype | ||
integer(kind=C_INT), | intent(in), | value | :: | mtype |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SUPERMATRIX), | intent(out) | :: | BX | |||
integer(kind=C_INT), | intent(in), | value | :: | m | ||
integer(kind=C_INT), | intent(in), | value | :: | n | ||
real(kind=C_DOUBLE), | intent(in) | :: | x(*) | |||
integer(kind=C_INT), | intent(in), | value | :: | ldx | ||
integer(kind=C_INT), | intent(in), | value | :: | stype | ||
integer(kind=C_INT), | intent(in), | value | :: | dtype | ||
integer(kind=C_INT), | intent(in), | value | :: | mtype |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SUPERLU_OPTIONS_T), | intent(inout) | :: | options |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SUPERLU_OPTIONS_T), | intent(in) | :: | options | |||
type(SUPERMATRIX), | intent(inout) | :: | A | |||
integer(kind=C_INT), | intent(inout) | :: | perm_c(*) | |||
integer(kind=C_INT), | intent(inout) | :: | perm_r(*) | |||
integer(kind=C_INT), | intent(inout) | :: | etree(*) | |||
character(kind=C_CHAR), | intent(inout) | :: | equed(*) | |||
real(kind=C_DOUBLE), | intent(inout) | :: | R(*) | |||
real(kind=C_DOUBLE), | intent(inout) | :: | C(*) | |||
type(SUPERMATRIX), | intent(inout) | :: | L | |||
type(SUPERMATRIX), | intent(inout) | :: | U | |||
type(C_PTR), | intent(out) | :: | work | |||
integer(kind=C_INT), | intent(in), | value | :: | lwork | ||
type(SUPERMATRIX), | intent(inout) | :: | B | |||
type(SUPERMATRIX), | intent(out) | :: | X | |||
real(kind=C_DOUBLE), | intent(out) | :: | recip_pivot_growth(*) | |||
real(kind=C_DOUBLE), | intent(out) | :: | rcond(*) | |||
real(kind=C_DOUBLE), | intent(out) | :: | ferr(*) | |||
real(kind=C_DOUBLE), | intent(out) | :: | berr(*) | |||
type(GLOBALLU_T), | intent(inout) | :: | Glu | |||
type(MEM_USAGE_T), | intent(out) | :: | mem_usage | |||
type(SUPERLUSTAT_T), | intent(out) | :: | stat | |||
integer(kind=C_INT), | intent(out) | :: | info |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SUPERLUSTAT_T), | intent(in) | :: | stat |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=C_INT), | public | :: | size | ||||
integer(kind=C_INT), | public | :: | used | ||||
integer(kind=C_INT), | public | :: | top1 | ||||
integer(kind=C_INT), | public | :: | top2 | ||||
type(C_PTR), | public | :: | array |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=C_INT), | public | :: | size | ||||
type(C_PTR), | public | :: | mem |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=C_INT), | public | :: | xsup | ||||
integer(kind=C_INT), | public | :: | supno | ||||
integer(kind=C_INT), | public | :: | lsub | ||||
integer(kind=C_INT), | public | :: | xlsub | ||||
type(C_PTR), | public | :: | lusup | ||||
integer(kind=C_INT), | public | :: | xlusup | ||||
type(C_PTR), | public | :: | ucol | ||||
integer(kind=C_INT), | public | :: | usub | ||||
integer(kind=C_INT), | public | :: | xusub | ||||
integer(kind=C_INT), | public | :: | nzlmax | ||||
integer(kind=C_INT), | public | :: | nzumax | ||||
integer(kind=C_INT), | public | :: | nzlumax | ||||
integer(kind=C_INT), | public | :: | MemModel | = | 0 | ||
integer(kind=C_INT), | public | :: | num_expansions | ||||
type(EXPHEADER), | public | :: | expanders | ||||
type(LU_STACK_T), | public | :: | stack |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(C_PTR), | public | :: | panel_histo | histogram of panel size distribution |
|||
type(C_PTR), | public | :: | utime | running time at various phases |
|||
type(C_PTR), | public | :: | ops | operation count at various phases |
|||
integer(kind=C_INT), | public | :: | TinyPivots | number of tiny pivots |
|||
integer(kind=C_INT), | public | :: | RefineSteps | number of iterative refinement steps |
|||
integer(kind=C_INT), | public | :: | expansions | number of memory expansions |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=C_FLOAT), | public | :: | for_lu | ||||
real(kind=C_FLOAT), | public | :: | total_needed |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=C_INT), | public | :: | nnz | number of nonzeros in the matrix |
|||
type(C_PTR), | public | :: | nzval | pointer to array of nonzero values, packed by column |
|||
type(C_PTR), | public | :: | rowind | pointer to array of row indices of the nonzeros |
|||
type(C_PTR), | public | :: | colptr | pointer to array of beginning of columns in nzval[] and rowind[] |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=C_INT), | public | :: | Stype | Storage type: interprets the storage structure pointed to by Store |
|||
integer(kind=C_INT), | public | :: | Dtype | Data type |
|||
integer(kind=C_INT), | public | :: | Mtype | Matrix type: describes the mathematical property of the matrix |
|||
integer(kind=C_INT), | public | :: | nrow | number of rows |
|||
integer(kind=C_INT), | public | :: | ncol | number of columns |
|||
type(C_PTR), | public | :: | Store | pointer to the actual storage of the matrix, here, pointer to NCFORMAT |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=C_INT), | public | :: | Fact | ||||
integer(kind=C_INT), | public | :: | Equil | ||||
integer(kind=C_INT), | public | :: | ColPerm | ||||
integer(kind=C_INT), | public | :: | Trans | ||||
integer(kind=C_INT), | public | :: | IterRefine | ||||
real(kind=C_DOUBLE), | public | :: | DiagPivotThresh | ||||
integer(kind=C_INT), | public | :: | SymmetricMode | ||||
integer(kind=C_INT), | public | :: | PivotGrowth | ||||
integer(kind=C_INT), | public | :: | ConditionNumber | ||||
integer(kind=C_INT), | public | :: | RowPerm | ||||
integer(kind=C_INT), | public | :: | ILU_DropRule | ||||
real(kind=C_DOUBLE), | public | :: | ILU_DropTol | ||||
real(kind=C_DOUBLE), | public | :: | ILU_FillFactor | ||||
integer(kind=C_INT), | public | :: | ILU_Norm | ||||
real(kind=C_DOUBLE), | public | :: | ILU_FillTol | ||||
integer(kind=C_INT), | public | :: | ILU_MILU | ||||
real(kind=C_DOUBLE), | public | :: | ILU_MILU_Dim | ||||
integer(kind=C_INT), | public | :: | ParSymbFact | ||||
integer(kind=C_INT), | public | :: | ReplaceTinyPivot | ||||
integer(kind=C_INT), | public | :: | SolveInitialized | ||||
integer(kind=C_INT), | public | :: | RefineInitialized | ||||
integer(kind=C_INT), | public | :: | PrintStat | ||||
integer(kind=C_INT), | public | :: | nnzL | used to store nnzs for now |
|||
integer(kind=C_INT), | public | :: | nnzU | used to store nnzs for now |
|||
integer(kind=C_INT), | public | :: | num_lookaheads | num of levels in look-ahead |
|||
integer(kind=C_INT), | public | :: | lookahead_etree | use etree computed from the serial symbolic factorization |
|||
integer(kind=C_INT), | public | :: | SymPattern | symmetric factorization |
Global type for SuperLU which covers all the stuff needed
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=C_INT), | public | :: | n | system size |
|||
integer(kind=C_INT), | public | :: | nrhs | number of right hand sides |
|||
integer(kind=C_INT), | public | :: | nz | number on non-zero entries |
|||
integer(kind=C_INT), | public | :: | info | info returned by dgssvx |
|||
integer(kind=C_INT), | public | :: | lwork | size of workspace, not used here |
|||
logical(kind=I4), | public | :: | first | if |
|||
real(kind=R8), | public, | dimension(:), pointer | :: | b | right hand side: points to b |
||
real(kind=R8), | public, | allocatable, dimension(:) | :: | x | solution |
||
real(kind=R8), | public, | dimension(:), pointer | :: | a_elt | CC system matrix: points to a_elt |
||
integer(kind=I4), | public, | dimension(:), pointer | :: | irow | matrix line of an a_elt element: points to irow |
||
integer(kind=I4), | public, | dimension(:), pointer | :: | jptr | matrix column pointers: points to jptr |
||
real(kind=C_DOUBLE), | public, | allocatable, dimension(:) | :: | ferr | estimated forward error bound for each solution vector |
||
real(kind=C_DOUBLE), | public, | allocatable, dimension(:) | :: | berr | componentwise relative backward error of each solution |
||
real(kind=C_DOUBLE), | public, | allocatable, dimension(:) | :: | RR | *row scale factors for A * |
||
real(kind=C_DOUBLE), | public, | allocatable, dimension(:) | :: | CC | column scale factors for A |
||
real(kind=C_DOUBLE), | public, | allocatable, dimension(:) | :: | rpg | reciprocal pivot growth factor |
||
real(kind=C_DOUBLE), | public, | allocatable, dimension(:) | :: | rcond | estimate of the reciprocal condition number of the matrix A |
||
integer(kind=C_INT), | public, | allocatable, dimension(:) | :: | perm_c | If A->Stype = |
||
integer(kind=C_INT), | public, | allocatable, dimension(:) | :: | perm_r | If A->Stype = |
||
integer(kind=C_INT), | public, | allocatable, dimension(:) | :: | etree | Elimination tree |
||
character(kind=len=1,C_CHAR), | public | :: | equed | form of equilibration |
|||
type(C_PTR), | public | :: | work | User supplied workspace |
|||
type(SUPERLU_OPTIONS_T), | public | :: | options | LU controls |
|||
type(SUPERMATRIX), | public | :: | sma | Matrix A in AX=B* |
|||
type(SUPERMATRIX), | public | :: | smb | On entry, the right hand side matrix |
|||
type(SUPERMATRIX), | public | :: | smx | olution matrix to the original system |
|||
type(SUPERMATRIX), | public | :: | sml | factor L from the factorization |
|||
type(SUPERMATRIX), | public | :: | smu | factor U from the factorization |
|||
type(SUPERLUSTAT_T), | public | :: | stat | statistics on runtime and floating-point operation count |
|||
type(GLOBALLU_T), | public | :: | Glu | first, an output with the whole stuff LU; next, an input for other resolutions with same sparsity |
|||
type(MEM_USAGE_T), | public | :: | mem_usage | memory usage statistics |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SULU_ENV), | intent(inout) | :: | sulu | |||
logical(kind=I4), | intent(in) | :: | verbose |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=R8), | intent(inout), | dimension(:) | :: | sol_x | ||
type(SULU_ENV), | intent(inout) | :: | sulu | |||
logical(kind=I4), | intent(in) | :: | verbose |