|
|
@ -86,7 +86,7 @@ subroutine mld_cmlprec_bld(a,desc_a,p,info,amold,vmold)
|
|
|
|
integer :: ipv(mld_ifpsz_), val
|
|
|
|
integer :: ipv(mld_ifpsz_), val
|
|
|
|
integer :: int_err(5)
|
|
|
|
integer :: int_err(5)
|
|
|
|
character :: upd_
|
|
|
|
character :: upd_
|
|
|
|
type(mld_dml_parms) :: prm
|
|
|
|
type(mld_sml_parms) :: prm
|
|
|
|
integer :: debug_level, debug_unit
|
|
|
|
integer :: debug_level, debug_unit
|
|
|
|
character(len=20) :: name, ch_err
|
|
|
|
character(len=20) :: name, ch_err
|
|
|
|
|
|
|
|
|
|
|
@ -249,7 +249,7 @@ subroutine mld_cmlprec_bld(a,desc_a,p,info,amold,vmold)
|
|
|
|
end do
|
|
|
|
end do
|
|
|
|
call mld_move_alloc(p%precv(iszv),t_prec%precv(newsz),info)
|
|
|
|
call mld_move_alloc(p%precv(iszv),t_prec%precv(newsz),info)
|
|
|
|
do i=newsz+1, iszv
|
|
|
|
do i=newsz+1, iszv
|
|
|
|
call mld_precfree(p%precv(i),info)
|
|
|
|
call p%precv(i)%free(info)
|
|
|
|
end do
|
|
|
|
end do
|
|
|
|
call mld_move_alloc(t_prec,p,info)
|
|
|
|
call mld_move_alloc(t_prec,p,info)
|
|
|
|
! Ignore errors from transfer
|
|
|
|
! Ignore errors from transfer
|
|
|
@ -260,8 +260,8 @@ subroutine mld_cmlprec_bld(a,desc_a,p,info,amold,vmold)
|
|
|
|
! Fix the pointers, but the level 1 should
|
|
|
|
! Fix the pointers, but the level 1 should
|
|
|
|
! be already OK
|
|
|
|
! be already OK
|
|
|
|
do i=2, iszv - 1
|
|
|
|
do i=2, iszv - 1
|
|
|
|
p%precv(i)%base_a => p%precv(i)%ac
|
|
|
|
p%precv(i)%base_a => p%precv(i)%ac
|
|
|
|
p%precv(i)%base_desc => p%precv(i)%desc_ac
|
|
|
|
p%precv(i)%base_desc => p%precv(i)%desc_ac
|
|
|
|
p%precv(i)%map%p_desc_X => p%precv(i-1)%base_desc
|
|
|
|
p%precv(i)%map%p_desc_X => p%precv(i-1)%base_desc
|
|
|
|
p%precv(i)%map%p_desc_Y => p%precv(i)%base_desc
|
|
|
|
p%precv(i)%map%p_desc_Y => p%precv(i)%base_desc
|
|
|
|
end do
|
|
|
|
end do
|
|
|
@ -293,13 +293,13 @@ subroutine mld_cmlprec_bld(a,desc_a,p,info,amold,vmold)
|
|
|
|
& 'Jacobi sweeps',1,is_legal_jac_sweeps)
|
|
|
|
& 'Jacobi sweeps',1,is_legal_jac_sweeps)
|
|
|
|
|
|
|
|
|
|
|
|
if (.not.allocated(p%precv(i)%sm)) then
|
|
|
|
if (.not.allocated(p%precv(i)%sm)) then
|
|
|
|
!! Error: should have called mld_cprecinit
|
|
|
|
!! Error: should have called mld_dprecinit
|
|
|
|
info=3111
|
|
|
|
info=3111
|
|
|
|
call psb_errpush(info,name)
|
|
|
|
call psb_errpush(info,name)
|
|
|
|
goto 9999
|
|
|
|
goto 9999
|
|
|
|
end if
|
|
|
|
end if
|
|
|
|
if (.not.allocated(p%precv(i)%sm%sv)) then
|
|
|
|
if (.not.allocated(p%precv(i)%sm%sv)) then
|
|
|
|
!! Error: should have called mld_cprecinit
|
|
|
|
!! Error: should have called mld_dprecinit
|
|
|
|
info=3111
|
|
|
|
info=3111
|
|
|
|
call psb_errpush(info,name)
|
|
|
|
call psb_errpush(info,name)
|
|
|
|
goto 9999
|
|
|
|
goto 9999
|
|
|
|