Fixed level 1 initialization for additive multilevel.

stopcriterion
Salvatore Filippone 19 years ago
parent cbb43eece6
commit 3b08aae746

@ -260,13 +260,6 @@ subroutine mld_dmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info)
! !
! Apply the base preconditioner at the finest level ! Apply the base preconditioner at the finest level
! !
call mld_baseprec_aply(alpha,baseprecv(1),x,beta,y,&
& baseprecv(1)%base_desc,trans,work,info)
if (info /=0) then
call psb_errpush(4010,name,a_err='baseprec_aply')
goto 9999
end if
allocate(mlprec_wrk(1)%x2l(size(x)),mlprec_wrk(1)%y2l(size(y)), stat=info) allocate(mlprec_wrk(1)%x2l(size(x)),mlprec_wrk(1)%y2l(size(y)), stat=info)
if (info /= 0) then if (info /= 0) then
info=4025 info=4025
@ -276,8 +269,16 @@ subroutine mld_dmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info)
end if end if
mlprec_wrk(1)%x2l(:) = x(:) mlprec_wrk(1)%x2l(:) = x(:)
mlprec_wrk(1)%y2l(:) = dzero
call mld_baseprec_aply(alpha,baseprecv(1),x,beta,y,&
& baseprecv(1)%base_desc,trans,work,info)
if (info /=0) then
call psb_errpush(4010,name,a_err='baseprec_aply')
goto 9999
end if
! !
! STEP 2 ! STEP 2
! !
@ -382,7 +383,7 @@ subroutine mld_dmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info)
end if end if
if (info /=0) then if (info /=0) then
call psb_errpush(4001,name,a_err='Error during prolognation') call psb_errpush(4001,name,a_err='Error during prolongation')
goto 9999 goto 9999
end if end if
end do end do

@ -261,13 +261,6 @@ subroutine mld_zmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info)
! !
! Apply the base preconditioner at the finest level ! Apply the base preconditioner at the finest level
! !
call mld_baseprec_aply(alpha,baseprecv(1),x,beta,y,&
& baseprecv(1)%base_desc,trans,work,info)
if (info /=0) then
call psb_errpush(4010,name,a_err='baseprec_aply')
goto 9999
end if
allocate(mlprec_wrk(1)%x2l(size(x)),mlprec_wrk(1)%y2l(size(y)), stat=info) allocate(mlprec_wrk(1)%x2l(size(x)),mlprec_wrk(1)%y2l(size(y)), stat=info)
if (info /= 0) then if (info /= 0) then
info=4025 info=4025
@ -277,8 +270,16 @@ subroutine mld_zmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info)
end if end if
mlprec_wrk(1)%x2l(:) = x(:) mlprec_wrk(1)%x2l(:) = x(:)
mlprec_wrk(1)%y2l(:) = zzero
call mld_baseprec_aply(alpha,baseprecv(1),x,beta,y,&
& baseprecv(1)%base_desc,trans,work,info)
if (info /=0) then
call psb_errpush(4010,name,a_err='baseprec_aply')
goto 9999
end if
! !
! STEP 2 ! STEP 2
! !
@ -384,7 +385,7 @@ subroutine mld_zmlprec_aply(alpha,baseprecv,x,beta,y,desc_data,trans,work,info)
end if end if
if (info /=0) then if (info /=0) then
call psb_errpush(4001,name,a_err='Error during prolognation') call psb_errpush(4001,name,a_err='Error during prolongation')
goto 9999 goto 9999
end if end if
end do end do

Loading…
Cancel
Save