35 #include "qrm_common.h"
56 character,
optional,
intent(in) :: transp
58 integer ::
i, totnnz, info, h
59 real(kind(1.d0)) :: t1, t2
62 integer,
pointer :: tmp(:)
65 character(len=*),
parameter :: name=
'qrm_factorize'
69 __qrm_prnt_dbg(
'("Entering the factorization driver")')
72 if(.not. qrm_mat%adata%ok)
then
78 __qrm_check_ret(name,
'qrm_check_spmat',9999)
81 if(present(transp))
then
90 qrm_mat%irn => qrm_mat%jcn
95 #if defined(zprec) || defined(cprec)
96 qrm_mat%val = conjg(qrm_mat%val)
102 __qrm_check_ret(name,
'qrm_factorization_init',9998)
107 __qrm_check_ret(name,
'qrm_factorization_core',9998)
113 do i=1, qrm_mat%adata%nnodes
115 & qrm_mat%fdata%front_list(
i)%rsize
119 do i=1, qrm_mat%adata%nnodes
121 & qrm_mat%fdata%front_list(
i)%hsize
130 qrm_mat%irn => qrm_mat%jcn
133 qrm_mat%m = qrm_mat%n
135 #if defined(zprec) || defined(cprec)
136 qrm_mat%val = conjg(qrm_mat%val)
141 if(info .gt. 0) goto 9999
144 qrm_mat%fdata%ok = .true.
151 if(err_act .eq. qrm_abort_)
then
This module contains all the error management routines and data.
This module contains the interfaces of all non-typed routines.
subroutine qrm_err_act_restore(err_act)
Restores the value of the qrm_err_act variable.
subroutine qrm_err_get(info)
This subroutine return the code of the first error on the stack or zero if the stack is empty...
This module contains the definition of the basic sparse matrix type and of the associated methods...
This module contains generic interfaces for a number of auxiliary tools.
subroutine dqrm_factorization_core(qrm_mat)
This is the main factorization routine. It performs the factorization of all the fronts that have bee...
subroutine qrm_err_check()
This subroutine checks the errors stack. If something is found all the entries in the stack are poppe...
This module contains the definition of all the data related to the factorization phase.
This module contains all the generic interfaces for the typed routines in the factorization phase...
This type defines the data structure used to store a matrix.
subroutine dqrm_check_spmat(qrm_spmat, op)
Check the compatibility and correctness of icntl and rcntl parameters.
subroutine dqrm_factorization_init(qrm_mat)
This subroutine initializes the data structures needed for the actual factorization.
This type defines a data structure containing all the data related to a front.
This module contains various string handling routines.
subroutine qrm_err_push(code, sub, ied, aed)
This subroutine pushes an error on top of the stack.
subroutine dqrm_factorize(qrm_mat, transp)
This routine is the main factorization driver.
subroutine qrm_err_act_save(err_act)
Saves a copy of the qrm_err_act variable.