diff --git a/mlprec/impl/level/mld_c_base_onelev_setsv.F90 b/mlprec/impl/level/mld_c_base_onelev_setsv.F90 index 16530915..f73c7348 100644 --- a/mlprec/impl/level/mld_c_base_onelev_setsv.F90 +++ b/mlprec/impl/level/mld_c_base_onelev_setsv.F90 @@ -72,7 +72,7 @@ subroutine mld_c_base_onelev_setsv(lev,val,info,pos) if (allocated(lev%sm%sv)) then if (.not.same_type_as(lev%sm%sv,val)) then call lev%sm%sv%free(info) - deallocate(lev%sm%sv,stat=info) + if (info == 0) deallocate(lev%sm%sv,stat=info) if (info /= 0) then info = 3111 return @@ -117,7 +117,7 @@ subroutine mld_c_base_onelev_setsv(lev,val,info,pos) if (allocated(lev%sm2a%sv)) then if (.not.same_type_as(lev%sm2a%sv,val)) then call lev%sm2a%sv%free(info) - deallocate(lev%sm2a%sv,stat=info) + if (info == 0) deallocate(lev%sm2a%sv,stat=info) if (info /= 0) then info = 3111 return diff --git a/mlprec/impl/level/mld_d_base_onelev_setsv.F90 b/mlprec/impl/level/mld_d_base_onelev_setsv.F90 index 65f219ca..a00813c7 100644 --- a/mlprec/impl/level/mld_d_base_onelev_setsv.F90 +++ b/mlprec/impl/level/mld_d_base_onelev_setsv.F90 @@ -72,7 +72,7 @@ subroutine mld_d_base_onelev_setsv(lev,val,info,pos) if (allocated(lev%sm%sv)) then if (.not.same_type_as(lev%sm%sv,val)) then call lev%sm%sv%free(info) - deallocate(lev%sm%sv,stat=info) + if (info == 0) deallocate(lev%sm%sv,stat=info) if (info /= 0) then info = 3111 return @@ -117,7 +117,7 @@ subroutine mld_d_base_onelev_setsv(lev,val,info,pos) if (allocated(lev%sm2a%sv)) then if (.not.same_type_as(lev%sm2a%sv,val)) then call lev%sm2a%sv%free(info) - deallocate(lev%sm2a%sv,stat=info) + if (info == 0) deallocate(lev%sm2a%sv,stat=info) if (info /= 0) then info = 3111 return diff --git a/mlprec/impl/level/mld_s_base_onelev_setsv.F90 b/mlprec/impl/level/mld_s_base_onelev_setsv.F90 index cbc4cacf..ac1c05d9 100644 --- a/mlprec/impl/level/mld_s_base_onelev_setsv.F90 +++ b/mlprec/impl/level/mld_s_base_onelev_setsv.F90 @@ -72,7 +72,7 @@ subroutine mld_s_base_onelev_setsv(lev,val,info,pos) if (allocated(lev%sm%sv)) then if (.not.same_type_as(lev%sm%sv,val)) then call lev%sm%sv%free(info) - deallocate(lev%sm%sv,stat=info) + if (info == 0) deallocate(lev%sm%sv,stat=info) if (info /= 0) then info = 3111 return @@ -117,7 +117,7 @@ subroutine mld_s_base_onelev_setsv(lev,val,info,pos) if (allocated(lev%sm2a%sv)) then if (.not.same_type_as(lev%sm2a%sv,val)) then call lev%sm2a%sv%free(info) - deallocate(lev%sm2a%sv,stat=info) + if (info == 0) deallocate(lev%sm2a%sv,stat=info) if (info /= 0) then info = 3111 return diff --git a/mlprec/impl/level/mld_z_base_onelev_setsv.F90 b/mlprec/impl/level/mld_z_base_onelev_setsv.F90 index 30c68af4..9481b8f2 100644 --- a/mlprec/impl/level/mld_z_base_onelev_setsv.F90 +++ b/mlprec/impl/level/mld_z_base_onelev_setsv.F90 @@ -72,7 +72,7 @@ subroutine mld_z_base_onelev_setsv(lev,val,info,pos) if (allocated(lev%sm%sv)) then if (.not.same_type_as(lev%sm%sv,val)) then call lev%sm%sv%free(info) - deallocate(lev%sm%sv,stat=info) + if (info == 0) deallocate(lev%sm%sv,stat=info) if (info /= 0) then info = 3111 return @@ -117,7 +117,7 @@ subroutine mld_z_base_onelev_setsv(lev,val,info,pos) if (allocated(lev%sm2a%sv)) then if (.not.same_type_as(lev%sm2a%sv,val)) then call lev%sm2a%sv%free(info) - deallocate(lev%sm2a%sv,stat=info) + if (info == 0) deallocate(lev%sm2a%sv,stat=info) if (info /= 0) then info = 3111 return diff --git a/mlprec/impl/solver/mld_c_base_solver_free.f90 b/mlprec/impl/solver/mld_c_base_solver_free.f90 index 27577351..002e5b2a 100644 --- a/mlprec/impl/solver/mld_c_base_solver_free.f90 +++ b/mlprec/impl/solver/mld_c_base_solver_free.f90 @@ -48,9 +48,8 @@ subroutine mld_c_base_solver_free(sv,info) call psb_erractionsave(err_act) - info = psb_err_missing_override_method_ - call psb_errpush(info,name) - goto 9999 + ! Do nothing + info = psb_success_ call psb_erractionrestore(err_act) return diff --git a/mlprec/impl/solver/mld_d_base_solver_free.f90 b/mlprec/impl/solver/mld_d_base_solver_free.f90 index 386cbc30..cbc271fd 100644 --- a/mlprec/impl/solver/mld_d_base_solver_free.f90 +++ b/mlprec/impl/solver/mld_d_base_solver_free.f90 @@ -48,9 +48,8 @@ subroutine mld_d_base_solver_free(sv,info) call psb_erractionsave(err_act) - info = psb_err_missing_override_method_ - call psb_errpush(info,name) - goto 9999 + ! Do nothing + info = psb_success_ call psb_erractionrestore(err_act) return diff --git a/mlprec/impl/solver/mld_s_base_solver_free.f90 b/mlprec/impl/solver/mld_s_base_solver_free.f90 index 7ba4a04c..f71e1cf8 100644 --- a/mlprec/impl/solver/mld_s_base_solver_free.f90 +++ b/mlprec/impl/solver/mld_s_base_solver_free.f90 @@ -48,9 +48,8 @@ subroutine mld_s_base_solver_free(sv,info) call psb_erractionsave(err_act) - info = psb_err_missing_override_method_ - call psb_errpush(info,name) - goto 9999 + ! Do nothing + info = psb_success_ call psb_erractionrestore(err_act) return diff --git a/mlprec/impl/solver/mld_z_base_solver_free.f90 b/mlprec/impl/solver/mld_z_base_solver_free.f90 index 21a8099f..84b03763 100644 --- a/mlprec/impl/solver/mld_z_base_solver_free.f90 +++ b/mlprec/impl/solver/mld_z_base_solver_free.f90 @@ -48,9 +48,8 @@ subroutine mld_z_base_solver_free(sv,info) call psb_erractionsave(err_act) - info = psb_err_missing_override_method_ - call psb_errpush(info,name) - goto 9999 + ! Do nothing + info = psb_success_ call psb_erractionrestore(err_act) return