mld2p4-2:

mlprec/impl/mld_c_hierarchy_bld.f90
 mlprec/impl/mld_c_smoothers_bld.f90
 mlprec/impl/mld_d_hierarchy_bld.f90
 mlprec/impl/mld_d_smoothers_bld.f90
 mlprec/impl/mld_s_hierarchy_bld.f90
 mlprec/impl/mld_s_smoothers_bld.f90
 mlprec/impl/mld_z_hierarchy_bld.f90
 mlprec/impl/mld_z_smoothers_bld.f90

Allow being called with just 1 level (BJAC).
stopcriterion
Salvatore Filippone 8 years ago
parent 6ba11bf78c
commit 0dfff39e2d

@ -174,13 +174,26 @@ subroutine mld_c_hierarchy_bld(a,desc_a,p,info)
goto 9999 goto 9999
end if end if
if (iszv <= 1) then if (iszv < 1) then
! We should only ever get here for multilevel. !
! This is wrong, cannot be size <1
!
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
ch_err='size bpv' ch_err='size bpv'
call psb_errpush(info,name,a_err=ch_err) call psb_errpush(info,name,a_err=ch_err)
goto 9999 goto 9999
endif endif
if (iszv == 1) then
!
! This is OK, since it may be called by the user even if there
! is only one level
!
p%precv(1)%base_a => a
p%precv(1)%base_desc => desc_a
call psb_erractionrestore(err_act)
return
endif
! !
! The strategy: ! The strategy:

@ -157,8 +157,8 @@ subroutine mld_c_smoothers_bld(a,desc_a,p,info,amold,vmold,imold)
goto 9999 goto 9999
end if end if
if (iszv <= 1) then if (iszv < 1) then
! We should only ever get here for multilevel. ! We should never get here.
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
ch_err='size bpv' ch_err='size bpv'
call psb_errpush(info,name,a_err=ch_err) call psb_errpush(info,name,a_err=ch_err)

@ -174,13 +174,26 @@ subroutine mld_d_hierarchy_bld(a,desc_a,p,info)
goto 9999 goto 9999
end if end if
if (iszv <= 1) then if (iszv < 1) then
! We should only ever get here for multilevel. !
! This is wrong, cannot be size <1
!
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
ch_err='size bpv' ch_err='size bpv'
call psb_errpush(info,name,a_err=ch_err) call psb_errpush(info,name,a_err=ch_err)
goto 9999 goto 9999
endif endif
if (iszv == 1) then
!
! This is OK, since it may be called by the user even if there
! is only one level
!
p%precv(1)%base_a => a
p%precv(1)%base_desc => desc_a
call psb_erractionrestore(err_act)
return
endif
! !
! The strategy: ! The strategy:

@ -157,8 +157,8 @@ subroutine mld_d_smoothers_bld(a,desc_a,p,info,amold,vmold,imold)
goto 9999 goto 9999
end if end if
if (iszv <= 1) then if (iszv < 1) then
! We should only ever get here for multilevel. ! We should never get here.
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
ch_err='size bpv' ch_err='size bpv'
call psb_errpush(info,name,a_err=ch_err) call psb_errpush(info,name,a_err=ch_err)

@ -174,13 +174,26 @@ subroutine mld_s_hierarchy_bld(a,desc_a,p,info)
goto 9999 goto 9999
end if end if
if (iszv <= 1) then if (iszv < 1) then
! We should only ever get here for multilevel. !
! This is wrong, cannot be size <1
!
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
ch_err='size bpv' ch_err='size bpv'
call psb_errpush(info,name,a_err=ch_err) call psb_errpush(info,name,a_err=ch_err)
goto 9999 goto 9999
endif endif
if (iszv == 1) then
!
! This is OK, since it may be called by the user even if there
! is only one level
!
p%precv(1)%base_a => a
p%precv(1)%base_desc => desc_a
call psb_erractionrestore(err_act)
return
endif
! !
! The strategy: ! The strategy:

@ -157,8 +157,8 @@ subroutine mld_s_smoothers_bld(a,desc_a,p,info,amold,vmold,imold)
goto 9999 goto 9999
end if end if
if (iszv <= 1) then if (iszv < 1) then
! We should only ever get here for multilevel. ! We should never get here.
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
ch_err='size bpv' ch_err='size bpv'
call psb_errpush(info,name,a_err=ch_err) call psb_errpush(info,name,a_err=ch_err)

@ -174,13 +174,26 @@ subroutine mld_z_hierarchy_bld(a,desc_a,p,info)
goto 9999 goto 9999
end if end if
if (iszv <= 1) then if (iszv < 1) then
! We should only ever get here for multilevel. !
! This is wrong, cannot be size <1
!
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
ch_err='size bpv' ch_err='size bpv'
call psb_errpush(info,name,a_err=ch_err) call psb_errpush(info,name,a_err=ch_err)
goto 9999 goto 9999
endif endif
if (iszv == 1) then
!
! This is OK, since it may be called by the user even if there
! is only one level
!
p%precv(1)%base_a => a
p%precv(1)%base_desc => desc_a
call psb_erractionrestore(err_act)
return
endif
! !
! The strategy: ! The strategy:

@ -157,8 +157,8 @@ subroutine mld_z_smoothers_bld(a,desc_a,p,info,amold,vmold,imold)
goto 9999 goto 9999
end if end if
if (iszv <= 1) then if (iszv < 1) then
! We should only ever get here for multilevel. ! We should never get here.
info=psb_err_from_subroutine_ info=psb_err_from_subroutine_
ch_err='size bpv' ch_err='size bpv'
call psb_errpush(info,name,a_err=ch_err) call psb_errpush(info,name,a_err=ch_err)

Loading…
Cancel
Save