You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
amg4psblas/mlprec/impl/solver/mld_z_diag_solver_apply_vec...

76 lines
2.1 KiB
Fortran

mld2p4-2: mlprec/impl/Makefile mlprec/impl/SMOOTHER mlprec/impl/SMOOTHER/Makefile mlprec/impl/SMOOTHER/mld_c_as_smoother_apply.f90 mlprec/impl/SMOOTHER/mld_c_as_smoother_apply_vect.f90 mlprec/impl/SMOOTHER/mld_c_as_smoother_bld.f90 mlprec/impl/SMOOTHER/mld_c_as_smoother_check.f90 mlprec/impl/SMOOTHER/mld_c_as_smoother_dmp.f90 mlprec/impl/SMOOTHER/mld_c_as_smoother_free.f90 mlprec/impl/SMOOTHER/mld_c_as_smoother_setc.f90 mlprec/impl/SMOOTHER/mld_c_as_smoother_seti.f90 mlprec/impl/SMOOTHER/mld_c_as_smoother_setr.f90 mlprec/impl/SMOOTHER/mld_c_base_smoother_apply.f90 mlprec/impl/SMOOTHER/mld_c_base_smoother_apply_vect.f90 mlprec/impl/SMOOTHER/mld_c_base_smoother_bld.f90 mlprec/impl/SMOOTHER/mld_c_base_smoother_check.f90 mlprec/impl/SMOOTHER/mld_c_base_smoother_descr.f90 mlprec/impl/SMOOTHER/mld_c_base_smoother_dmp.f90 mlprec/impl/SMOOTHER/mld_c_base_smoother_free.f90 mlprec/impl/SMOOTHER/mld_c_base_smoother_setc.f90 mlprec/impl/SMOOTHER/mld_c_base_smoother_seti.f90 mlprec/impl/SMOOTHER/mld_c_base_smoother_setr.f90 mlprec/impl/SMOOTHER/mld_c_jac_smoother_apply.f90 mlprec/impl/SMOOTHER/mld_c_jac_smoother_apply_vect.f90 mlprec/impl/SMOOTHER/mld_c_jac_smoother_bld.f90 mlprec/impl/SMOOTHER/mld_d_as_smoother_apply.f90 mlprec/impl/SMOOTHER/mld_d_as_smoother_apply_vect.f90 mlprec/impl/SMOOTHER/mld_d_as_smoother_bld.f90 mlprec/impl/SMOOTHER/mld_d_as_smoother_check.f90 mlprec/impl/SMOOTHER/mld_d_as_smoother_dmp.f90 mlprec/impl/SMOOTHER/mld_d_as_smoother_free.f90 mlprec/impl/SMOOTHER/mld_d_as_smoother_setc.f90 mlprec/impl/SMOOTHER/mld_d_as_smoother_seti.f90 mlprec/impl/SMOOTHER/mld_d_as_smoother_setr.f90 mlprec/impl/SMOOTHER/mld_d_base_smoother_apply.f90 mlprec/impl/SMOOTHER/mld_d_base_smoother_apply_vect.f90 mlprec/impl/SMOOTHER/mld_d_base_smoother_bld.f90 mlprec/impl/SMOOTHER/mld_d_base_smoother_check.f90 mlprec/impl/SMOOTHER/mld_d_base_smoother_descr.f90 mlprec/impl/SMOOTHER/mld_d_base_smoother_dmp.f90 mlprec/impl/SMOOTHER/mld_d_base_smoother_free.f90 mlprec/impl/SMOOTHER/mld_d_base_smoother_setc.f90 mlprec/impl/SMOOTHER/mld_d_base_smoother_seti.f90 mlprec/impl/SMOOTHER/mld_d_base_smoother_setr.f90 mlprec/impl/SMOOTHER/mld_d_jac_smoother_apply.f90 mlprec/impl/SMOOTHER/mld_d_jac_smoother_apply_vect.f90 mlprec/impl/SMOOTHER/mld_d_jac_smoother_bld.f90 mlprec/impl/SMOOTHER/mld_s_as_smoother_apply.f90 mlprec/impl/SMOOTHER/mld_s_as_smoother_apply_vect.f90 mlprec/impl/SMOOTHER/mld_s_as_smoother_bld.f90 mlprec/impl/SMOOTHER/mld_s_as_smoother_check.f90 mlprec/impl/SMOOTHER/mld_s_as_smoother_dmp.f90 mlprec/impl/SMOOTHER/mld_s_as_smoother_free.f90 mlprec/impl/SMOOTHER/mld_s_as_smoother_setc.f90 mlprec/impl/SMOOTHER/mld_s_as_smoother_seti.f90 mlprec/impl/SMOOTHER/mld_s_as_smoother_setr.f90 mlprec/impl/SMOOTHER/mld_s_base_smoother_apply.f90 mlprec/impl/SMOOTHER/mld_s_base_smoother_apply_vect.f90 mlprec/impl/SMOOTHER/mld_s_base_smoother_bld.f90 mlprec/impl/SMOOTHER/mld_s_base_smoother_check.f90 mlprec/impl/SMOOTHER/mld_s_base_smoother_descr.f90 mlprec/impl/SMOOTHER/mld_s_base_smoother_dmp.f90 mlprec/impl/SMOOTHER/mld_s_base_smoother_free.f90 mlprec/impl/SMOOTHER/mld_s_base_smoother_setc.f90 mlprec/impl/SMOOTHER/mld_s_base_smoother_seti.f90 mlprec/impl/SMOOTHER/mld_s_base_smoother_setr.f90 mlprec/impl/SMOOTHER/mld_s_jac_smoother_apply.f90 mlprec/impl/SMOOTHER/mld_s_jac_smoother_apply_vect.f90 mlprec/impl/SMOOTHER/mld_s_jac_smoother_bld.f90 mlprec/impl/SMOOTHER/mld_z_as_smoother_apply.f90 mlprec/impl/SMOOTHER/mld_z_as_smoother_apply_vect.f90 mlprec/impl/SMOOTHER/mld_z_as_smoother_bld.f90 mlprec/impl/SMOOTHER/mld_z_as_smoother_check.f90 mlprec/impl/SMOOTHER/mld_z_as_smoother_dmp.f90 mlprec/impl/SMOOTHER/mld_z_as_smoother_free.f90 mlprec/impl/SMOOTHER/mld_z_as_smoother_setc.f90 mlprec/impl/SMOOTHER/mld_z_as_smoother_seti.f90 mlprec/impl/SMOOTHER/mld_z_as_smoother_setr.f90 mlprec/impl/SMOOTHER/mld_z_base_smoother_apply.f90 mlprec/impl/SMOOTHER/mld_z_base_smoother_apply_vect.f90 mlprec/impl/SMOOTHER/mld_z_base_smoother_bld.f90 mlprec/impl/SMOOTHER/mld_z_base_smoother_check.f90 mlprec/impl/SMOOTHER/mld_z_base_smoother_descr.f90 mlprec/impl/SMOOTHER/mld_z_base_smoother_dmp.f90 mlprec/impl/SMOOTHER/mld_z_base_smoother_free.f90 mlprec/impl/SMOOTHER/mld_z_base_smoother_setc.f90 mlprec/impl/SMOOTHER/mld_z_base_smoother_seti.f90 mlprec/impl/SMOOTHER/mld_z_base_smoother_setr.f90 mlprec/impl/SMOOTHER/mld_z_jac_smoother_apply.f90 mlprec/impl/SMOOTHER/mld_z_jac_smoother_apply_vect.f90 mlprec/impl/SMOOTHER/mld_z_jac_smoother_bld.f90 mlprec/impl/SOLVER mlprec/impl/SOLVER/Makefile mlprec/impl/SOLVER/mld_c_base_solver_apply.f90 mlprec/impl/SOLVER/mld_c_base_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_c_base_solver_bld.f90 mlprec/impl/SOLVER/mld_c_base_solver_check.f90 mlprec/impl/SOLVER/mld_c_base_solver_descr.f90 mlprec/impl/SOLVER/mld_c_base_solver_dmp.f90 mlprec/impl/SOLVER/mld_c_base_solver_free.f90 mlprec/impl/SOLVER/mld_c_base_solver_setc.f90 mlprec/impl/SOLVER/mld_c_base_solver_seti.f90 mlprec/impl/SOLVER/mld_c_base_solver_setr.f90 mlprec/impl/SOLVER/mld_c_diag_solver_apply.f90 mlprec/impl/SOLVER/mld_c_diag_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_c_diag_solver_bld.f90 mlprec/impl/SOLVER/mld_c_id_solver_apply.f90 mlprec/impl/SOLVER/mld_c_id_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_c_ilu_solver_apply.f90 mlprec/impl/SOLVER/mld_c_ilu_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_c_ilu_solver_bld.f90 mlprec/impl/SOLVER/mld_c_ilu_solver_dmp.f90 mlprec/impl/SOLVER/mld_d_base_solver_apply.f90 mlprec/impl/SOLVER/mld_d_base_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_d_base_solver_bld.f90 mlprec/impl/SOLVER/mld_d_base_solver_check.f90 mlprec/impl/SOLVER/mld_d_base_solver_descr.f90 mlprec/impl/SOLVER/mld_d_base_solver_dmp.f90 mlprec/impl/SOLVER/mld_d_base_solver_free.f90 mlprec/impl/SOLVER/mld_d_base_solver_setc.f90 mlprec/impl/SOLVER/mld_d_base_solver_seti.f90 mlprec/impl/SOLVER/mld_d_base_solver_setr.f90 mlprec/impl/SOLVER/mld_d_diag_solver_apply.f90 mlprec/impl/SOLVER/mld_d_diag_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_d_diag_solver_bld.f90 mlprec/impl/SOLVER/mld_d_id_solver_apply.f90 mlprec/impl/SOLVER/mld_d_id_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_d_ilu_solver_apply.f90 mlprec/impl/SOLVER/mld_d_ilu_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_d_ilu_solver_bld.f90 mlprec/impl/SOLVER/mld_d_ilu_solver_dmp.f90 mlprec/impl/SOLVER/mld_s_base_solver_apply.f90 mlprec/impl/SOLVER/mld_s_base_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_s_base_solver_bld.f90 mlprec/impl/SOLVER/mld_s_base_solver_check.f90 mlprec/impl/SOLVER/mld_s_base_solver_descr.f90 mlprec/impl/SOLVER/mld_s_base_solver_dmp.f90 mlprec/impl/SOLVER/mld_s_base_solver_free.f90 mlprec/impl/SOLVER/mld_s_base_solver_setc.f90 mlprec/impl/SOLVER/mld_s_base_solver_seti.f90 mlprec/impl/SOLVER/mld_s_base_solver_setr.f90 mlprec/impl/SOLVER/mld_s_diag_solver_apply.f90 mlprec/impl/SOLVER/mld_s_diag_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_s_diag_solver_bld.f90 mlprec/impl/SOLVER/mld_s_id_solver_apply.f90 mlprec/impl/SOLVER/mld_s_id_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_s_ilu_solver_apply.f90 mlprec/impl/SOLVER/mld_s_ilu_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_s_ilu_solver_bld.f90 mlprec/impl/SOLVER/mld_s_ilu_solver_dmp.f90 mlprec/impl/SOLVER/mld_z_base_solver_apply.f90 mlprec/impl/SOLVER/mld_z_base_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_z_base_solver_bld.f90 mlprec/impl/SOLVER/mld_z_base_solver_check.f90 mlprec/impl/SOLVER/mld_z_base_solver_descr.f90 mlprec/impl/SOLVER/mld_z_base_solver_dmp.f90 mlprec/impl/SOLVER/mld_z_base_solver_free.f90 mlprec/impl/SOLVER/mld_z_base_solver_setc.f90 mlprec/impl/SOLVER/mld_z_base_solver_seti.f90 mlprec/impl/SOLVER/mld_z_base_solver_setr.f90 mlprec/impl/SOLVER/mld_z_diag_solver_apply.f90 mlprec/impl/SOLVER/mld_z_diag_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_z_diag_solver_bld.f90 mlprec/impl/SOLVER/mld_z_id_solver_apply.f90 mlprec/impl/SOLVER/mld_z_id_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_z_ilu_solver_apply.f90 mlprec/impl/SOLVER/mld_z_ilu_solver_apply_vect.f90 mlprec/impl/SOLVER/mld_z_ilu_solver_bld.f90 mlprec/impl/SOLVER/mld_z_ilu_solver_dmp.f90 Split implementation of solvers and smoothers
12 years ago
subroutine mld_z_diag_solver_apply_vect(alpha,sv,x,beta,y,desc_data,trans,work,info)
use psb_base_mod
use mld_z_diag_solver, mld_protect_name => mld_z_diag_solver_apply_vect
implicit none
type(psb_desc_type), intent(in) :: desc_data
class(mld_z_diag_solver_type), intent(inout) :: sv
type(psb_z_vect_type), intent(inout) :: x
type(psb_z_vect_type), intent(inout) :: y
complex(psb_dpk_),intent(in) :: alpha,beta
character(len=1),intent(in) :: trans
complex(psb_dpk_),target, intent(inout) :: work(:)
integer, intent(out) :: info
integer :: n_row,n_col
complex(psb_dpk_), pointer :: ww(:), aux(:), tx(:),ty(:)
integer :: ictxt,np,me,i, err_act
character :: trans_
character(len=20) :: name='z_diag_solver_apply'
call psb_erractionsave(err_act)
info = psb_success_
trans_ = psb_toupper(trans)
select case(trans_)
case('N')
case('T','C')
case default
call psb_errpush(psb_err_iarg_invalid_i_,name)
goto 9999
end select
n_row = desc_data%get_local_rows()
n_col = desc_data%get_local_cols()
if (x%get_nrows() < n_row) then
info = 36
call psb_errpush(info,name,i_err=(/2,n_row,0,0,0/))
goto 9999
end if
if (y%get_nrows() < n_row) then
info = 36
call psb_errpush(info,name,i_err=(/3,n_row,0,0,0/))
goto 9999
end if
if (.not.allocated(sv%dv)) then
info = 1124
call psb_errpush(info,name,a_err="preconditioner: D")
goto 9999
end if
if (sv%dv%get_nrows() < n_row) then
info = 1124
call psb_errpush(info,name,a_err="preconditioner: D")
goto 9999
end if
call y%mlt(alpha,sv%dv,x,beta,info,conjgx=trans_)
if (info /= psb_success_) then
call psb_errpush(psb_err_from_subroutine_,name,a_err='vect%mlt')
goto 9999
end if
call psb_erractionrestore(err_act)
return
9999 continue
call psb_erractionrestore(err_act)
if (err_act == psb_act_abort_) then
call psb_error()
return
end if
return
end subroutine mld_z_diag_solver_apply_vect