diff --git a/base/modules/psb_const_mod.F90 b/base/modules/psb_const_mod.F90 index eb2f77cd..7d3f364c 100644 --- a/base/modules/psb_const_mod.F90 +++ b/base/modules/psb_const_mod.F90 @@ -170,6 +170,7 @@ module psb_const_mod integer, parameter, public :: psb_err_many_optional_arg_=583 integer, parameter, public :: psb_err_spmat_invalid_state_=600 integer, parameter, public :: psb_err_missing_override_method_=700 + integer, parameter, public :: psb_err_invalid_dynamic_type_=701 integer, parameter, public :: psb_err_invalid_mat_state_=1121 integer, parameter, public :: psb_err_invalid_cd_state_=1122 integer, parameter, public :: psb_err_invalid_a_and_cd_state_=1123 diff --git a/base/modules/psb_error_mod.F90 b/base/modules/psb_error_mod.F90 index 2ed7f948..de03b9aa 100644 --- a/base/modules/psb_error_mod.F90 +++ b/base/modules/psb_error_mod.F90 @@ -428,6 +428,9 @@ contains write(psb_err_unit,& & '("Base class method ",a," called: the class for ",a," is missing an overriding implementation")')& & trim(r_name), trim(a_e_d) + case(psb_err_invalid_dynamic_type_) + write(psb_err_unit,'("input argument n. ",i0," has a dynamic type not allowed here.")')& + & i_e_d(1) case (psb_err_invalid_mat_state_) write(psb_err_unit,'("Invalid state for sparse matrix")') case (psb_err_invalid_cd_state_) diff --git a/base/serial/f03/psb_c_base_mat_impl.f03 b/base/serial/f03/psb_c_base_mat_impl.f03 index 91b30d35..c3441e86 100644 --- a/base/serial/f03/psb_c_base_mat_impl.f03 +++ b/base/serial/f03/psb_c_base_mat_impl.f03 @@ -460,15 +460,15 @@ subroutine psb_c_base_transp_2mat(a,b) info = psb_success_ select type(b) - class is (psb_c_base_sparse_mat) + class is (psb_c_base_sparse_mat) call b%cp_to_coo(tmp,info) if (info == psb_success_) call tmp%transp() if (info == psb_success_) call a%mv_from_coo(tmp,info) - class default - info = psb_err_missing_override_method_ + class default + info = psb_err_invalid_dynamic_type_ end select if (info /= psb_success_) then - call psb_errpush(info,name,a_err=b%get_fmt()) + call psb_errpush(info,name,a_err=b%get_fmt(),i_err=(/1,0,0,0,0/)) goto 9999 end if call psb_erractionrestore(err_act) diff --git a/base/serial/f03/psb_d_base_mat_impl.f03 b/base/serial/f03/psb_d_base_mat_impl.f03 index dbbb5b43..a3a82696 100644 --- a/base/serial/f03/psb_d_base_mat_impl.f03 +++ b/base/serial/f03/psb_d_base_mat_impl.f03 @@ -460,15 +460,15 @@ subroutine psb_d_base_transp_2mat(a,b) info = psb_success_ select type(b) - class is (psb_d_base_sparse_mat) + class is (psb_d_base_sparse_mat) call b%cp_to_coo(tmp,info) if (info == psb_success_) call tmp%transp() if (info == psb_success_) call a%mv_from_coo(tmp,info) - class default - info = psb_err_missing_override_method_ + class default + info = psb_err_invalid_dynamic_type_ end select if (info /= psb_success_) then - call psb_errpush(info,name,a_err=b%get_fmt()) + call psb_errpush(info,name,a_err=b%get_fmt(),i_err=(/1,0,0,0,0/)) goto 9999 end if call psb_erractionrestore(err_act) diff --git a/base/serial/f03/psb_s_base_mat_impl.f03 b/base/serial/f03/psb_s_base_mat_impl.f03 index a7b31ffc..febf483b 100644 --- a/base/serial/f03/psb_s_base_mat_impl.f03 +++ b/base/serial/f03/psb_s_base_mat_impl.f03 @@ -460,15 +460,15 @@ subroutine psb_s_base_transp_2mat(a,b) info = psb_success_ select type(b) - class is (psb_s_base_sparse_mat) + class is (psb_s_base_sparse_mat) call b%cp_to_coo(tmp,info) if (info == psb_success_) call tmp%transp() if (info == psb_success_) call a%mv_from_coo(tmp,info) - class default - info = psb_err_missing_override_method_ + class default + info = psb_err_invalid_dynamic_type_ end select if (info /= psb_success_) then - call psb_errpush(info,name,a_err=b%get_fmt()) + call psb_errpush(info,name,a_err=b%get_fmt(),i_err=(/1,0,0,0,0/)) goto 9999 end if call psb_erractionrestore(err_act) diff --git a/base/serial/f03/psb_z_base_mat_impl.f03 b/base/serial/f03/psb_z_base_mat_impl.f03 index f6cd267e..d6dc92e6 100644 --- a/base/serial/f03/psb_z_base_mat_impl.f03 +++ b/base/serial/f03/psb_z_base_mat_impl.f03 @@ -460,15 +460,15 @@ subroutine psb_z_base_transp_2mat(a,b) info = psb_success_ select type(b) - class is (psb_z_base_sparse_mat) + class is (psb_z_base_sparse_mat) call b%cp_to_coo(tmp,info) if (info == psb_success_) call tmp%transp() if (info == psb_success_) call a%mv_from_coo(tmp,info) - class default - info = psb_err_missing_override_method_ + class default + info = psb_err_invalid_dynamic_type_ end select if (info /= psb_success_) then - call psb_errpush(info,name,a_err=b%get_fmt()) + call psb_errpush(info,name,a_err=b%get_fmt(),i_err=(/1,0,0,0,0/)) goto 9999 end if call psb_erractionrestore(err_act)