diff --git a/base/modules/psb_error_impl.F90 b/base/modules/psb_error_impl.F90 index 0662b904..fbb3e8b7 100644 --- a/base/modules/psb_error_impl.F90 +++ b/base/modules/psb_error_impl.F90 @@ -1,14 +1,27 @@ ! checks wether an error has occurred on one of the porecesses in the execution pool -subroutine psb_errcomm(ictxt, err) +subroutine psb_errcomm_i(ictxt, err) use psb_error_mod, psb_protect_name => psb_errcomm use psb_penv_mod integer(psb_ipk_), intent(in) :: ictxt integer(psb_ipk_), intent(inout):: err + integer(psb_mpk_) :: iictxt + + iictxt = ictxt + call psb_errcomm(iictxt,err) + +end subroutine psb_errcomm_i +#if defined(INT_I8_L8) + +subroutine psb_errcomm_m(ictxt, err) + use psb_error_mod, psb_protect_name => psb_errcomm + use psb_penv_mod + integer(psb_mpk_), intent(in) :: ictxt + integer(psb_ipk_), intent(inout):: err if (psb_get_global_checks()) call psb_amx(ictxt, err) -end subroutine psb_errcomm - +end subroutine psb_errcomm_m +#endif subroutine psb_ser_error_handler(err_act) use psb_error_mod, psb_protect_name => psb_ser_error_handler use psb_penv_mod diff --git a/base/modules/psb_error_mod.F90 b/base/modules/psb_error_mod.F90 index 496a77d7..f2cd301c 100644 --- a/base/modules/psb_error_mod.F90 +++ b/base/modules/psb_error_mod.F90 @@ -99,11 +99,18 @@ module psb_error_mod end interface interface psb_errcomm - subroutine psb_errcomm(ictxt, err) +#if defined(INT_I8_L8) + subroutine psb_errcomm_m(ictxt, err) + import :: psb_ipk_, psb_mpk_ + integer(psb_mpk_), intent(in) :: ictxt + integer(psb_ipk_), intent(inout):: err + end subroutine psb_errcomm_m +#endif + subroutine psb_errcomm_i(ictxt, err) import :: psb_ipk_ integer(psb_ipk_), intent(in) :: ictxt integer(psb_ipk_), intent(inout):: err - end subroutine psb_errcomm + end subroutine psb_errcomm_i end interface psb_errcomm interface psb_errpop @@ -177,22 +184,6 @@ contains end function psb_get_global_checks -#if defined(LONG_INTEGERS) - subroutine psb_errcomm_ipk(ictxt, err) - integer(psb_ipk_), intent(in) :: ictxt - integer(psb_ipk_), intent(inout):: err - integer(psb_mpk_) :: iictxt - iictxt = ictxt - call psb_errcomm(iictxt,err) - end subroutine psb_errcomm_ipk - - subroutine psb_perror_ipk(ictxt) - integer(psb_ipk_), intent(in) :: ictxt - integer(psb_mpk_) :: iictxt - iictxt = ictxt - call psb_perror(iictxt) - end subroutine psb_perror_ipk -#endif ! saves action to support error traceback ! also changes error action to "return" subroutine psb_erractionsave(err_act)