36 #include "qrm_common.h"
61 _qrm_data,
intent(inout) :: b(:,:)
62 _qrm_data,
intent(out) :: x(:,:)
63 character(len=*) :: transp
65 integer ::
i, nb, nrhs, rhs_nthreads
68 character(len=*),
parameter :: name=
'qrm_solve'
72 if(.not. qrm_mat%fdata%ok)
then
81 call
qrm_get(qrm_mat,
'qrm_rhsnb', nb)
82 call
qrm_get(qrm_mat,
'qrm_rhsnthreads', rhs_nthreads)
93 __qrm_check_ret(name,
'qrm_solve_rt',9999)
97 call
qrm_solve_r(qrm_mat, b(:,
i:min(nrhs,
i+nb-1)), x(:,
i:min(nrhs,
i+nb-1)))
100 __qrm_check_ret(name,
'qrm_solve_r',9999)
108 if(err_act .eq. qrm_abort_)
then
140 _qrm_data,
intent(in) :: b(:)
141 _qrm_data,
intent(out) :: x(:)
142 character(len=*) :: transp
144 _qrm_data,
pointer :: pntb(:,:), pntx(:,:)
148 character(len=*),
parameter :: name=
'qrm_solve1d'
152 if( qrm_mat%fdata%done .eq. 0)
then
167 __qrm_check_ret(name,
'qrm_solve_rt',9999)
170 __qrm_check_ret(name,
'qrm_solve_r',9999)
178 if(err_act .eq. qrm_abort_)
then
This module contains all the error management routines and data.
This module contains the definition of all the data related to the factorization phase.
subroutine _qrm_remap_pnt(arr1d, pnt2d, n)
This function makes a 2D pointer point to a 1D array.
subroutine qrm_err_act_restore(err_act)
Restores the value of the qrm_err_act variable.
This module contains generic interfaces for a number of auxiliary tools.
subroutine qrm_err_check()
This subroutine checks the errors stack. If something is found all the entries in the stack are poppe...
subroutine _qrm_solve1d(qrm_mat, transp, b, x)
This function solves for R or R' against a single vector.
Generic interface for the ::_qrm_solve_r routine.
Generic interface for the ::_qrm_solve_rt routine.
This module contains all the interfaces for the typed routines in the solve phase.
This type defines the data structure used to store a matrix.
This module contains the definition of the basic sparse matrix type and of the associated methods...
Generif interface for the ::_qrm_pgeti, ::_qrm_pgetr and.
This module contains various string handling routines.
subroutine _qrm_solve2d(qrm_mat, transp, b, x)
This function solves for R or R' against multiple vectors.
subroutine qrm_err_push(code, sub, ied, aed)
This subroutine pushes an error on top of the stack.
subroutine qrm_err_act_save(err_act)
Saves a copy of the qrm_err_act variable.