Note
Subroutine to factorize the system
note the directives:
DOFACT
0
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(SULU_ENV), | intent(inout) | :: | sulu | |||
logical(kind=I4), | intent(in) | :: | verbose |
subroutine fact_superlu(sulu, verbose) implicit none type(SULU_ENV), intent(inout) :: sulu logical(kind=I4), intent(in) :: verbose sulu%lwork = 0 call StatInit(sulu%stat) sulu%options%Fact = DOFACT sulu%SMB%ncol = 0 call dgssvx( options = sulu%options, & ! superlu_options_t *options A = sulu%SMA, & ! SuperMatrix *A perm_c = sulu%perm_c, & ! int *perm_c perm_r = sulu%perm_r, & ! int *perm_r etree = sulu%etree , & ! int *etree equed = sulu%equed, & ! char *equed R = sulu%RR, & ! double *R C = sulu%CC, & ! double *C L = sulu%SML, & ! SuperMatrix *L U = sulu%SMU, & ! SuperMatrix *U work = sulu%work, & ! void *work lwork = sulu%lwork, & ! int lwork B = sulu%SMB, & ! SuperMatrix *B X = sulu%SMX, & ! SuperMatrix *X recip_pivot_growth = sulu%rpg, & ! double *recip_pivot_growth rcond = sulu%rcond, & ! double *rcond ferr = sulu%ferr, & ! double *ferr berr = sulu%berr, & ! double *berr Glu = sulu%Glu, & ! GlobalLU_t *Glu mem_usage = sulu%mem_usage, & ! mem_usage_t *mem_usage stat = sulu%stat, & ! SuperLUStat_t *stat info = sulu%info & ! int *info ) if (verbose) call StatPrint(sulu%stat) call StatFree(sulu%stat) return endsubroutine fact_superlu