|
|
@ -213,6 +213,16 @@ subroutine psb_dbaseprcaply(prec,x,beta,y,desc_data,trans,work,info)
|
|
|
|
|
|
|
|
|
|
|
|
case(asm_,ras_,ash_,rash_)
|
|
|
|
case(asm_,ras_,ash_,rash_)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (prec%iprcparm(n_ovr_)==0) then
|
|
|
|
|
|
|
|
! shortcut: this fixes performance for RAS(0) == BJA
|
|
|
|
|
|
|
|
call psb_dbjacaply(prec,x,beta,y,desc_data,trans,work,info)
|
|
|
|
|
|
|
|
if(info.ne.0) then
|
|
|
|
|
|
|
|
info=4010
|
|
|
|
|
|
|
|
ch_err='psb_bjacaply'
|
|
|
|
|
|
|
|
goto 9999
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
! Note: currently trans is unused.
|
|
|
|
! Note: currently trans is unused.
|
|
|
|
n_row=prec%desc_data%matrix_data(psb_n_row_)
|
|
|
|
n_row=prec%desc_data%matrix_data(psb_n_row_)
|
|
|
|
n_col=prec%desc_data%matrix_data(psb_n_col_)
|
|
|
|
n_col=prec%desc_data%matrix_data(psb_n_col_)
|
|
|
@ -264,6 +274,11 @@ subroutine psb_dbaseprcaply(prec,x,beta,y,desc_data,trans,work,info)
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
|
call psb_dbjacaply(prec,tx,zero,ty,prec%desc_data,trans,aux,info)
|
|
|
|
call psb_dbjacaply(prec,tx,zero,ty,prec%desc_data,trans,aux,info)
|
|
|
|
|
|
|
|
if(info.ne.0) then
|
|
|
|
|
|
|
|
info=4010
|
|
|
|
|
|
|
|
ch_err='psb_bjacaply'
|
|
|
|
|
|
|
|
goto 9999
|
|
|
|
|
|
|
|
end if
|
|
|
|
|
|
|
|
|
|
|
|
if (prec%iprcparm(iren_)>0) then
|
|
|
|
if (prec%iprcparm(iren_)>0) then
|
|
|
|
call dgelp('N',n_row,1,prec%invperm,ty,isz,ww,isz,info)
|
|
|
|
call dgelp('N',n_row,1,prec%invperm,ty,isz,ww,isz,info)
|
|
|
@ -316,7 +331,7 @@ subroutine psb_dbaseprcaply(prec,x,beta,y,desc_data,trans,work,info)
|
|
|
|
else
|
|
|
|
else
|
|
|
|
deallocate(ww,aux,tx,ty)
|
|
|
|
deallocate(ww,aux,tx,ty)
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
end if
|
|
|
|
case default
|
|
|
|
case default
|
|
|
|
write(0,*) 'Invalid PRE%PREC ',prec%iprcparm(p_type_),':',&
|
|
|
|
write(0,*) 'Invalid PRE%PREC ',prec%iprcparm(p_type_),':',&
|
|
|
|
& min_prec_,noprec_,diagsc_,bja_,&
|
|
|
|
& min_prec_,noprec_,diagsc_,bja_,&
|
|
|
|