diff --git a/base/modules/psi_i_mod.F90 b/base/modules/psi_i_mod.F90 index 9239617d..41bc92f6 100644 --- a/base/modules/psi_i_mod.F90 +++ b/base/modules/psi_i_mod.F90 @@ -125,24 +125,21 @@ module psi_i_mod integer(psb_ipk_), allocatable, intent(out) :: dep_list(:,:), length_dl(:) integer(psb_ipk_), intent(out) :: info end subroutine psi_i_extract_dep_list - end interface psi_extract_dep_list + end interface - interface psi_bld_glb_dep_list - subroutine psi_i_bld_glb_dep_list(ictxt,loc_dl,& - & length_dl,dep_list,dl_lda,info) + interface psi_bld_glb_dep_list + subroutine psi_i_bld_glb_dep_list(ictxt,loc_dl,length_dl,dep_list,dl_lda,info) import - implicit none integer(psb_ipk_), intent(in) :: ictxt integer(psb_ipk_), intent(out) :: dl_lda - integer(psb_ipk_), intent(in) :: loc_dl(:), length_dl(:) + integer(psb_ipk_), intent(in) :: loc_dl(:), length_dl(0:) integer(psb_ipk_), allocatable, intent(out) :: dep_list(:,:) integer(psb_ipk_), intent(out) :: info - end subroutine psi_i_bld_glb_dep_list - end interface psi_bld_glb_dep_list - - interface psi_extract_loc_dl - subroutine psi_i_xtr_loc_dl(ictxt,is_bld,is_upd,desc_str,loc_dl,& - & length_dl,info) + end subroutine psi_i_bld_glb_dep_list + end interface + + interface psi_extract_loc_dl + subroutine psi_i_xtr_loc_dl(ictxt,is_bld,is_upd,desc_str,loc_dl,length_dl,info) import logical, intent(in) :: is_bld, is_upd integer(psb_ipk_), intent(in) :: ictxt @@ -150,8 +147,8 @@ module psi_i_mod integer(psb_ipk_), allocatable, intent(out) :: loc_dl(:), length_dl(:) integer(psb_ipk_), intent(out) :: info end subroutine psi_i_xtr_loc_dl - end interface psi_extract_loc_dl - + end interface + interface psi_fnd_owner subroutine psi_i_fnd_owner(nv,idx,iprc,desc,info) import diff --git a/base/tools/psb_c_map.f90 b/base/tools/psb_c_map.f90 index 83a54d32..6324b944 100644 --- a/base/tools/psb_c_map.f90 +++ b/base/tools/psb_c_map.f90 @@ -159,7 +159,7 @@ subroutine psb_c_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) end if if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%p_desc_V,info) if (info /= psb_success_) then - write(psb_err_unit,*) iam,' ',trim(name),' Error from inner routines',info + write(psb_err_unit,*) trim(name),' Error from inner routines',info info = -1 else if (.not.present(vty)) call yt%free(info) @@ -173,6 +173,7 @@ subroutine psb_c_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) nc1 = map%desc_U%get_local_cols() nr2 = map%desc_V%get_global_rows() nc2 = map%desc_V%get_local_cols() + if (present(vtx).and.present(vty)) then ptx => vtx pty => vty @@ -193,7 +194,7 @@ subroutine psb_c_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) end if if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%desc_V,info) if (info /= psb_success_) then - write(psb_err_unit,*) iam,' ',trim(name),' Error from inner routines',info + write(psb_err_unit,*) trim(name),' Error from inner routines',info info = -1 else if (.not.(present(vtx).and.present(vty) )) then diff --git a/base/tools/psb_d_map.f90 b/base/tools/psb_d_map.f90 index 51672121..3046482e 100644 --- a/base/tools/psb_d_map.f90 +++ b/base/tools/psb_d_map.f90 @@ -159,7 +159,7 @@ subroutine psb_d_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) end if if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%p_desc_V,info) if (info /= psb_success_) then - write(psb_err_unit,*) iam,' ',trim(name),' Error from inner routines',info + write(psb_err_unit,*) trim(name),' Error from inner routines',info info = -1 else if (.not.present(vty)) call yt%free(info) @@ -173,6 +173,7 @@ subroutine psb_d_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) nc1 = map%desc_U%get_local_cols() nr2 = map%desc_V%get_global_rows() nc2 = map%desc_V%get_local_cols() + if (present(vtx).and.present(vty)) then ptx => vtx pty => vty @@ -193,7 +194,7 @@ subroutine psb_d_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) end if if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%desc_V,info) if (info /= psb_success_) then - write(psb_err_unit,*) iam,' ',trim(name),' Error from inner routines',info + write(psb_err_unit,*) trim(name),' Error from inner routines',info info = -1 else if (.not.(present(vtx).and.present(vty) )) then diff --git a/base/tools/psb_s_map.f90 b/base/tools/psb_s_map.f90 index 6fa9b7b7..1d10b879 100644 --- a/base/tools/psb_s_map.f90 +++ b/base/tools/psb_s_map.f90 @@ -159,7 +159,7 @@ subroutine psb_s_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) end if if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%p_desc_V,info) if (info /= psb_success_) then - write(psb_err_unit,*) iam,' ',trim(name),' Error from inner routines',info + write(psb_err_unit,*) trim(name),' Error from inner routines',info info = -1 else if (.not.present(vty)) call yt%free(info) @@ -173,6 +173,7 @@ subroutine psb_s_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) nc1 = map%desc_U%get_local_cols() nr2 = map%desc_V%get_global_rows() nc2 = map%desc_V%get_local_cols() + if (present(vtx).and.present(vty)) then ptx => vtx pty => vty @@ -193,7 +194,7 @@ subroutine psb_s_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) end if if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%desc_V,info) if (info /= psb_success_) then - write(psb_err_unit,*) iam,' ',trim(name),' Error from inner routines',info + write(psb_err_unit,*) trim(name),' Error from inner routines',info info = -1 else if (.not.(present(vtx).and.present(vty) )) then diff --git a/base/tools/psb_z_map.f90 b/base/tools/psb_z_map.f90 index 86858c60..6b07401f 100644 --- a/base/tools/psb_z_map.f90 +++ b/base/tools/psb_z_map.f90 @@ -159,7 +159,7 @@ subroutine psb_z_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) end if if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%p_desc_V,info) if (info /= psb_success_) then - write(psb_err_unit,*) iam,' ',trim(name),' Error from inner routines',info + write(psb_err_unit,*) trim(name),' Error from inner routines',info info = -1 else if (.not.present(vty)) call yt%free(info) @@ -173,6 +173,7 @@ subroutine psb_z_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) nc1 = map%desc_U%get_local_cols() nr2 = map%desc_V%get_global_rows() nc2 = map%desc_V%get_local_cols() + if (present(vtx).and.present(vty)) then ptx => vtx pty => vty @@ -193,7 +194,7 @@ subroutine psb_z_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty) end if if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%desc_V,info) if (info /= psb_success_) then - write(psb_err_unit,*) iam,' ',trim(name),' Error from inner routines',info + write(psb_err_unit,*) trim(name),' Error from inner routines',info info = -1 else if (.not.(present(vtx).and.present(vty) )) then