New iproc argument in prec%dump

stopcriterion
Salvatore Filippone 5 years ago
parent 1b7bdb437b
commit 63f8bd4557

@ -713,22 +713,25 @@ contains
end subroutine mld_c_apply1v end subroutine mld_c_apply1v
subroutine mld_c_dump(prec,info,istart,iend,prefix,head,ac,rp,smoother,solver,tprol,& subroutine mld_c_dump(prec,info,istart,iend,iproc,prefix,head,&
& ac,rp,smoother,solver,tprol,&
& global_num) & global_num)
implicit none implicit none
class(mld_cprec_type), intent(in) :: prec class(mld_cprec_type), intent(in) :: prec
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: istart, iend integer(psb_ipk_), intent(in), optional :: istart, iend, iproc
character(len=*), intent(in), optional :: prefix, head character(len=*), intent(in), optional :: prefix, head
logical, optional, intent(in) :: smoother, solver,ac, rp, tprol, global_num logical, optional, intent(in) :: smoother, solver,ac, rp, tprol, global_num
integer(psb_ipk_) :: i, j, il1, iln, lev integer(psb_ipk_) :: i, j, il1, iln, lev
integer(psb_ipk_) :: icontxt,iam, np integer(psb_ipk_) :: icontxt, iam, np, iproc_
character(len=80) :: prefix_ character(len=80) :: prefix_
character(len=120) :: fname ! len should be at least 20 more than character(len=120) :: fname ! len should be at least 20 more than
! len of prefix_ ! len of prefix_
info = 0 info = 0
icontxt = prec%ictxt
call psb_info(icontxt,iam,np)
iln = size(prec%precv) iln = size(prec%precv)
if (present(istart)) then if (present(istart)) then
@ -739,13 +742,18 @@ contains
if (present(iend)) then if (present(iend)) then
iln = min(iln, iend) iln = min(iln, iend)
end if end if
iproc_ = -1
if (present(iproc)) then
iproc_ = iproc
end if
if ((iproc_ == -1).or.(iproc_==iam)) then
do lev=il1, iln do lev=il1, iln
call prec%precv(lev)%dump(lev,info,prefix=prefix,head=head,& call prec%precv(lev)%dump(lev,info,prefix=prefix,head=head,&
& ac=ac,smoother=smoother,solver=solver,rp=rp,tprol=tprol, & & ac=ac,smoother=smoother,solver=solver,rp=rp,tprol=tprol, &
& global_num=global_num) & global_num=global_num)
end do end do
end if
end subroutine mld_c_dump end subroutine mld_c_dump
subroutine mld_c_cnv(prec,info,amold,vmold,imold) subroutine mld_c_cnv(prec,info,amold,vmold,imold)

@ -713,22 +713,25 @@ contains
end subroutine mld_d_apply1v end subroutine mld_d_apply1v
subroutine mld_d_dump(prec,info,istart,iend,prefix,head,ac,rp,smoother,solver,tprol,& subroutine mld_d_dump(prec,info,istart,iend,iproc,prefix,head,&
& ac,rp,smoother,solver,tprol,&
& global_num) & global_num)
implicit none implicit none
class(mld_dprec_type), intent(in) :: prec class(mld_dprec_type), intent(in) :: prec
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: istart, iend integer(psb_ipk_), intent(in), optional :: istart, iend, iproc
character(len=*), intent(in), optional :: prefix, head character(len=*), intent(in), optional :: prefix, head
logical, optional, intent(in) :: smoother, solver,ac, rp, tprol, global_num logical, optional, intent(in) :: smoother, solver,ac, rp, tprol, global_num
integer(psb_ipk_) :: i, j, il1, iln, lev integer(psb_ipk_) :: i, j, il1, iln, lev
integer(psb_ipk_) :: icontxt,iam, np integer(psb_ipk_) :: icontxt, iam, np, iproc_
character(len=80) :: prefix_ character(len=80) :: prefix_
character(len=120) :: fname ! len should be at least 20 more than character(len=120) :: fname ! len should be at least 20 more than
! len of prefix_ ! len of prefix_
info = 0 info = 0
icontxt = prec%ictxt
call psb_info(icontxt,iam,np)
iln = size(prec%precv) iln = size(prec%precv)
if (present(istart)) then if (present(istart)) then
@ -739,13 +742,18 @@ contains
if (present(iend)) then if (present(iend)) then
iln = min(iln, iend) iln = min(iln, iend)
end if end if
iproc_ = -1
if (present(iproc)) then
iproc_ = iproc
end if
if ((iproc_ == -1).or.(iproc_==iam)) then
do lev=il1, iln do lev=il1, iln
call prec%precv(lev)%dump(lev,info,prefix=prefix,head=head,& call prec%precv(lev)%dump(lev,info,prefix=prefix,head=head,&
& ac=ac,smoother=smoother,solver=solver,rp=rp,tprol=tprol, & & ac=ac,smoother=smoother,solver=solver,rp=rp,tprol=tprol, &
& global_num=global_num) & global_num=global_num)
end do end do
end if
end subroutine mld_d_dump end subroutine mld_d_dump
subroutine mld_d_cnv(prec,info,amold,vmold,imold) subroutine mld_d_cnv(prec,info,amold,vmold,imold)

@ -713,22 +713,25 @@ contains
end subroutine mld_s_apply1v end subroutine mld_s_apply1v
subroutine mld_s_dump(prec,info,istart,iend,prefix,head,ac,rp,smoother,solver,tprol,& subroutine mld_s_dump(prec,info,istart,iend,iproc,prefix,head,&
& ac,rp,smoother,solver,tprol,&
& global_num) & global_num)
implicit none implicit none
class(mld_sprec_type), intent(in) :: prec class(mld_sprec_type), intent(in) :: prec
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: istart, iend integer(psb_ipk_), intent(in), optional :: istart, iend, iproc
character(len=*), intent(in), optional :: prefix, head character(len=*), intent(in), optional :: prefix, head
logical, optional, intent(in) :: smoother, solver,ac, rp, tprol, global_num logical, optional, intent(in) :: smoother, solver,ac, rp, tprol, global_num
integer(psb_ipk_) :: i, j, il1, iln, lev integer(psb_ipk_) :: i, j, il1, iln, lev
integer(psb_ipk_) :: icontxt,iam, np integer(psb_ipk_) :: icontxt, iam, np, iproc_
character(len=80) :: prefix_ character(len=80) :: prefix_
character(len=120) :: fname ! len should be at least 20 more than character(len=120) :: fname ! len should be at least 20 more than
! len of prefix_ ! len of prefix_
info = 0 info = 0
icontxt = prec%ictxt
call psb_info(icontxt,iam,np)
iln = size(prec%precv) iln = size(prec%precv)
if (present(istart)) then if (present(istart)) then
@ -739,13 +742,18 @@ contains
if (present(iend)) then if (present(iend)) then
iln = min(iln, iend) iln = min(iln, iend)
end if end if
iproc_ = -1
if (present(iproc)) then
iproc_ = iproc
end if
if ((iproc_ == -1).or.(iproc_==iam)) then
do lev=il1, iln do lev=il1, iln
call prec%precv(lev)%dump(lev,info,prefix=prefix,head=head,& call prec%precv(lev)%dump(lev,info,prefix=prefix,head=head,&
& ac=ac,smoother=smoother,solver=solver,rp=rp,tprol=tprol, & & ac=ac,smoother=smoother,solver=solver,rp=rp,tprol=tprol, &
& global_num=global_num) & global_num=global_num)
end do end do
end if
end subroutine mld_s_dump end subroutine mld_s_dump
subroutine mld_s_cnv(prec,info,amold,vmold,imold) subroutine mld_s_cnv(prec,info,amold,vmold,imold)

@ -713,22 +713,25 @@ contains
end subroutine mld_z_apply1v end subroutine mld_z_apply1v
subroutine mld_z_dump(prec,info,istart,iend,prefix,head,ac,rp,smoother,solver,tprol,& subroutine mld_z_dump(prec,info,istart,iend,iproc,prefix,head,&
& ac,rp,smoother,solver,tprol,&
& global_num) & global_num)
implicit none implicit none
class(mld_zprec_type), intent(in) :: prec class(mld_zprec_type), intent(in) :: prec
integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_), intent(in), optional :: istart, iend integer(psb_ipk_), intent(in), optional :: istart, iend, iproc
character(len=*), intent(in), optional :: prefix, head character(len=*), intent(in), optional :: prefix, head
logical, optional, intent(in) :: smoother, solver,ac, rp, tprol, global_num logical, optional, intent(in) :: smoother, solver,ac, rp, tprol, global_num
integer(psb_ipk_) :: i, j, il1, iln, lev integer(psb_ipk_) :: i, j, il1, iln, lev
integer(psb_ipk_) :: icontxt,iam, np integer(psb_ipk_) :: icontxt, iam, np, iproc_
character(len=80) :: prefix_ character(len=80) :: prefix_
character(len=120) :: fname ! len should be at least 20 more than character(len=120) :: fname ! len should be at least 20 more than
! len of prefix_ ! len of prefix_
info = 0 info = 0
icontxt = prec%ictxt
call psb_info(icontxt,iam,np)
iln = size(prec%precv) iln = size(prec%precv)
if (present(istart)) then if (present(istart)) then
@ -739,13 +742,18 @@ contains
if (present(iend)) then if (present(iend)) then
iln = min(iln, iend) iln = min(iln, iend)
end if end if
iproc_ = -1
if (present(iproc)) then
iproc_ = iproc
end if
if ((iproc_ == -1).or.(iproc_==iam)) then
do lev=il1, iln do lev=il1, iln
call prec%precv(lev)%dump(lev,info,prefix=prefix,head=head,& call prec%precv(lev)%dump(lev,info,prefix=prefix,head=head,&
& ac=ac,smoother=smoother,solver=solver,rp=rp,tprol=tprol, & & ac=ac,smoother=smoother,solver=solver,rp=rp,tprol=tprol, &
& global_num=global_num) & global_num=global_num)
end do end do
end if
end subroutine mld_z_dump end subroutine mld_z_dump
subroutine mld_z_cnv(prec,info,amold,vmold,imold) subroutine mld_z_cnv(prec,info,amold,vmold,imold)

Loading…
Cancel
Save