Fix performance problem for RAS(0)

psblas3-type-indexed
Salvatore Filippone 20 years ago
parent 0f2594dcc5
commit 5c564d13d8

@ -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_,&

Loading…
Cancel
Save