Fixed alterations for MAP routines and new internals

pizdaint-runs
Salvatore Filippone 4 years ago
parent 2de1202d62
commit d9997e511f

@ -125,24 +125,21 @@ module psi_i_mod
integer(psb_ipk_), allocatable, intent(out) :: dep_list(:,:), length_dl(:) integer(psb_ipk_), allocatable, intent(out) :: dep_list(:,:), length_dl(:)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
end subroutine psi_i_extract_dep_list end subroutine psi_i_extract_dep_list
end interface psi_extract_dep_list end interface
interface psi_bld_glb_dep_list interface psi_bld_glb_dep_list
subroutine psi_i_bld_glb_dep_list(ictxt,loc_dl,& subroutine psi_i_bld_glb_dep_list(ictxt,loc_dl,length_dl,dep_list,dl_lda,info)
& length_dl,dep_list,dl_lda,info)
import import
implicit none
integer(psb_ipk_), intent(in) :: ictxt integer(psb_ipk_), intent(in) :: ictxt
integer(psb_ipk_), intent(out) :: dl_lda 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_), allocatable, intent(out) :: dep_list(:,:)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
end subroutine psi_i_bld_glb_dep_list end subroutine psi_i_bld_glb_dep_list
end interface psi_bld_glb_dep_list end interface
interface psi_extract_loc_dl interface psi_extract_loc_dl
subroutine psi_i_xtr_loc_dl(ictxt,is_bld,is_upd,desc_str,loc_dl,& subroutine psi_i_xtr_loc_dl(ictxt,is_bld,is_upd,desc_str,loc_dl,length_dl,info)
& length_dl,info)
import import
logical, intent(in) :: is_bld, is_upd logical, intent(in) :: is_bld, is_upd
integer(psb_ipk_), intent(in) :: ictxt 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_), allocatable, intent(out) :: loc_dl(:), length_dl(:)
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
end subroutine psi_i_xtr_loc_dl end subroutine psi_i_xtr_loc_dl
end interface psi_extract_loc_dl end interface
interface psi_fnd_owner interface psi_fnd_owner
subroutine psi_i_fnd_owner(nv,idx,iprc,desc,info) subroutine psi_i_fnd_owner(nv,idx,iprc,desc,info)
import import

@ -159,7 +159,7 @@ subroutine psb_c_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty)
end if end if
if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%p_desc_V,info) if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%p_desc_V,info)
if (info /= psb_success_) then 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 info = -1
else else
if (.not.present(vty)) call yt%free(info) 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() nc1 = map%desc_U%get_local_cols()
nr2 = map%desc_V%get_global_rows() nr2 = map%desc_V%get_global_rows()
nc2 = map%desc_V%get_local_cols() nc2 = map%desc_V%get_local_cols()
if (present(vtx).and.present(vty)) then if (present(vtx).and.present(vty)) then
ptx => vtx ptx => vtx
pty => vty pty => vty
@ -193,7 +194,7 @@ subroutine psb_c_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty)
end if end if
if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%desc_V,info) if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%desc_V,info)
if (info /= psb_success_) then 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 info = -1
else else
if (.not.(present(vtx).and.present(vty) )) then if (.not.(present(vtx).and.present(vty) )) then

@ -159,7 +159,7 @@ subroutine psb_d_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty)
end if end if
if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%p_desc_V,info) if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%p_desc_V,info)
if (info /= psb_success_) then 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 info = -1
else else
if (.not.present(vty)) call yt%free(info) 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() nc1 = map%desc_U%get_local_cols()
nr2 = map%desc_V%get_global_rows() nr2 = map%desc_V%get_global_rows()
nc2 = map%desc_V%get_local_cols() nc2 = map%desc_V%get_local_cols()
if (present(vtx).and.present(vty)) then if (present(vtx).and.present(vty)) then
ptx => vtx ptx => vtx
pty => vty pty => vty
@ -193,7 +194,7 @@ subroutine psb_d_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty)
end if end if
if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%desc_V,info) if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%desc_V,info)
if (info /= psb_success_) then 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 info = -1
else else
if (.not.(present(vtx).and.present(vty) )) then if (.not.(present(vtx).and.present(vty) )) then

@ -159,7 +159,7 @@ subroutine psb_s_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty)
end if end if
if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%p_desc_V,info) if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%p_desc_V,info)
if (info /= psb_success_) then 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 info = -1
else else
if (.not.present(vty)) call yt%free(info) 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() nc1 = map%desc_U%get_local_cols()
nr2 = map%desc_V%get_global_rows() nr2 = map%desc_V%get_global_rows()
nc2 = map%desc_V%get_local_cols() nc2 = map%desc_V%get_local_cols()
if (present(vtx).and.present(vty)) then if (present(vtx).and.present(vty)) then
ptx => vtx ptx => vtx
pty => vty pty => vty
@ -193,7 +194,7 @@ subroutine psb_s_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty)
end if end if
if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%desc_V,info) if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%desc_V,info)
if (info /= psb_success_) then 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 info = -1
else else
if (.not.(present(vtx).and.present(vty) )) then if (.not.(present(vtx).and.present(vty) )) then

@ -159,7 +159,7 @@ subroutine psb_z_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty)
end if end if
if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%p_desc_V,info) if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%p_desc_V,info)
if (info /= psb_success_) then 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 info = -1
else else
if (.not.present(vty)) call yt%free(info) 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() nc1 = map%desc_U%get_local_cols()
nr2 = map%desc_V%get_global_rows() nr2 = map%desc_V%get_global_rows()
nc2 = map%desc_V%get_local_cols() nc2 = map%desc_V%get_local_cols()
if (present(vtx).and.present(vty)) then if (present(vtx).and.present(vty)) then
ptx => vtx ptx => vtx
pty => vty pty => vty
@ -193,7 +194,7 @@ subroutine psb_z_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty)
end if end if
if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%desc_V,info) if (info == psb_success_) call psb_geaxpby(alpha,pty,beta,y,map%desc_V,info)
if (info /= psb_success_) then 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 info = -1
else else
if (.not.(present(vtx).and.present(vty) )) then if (.not.(present(vtx).and.present(vty) )) then

Loading…
Cancel
Save