35 #include "qrm_common.h" 59 real(kind(1.d0)),
intent(inout) :: b(:,:)
60 character(len=*),
intent(in) :: transp
62 integer :: nb, rhs_nthreads, nrhs, i, keeph
65 character(len=*),
parameter :: name=
'qrm_apply' 67 call qrm_err_act_save(err_act)
70 if(.not. qrm_mat%fdata%ok)
then 71 call qrm_err_push(14,
'qrm_apply')
75 call qrm_get(qrm_mat,
'qrm_keeph', keeph)
77 call qrm_err_push(30,
'qrm_apply')
82 call qrm_get(qrm_mat,
'qrm_rhsnb', nb)
83 call qrm_get(qrm_mat,
'qrm_rhsnthreads', rhs_nthreads)
88 call omp_set_nested(.true.)
97 __qrm_check_ret(name,
'qrm_apply_qt',9999)
105 __qrm_check_ret(name,
'qrm_apply_q',9999)
109 call omp_set_nested(.false.)
112 call qrm_err_act_restore(err_act)
116 call qrm_err_act_restore(err_act)
117 if(err_act .eq. qrm_abort_)
then 145 real(kind(1.d0)),
intent(inout) :: b(:)
146 character(len=*),
intent(in) :: transp
148 real(kind(1.d0)),
pointer :: pnt(:,:)
152 character(len=*),
parameter :: name=
'qrm_apply1d' 154 call qrm_err_act_save(err_act)
157 if( qrm_mat%fdata%done .eq. 0)
then 158 call qrm_err_push(14,
'qrm_apply1d')
162 call qrm_get(qrm_mat,
'qrm_keeph', keeph)
164 call qrm_err_push(30,
'qrm_apply')
175 __qrm_check_ret(name,
'qrm_apply_qt',9999)
178 __qrm_check_ret(name,
'qrm_apply_q',9999)
181 call qrm_err_act_restore(err_act)
185 call qrm_err_act_restore(err_act)
186 if(err_act .eq. qrm_abort_)
then This module contains generic interfaces for a number of auxiliary tools.
This module contains the interfaces of all non-typed routines.
subroutine dqrm_apply1d(qrm_mat, transp, b)
This function applies Q or Q^T to a single vector.
Generif interface for the ::dqrm_pgeti, ::dqrm_pgetr and.
subroutine dqrm_apply2d(qrm_mat, transp, b)
This function applies Q or Q^T to a set of vectors.
Generic interface for the ::dqrm_apply_q routine.
This module contains the definition of the basic sparse matrix type and of the associated methods...
Generic interface for the ::dqrm_apply_qt routine.
This type defines the data structure used to store a matrix.
subroutine dqrm_remap_pnt(arr1d, pnt2d, n)
This function makes a 2D pointer point to a 1D array.
This module contains all the interfaces for the typed routines in the solve phase.
This module contains various string handling routines.