Api for different sparse matrix solvers
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=I4), | public, | parameter | :: | MA48 | = | 0 | code for Ma48 solver type  | 
  
| integer(kind=I4), | public, | parameter | :: | SULU | = | 1 | code for SUPER LU solver type  | 
  
| integer(kind=I4), | public, | parameter | :: | MUMP | = | 2 | code for MUMPS solver type  | 
  
| integer(kind=I4), | public, | parameter | :: | UMFP | = | 3 | code for UMFPACK solver type  | 
  
| integer(kind=I4), | public | :: | SOLVER_BS | = | -1 | solver used for bottom scale grids [not used by the present module]  | 
  
|
| integer(kind=I4), | public | :: | SOLVER_TS | = | -1 | solver used for top scale grids [not used by the present module]  | 
  
All the stuff needed by HSL_MA48
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(ZD11_TYPE), | public | :: | zmat | ||||
| type(MA48_CONTROL), | public | :: | ctrl | ||||
| type(MA48_AINFO), | public | :: | ainf | ||||
| type(MA48_FINFO), | public | :: | finf | ||||
| type(MA48_SINFO), | public | :: | sinf | ||||
| type(MA48_FACTORS), | public | :: | fact | ||||
| integer(kind=I4), | public | :: | fast | ||||
| real(kind=R8), | public, | dimension(2) | :: | resid | 
All the stuff needed by UMFPACK
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(c_ptr), | public | :: | c_symbolic | ||||
| type(c_ptr), | public | :: | c_numeric | ||||
| real(kind=R8), | public, | dimension(0:UMFPACK_CONTROL-1) | :: | c_control | |||
| real(kind=R8), | public, | dimension(0:UMFPACK_INFO -1) | :: | c_info | 
MUSST high level system type
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=I4), | public | :: | slv_t | solver type  | 
  
|||
| logical(kind=I4), | public | :: | first | = | .true. | analysis of the system to be done?  | 
  
|
| integer(kind=I4), | public | :: | nn | number of nodes  | 
  
|||
| integer(kind=I4), | public | :: | ne | number of elements  | 
  
|||
| integer(kind=I4), | public | :: | nt | number of a priori non-zero terms in the matrix  | 
  
|||
| integer(kind=I4), | public | :: | nz | number of non-zero terms in the matrix  | 
  
|||
| integer(kind=I4), | public | :: | nvar | eltvar length ( if 4-nodes elt -> 2 lines X number of elemental matrices)  | 
  
|||
| integer(kind=I4), | public | :: | code | error code [not used yet]  | 
  
|||
| real(kind=R8), | public | :: | error | error value [not used yet]  | 
  
|||
| character(len=1024), | public | :: | mess | message [not used yet]  | 
  
|||
| type(MAT_MUMP), | public | :: | matmump | matrices for mumps solver  | 
  
|||
| type(MAT_MA48), | public | :: | matma48 | matrices for ma48 solver  | 
  
|||
| type(MAT_SULU), | public | :: | matsulu | matrices for SuperLu solver  | 
  
|||
| type(MAT_UMFP), | public | :: | matumfp | matrices for Umfpack solver  | 
  
|||
| integer(kind=I4), | public, | dimension(:), allocatable | :: | eltvar | rows in assembled matrix  | 
  
||
| integer(kind=I4), | public, | dimension(:), allocatable | :: | eltptr | element rows pointer  | 
  
||
| real(kind=R8), | public, | dimension(:), allocatable | :: | a_elt | unassembled rigidity matrix  | 
  
||
| integer(kind=I4), | public, | dimension(:), allocatable | :: | irow | line number  | 
  
||
| integer(kind=I4), | public, | dimension(:), allocatable | :: | jcol | column number  | 
  
||
| integer(kind=I4), | public, | dimension(:), allocatable | :: | jptr | line pointer  | 
  
||
| real(kind=R8), | public, | dimension(:), allocatable | :: | b | right hand side vector  | 
  
||
| real(kind=R8), | public, | dimension(:), allocatable | :: | x | unknwon vector  | 
  
MUSST multiscale high level solver type
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(MAT_SOLV), | public | :: | ts_mat | top-scale solver type matrices  | 
  
|||
| type(MAT_SOLV), | public, | dimension(:), allocatable | :: | bs_mat | bottom-scale solver type matrices (table)  | 
  
||
| integer(kind=I4), | public, | dimension(:), allocatable | :: | ass_loc_in_mat | table for assembly location (for parallel computation)  | 
  
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MAT_SOLV), | intent(inout) | :: | mat | high level system type  | 
  
||
| character(len=*), | intent(in) | :: | step | 'ini'=initialize, 'ana'=analyze, 'fac'=factorize, 'sol'=solve, 'fre'=free memory, 'end'=close solver  | 
  
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MAT_SOLV), | intent(inout) | :: | mat | high level system type  | 
  
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MAT_SOLV), | intent(inout), | target | :: | mat | high level system type  | 
  
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MAT_SOLV), | intent(inout) | :: | mat | high level system type  | 
  
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MAT_SOLV), | intent(inout), | target | :: | mat | high level system type  | 
  
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MAT_SOLV), | intent(inout) | :: | mat | high level system type  | 
  
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MAT_SOLV), | intent(inout) | :: | mat | high level system type  | 
  
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MAT_SOLV), | intent(inout), | target | :: | mat | high level system type  | 
  
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MAT_SOLV), | intent(inout), | target | :: | mat | high level system type  |